Az SQL-befecskendezés hatása
Az SQL-befecskendezés (SQLi) lehetővé teszi a támadók számára, hogy megzavarják azokat a lekérdezéseket, amelyeket egy alkalmazás a [S1] adatbázisában végez. Az elsődleges hatás az érzékeny adatokhoz, például felhasználói jelszavakhoz, hitelkártyaadatokhoz és személyes adatokhoz való jogosulatlan hozzáférést jelent. [S1].
Az adatlopáson túl a támadók gyakran módosíthatják vagy törölhetik az adatbázisrekordokat, ami az alkalmazások viselkedésének tartós megváltozásához vagy adatvesztéshez vezethet. [S1]. Súlyos esetekben a SQLi kiterjeszthető a háttér-infrastruktúra veszélyeztetése, a szolgáltatásmegtagadási támadások lehetővé tétele vagy a szervezet rendszereibe való tartós hátsó ajtó biztosítása érdekében.
Kiváltó ok: Nem biztonságos bevitelkezelés
Az SQL-befecskendezés kiváltó oka a [S2] SQL-parancsban használt speciális elemek nem megfelelő semlegesítése. Ez akkor fordul elő, amikor egy alkalmazás SQL-lekérdezéseket hoz létre úgy, hogy a külsőleg befolyásolt bemeneteket közvetlenül a [S1][S2] lekérdezési karakterláncba fűzi össze.
Mivel a bemenet nincs megfelelően elszigetelve a lekérdezési struktúrától, az adatbázis-értelmező a felhasználói bemenet egyes részeit SQL-kódként hajthatja végre, nem pedig szó szerinti adatként kezeli. [S2]. Ez a sérülékenység a lekérdezés különböző részeiben nyilvánulhat meg, beleértve a SELECT utasításokat, a INSERT értékeket vagy a UPDATE [S1] utasításokat.
Konkrét javítások és enyhítések
Paraméterezett lekérdezések használata
Az SQL-befecskendezés megelőzésének leghatékonyabb módja a paraméterezett lekérdezések, más néven előkészített utasítások [S1]. A karakterláncok összefűzése helyett a fejlesztőknek olyan strukturált mechanizmusokat kell használniuk, amelyek kikényszerítik az adatok és a [S2] kód elkülönítését.
A legkisebb kiváltság elve
Az alkalmazásoknak a feladataikhoz szükséges legalacsonyabb jogosultságokkal kell csatlakozniuk az adatbázishoz. [S2]. A webalkalmazás-fiók nem rendelkezhet rendszergazdai jogosultságokkal, és a funkciójához szükséges konkrét táblákra vagy műveletekre korlátozódhat. [S2].
Bemenet ellenőrzése és kódolása
Bár nem helyettesíti a paraméterezést, a bemeneti érvényesítés mélyreható védelmet biztosít a [S2]. Az alkalmazásoknak ismert-jó elfogadási stratégiát kell használniuk, ellenőrizve, hogy a bemenet megfelel-e a várt típusoknak, hosszoknak és formátumoknak: [S2].
Hogyan teszteli a FixVibe
A FixVibe már lefedi az SQL-befecskendezést a kapuzott active.sqli szkenner modulon keresztül. Az aktív vizsgálatok csak a domain tulajdonjogának ellenőrzése és tanúsítása után futnak le. Az ellenőrzés bejárja az azonos eredetű GET-végpontokat a lekérdezési paraméterekkel, létrehoz egy kiindulási választ, megkeresi az SQL-specifikus logikai anomáliákat, és csak az időzítés megerősítése után jelenti a megállapítást több késleltetési hosszon keresztül. A lerakatvizsgálatok a code.web-app-risk-checklist-backfill révén a kiváltó ok korábbi felderítésében is segítenek, amely megjelöli a sabloninterpolációval épített nyers SQL-hívásokat.
