Beste resultaat boek je door meerlaags beveiliging toe te passen. Er kan altijd wat tussendoor sneaken maar je maakt t gaatje wel steeds kleiner. Begin wel bij het begin:
Bij homebrew web-apps:
- schone code en invoercontrole, zorg dat alle sql-achtige tekens eruit worden gefilterd of worden ge-escaped
- web-app databaseaccountsegmentering, standaard gebruiken webapps 1 account om bij de database te komen. Splits dit op. Een gebruikerslogin/mutatie gebruikt andere tabellen dan de zoekfunctie in de webapp, beperk de toegang van die accounts in de database. (deze aanpak wordt helaas niet(niet vaak) toegepast in COTS web-apps) Een SQL-injectie geeft dan maar toegang tot een beperkte dataset in de database.
- Multi-tiering / Opsplitsen van de database. Je kan ook bijvoorbeeld je gebruikersadministratie (bevat persoonsgegevens dus valt onder WBP) onderbrengen in een andere database en die op een andere manier beschikbaar maken aan je webapp. Denk aan een SOAP/XML-koppeling met een eigen minimalistische front-end.
Bij commercial of the shelf (COTS) web-apps:
- HOU JE UPDATES BIJ. Werk deze direct bij zodra er (security )updates voor uitkomen en zorg dat je eigen patches en aanpassingen gelogd worden (change management).
Algemeen:
- installeer een web application firewall en/of IPS, (ook weer: UPDATES UPDATES UPDATES!)
- En tot slot monitoring, monitoring, monitoring, blijf je logs controleren en analyseren. Hier is een boel goeie tooling voor te krijgen, denk aan splunk en logwatch. Zo krijg je vreemde zaken wel in t snotje, mocht er nog wat tussendoor sneaken.