Sicurezza Applicativa: best practice per i casi di abuso e i requisiti di sicurezza


Le best practice che qui presento sono relative alla fase di analisi dei requisiti di sicurezza nel ciclo di vita del software, e definiscono i passi fondamentali per la formalizzazione dei casi di abuso e dei requisiti di sicurezza di un'applicazione.

Per "casi di abuso" si intende la formalizzazione di casi di uso, in cui il termine "uso" è relativo all'attività di un attore malizioso che attui una o più minacce mediante dei pattern di attacco sfruttando una o più vulnerabilità dell'applicazione.

Alla luce dei casi di abuso formalizzati si sarà in grado di esplicitare i requisiti di sicurezza dell'applicazione. Per "requisiti di sicurezza" si intendono le funzionalità e i meccanismi di sicurezza, da implementare nell'applicazione, per contrastare gli scenari evidenziati nei casi di abuso.

Le best practice proposte sono in ordine temporale, ma in ogni momento è possibile riconsiderare best practice già valutate precedentemente alla luce di nuove considerazioni.

Ad esempio, se nel modello di attacco non si è considerato un possibile attacco, durante l’elaborazione della lista degli "anti-requisiti" potrebbero emergere altre tipologie di attacchi o altre minacce. Questo comporterà l’integrazione del modello di attacco e delle minacce precedentemente definite.

Ecco le best practice:

  • Pensare come un utente malizioso: è fondamentale mettersi nei panni di un utente malizioso che voglia sovvertire il sistema;
  • Definire le minacce: identificare le minacce a cui è sottoposto il sistema; le minacce possono essere rappresentate da attori o agenti che possono produrre un danno al sistema;
  • Creare un modello di attacco: definire un modello di attacco per l'applicazione da realizzare utilizzando i pattern di attacco selezionati;

  • Creare gli "anti-requisiti": definire cosa succeda nel caso in cui un requisito, anche di sicurezza, fallisca e come questo possa essere sfruttato da un utente malizioso;

  • Formalizzare i casi di abuso: unire gli anti-requisiti e i modelli di attacco per formalizzare i casi di abuso;

  • Definire i requisiti di sicurezza: alla luce dei casi di abuso evidenziare i requisiti di sicurezza dell'applicazione; classificare i requisiti di sicurezza a seconda che siano indispensabili, importanti o consigliabili.

I/O:


  • Input delle Best Practice: pattern di attacco, requisiti funzionali e non funzionali, minacce, metodologia STRIDE;
  • Output delle Best Practice: casi di abuso, requisiti di sicurezza.

I post precedenti:

Qualche blog link:

Commenti

Post popolari in questo blog

Exploit: icsploit o espluà?

TrueCrypt 5.0: nuova release

ING Direct: ancora con il PAD numerico rotante!