Programvare sårbarheter stadig hjemsøker programmerere og utviklere . Formatet string bug er en slik sårbarhet , og det kan krasje programmer eller kjøre ondsinnet kode . Problemet med formatstreng dreier seg ukontrollert brukerens input. Ut kommandoen i C kan være et eksempel på denne feilen . A " printf ( ) " er en ukontrollert brukerundersøkelser som muliggjør utskrift fra eksterne steder . Brukes alene, gir denne kommandoen hackere muligheter til å kapre koden for sine formål. Beskrivelse
Utviklere bruker printf koden familien til formatstrenger eller kontroll data utgang. Printf kode familien omfatter kommandoer som fprintf , vprintf og sprintf , som alle format data , men skrive til forskjellige steder . Format string bugs oppstår når utviklere unnlater å plassere nødvendige restriksjoner på printf koden familien. Hackere kan deretter skrive inn sin egen kode gjennom disse begrensning -fri koder, eller smutthull , og kapre koden . Resultatet , ifølge forfatterne av " The Shellcoders Handbook ", er at den kaprer kan da være i stand til å vise privat informasjon og kjøre vilkårlig kode .
Format mynter
Fikse strengformateringsangrep bugs kan være smertefri , og programvareutvikler trenger bare legge et format token som " % s " eller "% x " . For eksempel , kan utvikleren inn " printf ( "% s " , inngang) " på kommandolinjen .
Format token begrenser format oppføringer og hindrer hackere fra å kjøre skadelig kode via smutthull som finnes i den opprinnelige koden . Format string bugs oppstår vanligvis når programmerere utvikle kode for store programmer . Under koden utviklingen , kan programmerere fokusere på det store bildet , og dermed overse format streng. Ukontrollert format string fungerer da som en mulighet at angriperen kan bruke til å manipulere koden .
Bufferoverflyter
formatstrenger kan også lage buffer overløp problemer . Når et program overskridelser bufferen grensen mens du skriver data , oppstår buffer overflow , og programmet kan overskrive tilstøtende minne. Dette er en betydelig trussel i form av et program hukommelse sikkerhet . Buffer overflow problemer er ofte forbundet med C og C + + språk . Programutviklere bør sørge for å sjekke buffer grenser for å motvirke buffer overflow anomalier . Når det ikke er formatet som er angitt for en C kjøretid funksjon, kan vilkårlig kode kjøres gjennom den angitte smutthull . Siden koden ikke kan kjenne grensene for buffer, kan det føre til en buffer overflow , og overskrive minnet.
Minimalisering av risiko
Du kan unngå strengformateringsangrep bugs ved følge noen grunnleggende regler for programmering. For å minimere forekomster av formant streng bugs , bare installere verktøyene som du trenger, og bare tillate tilgang til disse verktøyene til de i din mest pålitelige gruppe , ifølge forfatterne av " Hack Proofing Your Network. " Husk alltid å oppgi en formatere strengen til en " printf " statement. Hvis det er tilpasset formatstrenger i koden , ta ekstra hensyn når du skriver rettighetene til disse egendefinerte formatstrenger .