Requisiti Di Sicurezza Del Software
Insieme con identificare i rischi relativi di sicurezza conosciuti ad un'applicazione o ad un genere specifica di applicazione, gli sviluppatori devono valutare i requisiti di sicurezza della loro applicazione. Questa analisi dovrebbe arrivare ad una misura equilibrata del livello di sicurezza richiesto per un'applicazione. Non deve ponder gli estremi dello spettro di sicurezza. È dato la comprensione che la sicurezza allineare e garantita è inesistente, proteggendo dai rischi conosciuti e minimizzando il numero di attacchi riusciti e di loro effetti generalmente un livello accettabile di sicurezza. Quelli addetti al ciclo di sviluppo dell'applicazione dovrebbero determinare il loro propri livello "accettabile" di sicurezza, esaminando i rischi conosciuti, gli obiettivi dell'applicazione ed i metodi impiegati per effettuare il livello voluto di sicurezza. Per arrivare ai requisiti di sicurezza, i responsabili e gli sviluppatori possono trovarli utile concentrarsi sulle seguenti, zone comunemente conosciute di rischio: · Autenticazione dell'utente e controllo di accesso · Registrazione di dati delle informazioni confidenziali · Sicurezza nelle comunicazioni esterne della rete · Sicurezza dei punti di entrata per le applicazioni esterne ed il sistema operativo Queste quattro da zone generali i progettisti e gli sviluppatori di applicazione possono identificare un insieme minimo delle caratteristiche importanti per analizzare. Secondo la funzionalità dell'applicazione, alcune zone di rischio sono più pertinenti di altre. Per fissare o non fissareL'aggiunta di sicurezza ad un'applicazione interessa un'applicazione in parecchi sensi. Immediatamente diventa più complessa, mentre il percorso di codice prende una nuova girata per accomodare i metodi di sicurezza. Le prestazioni di un'applicazione hanno potuto essere ostacolate, particolarmente con l'aggiunta dei funzionamenti di crittografia. Questi funzionamenti sono intenso del CPU dovuto le procedure complesse in questione. L'efficienza di un'applicazione può anche essere sacrificata se la sicurezza è applicata nelle zone dove fornisce pochi benefici. Ciò può accadere se i metodi di sicurezza sono applicati ciecamente a tutti i componenti di un'applicazione senza pensiero quanto ai loro requisiti. Le seguenti sezioni forniscono un punto di partenza ragionevole per determinare un livello di base dei requisiti di sicurezza. Punta È una buona pratica considerare la sicurezza richiesta per ogni modulo o componente all'interno di un'applicazione. Resista allo stimolo ad applicare i metodi generali di sicurezza attraverso i moduli multipli o i componenti. Invece, determini il livello più adatto di sicurezza per ciascuno. Valutare i requisiti di controllo di accesso e di autenticazioneL'autenticazione dell'utente è maneggiata spesso dal sistema operativo su cui l'applicazione funziona, ma parecchi codici categoria dell'applicazione potrebbero avere bisogno di di occuparsi dell'autenticazione da sè. Le applicazioni incluse, le applicazioni che funzionano indipendentemente dal sistema operativo e le applicazioni distribuite di fotoricettore devono spesso accomodare un certo livello dell'autenticazione dell'utente e del controllo di accesso. Gli esempi comuni delle applicazioni che richiedono questi metodi di sicurezza sono applicazioni di commercio del Internet (e-commercio), in cui gli utenti fanno gli acquisti via un Web site, o accesso di base di dati del cliente. In entrambi i casi, la possibilità per molti utenti differenti o i gruppi degli utenti per usare il sistema richiede il controllo rigoroso dei dati accessibili. I metodi di bisogno di applicazioni per permettere che gli utenti separati accedano ai sistemi via un metodo di inizio attività; inoltre hanno bisogno delle limitazioni per quanto riguarda i diversi dati finanziari users'respective. Per determinare i requisiti di controllo di accesso e di autenticazione, i progettisti dovrebbero esaminare le interazioni all'interno dell'applicazione e con il mondo che la circonda. Ciò include i metodi da cui gli utenti accedono all'applicazione—che si siede direttamente ad un terminale o accedenti dalla rete sono due metodi che potrebbero richiedere gli schemi differenti di autenticazione. Un'applicazione che è raggiunta soltanto mentre si siede al tavolo può essere assicurata efficacemente via i metodi di autenticazione del sistema operativo su cui funziona. Le applicazioni della rete che sono raggiunti simultaneamente dagli utenti multipli, o con quali dati di accesso di utenti dalle basi di dati comuni, forniscono lo slancio forte per controllo e l'autenticazione di accesso. Il livello del granularity e la flessibilità delle possibilità di controllo e di autenticazione di accesso hanno fornito tramite l'aiuto del sistema operativo determinano se i metodi riservati sono messi a punto. Le applicazioni autonome o incluse sono sviluppate spesso da zero e quindi richiedono i loro propri metodi specializzati. Requisiti di immagazzinaggio di datiL'immagazzinaggio di dati riflette il metodo impiegato per memorizzare le informazioni riservate e sensibili. Ciò include l'uso corretto dei metodi di protezione di lima del sistema operativo di fondo (quale i Re stricted i permessi della lima) e dei metodi più forti di protezione degli elementi di dati diversi (quale crittografia). In molti casi, l'uso dei metodi di permesso del sistema operativo è sufficiente per fornire il grado richiesto di sicurezza. La crittografia può essere usata per proteggere i dati estremamente sensibili, quali le credenziali dell'utente e le informazioni di accreditamento. Il livello a cui l'applicazione deve memorizzare i dati e natura di quello azionamento di dati i requisiti di sicurezza di immagazzinaggio di dati. L'immagazzinaggio delle informazioni sensibili è spesso il fattore gating nella determinazione se la crittografia alta di sicurezza è necessaria. Credenziali dell'utente, tali come le parole d'accesso, gli indirizzi, numeri di telefono e dati finanziari, dovrebbero essere considerate sensibili ed anche essere trattate con alta sicurezza. Le informazioni di configurazione possono essere assicurate spesso sufficientemente con i metodi standard di permesso della lima. Nel formare i requisiti di immagazzinaggio di dati, i progettisti potrebbero essere tentati per standardizzare ad un livello di sicurezza. Per esempio, se una parola d'accesso è immagazzinata in una lima di configurazione con altre informazioni non sensibili, la tentazione potrebbe essere forte usare la crittografia sull'intera lima come metodo generale di sicurezza. Per determinare le esigenze di memoria di dati, esamini i bisogni di tutti i componenti in questione. In questo esempio, applicare la crittografia ai dati nonsensitive ha potuto essere considerata inefficiente dovuto la spesa di calcolo dei funzionamenti di crittografia, così come la mancanza di controllo granulare delle altre informazioni nella lima. Un singolo elemento non può essere raggiunto facilmente se l'intera lima è cifrata. La complessità in questione per accedere ad altri elementi allora è aumentata drammaticamente. Requisiti di sicurezza del punto di entrata e della reteLe applicazioni comunicano agli utenti, al sistema operativo e ad altre applicazioni attraverso i punti di entrata. Questi hanno potuto essere sulla stessa macchina dell'applicazione o attraverso una rete; spesso, sono su entrambi. I metodi per fornire i punti di entrata all'applicazione ed al supporto per la comunicazione della rete sono spesso una e le stesse; quindi, sono raggruppati insieme qui. La sicurezza delle comunicazioni della rete è indirizzata il più bene esaminando il contenuto dei messaggi che sono trasmessi. Le applicazioni che utilizzano la comunicazione della rete per messaging informativo o passare i dati statici non potrebbero richiedere alcun'affidabilità più forte che il protocollo sostiene. Di nuovo, come nel caso del commercio del Internet, un'applicazione che trasmette e riceve le informazioni sensibili dell'utente garanzie probabili l'aggiunta di più alto metodo di sicurezza. I punti di entrata inoltre determinano i requisiti di sicurezza delle applicazioni che comunicano in un ambiente networked. I punti di entrata ad un'applicazione richiedono un livello elevato di analisi perché comprendono e forniscono la funzionalità di comunicazione della rete. Altri inoltre si interagiscono con l'applicazione attraverso i punti di entrata. Queste zone funzionali possono essere protette via una combinazione dei metodi disponibili del sistema operativo e degli schemi definiti di controllo e di autenticazione di accesso usati all'interno dell'applicazione. L'analisi delle interazioni che un'applicazione ha con il mondo esterno permette che i progettisti determinino il livello più adatto di sicurezza stato necessario. Questi interazioni e punti di entrata successivi sono categorizzati As · Interazione della rete · Interazione con altre applicazioni · Interazione con il relativo sistema operativo rispettivo Queste categorie sono zone funzionali ben note ed i progettisti probabilmente già sanno se la loro applicazione si interagisce in c'è ne di questi modi. Il punto seguente è considerare la sicurezza di ogni zona. Rete, applicazione ed interazioni del sistemaLa popolarità del Internet provoca molte nuove applicazioni che si interagiscono con altri componenti all'interno dei sistemi locali e con i sistemi a distanza. Le applicazioni che funzionano indipendentemente da altre applicazioni e si interagiscono soltanto con se stesso ovviamente non richiedono l'analisi di rischio della rete. L'interazione della rete può essere presente a parecchi livelli. Un'applicazione può essere completamente assistente di cliente–orientato, dato che uso sui sistemi a distanza sparsi attraverso il Internet. L'esigenza di sicurezza in queste applicazioni diventa considerevolmente più complessa di è nelle applicazioni autonome. Parecchie dipendenze dovrebbero essere discernute. Il livello a cui gli sviluppatori desiderano fornire i meccanismi di sicurezza nell'applicazione dovrebbe essere considerato. I progettisti potrebbero decidere non fornire alcuni meccanismi interni di sicurezza. La sicurezza dell'applicazione networked allora conta sulla sicurezza delle reti su cui funziona e comunica; il topol della rete ogy e la parete refrattaria determinano il carico massimo di sicurezza che un'applicazione può avvertire. Il progettista potrebbe scegliere eschew le dipendenze e fornire l'più alto grado di sicurezza possibile all'interno dell'applicazione. Questi sono i due estremi che—la maggior parte delle applicazioni cadono in qualche luogo nella metà. Le applicazioni possono anche usare i servizi di rete per la comunicazione localizzata che non è destinata andare oltre i confini del sistema su cui funziona. La considerazione dovrebbe essere data alla natura di questa comunicazione per determinare se l'esecuzione genera il rischio inutile. L'esigenza di interazione fra le applicazioni o con il sistema operativo non implica un requisito della comunicazione della rete. I progettisti dovrebbero studiare i metodi di esecuzione che forniscono la funzionalità richiesta. Le applicazioni usano spesso i metodi zoccolo-basati di comunicazione per fornire questi punti di entrata perché sono effettuate velocemente e facilmente. L'uso degli zoccoli può fornire più funzionalità necessario, tuttavia. Le applicazioni che devono comunicare soltanto con altre applicazioni sul sistema locale o con i loro propri sistemi operativi hanno molti metodi di comunicazione a loro disposizione, quali gli zoccoli del non-Internet ed i meccanismi di IPC. Comunemente, i sistemi di UNIX usano le comunicazioni dello zoccolo a causa della loro facilità di uso e pletora di documentazione. UNIX sostiene parecchi sapori della comunicazione zoccolo-basata, due di cui sono zoccoli lo zoccolo del IP e di dominio popolari di UNIX. Gli zoccoli del IP, come il nome implica, usano il protocollo del IP per la comunicazione e sostengono la comunicazione della rete a distanza, che concede processi locali ed a distanza comunicare con l'applicazione. Molte applicazioni che comunicano soltanto con i processi su un sistema locale e che non richiedono gli zoccoli del IP di uso di possibilità di comunicazione della rete come interfaccia standard. Gli zoccoli del IP non sono ideali in questa situazione perché forniscono automaticamente l'accesso ai clienti locali ed a distanza. Gli zoccoli di dominio usano un protocollo interno di UNIX per la comunicazione e non sostengono la comunicazione della rete; forniscono una scanalatura di comunicazioni collegata. Gli zoccoli di dominio hanno loro parte dei rischi se utilizzati impropriamente. Gli zoccoli di dominio di UNIX sostengono passare dei descrittori di lima così come i dati informativi. Ciò significa che gli indicatori o le maniglie ad altre parti del sistema possono essere passati da un'applicazione ad un altro. Questa funzionalità è disponibile soltanto in zoccoli di dominio di UNIX. Se questa possibilità non è voluta o non garantita, la diversione dalla comunicazione zoccolo-basata ad un altro meccanismo di IPC potrebbe essere una scelta migliore. Visto che il genere di informazioni trasmesso a e da gli aiuti di applicazione definisce i requisiti del relativo metodo di comunicazione. I progettisti dovrebbero valutare le possibilità di interazione dell'applicazione prima di comprendere una funzione standard. In questo esempio, l'applicazione che per mezzo degli zoccoli del IP è al rischio perché permette che i sistemi a distanza colleghino all'applicazione quando non dovrebbero essere permessi. Un disegno migliore documenta il requisito di interazione soltanto sulle applicazioni locali. Questo requisito completo conduce lo sviluppatore usare qualcosa tranne gli zoccoli del IP. Interazioni Del Sistema OperativoL'interazione con il sistema operativo genera spesso un altro livello dei problemi di sicurezza. Molti livelli di interazione possono accadere con un'interazione della rete—del sistema operativo, nication inter-Process di Commu e la manipolazione delle lime già è stata accennata. Altri due tipi di interazioni inoltre richiedono l'attenzione: L'esecuzione dei programmi esterni e dell'uso del sistema ed altre chiamate esternamente definite sono fonti comuni di sfruttamento. Le edizioni importanti quali i permessi, l'autenticazione, il controllo di accesso e la convalida immessa dovrebbero essere considerate insieme con le interazioni del sistema operativo. Le chiamate del sistema e le applicazioni esterne presentano un alto grado del rischio una volta usate impropriamente a causa delle loro nature. Queste funzioni esistono spesso in biblioteche che sono usate simultaneamente da molte applicazioni e che forniscono spesso l'accesso diretto ai componenti ed alle risorse del sistema operativo. Lo sfruttamento di singola applicazione con queste funzioni può interessare parecchie applicazioni ed il sistema. Le chiamate del sistema forniscono l'accesso a molte funzionalità di system-specifico e per tutti gli usi. Permettono che un'applicazione si interagisca con i componenti di fissaggi specifici così come funzionalità del nocciolo-livello. La sicurezza del sistema operativo e dei componenti deve essere considerata quando usando il sistema denomina. Se un'applicazione lega insieme i dati della rete o dell'utente con il sistema operativo via le chiamate del sistema, i progettisti devono minimizzare l'esposizione ai dati pericolosi, inattesi ed impropri. L'esecuzione delle applicazioni esterne è un'altra interazione comune e non garantita. Gli sviluppatori progettano spesso un'applicazione per invitare altre applicazioni con i vari metodi. Ci sono motivi che eral del sev uno sviluppatore potrebbe desiderare fare questo, tale da differenziare fra le funzioni o per stabilire il controllo dell'ambiente. La chiamata delle altre applicazioni inoltre permette che gli sviluppatori usino la funzionalità attuale ed accellerino l'esecuzione dell'applicazione. Ci è un pericolo inerente nella chiamata deun altro programma da parte di un'applicazione che—il programma esterno può fidarsi di raramente. L'applicazione esiste in un ambiente dinamico in cui è possibile modificare o sostituire tutto il programma. Il problema si trova nei metodi impiegati per denominare l'applicazione. i sistemi UNIX-BASATI sostengono spesso le funzioni denominate system() ed exec(), che passano i parametri forniti come stringa all'esecuzione delle coperture e del sotto processo standard di UNIX, rispettivamente. La chiamata dello system() rinvia al programma di chiamata una volta completa, ma il exec() termina il programma corrente e lo sostituisce con il programma denominato. I sistemi basati Windows hanno la chiamata del exec() che permette l'esecuzione di altri programmi. Diverso di UNIX, la versione di Windows di exec() fa funzionare il programma specificato in un sotto processo e la funzione di chiamata non termina. Senza convalida dell'input, i attackers possono mettere i meta-characters delle coperture nel flusso di input, forzante le coperture per fare funzionare possibilmente gli ordini ed i parametri nocivi. L'uso di queste funzioni frowned generalmente su e lo sforzo dovrebbe essere fatto per evitare il loro uso perché permettono l'esecuzione di untrusted ed applicazioni incontrollate. Alternativamente, i progettisti possono comprendere la funzionalità richiesta direttamente in un'applicazione. L'uso liberamente di disponibile, software di apr-fonte notevolmente fa diminuire lo sforzo stato necessario per fare così. Molti sistemi operativi inoltre permettono che la funzionalità funzioni ai livelli differenti di privilegio. UNIX ha relativi privilegi "della radice", Windows ha privilegi del SISTEMA "e" "" del coordinatore. Questi clienti speciali possono effettuare le mansioni amministrative ed avere più interazione con il sistema operativo ed i relativi servizi che altri clienti. I programmi possono essere scritti per elevare i livelli di privilegio quando la funzionalità specializzata è necessaria. Un'applicazione ed il sistema operativo su cui funziona possono compromettersi se i privilegi non sono con attenzione controllati. Il modello di meno privilegio suggerisce che un'applicazione dovrebbe funzionare con l'insieme minimo dei privilegi stati necessari per effettuare la maggior parte delle funzioni. La funzionalità che richiede gli più alti privilegi dovrebbe essere isolata nel relativo proprio modulo, tuttavia in che è definito—come un processo, un codice categoria, un'applicazione, o persino altro sistema. Anche allora, quell'insieme di funzionalità dovrebbe anche funzionare al meno livello privilegiato fino a richiedere quei privilegi elevati. A quel tempo, gli più alti privilegi dovrebbero essere ottenuti e, a completamento della funzionalità, i privilegi dovrebbero essere restituiti al livello minimo. Nota I meta-characters sono caratteri che intraprendono il significato speciale in un dato contesto. Per esempio, all'interno delle coperture standard di UNIX, il punto e virgola (;) è un segno di separazione dei comandi, cioè, molti ordini può essere messo su una singola linea quando un punto e virgola è fra loro. Il tubo (|) il carattere l'uscita del terminale trasmittente a qualunque segue il tubo, permettendo che l'uscita da un programma sia inserita in un altro. ConclusioneAlcuni sviluppatori di applicazione scelgono dimenticare o ignorare la sicurezza all'interno delle loro applicazioni e mettersi alla misericordia della rete del cliente o il sistema operativo e le relative caratteristiche di sicurezza. Usando questo modello generale di sicurezza evita la responsabilità di fornire assicurano le applicazioni al pubblico. La filosofia di sicurezza pretende un'ideologia forte e completa di sicurezza che non presuppone niente circa la sicurezza dei componenti esterni all'applicazione. Un'applicazione dovrebbe sempre essere sicura come può essere riguardo se ed ai componenti esterni con cui si interagisce. Il livello di segu-attraverso è lasciato alla discrezione del progettista o dello sviluppatore, tuttavia ciò è un articolo aggiunto da Tamas Querolin
|
|||||
|