I programmatori spesso amano parlare di come un nuovo strumento o una nuova versione della loro piattaforma preferita farà la codifica più veloce, più facile, o più elegante. Anche se questo può essere vero, ignora quanto sia difficile e faticoso il processo di sviluppo software di qualità è in realtà, non importa quali strumenti vengono utilizzati.
Caso in questione: l'elenco CWE / SANS dei primi 25 errori software più pericolosi . Ogni anno, gli editori della lista attingere l'esperienza dei maggiori esperti di sicurezza del software di classificare gli errori di programmazione in base alla frequenza, la gravità e la probabilità che porterà alla vulnerabilità. Lista di quest'anno è stato pubblicato questa settimana, e la cattiva notizia è che pochi sorprese in esso contenuti.
Non solo la lista di quest'anno prevedibile, è ridondante. Dei 25 errori citati, troppi può essere attribuito ad una le malefatte stessa fondamentale - errori che sono stati intorno quasi fin dagli albori della programmazione stessa. Will non impariamo mai?
Gli stessi errori, più e più volte
cima alla lista è "neutralizzazione improprio di elementi speciali utilizzati in un comando SQL", conosciuta anche come la temuta vulnerabilità di SQL injection, la rovina di applicazioni Web in tutto il mondo. Secondo IBM annuale X-Force Trend and Risk Report, la frequenza degli attacchi di SQL injection maggiore 200 volte tra il 2008 e il 2009 , e di IBM i ricercatori hanno visto almeno un "globalmente ridimensionata" attacco di SQL injection ogni estateper gli ultimi tre anni .
SQL injection è solitamente il risultato di input dell'utente in modo improprio convalidato, in cui l'applicazione analizza i dati dei moduli in una query SQL senza controllare per vedere se contiene potenzialmente dannosi codice SQL. SQL injection, ma non è il solo modo l'input dell'utente può andare storto. Dei primi 25 dell'elenco errori, circa un quarto di essi può essere attribuito alla convalida dell'input inadeguata, tra cui il comando di iniezione del sistema operativo, sovraccarichi del buffer, cross-site scripting, mancata validazione percorsi delle directory, e non controllati stringhe di formattazione dell'output.
Ancor più errori di convalida dell'input, quest'anno 25 migliori lista è piena di errori di sicurezza delle applicazioni di ogni genere. Alcuni di loro suono abbastanza esoterici, come "inclusione di funzionalità dalla sfera di controllo non attendibili." Ma di tutti questi errori, il più alto rango uno sulla lista è "mancante di autenticazione per la funzione critica" - in altre parole, l'attaccante era in grado di ottenere l'accesso perché non c'era serratura della porta per cominciare.
Gli sviluppatori fanno questi errori per due motivi principali. In primo luogo, essi possono operare sotto l'ipotesi erronea che una determinata funzione è troppo oscuro per essere vulnerabile, ma non riescono a cogliere la misura in cui gli aggressori potrebbero essere disposti ad analizzare la loro applicazione flussi di trovare punti deboli. Più spesso, però, semplicemente non hanno considerato quanto sia importante una determinata funzione potrebbe essere quella la sicurezza complessiva della loro applicazione. Come crescono le applicazioni più complesse e le loro funzioni sono distribuite su più sistemi e risorse, è particolarmente facile perdere di vista il quadro di sicurezza grande.
Nessun commento:
Posta un commento
Nota. Solo i membri di questo blog possono postare un commento.