SQL Injection: ยังคงเป็นภัยคุกคามอยู่หรือไม่? คุณจะหลีกเลี่ยงได้อย่างไร

เผยแพร่แล้ว: 2020-03-07

การละเมิดข้อมูลเป็นเรื่องปกติจนไม่น่าแปลกใจอีกต่อไป ผู้ประสงค์ร้ายมีเป้าหมายที่จะรวบรวมข้อมูลให้ได้มากที่สุด ข้อมูลบัตรเครดิต หรือความลับทางการค้า เมื่อพวกเขาได้รับข้อมูลดังกล่าวแล้วพวกเขาก็ขายมันบนเว็บมืด

หากคุณไม่สามารถเข้าใจได้ว่าพวกเขาขโมยข้อมูลไปมากน้อยเพียงใด และพวกเขาทิ้งข้อมูลบนเว็บมืดไปมากน้อยเพียงใด นี่คือตัวเลขที่น่าเป็นห่วง ปีที่แล้ว อาชญากรขโมยและขายบัญชี 620 ล้านบัญชีจากเว็บไซต์ที่ถูกแฮ็ก 16 แห่งเพียงอย่างเดียว ใช่ การแฮ็กเว็บไซต์สิบหกแห่งอาจสร้างความเสียหายได้มากมาย แต่คุณรู้ไหมว่าอะไรที่แย่กว่านั้น? ไซต์ใหม่นับพันถูกแฮ็กทุกวัน!

อาชญากรไซเบอร์คิดค้นวิธีการแฮ็กใหม่ๆ ทุกวัน แต่ก็ไม่ได้หมายความว่าพวกเขาลืมเทคนิคเก่าๆ เช่น SQL Injections พวกเขายังคงเป็นหนึ่งในเวกเตอร์การโจมตีที่พบบ่อยที่สุดซึ่งง่ายต่อการดำเนินการและให้ผลลัพธ์ที่ประสบความสำเร็จ

แสดง สารบัญ
  • SQL Injection คืออะไร และเหตุใดจึงเป็นอันตราย
  • การฉีด SQL ทำงานอย่างไร
    • การฉีด SQL ในวง
    • การฉีด SQL ตาบอด
    • การฉีด SQL นอกแบนด์
  • ภัยคุกคามนี้ยังคงเกี่ยวข้องหรือไม่?
  • เคล็ดลับความปลอดภัยสำหรับการป้องกัน
  • คำสุดท้าย

SQL Injection คืออะไร และเหตุใดจึงเป็นอันตราย

ภาษาโปรแกรม SQL

SQL Injection หรือที่เรียกว่า SQLi เป็นรูปแบบหนึ่งของการโจมตีแบบฉีดซึ่งทำให้แฮ็กเกอร์สามารถเรียกใช้คำสั่ง SQL ได้ การโจมตีด้วยการฉีดเป็นประเภทกว้างๆ ของเวกเตอร์การโจมตีที่แตกต่างกัน แต่พวกเขาทั้งหมดอนุญาตให้นักแสดงที่เป็นอันตรายดำเนินการป้อนข้อมูลที่เป็นอันตราย พวกเขาทำหน้าที่เป็นคำสั่งระบบซึ่งจะดำเนินการแล้ว

คำสั่ง SQL มักใช้เพื่อเพิ่มหรือดึงข้อมูลจากฐานข้อมูลต่างๆ ระบบการจัดการที่มีชื่อเสียงจำนวนมาก เช่น Microsoft SQL Server, Access และ Oracle ใช้คำสั่งเหล่านี้

เนื่องจากระบบการจัดการฐานข้อมูลที่ใช้กันอย่างแพร่หลายจำนวนมากใช้คำสั่ง SQL แฮ็กเกอร์จึงสามารถใช้ประโยชน์จากระบบเหล่านี้ผ่านการแทรก SQL หมายความว่าอาชญากรสามารถเข้าถึงและขโมยข้อมูลสำคัญที่เก็บไว้ในฐานข้อมูลได้ อาจรวมถึงสิ่งต่อไปนี้:

  • ทรัพย์สินทางปัญญา.
  • ข้อมูลบัตรเครดิต
  • ข้อมูลลูกค้า.
  • ที่อยู่
  • ความลับของบริษัท
