Web (internet) – In buona parte dei progetti commissionati dalle imprese ai fornitori di tecnologia viene richiesta “la sicurezza” come requisito. Ma quanti dei sistemi che vengono consegnati sono veramente sicuri?
E’ difficile dare una definizione di sicurezza “reale”. E’ più facile dire cosa non è sicuro e individuare quali errori vengono commessi nelle varie fasi di vita di un progetto. Troviamo così errori di Progettazione, di Implementazione, nel Testing (ammesso che il requisito sicurezza venga “ben interpretato”).
La sicurezza oggi è vista come una “sovrainfrastruttura” applicata al sistema già funzionante. Non è un criterio di progettazione. Si progetta il sistema (senza pensare troppo alla sicurezza), cercando solo di utilizzare protocolli “sicuri”. Il tutto viene poi venduto come sistema sicuro. Tra il sistema con l’infrastruttura di sicurezza e un sistema che ne è privo ci sono gli Hacker.
Dato per scontato che conoscano bene il sistema senza “sicurezza”, saranno in grado di sfruttare queste debolezze per “mettere a terra” il sistema “sicuro”. E non basta “patchare un buco”, è il sistema complessivo che è da riprogettare. “Sistema sicuro” significa un sistema progettato interamente, dall’inizio, pensando che debba funzionare in ogni situazione, in particolare quelle “al limite”.
Il Buffer Overflow e gli attacchi di tipo “Denial of Service” (su protocollo TCP/IP) sono basati tutti sul fatto di lavorare in casi limite. Anche chi scrive in Perl sa benissimo quanto sia importante controllare ogni “input”. Scrivere “codice sicuro”, significa prevedere e controllare gli stati “limite” in cui può essere portato il nostro sistema.
La sicurezza è vista spesso come “il non funzionamento” del sistema e gli Hacker come quelli capaci di far “non funzionare” i sistemi, o non farli funzionare come dovrebbero. Una visione “negativa” della sicurezza (e quindi degli Hacker). Sicurezza significa invece “far funzionare il sistema” in ogni situazione e Hacker sono quelli capaci di vedere il sistema in ogni “modalitA’ di funzionamento”.
Anche perché spesso gli Hacker si chiedono (a differenza dei progettisti): “che succederebbe se………”