Je kunt de database beveiligen tegen lekken met de hacking-tool die we hier gebruiken. Cybercriminelen slagen er maar al te vaak in op grote schaal klantgegevens uit een database te stelen via SQL-injectiegaten.
SQL database en de gegevens
De belangrijkste gegevens van een website zijn vaak de klant- of zelfs gebruikersgegevens. Online oplichters kunnen daar op het Darknet makkelijk klinkende munten voor krijgen.
In de regel slaan webapplicaties dergelijke gegevens op in een of meerdere databases, die uiteraard goed beschermd moeten worden. De nadruk ligt op moeten, omdat cybercriminelen er maar al te vaak in slagen op grote schaal klantgegevens uit databases te grissen.
Een veel voorkomende oorzaak zijn zogenaamde SQL-injectie-gaten. In dat geval communiceert de aanvaller niet rechtstreeks met de databaseserver, maar probeert hij de webapplicatie geïnjecteerde SQL-commando’s te laten uitvoeren op de database.
Het resultaat is vaak dat de database via de webapplicatie massa’s gevoelige datarecords uitspuugt.
Met hacking-tool SQLmap database beveiligen
Je raadt het misschien al: er bestaat ook een hacking-tool voor dergelijke gaten – in dit geval SQLmap. Het ondersteunt talrijke databases, waaronder Oracle, MySQL, MariaDB, MS SQL Server, PostgreSQL en SQLite.
Afhankelijk van het databasetype en de rechten kan het ook bestanden naar de webserver schrijven. Hackers kunnen zo proberen een webshell te uploaden om de server permanent op afstand te bedienen.
Ontvang gratis informatie en tips over hacking en beveiliging, schrijf je in voor de nieuwsbrief:
Testomgeving voor de hacking-tool
Voor een eerste functionele test kun je RasPwn’s opzettelijk kwetsbare ‘Wacko Picko’-website scannen met SQLmap (zie kader over RasPwn, onderaan de pagina). Het inlogformulier van de website stuurt twee POST-parameters wanneer het wordt ingediend, namelijk username en password, die de scanner in dit geval onder de loep moet nemen.
Controleer de database op lekken
Om na te gaan of de website de mist in gaat bij het evalueren van die parameters,
kun je de tool met –data instrueren om precies dat te weten te komen:
sqlmap -u “http://wackopicko.playground.raspwn.org/users/login.php” –data=
“username=1&password=1” –banner
De optie –banner achterhaalt de databaseversie en het besturingssysteem van de server als de website kwetsbaar is.
Als je de inhoud van de database meteen wilt lezen, vervang je gewoon –banner door –dump
Database lekken voorkomen en beveiligen
Je kunt dergelijke SQL-injecties voorkomen door invoer van buitenaf consequent te controleren voordat die wordt verwerkt of zelfs opgenomen in databaseopdrachten.
Verder is het zinvol gebruik te maken van zogenaamde Prepared Statements, waarin je eerst de structuur van het SQL-commando definieert voordat je een placeholder vult met de waarden die van buitenaf aangeleverd worden.
Het is beter om de databaseopdrachten niet zelf te compileren, maar gebruik te maken van een voldoende geteste ORM-bibliotheek (Object-Relational Mapping), die reeds tegen alle mogelijke eventualiteiten beveiligd is.
Hacking-tools – wat kun je zelf doenWe beschrijven in meerdere artikelen het gebruik van hackingtools en hoe je ze kunt inzetten. De in deze serie genoemde hacking-tools bestrijken een breed gebied. Sommige technieken zijn beangstigend eenvoudig, andere vereisen meer training en ervaring. Maar het is de moeite waard je daar in te verdiepen: je leert te denken als een aanvaller en je eigen beveiligingsproblemen en eventuele lekken op te sporen. Dat is nuttig – ongeacht of je alleen een privé WordPress-site beheert of verantwoordelijk bent voor de veiligheid van je klanten.
|