การฉีด SQL ส่งผลให้เกิดการขโมยข้อมูลที่ละเอียดอ่อน อาจส่งผลร้ายแรงต่อธุรกิจ รัฐบาล หรือองค์กรใดๆ เหตุการณ์ดังกล่าวอาจสร้างความเสียหายต่อการดำเนินงานของบริษัท ชื่อเสียงของบริษัท และอาจนำมาซึ่งค่าปรับจำนวนมากที่บังคับใช้โดยหน่วยงานกำกับดูแลการปกป้องข้อมูล
 แนะนำสำหรับคุณ: Chrome vs Firefox: การเปรียบเทียบประสิทธิภาพ ความปลอดภัย และความเป็นส่วนตัว!

การฉีด SQL ทำงานอย่างไร

ฐานข้อมูลสคีมาข้อมูลตาราง rdbms สัมพันธ์จำนวนนับ sql-mysql

ในการดำเนินการโจมตีด้วยการฉีด SQL แฮ็กเกอร์จะต้องค้นหาอินพุตของผู้ใช้ที่มีช่องโหว่ภายในเว็บไซต์หรือแอปพลิเคชันภายในของบริษัท

ตัวอย่างเช่น เหยื่อใช้ WordPress สำหรับเว็บไซต์ของตน รหัสอาจมีช่องโหว่ของ SQL ที่ส่งข้อมูลผู้ใช้โดยตรงไปยังฐานข้อมูลโดยไม่มีการฆ่าเชื้อใดๆ หากแฮ็กเกอร์พบช่องโหว่ดังกล่าว พวกเขาสามารถส่งคำสั่งไปยังฐานข้อมูลที่ต้องการได้ จากนั้น เอาต์พุตของฐานข้อมูลจะกลับไปที่เบราว์เซอร์และทำให้แฮ็กเกอร์สามารถดำเนินการคำสั่งต่างๆ ได้ ด้วยวิธีนี้ พวกเขาสามารถดาวน์โหลดฐานข้อมูลทั้งหมด ตั้งค่าคำสั่งใหม่ แก้ไขบัญชีผู้ใช้ หรือสร้างบัญชีใหม่

มีสามรูปแบบหลักของการโจมตีด้วยการฉีด SQL:

  • การฉีด SQL ในวง:
    • การฉีด SQL ตามข้อผิดพลาด
    • การฉีด SQL แบบอิงยูเนี่ยน
  • การฉีด SQL ตาบอด:
    • บูลีน
    • ตามเวลา
  • การฉีด SQL นอกแบนด์

การฉีด SQL ในวง

In-band SQL injection เป็นหนึ่งในประเภทที่พบมากที่สุดเนื่องจากง่ายและมีประสิทธิภาพ ที่นี่ ผู้โจมตีใช้ช่องทางการสื่อสารเดียวกันเพื่อดำเนินการโจมตีและรวบรวมผลลัพธ์ มีสองรูปแบบย่อย - การฉีด SQL แบบอิงตามข้อผิดพลาดและแบบยูเนี่ยน:

  • การฉีด SQL ตามข้อผิดพลาด ช่วยให้แฮ็กเกอร์สามารถทำให้ฐานข้อมูลสร้างข้อความแสดงข้อผิดพลาดได้ จากนั้น พวกเขาสามารถใช้ข้อความแสดงข้อผิดพลาดเหล่านี้เพื่อรวบรวมข้อมูลเกี่ยวกับตัวฐานข้อมูลเอง
  • การแทรก SQL แบบอิงยูเนี่ยน ช่วยให้ผู้ร้ายสามารถใช้ประโยชน์จากตัวดำเนินการ UNION SQL มันรวมคำสั่งต่าง ๆ ที่ฐานข้อมูลให้มาเพื่อรับการตอบสนอง HTTP เดียว การตอบสนองดังกล่าวมักจะมีข้อมูลที่แฮ็กเกอร์สามารถใช้ประโยชน์ได้

