Secure Coding, Secure Programming, Sicurezza Applicativa: che confusione!

Che l'informatica sia tempestata di "buzzword" è cosa nota. E una "buzzword" è tale se è ambigua nel suo significato e ammiccante al marketing.
Stavo riflettendo sul fatto che molti dei termini o delle locuzioni utilizzate nella "Sicurezza applicativa" sono state e continuano ad essere ambigue e come tali sono appunto delle "buzzword"!...e le traduzioni dall'inglese all'italiano non aiutano di certo!

Vediamo quindi se è possibile rendere questo panorama di Buzzword un po' meno ambiguo e avviare una riflessione su questo punto che non è di secondaria importanza. Cerchiamo intanto di capire quali sono le possibili e corrispondenti traduzioni in italiano delle locuzioni più note:
  1. Secure Coding: Codificazione Sicura;
  2. Secure Programming: Programmazione Sicura;
  3. Secure Software: Software Sicuro;
  4. Secure Software Development Life Cycle: Ciclo di vita per lo sviluppo sicuro del Software;
  5. Application Security: Sicurezza delle Applicazioni;
  6. Software Security: Sicurezza del Software;
Nell'ipotesi di dover definire le azioni atte a rendere sicuro un software sviluppato, abbiamo due alternative: utilizzare un giro di parole, tipico approccio che lascia spazio a diverse interpretazioni, oppure utilizzare un ben preciso termine, approccio più tecnico ma che rischia di lasciar fuori alcuni ambiti.

Posto che secondo me le traduzioni in italiano di concetti che nascono in inglese hanno poco significato e che quindi debbono essere usati i nativi termini in inglese (ricordo ancora con terrore la locuzione "algebra relazionale" all'Università), riprendiamo quindi la nostra lista e proviamo ad assegnare un probabile significato:
  1. Secure Coding: tradurre gli algoritmi in un determinato linguaggio di programmazione, in modo che il codice sorgente generato sia esente da vulnerabilità tipiche del linguaggio di programmazione scelto;
  2. Secure Programming: assicurarsi che gli algoritmi elaborati non contengano delle vulnerabilità progettuali + "Secure Coding";
  3. Secure Software: software realizzato secondo lo stato dell'arte della sicurezza delle applicazioni software e del codice che lo ha generato;
  4. Secure Software Development Life Cycle: sviluppo di un "Secure Software" secondo le fasi del "ciclo di vita del software sicuro";
  5. Application Security: sicurezza delle applicazioni dal punto di vista "dell'ambiente di esecuzione" delle stesse (approccio più black-box);
  6. Software Security: sicurezza delle applicazioni che comprende tutti gli aspetti interni ed esterni: codice, algoritmi, ciclo di vita, configurazione, ambiente di esecuzione (approccio più white-box).
Lungi da me dare per assodate queste definizioni. Sono solo delle mie elucubrazioni mentali che vorrei condividere e magari affinare con voi. Immagino che molti potranno fornirmi anche riferimenti documentali precisi, in cui magari è possibile ravvisare autorevoli definizioni.

Mi raccomando però, non fate come certi che copiano e incollano allegramente definizioni di questo tipo dai blog direttamente in capitolati d'appalto eh! Che puoi ci vuole poco a fare una Googelata e ad accorgersene! Se proprio dovete farlo, fatelo da fonti autorevoli come articoli presenti in letteratura o blog più blasonati :-)

Commenti

Post popolari in questo blog

Exploit: icsploit o espluà?

TrueCrypt 5.0: nuova release

ING Direct: ancora con il PAD numerico rotante!