sans top 20 security vulnerabilities software applications
Impara e comprendi le 20 principali vulnerabilità di sicurezza critiche di SANS nelle applicazioni software con esempi in questo tutorial:
La parola SENZA non è solo una normale parola del dizionario, piuttosto rappresenta SysAdmin , Audit , Rete , e Sicurezza .
In questo tutorial, impareremo a conoscere i 20 principali punti deboli della sicurezza SANS che possiamo trovare nei programmi software e cosa possiamo fare per mitigarli.
Cosa imparerai:
- Impatto delle SAN sulla comunità di sicurezza informatica
- Elenco delle 20 principali vulnerabilità critiche del software SANS
- # 1) CWE-119: errore del buffer di memoria
- # 2) CWE-79: Cross-site Scripting
- # 3) CWE-20: errore di input non convalidato
- # 4) CWE-200: errore di esposizione a informazioni sensibili
- # 5) CWE-125: errore di lettura fuori limite
- # 6) CWE-89: SQL Injection
- # 7) CWE-416: memoria precedentemente liberata
- # 8) CWE-190: errore di overflow di numeri interi
- # 9) CWE-352: contraffazione di richieste tra siti
- # 10) CWE-22: Directory Traversal
- # 11) CWE-78: OS Command Injection
- # 12) CWE-787: errore di scrittura fuori dai limiti
- # 13) CWE-287: errore di autenticazione impropria
- # 14) CWE-476: Dereferenziazione di un puntatore NULL
- # 15) CWE-732: assegnazione di autorizzazioni errata
- # 16) CWE-434: caricamento file senza restrizioni
- # 17) CWE-611: esposizione di informazioni tramite entità XML
- # 18) CWE-94: iniezione di codice
- # 19) CWE-798: chiave di accesso hardcoded
- # 20) CWE-400: Consumo incontrollato di risorse
- Domande frequenti
- Conclusione
Impatto delle SAN sulla comunità di sicurezza informatica
Secondo SENZA , il SENZA L'Istituto è stato istituito come organizzazione di ricerca e istruzione. I suoi vari programmi di sicurezza sono molto completi e stanno avendo un effetto positivo su oltre 165.000 professionisti della sicurezza a livello globale.
Possiamo giustamente affermare che con questo tipo di copertura proveniente dal SANS e altre recensioni positive che ottengono, le rende l'organizzazione più affidabile e di gran lunga la più grande al mondo per la formazione InfoSec e varie certificazioni di sicurezza.
Questo articolo si concentrerà sui primi 20 errori di SANS che possono rendere il tuo software vulnerabile agli attacchi e su alcuni dei controlli di sicurezza che puoi implementare per mitigare questi errori. Anche se possiamo trovarne più di 20, discuteremo delle 20 principali vulnerabilità.
Elenco delle 20 principali vulnerabilità critiche del software SANS
- CWE-119 : Errore del buffer di memoria
- CWE-79 : Cross Site Scripting
- CWE-20 : Errore di input non convalidato
- CWE-200 : Errore di esposizione a informazioni sensibili
- CWE-125 : Errore di lettura fuori limite
- CWE-89 : SQL Injection
- CWE-416 : Errore di memoria libera
- CWE-190 : Errore di overflow di numeri interi
- CWE-352 : Cross-Site Request Forgery
- CWE-22 : Directory Traversal
- CWE-78 : OS Command Injection
- CWE-787 : Errore di scrittura fuori dai limiti
- CWE-287 : Errore di autenticazione impropria
- CWE-476 : Dereferenziazione del puntatore NULL
- CWE-732 : Assegnazione di autorizzazioni errata
- CWE-434 : Caricamento file illimitato
- CWE-611 : Esposizione di informazioni tramite entità XML
- CWE-94 : Iniezione di codice
- CWE-798 : Chiave di accesso hardcoded
- CWE-400 : Consumo incontrollato di risorse
Cosa significa il termine CWE?
Il Enumerazione di debolezza comune (CWE) è un elenco accettato dalla comunità di vulnerabilità software e hardware con un codice di identificazione assegnato per ogni punto debole. L'obiettivo è identificare i vari difetti nel software e nell'hardware per essere in grado di correggere e mitigare tutti questi difetti.
# 1) CWE-119: errore del buffer di memoria
Questo difetto viene solitamente introdotto durante le fasi di architettura e progettazione, implementazione e funzionamento dell'SDLC.
Questo overflow del buffer si verifica quando un processo dell'applicazione tenta di archiviare più dati di quanti ne possa contenere in memoria. Poiché i buffer possono memorizzare solo un certo livello di dati e quando tale livello viene raggiunto e superato, i dati fluiscono in un'altra posizione di memoria che può corrompere i dati già contenuti in quel buffer.
Questo incidente a volte si verifica accidentalmente a causa di un errore di programmazione, ma l'effetto collaterale potrebbe essere disastroso, poiché ciò può cancellare dati, rubare informazioni riservate e persino l'intera applicazione potrebbe bloccarsi a causa di questo overflow del buffer.
L'esempio seguente mostra un buffer allocato con 8 byte di memoria. Ma è andato in overflow di 2 byte a causa di più dati inviati per l'esecuzione.
(Immagine fonte )
# 2) CWE-79: Cross-site Scripting
Cross-site Scripting (XSS) è un attacco injection che di solito si verifica quando un malintenzionato o un utente malintenzionato inietta uno script dannoso o dannoso in un'applicazione Web che può essere eseguita tramite i browser Web. Una volta che lo script dannoso si fa strada nel sistema compromesso, può essere utilizzato per eseguire diverse attività dannose.
Alcune delle attività dannose possono consistere nel trasferimento di informazioni private come i cookie che contengono le informazioni sulla sessione dal computer della vittima al computer dell'attaccante.
Occorrenza di cross-site scripting:
- Quando dati non convalidati e non attendibili vengono immessi in un'applicazione Web tramite la richiesta del modulo Web.
- Quando l'applicazione Web genera istantaneamente una pagina Web che contiene questi dati dannosi.
- Durante il processo di generazione di una pagina, il software non riesce a convalidare i dati, che ospitano il contenuto che può essere eseguito da un browser web, come HTML e JavaScript.
- La vittima visita inconsapevolmente la pagina che è stata generata tramite un browser web, che ospita lo script dannoso che è stato iniettato attraverso l'utilizzo di dati non attendibili.
- Lo script dannoso proviene da una pagina che è stata inviata dal server web dell'aggressore, quindi il browser web del sistema compromesso procede all'elaborazione dello script dannoso.
- Questa azione viola le norme del browser web sulla stessa origine, che stabiliscono che gli script provenienti da un dominio non devono avere accesso alle risorse o eseguire codice in un altro dominio diverso tranne il proprio dominio.
(Immagine fonte )
# 3) CWE-20: errore di input non convalidato
L'applicazione riceve l'input, ma non riesce a convalidare l'input, se ha tutti i dettagli necessari necessari per essere accettato nel sistema per l'elaborazione.
Quando è presente la sanificazione degli input, questa può essere utilizzata per controllare eventuali input potenzialmente pericolosi al fine di garantire che gli input possano essere elaborati in sicurezza con il codice sorgente o quando è un input necessario per comunicare con altri componenti.
Quando tali input non sono adeguatamente disinfettati o convalidati, questo aprirà la strada a un utente malintenzionato per inviare un input dannoso che l'applicazione principale elaborerà generosamente e questo porterà a cambiamenti nel flusso di controllo, controllo arbitrario di una risorsa o codice arbitrario esecuzione.
Le immagini seguenti mostrano che una buona applicazione non dovrebbe accettare script o comandi come input. Se tali input non sono adeguatamente disinfettati, l'applicazione lo elaborerà pensando che sia una richiesta valida.
(Immagine fonte )
# 4) CWE-200: errore di esposizione a informazioni sensibili
Ciò accade quando l'applicazione espone consapevolmente e inconsapevolmente informazioni riservate e sensibili a un utente malintenzionato che non dispone dell'autorizzazione per accedere a tali informazioni.
Errori diversi fanno sì che queste informazioni vengano esposte a un aggressore. La gravità di questo errore varia a seconda del contesto in cui opera l'applicazione, del tipo di informazioni sensibili rivelate e di ciò che l'attore può ottenere dalle informazioni esposte.
Di seguito sono riportate alcune informazioni sensibili che potrebbero essere esposte:
- Informazioni personali come messaggi personali, dati finanziari, dati sullo stato di salute, posizione geografica o dettagli di contatto
- Dettagli di configurazione del sistema e ambiente, per esempio, il sistema operativo e i pacchetti installati
- Documenti aziendali e proprietà intellettuale
- Dettagli sulla configurazione di rete
- Stato dell'applicazione interna
- Metadati come le intestazioni dei messaggi
A volte potrebbero esserci problemi tecnici come errori di connettività del database, errori di runtime ed errori di rete sulle nostre applicazioni o siti Web.
Se tali errori non vengono gestiti correttamente durante lo sviluppo, ovvero quando l'applicazione visualizza il messaggio di errore potrebbe mostrare al pubblico informazioni che un utente malintenzionato potrebbe essere in grado di utilizzare per scopi dannosi come l'immagine seguente.
# 5) CWE-125: errore di lettura fuori limite
Ciò si verifica in genere quando l'applicazione legge i dati oltre il livello normale, alla fine o prima dell'inizio del buffer. Ciò fornisce un accesso senza privilegi a un utente malintenzionato per leggere informazioni sensibili da altre posizioni di memoria, il che può anche portare a un arresto anomalo del sistema o dell'applicazione.
Si verificherà sicuramente un arresto anomalo quando il codice legge i dati e pensa che ci sia un indicatore in atto che interrompe l'operazione di lettura come un NULL applicato a una stringa
Nel codice seguente, la funzione recupera un valore da una posizione dell'indice di matrice, che a sua volta è il parametro di input della funzione.
differenza tra test whitebox e blackbox
(Immagine fonte )
Dal codice sopra, possiamo vedere che la funzione verifica che l'indice dell'array specificato sia inferiore alla lunghezza massima dell'array, ma non riesce a convalidare il valore minimo.
Questa non convalida porterà all'accettazione di un valore negativo come indice della matrice di input, provocando una lettura fuori limite, che a sua volta dà accesso alla memoria sensibile.
È necessario verificare l'indice dell'array di input se rientra nell'intervallo massimo e minimo richiesto per l'array.
Se ora controlli l'esempio seguente, vedrai che l'istruzione IF deve essere modificata per includere una convalida dell'intervallo minimo.
# 6) CWE-89: SQL Injection
SQL Injection è una forma di vulnerabilità di sicurezza per cui l'autore dell'attacco inserisce un codice SQL (Structured Query Language) nella casella di input del modulo Web per ottenere l'accesso alle risorse o modificare i dati a cui non è autorizzato l'accesso.
Domanda e risposte dell'intervista .net
Questa vulnerabilità può essere introdotta nell'applicazione durante le fasi di progettazione, implementazione e funzionamento.
Ciò che questa query SQL fa è fare una richiesta non autorizzata al database per alcune informazioni. In una normale operazione di input, viene utilizzato un modulo Web per l'autenticazione dell'utente. Quando un utente immette il proprio nome e la password nelle caselle di testo, questi valori vengono inseriti in una query SELECT.
Se i valori di input sono corretti, all'utente viene concesso l'accesso all'applicazione o alla richiesta, ma se i valori non sono corretti, l'accesso verrà negato.
Alcuni moduli Web oggi non dispongono di meccanismi per bloccare l'input dannoso che un utente malintenzionato può utilizzare le caselle di input per inviare richieste dannose al database. Questa singola richiesta può concedere loro l'accesso all'intero database che può contenere informazioni sensibili.
# 7) CWE-416: memoria precedentemente liberata
Questo problema è causato dal riferimento alla memoria dopo che è stato rilasciato, il che può portare seriamente a un arresto anomalo del programma. Quando si utilizza una memoria precedentemente liberata, ciò può avere conseguenze negative, come il danneggiamento di dati validi, l'esecuzione di codice arbitrario che dipende dalla tempistica del difetto.
Due cause comuni sono:
- Condizioni di errore all'interno del software e in alcuni altri casi eccezionali.
- Nessuna spiegazione su quale parte del programma ha causato la memoria libera.
In questo caso, la memoria viene allocata a un altro puntatore subito dopo essere stata liberata. Il puntatore precedente alla memoria liberata viene utilizzato di nuovo e ora punta a un punto intorno alla nuova allocazione. Nel momento in cui i dati vengono modificati, ciò può danneggiare la memoria utilizzata e potrebbe far sì che l'applicazione si comporti in modo indefinito.
# 8) CWE-190: errore di overflow di numeri interi
Quando un calcolo viene elaborato da un'applicazione e si presuppone logicamente che il valore risultante sarà maggiore del valore esatto, si verifica un overflow di numero intero. Qui, un valore intero aumenta a un valore che non può essere memorizzato in una posizione.
Quando ciò accade, il valore normalmente va a capo per diventare un valore molto piccolo o negativo. Se è previsto l'avvolgimento, allora va bene, ma possono esserci conseguenze sulla sicurezza se l'avvolgimento è imprevisto. Quando si verifica questo scenario, potrebbe essere definito critico in quanto il risultato viene utilizzato per gestire il loop, le decisioni di sicurezza, utilizzato per allocare la memoria e molto altro.
Questa debolezza generalmente porterà a comportamenti irregolari e può portare a crash. Se il valore è importante per i dati piuttosto che per il flusso, può verificarsi un semplice danneggiamento dei dati. Ma se il wrap around porta a ulteriori condizioni come l'overflow del buffer, potrebbe verificarsi un danneggiamento della memoria.
Questo problema può innescare buffer overflow, che possono essere utilizzati per eseguire codice arbitrario da parte di un utente malintenzionato. Questo errore di overflow intero viene solitamente introdotto nel sistema durante le fasi di progettazione e implementazione dell'SDLC.
# 9) CWE-352: contraffazione di richieste tra siti
Questo è quando un'applicazione web non verifica sufficientemente la richiesta HTTP, indipendentemente dal fatto che la richiesta provenisse effettivamente dall'utente giusto o meno. I web server sono progettati per accettare tutte le richieste e per dare una risposta ad esse.
Supponiamo che un client invii diverse richieste HTTP all'interno di una o più sessioni. È molto difficile per un server web sapere se tutte le richieste erano autentiche o meno e di solito viene elaborato. Un utente malintenzionato potrebbe costringere un cliente a visitare una pagina Web appositamente predisposta e ora essere in grado di eseguire alcune richieste come il trasferimento di fondi, la modifica del proprio indirizzo e-mail e molte altre.
Immediatamente un utente malintenzionato ha accesso e sarà in grado di rubare dati e persino distruggerli. Possono sempre mantenere il loro accesso e, quando hanno finito, possono compromettere il registro di controllo per prevenire qualsiasi futura analisi forense che potrebbe esporre il loro exploit.
L'immagine sotto mostra un utente malintenzionato che induce un utente a eseguire azioni che non intende eseguire.
# 10) CWE-22: Directory Traversal
L'attraversamento di directory o il percorso di file è una vulnerabilità di sicurezza Web che consente a un utente malintenzionato di leggere file arbitrari sul server che sta attualmente eseguendo un'applicazione.
Questi file possono essere un codice dell'applicazione, credenziali per sistemi back-end e file del sistema operativo. In qualche altro scenario, un utente malintenzionato potrebbe essere in grado di scrivere su questi file arbitrari sul server che potrebbero consentire loro di modificare i dati o il comportamento dell'applicazione, e questo darà loro il controllo totale del server.
(Immagine fonte )
# 11) CWE-78: OS Command Injection
Si tratta della disinfezione impropria di elementi speciali che possono portare alla modifica del comando del sistema operativo previsto che viene inviato a un componente a valle. Un utente malintenzionato può eseguire questi comandi dannosi su un sistema operativo di destinazione e può accedere a un ambiente che non avrebbe dovuto leggere o modificare.
Questo invariabilmente consentirebbe a un utente malintenzionato di eseguire comandi pericolosi direttamente nel sistema operativo.
Ogni volta che questa vulnerabilità si verifica in un programma privilegiato, consente all'autore dell'attacco di utilizzare i comandi consentiti nell'ambiente o di chiamare altri comandi con privilegi che l'attaccante non dispone, il che potrebbe aumentare la quantità di danni che potrebbero verificarsi.
# 12) CWE-787: errore di scrittura fuori dai limiti
Ciò accade quando l'applicazione scrive i dati oltre la fine o prima dell'inizio del buffer designato.
Quando ciò accade, il risultato finale è solitamente il danneggiamento dei dati, il sistema o l'arresto anomalo dell'applicazione. Quello che fa l'applicazione è una sorta di aritmetica del puntatore che viene utilizzata per fare riferimento a una posizione di memoria al di fuori dei limiti del buffer.
# 13) CWE-287: errore di autenticazione impropria
Questo è quando un utente malintenzionato afferma di avere un'identità valida ma il software non è riuscito a verificare o dimostra che l'affermazione è corretta.
Un software convalida erroneamente le informazioni di accesso di un utente e, di conseguenza, un utente malintenzionato potrebbe ottenere determinati privilegi all'interno dell'applicazione o divulgare informazioni sensibili che gli consentono di accedere a dati sensibili ed eseguire codice arbitrario.
# 14) CWE-476: Dereferenziazione di un puntatore NULL
Dereferenziare un puntatore nullo è quando l'applicazione dereferenzia un puntatore che avrebbe dovuto restituire un risultato valido, invece restituisce NULL e questo porta a un arresto anomalo. La dereferenziazione di un puntatore nullo può verificarsi a causa di molti difetti come le condizioni di competizione e alcuni errori di programmazione.
I processi che vengono eseguiti con l'aiuto del puntatore NULL di solito portano al fallimento e la possibilità di eseguire il processo è molto ridotta. Questo aiuta gli aggressori a eseguire codice dannoso.
(Immagine fonte )
# 15) CWE-732: assegnazione di autorizzazioni errata
Questa vulnerabilità si verifica quando un'applicazione assegna autorizzazioni a una risorsa molto importante e critica in modo tale da esporre la risorsa a un utente malintenzionato.
Quando si concede a molte persone l'autorizzazione a una risorsa, ciò potrebbe portare all'esposizione o alla modifica di informazioni sensibili da parte di un utente malintenzionato. Se non ci sono controlli in atto contro questo tipo di approccio all'assegnazione dei permessi alle risorse, può portare a una fine molto disastrosa se una configurazione del programma o alcuni dati sensibili finiscono nella mano sbagliata.
# 16) CWE-434: caricamento file senza restrizioni
Questa vulnerabilità si verifica quando l'applicazione non convalida i tipi di file prima di caricare i file nell'applicazione. Questa vulnerabilità è indipendente dalla lingua, ma di solito si verifica nelle applicazioni scritte in linguaggio ASP e PHP.
Un tipo di file pericoloso è un file che può essere elaborato automaticamente all'interno dell'ambiente dell'applicazione.
Il seguente programma mostra un caricamento di un file PHP. Il tipo di file non è stato verificato e convalidato prima del caricamento nella directory webroot. Come risultato di questa debolezza, un utente malintenzionato può caricare un file PHP arbitrario ed eseguirlo accedendo direttamente al file caricato.
# 17) CWE-611: esposizione di informazioni tramite entità XML
Quando un documento XML viene caricato in un'applicazione per l'elaborazione e questo documento contiene entità XML con identificatore di risorsa uniforme che si risolve in un altro documento in un'altra posizione diversa da quella prevista. Questa anomalia può far sì che l'applicazione alleghi documenti errati nel suo output.
I documenti XML a volte contengono una DTD (Document Type Definition), che viene utilizzata per definire le entità XML e altre funzionalità. Attraverso la DTD, l'identificatore di risorsa uniforme può servire come una forma di stringa di sostituzione. Ciò che il parser XML farà è accedere a ciò che è contenuto nell'identificatore di risorsa uniforme e reinserire questi contenuti nel documento XML per l'esecuzione.
(Immagine fonte )
# 18) CWE-94: iniezione di codice
L'esistenza della sintassi del codice nei dati dell'utente aumenta la possibilità dell'aggressore di modificare il comportamento di controllo pianificato ed eseguire codice arbitrario. Questa vulnerabilità viene definita 'debolezza dell'iniezione' e questa debolezza potrebbe far sì che un controllo dei dati diventi controllato dall'utente.
Questa vulnerabilità rappresenta uno scenario in cui il software consente di inserire dati non attendibili nel codice e non esegue la convalida di caratteri speciali che possono influenzare negativamente sia il comportamento del segmento di codice che la sintassi.
In breve, un utente malintenzionato sarebbe in grado di iniettare una sorta di codice arbitrario ed eseguirlo all'interno dell'applicazione. Il seguente codice PHP mostra l'utilizzo della funzione eval () in dati non attendibili. Nel codice sottostante un attaccante è in grado di passare nel codice il codice arbitrario del parametro “param” che verrà poi eseguito nel software.
L'esempio seguente spiega la chiamata a phpinfo () funzione. Questa vulnerabilità può essere ulteriormente sfruttata in altri per eseguire comandi del sistema operativo arbitrari sul software di destinazione tramite la chiamata system ().
# 19) CWE-798: chiave di accesso hardcoded
Questo è quando la password e la chiave di accesso vengono codificate direttamente nell'applicazione per scopi di autenticazione in entrata e comunicazione in uscita ad alcuni componenti esterni e per la crittografia dei dati interni. I dettagli di accesso hardcoded di solito causano una vulnerabilità che apre la strada a un utente malintenzionato per aggirare l'autenticazione configurata dall'amministratore del software.
L'amministratore di sistema troverà sempre molto difficile rilevare questa vulnerabilità e risolverla.
Ci sono due principali fonti di questa debolezza:
- In entrata : L'applicazione contiene un sistema di autenticazione che convalida le credenziali di input rispetto ai dettagli hardcoded.
- In uscita : L'applicazione si connette a un altro sistema e i dettagli per la connessione all'altro sistema sono codificati nel sistema.
Nello stream in entrata, è sempre presente un account amministratore predefinito che viene creato e le credenziali per accedervi saranno codificate nell'applicazione e associate a tale account amministratore predefinito.
I dettagli hard-coded di solito sono la stessa cosa in ogni installazione dell'applicazione e non possono essere modificati o disabilitati da nessuno. Anche gli amministratori di sistema non hanno il diritto, tranne che possono modificare manualmente l'applicazione. Se la password viene mai divulgata al pubblico, un utente malintenzionato può avere accesso all'intera applicazione e può manipolarla a proprio vantaggio.
Poiché tutte le installazioni dell'applicazione hanno la stessa password, anche se installate in organizzazioni separate, ciò può causare attacchi molto massicci attraverso tutti i confini dell'organizzazione, per esempio, iniettando un worm nell'applicazione che si diffonderà.
Il flusso in uscita si applica solo ai sistemi front-end che si autenticano con un servizio back-end. Il servizio di back-end potrebbe richiedere un codice fisso o una password fissa che può essere facilmente rilevata. Quello che fa il programmatore è semplicemente codificare quelle credenziali di back-end nel software front-end. Qualsiasi utente di tale applicazione potrebbe essere in grado di estrarre la password.
Qualsiasi software lato client in cui la password e la chiave di accesso sono hardcoded in esso di solito rappresenta una minaccia maggiore rispetto a quelli non hardcoded, perché l'estrazione di una password da un binario è solitamente molto facile da realizzare.
# 20) CWE-400: Consumo incontrollato di risorse
Questa vulnerabilità si verifica quando l'applicazione non controlla correttamente l'allocazione e il mantenimento di una risorsa limitata, questo consente a un utente malintenzionato di poter influenzare la quantità di risorse consumate, il che alla fine porterà all'esaurimento delle risorse disponibili.
Parte delle risorse limitate include memoria, archiviazione del file system, voci del pool di connessione del database e CPU.
Supponiamo che un utente malintenzionato possa attivare l'allocazione di queste risorse limitate e che il numero o la dimensione delle risorse non sia controllata, quindi l'attaccante potrebbe causare il caos attraverso la negazione del servizio che consuma tutte le risorse disponibili.
Quando ciò accade, impedirebbe agli utenti validi di accedere all'applicazione, il che avrà invariabilmente un impatto negativo sull'ambiente. Per esempio, quando la memoria dell'applicazione subisce un attacco di esaurimento, ciò potrebbe rallentare l'intera applicazione e il sistema operativo host.
I tre diversi casi che possono portare all'esaurimento delle risorse sono:
- Carenza di limitazione per il numero di risorse allocate
- Perdere tutti i riferimenti a una risorsa prima di raggiungere la fase di arresto
- Mancata chiusura / restituzione di una risorsa dopo l'elaborazione
Il problema dell'esaurimento delle risorse è solitamente il risultato di un'errata implementazione dei seguenti scenari:
- Condizioni di errore e altre circostanze eccezionali.
- C'è una reazione mista su quale parte del programma rilascia la risorsa.
Il seguente esempio aiuta a dimostrare la natura di questa vulnerabilità e descrive i metodi che possono essere utilizzati per mitigare il rischio.
Il seguente esempio spiega la vulnerabilità:
direttive del preprocessore in c ++ con esempio
(Immagine fonte )
Questo programma non tiene traccia di quante connessioni sono state effettuate e non limita il numero di connessioni disponibili. Il fork è solo uno dei modi utilizzati da un utente malintenzionato per far sì che il sistema esaurisca la CPU, i processi o la memoria effettuando un numero elevato di connessioni.
Ciò che fa un utente malintenzionato è utilizzare tutte le connessioni disponibili, impedendo ad altri di accedere al sistema da remoto.
Domande frequenti
D # 1) Cosa significa SANS?
Risposta: SANS sta per SysAdmin, Audit, Network e Security.
D # 2) Elenca alcuni esempi di vulnerabilità.
Risposta: gli esempi sono i seguenti:
- Vulnerabilità del software
- Vulnerabilità del firewall
- Vulnerabilità di rete
- Vulnerabilità del sistema operativo
- Vulnerabilità del server web
- Vulnerabilità del database
D # 3) Qual è la differenza tra minacce e vulnerabilità?
Risposta: Minaccia è la possibilità di compiere un'azione dannosa o indesiderata nel tentativo di danneggiare un sistema informatico o un'applicazione attraverso le vulnerabilità esistenti nel sistema. Esempio: ransomware.
Vulnerabilità sono punti deboli che esistono all'interno di un sistema che avrebbero potuto consentire l'accesso indesiderato o non autorizzato a un utente malintenzionato per infiltrarsi in un'organizzazione. Esempio: Configurazione errata del firewall.
D # 4) Quali sono le vulnerabilità più comuni?
Risposta: Questi sono i seguenti:
- SQL Injection
- Cross Site Scripting
- Configurazione errata della sicurezza
- Esposizione a dati sensibili
- Autenticazione interrotta
- Gestione delle sessioni
Conclusione
Questo elenco delle 20 principali vulnerabilità del SANS non è una regola o una politica, ma una guida per aiutarci a evitare le vulnerabilità del software. Che siamo uno sviluppatore o un esperto di sicurezza, ora tocca a noi seguire questa guida su cosa si può fare per evitare qualsiasi errore che potrebbe portare a vulnerabilità nella nostra applicazione che possono creare una backdoor per un attore per eseguire un atto dannoso.
Lettura consigliata
- Test di sicurezza (una guida completa)
- Strumento di test di sicurezza Acunetix Web Vulnerability Scanner (WVS) (esame manuale)
- Guida alla valutazione e alla gestione delle vulnerabilità della rete
- I 10 strumenti di scansione per la valutazione delle vulnerabilità più potenti nel 2021
- Differenza tra Vulnerability Assessment e Penetration Testing
- Sicurezza Jenkins: Abilitazione della sicurezza e matrice di sicurezza del progetto
- I 4 principali errori di sicurezza informatica da evitare durante il test del software
- 10 MIGLIOR software per la sicurezza di rete (SOLO TOP SELECTIVE 2021)