vulnerabilità software costantemente perseguitano i programmatori e gli sviluppatori . Il format string bug è una di queste vulnerabilità , e si può andare in crash di programmi o eseguire codice dannoso . Il problema con la stringa di formato ruota attorno input dell'utente incontrollato. Il comando di stampa in C può essere un esempio di questo bug . A " printf ( ) " è un input utente non controllato , che consente di stampare da postazioni remote . Usato da solo , questo comando dà hacker opportunità di dirottare il codice per i loro scopi. Descrizione
Gli sviluppatori utilizzano il codice di famiglia printf per stringhe di formato o di uscita dei dati di controllo . La famiglia codice printf include comandi come fprintf , vprintf e sprintf , tutti i dati in formato ma scrivere in posizioni diverse . Format string bug si verificano quando gli sviluppatori trascurano di porre restrizioni necessarie sulla famiglia codice printf . Gli hacker possono poi inserire il proprio codice tramite questi codici di restrizione - liberi, o scappatoie , e dirottare il codice . Il risultato , secondo gli autori di " The Shellcoders Handbook ," è che il dirottatore potrebbe quindi essere in grado di visualizzare le informazioni private e di eseguire codice arbitrario .
Formato Gettoni
formato correggere i bug delle stringhe possono essere indolore , e lo sviluppatore del software deve solo aggiungere un token formato come " % s" o " % x " . Ad esempio , lo sviluppatore può inserire " printf ( " % s " , ingresso)" nella riga di comando .
Il token formato limita le voci di formato e impedisce agli hacker di eseguire codice dannoso tramite scappatoie presenti nel codice di origine . Format string bug si verificano in genere quando i programmatori di sviluppare codice per programmi di grandi dimensioni . Durante lo sviluppo di codice , i programmatori possono concentrarsi sul quadro generale e, quindi, trascurare la stringa di formato . La stringa di formato non controllato quindi agisce come una finestra di opportunità che l'attaccante può usare per manipolare il codice .