Che cos'è la codifica sicura?
La codifica sicura cerca di evitare difetti di codifica facilmente prevenibili che creano rischi per la sicurezza. La ricerca sulla vulnerabilità del software mostra che un gran numero di exploit sono radicati in un piccolo gruppo di errori di programmazione comuni. Gli analisti pubblicizzano informazioni su questi errori per rendere i programmatori consapevoli del problema e incoraggiarli a utilizzare una migliore sicurezza nella progettazione e nell'implementazione del software. Protocolli specifici sono stati sviluppati per alcuni linguaggi di programmazione, come Java ™, per fornire una guida ai programmatori e aiutarli a evitare insidie comuni.
In questo processo, i programmatori utilizzano standard e pratiche che eliminano i problemi di sicurezza comuni. Problemi con il codice possono sorgere per una serie di motivi, tra cui uno scarso controllo delle autorizzazioni e protocolli di buffering delle gemme. Questi potrebbero non essere identificati durante lo sviluppo o i test, ma possono essere evidenti dopo il rilascio. Gli hacker in cerca di exploit possono specificamente indicare punti deboli comuni nel software e possono trovarli testando i confini, il che consente loro di sviluppare attacchi mirati. La codifica sicura può eliminare questi facili exploit.
I protocolli utilizzati nella codifica sicura creano un approccio difensivo allo sviluppo del software. Man mano che le persone implementano funzionalità per fornire funzionalità e soddisfare le esigenze dei clienti, chiudono anche eventuali scappatoie che potrebbero svilupparsi durante il processo di progettazione. La codifica sicura può essere un problema particolare con il codice progettato per l'uso online, in cui gli utenti possono avere impostazioni sfavorevoli sui loro browser, supponendo che il codice proveniente da un sito noto sia attendibile. Se il codice di un sito è vulnerabile all'hacking, potrebbe essere dirottato, impiantando codice dannoso sui computer e sui dispositivi mobili dei visitatori.
Gli sviluppatori di software trovano un equilibrio tra funzionalità e sicurezza. Alcune misure di sicurezza renderebbero i programmi estremamente difficili da usare e potrebbero costituire ostacoli al pieno utilizzo. Consentire alle persone di utilizzare programmi senza alcuna sicurezza, tuttavia, potrebbe esporli al pericolo. Potrebbe anche essere una minaccia per le reti di computer nel loro insieme; un utente con un computer infetto su una rete universitaria, ad esempio, può causare problemi a numerosi altri utenti, inclusi i laboratori sensibili che potrebbero essere connessi alla rete per l'accesso.
I singoli programmatori possono utilizzare una varietà di tattiche per la codifica sicura, oltre ai seguenti protocolli stabiliti per linguaggi di programmazione specifici. Questi possono includere coerenza e chiarezza nella codifica per limitare la confusione e consentire ad altri programmatori di lavorare sullo stesso codice. Negli sforzi collaborativi, i tentativi di districare un altro codice possono creare problemi che presentano problemi di sicurezza.