Definizione di sicurezza del software

8

Sto cercando una definizione teorica di sicurezza del software. E ho bisogno di citare un libro in un articolo.
La maggior parte dei libri inizia già a presupporre che l'utente sappia di cosa si tratta e probabilmente ha ragione.

La mia domanda è la definizione più accettata di sicurezza del software.

    
posta bluefoot 23.07.2011 - 21:51
fonte

7 risposte

11

La definizione di Gary McGraw :

Software security is the idea of engineering software so that it continues to function correctly under malicious attack

    
risposta data 24.07.2011 - 21:46
fonte
5

Per quanto ne so, non esiste una definizione generalmente accettata. Alcuni documenti nel trusted computing definiscono "software affidabile" come un software che funziona secondo le aspettative dell'utente. Piuttosto soggettivo e volatile.

Forse dovresti provare un approccio diverso e utilizzare l'ingegneria di sicurezza dei termini generalmente più accettata come inizio. Il libro Ingegneria di sicurezza di Ross Anderson dovrebbe contenere un qualche tipo di definizione ed è un buon riferimento. Quindi affermare di definire la sicurezza del software come parte software dell'ingegneria della sicurezza (o ingegneria della sicurezza applicata al software).

    
risposta data 23.07.2011 - 22:05
fonte
1

Secondo Jason Andress apud Legge degli Stati Uniti, nel suo libro Nozioni di base sulla sicurezza delle informazioni a>, la sicurezza delle informazioni è definita come:

Protecting information and information systems from unauthorized access, use, disclosure, disruption, modification, or destruction

Poiché i sistemi di informazione (software) esistono per mantenere e manipolare le informazioni, questo può essere una buona definizione di sicurezza del software.

    
risposta data 24.07.2011 - 16:16
fonte
1

Non sono sicuro che ci sia una buona definizione che puoi semplicemente "citare".

Ad esempio, cosa significa "TCP / IP"? Bene, significa "protocollo di controllo della trasmissione / protocollo internet". Questo è completamente corretto, ma allo stesso tempo del tutto inutile. Se non sapevi cosa fosse il TCP / IP con cui iniziare, l'espansione dell'acronimo non ti aiuterà.

Una definizione utile è questa: Gli hacker sfruttano determinati tipi di bug nel software per penetrare nel computer; la sicurezza del software è la scienza per sbarazzarsi di questi bug.

Ad esempio, un exploit di bug hacker comune è il "buffer overflow". Succedono perché riserva una certa quantità di memoria per contenere qualcosa, ma gli hacker forniscono più di quanto previsto dal programmatore. Ad esempio, in un database che contiene il nome utente, il programmatore potrebbe presumere che nessuno avrebbe mai avuto un nome con più di 1000 lettere. È vero, non lo faranno - ma questo non impedirà agli hacker di tentare di immettere nomi falsi così a lungo, e quando lo fanno, i buffer si riversano, gli hacker sovrascrivono altre parti della memoria e prendono il controllo del sistema.

Sappiamo perché i buffer overflow sono così comuni. Prendi il linguaggio C / C ++, per esempio. Negli anni '70, sono stati sviluppati codici riutilizzati di frequente come "strcpy ()" e "sprint ()" che copiano i buffer in memoria senza il doppio controllo della lunghezza. Pertanto, gli hacker cercano semplicemente il software per gli usi di questi frammenti di codice e trovano questi bug. La sicurezza del software lo fa prima dell'hacker, trovando tutti gli usi di "strcpy ()" e rimuovendoli.

    
risposta data 27.07.2011 - 19:48
fonte
1

"La sicurezza nel software è la proprietà non funzionale in cui lo scopo principale è quello di fornire una ragionevole garanzia del corretto provisioning delle funzioni di tale software."

Senza qualificare lo scopo di detto software (è progettato per l'elaborazione di informazioni o il controllo di un forno a microonde?) una definizione deve, per la sua formulazione, essere ampia.

I miei argomenti per la definizione di cui sopra sono approssimativamente questi:

  • La sicurezza è una proprietà non funzionale, ad esempio la sicurezza generalmente non esiste sul proprio
  • Lo scopo ultimo della sicurezza del software è garantire la "correttezza" del software durante il funzionamento, l'errore, l'attacco, l'errore ecc.
  • Un software ha uno scopo (si spera) e soddisfa questo scopo attraverso una serie di funzioni e queste funzioni richiedono sicurezza.

Modifica: Scusa, solo ora ho realizzato che ho fornito solo una mezza risposta alla tua domanda; manca la parte sulla citazione di un libro. Devo ancora trovare una definizione che catturi sufficientemente l'essenza della sicurezza del software.

    
risposta data 28.07.2011 - 10:41
fonte
1

Penso che una definizione più ampia dell'aspetto della sicurezza sia importante. Per esempio. la sicurezza è il processo per mantenere un livello accettabile di rischio. Il rischio può riguardare ogni aspetto della famosa triade della CIA: riservatezza, integrità e disponibilità e le minacce includono non solo attacchi dannosi, ma anche incompetenze e incidenti, come nota Graham.

Quindi preferirei qualcosa di più simile a

Software security is the process of engineering software to function robustly in the face of malicious attack, accidents, and necessary updates and maintenance over its life cycle.

    
risposta data 01.08.2011 - 04:30
fonte
0

Un docente del dipartimento di ingegneria del software di Oxford ha detto (e non ho idea se questa fosse una parafrasi da qualche altra parte o una dichiarazione originale):

Securing a process or activity means acting to ensure that the things that should happen as part of that process do, and the things that shouldn't don't.

    
risposta data 28.07.2011 - 11:00
fonte

Leggi altre domande sui tag