SQL injection injection: สูตรโกงสำหรับมืออาชีพ

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

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

หนึ่งในวิธีการทั่วไปในการขโมยข้อมูลที่สำคัญคือการฉีด SQL (SQLi) ซึ่งมีเป้าหมายในเรื่องความปลอดภัยในเว็บแอปพลิเคชันเพื่อฉีดคำสั่ง SQL ที่เป็นอันตรายลงในฐานข้อมูลที่เก็บบันทึกของแอปพลิเคชันเว็บ

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

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

การโจมตีฉีด SQL คืออะไร?

Structured Query Language หรือ SQL เป็นวิธีการจัดการฐานข้อมูลเชิงสัมพันธ์ที่ถูกสร้างขึ้นครั้งแรกในปี 1970 ตั้งแต่นั้นมามันได้กลายเป็นมาตรฐานในระบบการจัดการฐานข้อมูล (DBMS) และสามารถพบได้ในองค์กรที่นับไม่ถ้วนทั่วโลก

เพิ่มเติมเกี่ยวกับความปลอดภัยทางไซเบอร์

  • ความปลอดภัยทางไซเบอร์ในปี 2020: การคาดการณ์แปดอย่างที่น่ากลัว
  • 10 ไซเบอร์ที่สำคัญที่สุดในรอบทศวรรษ
  • วิธีที่จะเป็นโปรรักษาความปลอดภัยทางไซเบอร์: แผ่นโกง
  • นักต้มตุ๋นชื่อดัง Frank Abagnale: อาชญากรรมวันนี้ง่ายขึ้น 4, 000 เท่า

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

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

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

ขึ้นอยู่กับลักษณะของฐานข้อมูล SQL การโจมตี SQLi สามารถให้ผู้โจมตีเข้าถึงระบบปฏิบัติการของเครื่องที่เป็นโฮสต์ซึ่งสามารถอนุญาตให้ผู้โจมตีเข้าถึงเครือข่ายอื่นได้

โดยทั่วไปแล้วการฉีด SQL มาในหนึ่งในสามรูปแบบ: SQLi แบบคลาสสิก (รู้จักกันในแถบ SQLi), SQLi แบบตาบอด (aka Inference SQLi), และ SQL-out-of-band (OOB) SQLi (หรือ SQL เฉพาะ DMS)

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

  • Error-based SQLi ซึ่งเกี่ยวข้องกับการรับเว็บแอพเพื่อโยนข้อผิดพลาด SQL ที่ให้ข้อมูลแก่ผู้โจมตีเกี่ยวกับโครงสร้างของฐานข้อมูลหรือข้อมูลเฉพาะที่พวกเขาต้องการ
  • การโจมตีบนพื้นฐานของ UNION ซึ่งใช้ตัวดำเนินการ SQL UNION เพื่อกำหนดโครงสร้างของฐานข้อมูลเฉพาะเพื่อดึงข้อมูล

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

อย่างไรก็ตามการโจมตีแบบ blind ทำให้เว็บแอพทำงานในลักษณะต่าง ๆ ขึ้นอยู่กับว่าฐานข้อมูลตอบสนองกับเคียวรี SQL อย่างไร จากนั้นผู้โจมตีสามารถอนุมานโครงสร้างของฐานข้อมูลตามวิธีที่เว็บแอปตอบสนองทำให้พวกเขาสามารถสร้างสำเนาของฐานข้อมูลอักขระทีละตัวอักษร

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

SQLi ที่ไม่ อยู่ในย่าน ความถี่ นั้นเป็นวิธีการทั่วไปที่ใช้โจมตีเซิร์ฟเวอร์ SQL ได้น้อยกว่ามาก มันขึ้นอยู่กับคุณสมบัติบางอย่างของฐานข้อมูล SQL ที่จะเปิดใช้งาน; หากฟีเจอร์เหล่านั้นไม่ใช่การโจมตีของ OOB จะไม่สำเร็จ

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

มีการโจมตี SQLi ประเภทที่สี่อยู่ แต่แยกออกจากรายการด้านบนเนื่องจากเกี่ยวข้องกับการรวมการโจมตี SQLi เข้ากับการโจมตีไซเบอร์อื่น ๆ

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

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

