Gå til innhold

Fuzzing stadig mer populært


Anbefalte innlegg

Videoannonse
Annonse

"I enkle ordelag går fuzzing (også kalt fuzz testing) ut på å mate programvare med vilkårlig data for å lokalisere feil man ofte ellers ikke har tid til, budsjett eller kreativitet nok til å finne. Hvis programmet feiler, for eksempel ved å kræsje eller henge, eksisterer det hull som må rettes opp. Nettopp det faktum at datastrømmen inneholder tilfeldig data gjør at individuelle runder med fuzz testing kan avdekke forskjellige feil og mangler."

 

Dette er kanskje et simpelt spørsmål, men jeg skjønner ikke helt hvordan man kommer videre fra en slik fuzzing? Man mater den med vilkårlige data, som får noe til å gå galt, og hva gjør man så? Skulle tro det ikek var så lett å finne et hull bare utifra det? (regner med det er snakk om endel data), mater man det så med et subset av den dataen som førte til at ting har gått galt, helt til man finner ut hvilken del av dataen som skaper bry?

 

AtW

Lenke til kommentar
"I enkle ordelag går fuzzing (også kalt fuzz testing) ut på å mate programvare med vilkårlig data for å lokalisere feil man ofte ellers ikke har tid til, budsjett eller kreativitet nok til å finne. Hvis programmet feiler, for eksempel ved å kræsje eller henge, eksisterer det hull som må rettes opp. Nettopp det faktum at datastrømmen inneholder tilfeldig data gjør at individuelle runder med fuzz testing kan avdekke forskjellige feil og mangler."

 

Dette er kanskje et simpelt spørsmål, men jeg skjønner ikke helt hvordan man kommer videre fra en slik fuzzing? Man mater den med vilkårlige data, som får noe til å gå galt, og hva gjør man så? Skulle tro det ikek var så lett å finne et hull bare utifra det? (regner med det er snakk om endel data), mater man det så med et subset av den dataen som førte til at ting har gått galt, helt til man finner ut hvilken del av dataen som skaper bry?

 

AtW

6561935[/snapback]

 

Man kombinerer ofte dette med en debugger, slik at man kan se hva som går galt, eller resultatet når noe går galt. Det positive (for "hackeren") er at man ikke nødvendigvis trenger å forstå _hvordan_ en gitt input fører til feil, bare hva som skal til for å fremprovosere det og hvordan sårbarheten eventuelt kan utnyttes.

 

Det man typisk ønsker er å injisere egen ("ondskapsfull") programkode som man sender som en del av inputdata. Måten programmet feiler på vil kunne gi indikasjoner på hvordan koden kan injiseres. Det aller enkleste eksempelet er dårlig programmerte web-applikasjoner med sql-databaser som ved å putte en ' i et felt lar deg putte inn omtrent hva som helst i databasen. Hvis programmet leser en $password-variabel fra et form og bruker noe slikt som dette

 

UPDATE users SET privileges = 'admin' WHERE password = '$password';

 

for å sette en eller annen rettighet, kan man ved å skrive noe slikt som

 

' OR 'a' = 'a'

 

sette alle brukeres rettigheter til 'admin', fordi 'a' alltid er lik 'a'. Så en "fuzzer" for en web-applikasjon kan være så enkel som å prøve å sende et '-tegn inn i hvert felt og se om det skjer noe uventet.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...