23/05/2566

ตรวจพบช่องโหว่ใน KeePass สามารถดึง master password ในรูปแบบของ cleartext ได้


    โปรแกรมจัดการรหัสผ่านยอดนิยม KeePass มีช่องโหว่ที่ทำให้สามารถดึง master password ออกจากหน่วยความจำของแอปพลิเคชันได้ ซึ่งทำให้ผู้ไม่ประสงค์ดีที่เข้าถึงอุปกรณ์สามารถเรียกดู master password โดยไม่สนว่าฐานข้อมูลจะถูกล็อกอยู่หรือไม่ก็ตาม
    ช่องโหว่นี้ถูกพบโดยนักวิจัยด้านความปลอดภัยชื่อ 'vdohney' ซึ่งเป็นผู้เผยแพร่ proof-of-concept (PoC) ที่ทำให้ผู้ไม่ประสงค์ดีสามารถดึงข้อมูล master password ของ KeePass จากหน่วยความจำได้ โปรแกรมจัดการรหัสผ่านจะช่วยให้ผู้ใช้งานสามารถสร้างรหัสผ่านที่ไม่ซ้ำกันสำหรับแต่ละบัญชีออนไลน์ และเก็บข้อมูลแบบเข้ารหัสไว้ในฐานข้อมูลที่ง่ายต่อการค้นหา หรือที่เรียกว่า "password vault" ซึ่งจะช่วยให้ผู้ใช้งานไม่ต้องจำรหัสผ่านแต่ละอัน อย่างไรก็ตามเพื่อรักษาความปลอดภัยของ "password vault" ผู้ใช้จำเป็นต้องจำ master password ที่ใช้ในการปลดล็อกเพื่อเข้าถึงข้อมูลรหัสผ่านอื่น ๆ
    master password จะถูกใช้เพื่อเข้าไปในฐานข้อมูลของ KeePass ต่าง ๆ ได้ เพื่อป้องกันไม่ให้มีการเปิด หรืออ่านข้อมูลได้โดยไม่ต้องป้อนรหัสผ่านก่อน อย่างไรก็ตาม เมื่อ master password ถูกขโมย จึงทำให้ผู้ไม่ประสงค์ดีสามารถเข้าถึงข้อมูลรหัสผ่านทั้งหมดที่เก็บในฐานข้อมูลได้ ดังนั้นเพื่อให้โปรแกรมจัดการรหัสผ่านมีความปลอดภัยอย่างเหมาะสม สิ่งสำคัญคือผู้ใช้งานจะต้องรักษา master password ไว้เป็นความลับ และไม่แชร์กับผู้อื่น
 โดยช่องโหว่ใหม่ของ KeePass ที่มีหมายเลข CVE-2023-3278 ทำให้สามารถดึงข้อมูล master password ของ KeePass ในรูปแบบของข้อความ (cleartext) ยกเว้นตัวอักษรแรก หรือสองตัวอักษรแรก โดยไม่สนว่าการทำงานของ KeePass จะถูกล็อก หรือโปรแกรมจะปิดการทำงานไปแล้ว
  "KeePass Master Password Dumper" เป็นเครื่องมือ POC ที่ใช้สำหรับดัมพ์ master password จากหน่วยความจำของ KeePass โดยนักวิจัยด้านความปลอดภัยเตือนว่านอกเหนือจากตัวอักษรแรกของรหัสผ่านมีความเป็นไปได้สูงที่จะสามารถดึงรหัสผ่านในรูปแบบข้อความออกมาได้
 "ไม่จำเป็นต้องมีการประมวลผลโค้ดบนระบบเป้าหมาย เพียงแค่การดัมพ์หน่วยความจำเท่านั้น ไม่ว่าจะเป็นการดัมพ์กระบวนการ (process dump), swap file (pagefile.sys), hibernation file (hiberfil.sys) หรือการดัมพ์หน่วยความจำ RAM ของระบบทั้งหมด โดยไม่สนว่า workspace จะถูกล็อกหรือไม่ก็ตาม"
    ช่องโหว่นี้เกิดขึ้นจากซอฟต์แวร์ใช้กล่องป้อนรหัสผ่านที่กำหนดเอง ที่ชื่อ "SecureTextBoxEx" ซึ่งทำให้เกิดร่องรอยของทุกตัวอักษรที่ผู้ใช้ป้อนลงในหน่วยความจำ นักวิจัยระบุว่า "KeePass 2.X ใช้กล่องข้อความที่พัฒนาขึ้นเองสำหรับการป้อนรหัสผ่านชื่อ SecureTextBoxEx ซึ่งกล่องข้อความนี้ ไม่เพียงแค่ใช้สำหรับการป้อนรหัสผ่าน master password เท่านั้น แต่ยังใช้กับส่วนอื่น ๆ ใน KeePass ด้วย เช่น กล่องแก้ไขรหัสผ่าน (ดังนั้นการโจมตียังสามารถดึงเนื้อหาของรหัสผ่านดังกล่าวได้)"
    ช่องโหว่นี้ส่งผลกระทบต่อ KeePass เวอร์ชันล่าสุด 2.53.1 และเนื่องจากโปรแกรมนี้เป็นโอเพนซอร์ส โปรเจกต์ที่แยกออกมาก็อาจได้รับผลกระทบจากช่องโหว่นี้ได้เช่นเดียวกัน


  จากรายงานของนักพัฒนาเครื่องมือดัมพ์รหัสผ่าน ดูเหมือนว่า KeePass 1.X, KeePassXC, และ Strongbox จะไม่ได้รับผลกระทบจาก CVE-2023-32784
    นอกจากนี้ ในขณะที่โค้ด PoC สามารถทำงานได้บนระบบปฏิบัติการ Windows แต่ช่องโหว่ดังกล่าวอาจถูกนำไปประยุกต์ใช้งาน ทำให้สามารถใช้งานกับระบบปฏิบัติการ Linux และ macOS ได้ เนื่องจากช่องโหว่ดังกล่าวไม่เกี่ยวข้องกับระบบปฏิบัติการ แต่เกี่ยวกับวิธีการที่ KeePass จัดการกับข้อมูลของผู้ใช้