การฉีด SQL ตาบอด

การฉีด SQL แบบตาบอดขึ้นอยู่กับรูปแบบพฤติกรรมของเซิร์ฟเวอร์ พวกเขาดำเนินการช้ากว่ามาก แฮ็กเกอร์ปล่อยข้อมูลเพย์โหลดและตรวจสอบการตอบสนองของเซิร์ฟเวอร์เพื่อวิเคราะห์โครงสร้าง พวกเขาเรียกสิ่งนี้ว่า "คนตาบอด" เพราะข้อมูลไม่ได้ส่งไปยังแฮ็กเกอร์โดยตรง ดังนั้น พวกเขาจึงไม่สามารถเห็นข้อมูลใด ๆ เกี่ยวกับการหาประโยชน์ในวง มีสองรูปแบบ ได้แก่ Boolean และ Time-based:

  • รูปแบบบูลีน ทำให้แฮ็กเกอร์สามารถส่งแบบสอบถาม SQL ซึ่งจะแจ้งให้ฐานข้อมูลส่งคืนข้อมูล ข้อมูลภายในการตอบสนอง HTTP เปลี่ยนแปลงขึ้นอยู่กับผลลัพธ์ก่อนหน้า
  • การเปลี่ยนแปลงตามเวลา ช่วยให้ผู้ประสงค์ร้ายสามารถส่งแบบสอบถาม SQL ไปยังฐานข้อมูลได้โดยตรง ซึ่งบังคับให้ฐานข้อมูลต้องรอก่อนที่จะสามารถตอบสนองได้ ผู้โจมตีจะสังเกตเห็นเวลาที่จำเป็นสำหรับฐานข้อมูลในการตอบสนองและตัดสินใจว่าแบบสอบถามนั้นเป็นจริงหรือเท็จ ตามผลลัพธ์ การตอบสนอง HTTP ทันทีหรือล่าช้า

การฉีด SQL นอกแบนด์

การฉีด SQL นอกแบนด์ช่วยให้แฮ็กเกอร์สามารถโจมตีฐานข้อมูลได้เฉพาะเมื่อเปิดใช้งานคุณสมบัติเฉพาะบนเซิร์ฟเวอร์ฐานข้อมูล เป็นวิธีการฉีด SQL ที่ได้รับความนิยมน้อยที่สุด แฮ็กเกอร์จำนวนมากใช้แทนการแทรก Error-based และ Blind SQL

การโจมตีเฉพาะนี้เป็นทางเลือกเมื่อแฮ็กเกอร์ไม่สามารถใช้สื่อเดียวกันเพื่อดำเนินการโจมตีและรวบรวมข้อมูลได้ หรือสามารถใช้การฉีดนี้เมื่อเซิร์ฟเวอร์ไม่เสถียรและช้าสำหรับการดำเนินการฉีดอีกสองประเภท เทคนิคนี้สร้างคำขอ DNS และ HTTP เพื่อส่งต่อข้อมูลที่ถูกขโมย

 คุณอาจชอบ: เคล็ดลับการประเมินความเสี่ยงด้านความปลอดภัยทางไซเบอร์และการจัดการสำหรับธุรกิจขนาดเล็ก

ภัยคุกคามนี้ยังคงเกี่ยวข้องหรือไม่?

ความปลอดภัยทางไซเบอร์การป้องกันความเป็นส่วนตัวการเข้ารหัสความปลอดภัยรหัสผ่านไฟร์วอลล์การเข้าถึง

