giovedì 4 marzo 2010

“Top 25 Most Dangerous Programming Errors 2010”

Malware (II): perché gli aggressori prediligono le soluzioni web based rispetto ai virus per i PC
E’ stato calcolato che ogni anno sono scoperte mediamente cinquemila nuove vulnerabilità sui software più noti e diffusi fra gli utenti.
Per alcuni esperti questi numeri rappresentano solo la punta dell’iceberg di un fenomeno ben più vasto che generalmente è quantificato prendendo in considerazione solo le falle segnalate pubblicamente dai maggiori produttori.

La maggior parte di queste vulnerabilità sono in genere dovute a errori di programmazione banali che si ripetono nel corso degli anni talvolta anche sugli stessi software e ad opera degli stessi team di sviluppo.
Per contrastare questo problema, il SANS Institute (System Administration, Networking and Security Institute), fondato nel 1989 come gruppo di ricerca e organizzazione educativa nell’ambito della sicurezza, periodicamente aggiorna delle linee guida per la loro individuazione e risoluzione.

Nel recente rapporto “Top 25 Most Dangerous Programming Errors 2010” pubblicato qualche giorno fa dal SANS, emergono molte conferme al persistere delle segnalazioni degli anni precedenti, ma anche dei trend ai quali fino a poco tempo fa si dava poco credito.
L’aspetto principale è relativo al ruolo sempre più marginale ricoperto dal tradizionale software per i desktop, sempre meno preso di mira dai malintenzionati che si stanno dedicando sempre più alle applicazioni web based, in quanto queste ultime, a causa della loro maggiore fragilità, sono decisamente più appetibili per virus e malware writer.
Questo aspetto è confermato anche dalle vulnerabilità che si sono classificate nelle prime posizioni della classifica più recente stilata dal SANS che appaiono essenzialmente come facilitate dall’imperizia e disattenzione di coloro che hanno sviluppato l’applicazione.
I due errori di programmazione più comuni sono quelli che sfociano in vulnerabilità di tipo Cross Site Scripting e SQL Injection e che si palesano in quei casi in cui l’input utente, utilizzato per generare pagine HTML o costruire query SQL, non è filtrato adeguatamente da coloro che hanno realizzato l’applicazione.
I buffer overflow scendono invece in terza posizione dopo essere stati per anni in testa alla classifica. Questa categoria di problemi può essere risolta semplicemente verificando che i buffer di destinazione in cui devono essere copiati i dati siano capienti a sufficienza per contenerli.
Tra le sorprese spicca, senza dubbio, anche il quarto posto conquistato dalle vulnerabilità di tipo CSRF (Cross Site Request Forgery): queste ultime, come noto, possono essere sfruttate da un aggressore per fare eseguire un’azione non voluta ad un utente legittimo senza che egli ne sia al corrente.
Tra i consigli dati dal SANS a chi sviluppa applicazioni web per evitare problemi di questo tipo vi è principalmente quello di controllare sempre il Referer di una richiesta HTTP per verificare che provenga da un server o da una pagina legittima ed inviare una richiesta di conferma separata quando l’utente richiede l’esecuzione di operazioni importanti.
Tra gli altri errori segnalati dal SANS spiccano inoltre quelli che scaturiscono in vulnerabilità del tipo Directory Traversal, OS Command Execution, PHP File Inclusion ed URL Redirection, rispettivamente elencate al settimo, nono, tredicesimo, e ventitreesimo posto.
Il rapporto del SANS evidenzia, infine, come solitamente si ripetano gravi errori quali:
1) - la cifratura dei dati sensibili non è applicata laddove è necessaria oppure consigliabile;
2) - si tende troppo spesso ad utilizzare le credenziali di autenticazione in chiaro testo all’interno di script o pacchetti binari;
3) - di rado sono previste delle restrizioni per i file che un utente può caricare in upload;
4) - sul lato server troppo spesso non sono cancellati o disattivati i messaggi di errore.
Soprattutto questi ultimi possono rappresentare una preziosa fonte d’informazioni riservate per gli aggressori permettendo loro di risalire a percorsi di rete, indirizzi IP interni, nomi di file, tabelle, etc…
“L’iniziativa del SANS, volta principalmente a segnalare gli errori di programmazione più comuni che aprono le porte al malware, è senza dubbio lodevole, ma si scontra con la realtà dei fatti” - ha sottolineato l’esperto Chris Wysopal - “A volte fare in modo che un reparto di sviluppo implementi un processo di development sicuro può risultare davvero arduo”.
In sostanza il problema (soluzioni web based nel mirino) è nuovo, ma la causa che lo provoca è sempre la stessa: la sicurezza è, infatti, percepita dai produttori di software come un elemento ritardante rispetto ai tempi di rilascio pianificati per un progetto e quindi un reparto di sviluppo, pressato dall’eccessivo sovraccarico di lavoro imposto per rispettare una data di consegna prevista troppo compressa per motivi commerciali, preferirà trascurare i tempi richiesti per studiare tutti i problemi della sicurezza compiendo potenzialmente degli errori che aprono le porte al malware.
source DUKE ITALIA Tech