FixVibe
Covered by FixVibecritical

SQL Injection: Өгөгдлийн санд зөвшөөрөлгүй нэвтрэхээс урьдчилан сэргийлэх

SQL injection (SQLi) нь халдагчид програмын мэдээллийн сангийн асуулгад саад учруулдаг чухал эмзэг байдал юм. Хортой SQL синтакс оруулснаар халдагчид нэвтрэлт танилтыг алгасах, нууц үг, зээлийн картын мэдээлэл гэх мэт нууц мэдээллийг харах, бүр үндсэн серверийг эвдэх боломжтой.

CWE-89

SQL Injection-ийн нөлөө

SQL тарилга (SQLi) нь халдагчид [S1] өгөгдлийн санд аппликешн хийж буй асуулгад саад учруулах боломжийг олгодог. Үндсэн нөлөөлөл нь хэрэглэгчийн нууц үг, зээлийн картын мэдээлэл, [S1] гэх мэт нууц мэдээлэлд зөвшөөрөлгүй хандах явдал юм.

Өгөгдлийн хулгайгаас гадна халдагчид өгөгдлийн сангийн бүртгэлийг ихэвчлэн өөрчлөх эсвэл устгах боломжтой бөгөөд энэ нь програмын үйл ажиллагаанд байнгын өөрчлөлт оруулах эсвэл [S1] өгөгдлийг алдахад хүргэдэг. Ноцтой тохиолдлуудад SQLi-ийг арын дэд бүтцийг эвдэх, үйлчилгээ үзүүлэхээс татгалзах халдлагыг идэвхжүүлэх эсвэл байгууллагын системд байнгын арын хаалгаар хангахын тулд эрчимжүүлж болно.

Үндсэн шалтгаан: Оролтын аюулгүй ажиллагаа

SQL тарилгын үндсэн шалтгаан нь [S2] SQL командад ашигласан тусгай элементүүдийг буруу саармагжуулах явдал юм. Энэ нь програм нь гадны нөлөөллийн оролтыг [S1][S2] асуулгын мөрөнд шууд холбож SQL асуулга үүсгэх үед тохиолддог.

Оролт нь асуулгын бүтцээс зохих ёсоор тусгаарлагдаагүй тул өгөгдлийн сангийн тайлбарлагч нь хэрэглэгчийн оролтын зарим хэсгийг [S2] шууд өгөгдөл гэж үзэхийн оронд SQL код болгон ажиллуулж болно. Энэ эмзэг байдал нь SELECT мэдэгдэл, INSERT утгууд эсвэл UPDATE мэдэгдлүүд [S1] зэрэг асуулгын янз бүрийн хэсэгт илэрч болно.

Бетоны засвар, нөлөөллийг бууруулах

Параметржүүлсэн асуулга ашиглах

SQL injection-аас урьдчилан сэргийлэх хамгийн үр дүнтэй арга бол [S1] бэлтгэсэн мэдэгдлүүд гэгддэг параметржүүлсэн асуулга ашиглах явдал юм. Хөгжүүлэгчид мөрүүдийг холбохын оронд өгөгдөл болон [S2] кодыг салгах бүтэцтэй механизмуудыг ашиглах ёстой.

Хамгийн бага давуу эрх олгох зарчим

Програмууд нь [S2] даалгавраа биелүүлэхэд шаардагдах хамгийн бага эрхийг ашиглан мэдээллийн санд холбогдох ёстой. Вэб програмын бүртгэл нь захиргааны давуу эрхгүй байх ёстой бөгөөд [S2] функцэд шаардлагатай тусгай хүснэгтүүд эсвэл үйлдлүүдээр хязгаарлагдах ёстой.

Оролтын баталгаажуулалт ба кодчилол

Параметржуулалтыг орлох биш боловч оролтын баталгаажуулалт нь [S2]-ийн хамгаалалтыг гүнзгийрүүлдэг. Аппликейшн нь хүлээн зөвшөөрөгдсөн сайн стратегийг ашиглах ёстой бөгөөд оролт нь хүлээгдэж буй төрөл, урт, [S2] форматтай тохирч байгаа эсэхийг баталгаажуулах ёстой.

FixVibe үүнийг хэрхэн туршиж үздэг

FixVibe хаалгатай active.sqli сканнерийн модулиар дамжуулан SQL тарилгыг аль хэдийн хамарсан. Идэвхтэй скан хийх нь зөвхөн домэйн эзэмшигчийн баталгаажуулалт, баталгаажуулалтын дараа л ажилладаг. Шалгалт нь асуулгын параметр бүхий ижил гарал үүсэлтэй GET төгсгөлийн цэгүүдийг мөлхөж, үндсэн хариултыг тогтоож, SQL-д хамаарах логикийн гажигуудыг хайж, олон саатлын урттай хугацааны баталгаажуулалтын дараа л олдворыг мэдээлдэг. Хадгалах сангийн сканнер нь загвар интерполяцаар бүтээгдсэн SQL дуудлагыг тэмдэглэдэг code.web-app-risk-checklist-backfill-ээр дамжуулан үндсэн шалтгааныг эрт илрүүлэхэд тусалдаг.