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

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

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

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

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

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

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

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

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

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

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

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

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

ฐานข้อมูล schema-data-tables-rdbms-relational-cardinality-sql-mysql

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

คำพูดสุดท้าย

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

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

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