Nwlapcug.com


Come fermare i sovraccarichi del Buffer C

Come fermare i sovraccarichi del Buffer C


Buffer overflow causano un comportamento imprevisto del programma a seguito di sovrascrivere la memoria in modo inappropriato. Un buffer è un blocco contiguo di memoria di dimensioni fisse utilizzato per memorizzare dati, ad esempio una stringa di caratteri. Il linguaggio di programmazione C consente di scrivere i dati nel buffer, anche se è troppo grande.

Oltre a rendere il vostro arresto anomalo del programma, gli attaccanti possono utilizzare buffer overflow per eseguire codice dannoso nei sistemi che eseguono il programma. Nonostante tutti i tentativi di proteggere dagli attacchi di buffer overflow, è ancora un vettore di attacco comunemente sfruttati.

In C, buffer overflow possono essere mitigati seguendo le procedure consigliate per la codifica di sicuro.

Istruzioni

1

Evitare la biblioteca funzioni strcpy C, strcat, sprtinf, vsprintf, ottiene e scanf. Queste funzioni non sono sicure e non eseguono controllo prima scrittura input o da un buffer di lettura, con conseguente buffer overflow dei limiti. Controllo dei limiti sono un metodo di utilizzo di istruzioni condizionali, quali if, quindi..--per controllare se una lettura o scrittura è entro il limite del buffer.

2

Invalidare il codice eseguito dallo stack. Lo stack è dove memoria come i buffer vengono memorizzati, mentre l'applicazione è in esecuzione. Scrivendo in stack, dove viene quindi eseguito viene eseguito codice dannoso. Anche se l'implementazione può essere difficile, sono disponibili alcune versioni di Linux e Gnu C Compiler (GCC) che può impedire questo.

3

Utilizzare un compilar che controllerà per potenziali condizioni di overflow del buffer. Estensioni e patch sono disponibili per i compilatori C, ad esempio C, che avvisa quando si utilizza la funzione non sicuri e tenta di eseguire il controllo nel codice dei limiti.

4

Utilizzare programmi gratuiti come scudo di Stack e Stack Guard per rilevare e proteggere contro il buffer overflow. (Vedi risorse).