Test del database - Sicurezza

Il test di sicurezza del database viene eseguito per trovare le lacune nei meccanismi di sicurezza e anche per trovare le vulnerabilità o le debolezze del sistema di database.

L'obiettivo principale dei test di sicurezza del database è scoprire le vulnerabilità in un sistema e determinare se i suoi dati e le sue risorse sono protetti da potenziali intrusi. I test di sicurezza definiscono un modo per identificare le potenziali vulnerabilità in modo efficace, se eseguiti regolarmente.

Di seguito sono riportati gli obiettivi principali dell'esecuzione dei test di sicurezza del database:

  • Authentication
  • Authorization
  • Confidentiality
  • Availability
  • Integrity
  • Resilience

Tipi di minacce su un sistema di database

SQL Injection

Questo è il tipo di attacco più comune in un sistema di database in cui vengono inserite istruzioni SQL dannose nel sistema di database e vengono eseguite per ottenere informazioni critiche dal sistema di database. Questo attacco sfrutta le scappatoie nell'implementazione delle applicazioni utente. Per evitare ciò, i campi di input dell'utente devono essere gestiti con attenzione.

Elevazione dei privilegi nel database

In questo attacco, un utente ha già un accesso nel sistema di database e cerca solo di elevare questo livello di accesso più alto in modo che possa eseguire alcune attività non autorizzate nel sistema di database.

Negazione del servizio

In questo tipo di attacco, un utente malintenzionato rende un sistema di database o una risorsa dell'applicazione non disponibile per i suoi utenti legittimi. Le applicazioni possono anche essere attaccate in modi che rendono inutilizzabile l'applicazione, e talvolta l'intera macchina.

Accesso non autorizzato ai dati

Un altro tipo di attacco è ottenere l'accesso non autorizzato ai dati all'interno di un'applicazione o di un sistema di database. L'accesso non autorizzato include:

  • Accesso non autorizzato ai dati tramite applicazioni basate sull'utente
  • Accesso non autorizzato a monitorando l'accesso di altri
  • Accesso non autorizzato alle informazioni di autenticazione del client riutilizzabili

Identity spoofing

In Identity Spoofing, un hacker utilizza le credenziali di un utente o dispositivo per lanciare attacchi contro host di rete, rubare dati o aggirare i controlli di accesso al sistema di database. Prevenire questo attacco richiede infrastrutture IT e mitigazioni a livello di rete.

Manipolazione di dati

In un attacco di manipolazione dei dati, un hacker modifica i dati per ottenere qualche vantaggio o per danneggiare l'immagine dei proprietari del database.

Tecniche di test della sicurezza del database

Test di penetrazione

Un penetration test è un attacco a un sistema informatico con l'intenzione di trovare falle nella sicurezza, potenzialmente accedendovi, alle sue funzionalità e ai suoi dati.

Ricerca del rischio

Il Risk Finding è un processo di valutazione e decisione sul rischio connesso al tipo di perdita e alla possibilità che si verifichi una vulnerabilità. Questo è determinato all'interno dell'organizzazione da varie interviste, discussioni e analisi.

Test di iniezione SQL

Implica il controllo degli input dell'utente nei campi dell'applicazione. Ad esempio, inserendo un carattere speciale come "," o ";" in qualsiasi casella di testo in un'applicazione utente non dovrebbe essere consentito. Quando si verifica un errore del database, significa che l'input dell'utente viene inserito in una query, che viene quindi eseguita dall'applicazione. In tal caso, l'applicazione è vulnerabile all'iniezione SQL.

Questi attacchi rappresentano una grande minaccia per i dati poiché gli aggressori possono accedere a informazioni importanti dal database del server. Per controllare i punti di ingresso di SQL injection nella tua applicazione web, trova il codice dalla tua base di codice dove le query MySQL dirette vengono eseguite sul database accettando alcuni input dell'utente.

È possibile eseguire il test SQL Injection per parentesi, virgole e virgolette.

Cracking delle password

Questo è il controllo più importante durante l'esecuzione del test del sistema di database. Per accedere a informazioni critiche, gli hacker possono utilizzare uno strumento di cracking delle password o possono indovinare un nome utente / password comune. Queste password comuni sono facilmente disponibili su Internet e anche gli strumenti di cracking delle password esistono liberamente.

Pertanto, è necessario controllare al momento del test se la politica della password è mantenuta nel sistema. In caso di applicazioni bancarie e finanziarie, è necessario impostare una rigorosa politica delle password su tutti i sistemi di database delle informazioni critiche.

Audit di sicurezza del sistema di database

Un controllo di sicurezza è un processo di valutazione delle politiche di sicurezza dell'azienda a intervalli di tempo regolari per determinare se gli standard necessari vengono seguiti o meno. È possibile seguire vari standard di sicurezza in base ai requisiti aziendali per definire la politica di sicurezza e quindi eseguire la valutazione delle politiche impostate rispetto a tali standard.

Esempi degli standard di sicurezza più comuni sono ISO 27001, BS15999, ecc.

Strumenti per testare la sicurezza del database

Sul mercato sono disponibili vari strumenti di test del sistema che possono essere utilizzati per testare il sistema operativo e il controllo delle applicazioni. Alcuni degli strumenti più comuni sono discussi di seguito.

Zed Attack Proxy

È uno strumento di test di penetrazione per individuare le vulnerabilità nelle applicazioni web. È progettato per essere utilizzato da persone con una vasta gamma di esperienza in materia di sicurezza e come tale è ideale per sviluppatori e tester funzionali che sono nuovi ai test di penetrazione. È comunemente usato per Windows, Linux, Mac OS.

Paros

Tutti i dati HTTP e HTTPS tra server e client, inclusi cookie e campi modulo, possono essere intercettati e modificati utilizzando questi scanner. Viene utilizzato per multipiattaforma, Java JRE / JDK 1.4.2 o superiore.

Toolkit dell'ingegnere sociale

È uno strumento open source e gli elementi umani vengono attaccati piuttosto che l'elemento di sistema. Ti consente di inviare e-mail, applet Java ecc. Contenenti il ​​codice di attacco. È preferito per Linux, Apple Mac OS X e Microsoft Windows.

Skipfish

Questo strumento viene utilizzato per eseguire la scansione dei loro siti alla ricerca di vulnerabilità. I report generati dallo strumento sono pensati per servire come base per valutazioni professionali sulla sicurezza delle applicazioni web. È preferito per Linux, FreeBSD, MacOS X e Windows.

Vega

È uno strumento di sicurezza web multipiattaforma open source utilizzato per trovare istanze di SQL injection, cross-site scripting (XSS) e altre vulnerabilità nelle applicazioni web. È preferito per Java, Linux e Windows.

Wapiti

Wapiti è uno strumento open source e basato sul Web che esegue la scansione delle pagine Web dell'applicazione Web e verifica la presenza di script e moduli in cui può iniettare dati. È costruito con Python e può rilevare errori di gestione dei file, database, iniezioni XSS, LDAP e CRLF, rilevamento dell'esecuzione di comandi.

Web Scarabeo

È scritto in Java e viene utilizzato per analizzare le applicazioni che comunicano tramite protocolli HTTP / HTTPS. Questo strumento è progettato principalmente per gli sviluppatori che possono scrivere codice da soli. Questo strumento non dipende dal sistema operativo.