Controllo della sicurezza di un software

Controllo della sicurezza di un software

Verifica della sicurezza del software

La verifica della sicurezza del software è un processo cruciale per garantire che i programmi siano privi di vulnerabilità e difetti che potrebbero essere sfruttati da malintenzionati per causare danni o compromettere la riservatezza dei dati. Esistono diversi modelli e metodologie per la verifica della sicurezza del software, ognuno con i suoi punti di forza e di debolezza.

Modelli di sicurezza basati sulla semantica:

Questi modelli si concentrano sul comportamento del programma durante l’esecuzione. L’obiettivo è quello di verificare che il programma si comporti in modo conforme alle sue specifiche di sicurezza e che non presenti vulnerabilità che potrebbero essere sfruttate per violazioni della sicurezza. I metodi di verifica basati sulla semantica includono:

  • Analisi statica: Esamina il codice sorgente del programma per identificare potenziali vulnerabilità senza eseguirlo.
  • Analisi dinamica: Esegue il programma con input controllati per osservare il suo comportamento e identificare eventuali violazioni della sicurezza.
  • Simulazione e model checking: Creano un modello del programma e lo utilizzano per simulare la sua esecuzione in una varietà di scenari, alla ricerca di potenziali vulnerabilità.

Modelli di sicurezza basati sul linguaggio:

Questi modelli si basano sul sistema di tipizzazione del linguaggio di programmazione per definire le politiche di sicurezza. I tipi di dati vengono utilizzati per specificare come i dati possono essere utilizzati e manipolati all’interno del programma. I metodi di verifica basati sul linguaggio includono:

  • Controllo del tipo statico: Analizza il codice sorgente del programma per verificare che l’utilizzo dei dati sia conforme alle regole di tipizzazione e che non vi siano potenziali violazioni della sicurezza.
  • Verifica inferenziale: Utilizza tecniche di inferenza per dedurre le proprietà di sicurezza del programma dal suo codice sorgente.

Tipologia di errori all’interno di un software

L’IEEE (Institute of Electrical and Electronics Engineers) ha catalogato gli errori nel software in tre differenti voci a seconda della natura degli errori stessi. Esse sono le suguenti:

  1. Error: è un errore umano verificatosi durante il processo di interpretazione delle specifiche oppure durante l’uso di un metodo o nel tentativo di risoluzione di un problema
  2. Failure: è un comportamento del software imprevisto ed incongruo rispetto alle specifiche del programma stesso
  3. Fault: è un difetto del codice sorgente.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *