slumzick
ระบบ "หน่วยงานรัฐ" ถูกเข้าถึงข้อมูลประชาชนในระบบ และถูกนำไปขายในตลาดมืด
พบช่องโหว่ในระบบภายในของหน่วยงานรัฐแห่งหนึ่ง (ต่อไปนี้จะเรียกว่า "หน่วยงานรัฐ") จำนวน 2 ระบบ ซึ่งทำให้ผู้ไม่หวังดีสามารถ สืบค้นข้อมูลส่วนบุคคลของประชาชนไทยได้แบบไม่จำกัดจำนวน เพียงแค่ทราบชื่อ-นามสกุล โดยข้อมูลที่ได้ครอบคลุมตั้งแต่เลขบัตรประชาชน ที่อยู่ วันเกิด สิทธิรักษาพยาบาล ไปจนถึง เลขบัตรประชาชนของบิดา-มารดา
ผู้เขียนได้แจ้งเตือนหน่วยงานที่เกี่ยวข้องตามหลัก Responsible Disclosure แล้ว และเผยแพร่รายงานนี้หลังจากหน่วยงานดำเนินการแก้ไขเรียบร้อยแล้ว
ความเป็นมา
ผู้เขียนได้รับ source code ของเครื่องมือหนึ่งจากตลาดมืด ซึ่งถูกออกแบบมาเป็น Discord Bot สำหรับให้บริการสืบค้นข้อมูลส่วนบุคคลของประชาชนไทย โดยเครื่องมือนี้ทำงานโดยเชื่อมต่อกับระบบภายในของ "หน่วยงานรัฐ" แบบอัตโนมัติ
จากการวิเคราะห์ source code พบว่าเครื่องมือดังกล่าว:
- ใช้ credentials (username/password) จริง ที่ฝังอยู่ใน source code เพื่อ copyright เข้าระบบ "หน่วยงานรัฐ"
- canadian_re credentials เหล่านี้ ใช้งานได้จริง ณ วันที่จัดทำรายงาน
- สามารถสืบค้นข้อมูลได้เพียงแค่ พิมพ์ชื่อ-นามสกุล ของเป้าหมาย
- ถูกห่อหุ้มเป็น Discord Bot เพื่อ ขายบริการในวงจำกัด โดยจำกัดการเข้าถึงด้วย Discord Role (เฉพาะผู้จ่ายเงิน)
ผู้เขียน ไม่ได้ ใช้เครื่องมือนี้สืบค้นข้อมูลของบุคคลใด แต่ได้วิเคราะห์ source code อย่างละเอียดและจัดทำรายงานแจ้งหน่วยงานที่เกี่ยวข้อง
ช่องโหว่ที่พบ
ระบบที่ได้รับผลกระทบ
เครื่องมือเข้าถึงระบบ "หน่วยงานรัฐ" 2 ระบบ แบบ chain attack:
[ แผนภาพแสดงการโจมตีแบบ Chain Attack ]
ชื่อ-นามสกุล ➡️ ระบบที่ 1 (หาเลขบัตร) ➡️ ระบบที่ 2 (ดึงข้อมูลส่วนบุคคล) ➡️ ข้อมูลครบชุด
| ระบบ | หน้าที่ | ช่องทางเข้าถึง |
|---|---|---|
| ระบบที่ 1 System A | แปลง ชื่อ-นามสกุล ➡️ เลขบัตรประชาชน | Web Application (ใช้ browser automation) |
| ระบบที่ 2 System B | แปลง เลขบัตรประชาชน ➡️ ข้อมูลส่วนบุคคลทั้งหมด | REST API โดยตรง ไม่ต้องเปิด browser |
จุดอ่อนหลักที่พบ
| # | ช่องโหว่ | รายละเอียด |
|---|---|---|
| 1 | Credentials รั่วไหล | พบ username/password ฝังใน source code 2 ชุด สำหรับเข้าระบบ 2 ระบบ ยืนยันว่าใช้งานได้จริง |
| 2 | รหัสผ่านอ่อนแอ | ระบบที่ 2 ใช้รหัสผ่านเพียง 4 หลัก ไม่มีนโยบายความเข้มงวด |
| 3 | Over-privileged API | API ของระบบที่ 2 ส่งคืนข้อมูล 50+ fields ทั้งที่ function ที่เรียกใช้ต้องการข้อมูลเพียงบางส่วน |
| 4 | ไม่มี Rate Limiting | API เรียกได้ไม่จำกัดจำนวนครั้ง ทำให้สามารถดึงข้อมูลจำนวนมาก (bulk extraction) |
| 5 | Token ไม่หมดอายุ | เมื่อ copyright ได้ token มาแล้ว ใช้ได้ต่อเนื่องโดยไม่ต้อง copyright ใหม่ |
| 6 | ไม่มี MFA | ไม่มีการยืนยันตัวตนแบบสองชั้น |
| 7 | บัญชีต้องสงสัย | ชื่อผู้ใช้ไม่ตรงกับรูปแบบขององค์กร สงสัยว่าผู้โจมตีอาจสร้างบัญชีเองได้ |
ผลการทดสอบจริง
ผู้รายงานได้ทดสอบเรียก API `GetPersonData` โดย เลือกทดสอบกับบุคคลสาธารณะ เพื่อลดผลกระทบต่อบุคคลทั่วไป
ผลลัพธ์จาก API (ทดสอบวันที่ 20 มีนาคม 2569)
"address": "●●/●",
"birthdate": "2509●●●●",
...
"fname": "อนุทิน",
"lname": "ชาญวีรกูล",
"fpid": "3●●●●●●●●●●41", // เลขบัตรบิดา
"mpid": "3●●●●●●●●●●59", // เลขบัตรมารดา
"person_id": "3●●●●●●●●●●67", // เลขบัตรตนเอง
"primaryprovince_name": "บุรีรัมย์",
...
"full_name": "อนุทิน ชาญวีรกูล",
"result": "ok"
ข้อมูลที่รั่วไหล
ข้อมูลที่ API ส่งกลับมาครอบคลุม 50 fields แบ่งตามระดับความอ่อนไหว:
| หมวด | ตัวอย่างข้อมูล | ระดับความอ่อนไหว |
|---|---|---|
| ข้อมูลพื้นฐาน | เลขบัตรประชาชน 13 หลัก, ชื่อ-นามสกุล, เพศ, วันเกิด, สถานะทะเบียนบ้าน | ???? สูงมาก |
| ที่อยู่ | บ้านเลขที่, หมู่, ตำบล, อำเภอ, จังหวัด (ที่อยู่เต็ม) | ???? สูงมาก |
| ข้อมูลครอบครัว | ชื่อ-นามสกุลบิดา-มารดา, เลขบัตรประชาชนบิดา-มารดา | ???? สูงมาก |
| สิทธิรักษาพยาบาล | ชื่อสิทธิ (บัตรทอง/ประกันสังคม), สถานพยาบาลหลัก | ???? สูง |
สิ่งที่น่าตกใจที่สุด คือ API ส่งคืน "เลขบัตรประชาชนของบิดาและมารดา" มาด้วย นี่คือต้นเหตุหลักของการรั่วไหลในวงกว้าง
ภัยคุกคามที่เป็นไปได้
| ภัยคุกคาม | อธิบาย |
|---|---|
| ???? Identity Theft | ใช้ข้อมูลเปิดบัญชี, สมัครสินเชื่อ หรือทำ KYC ปลอม |
| ???? Social Engineering | ใช้ข้อมูลครอบครัวหลอกลวงเหยื่อ (เช่น แก๊งคอลเซ็นเตอร์อ้างเรื่องญาติ) |
สิ่งที่ประชาชนควรรู้
หากคุณ มีสิทธิบัตรทอง ประกันสังคม หรือสิทธิข้าราชการ ข้อมูลของคุณอาจถูกเข้าถึงได้ ควรปฏิบัติดังนี้:
- ระวังการติดต่อที่น่าสงสัย: อย่าเชื่อทันทีหากมีคนอ้างว่าเป็นเจ้าหน้าที่และรู้ข้อมูลส่วนตัวคุณ
- อย่าให้ข้อมูลเพิ่ม: มิจฉาชีพอาจใช้ข้อมูลที่รู้มาหลอกถามข้อมูลทางการเงินเพิ่ม
- ตรวจสอบเครดิตบูโร: หากกังวลเรื่องการนำชื่อไปแอบอ้างกู้เงิน
Disclaimer: รายงานฉบับนี้จัดทำเพื่อแจ้งเตือนสาธารณะเกี่ยวกับช่องโหว่ที่ได้รับการแก้ไขแล้ว
ไม่มีการเปิดเผยข้อมูลทางเทคนิคที่นำไปใช้โจมตีได้ ผู้เขียนเชื่อว่าประชาชนมีสิทธิ์ทราบเมื่อข้อมูลตนอาจได้รับผลกระทบ
click here