Cos'è la sicurezza del software?

Cos'è la sicurezza del software?
La sicurezza del software è la costruzione di software sicuro con difesa intrinseca in modo che continui a funzionare in attacchi dannosi, con soddisfazione degli utenti e dei proprietari del software. Questo articolo spiega le minacce e le soluzioni, dal punto di vista generale. Viene inoltre spiegato il vocabolario standard nella sicurezza delle informazioni. Dovresti essere alfabetizzati per computer e Internet per comprendere questo articolo; Avresti dovuto anche studiare un linguaggio del computer, E.G., Perl, C, C ++, PHP, ecc.

Ciò che è protetto sono pacchetti di informazioni e software (applicazioni e documenti). Le informazioni sono qualsiasi messaggio utile a chiunque. "Informazioni" è una parola vaga. Il contesto in cui viene utilizzato dà il suo significato. Può significare notizie, lezioni, tutorial (o lezione) o soluzione. Un pacchetto software è di solito una soluzione ad alcuni problemi o problemi correlati. In passato, tutte le informazioni non parlate sono state scritte su carta. Oggi, il software può essere considerato come un sottoinsieme di informazioni.

Il software può risiedere in un computer o essere in transito da un computer a un altro. File, dati, e -mail, voce registrata, video registrati, programmi e applicazioni risiedono su un computer. Mentre risiede in un computer, può essere corrotto. Mentre è in transito, può ancora essere corrotto.

Qualsiasi dispositivo con processore e memoria è un computer. Quindi, in questo articolo, un calcolatore, uno smartphone o un tablet (E.G., iPad) è un computer. Ognuno di questi dispositivi e i loro supporti di trasmissione di rete hanno software o software in transito che dovrebbero essere protetti.

Privilegi

A un utente può essere dato il privilegio di eseguire un file su un computer. A un utente può essere dato il privilegio di leggere il codice di un file in un computer. A un utente può essere dato il privilegio di modificare (scrivere) il codice di un file in un computer. A un utente può essere dato uno, due o tutti e tre questi privilegi. Esistono altri privilegi per un sistema operativo o un database. Gli utenti hanno importi o livelli di privilegi diversi in un sistema.

Minacce

Base di minacce software

Per proteggere il software, devi conoscere le sue minacce. Il software deve essere protetto da persone non autorizzate che accedono ai suoi dati. Deve essere protetto dall'uso illegale (per causare danni, per esempio). Il software dovrebbe essere protetto contro la divulgazione ai rivali. Il software non dovrebbe essere corrotto. Il software non deve essere eliminato involontariamente. Il software non deve essere interrotto. Il software non dovrebbe avere alcuna modifica non richiesta. I dati (software) non devono essere ispezionati senza una buona ragione, specialmente da persone non autorizzate. Il software non deve essere copiato (piratato).

Una o più di queste basi, risultando in un particolare tipo di minaccia classica.

Classi di minaccia software

Attacco di spoofing

Questa è la situazione in cui una persona (o programma) rappresenta con successo un'altra persona (o programma) in alcune attività software. Questo viene fatto usando falsi dati per ottenere un vantaggio illegale.

Ripudio

Questa è la situazione in cui qualcuno fa qualcosa di sbagliato e rifiuta che non sia quello che lo ha fatto. La persona può usare la firma di un'altra persona per fare la cosa sbagliata.

Violazione dei dati

Una violazione dei dati è quando le informazioni sicure o private vengono rilasciate intenzionalmente o involontariamente a un ambiente di cui non si fida.

Attacco di negazione del servizio

Una rete di computer software ha un software in esecuzione nei computer della rete. Ogni utente di solito usa il suo computer di fronte a lui e di solito richiede servizi da altri computer della rete. Un utente criminale può decidere di inondare un server con richieste superflue. Un server ha un numero limitato di richieste che può gestire in una durata. In questo schema di inondazione, gli utenti legittimi non possono utilizzare il server tutte le volte che dovrebbero, poiché il server è impegnato a rispondere alle richieste del criminale. Ciò sovraccarica il server, interrompendo temporaneamente o indefinitamente i servizi del server. Nel corso di questo, l'host (server) rallenta in funzione per utenti legittimi, mentre l'autore svolge il suo malizia, che non è rilevato, perché gli utenti legittimi in piedi, in attesa del servizio, non potevano sapere cosa stesse succedendo il server. Ai buoni utenti viene negato il servizio, mentre l'attacco è in corso.

