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:
Commenti
Posta un commento