สามารถใช้ช่องโหว่ในการโจมตีได้ง่าย เนื่องจากต้องมีการเข้าถึงการดัมพ์หน่วยความจำเพื่อดึง master password ของ KeePass ดังนั้นการใช้ช่องโหว่ CVE-2023-32784 จึงจำเป็นต้องมีการเข้าถึง หรือติดตั้งมัลแวร์บนเครื่องเป้าหมายให้ได้ก่อน
    อย่างไรก็ตาม มัลแวร์ที่ใช้สำหรับขโมยข้อมูลก็สามารถตรวจสอบได้อย่างรวดเร็วว่ามีการติดตั้ง KeePass อยู่ในคอมพิวเตอร์ หรือกำลังทำงานอยู่หรือไม่ และหากมี อาจจะสั่งให้ดัมพ์หน่วยความจำของโปรแกรม และส่งข้อมูลดังกล่าวพร้อมกับฐานข้อมูล KeePass กลับไปยังผู้ไม่ประสงค์ดี เพื่อดึงรหัสผ่านแบบออฟไลน์ในรูปแบบข้อความที่ถูกเขียนลงในหน่วยความจำออกมาได้
   BleepingComputer ทดสอบเครื่องมือ 'keepass-password-dumper' ของ vdohney โดยติดตั้ง KeePass บนอุปกรณ์ทดสอบ และสร้างฐานข้อมูลใหม่ด้วย master password 'password123' ดังภาพด้านล่าง


    จากนั้นล็อกพื้นที่ทำงานของ KeePass เพื่อป้องกันการเข้าถึง จนกว่าจะป้อนรหัสผ่านหลักอีกครั้ง ในการทดสอบ ผู้ใช้งานสามารถใช้ Process Explorer เพื่อดัมพ์หน่วยความจำของโปรเจกต์ KeePass ได้ เพื่อให้ทำงานได้อย่างถูกต้องจำเป็นต้องใช้การดัมพ์หน่วยความจำแบบเต็ม ไม่ใช่การดัมพ์หน่วยความจำแบบมินิดัมพ์
   หลังจากคอมไพล์เครื่องมือของ vdohney โดยใช้ Visual Studio แล้ว จะทำการเรียกใช้เครื่องมือนี้เพื่อดัมพ์หน่วยความจำ และดึงรหัสผ่านแบบ cleartext โดยจะขาดเพียงสองตัวอักษรแรกเท่านั้น


  แม้ว่าจะไม่ใช่รหัสผ่านที่สมบูรณ์ แต่การพิจารณาว่าอักขระใดขาดหายไปนั้นถือว่าค่อนข้างง่ายมากนักวิจัยยังเตือนว่า master password ที่ใช้ในอดีตอาจยังคงอยู่ในหน่วยความจำ ดังนั้นจึงสามารถเรียกคืนได้แม้ว่า KeePass จะไม่ได้ทำงานอยู่บนคอมพิวเตอร์แล้วก็ตาม KeePass จะแก้ไขช่องโหว่เร็ว ๆ นี้
    นักพัฒนาของ KeePass ชื่อ 'Dominik Reichl' ได้รับรายงานช่องโหว่ และจะแก้ไขช่องโหว่ CVE-2023-32784 ในเวอร์ชัน 2.54 ที่คาดว่าจะเปิดให้ใช้งานในช่วงเดือนกรกฎาคม 2023

    อย่างไรก็ตาม Reichl ได้แจ้งกับ BleepingComputer ว่า KeePass เวอร์ชัน 2.54 มีโอกาสที่จะเผยแพร่แก่ผู้ใช้งานในอีกประมาณสองสัปดาห์ ดังนั้นคาดว่าจะมีการเผยแพร่ตัวอัปเดตในต้นเดือนมิถุนายน Reichl ได้พัฒนาเกี่ยวกับช่องโหว่ด้านความปลอดภัย และวิธีการในการลดผลกระทบที่อาจเกิดขึ้น และมีการกล่าวถึงการปรับปรุงความปลอดภัยสองรายการสำหรับเวอร์ชัน KeePass ที่กำลังจะมาถึงดังนี้

  ดำเนินการเรียกใช้ API โดยตรงเพื่อรับ/ตั้งค่าข้อความในกล่องข้อความ โดยหลีกเลี่ยงการสร้างสตริงที่จัดการแล้วในหน่วยความจำ ซึ่งอาจทำให้ข้อมูลรั่วไหลออกไปได้ สร้างชิ้นส่วนที่เป็นข้อมูลสมมติที่มีอักขระสุ่มในหน่วยความจำของกระบวนการ ซึ่งจะมีความยาวใกล้เคียงกับรหัสผ่านหลักของผู้ใช้ โดยทำให้สามารถปกปิดคีย์จริงได้ KeePass 2.54 สำหรับระบบปฏิบัติการ Windows จะมีการปรับปรุงทั้งสองอย่าง ในขณะที่เวอร์ชันสำหรับ macOS และ Linux จะได้รับการปรับปรุงเฉพาะอย่างที่สองเท่านั้น

  นักพัฒนาได้เผยแพร่เวอร์ชันทดสอบพร้อมกับการปรับปรุงความปลอดภัยใหม่ที่ช่วยลดปัญหานี้ได้ ดังนั้นผู้ที่อยากทดลองใช้งานเวอร์ชันที่อาจยังไม่เสถียรสามารถดาวน์โหลดได้จากที่นี่ โดยผู้สร้าง PoC ได้ยืนยันว่าเขาไม่สามารถทำการโจมตีได้แล้วด้วยการปรับปรุงความปลอดภัยทั้งสองรายการ ดังนั้นภาพรวมของการแก้ไขดูแล้วน่าจะมีประสิทธิภาพ
  แม้ว่าเวอร์ชันใหม่จะถูกเผยแพร่แล้ว master password อาจยังคงถูกเก็บไว้ในหน่วยความจำ นักวิจัยเตือนว่าเพื่อความปลอดภัย 100% ที่รหัสผ่านหลักจะไม่อยู่บนระบบ ผู้ใช้งานจำเป็นต้องลบไฟล์ swap file และ hibernation file ของระบบให้เรียบร้อยก่อนที่จะฟอร์แมทฮาร์ดดิสก์โดยใช้โหมด "overwrite data" เพื่อป้องกันการดึงข้อมูล และทำการติดตั้งระบบปฏิบัติการใหม่
  สำหรับผู้ใช้งานส่วนมาก การรีสตาร์ทคอมพิวเตอร์ ลบไฟล์ swap file และ hibernation file และไม่ใช้ KeePass จนกว่าเวอร์ชันใหม่จะถูกเผยแพร่ เป็นมาตรการรักษาความปลอดภัยที่สมเหตุสมผลในช่วงนี้
สำหรับการป้องกันที่ดีที่สุด ควรระมัดระวังอย่างมากในการไม่ดาวน์โหลดโปรแกรมจากเว็บไซต์ที่ไม่น่าเชื่อถือ และระมัดระวังการโจมตีด้วยเทคนิคฟิชชิ่งที่อาจติดมัลแวร์บนอุปกรณ์ ทำให้ผู้ไม่ประสงค์ดีสามารถเข้าถึงอุปกรณ์ และฐานข้อมูล KeePass ของผู้ใช้ได้

ไม่มีความคิดเห็น:

แสดงความคิดเห็น