การฉีด SQL: ยังคงเป็นภัยคุกคามหรือไม่? คุณจะหลีกเลี่ยงได้อย่างไร?
เผยแพร่แล้ว: 2020-03-07การละเมิดข้อมูลเป็นเรื่องปกติมากจนไม่น่าแปลกใจอีกต่อไป ผู้มุ่งร้ายมุ่งหวังที่จะรวบรวมข้อมูลให้ได้มากที่สุด ข้อมูลเหล่านี้มาจากข้อมูลประจำตัวในการเข้าสู่ระบบ ข้อมูลบัตรเครดิต หรือความลับทางการค้า เมื่อพวกเขาได้รับข้อมูลดังกล่าวแล้ว พวกเขาก็ขายมันในเว็บมืด
หากคุณไม่เข้าใจว่าพวกเขาขโมยข้อมูลได้มากน้อยเพียงใด และพวกเขาทิ้งข้อมูลไปมากเพียงใดในดาร์กเว็บ นี่คือตัวเลขที่น่าเป็นห่วง ปีที่แล้ว อาชญากรขโมยและขายบัญชี 620 ล้านบัญชีจากเว็บไซต์ที่ถูกแฮ็กเพียง 16 แห่ง ใช่ การแฮ็คเว็บไซต์สิบหกแห่งสามารถนำไปสู่ความเสียหายได้มากมาย แต่คุณรู้ไหมว่าอะไรที่แย่กว่านั้น? ไซต์ใหม่นับพันถูกแฮ็กทุกวัน!
อาชญากรไซเบอร์มีวิธีแฮ็คใหม่ๆ ทุกวัน แต่ไม่ได้หมายความว่าพวกเขาจะลืมเทคนิคเก่าๆ เช่น การฉีด SQL พวกมันยังคงเป็นหนึ่งในเวกเตอร์การโจมตีทั่วไปที่ง่ายต่อการดำเนินการและให้ผลลัพธ์ที่ได้ผล
- SQL Injection คืออะไรและเหตุใดจึงเป็นอันตราย
- การฉีด SQL ทำงานอย่างไร
- การฉีด SQL ในแบนด์
- การฉีด SQL ตาบอด
- การฉีด SQL นอกแบนด์
- ภัยคุกคามนี้ยังมีความเกี่ยวข้องอยู่หรือไม่?
- เคล็ดลับความปลอดภัยสำหรับการป้องกัน
- คำพูดสุดท้าย
SQL Injection คืออะไรและเหตุใดจึงเป็นอันตราย

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

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