Il software è il mezzo con il quale il sistema esegue delle operazioni. Esso, quando viene eseguito, genera un processo con opportuni diritti di esecuzione, per mezzo dei quali è in grado di far eseguire al sistema le operazioni in esso programmate. Più i diritti di esecuzione sono elevati, più il software può compiere operazioni delicate per il sistema.
Inoltre il software potrebbe contenere dei bug (falle) che anche il programmatore ignora, ma che se oppotunamente sfruttati, potrebbero far operare il software in modo del tutto imprevisto. Questo è tanto più importante quanto più elevati sono i diritti del processo generato dall’esecuzione del software considerato. Pertanto è opportuno non sottovalutare la fase di test o debug alla quale il software deve necessariamente essere sottoposto prima di poter essere utilizzato: un bug presente in un software che ha diritti di esecuzione del superuser potrebbe permettere ad un utente qualunque di ottenere privilegi a lui normalmente non permessi. Dunque, in sostanza, la sicurezza è demandata alla bontà del software scritto dal programmatore.