IT knowledge base
CTRL+F per cercare la tua parola chiave

Audit di sicurezza del sito web competente

La sicurezza delle applicazioni Web è sempre stata un argomento dolente. Se ne parla molto, ma il quadro generale è praticamente invariato rispetto a questo: ci sono ancora molti attacchi di hacker e spesso hanno molto successo per gli aggressori e costi per le vittime.
I proprietari della piattaforma di trading sudcoreana Interpark hanno dovuto affrontare un problema serio: un hacker è penetrato nel loro database, ha rubato informazioni su circa 10 milioni di clienti e ora chiede un riscatto per la sua riservatezza. Nell'elenco degli incidenti di alto profilo c'era anche l'hacking del forum ufficiale di Ubuntu utilizzando SQL injection attraverso una nota vulnerabilità nel motore vBulletin. I dati personali di 2 milioni di utenti sono stati rubati.
Tutto questo - solo per l'attuale luglio. E solo per siti di grandi dimensioni. È difficile immaginare quanti attacchi a progetti più piccoli siano in corso. Tuttavia, i ricercatori di Wallarm non erano troppo pigri e calcolati: nel 2015 hanno registrato 100 milioni di attacchi alle risorse web dei loro clienti.
Uno dei modi più efficaci per proteggere il tuo sito è condurre un controllo di sicurezza. Quindi diamo un'occhiata a come va questo evento.

Test di penetrazione

Molto spesso, il controllo di sicurezza di una risorsa viene eseguito secondo il metodo della "scatola nera": uno specialista della sicurezza inizia a tentare di hackerare il suo obiettivo, come se fosse un vero aggressore e perseguisse un obiettivo egoistico: hackerare un concorrente, attaccare il sito visitatori, monetizzare segretamente il sito dal proprietario o semplicemente per divertire la tua ambizione.
Pertanto, un tester deve risolvere almeno uno dei problemi globali:
  1. Violare la riservatezza delle informazioni sui clienti.
  2. Limita l'accesso ai dati chiave.
  3. Modificare o distruggere qualsiasi informazione senza possibilità di recupero.

Come puoi vedere da questo elenco, non puoi semplicemente prendere e controllare il sito. Hai bisogno di una certa preparazione per i test di penetrazione, senza i quali sarà inefficace o può diventare un vero attacco di hacker con conseguenze disastrose. Devi fare almeno quanto segue.
  1. Firma di un accordo di non divulgazione. Un ricercatore nel corso del suo lavoro può avere accesso a informazioni riservate molto preziose. È improbabile che le organizzazioni rispettabili coinvolte nei test di sicurezza lo utilizzino per i propri scopi, ma non è sempre possibile verificare l'integrità dell'esecutore, quindi è meglio concludere un accordo.
  2. Conduzione di un audit su una copia completa del sito principale. Il tester applicherà tutti i metodi degli hacker, compresi quelli che portano alla rottura di una risorsa web o alla distruzione dei dati su di essa. È meglio non esporre la versione da combattimento del progetto a tale stress e limitarsi a un clone.
  3. Occultamento dell'audit. Meno persone conoscono i test, meglio è. Gli aggressori raramente avvertono del loro attacco, quindi se parli a un gran numero di persone dell'evento, questo può distorcere il risultato.

Metodi di prova di penetrazione

