Volete programmare in modo sicuro? Lingue da evitare

Oggi viviamo nel mondo dellinsicurezza e della mancanza di privacy. Dai sistemi operativi stessi, ai programmi che utilizziamo quotidianamente, è molto comune incontrare tutti i tipi di vulnerabilità che possono mettere a rischio la nostra sicurezza. Ma di chi è la colpa se ci sono difetti di sicurezza? degli sviluppatori? dei linguaggi di programmazione? dei linguaggi di programmazione sicuri e non sicuri? o è davvero colpa di entrambe le parti?

I sistemi operativi e i programmi di oggi sono progetti veramente complessi. Il minimo bug o la minima deviazione in una delle centinaia di librerie può mettere in pericolo gli utenti del nostro programma. Tutti i linguaggi di programmazione sono sicuri di default. Se li usiamo bene, non devono mettere in pericolo gli utenti. Tuttavia, ci sono linguaggi che sono molto più inclini a fallire (a causa di errori di direzione, complessità o mancanza di misure di sicurezza) che possono portare a vulnerabilità di ogni tipo.

Linguaggi di programmazione più sicuri

Di tutti i linguaggi di programmazione più usati, quello con il minor numero di vulnerabilità è Ruby. Questo linguaggio di programmazione è stato influenzato solo dal 5% delle vulnerabilità. Inoltre, è, in linea di massima, uno dei linguaggi più sicuri e robusti, poiché, sebbene in esso siano state segnalate diverse vulnerabilità, lunica veramente preoccupante è la possibilità di attacchi XSS. Se si dovesse raccomandare il linguaggio di programmazione più sicuro , sarebbe il linguaggio ideale per il titolo.

C++ è un altro linguaggio di programmazione con meno vulnerabilità che possiamo trovare, con solo il 6% del codice vulnerabile. Tuttavia, non è esattamente uno dei più debuggati, poiché presenta un gran numero di problemi di corruzione della memoria e di errori di buffer che possono portare ad attacchi informatici più complessi.

Continuando la lista dei linguaggi di programmazione sicuri con meno vulnerabilità si arriva a Python. In passato questa lingua era una delle peggiori in termini di sicurezza. Tuttavia, negli ultimi anni è migliorata molto e ha affrontato la maggior parte dei problemi che lhanno colpita in passato. Tuttavia, presenta ancora le vulnerabilità più critiche che possiamo trovare oggi, come i fallimenti della validazione degli input, lescalation dei privilegi, la perdita di informazioni e gli XSS. Se sappiamo come programmare in Python possiamo avere un programma robusto. Ma se programmiamo male avremo un setaccio, letteralmente.

E ha anche una menzione speciale JavaScript. Anche questo è molto usato nello sviluppo web e nasconde solo l11% delle vulnerabilità. Tra i suoi principali punti deboli vi sono i problemi di crittografia, che ci costringeranno a utilizzare API di terze parti per risolverli.

Lingue con più vulnerabilità

Daltra parte, tra i linguaggi di programmazione più vulnerabili, il primo che troveremo è C . E questo è ovvio, dato che è uno dei linguaggi di programmazione in cui cè più codice scritto (specialmente il vecchio codice), quindi la probabilità di scoprire vulnerabilità in questo codice è molto alta. Del numero totale di vulnerabilità riscontrate, il 47% si trova nel codice scritto in questo linguaggio di programmazione. Tuttavia, sono stati trovati solo due bug nella lingua stessa, un errore del buffer e diversi problemi di validazione.

PHP è uno dei linguaggi più utilizzati nella programmazione web (backend) e quindi uno dei più accattivanti per gli hacker. Questo è il secondo linguaggio di programmazione con più vulnerabilità (17% del totale), e ciò che colpisce di più è che questo linguaggio è lunico ad avere vulnerabilità critiche come SQL Injection, e può essere sfruttato anche attraverso XSS. Due vulnerabilità altamente sfruttate in tutta la rete e difficili da sradicare.

E, naturalmente, non potevamo finire senza parlare di Java. Il linguaggio di programmazione multipiattaforma così utilizzato qualche anno fa è anche uno dei linguaggi con le vulnerabilità più nascoste a causa della sua complessità. Il 12% delle vulnerabilità si trova in questo linguaggio di programmazione che, sebbene abbia perso molta popolarità ultimamente, è ancora uno dei pilastri fondamentali di Android.

Codice di riutilizzo: vantaggio o rischio?

Un sacco di open source è ora disponibile su piattaforme come GitHub. A seconda della vostra licenza, questo codice può essere liberamente riutilizzato in altri tipi di progetti, il che può farci risparmiare molto tempo nel modellare i nostri programmi. Tuttavia, il riutilizzo del codice nasconde uno dei maggiori problemi con le vulnerabilità di OpenSource: .

È molto comune che tutti i tipi di sviluppatori, anche le grandi aziende come Microsoft o Google, approfittino di librerie aperte per portare determinate funzioni e caratteristiche agli utenti. Fin qui tutto bene, perché fornisce anche un po di trasparenza ai progetti opachi che queste aziende di solito creano. Tuttavia, dobbiamo tenere conto di un handicap molto importante: una vulnerabilità in una libreria open source compromette automaticamente tutti i progetti che la utilizzano.

Abbiamo già visto importanti vulnerabilità (come OpenSSL) che hanno messo sotto controllo la sicurezza di migliaia di programmi e piattaforme in tutto il mondo. Inoltre, quando si scopre una vulnerabilità di questo tipo, è necessario, da un lato, che lo sviluppatore del progetto originale aggiorni la sua libreria, e dallaltro, che gli sviluppatori dei programmi vulnerabili includano la nuova versione nel loro programma attraverso un aggiornamento.

Il riutilizzo del codice è una delle caratteristiche dei programmi e dei sistemi moderni. Ma non dovremmo mai fare affidamento su di esso, poiché la probabilità che una vulnerabilità appaia nel codice che abbiamo usato è molto più alta che se avessimo creato noi stessi il codice.

Articoli relativi a Volete programmare in modo sicuro? Lingue da evitare