Programmazione sicura

Con il termine “programmazione sicura” ci riferiamo alla pratica di sviluppo di programmi per dispositivi programmabili (server, computer da scrivania, sistemi integrati, dispositivi mobili e indossabili, ecc) in modo da prevenire problemi di sicurezza causati da errori accidentali.

Ci sono vari modi di inserire (parliamo sempre di inserimento non intenzionale) degli errori, falle logiche, o anche difetti archietetturali in un programma, che portano all’introduzione di vulnerabilità. Alcuni di questi sono trasversali ai particolari linguaggi di programmazione e tecnologie utilizzate, mentre gli altri sono più specifici e inerenti a una tecnologia.

I nostri corsi di programmazione sicura sono suddivisi in due categorie:

  • la prima è quella panoramica, dove cerchiamo in primo luogo di presentare un quadro generale di programmazione sicura; essa è abbastanza indipendente dal linguaggio di programmazione e dalle tecnologie utilizzate: al fine di trasmettere efficacemente i vari concetti, viene usata solo una specifica tecnologia, senza la quale altrimenti la materia potrebbe rimanere troppo astratta
  • la seconda è quella strettamente legata a una specifica tecnologia, ma in modo molto più esteso che nel punto precedente, dove ci focalizziamo molto sui (potenziali) problemi di sicurezza che le pratiche di programmazione sbagliate in uno specifico linguaggio possono generare.

Le due categorie non sono in realtà separabili, le nozioni della seconda non possono essere apprese se non si padroneggia quelle della prima. Dall’altra parte la seconda rafforza ulteriormente i concetti della prima e aiuta a consolidarne le nozioni. Di conseguenza, raccomandiamo sempre di frequentare un corso che tratti entrambe le categorie.

Di potenziali vulnerabilità in un programma ce ne possono essere un’infinità, ma è stato dimostrato empiricamente, analizzando migliaia di vulnerabilità publicamente riportate e documentate, che la maggior parte di queste appartiene a un numero relativamente piccolo di errori di programmazione.

Esaminare nei dettagli le casistiche di alcune di queste vulnerabilità documentate aiuta ai programmatori di acquisire quella forma mentis necessaria per ragionare in modo proattivo quando sviluppano software per prevenire gli accidentali inserimenti di vulnerabilità.

Questa sezione dei nostri corsi per adesso copre solo la programmazione sicura nei linguaggi C e C++, ma altri corsi sono in preparazione; questa pagina viene costantemente aggiornata in corso d’opera con tutte le novità. In alternativa potete visitare la nostra pagina di contatti e chiedere l’iscrizione al notiziario per destinatari interessati alle novità inerenti a una specifica docenza. Questo approccio lo ritenamo preferibile, in quanto ci fornisce delle informazioni in base alle quali sappiamo a quali dei corsi, attualmente in sviluppo, dare priorità.