แหล่งข้อมูลเพิ่มเติม

  • เหตุใดการโจมตี SQL injection จึงสำเร็จ: รายงาน Ponemon ให้ข้อมูลเชิงลึกที่น่าสนใจ (TechRepublic)
  • โจมตีการฉีด SQL: มันคืออะไรและวิธีการป้องกันมัน (ZDNet)
  • เข้าถึงข้อมูลสำหรับ 70% ของเว็บไซต์สหรัฐอเมริกาและสหภาพยุโรปชั้นนำที่มีการขายบนเว็บมืด (TechRepublic)
  • Steam bug อาจช่วยให้คุณสามารถเข้าถึงปุ่ม CD ทั้งหมดของเกมใดก็ได้ (ZDNet)
  • 75% ของเซิร์ฟเวอร์ Redis สาธารณะที่ติดไวรัส นี่คือวิธีแก้ไข (TechRepublic)

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

ความเสี่ยงขององค์กรสำหรับการโจมตีของ SQLi นั้นต้องมีคุณสมบัติตามเกณฑ์สองข้อคือ: มีเว็บไซต์และให้เว็บไซต์นั้นโต้ตอบกับฐานข้อมูล SQL

หากไม่มีการรักษาความปลอดภัยที่เหมาะสมและเนื่องจากมีรายงานว่าบางอุตสาหกรรมต้องเผชิญกับการโจมตีไซเบอร์มากกว่า 1, 000 ครั้งต่อวันจึงเป็นเรื่องง่ายที่จะจินตนาการว่าผู้ตกเป็นเหยื่อการโจมตีด้วย SQLi

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

แอปพลิเคชันบนเว็บที่ขับเคลื่อนด้วยข้อมูลคือแอปใด ๆ ที่เปลี่ยนแปลงพฤติกรรมของมันตามข้อมูลที่ผู้ใช้ป้อน ตัวอย่างของแอปพลิเคชั่นที่ขับเคลื่อนด้วยข้อมูลรวมถึง:

  • สำรวจแอพ
  • แอปที่สร้างรายงาน
  • ค้นหาแอพ
  • สมุดเยี่ยม
  • แอปพลิเคชันเวิร์กโฟลว์
  • แอพที่สร้างการแจ้งเตือน / เตือนความจำ; และ
  • เว็บไซต์โซเชียลมีเดีย

แอปพลิเคชั่นเว็บประเภทเหล่านี้ทั้งหมดและอื่น ๆ อาจมีความเสี่ยงสูงที่จะถูกโจมตีจาก SQLi

ด้วยข้อมูลทั้งหมดที่อาจเกิดขึ้นเพื่อคว้ามันเป็นเรื่องง่ายที่จะเห็นสิ่งที่สามารถกลายเป็นขององค์กรที่ประสบการโจมตีของ SQLi โดยเฉพาะอย่างยิ่งเอฟเฟกต์จากการฉีด SQL ที่ประสบความสำเร็จอาจรวมถึง:

  • ผู้โจมตีที่สร้างสำเนาของฐานข้อมูลทั้งหมด (หรือบางส่วน)
  • ผู้โจมตีปลอมแปลงข้อมูลการเข้าสู่ระบบปลอมตัวเป็นผู้ใช้หรือแม้กระทั่งข้ามการตรวจสอบสิทธิ์โดยสิ้นเชิง
  • การดัดแปลงฐานข้อมูล (เช่นการเปลี่ยนแปลงการลบหรือการเพิ่มบันทึก);
  • การโจรกรรมไฟล์ที่ไม่ใช่ฐานข้อมูลที่อยู่ในระบบไฟล์ของ DMBS
  • การดำเนินการตามคำสั่งของระบบปฏิบัติการที่ให้ผู้โจมตีเข้าถึงสินทรัพย์อื่น ๆ บนเครือข่ายที่โฮสต์ฐานข้อมูล SQL และ
  • เคาะเว็บแอปพลิเคชันเป้าหมาย / DBMS ออฟไลน์

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

แหล่งข้อมูลเพิ่มเติม

  • 10 สัญญาณเตือนเว็บมืดว่าองค์กรของคุณถูกละเมิด (TechRepublic)
  • ระเบียนข้อมูลมากกว่าสี่พันล้านรายการถูกขโมยในปี 2559 (ZDNet)
  • เริ่มต้นที่ $ 40 แฮกเกอร์สามารถโจมตีธุรกิจของคุณด้วยบริการที่ซื้อบนเว็บที่มืด (TechRepublic)
  • ข้อผิดพลาดของ SQLite ส่งผลต่อแอพนับพันรวมถึงเบราว์เซอร์ที่ใช้ Chromium ทั้งหมด (ZDNet)
  • แฮกเกอร์หันไปขโมยข้อมูลและขายคืนใน Dark Web เพื่อการจ่ายเงินที่สูงขึ้น (TechRepublic)