Ricerca open source. Poiché viene utilizzato il metodo della "scatola nera", il tester è completamente all'oscuro di come appare l'oggetto attaccato dall'interno, altrimenti l'hacking sarebbe un compito estremamente banale. Pertanto, viene utilizzata una raccolta preliminare di informazioni.
Uno specialista è principalmente interessato al lato tecnico di un'applicazione web: in quale lingua è scritta, quale CMS utilizza e con quali estensioni. Puoi scoprire tutto questo senza nemmeno ricorrere a strumenti particolari, a volte basta solo Google. Ad esempio, puoi trovare i dipendenti dell'azienda attaccata su LinkedIn, identificare i programmatori tra loro e determinare in quale lingua sono specializzati.
Inoltre, se lo desideri, puoi scoprire cosa stavano facendo esattamente. Per fare ciò, cerca semplicemente per nome o soprannome e puoi trovare molte cose interessanti nei risultati della ricerca. Questo può essere, ad esempio, una discussione per conto di questo programmatore di un modulo per il motore o un ordine da un account aziendale con un appaltatore freelance di un nuovo plug-in con specifiche tecniche dettagliate.
Definizione di dispositivi di protezione. La presenza di qualsiasi software di sicurezza - sistemi di prevenzione delle intrusioni, protezione DDoS, firewall - può complicare seriamente il compito di cracking, quindi deve essere rilevato. Di solito, vengono utilizzati programmi speciali per questo. Ad esempio, puoi rilevare la presenza di un firewall utilizzando un port scanner e i servizi antiddos sono determinati dai record DNS del dominio.
Utilizzo di vulnerabilità standard. Prima di iniziare a cercare vulnerabilità zero-day sconosciute, studiando la logica dell'applicazione web e la sua architettura, il tester verificherà la resistenza del sito ai comuni metodi di attacco. Ad esempio, potrebbe utilizzare un exploit noto per una vecchia versione del motore. Fu in questa fase che il suddetto Interpark e il forum di Ubuntu ne soffrirono.
In termini generali, in questa fase di solito accade quanto segue:
  1. È stato effettuato un tentativo di eseguire il codice in remoto.
  2. Tentativo di SQL injection.
  3. Sfruttamento delle vulnerabilità XSS, RFI e LFI.
  4. Cerca posizioni di archiviazione di backup e ottieni l'accesso ad esse.
  5. Manipolazioni con il sistema di autorizzazione: forza bruta, ricerca di recupero password non sicure, bypass autenticazione.
  6. Studiare la struttura dei file del sito per trovare file il cui accesso è limitato solo dall'assenza di un collegamento esplicito ad esso.
  7. Intercettazione e ricerca del traffico.
  8. Cerca le opzioni per l'accesso non autorizzato alle informazioni riservate.

Un approccio non convenzionale. Quando i metodi noti non aiutano, il tester, utilizzando una combinazione di tutti i metodi sopra descritti e la sua comprensione dei sistemi di sicurezza, cerca di aggirare la protezione esistente o scoprire una vulnerabilità finora sconosciuta.
Non tutti i revisori eseguono questa procedura, poiché è piuttosto complesso, richiede qualifiche molto elevate di specialisti e costa molto. Come dimostra la pratica, molto spesso le vulnerabilità zero-day vengono scoperte da ricercatori di terze parti. Tuttavia, ricevono una ricompensa corrispondente per averli trovati.
In effetti, se il tuo sito viene testato con successo per tutti i tipi standard di minacce, il test può essere considerato riuscito. Uno studio più dettagliato e approfondito dei metodi di hacking è rilevante solo per progetti molto grandi, per l'hacking che possono attirare hacker davvero di alto livello che possono scoprire nuove falle di sicurezza.

Completamento dell'audit

Il risultato di qualsiasi test di penetrazione è un documento che deve includere:
  1. Informazioni sui metodi utilizzati al momento dell'ispezione.
  2. Sviluppare il concetto di attaccante, i suoi potenziali obiettivi e la motivazione.
  3. Descrizione degli scenari di attacco sviluppati e implementati dai tester.
  4. Un rapporto dettagliato su tutte le vulnerabilità rilevate.
  5. Raccomandazioni per la loro eliminazione.

Un audit eseguito con competenza è una misura molto efficace per trovare punti deboli in un sito e nel suo server. È estremamente raro che il test venga superato completamente, di solito alcuni dettagli vengono trascurati dagli sviluppatori. Ma anche se la risorsa web non è riuscita a essere violata, questo è comunque un risultato: ora il suo proprietario sarà sicuramente in grado di dormire sonni tranquilli.