image

Helft IT-pro's bestrijdt SQL Injectie met programmeren

donderdag 20 december 2012, 10:57 door Redactie, 15 reacties

SQL Injectie is nog altijd een voorname manier waardoor websites gehackt worden en vertrouwelijke gegevens op straat komen te liggen. De oorzaak is meestal in programmeerfouten te vinden en het niet goed testen van de veiligheid van de website. Iets wat steeds meer IT'ers lijken te beseffen, aldus onderzoek. Een Amerikaanse bedrijf vroeg meer dan 350 IT-professionals hoe ze SQL Injectie proberen te voorkomen.

52% zegt het programmeren te verbeteren, terwijl 18% een applicatie-firewall gebruikt. Twaalf procent gebruikt een database-firewall, terwijl achttien procent helemaal niets doet om databases tegen SQL Injectie te beschermen.

Reacties (15)
20-12-2012, 11:19 door Anoniem
wat gaat een applicatie firewall doen als hij geen kennis heeft van de vulnerabilities in de applicatie erachter?

is dat dan niets meer dan een halve, maar dure pleister?
20-12-2012, 11:31 door N4ppy
Hoeveel % doet het allemaal?
20-12-2012, 13:33 door SirDice
Door Anoniem: wat gaat een applicatie firewall doen als hij geen kennis heeft van de vulnerabilities in de applicatie erachter?

is dat dan niets meer dan een halve, maar dure pleister?
Inderdaad, dat viel mij ook al op. Ik vrees dat dat voornamelijk komt door managers die zich laten paaien met mooie verkooppraatjes. In plaats daarvan kunnen ze dat geld beter steken in opleidingen voor hun programmeurs. Daar heb je m.i. op de lange termijn ook veel meer aan.
20-12-2012, 13:50 door Anoniem
Door Redactie: De oorzaak is meestal in programmeerfouten te vinden en het niet goed testen van de veiligheid van de website.

Het belangrijkste is echter het gebruik van ondeugdelijk gereedschap (zoals PHP mysql_xxx) in combinatie met het verkeerde uitgangspunt dat correctheid van software kan worden aangetoond met testen.

Denk er aan: met testen kun je alleen fouten vinden. Met testen kun je niet aantonen dat iets foutloos is.
20-12-2012, 14:03 door Anoniem
En hoeveel procent "beveiligt" z'n website met
magic_quotes_gpc = On
?
20-12-2012, 14:08 door Eghie
Zelfs de programmeurs die het wel kennen kunnen nog te lui zijn om ermee te programmeren.

Een mooie oplossing zou zijn, om parameterized queries te forceren in je software en niets anders toe te laten. Maar dan moet je wel handige software hebben die dat kan herkennen in je software. En die dus vooral kan herkennen als je het niet gebruikt. Maar dat zal vrij lastig zijn. Want als je wilt kun je ver gaan om die software voor de gek te houden.
20-12-2012, 16:16 door Anoniem
Het is toch wel mogelijk om met een paar SNORT rules SQL injectie achtige URLs uit je verkeer te vissen? SQL injectie is een prachtige en krachtige techniek - maar geen rocket science. Een dure firewall lijkt me er in ieder geval niet voor nodig...
21-12-2012, 00:56 door Anoniem
Door SirDice:
Door Anoniem: wat gaat een applicatie firewall doen als hij geen kennis heeft van de vulnerabilities in de applicatie erachter?

is dat dan niets meer dan een halve, maar dure pleister?
Inderdaad, dat viel mij ook al op. Ik vrees dat dat voornamelijk komt door managers die zich laten paaien met mooie verkooppraatjes. In plaats daarvan kunnen ze dat geld beter steken in opleidingen voor hun programmeurs. Daar heb je m.i. op de lange termijn ook veel meer aan.

Het artikel gaat over maatregelen tegen sql injections, dus niet over vulnerabilities in het algemeen.
Een application firewall filtert o.a. het binnenkomende verkeer op sql statements welke afkomstig zijn van de client.
Deze mogen nooit vanaf de client komen en zullen daarom door een application firewall tegengehouden worden.
21-12-2012, 10:41 door Eghie
Maar door een application firewall is toch bijna geen sluitende blacklist of detectie te maken tegen SQL injectie? Alleen veel voorkomende dingen.

Mocht er iemand software kennen die PHP software kan scannen naar platte queries (waarbij de variablen gewoon tussen gedrukt worden), ik houd me aanbevolen. Want zelfs mijn eigen software is er helaas niet schoon van. :S

In mijn eigen software gebeurt dat voornamelijk nog, waarbij ik gebruik (moest) maken van mysql_* functies. En ook nog met MySQL/php versies die parameterized queries nog niet ondersteunen. Ja, dan moet je wat. Tegenwoordig hou ik er wel rekening mee.
21-12-2012, 11:40 door SirDice
Door Anoniem:
Door SirDice:
Door Anoniem: wat gaat een applicatie firewall doen als hij geen kennis heeft van de vulnerabilities in de applicatie erachter?

is dat dan niets meer dan een halve, maar dure pleister?
Inderdaad, dat viel mij ook al op. Ik vrees dat dat voornamelijk komt door managers die zich laten paaien met mooie verkooppraatjes. In plaats daarvan kunnen ze dat geld beter steken in opleidingen voor hun programmeurs. Daar heb je m.i. op de lange termijn ook veel meer aan.

Het artikel gaat over maatregelen tegen sql injections, dus niet over vulnerabilities in het algemeen.
Een application firewall filtert o.a. het binnenkomende verkeer op sql statements welke afkomstig zijn van de client.
Deze mogen nooit vanaf de client komen en zullen daarom door een application firewall tegengehouden worden.
Daar heb je geen "application firewall" voor nodig, dat gaat prima met een "gewone" firewall.
21-12-2012, 12:56 door Anoniem
Door SirDice:
Door Anoniem:
Door SirDice:
Door Anoniem: wat gaat een applicatie firewall doen als hij geen kennis heeft van de vulnerabilities in de applicatie erachter?

