SQL Injection (SQLi) sérülékenység javítása, megelőzése
Mi az az SQL Injection sérülékenység, támadás?
Az SQL Injection vagy SQL befecskendezés során a kibertámadó, vagy a feljogosított etikus hacker olyan speciális kódot, karakterláncot (payload) ad meg az online beviteli felületen (keresés, regisztrációs/bejelentkezési űrlap, stb.), ami a szerveroldali feldolgozás során eltéríti az adatbázislekérést és az adatbázis olyan részeihez enged (akár módosítási) hozzáférést, amihez biztosított körülmények között amúgy nem lenne hozzáférése.
Mi az SQL Injection sérülékenység kockázata?
Az adatbázis kiszolgáló (MySQL, Microsoft SQL / MSSQL, Oracle, Firebird, PostgreSQL stb.) nem kezeli és korlátozza megfelelően a felé irányuló kéréseket, aminek eredményeként jogosulatlan felek számára is elérhetővé teszi az adatbázis és/vagy a fájlrendszer egyes részeit.
Hogyan javítható és előzhető meg az SQL Injection sérülékenység?
- Whitelist alkalmazása és kizárólag a várt kérések engedélyezése kliens- és szerveroldalon egyaránt.
- Tárolt eljárások alkalmazása
- A kérések tartalmának szűrése, abból eltávolítva az SQL Injection támadásra utaló karakterláncokat
- Jogosultságkorlátozás az adatbázisban
- Web Application Firewall (WAF, webalkalmazás tűzfal) alkalmazása
Hogyan ellenőrizhető az SQL Injection sérülékenység jelenléte?
- Sérülékenységvizsgálat szolgáltatás igénylésével
- Automatikus sérülékenységvizsgáló szoftverekkel (pl.: Tenable Nessus, sqlmap)
- Manuális vizsgálatokkal