ตัวอย่างของการโจมตี SQL injection ที่ประสบความสำเร็จคืออะไร?

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

  • ในปี 2545 มีการค้นพบช่องโหว่ในเว็บไซต์แบรนด์แฟชั่นของ Guess ที่เปิดเผยชื่อหมายเลขบัตรเครดิตและวันหมดอายุของลูกค้ากว่า 200, 000 ราย
  • ในปี 2549 แฮกเกอร์ที่ถูกกล่าวหาว่ามาจากรัสเซียบุกเข้าไปในเว็บไซต์รัฐบาลของรัฐโรดไอแลนด์และขโมยหมายเลขบัตรเครดิตมากกว่า 4, 000 หมายเลข
  • ในปี 2550 แฮ็กเกอร์ที่ดำเนินการโดย rEmOtEr ใช้การโจมตีด้วยการฉีด SQL เพื่อทำลายเว็บไซต์ในสหราชอาณาจักรของ Microsoft การโจมตีไม่ได้ส่งผลให้เกิดการโจรกรรมข้อมูลใด ๆ
  • ในปี 2008 รีจิสทรีของผู้กระทำความผิดทางเพศและความรุนแรงของโอคลาโฮมาพบว่ามีความเสี่ยงต่อการโจมตีของ SQLi ที่อนุญาตให้ผู้โจมตีสามารถดาวน์โหลดมากกว่า 10, 000 บันทึกผู้กระทำผิด (รวมถึงหมายเลขประกันสังคม)
  • ในปี 2009 รัฐบาลสหรัฐได้ตั้งข้อหาอัลเบิร์ตกอนซาเลสและผู้สมรู้ร่วมคิดสองคนโดยใช้การโจมตีของ SQLi เพื่อขโมยหมายเลขบัตรเครดิตกว่า 130 ล้านใบจาก 7-Eleven และ บริษัท อื่น ๆ อีกหลายแห่ง
  • ในปี 2554 แฮ็กเกอร์ที่เป็นสมาชิกของ Anonymous ใช้ SQLi เพื่อลงเว็บไซต์ HBGary บริษัท รักษาความปลอดภัยด้านไอทีหลังจากที่ซีอีโออ้างว่าเขาเปิดเผยตัวตนของสมาชิกที่ไม่เปิดเผยตัว
  • ในปี 2012 แฮ็กเกอร์จาก Team GhostShell ตีพิมพ์บันทึกส่วนตัว 36, 000 ชุดซึ่งเป็นของนักศึกษาอาจารย์และเจ้าหน้าที่ในมหาวิทยาลัยกว่า 53 แห่งที่พวกเขาขโมยโดยใช้ SQLi
  • ในปี 2013 กลุ่ม RedHack ใช้ SQLi เพื่อบุกเข้าไปในเว็บไซต์ของรัฐบาลตุรกีและลบหนี้ของประชาชนไปยังหน่วยงานรัฐบาลต่างๆ
  • ในปี 2014 นักวิจัยด้านความปลอดภัยสามารถใช้การโจมตี SQLi แบบปิดบังเพื่อขโมยข้อมูลผู้ใช้และได้รับสิทธิ์การเข้าถึงระดับผู้ดูแลระบบไปยังเว็บไซต์ของ Tesla
  • ในปี 2015 เว็บไซต์ crowdfunding Patreon ถูกแฮ็คโดยใช้การโจมตีของ SQLi การละเมิดนั้นร้ายแรงมากจนผู้โจมตีไม่เพียงรับข้อมูลรหัสผ่านและบันทึกการบริจาคเท่านั้นพวกเขาสามารถขโมยซอร์สโค้ดของ Patreon ได้
  • ในปี 2559 เด็กชายชาวฟินแลนด์อายุ 10 ปีชื่อ Jani พบช่องโหว่ SQLi ที่อนุญาตให้เขาลบความคิดเห็นในบัญชีผู้ใช้ Instagram คนอื่น
  • ในปี 2560 ฐานข้อมูลการลงทะเบียนผู้มีสิทธิเลือกตั้งของคณะกรรมการการเลือกตั้งรัฐอิลลินอยส์ถูกแฮ็คโดยใช้การโจมตี SQLi
  • ในปี 2561 ช่องโหว่ที่พบใน Prime License Manager ของซิสโก้ (ตอนนี้ได้รับการแก้ไขแล้ว) ทำให้ผู้โจมตีสามารถแก้ไขฐานข้อมูลการจัดการใบอนุญาตและได้รับสิทธิ์เชลล์ระดับสูงในระบบที่มีช่องโหว่
  • ในปี 2019 ข้อบกพร่องที่ค้นพบในเว็บไซต์วิดีโอเกมยอดนิยม Fortnite อาจทำให้ผู้โจมตีสามารถเข้าถึงบัญชีผู้ใช้ผ่านการโจมตีของ SQLi

