Читать книгу Guida Di Hackeraggio Informatico Per Principianti - Alan T. Norman - Страница 15
ОглавлениеCapitolo 2. Vulnerabilità ed Exploit
L'essenza dell'hacking è lo sfruttamento dei difetti nella sicurezza di un computer, dispositivo, componente software o rete. Questi difetti sono noti come vulnerabilità. L'obiettivo dell'hacker è scoprire le vulnerabilità in un sistema, che gli forniranno l'accesso o il controllo nel modo più semplice per i suoi scopi. Una volta comprese le vulnerabilità, può iniziare lo sfruttamento di esse, per cui l'hacker sfrutta i difetti del sistema per ottenere l'accesso. In genere, gli hacker black hat e white hat, sebbene per scopi diversi, hanno come finalità lo sfruttamento delle vulnerabilità, e così i gray hat tenteranno di avvisare il proprietario in modo che possano essere intraprese azioni per proteggere il sistema.
Vulnerabilità
Le vulnerabilità nei sistemi informatici e di rete sono sempre esistite e sempre esisteranno. Nessun sistema può essere reso ermetico al 100%, perché qualcuno dovrà sempre essere in grado di accedere alle informazioni o ai servizi protetti. Inoltre, la presenza di utenti umani rappresenta una vulnerabilità in sé e per sé, perché le persone sono notoriamente poco efficienti nel mantenere un buon livello di sicurezza. Quando le vulnerabilità vengono scoperte e corrette, delle nuove ne prendono quasi immediatamente il posto. Il botta e risposta tra lo sfruttamento degli hacker e l'implementazione delle misure di sicurezza rappresenta una vera corsa agli armamenti, con ciascuna parte a diventare di pari passo più sofisticata.
Vulnerabilità Umana
Una vulnerabilità discussa di rado è quella dell'utente umano. La maggior parte degli utenti di computer e sistemi informatici non sono esperti informatici o professionisti della sicurezza informatica. La maggior parte degli utenti sa ben poco di ciò che accade tra i loro punti di interfaccia e i dati o i servizi a cui accedono. È difficile convincere le persone su larga scala a cambiare le proprie abitudini e utilizzare le pratiche consigliate per impostare le password, controllare le e-mail con scrupolo, evitare siti web dannosi e mantenere aggiornati i propri software. Le aziende e le agenzie governative impiegano molto tempo e risorse per addestrare i dipendenti a seguire le corrette procedure di sicurezza dei dati, ma basta un solo anello debole nella catena per dare agli hacker la finestra che stanno cercando per accedere a un intero sistema o rete.
I firewall più sofisticati e costosi e la prevenzione delle intrusioni di rete dei sistemi vengono resi inutili quando un singolo utente dall’interno clicca su un collegamento dannoso, apre un virus in un allegato di posta elettronica, collega un'unità flash compromessa o semplicemente fornisce la password di accesso tramite il telefono o la posta elettronica. Anche se le migliori pratiche di sicurezza vengono ripetutamente ricordate, gli utenti comuni sono la vulnerabilità più semplice e utile da trovare e sfruttare. A volte le vulnerabilità umane sono quanto mai semplici, come un’abitudine errata nella sicurezza delle password, lasciando le password annotate in un semplice sito, a volte anche collegate all'hardware utilizzato. L'utilizzo di password facili da indovinare è un altro errore comune dell'utente. Un particolare sistema aziendale è stato compromesso quando un hacker astuto ha lasciato intenzionalmente un'unità flash USB nel parcheggio di un'azienda. Quando un dipendente ignaro lo ha trovato, ha inserito l'unità nel suo computer di lavoro e di conseguenza ha caricato un virus. La maggior parte delle persone non prende sul serio la sicurezza informatica fino a quando non si verifica un incidente, e anche in questo caso, spesso ricade nelle stesse abitudini. Gli hacker lo sanno e ne approfittano il più spesso possibile.
Vulnerabilità del Software
Tutti i computer si basano su software (o "firmware", in alcuni dispositivi) che traducono in azioni gli input o i comandi dell'utente. Il software gestisce gli accessi dell’utente, esegue query sul database, esegue l'invio di moduli di siti web, controlla hardware e periferiche e gestisce altri aspetti delle funzionalità del computer e di rete che potrebbero essere sfruttati dagli hacker. Oltre al fatto che i programmatori commettono errori e sviste, è impossibile per gli sviluppatori di software prevedere eventuali possibili vulnerabilità nel loro codice. Gli sviluppatori al massimo possono sperare di riparare e modificare il proprio software quando vengono scoperte delle vulnerabilità. Ecco perché è così importante mantenere aggiornato un software.
Alcune vulnerabilità del software sono dovute a errori di programmazione, ma la maggior parte sono semplicemente dovute a difetti imprevisti nella progettazione. Il software è normalmente sicuro se utilizzato come previsto, ma combinazioni impreviste e non intenzionali di input, comandi e modalità spesso portano a conseguenze impreviste. Senza rigorosi controlli su come gli utenti interagiscono con il software, molte sue vulnerabilità vengono scoperte per errore o in modo casuale. Gli hacker fanno il possibile per scoprire queste anomalie il più rapidamente possibile.
Exploit
Trovare e sfruttare le vulnerabilità per accedere ai sistemi è sia un'arte che una scienza. A causa della natura dinamica della sicurezza delle informazioni, esiste un gioco da "gatto e topo" costante tra hacker e professionisti della sicurezza e persino tra stati-nazione avversari. Per stare al passo (o almeno non rimanere troppo indietro), non ci si deve solo mantenere informati sulle ultime tecnologie e vulnerabilità, ma anche essere in grado di anticipare come gli hacker e il personale della sicurezza reagiranno ai cambiamenti nel panorama generale.
Accesso
L'obiettivo dello sfruttamento più comune è quello di ottenere l'accesso e raggiungere un certo livello di controllo di un certo sistema. Poiché molti sistemi hanno più livelli di accesso ai fini della sicurezza, spesso accade che ogni livello di accesso abbia una propria serie di vulnerabilità e che in genere siano più difficili da hackerare poiché sono disponibili più funzionalità di base. Il colpo di accesso assoluto per un hacker è quello di raggiungere il livello di superutente o root (un termine UNIX), noto nello slang hacker come "ottenere il root". Questo livello superiore offre il controllo utente di tutti i sistemi, file, database e impostazioni in un determinato sistema autonomo.
Può essere abbastanza difficile violare in un unico exploit il livello root di un sistema informatico sicuro. Più spesso, gli hacker sfruttano vulnerabilità più semplici o traggono vantaggio da utenti meno esperti per ottenere un accesso iniziale di basso livello. Da lì possono essere impiegati ulteriori metodi per raggiungere livelli più alti, da quello di amministratore fino al root. Con l'accesso root, un hacker può visualizzare, scaricare e sovrascrivere le informazioni a piacimento e in alcuni casi persino rimuovere qualsiasi traccia nel sistema. Per questo motivo, ottenere il root di un sistema target è motivo di orgoglio in quanto massimo risultato tra gli hacker sia black hat che white hat.
Negare l’Accesso
In molti casi ottenere l'accesso a un determinato sistema target è impossibile, estremamente difficile o nemmeno auspicabile per un hacker. A volte, l'obiettivo di un hacker è semplicemente impedire agli utenti legittimi di accedere a un sito web o una rete. Questo tipo di attività è noto come denial-of-service (DoS). Lo scopo di condurre un attacco DoS può variare. Dal momento che è relativamente semplice da eseguire, è spesso un esercizio per principianti e hacker inesperti ("newbie", "nob" o "neofita" nel gergo) tanto da diventare un motivo di vanto. Gli hacker più esperti possono eseguire attacchi DoS prolungati, interrompendo server commerciali o governativi per un lungo periodo di tempo. Pertanto, spesso gruppi organizzati di hacker tengono in ostaggio un sito web e chiedono un riscatto ai proprietari in cambio della sospensione dell'attacco, il tutto senza nemmeno dover accedere.