Un computer a programma memorizzato conserva le proprie istruzioni in memoria invece di cablare la logica nella macchina stessa. Questo progetto consente allo stesso hardware di eseguire molti programmi diversi, perché cambiare comportamento è per lo più una questione di caricare nuovo codice. I laptop, i server, gli smartphone e i router moderni usano tutti questo modello.
Questo è importante nella sicurezza informatica perché, se il codice risiede in memoria scrivibile, gli attaccanti possono tentare di alterare ciò che il sistema esegue. Malware, injection di shellcode e exploit di corruzione della memoria si basano tutti sull'idea che le istruzioni possano essere collocate, copiate o modificate in memoria. I difensori costruiscono controlli attorno alla stessa proprietà: firma del codice, memoria non eseguibile, randomizzazione dello spazio degli indirizzi, sandboxing e avvio sicuro mirano tutti a rendere più difficile l'esecuzione di istruzioni ostili. In una macchina a programma memorizzato, proteggere la memoria è spesso importante quanto proteggere il disco o la rete.


