Software kwetsbaarheden voortdurend achtervolgen programmeurs en ontwikkelaars . De format string bug is een dergelijke kwetsbaarheid , en het kan programma's crashen of uitvoeren van kwaadaardige code . Het probleem met de format string draait om ongecontroleerde invoer van de gebruiker . De printopdracht in C kan een voorbeeld van deze bug te zijn . Een " printf ( ) " is een ongecontroleerde invoer van de gebruiker die het afdrukken maakt vanaf externe locaties . Alleen wordt gebruikt, dit commando geeft hackers mogelijkheden te kapen code voor hun doeleinden . Beschrijving Ontwikkelaars gebruiken de printf code familie naar format strings of control data -uitgang . De printf code familie omvat commando's zoals fprintf , vprintf en sprintf , die allemaal format maar schrijven naar verschillende locaties . Format string bugs optreden wanneer ontwikkelaars verwaarlozing om noodzakelijke beperkingen stellen aan het printf code familie . Hackers kunnen dan gaan hun eigen code door deze restrictie - free codes , of lacunes , en kapen de code . Het resultaat , volgens de auteurs van " The Shellcoders handboek , " is dat de kaper dan in staat zijn om prive-informatie te bekijken en uitvoeren van willekeurige code . Formaat Tokens Fixing format string bugs kan pijnloos zijn , en de software-ontwikkelaar moeten maar een formaat token , zoals " % s " of " % x " . Bijvoorbeeld , kan de ontwikkelaar in te voeren " printf ( " % s " , invoer)" op de opdrachtregel . Het formaat token beperkt formaat data en voorkomt dat hackers het uitvoeren van schadelijke code via mazen in de code afkomstig . Format string bugs meestal optreden wanneer programmeurs code voor grote programma's te ontwikkelen . Tijdens de ontwikkeling code , kunnen programmeurs zich richten op het grote geheel , en dus kijken uit op de format string . De ongecontroleerde format string fungeert dan als een kans dat de aanvaller kan gebruiken om de code te manipuleren . Buffer overflows Format strings kan ook buffer creëren overflow problemen . Wanneer een programma overschrijdingen de buffer grens tijdens het schrijven van data , buffer overflow optreedt , en het programma kan naastgelegen geheugen overschrijven . Dit is een belangrijke bedreiging qua geheugen veiligheid van een programma . Buffer overflow problemen worden vaak geassocieerd met C en C + + talen . Programma ontwikkelaars moeten ervoor zorgen om buffer grenzen te controleren om teller buffer overflow anomalieën . Als er geen gespecificeerde formaat voor een C run time functie , kan elke willekeurige code worden uitgevoerd via de opgegeven maas in de wet . Omdat de code kan niet weten wat de grenzen van de buffer , kan het een buffer overflow veroorzaken , en overschrijf het geheugen . Risico's minimaliseren U kunt format string bugs te vermijden door het volgen van enkele basisregels van de programmering . Om gevallen van formant touwtje bugs te minimaliseren , installeer alleen de hulpprogramma's die u nodig hebt , en alleen toegang tot deze programma's aan die in uw meest vertrouwde groep , volgens de auteurs van " Hack Proofing uw netwerk . " Altijd onthouden om een te specificeren formatteren string naar een " printf " statement . Als er aangepaste format strings in de code , neem extra voorzichtig bij het schrijven van privileges van deze zelf - gedefinieerde format strings .
|