การโจมตีแบบเอสคิวแอล อินเจคชัน (SQL Injection Attacks)
การ โจมตีเครื่องคอมพิวเตอร์แม่ข่ายที่ให้บริการฐานข้อมูล ที่ทำงานในลักษณะเว็บแอพพลิเคชั่น โดยที่ผู้ไม่ประสงค์ดีป้อนอักขระ อักษร หรือชุดคำสั่งลงบนหน้าเว็บเพจที่ให้บริการ แสดงดังภาพที่ 1 โดยอาศัยช่องโหว่ของฐานข้อมูล เพื่อบังคับให้ฐานข้อมูลทำงานบางสิ่งบางอย่าง เช่น ลบข้อมูลในฐานข้อมูล หยุดการให้บริการของฐานข้อมูล หรือแม้กระทั่งหยุดการทำงานของเครื่องคอมพิวเตอร์แม่ข่าย
ภาพที่ 1. ภาพรวมของการโจมตีแบบเอสคิวแอล อินเจคชัน
การพัฒนา ระบบงานในลักษณะเว็บแอพพลิเคชั่น นักพัฒนาส่วนใหญ่จะมุ่งเน้นที่การพัฒนาระบบงานโดยอาจละเลยหรือไม่ได้ให้ความ สนใจในเรื่องความปลอดภัยเท่าที่ควร ทำให้ผู้ไม่ประสงค์ดีสามารถโจมตีเว็บแอพพลิเคชั่น ในขั้นตอนการตรวจสอบการเข้าสู่ระบบ (Authentication) หรือป้อนคำสั่งโจมตีผ่านทางฟอร์มกรอกข้อมูลต่าง ๆ ผ่านเว็บบราวเซอร์ แสดงดังภาพที่ 2
ภาพที่ 2 แสดงการป้อนคำสั่งเอสคิวแอล อินเจคชัน ผ่านทางหน้าจอการเข้าระบบ
การ พัฒนาระบบงานในลักษณะเว็บแอพพลิเคชั่น นักพัฒนาส่วนใหญ่จะมุ่งเน้นที่การพัฒนาระบบงานโดยอาจละเลยหรือไม่ได้ให้ความ สนใจในเรื่องความปลอดภัยเท่าที่ควร ทำให้ผู้ไม่ประสงค์ดีสามารถโจมตีเว็บแอพพลิเคชั่น ในขั้นตอนการตรวจสอบการเข้าสู่ระบบ (Authentication) หรือป้อนคำสั่งโจมตีผ่านทางฟอร์มกรอกข้อมูลต่าง ๆ ผ่านเว็บบราวเซอร์ แสดงดังภาพที่ 3
ภาพที่ 3 แสดงการป้อนคำสั่งเอสคิวแอล อินเจคชัน ผ่านทางหน้าจอการเข้าระบบ
ผู้ ไม่ประสงค์ดีสามารถบิดเบือนคำสั่งเอสคิวแอล สำหรับการเข้าสู่ระบบได้ โดยป้อน ‘or 1=1– ในช่องรหัสผู้ใช้ เมื่อเว็บแอพพลิเคชั่นได้รับคำสั่งเอสคิวแอล จะนำคำสั่งไปรวมกับชุดคำสั่งในภาษาต่าง ๆ เช่น ภาษาเอเอสพี (ASP) ภาษาเจเอสพี (JSP) โดยแสดงตัวอย่างฟังก์ชั่นโปรแกรมภาษาจาวาที่ตรวจสอบสิทธิ์การเข้าใช้ระบบงาน (Authentication) ดังภาพที่ 4
ภาพที่ 4 แสดงฟังก์ชั่นตรวจสอบสิทธิ์การเข้าใช้ระบบงานในภาษาจาวา
ใน ภาพที่ 5 แสดงการเปรียบเทียบคำสั่งเอสคิวแอลปกติกับคำสั่งเอสคิวแอลที่ถูกบิดเบือน ในส่วนของคำสั่งเอสคิวแอลปกติ เมื่อผู้ใช้งานเข้าใช้ระบบงาน โดยทำการป้อนรหัสผู้ใช้ คือ admin แต่ผู้ไม่ประสงค์ดีสามารถบิดเบือนคำสั่งเอสคิวแอลปกติ เป็นคำสั่งเอสคิวแอล อินเจคชัน โดยป้อนคำสั่ง ‘ OR 1=1 — ลงในช่องรหัสผู้ใช้แทนรหัสผู้ใช้ admin และสามารถป้อนรหัสผ่านเป็นค่า ใด ๆ ได้เนื่องจากเมื่อฐานข้อมูลประมวลผลคำสั่งเอสคิวแอล อินเจคชัน โดยเมื่อพบคำสั่ง “–” ฐานข้อมูลจะไม่ประมวลผลคำสั่งอื่น ๆ ต่อจากคำสั่ง “–” เนื่องจากเป็นคำสั่งคอมเมนต์ (Comment) ที่ฐานข้อมูลอนุญาติให้นักพัฒนาระบบงานเขียนสิ่งต่าง ๆ นอกเหนือจากคำสั่งเอสคิวแอลได้
ภาพที่ 5 การเปรียบเทียบคำสั่งเอสคิวแอลที่รวมเข้ากับภาษาอื่นระหว่างคำสั่งเอสคิว แอลปกติกับคำสั่งเอสคิวแอลที่ถูกบิดเบือนด้วยคำสั่งเอสคิวแอล อินเจคชัน
คำ สั่งเอสคิวแอลที่ถูกบิดเบือนด้วยคำสั่งเอสคิวแอล อินเจคชันนั้น จะพยายามเปลี่ยนแปลงเงื่อนไขคำสั่งเอสคิวแอลให้มีสถานะเป็นจริง (True) เช่น คำสั่งเรียกดูรายชื่อผู้ใช้ระบบที่มีชื่อว่า admin หรือ 1=1 (1=1 สถานะเป็นจริง) ซึ่งทำให้ฐานข้อมูลประมวลผลผิดพลาดและแสดงความผิดพลาดกลับมาสู่เว็บบราว เซอร์ ดังภาพที่ 2-6 โดยจะแสดงถึงเทคโนโลยีที่ใช้ในเชื่อมต่อฐานข้อมูล รวมทั้งชื่อฐานข้อมูล ชื่อฟิลด์ที่ใช้ รวมทั้งแสดงข้อผิดพลาดอื่น ๆ ซึ่งเป็นข้อมูลที่เป็นประโยชน์ของผู้ไม่ประสงค์ดีในการโจมตีเว็บแอพพลิเค ชั่นต่อไป
ภาพที่ 6 ผลลัพท์ที่เกิดขึ้นจากการโจมตีแบบเอสคิวแอล อินเจคชัน
จาก ภาพที่ 6 แสดงให้เห็นถึงเทคโนโลยีที่ใช้ในการเชื่อมต่อฐานข้อมูล และชนิดของฐานข้อมูล ซึ่งจากภาพที่ 6 เว็บแอพพลิเคชั่นใช้ฐานข้อมูลไมโครซอฟต์ ซีควอลเซิร์ฟเวอร์ ดังนั้นหากผู้ไม่ประสงค์ดีต้องการโจมตีในรูปแบบเอสคิวแอล อินเจคชัน เพื่อหยุดการทำงานของฐานข้อมูล สามารถใช้คำสั่ง ‘ OR 1=1 ; exec master..xp_cmdshell ‘iisreset /stop’– ลงในช่องรหัสผู้ใช้แทนรหัสผู้ใช้ admin โดยภายในคำสั่งเอสคิวแอล อินเจคชันนี้ได้บังคับให้ฐานข้อมูลเรียกใช้คำสั่ง iisrest /stop ในระบบปฏิบัติการ (OS) ซึ่งเป็นคำสั่งหยุดการทำงานของเว็บแอพพลิเคชั่น ทำให้ผู้ใช้งานไม่สามารถเข้าระบบได้ ผลลัพท์ที่ได้แสดงดังภาพที่ 7
ภาพที่ 7 แสดงผลลัพท์จากคำสั่งหยุดการทำงานของเว็บแอพพลิเคชั่น
แครดิตไม่รู้ของ ใคร หาไม่เจอ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น