การรวบรวมชื่อบัญชีผู้ใช้โดยสังเกตุจากระบบแจ้งการลงทะเบียนบัญชีซ้ำ
Information Gathering
อธิบาย (Description)
เป็นการรวบรวมข้อมูลชื่อบัญชีผู้ใช้ (Username) โดยใช้ข้อมูลตอบกลับจากเครื่องให้บริการ (Server) ที่บ่งบอกให้ผู้ใช้ทราบว่า บัญชีผู้ใช้ (Username) ดังกล่าวมีอยู่ในระบบ
ระบบอาจถูกออกแบบให้ตรวจสอบบัญชีผู้ใช้ ว่าซ้ำหรือไม่ ก่อนอนุญาตให้การลงทะเบียนเสร็จสมบูรณ์ เช่น “UserID นี้มีอยู่ในระบบกรุณาเปลี่ยนชื่ออื่น” หรือแสดงรายละเอียดของผู้ใช้ที่มีอยู่ในฐานข้อมูลอยู่แล้ว (Existing user profiles) ก่อนยืนยันจะลงทะเบียนเสร็จสิ้น เป็นต้น
ปัจจัยที่จะทำให้ประสบความสำเร็จ (Successful factors)
- ชื่อบัญชีผู้ใช้ง่ายต่อการคาดเดาระบบ เช่น เบอร์โทรศัพท์ หมายเลขบัตรประชาชน ชื่อบัญชีผู้ใช้ตั้งแต่ติดตั้งระบบ (Default username) หรือ อีเมลล์
- ไม่มีการป้องกันการโจมตีโดยเครื่องมืออัตโนมัติ (Automated tools)
วิธีแก้ไข (Solution)
การแก้ไขมีทางเลือกหลายทางเพื่อพิจารณาร่วมกันดังนี้
- ใช้ CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart)
- ใช้ OTP (One Time Password)
- อาจตรวจสอบปฎิเสธการให้บริการชั่วคราว จาก “IP Address” ซ้ำ ๆ ที่ร้องขอลงทะเบียนหรือตรวจสอบชื่อบัญชีผู้ใช้จำนวนมาก เช่น 20 ครั้งใน 1 นาทีเป็นต้น
- จะต้องไม่มีการแสดงข้อมูลผู้ใช้งานจากฐานข้อมูล ในกรณีที่ผู้ใช้กรอก UserId ตรงกับฐานข้อมูล
ตัวอย่างการตรวจสอบช่องโหว่