SOFTWARE DEVELOPMENT SECURITY

Integrate la sicurezza nei processi di sviluppo del software.

Programmazione e Sviluppo di Software Sicuro

Il nostro Team è composto anche da sviluppatori senior con esperienza pluriennale nello sviluppo di software sicuro e specializzati in Software Dependability and Cybersecurity.

Supportiamo il cliente nella definizione dei requisiti di sicurezza delle applicazioni, nell'analisi della superficie di attacco e nel threat modeling durante il design, prima del passaggio in produzione. Per poter procedere alla programmazione di software sicuro è indispensabile conoscere le vulnerabilità che vengono introdotte nelle diverse fasi dello sviluppo software. Se il cliente possiede, sviluppa ed utilizza software, la fase di Code Review (Revisione del Codice) è obbligatoria, in quanto vengono corrette alla radice falle, cattive abitudini nella programmazione e quindi futuri vettori d’attacco. Le modalità di revisione vengono decise in base al sistema ed iter di sviluppo aziendale: su release candidate o major version, periodico, on demand. Indipendentemente dalla metodologia di sviluppo adottata, la definizione dei controlli di sicurezza nelle applicazioni inizia con, o precede, la fase di progettazione e continua per tutto il ciclo di vita dell’applicazione in risposta alle mutevoli esigenze organizzative, in un ambiente costantemente a rischio e in continua evoluzione.

La sicurezza, come parte del processo di sviluppo del software, è un processo continuo che coinvolge persone e pratiche e garantisce la riservatezza, l’integrità e la disponibilità delle applicazioni. Il software sicuro è il risultato di processi di sviluppo software consapevoli della sicurezza in cui la sicurezza è integrata e quindi il software è sviluppato tenendo conto della sicurezza. La sicurezza è più efficace se pianificata e gestita in ogni fase del ciclo di vita dello sviluppo del software (SDLC), soprattutto nelle applicazioni critiche o in quelle che elaborano informazioni sensibili. La soluzione alla sicurezza dello sviluppo software non è solo la tecnologia.

Ci sono vari controlli di sicurezza che possono essere incorporati nel processo di sviluppo di un’applicazione per garantire la sicurezza e prevenire l’accesso non autorizzato. I test di sicurezza sono essenziali per garantire che il sistema impedisca agli utenti non autorizzati di accedere alle sue risorse ed ai suoi dati. Alcuni dati delle applicazioni vengono inviati via internet che viaggiano attraverso una serie di server e dispositivi di rete. Ciò offre ampie opportunità agli hacker senza scrupoli.

Il National Institute of Standards and Technology (NIST) ha stimato che il costo del “code fixing” eseguito successivamente al rilascio in produzione del codice può risultare 30 volte il costo che si avrebbe se tali difettosità fossero individuate e risolte nella fase di progettazione.


Attacchi Informatici verso le Applicazioni

I fattori chiave di questa evoluzione sono i progressi fatti dagli attaccanti, il rilascio di nuove tecnologie, l’uso di sistemi sempre più complessi. Gli obiettivi degli attacchi sono le vulnerabilità, celate all’interno delle applicazioni software, che forniscono un facile percorso d’ingresso per compromettere i sistemi o lanciare nuovi attacchi e malware. I punti deboli delle applicazioni e le vulnerabilità del software continuano ad essere il mezzo più comune con cui i criminali informatici compiono attacchi esterni e, ancora più grave, lo sfruttamento di vulnerabilità note è ancora in crescita. Nonostante queste vulnerabilità possano essere risolte con misure adeguate, le vulnerabilità più comuni nelle applicazioni Web continuano ad essere le stesse degli ultimi anni: il 60% presenta errori di convalida dell’input, il 70% difetti di incapsulamento di dati o funzionalità critiche all’interno dei componenti e oltre un terzo (35%) presenta problematiche provocate dall’abuso di API, un acronimo per Application Programming Interface. Un’API è, in termini estremamente semplici, un intermediario software che consente a due applicazioni di parlarsi l’una con l’altra. Un esempio: è come essere al ristorante. Il cliente seduto al tavolo ordina dal menù, ma ha bisogno di un tramite, nel suo caso il cameriere, per ottenere il piatto desiderato. L’API è in questo caso il cameriere!