Typer Format String Bugs

Typer Format String Bugs


Programvare sårbarheter stadig hjemsøker programmerere og utviklere. Formatet strengen bug er en slik sårbarhet, og det kan krasje programmer eller kjøre skadelig kode. Problemet med formatstrengen dreier seg ukontrollert brukerundersøkelser. Utskriftskommandoen i C kan være et eksempel på denne feilen. A "printf ()" er en ukontrollert brukerundersøkelser som gjør det mulig å skrive ut fra avsidesliggende steder. Brukt alene, gir denne kommandoen hackere muligheter til å kapre kode for deres formål.

Beskrivelse

Utviklere bruker printf kode familien til formatstrenger eller kontroll datautgang. Printf kode familien omfatter kommandoer som fprintf, vprintf og sprintf, som alle format data, men skrive til forskjellige steder. Formatstrengen bugs oppstår når utviklere unnlater å plassere nødvendige restriksjoner på printf kode familien. Hackere kan deretter legge inn sin egen kode gjennom disse restriksjonsfritt koder eller smutthull, og kapre koden. Resultatet, ifølge forfatterne av "The Shellcoders Handbook", er at kaprer kan da være i stand til å vise privat informasjon og kjøre vilkårlig kode.

format Tokens

Fikse format string bugs kan være smertefri, og programvareutvikleren må bare legge til et format token som "% s" eller "% x". For eksempel, kan utvikleren angi "printf ("% s ", input)" på kommandolinjen.

Formatet token begrenser format oppføringer og hindrer hackere fra å kjøre skadelig kode via smutthull som finnes i den opprinnelige koden. Formatstrengen 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 formatstrengen. Ukontrollert formatstrengen da fungerer som et vindu av muligheter at angriperen kan bruke til å manipulere koden.

buffer overflow

Formatstrenger kan også lage buffer overflow problemer. Når et program overskridelser buffer grense under skriving av data, oppstår bufferoverflyt, og programmet kan overskrive tilstøtende hukommelse. Dette er en betydelig trussel i form av et program minne 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 en hvilken som helst vilkårlig kode kjøres gjennom den angitte smutthull. Siden koden ikke kan vite grensene for buffer, kan det føre til en buffer overflow, og overskrive minnet.

Minimere risiko

Du kan unngå format streng 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 dem i den mest pålitelige gruppe, ifølge forfatterne av "Hack Korrektur nettverket." Husk alltid å angi en formatstreng til en "printf" statement. Hvis det er tilpasset formatstrenger i koden, ta ekstra hensyn når du skriver privilegiene disse egendefinerte formatstrenger.