การฉีด SQL เป็นหนึ่งในรูปแบบการโจมตีทางไซเบอร์เชิงรุกที่เก่าแก่ที่สุดรูปแบบหนึ่ง แต่ก็ยังมีความเกี่ยวข้องอยู่มาก Open Web Application Security Project ระบุการแทรก SQL เป็นภัยคุกคามอันดับหนึ่งเมื่อสองปีก่อน Akamai ผู้ให้บริการระบบคลาวด์ได้สร้างรายงานสถานะของอินเทอร์เน็ต ซึ่งพบว่าการแทรก SQL มีส่วนทำให้เกิดการโจมตีบนเว็บถึง 65% ตั้งแต่ปี 2560 ถึง 2562 คุณจึงพูดได้ว่าการแทรก SQL ยังคงปรากฏอยู่ในสองในสามของการโจมตีเว็บ ในปีที่ผ่านมา.

ในไตรมาสแรกของปี 2017 เวกเตอร์เหล่านี้มีส่วนรับผิดชอบต่อการโจมตีในระดับแอปพลิเคชันถึง 44% ที่แย่ไปกว่านั้น ไม่มีเวกเตอร์การโจมตีแอปพลิเคชันรูปแบบอื่นใดที่เติบโตเร็วเท่ากับการฉีด SQL ในเดือนพฤศจิกายน 2018 มีการเพิ่มขึ้นอย่างมากอีกครั้งหนึ่ง แสดงให้เห็นว่ามีการพยายามโจมตีด้วยการฉีด SQL มากกว่า 35 ล้านครั้ง ผู้เชี่ยวชาญคิดว่าสาเหตุหลักของการเพิ่มขึ้นอย่างรวดเร็วนี้คือช่วงเทศกาลวันหยุด เป็นสิ่งที่เจ้าของเว็บไซต์ทุกคนควรทราบ โดยเฉพาะอย่างยิ่งหากพวกเขาอยู่ในอุตสาหกรรมค้าปลีก แต่แม้หลังจากช่วงเทศกาลวันหยุดสิ้นสุดลงแล้ว การแทรก SQL ยังคงเป็นภัยคุกคามที่คุณต้องระวัง

สหรัฐอเมริกาเป็นเป้าหมายสูงสุดสำหรับการโจมตีชั้นแอปพลิเคชัน ต้องเผชิญกับการโจมตีราว 3 พันล้านครั้งในเวลาเพียง 17 เดือน เหยื่อที่ได้รับความนิยมอื่นๆ ได้แก่ สหราชอาณาจักร เยอรมนี บราซิล อินเดีย ญี่ปุ่น แคนาดา ออสเตรเลีย อิตาลี และเนเธอร์แลนด์ ดังนั้นจึงปลอดภัยที่จะสันนิษฐานว่ามันยังคงเป็นภัยคุกคามขนาดใหญ่ และทุกบริษัทควรใช้มาตรการป้องกันที่ครอบคลุม

เคล็ดลับความปลอดภัยสำหรับการป้องกัน