Aumento dei privilegi

Diversi utenti di un sistema operativo o applicazione hanno privilegi diversi. Quindi, alcuni utenti finiscono con più valore di altri, dal sistema. Sfruttare un bug del software o una supervisione della configurazione per ottenere un accesso elevato alle risorse o informazioni non autorizzate è un'escalation del privilegio.

Gli schemi di classificazione di cui sopra possono essere utilizzati per causare un virus informatico e un vermi.

Uno o più degli schemi di classificazione di cui sopra possono essere utilizzati per gli attacchi software, che includono: furto di proprietà intellettuale, corruzione del database, furto di identità, sabotaggio ed estorsione delle informazioni. Se una persona utilizza uno o più schemi per modificare in modo distruttivo, un sito Web in modo che i clienti del sito perdano la fiducia, cioè il sabotaggio. L'estorsione delle informazioni è il furto del computer di un'azienda o ottenere falsamente informazioni segrete sull'azienda. Il computer rubato può avere informazioni segrete. Ciò può portare a ransomware, in cui il ladro richiederebbe un pagamento, in cambio della proprietà o delle informazioni rubate.

Privacy

Quando qualcosa è sensibile o intrinsecamente speciale per te, allora quella cosa è privata per te. Questo vale anche per un gruppo di persone. Un individuo deve esprimersi selettivamente. Per raggiungere tale selettività, l'individuo deve programmare se stesso o programmare informazioni su se stessa; Questa è la privacy. Un gruppo di persone deve esprimersi selettivamente. Per raggiungere tale selettività, il gruppo deve programmare se stesso o programmare informazioni su se stessi; Questa è la privacy. Un individuo deve proteggersi selettivamente. Per raggiungere tale protezione selettiva, l'individuo deve proteggersi o proteggere le informazioni su se stessa in modo selettivo; cioè, privacy. Un gruppo di persone deve proteggersi selettivamente. Per raggiungere tale protezione selettiva, il gruppo deve proteggere se stesso o proteggere le informazioni su se stessi in modo selettivo; cioè, privacy.

Identificazione e autenticazione

Quando viaggi in un paese straniero, raggiungerai un porto di quel paese. Al porto, un agente di polizia ti chiederà di identificarti. Presenterai il tuo passaporto. L'agente di polizia conoscerà la tua età (dalla data di nascita), il tuo genere e la tua professione dal passaporto e ti guarderà (il tuo viso); questa è l'identificazione. L'agente di polizia confronterà la tua vera faccia e la foto sul passaporto. Stimerà anche la tua età con ciò che è nel passaporto per sapere se sei tu.

Guardare te e associare la tua età, sesso e professione con te è l'identificazione. Verificare se la tua faccia reale e la tua foto sono uguali e stimare se la presentazione corrisponde alla tua età, è l'autenticazione. L'identificazione sta associando una persona o qualcosa a determinati attributi. Indicare anche un'identità. L'autenticazione è l'atto di dimostrare che l'identità (identificazione) è vera. In altre parole, l'autenticazione è l'atto di dimostrare un'affermazione.

Nel calcolo, il modo più comune di autenticazione è l'uso di una password. Un server, ad esempio, ha molti utenti. Al login, indichi la tua identità (identifichi te stesso) con il tuo nome utente. Dimostrate la tua identità con la tua password. La tua password dovrebbe essere conosciuta solo da te. L'autenticazione può andare oltre; facendoti una domanda, come "in quale città o città è nato?"

Obiettivi di sicurezza

Gli obiettivi di sicurezza nelle informazioni sono la riservatezza, l'integrità e la disponibilità. Queste tre caratteristiche sono conosciute come CIA Triad: C per la riservatezza, I per l'integrità e A per disponibilità.

Riservatezza

