Hvorfor stoler vi fortsatt på brukerens innspill?

Forskningsselskapet Imperva dukket opp denne uken med to kjente utnyttelser. Forskerne var i stand til å utføre hvilken som helst PHP-kode de ønsket - noe som betyr at de også kunne utføre hvilken som helst kommando de ønsket, takket være PHPs backtick-operatører.

Den virkelig interessante delen av rapporten var bruken av disse utnyttelsene fra 2011 og 2010 i automatisert angrepsprogramvare. Nedenfor er et bilde fra rapporten som viser et angrep fra en vert over tid som er rettet mot manipulering av superglobaler. Det viser seg at verten var en italiensk bank som sannsynligvis hadde blitt kompromittert, og angrepene fortsatte etter at denne grafen ble laget.

Jeg liker denne grafen fordi den viser angrepets braste natur, og den viser hvordan bare fordi en server for øyeblikket ikke er under angrep, betyr det ikke at problemet har forsvunnet.

Imidlertid er årsaken til problemene som er utforsket i rapporten kodeblokker som den nedenfor, som tidligere eksisterte i det svært populære PhpMyAdmin-verktøyet.

 if (strstr ($ _ SERVER 'QUERY_STRING', 'session_to_unset')! = falsk) {parse_str ($ _ SERVER 'QUERY_STRING'); session_write_close (); sesjons ($ session_to_unset); session_start (); $ _SESSION = matrise (); session_write_close (); } 

At et prosjekt med alderen og populariteten til PhpMyAdmin kan ha disse grunnleggende feilene, viser bare hvor snikende sykdommen det er å stole på brukerinnspill. Det er ikke gjort på grunn av ondsinnethet, eller til og med inkompetanse; det skjer fra å ikke tenke på et av de grunnleggende grunnleggende spørsmålene om sikkerhet.

Stol aldri på brukerens innspill. Noensinne.

Søknaden din kan sitte der i årevis og jobbe ordentlig med et så stort hull som et lite europeisk land, og bare vente på å bli utnyttet. Alt som trengs er en nysgjerrig hacker - eller i disse dager, et botnett - for å låse seg fast på IP-en din, og den dyrebare koden din har nettopp gitt en rampe til en verden av vilkårlig kodekjøring og vedvarende trusler.

Mange kan bli fristet til å legge skylden for disse utnyttelsene ved foten av PHP, men du kan skrive en lignende utnyttbar kode på ditt skriftspråk du velger; det er bare at PHP er det mest populære språket på nettet, og derfor tiltrekker det seg de fleste angrepene.

Det er måter å lukke slike hull: Å slippe unna inngangen og bruke inngangs hvitelister er bare to måter å lukke slike hull på.

Sannhetene som er forsterket i rapporten forblir universelle uavhengig av hvilket språk du bruker: Stol aldri på brukerinnspill, og dobbelt ned på aldri tillitsfulle parametere som finnes i en URL.

© Copyright 2020 | mobilegn.com