แนวทางปฏิบัติที่ดีที่สุดสำหรับนักพัฒนาคือการแนะนำมาตรการป้องกันล่วงหน้าเพื่อป้องกันการโจมตีไม่ให้เกิดขึ้น นี่คือมาตรการป้องกันที่มีประสิทธิภาพสูงสุด:

  • การตรวจสอบความถูกต้องของข้อมูล: การตรวจสอบความถูกต้องของข้อมูลจะตรวจสอบว่าการป้อนข้อมูลของผู้ใช้รายใดได้รับอนุญาตหรือไม่ ซึ่งหมายความว่าจะต้องยอมรับรูปแบบ ความยาว และประเภทโดยรวม มีประโยชน์สำหรับการต่อสู้กับคำสั่งที่แฮ็กเกอร์วางไว้ในสตริงอินพุต
  • Parameterized Query: Parameterized Query เป็นวิธีการคอมไพล์คำสั่ง SQL ต่างๆ ไว้ล่วงหน้า จากนั้นจะเก็บพารามิเตอร์ไว้เพื่อให้สามารถดำเนินการคำสั่งได้ ช่วยให้ฐานข้อมูลสามารถจดจำรหัสและแยกความแตกต่างจากข้อมูลอินพุตปกติ
  • กระบวนงานที่เก็บไว้: พวกเขาต้องการให้นักพัฒนาทำคลัสเตอร์คำสั่ง SQL หนึ่งคำสั่งหรือหลายคำสั่งในหน่วยโลจิคัล เป็นรูปแบบของรหัสที่สามารถจัดเก็บได้ตามชื่อ และบันทึกไว้ในภายหลัง
  • การหลบหนี: นักพัฒนาควรใช้คุณสมบัติการหลบหนีอักขระเพื่อให้แน่ใจว่า DBMS จะไม่สับสนระหว่างอินพุตของผู้ใช้กับคำสั่ง SQL
  • ไฟร์วอลล์สำหรับเว็บแอปพลิเคชัน: เป็นหนึ่งในวิธีที่ปลอดภัยที่สุดในการป้องกันการโจมตีด้วยการฉีด SQL ไฟร์วอลล์จะตรวจสอบการรับส่งข้อมูลที่หมุนเวียนเข้าและออกจากเซิร์ฟเวอร์ โดยจะระบุว่าคำขอใดที่อาจเป็นอันตรายและคำขอใดที่ไม่ โซลูชันนี้เพียงพอสำหรับการหาประโยชน์อื่น ๆ อีกมากมาย ดังนั้นจึงเหมาะสมเสมอ
  • การหลีกเลี่ยงสิทธิ์ของผู้ดูแลระบบ: นักพัฒนาไม่ควรเชื่อมต่อแอพของตนกับฐานข้อมูลผ่านบัญชีที่มีสิทธิ์เข้าถึงระดับรูท มิฉะนั้นแฮ็กเกอร์อาจเข้าถึงระบบทั้งหมดและสร้างความเสียหายที่แก้ไขไม่ได้ ยิ่งกว่านั้น นักพัฒนาควรตรวจสอบให้แน่ใจว่าทุกฐานข้อมูลมีชุดข้อมูลรับรองของตนเองโดยจำกัด
 คุณอาจชอบ: ซอฟต์แวร์รักษาความปลอดภัยอินเทอร์เน็ตที่ขายดีที่สุด 10 อันดับแรก (ป้องกันไวรัสและความปลอดภัย)

คำสุดท้าย

แฮ็คโจมตีหน้ากากไซเบอร์อาชญากรรมไวรัสข้อมูลความปลอดภัย

ใครก็ตามที่กังวลเกี่ยวกับการฉีด SQL ก็ไม่ควรลืมการโจมตีอื่น ๆ ที่อาจเกิดขึ้นเช่นกัน ใช้แนวทางปฏิบัติด้านความปลอดภัยทางไซเบอร์ตามปกติ: ใช้รหัสผ่านที่คาดเดายาก เรียนรู้ที่จะรับรู้ภัยคุกคาม เปิด VPN ทุกครั้งที่คุณเชื่อมต่อกับเว็บไซต์หรือฐานข้อมูล และอื่นๆ VPN คืออะไรและทำหน้าที่อะไร? มันเข้ารหัสการรับส่งข้อมูลออนไลน์ของคุณทุกครั้งที่คุณออนไลน์ ดังนั้น หากคุณส่งคำขอ SQL ไปยังฐานข้อมูลของคุณ ฐานข้อมูลเท่านั้นที่สามารถถอดรหัสได้ หากมีคนสกัดกั้นแพ็กเก็ตข้อมูลที่เป็นปัญหา พวกเขาจะไม่เข้าใจว่าข้อมูลเหล่านั้นคืออะไร ยิ่งคุณหรือบริษัทของคุณพร้อมสำหรับภัยคุกคามทุกรูปแบบมากเท่าไหร่ ก็ยิ่งดีเท่านั้น

มีเพียงการแนะนำมาตรการป้องกันที่ครอบคลุมเท่านั้นที่รับประกันว่าการฉีด SQL หรือการโจมตีจะไม่ประสบความสำเร็จ เตรียมพร้อมที่จะลงทุนเวลา ความพยายาม และเงินจำนวนมากเพื่อให้แน่ใจว่าคุณมีเครื่องมือที่เหมาะสมในการต่อสู้กับการแสวงประโยชน์ต่างๆ