La progettazione non sicura è una debolezza incorporata nell'architettura di un sistema, non solo un errore in una riga di codice. Si verifica quando i requisiti di sicurezza sono assenti, deboli o aggiunti troppo tardi, così il software viene costruito con assunzioni non sicure su utenti, dati, confini di fiducia o gestione dei guasti. Esempi comuni includono controlli di autorizzazione mancanti, impostazioni predefinite non sicure, flussi di sessione deboli o logica di business che può essere abusata anche quando il codice è sintatticamente corretto.
Questo è importante perché gli attaccanti spesso preferiscono i difetti di progettazione: sono affidabili, difficili da correggere rapidamente e possono influire su ogni funzionalità costruita sopra il modello errato. Negli attacchi reali, la progettazione non sicura può consentire abuso dei privilegi, esposizione dei dati o aggiramento dei flussi di lavoro senza bisogno di un exploit tradizionale. I difensori riducono il rischio definendo i requisiti di sicurezza fin dall'inizio, modellando le minacce, revisionando l'architettura e testando i casi di abuso prima del rilascio. Valori predefiniti sicuri, un controllo degli accessi मजबूत e pratiche di sviluppo software sicure aiutano a prevenire che la debolezza si ripeta in tutto il codice.


