? Bufferoverløpene og strengformateringsangrep bugs er to metoder der brukerne kan få kontroll over et program . Vanligvis finnes i lavere nivå språk som C eller C + + , begge er avhengige av en hacker evne til å manipulere brukerundersøkelser for å lage et program utføre på andre måter enn det var ment for. Bufferoverløpene avhengige av en mangel på sikkerhetstiltak rundt brukerundersøkelser, mens strengformateringsangrep bugs skje innenfor selve input /output funksjonaliteten til et programmeringsspråk. Forstå hvordan hvert verk krever en forståelse av hvorfor de forekommer i koden . Buffer overkjørt
bufferoverløpet kan oppstå under kjøring av programmet når en buffer datastruktur ment å håndtere brukerens input er gitt for mye data å håndtere. For eksempel kan en programmerer erklære en matrise struktur som inneholder tegn til å ta i brukerens innloggingsinformasjon . Programmereren kan velge å begrense størrelsen av matrisen 25 tegn. Hvis programmereren ikke satt noen sikkerhetstiltak på plass , kan brukeren skrive inn en vilkårlig mengde data som en log -in navn . Når brukeren gjør dette , de ekstra tegnene utover 25 overkjørt minnet plass i matrisen og korrupte data i tilstøtende minneplasser . Dette kalles en bufferoverløpet.
Bufferoverløpene og sikkerhet
Hackere kan dra nytte av bufferoverløpene å endre banen til programmet kjøres . Hvis en hacker vet hvordan et program fungerer, så hun vet også hva slags data er i nærheten av karakter array. I C-programmering , er variabler og funksjon referanser lagret i minnet. Hvis en variabel eller funksjon referansen ligger nær array, kan en hacker overkjørt matrisen på en slik måte som å endre verdien av en variabel , slik at det vil tillate logg inn med falske legitimasjon. Hackeren kan også endre en funksjon slik at den utfører ondsinnet kode, og lar hackeren inn i systemet.
Format Strings
A " format string" representerer en bestemt argument levert til input og output funksjoner i C. for eksempel tar " printf ( ) "-funksjonen som sin første argumentet et format streng som handler om hvordan produksjonen bør se til brukeren. Etter dette tar printf ( )-funksjonen en variabel liste over argumenter som representerer data til utgang som er formatert av format streng. Dette Følgende eksempel viser hvordan et format string fungerer i sammenheng, med et format streng som inneholder et format karakter ( "% d" ) som betyr at et heltall argument vil erstatte det tegnet i output : en
printf ("Dette er formatet streng, etterfulgt av et heltall å skrive % d " , 56) ;
formatstrenger og sikkerhet
formatstreng sikkerhetsspørsmål oppstå når en bruker klarer å inn et format string inneholder formatering karakter ikke ment av programmereren . Når en printf ( ) -funksjonen kalles , formatet streng og argumentene etter den dyttes inn i minnet , og funksjonen " turer" gjennom minnet , og erstatter alle formateringstegn med verdier i tilsvarende minneplasser . Hvis en hacker setter formatere tegn i en streng, kan hun muligens lese verdiene av data plassert hvor som helst i nærheten på stakken - og om hun kan lese stabelen , hun vet hvordan og hvor du skal endre data og manipulere programmet kjøres
.