Tipi di Bugs Format String

November 13

Tipi di Bugs Format String


vulnerabilità del software perseguitano continuamente programmatori e sviluppatori. Il bug stringa di formato è una di queste vulnerabilità, e può mandare in crash i programmi o eseguire codice dannoso. Il problema con stringa di formato ruota intorno a input dell'utente incontrollato. Il comando di stampa in C può essere un esempio di questo bug. A "printf ()" è un input dell'utente incontrollato 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 printf famiglia per stringhe di formato o l'uscita dei dati di controllo. Il codice di famiglia printf comprende comandi quali fprintf, vprintf e sprintf, tutti i dati in formato ma scrivere in posizioni diverse. Formato bug delle stringhe si verificano quando gli sviluppatori trascurano di porre restrizioni necessarie sul codice printf famiglia. Gli hacker possono quindi inserire il proprio codice attraverso questi codici senza restrizione, 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 eseguire codice arbitrario.

Gettoni Format

Correggere i bug di stringa formato può 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 originario. Formato bug delle stringhe 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, si affacciano sulla stringa di formato. La stringa di formato incontrollato agisce quindi come una finestra di opportunità che l'attaccante può usare per manipolare il codice.

buffer overflow

stringhe di formato possono anche creare problemi di buffer overflow. Quando un programma sorpassa il limite di buffer durante la scrittura dei dati, buffer overflow si verifica, e il programma può sovrascrivere la memoria adiacente. Si tratta di una minaccia significativa in termini di sicurezza di memoria di un programma. problemi di buffer overflow sono spesso associati con i linguaggi C e C ++. Gli sviluppatori del programma dovrebbero assicurarsi di controllare i confini tampone per contrastare tampone anomalie overflow. Quando non c'è formato specificato per una funzione C Tempo di esecuzione, qualsiasi codice arbitrario può essere eseguito attraverso la scappatoia specificato. Poiché il codice non può conoscere i confini del buffer, può causare un buffer overflow e sovrascrivere la memoria.

minimizzare i rischi

È possibile evitare errori format string seguendo alcune regole di base della programmazione. Per ridurre al minimo le occorrenze di insetti stringa formanti, installare solo i programmi di utilità che è necessario, e consentire solo l'accesso a questi programmi di utilità a quelli del tuo gruppo più rinomata, secondo gli autori di "Hack correzione della rete." Ricordate sempre di specificare una stringa di formato per una dichiarazione "printf". Se ci sono stringhe personalizzate di formato nel codice, prestare particolare attenzione quando si scrive i privilegi di queste stringhe di formato autodefiniti.