เมื่อไหร่ที่คุณไม่ควรเชื่อถือ Trusted Root Certificate

เป็นที่ทราบดีกันอยู่แล้วว่า Root Certificate เป็นเรื่องสำคัญสำหรับการยืนยันตัวตนและความมั่งคงปลอดภัยของซอฟต์แวร์หรือบนอินเทอร์เน็ต มันถูกออกโดย Certified Authority(CA) เพื่อใช้ในการพิสูจน์ว่าใครคือผู้อ้างความเป็นเจ้าของเว็บไซต์หรือซอฟต์แวร์นั้น เราจึงได้เลือกสรุปบทความมาให้อ่านกันว่าเมื่อใดเราจึงไม่ควรเชื่อถือ Certificate เหล่านั้น
จากบทความโดย RSA FirstWatch เราได้เรียนรู้ว่ามี USB Audio Driver ยอดนิยมตัวหนึ่งได้แอบติดตั้ง Self-signed Root Certificate แบบเงียบๆ ในส่วนของ Trusted Root Certification Authorities บนเครื่องผู้ใช้งานซึ่งปกติแล้ว Window จะให้เราเข้าไปจัดการ Certificate บนเครื่องตัวเองได้แต่จะแสดงข้อความกับผู้ติดตั้งว่า “Always trust software from this publisher” เพื่อให้ผู้ใช้ตัดสินใจก่อน แต่ USB Audio Driver ตัวนี้สามารถทำข้ามขั้นตอนนี้ไปได้ นอกจากนี้ยังสามารถส่งผลกระทบไปตั้งแต่ Windows XP จนถึง Windows 10 ทั้งๆ ที่ซอฟต์แวร์ตัวนี้ไม่ได้ต้องการ Certificate เลยแต่มันก็ถูกติดตั้งลงไปบน XP อย่างเงียบเชียบ

มันแย่ตรงไหนหล่ะ?

Root Certificate ใช้ติดตั้งเพื่อให้ข้อมูลเช่น Timestamping การพิสูจน์ตัวตนของเซิร์ฟเวอร์ หรือการแสดงความเป็นจ้าของๆ โค้ดนั้น และอื่นๆ แต่ USB Audio Driver ตัวนี้ได้ติดตั้ง Certificate สำหรับ ‘All Proposes’ นั่นหมายความว่าระบบใดที่มีการติดตั้ง Driver นี้จากผู้ผลิตเจ้าใดก็ตาม ระบบนั้นจะเชื่อถือ Certificated อื่นๆ ที่ออกโดย CA เจ้าเดียวกันที่ออกให้ Driver ตัวนี้ด้วย ในทางกลับกันปกติแล้วจะมีเพียง Certificated ที่ออกโดย Microsoft เท่านั้นที่จะมีค่าเป็น ‘All Proposes’ โดยหากติดตั้งด้วยค่า ‘All Proposes’ แล้วมันจะทำให้ใครก็ตามที่มี Private Key เชี่อมโยงกับ Certificate เป็นเหมือเจ้าของระบบเหมือนกันกับการติดตั้ง CA ลงบน Windows แต่ก็มีข้อยกเว้นกับบริษัทขนาดใหญ่ที่มีการทำ SSL decryption ที่ฝั่งข้อมูลขาออกที่อาจจะรอดจากผลกระทบนี้

แล้วมันจะถูกนำไปใช้ได้อย่างไร?

ผู้โจมตีที่มี Private Key ของ Root Certificate สามารสร้าง Certificate เพื่อใช้งานในวัตถุประสงค์อื่นได้ มันสามารถนำไแประยุกต์ใช้งานได้กับซอฟต์แวร์แอปพลิเคชัน เว็บไซต์ หรืออีเมล์ รวมถึงการโจมตีแบบ Man-in-the-Middle เพื่อที่จะติดตั้งมัลแวร์ต่อไป ถ้านี่ยังไม่แย่พอลองติดตามงานวิจัยนี้ที่พบว่าการทำสำเนา authenticode จากไฟล์ปกติไปยังตัวอย่างมัลแวร์ที่รู้จักสามารถทำให้ Antivirus หยุดการทำงานได้

ผู้โจมตีมีทางเลือกขั้นตอนการนำไปใช้งานได้มากมาย

  • ถ้าผู้โจมตีมี Private Key จะสามารถใช้งาน Certificate ที่มีให้ดูเหมือนเป็นโปรแกรมถูกลิขสิทธิ์
  • สร้างหรือซื้อ Certificate เพื่อปลอมตัวเป็นโปรแกรมจริงเพื่อหลอกระบบใช้การตรวจจับ Signing
  • นำ Certificate จริงไปใส่ที่ Untrusted Certificate Store ทำให้โปรแกรมหรือเว็บจริงไม่สามารถเข้าถึงได้
วิธีการที่กล่าวมาทั้งหมดเกิดจาก Certificate ที่ถูกขโมยโดยเฉพาะที่มีค่า ‘All proposes’ มีอานุภาพร้ายแรงที่สุด สาเหตุจากแค่คุณต้องการติดตั้ง Driver หรือการติดตั้ง Certificate เพื่อทำให้ช่วยเหลือลูกค้าได้ง่ายขึ้นโดยไม่บอกลูกค้าก็ทำให้เกิดหายนะตามมาได้ ถ้าคุณคิดว่ามันมีโอกาสเกิดได้ไม่เท่าไหร่หรอกลองดูที่นี่เสียก่อน

เราจะลบ Certificate ที่เราไม่เชื่อถือได้อย่างไร

อันดับแรกเราสามารถตรวจสอบ Certificate แปลกปลอมได้ที่นี่ ขั้นตอนการลบทำได้ดังนี้
  1. ใส่คำสั่ง certmgr.msc ที่ช่อง Run หรือ Search หรือ command prompt
  2. เลือก Trusted Root Certification Authorities ภายใต้โฟลเดอร์เลือก Certificate Store
  3. คลิกขวาเพื่อเลือกลบ Certificate ที่ไม่ต้องการ
หรืออีกทางหนึ่งสามารถใช้คำสั่ง Powershell ได้ตามนี้ ‘Get-ChildItem -Path cert:\currentuser\AuthRoot -Recurse | select Thumbprint, FriendlyName, Subject | ConvertTo-Html | Set-Content c:\users\public\desktop\certificates.html’ สนใจเพิ่มเติมสามารถติดตามได้ที่นี่
สุดท้ายนี้เราควรจะใส่ใจกับการติดตั้ง Certificate ให้เหมาะสมกับการใช้งานและให้ลำดับของการเชื่อถือเป็นไปตามที่ควรจะเป็น

Comments

Popular posts from this blog

นักวิจัยปล่อยโค้ดที่ทำให้เกิดจอฟ้ากับเครื่อง Windows จำนวนมากบน GitHub

ผู้เชี่ยวชาญพบมัลแวร์ใช้ Windows BITS เพื่อติดต่อเซิร์ฟเวอร์ควบคุม

รู้สาเหตุแล้ว ประเทศในแถบเอเชียตะวันออกเฉียงใต้เน็ตช้าเพราะสายเคเบิลใต้ทะเลขาด