Le informazioni non devono essere divulgate a individui non autorizzati, e entità non autorizzate o processi non autorizzati; Questa è riservatezza delle informazioni nella sicurezza delle informazioni (nonché sicurezza del software). Il furto di password o l'invio di e -mail sensibili a un individuo errata è compromesso la riservatezza. La riservatezza è una componente della privacy che protegge le informazioni da individui non autorizzati, o entità non autorizzate o processi non autorizzati.

Integrità

Informazioni o dati hanno un ciclo di vita. In altre parole, informazioni o dati hanno un orario di inizio e un tempo di fine. In alcuni casi, dopo la fine del ciclo di vita, le informazioni (o i dati) devono essere cancellate (legalmente). L'integrità è costituita da due caratteristiche, che sono: 1) la manutenzione e la garanzia dell'accuratezza delle informazioni (o dei dati) sull'intero ciclo di vita e 2) la completezza delle informazioni (o dei dati) nell'intero ciclo di vita. Pertanto, le informazioni (o i dati) non devono essere ridotti o modificati in modo non autorizzato o non rilevato.

Disponibilità

Affinché qualsiasi sistema informatico abbia il proprio scopo, le informazioni (o i dati) devono essere disponibili quando necessario. Ciò significa che il sistema informatico e il suo supporto di trasmissione devono funzionare correttamente. La disponibilità può essere compromessa da aggiornamenti del sistema, guasti hardware e interruzioni di corrente. La disponibilità può anche essere compromessa da attacchi di negazione del servizio.

Non ripudio

Quando qualcuno usa la tua identità e la tua firma per firmare un contratto che non ha mai adempiuto, il non ripudio è quando non puoi negare con successo in tribunale che non hai autorizzato il contratto.

Alla fine di un contratto, la parte che offre il servizio deve aver offerto il servizio; La parte che paga deve aver effettuato il pagamento.

Per capire come il non ripudio è applicabile alla comunicazione digitale, devi prima conoscere il significato della chiave e il significato della firma digitale. Una chiave è un pezzo di codice. Una firma digitale è un algoritmo che utilizza una chiave per produrre qualche altro codice che viene paragonato a una firma scritta del mittente.

Nella sicurezza digitale, il non ripudiazione viene fornito (non necessariamente garantito) da una firma digitale. Nella sicurezza del software (o sicurezza delle informazioni), il non ripudio ha a che fare con l'integrità dei dati. La crittografia dei dati (che potresti aver sentito) combinata con la firma digitale contribuisce anche alla riservatezza.

Gli obiettivi di sicurezza nelle informazioni sono la riservatezza, l'integrità e la disponibilità. Tuttavia, il non ripudio è un'altra caratteristica che devi prendere in considerazione quando si ha a che fare con la sicurezza delle informazioni (o la sicurezza del software).

Risposte alle minacce

Le minacce possono essere risposte, in uno o più dei seguenti tre modi:

- Riduzione/mitigazione: questa è l'implementazione di salvaguardie e contromisure per eliminare le vulnerabilità o bloccare le minacce.

- Assegnazione/trasferimento: questo pone l'onere della minaccia a un'altra entità, come una compagnia assicurativa o una società di outsourcing.

- Accettazione: questo valuta se il costo della contromisura supera il possibile costo della perdita a causa della minaccia.

Controllo di accesso

Nella sicurezza delle informazioni di quale sicurezza del software è parte, il controllo degli accessi è un meccanismo che garantisce che solo gli utenti ammissibili siano in grado di accedere alle risorse protette in un determinato sistema, con i loro diversi meritati privilegi.

Soluzione attuale alla sicurezza delle informazioni

Il modo attuale e popolare per eseguire la sicurezza delle informazioni è far rispettare l'accesso. Ciò include misure come la convalida dell'input a un'applicazione, l'installazione di antivirus, l'utilizzo di un firewall in una rete locale e l'impiego di sicurezza del livello di trasporto.

Quando ti aspetti una data come input per un'applicazione, ma l'utente inserisce un numero, tale input deve essere respinto. Questa è la convalida dell'input.

Un antivirus installato nel computer impedisce ai virus di corrompere i file sul computer. Questo aiuta nella disponibilità del software.

