Scrivi il codice di sicurezza per prevenire gli attacchi di overflow . In C , ci sono una serie di funzioni vulnerabili che gli hacker possono sfruttare al buffer troppo pieno . Ridurre al minimo l'uso di strcpy ( ) , strcat ( ) , sprintf ( ) e vsprintf ( ) , che non eseguono la verifica limiti. Se possibile , evitare l'uso di gets ( ), che non specifica quanti caratteri devono essere leggere e lascia così il codice vulnerabile . Se usate scanf ( ) , assicurarsi di specificare una larghezza di formato% s per evitare sforamenti .
2
Controllare per vedere se è possibile utilizzare i trampolini per prevenire overflow del buffer . Dal buffer overflow si verifica nelle pile di memoria e non nel codice , la soluzione più semplice sembrerebbe prevenire il vostro stack di esecuzione di qualsiasi codice con l'inserimento di una piccola porzione di codice a vietare queste azioni . Questo è possibile in Linux , ma è molto difficile. Solo alcuni compilatori utilizzano i piccoli bit di codice chiamati trampolini , che agiscono come una barriera tra il codice di richiamo di una funzione e la funzione stessa . Quindi , se il codice dannoso tenta di sovrascrivere un buffer , il trampolino può intercettare e vanificare i tentativi degli hacker .
3
Implementare gli strumenti di compilazione per dare avvertimenti quando si utilizza il codice che ti lascia vulnerabili a attaccare. Alcuni di questi strumenti sarà generare codice che vieta agli stranieri di accedere indirizzi illegali e si spegnerà codice che tenta tale esecuzione . Prodotti come StackShield e StackGuard sono di grande aiuto . StackSheild esaminerà l'indirizzo di ritorno di una funzione e di interrompere in caso di irregolarità . StackGuard posti una parola canarino sul indirizzo di ritorno e verifica se questa parola è stata alterata, che chiude una funzione quando si ha.
4
installare strumenti come libsafe per controllare la sicurezza in una dinamica , eseguire ambiente - tempo . Libsafe eseguito in Linux e controlla l'indirizzo di ritorno più vicino da uno stack frame , allora sì che l' indirizzo non viene sovrascritto . Libsafe sostituirà anche le funzioni non sicure come gets ( ) , strcpy ( ) e scanf ( ) .
networking © www.354353.com