เช็ครายการแอปในเครื่อง ไม่ได้แปลว่าปลอดภัย! วิธีตรวจสอบความปลอดภัยสำหรับโปรแกรมเมอร์

9 นาที 16 views บันทึกเป็น PDF
เช็ครายการแอปในเครื่อง ไม่ได้แปลว่าปลอดภัย! วิธีตรวจสอบความปลอดภัยสำหรับโปรแกรมเมอร์

อย่าเพิ่งวางใจแค่ดูชื่อแอปในเครื่อง! เรียนรู้วิธีตรวจสอบความปลอดภัยของซอฟต์แวร์และแหล่งติดตั้งโปรแกรม (Repository) เพื่อป้องกันมัลแวร์สำหรับมือใหม่หัดเขียนโค้ด

รายการแอปในเครื่อง ไม่ใช่ใบรับรองความปลอดภัย

หลายคนเวลาเปิดหน้าต่างรายการโปรแกรมในเครื่องขึ้นมาดู ก็มักจะเกิดความระแวงว่าเราเผลอติดตั้ง 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

แชร์บทความ

Facebook X LINE

บทความที่เกี่ยวข้อง

ทำไมการทำโปรเจกต์จริงถึงสำคัญกว่าการดูคลิปสอน สำหรับนักศึกษาและมือใหม่หัดเขียนโค้ด

ทำไมการทำโปรเจกต์จริงถึงสำคัญกว่าการดูคลิปสอน สำหรับนักศึกษาและมือใหม่หัดเขียนโค้ด

เลิกติดกับดักการดูคลิปสอน (Tutorial) แล้วมาเริ่มทำโปรเจกต์จริงกันดีกว่า เรียนรู้วิธีแก้บั๊ก การใช้ Git และการเลือกเครื่องมือให้เหมาะกับงาน เพื่อก้าวสู่การเป็นโปรแกรมเมอร์มืออาชีพ

ที่มา: DEV Community

1 hour ago 9 นาที
4 views
เทคนิคเขียนแอป Flutter สำหรับ Meta Smart Glasses ให้ลื่นไหลและมีประสิทธิภาพ

เทคนิคเขียนแอป Flutter สำหรับ Meta Smart Glasses ให้ลื่นไหลและมีประสิทธิภาพ

เรียนรู้วิธีเขียนแอป Flutter เชื่อมต่อ Meta Smart Glasses ให้ทำงานเร็ว ไม่กระตุก ด้วยการวางสถาปัตยกรรมโค้ดและการจัดการข้อมูลแบบมือโปรที่มือใหม่ทำตามได้จริง

ที่มา: DEV Community

9 hours ago 10 นาที
5 views
เปรียบเทียบ WebSocket, SSE และ Polling เลือกวิธีทำระบบ Real-Time ให้เหมาะกับงาน

เปรียบเทียบ WebSocket, SSE และ Polling เลือกวิธีทำระบบ Real-Time ให้เหมาะกับงาน

อยากทำระบบ Real-Time แต่ไม่รู้จะเลือกใช้ Polling, SSE หรือ WebSocket ดี? มาดูวิธีเลือกใช้ให้เหมาะกับงาน เพื่อให้แอปของคุณทำงานลื่นไหลและประหยัดทรัพยากรเซิร์ฟเวอร์

ที่มา: DEV Community

12 hours ago 10 นาที
5 views