Le regole possono essere stabilite per monitorare e controllare il traffico in arrivo e in uscita di una rete di area locale, al fine di proteggere la rete. Quando tali regole sono implementate come software, nella rete locale, questo è un firewall.

Transport Layer Security (TLS) è un protocollo di sicurezza progettato per facilitare la privacy e la sicurezza dei dati per le trasmissioni su Internet. Ciò comporta la crittografia della comunicazione tra l'invio dell'host e la ricezione dell'host.

Fare sicurezza delle informazioni applicando il controllo degli accessi si chiama software di sicurezza, che è diverso dalla sicurezza del software, come spiegato di seguito. Entrambi gli approcci hanno lo stesso obiettivo, ma sono diversi.

Sicurezza del software corretta

Le applicazioni, come sono scritte oggi, hanno molte vulnerabilità del software che i programmatori hanno realizzato sempre di più negli ultimi 20 anni. La maggior parte degli attacchi viene effettuata sfruttando queste vulnerabilità rispetto al superamento o al controllo del controllo degli accessi.

Un tampone è come un array ma senza una lunghezza impostata. Quando un programmatore sta scrivendo in un buffer, è possibile sovrascrivere inconsciamente oltre la sua lunghezza. Questa vulnerabilità è un overflow buffer.

Oggi il software ha disertato le ramificazioni di sicurezza, tra cui bug di implementazione come overflow buffer e difetti di progettazione come la gestione degli errori incoerente. Queste sono vulnerabilità.

Potresti aver sentito parlare di trucchi per il linguaggio del computer come cheat PHP, trucchi perl e trucchi C ++. Queste sono vulnerabilità.

La sicurezza del software, al contrario del software di sicurezza, sta superando queste vulnerabilità scrivendo codice difensivo in cui le vulnerabilità sarebbero prevenute. Mentre l'applicazione viene utilizzata, man mano che vengono scoperte più vulnerabilità, gli sviluppatori (programmatori) dovrebbero cercare modi per ri-codificare le vulnerabilità, difensivamente.

La minaccia, l'attacco di negazione del servizio, non può essere fermata dal controllo degli accessi, perché affinché l'autore lo faccia, deve già avere accesso all'host (server). Può essere fermato includendo alcuni software interni che monitora ciò che gli utenti stanno facendo nell'host.

La sicurezza del software è un design robusto dall'interno, che rende difficili gli attacchi software. Il software dovrebbe essere auto-protezione e, al limite, non avere vulnerabilità. In questo modo, l'esecuzione di una rete sicura diventa più facile e più conveniente.

La sicurezza del software sta progettando un codice difensivo all'interno dell'applicazione mentre il software di sicurezza sta applicando il controllo dell'accesso (progettazione). A volte questi due problemi si sovrappongono, ma spesso non lo fanno.

La sicurezza del software è già abbastanza sviluppata, sebbene sia ancora in fase di sviluppo, non è sviluppata come il software di sicurezza. I cattivi hacker raggiungono più i loro obiettivi sfruttando le vulnerabilità nel software che superando o lavorando sul software di sicurezza. Si spera che in futuro, la sicurezza delle informazioni sarà più di sicurezza del software che software di sicurezza. Per ora, sia il software di sicurezza che software devono essere in corso.

La sicurezza del software non sarà realmente efficace se alla fine dello sviluppo del software non verranno effettuati test rigorosi.

I programmatori devono essere istruiti nella realizzazione della programmazione del codice difensivo. Gli utenti devono anche essere educati su come utilizzare le applicazioni difensivamente.

Nella sicurezza del software, lo sviluppatore deve garantire che l'utente non ottenga più privilegi di quanto meriti.

Conclusione

La sicurezza del software è la progettazione dell'applicazione con codifica difensiva contro le vulnerabilità per rendere difficili gli attacchi software. Il software di sicurezza, d'altra parte, è la produzione di software che impone l'accesso. La sicurezza del software è ancora in fase di sviluppo, ma è più promettente per la sicurezza delle informazioni che per il software di sicurezza. Viene già utilizzato e sta crescendo in popolarità. In futuro, entrambi saranno necessari, ma con il software, la sicurezza necessita di più.