La superficie di attacco del software è il profilo completo di tutte le funzioni in qualsiasi codice in esecuzione in un dato sistema che sono disponibili per un utente non autenticato.
Maggiore è la superficie, maggiori sono le possibilità che un utente malintenzionato o un malware possa utilizzare vari exploit per ottenere l'accesso ed eseguire il codice sulla macchina di destinazione. La superficie di attacco del software è particolarmente a rischio nel caso delle applicazioni Web, che espongono la codifica a Internet.
Funzioni difettose possono portare alla compromissione di un'intera rete o di un altro sistema consentendo a un utente non verificato, che potrebbe essere un hacker o una spia aziendale, di rubare dati o ottenere ulteriori accessi, magari elevando i privilegi a livello di amministratore. Le singole funzioni con falle di sicurezza possono essere considerate vettori di attacco; quelli che possono essere sfruttati per ottenere un ulteriore accesso possono essere visti come vulnerabilità.
Un'altra considerazione nella superficie di attacco del software sono le minacce interne. Gli utenti che si autenticano con credenziali valide possono essere in grado di accedere a dati non protetti oltre i loro livelli di autorizzazione se i controlli di accesso sono implementati in modo approssimativo.
Poiché qualsiasi codice in esecuzione può presentare vulnerabilità sfruttabili, uno dei modi più semplici per limitare la superficie di attacco del software è ridurre la quantità di codice eseguito in un dato momento. Se un programma non viene utilizzato o se un altro software installato può eseguire la stessa operazione, è necessario eliminarlo. I firewall antivirus, hardware e software possono aiutare a bloccare l'accesso alle vulnerabilità esistenti; gli aggiornamenti del sistema operativo e dell'applicazione a volte correggono questi punti deboli. Tuttavia, è meglio per la sicurezza generale ridurre al minimo il numero di vulnerabilità per cominciare. A tal fine, gli sviluppatori stanno prendendo sempre più in considerazione i vettori di attacco nella loro progettazione del software.
Poiché molti approcci di attacco sfruttano una combinazione di tipi di superficie di attacco per ottenere l'accesso alle risorse desiderate, un'analisi completa della superficie di attacco è fondamentale per una corretta configurazione dei sistemi di rilevamento delle violazioni (BDS), firewall, sistemi di prevenzione delle intrusioni, policy dei dati e altre misure di sicurezza. Gli strumenti disponibili per guidare tale analisi includono WebInspect, Microsoft attack surface analyzer e CORE Impact.
Vedi anche: superficie di attacco di rete, superficie di attacco fisica, superficie di attacco di ingegneria sociale