แหล่งข้อมูลเพิ่มเติม

  • 3 จากภัยคุกคามที่ใหญ่ที่สุดที่รัฐบาลและภาคธุรกิจเผชิญอยู่ตามข้อมูลของ Akamai Technologies (TechRepublic)
  • WordPress แก้ไขข้อผิดพลาดการฉีด SQL ในรีลีสความปลอดภัย (ZDNet)
  • รายงาน: เว็บแอปพลิเคชั่นโจมตี 69% ในไตรมาส 3 ปี 2560 นี่คือสิ่งที่ต้องทำ (TechRepublic)
  • บั๊กนี้ปล่อยให้นักวิจัยข้ามเครื่องมือรักษาความปลอดภัยของไซต์ GoDaddy (ZDNet)

ฉันจะป้องกันการโจมตี SQL injection กับองค์กรของฉันได้อย่างไร

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

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

สำหรับขั้นตอนการป้องกันหน้าการป้องกัน SQLi ของ OWASP มีวิธีการป้องกันตัวเองอย่างยอดเยี่ยม (รวมถึงรายละเอียดและตัวอย่างเพิ่มเติม) หมายเหตุ : กลยุทธ์เหล่านี้สามารถใช้เพื่อปกป้องฐานข้อมูลอื่นเช่น XPath และ XQuery ได้เช่นกัน นี่คือภาพรวมของสิ่งที่ OWASP แนะนำ

1. ใช้ข้อความที่เตรียมไว้แทนที่จะเป็นคิวรีแบบไดนามิก

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

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

2. ใช้กระบวนงานที่เก็บไว้

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

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

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

3. ใช้การตรวจสอบอินพุต

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

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

4. Escape อินพุตทั้งหมดที่ผู้ใช้จัดหา

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

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

วิธีการป้องกันเพิ่มเติม

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

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

แหล่งข้อมูลเพิ่มเติม

  • เคล็ดลับเพื่อป้องกันอันตรายที่เพิ่มขึ้นจากการโจมตีการฉีด SQL (TechRepublic)
  • Microsoft, Google apps คุณสมบัติในช่องโหว่ 20 อันดับแรกในสภาพแวดล้อมขององค์กร (ZDNet)
  • Top 5: ความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้องกับเว็บแอพ (TechRepublic)
  • เครื่องมือโอเพนซอร์สใหม่ของ Microsoft สามารถสแกนเว็บไซต์ของคุณเพื่อความปลอดภัยและปวดหัวประสิทธิภาพ (ZDNet)
  • รายงาน: 100% ของเว็บแอปมีช่องโหว่ด้านความปลอดภัยอย่างน้อยหนึ่งรายการ (TechRepublic)
  • ความปลอดภัยออนไลน์ 101: เคล็ดลับในการปกป้องความเป็นส่วนตัวของคุณจากแฮกเกอร์และสายลับ (ZDNet)
  • นโยบายความตระหนักและความปลอดภัย (TechRepublic Premium)

จดหมายข่าวภายในไซเบอร์ปลอดภัย

เสริมสร้างการป้องกันความปลอดภัยด้านไอทีขององค์กรของคุณโดยการติดตามข่าวสารล่าสุดของการรักษาความปลอดภัยบนโลกไซเบอร์โซลูชั่นและแนวทางปฏิบัติที่ดีที่สุด จัดส่งวันอังคารและวันพฤหัสบดี

สมัครวันนี้ ภาพ: ValeryBrozhinsky, Getty Images / iStockphoto

© Copyright 2020 | mobilegn.com