รายการแอปในเครื่อง ไม่ใช่ใบรับรองความปลอดภัย
หลายคนเวลาเปิดหน้าต่างรายการโปรแกรมในเครื่องขึ้นมาดู ก็มักจะเกิดความระแวงว่าเราเผลอติดตั้ง Malware (ซอฟต์แวร์ประสงค์ร้ายที่แอบเข้ามาทำลายหรือขโมยข้อมูลในเครื่อง) เข้าไปหรือเปล่า ยิ่งถ้าเห็นชื่อโปรแกรมแปลกๆ ที่เราจำไม่ได้ว่าเคยติดตั้งตอนไหน ยิ่งทำให้รู้สึกไม่ปลอดภัย เหมือนเราเดินดูของในบ้านแล้วเจอของแปลกปลอมวางทิ้งไว้
แต่ความจริงแล้ว หน้าต่างที่แสดงรายการโปรแกรม หรือ App Center (หน้าร้านค้าสำหรับดาวน์โหลดและจัดการแอป) เป็นเพียงแค่เบราว์เซอร์สำหรับดูรายชื่อโปรแกรมเท่านั้น มันไม่ได้ทำหน้าที่ตรวจสอบความปลอดภัยหรือสแกนหาไวรัสในเครื่องให้เรา มันแค่โชว์ว่าตอนนี้ในเครื่องมีโปรแกรมอะไรที่มาจากแหล่งหลักๆ บ้าง เช่น Ubuntu Archive (คลังเก็บซอฟต์แวร์หลักของระบบ) หรือ Snap Store (ร้านค้าแอปสำหรับระบบ Linux)
การที่โปรแกรมดูเก่าหรือมีไอคอนแปลกๆ ไม่ได้แปลว่าเครื่องคุณโดนแฮ็กเสมอไป บางครั้งมันเป็นแค่การแสดงผลของไฟล์ระบบที่ถูกซ่อนไว้ หรือโปรแกรมที่ติดตั้งมาพร้อมกับตัวเครื่องตั้งแต่แรก ดังนั้นการจะตรวจสอบความปลอดภัยจริงๆ เราต้องใช้เครื่องมือที่ลึกกว่านั้น ไม่ใช่แค่การไถหน้าจอเลื่อนดูรายการแอปแบบผ่านๆ
ตรวจสอบผู้พัฒนาให้ชัวร์ด้วยคำสั่ง snap list
ระบบ Snap (รูปแบบการติดตั้งโปรแกรมที่รวมเอาไฟล์ที่จำเป็นมาไว้ในก้อนเดียว) มีระบบตรวจสอบความน่าเชื่อถือที่เรียกว่า Publisher (ผู้พัฒนาหรือผู้เผยแพร่ซอฟต์แวร์) ซึ่งเราสามารถตรวจสอบได้ว่าโปรแกรมนั้นมาจากแหล่งที่เชื่อถือได้จริงหรือไม่ โดยดูจากเครื่องหมายยืนยันตัวตนที่ทางระบบมอบให้
ถ้าเราเจอแอปที่อ้างว่าเป็นโปรแกรมดังๆ แต่ไม่มีเครื่องหมายยืนยันตัวตน หรือชื่อผู้พัฒนาดูแปลกประหลาด นั่นแหละคือจุดที่น่าสงสัยและควรระวังให้มาก เพราะแฮ็กเกอร์อาจจะนำโปรแกรมยอดนิยมมาดัดแปลงแล้วแอบใส่โค้ดอันตรายเข้าไป เพื่อหลอกให้เรากดติดตั้งลงในเครื่องตัวเอง
เราสามารถใช้คำสั่งเพื่อดึงรายชื่อผู้พัฒนาของทุกโปรแกรมในเครื่องออกมาดูได้ง่ายๆ เพื่อให้แน่ใจว่าโปรแกรมที่เราใช้อยู่นั้นมาจากต้นทางที่ถูกต้องจริงๆ ไม่ใช่ของปลอมที่ใครก็ไม่รู้ทำขึ้นมา
# ดึงรายชื่อแอปทั้งหมดมาเช็คชื่อผู้พัฒนา
for s in $(snap list | awk 'NR>1{print $1}'); do snap info "$s" | grep -E '^(name|publisher)'; done
คำอธิบาย: บรรทัดนี้ทำงานโดยการวนลูปรายชื่อแอปทั้งหมดในเครื่อง แล้วสั่งให้ระบบแสดงข้อมูลชื่อและผู้พัฒนาออกมาให้เราเห็นทีละตัว
ผลลัพธ์: คุณจะเห็นรายการชื่อแอป ตามด้วยชื่อผู้พัฒนา หากเห็นเครื่องหมายติ๊กถูก (✓) หรือดาว (✪) แสดงว่าโปรแกรมนั้นได้รับการตรวจสอบแล้วว่ามาจากแหล่งที่น่าเชื่อถือ
ระวังช่องโหว่จากแหล่งติดตั้งภายนอก
จุดที่อันตรายที่สุดที่ App Center มองไม่เห็นคือ Third-party APT Repositories (แหล่งเก็บโปรแกรมจากภายนอกที่ไม่ได้มาจากระบบหลัก) ซึ่งบางครั้งเราอาจจะเผลอไปเพิ่มแหล่งเหล่านี้ไว้ตอนติดตั้งโปรแกรมเฉพาะทาง เช่น โปรแกรมสำหรับเขียนโค้ดหรือเครื่องมือจัดการฐานข้อมูล
แหล่งติดตั้งเหล่านี้เปรียบเหมือนประตูหลังบ้าน ถ้าเราไปเพิ่มแหล่งที่ไม่มีชื่อเสียงหรือถูกแฮ็กเกอร์ยึดไปแล้ว พวกเขาก็สามารถส่งโค้ดอันตรายมาลงในเครื่องเราได้โดยตรงผ่านการอัปเดตโปรแกรมปกติ ดังนั้นการตรวจสอบว่ามีแหล่งไหนแปลกปลอมบ้างจึงเป็นเรื่องสำคัญมากสำหรับโปรแกรมเมอร์ที่ต้องติดตั้งเครื่องมือใหม่ๆ ตลอดเวลา
เราควรใช้คำสั่งตรวจสอบแหล่งที่เก็บโปรแกรมเหล่านี้เป็นระยะ เพื่อให้มั่นใจว่าทุกแหล่งที่เราฝากชีวิตไว้ ยังคงมีความปลอดภัยและมีการยืนยันตัวตนที่ถูกต้องตามมาตรฐานสากล
# ตรวจสอบว่าในเครื่องมีการเพิ่มแหล่งติดตั้งโปรแกรมอะไรไว้บ้าง
grep -rhE '^deb ' /etc/apt/sources.list /etc/apt/sources.list.d/
คำอธิบาย: คำสั่งนี้จะไปอ่านไฟล์ที่เก็บค่าแหล่งติดตั้งโปรแกรมทั้งหมดในระบบ แล้วแสดงรายชื่อที่อยู่ของแหล่งเหล่านั้นออกมาให้เราตรวจสอบ
ผลลัพธ์: รายการที่แสดงควรเป็นที่รู้จัก เช่น docker, github หรือ google หากเจอชื่อแปลกๆ ที่จำไม่ได้ว่าเคยเพิ่มไว้ ให้รีบตรวจสอบที่มาของมันทันที
ตรวจสอบลายเซ็นดิจิทัลเพื่อยืนยันความถูกต้อง
การรู้แค่ชื่อแหล่งติดตั้งยังไม่พอ เพราะแฮ็กเกอร์อาจจะปลอมแปลงชื่อให้ดูเหมือนของจริงได้ สิ่งที่เราต้องดูจริงๆ คือ Signing Key (กุญแจดิจิทัลที่ใช้ยืนยันว่าโปรแกรมนี้มาจากผู้พัฒนาตัวจริง) ซึ่งทำหน้าที่เหมือนตราประทับที่ยืนยันว่าข้อมูลไม่ได้ถูกแก้ไขระหว่างทาง
ลองนึกภาพว่าคุณได้รับจดหมายที่จ่าหน้าซองว่าเป็นของธนาคาร แต่ถ้าไม่มีตราประทับขี้ผึ้งหรือลายเซ็นยืนยัน คุณก็ไม่ควรเชื่อใจจดหมายฉบับนั้น การตรวจสอบกุญแจดิจิทัลก็เหมือนการเช็คตราประทับ เพื่อดูว่าโปรแกรมที่เราจะติดตั้งมาจากเจ้าของที่แท้จริง ไม่ใช่ของที่ถูกใครบางคนแอบทำเลียนแบบขึ้นมา
การตรวจสอบลายเซ็นต้องดูที่ Fingerprint (รหัสลายนิ้วมือดิจิทัลที่เป็นเอกลักษณ์ของกุญแจ) ให้ครบทุกตัวอักษร เพราะถ้าพลาดไปเพียงตัวเดียว อาจหมายถึงความปลอดภัยของทั้งเครื่องคุณได้เลย
# ตรวจสอบรหัสลายนิ้วมือของกุญแจดิจิทัล
gpg --show-keys --fingerprint /etc/apt/keyrings/antigravity-repo-key.gpg
คำอธิบาย: คำสั่งนี้จะแสดงรหัสยืนยันของกุญแจนั้นออกมา ให้คุณนำไปเทียบกับหน้าเว็บของผู้พัฒนาโปรแกรมโดยตรงว่าตรงกันทุกตัวอักษรหรือไม่
ผลลัพธ์: จะเห็นรหัสตัวเลขและตัวอักษรชุดยาวๆ หากตรงกับข้อมูลที่ประกาศบนเว็บทางการของโปรแกรมนั้นๆ แสดงว่าปลอดภัย
เช็คความสมบูรณ์ของไฟล์ด้วย debsums
ถ้าสงสัยว่าโปรแกรมในเครื่องถูกแก้ไขหรือโดนฝังโค้ดอันตรายเข้าไปหรือยัง วิธีที่ดีที่สุดคือการใช้เครื่องมือตรวจสอบ Checksum (ค่าตัวเลขที่สรุปมาจากเนื้อหาของไฟล์) เพื่อดูว่าไฟล์ในเครื่องของเรายังเหมือนกับไฟล์ต้นฉบับที่ผู้พัฒนาปล่อยออกมาหรือไม่
debsums (เครื่องมือตรวจสอบความถูกต้องของไฟล์โปรแกรม) จะทำการคำนวณค่าตัวเลขของไฟล์แต่ละไฟล์ในเครื่องแล้วเทียบกับค่ามาตรฐาน ถ้าไฟล์ไหนถูกแอบแก้ไข ค่าตัวเลขจะไม่ตรงกันและโปรแกรมจะแจ้งเตือนเราทันที นี่เป็นวิธีที่แม่นยำที่สุดในการหาว่ามีใครแอบเข้ามาแก้ไฟล์ระบบของเราหรือเปล่า
อย่าตกใจถ้าเห็นไฟล์บางอย่างหายไป (Missing) เพราะนั่นอาจเกิดจากการที่เราลบไอคอนออกเอง แต่ถ้าเห็นข้อความว่า Checksum mismatch (ค่าตัวเลขไม่ตรงกัน) นั่นคือสัญญาณอันตรายระดับสูงสุดที่ต้องจัดการลบและติดตั้งโปรแกรมนั้นใหม่ทันที
# ตรวจสอบความสมบูรณ์ของไฟล์โปรแกรมทั้งหมด
sudo apt install debsums
sudo debsums -s
คำอธิบาย: ติดตั้งเครื่องมือ debsums แล้วสั่งรันเพื่อตรวจสอบไฟล์ทั้งหมด หากมีไฟล์ไหนถูกแก้ไขระบบจะฟ้องออกมาให้เห็นทันที
ผลลัพธ์: หากไม่มีอะไรแสดงขึ้นมาเลยถือว่าปกติ แต่ถ้ามีบรรทัดแจ้งเตือนว่าไฟล์ไหนผิดปกติ ให้รีบตรวจสอบและติดตั้งโปรแกรมนั้นใหม่ด้วยคำสั่ง apt reinstall
สรุป: ความปลอดภัยเริ่มที่การตรวจสอบด้วยตัวเอง
การดูแลความปลอดภัยของเครื่องตัวเองเป็นทักษะพื้นฐานที่โปรแกรมเมอร์ทุกคนต้องมี เพราะเรามักจะติดตั้งเครื่องมือใหม่ๆ อยู่ตลอดเวลา ความเชื่อมั่นที่ว่า "แค่ใช้แอปมาตรฐานก็น่าจะปลอดภัยแล้ว" เป็นความคิดที่อันตรายเกินไปสำหรับคนทำงานสายไอที การหมั่นตรวจสอบระบบด้วยตัวเองคือการสร้างเกราะป้องกันที่ดีที่สุด
เราควรสร้างนิสัยในการตรวจสอบ Repository ที่เราเพิ่มเข้าไป และคอยเช็คความสมบูรณ์ของไฟล์สำคัญอยู่เสมอ อย่าปล่อยให้ความขี้เกียจมาทำให้เครื่องของเรากลายเป็นแหล่งบ่มเพาะไวรัสโดยไม่รู้ตัว เพราะสุดท้ายแล้วไม่มีซอฟต์แวร์ไหนจะดูแลเครื่องคุณได้ดีเท่าตัวคุณเอง
จำไว้ว่าเครื่องมือเหล่านี้น่าเชื่อถือกว่าหน้าตาของแอปที่เห็น เริ่มต้นวันนี้ด้วยการเช็ครายการแหล่งติดตั้งโปรแกรมในเครื่องคุณดูสักครั้ง ว่ามีที่ไหนที่คุณจำไม่ได้ว่าเคยเพิ่มไว้หรือเปล่า แล้วลองใช้คำสั่งที่เราเรียนรู้กันไปจัดการมันให้สะอาดและปลอดภัยที่สุดครับ
ที่มา: Your App Center List Is Not a Security Audit — DEV Community