is dat dan niets meer dan een halve, maar dure pleister?
Inderdaad, dat viel mij ook al op. Ik vrees dat dat voornamelijk komt door managers die zich laten paaien met mooie verkooppraatjes. In plaats daarvan kunnen ze dat geld beter steken in opleidingen voor hun programmeurs. Daar heb je m.i. op de lange termijn ook veel meer aan.

Het artikel gaat over maatregelen tegen sql injections, dus niet over vulnerabilities in het algemeen.
Een application firewall filtert o.a. het binnenkomende verkeer op sql statements welke afkomstig zijn van de client.
Deze mogen nooit vanaf de client komen en zullen daarom door een application firewall tegengehouden worden.
Daar heb je geen "application firewall" voor nodig, dat gaat prima met een "gewone" firewall.

Interessant. Noem eens een network firewall die aan (dynamische) content filtering doet?
21-12-2012, 13:37 door SirDice
Waarom zou je content filtering nodig hebben als je alleen de toegang, van buitenaf, naar je database wil blokkeren? Poort dicht zetten is dan genoeg hoor.
21-12-2012, 14:08 door Anoniem
Door SirDice: Waarom zou je content filtering nodig hebben als je alleen de toegang, van buitenaf, naar je database wil blokkeren? Poort dicht zetten is dan genoeg hoor.

Tjonge. SirDice misschien toch even beter lezen. "Het artikel gaat over maatregelen tegen sql injections" en dus niet over SQL poorten blokkeren. Ik weet dat ik je niet veel hoef uit te leggen maar in dit geval.....SQL injections vinden voornamelijk plaats vanuit een web (aware) applicatie, dus op de applicatie laag (WAF) en niet op de netwerk laag (NF).
21-12-2012, 17:51 door SirDice
Door Anoniem:
Door SirDice: Waarom zou je content filtering nodig hebben als je alleen de toegang, van buitenaf, naar je database wil blokkeren? Poort dicht zetten is dan genoeg hoor.

Tjonge. SirDice misschien toch even beter lezen. "Het artikel gaat over maatregelen tegen sql injections" en dus niet over SQL poorten blokkeren. Ik weet dat ik je niet veel hoef uit te leggen maar in dit geval.....SQL injections vinden voornamelijk plaats vanuit een web (aware) applicatie, dus op de applicatie laag (WAF) en niet op de netwerk laag (NF).
Misschien moet je even lezen waar ik op reageerde...

Een application firewall filtert o.a. het binnenkomende verkeer op sql statements welke afkomstig zijn van de client.
Deze mogen nooit vanaf de client komen en zullen daarom door een application firewall tegengehouden worden.
"Deze mogen nooit vanaf de client komen". Ergo, dan kun je net zo goed de toegang helemaal dicht gooien, daar heb je geen application firewall voor nodig. Bovendien ben ik van mening dat je je site gewoon fatsoenlijk veilig moet bouwen en je niet op dit soort kunst en vliegwerk moet vertrouwen. Die "application" firewall gaat namelijk echt niet alle mogelijke manieren om SQLi te doen detecteren.
22-12-2012, 02:13 door Anoniem
Door SirDice:
Door Anoniem:
Door SirDice: Waarom zou je content filtering nodig hebben als je alleen de toegang, van buitenaf, naar je database wil blokkeren? Poort dicht zetten is dan genoeg hoor.

Tjonge. SirDice misschien toch even beter lezen. "Het artikel gaat over maatregelen tegen sql injections" en dus niet over SQL poorten blokkeren. Ik weet dat ik je niet veel hoef uit te leggen maar in dit geval.....SQL injections vinden voornamelijk plaats vanuit een web (aware) applicatie, dus op de applicatie laag (WAF) en niet op de netwerk laag (NF).
Misschien moet je even lezen waar ik op reageerde...

Een application firewall filtert o.a. het binnenkomende verkeer op sql statements welke afkomstig zijn van de client.
Deze mogen nooit vanaf de client komen en zullen daarom door een application firewall tegengehouden worden.
"Deze mogen nooit vanaf de client komen". Ergo, dan kun je net zo goed de toegang helemaal dicht gooien, daar heb je geen application firewall voor nodig. Bovendien ben ik van mening dat je je site gewoon fatsoenlijk veilig moet bouwen en je niet op dit soort kunst en vliegwerk moet vertrouwen. Die "application" firewall gaat namelijk echt niet alle mogelijke manieren om SQLi te doen detecteren.


Overigens ben ik het volkomen eens dat ontwikkelaars hun werk goed horen te doen. Althans dat schijnbaar wel heel erg moeilijk blijkt te zijn. We kennen zelf genoeg voorbeelden waarbij het flink mis is gegaan. Een application firewall kan in deze gevallen de steken oppakken die de ontwikkelaars hebben laten vallen. Een WAF is min deze gevallen complementair aan custom made software.

Desalniettemin mogen de SQL statements nooit vanaf de client gebeuren. Wel vanaf de webserver richting de database server. Maar een SQL statement vanuit de browser versturen heet in vaktaal een 'sql injection'.

Dus aan een netwerk firewall die alleen port 80/443 toestaat heb je niet veel, je kan dan nog steeds vulnerable voor sql injections zijn. Als de ontwikkelaar niet goed zijn best heeft gedaan zal een netwerk firewall gewoon sql injections over port 80 accepteren. Een WAF daarentegen kan dit wel tegenhouden.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.