banner banner banner
Guida Di Hackeraggio Informatico Per Principianti
Guida Di Hackeraggio Informatico Per Principianti
Оценить:
 Рейтинг: 0

Guida Di Hackeraggio Informatico Per Principianti


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.

Capitolo 3. Per Iniziare

Gli hacker hanno la reputazione di essere individui particolarmente intelligenti e talentuosi in vari modi. Può quindi sembrare un lavoro enorme e faticoso iniziare da zero e raggiungere un qualsiasi livello di competenza pratica. Bisogna ricordare che tutti devono pur iniziare da qualche parte nell'apprendimento di una materia o di certe abilità. Con dedizione e perseveranza, è possibile fare proprio il mondo dell'hackeraggio fin dove la volontà riesce a portarci. Nei passi da intraprendere per diventare un hacker, fissare alcuni obiettivi può essere d’aiuto. Chiediti perché vuoi imparare l'hackeraggio e cosa intendi ottenere. Alcuni vogliono solo imparare le basi in modo da poter capire come proteggere sé stessi, la propria famiglia o la propria attività da attacchi malevoli. Altri aspirano a una formazione per una carriera nella pirateria informatica o nella sicurezza delle informazioni. Qualunque sia il motivo, dovrai prepararti ad apprendere alcune nuove nozioni e abilità.

Imparare

L'arma più importante dell'arsenale di un hacker è la conoscenza. Non solo è importante che un hacker apprenda il più possibile su computer, reti e software, ma per rimanere competitivo ed efficace deve essere aggiornato sui costanti e rapidi cambiamenti nei computer e nella sicurezza dei computer. Non è necessario che un hacker sia un ingegnere, un informatico o abbia una conoscenza dettagliata del microprocessore o della progettazione dell'hardware di un computer, ma dovrebbe conoscere il funzionamento di un computer, i suoi componenti principali e come interagiscono, come i computer sono collegati in rete sia localmente che attraverso Internet, le modalità di interazione generale degli utenti attraverso i loro computer e, soprattutto, il modo in cui il software determina il funzionamento del computer. Un hacker capace è esperto e pratico di diversi linguaggi informatici e conosce i principali sistemi operativi. È anche molto utile che un hacker abbia familiarità con la storia, la matematica e la pratica della crittografia.

È possibile, e sempre più comune, che un laico con poca esperienza di hackeraggio e con una conoscenza minima o intermedia di programmazione, conduca un attacco ad un sistema. Le persone spesso lo fanno usando script e seguendo le procedure sviluppate da operatori più esperti. Ciò accade più comunemente con i tipi di attacchi più semplici, come il Denial of Service. Questi hacker inesperti sono noti nella comunità degli hacker come script kiddie. Il problema con questo tipo di attività è che gli esecutori hanno scarsa comprensione di ciò che accade nel codice che stanno eseguendo e potrebbero non essere in grado di anticipare effetti collaterali o altre conseguenze indesiderate. È meglio comprendere appieno cosa stai facendo prima di tentare un attacco.

Computer e Processori

I computer variano di dimensioni, forma e scopo, ma la maggior parte di essi ha essenzialmente la stessa struttura. Un bravo hacker dovrebbe studiare come si sono evoluti i computer a partire dalle prime macchine del XX secolo fino alle macchine molto più sofisticate che usiamo oggi. In questo modo, risulta evidente che i computer hanno gli stessi componenti di base. Per diventare un hacker efficace, dovresti conoscere i diversi tipi di processori esistenti sulla maggior parte dei computer moderni. Ad esempio, i tre maggiori produttori di microprocessori sono Intel, American Micro Devices (AMD) e Motorola. Questi processori comprendono la maggior parte dei personal computer che incontrerà un hacker, ma ognuno ha il proprio set di istruzioni unico. Sebbene la maggior parte degli hacker abbia raramente a che fare con i linguaggi di programmazione a livello di macchina, attacchi più sofisticati potrebbero richiedere una comprensione delle differenze tra i set di istruzioni del processore.

Alcuni processori sono programmabili dall'utente finale. Questi sono noti come Field-Programmable Gate Arrays (FPGA) e vengono utilizzati sempre più spesso per i sistemi integrati, in particolare nei controlli industriali. È noto che gli hacker ottengano l'accesso a questi chip mentre sono in produzione in modo da distribuire un software dannoso al destinatario finale. È necessaria una comprensione dell'architettura e della programmazione FPGA per questi tipi di attacchi sofisticati. Questi attacchi integrati riguardano in particolare i clienti militari e industriali che acquistano chip su larga scala per sistemi sensibili.

Reti e Protocolli

Uno dei temi più importanti che l'aspirante hacker deve studiare è quello dell'architettura e dei protocolli di rete. I computer possono essere collegati in rete con diverse configurazioni e dimensioni e con diverse tecnologie che regolano la loro interconnessione. Dal filo di rame, alle fibre ottiche, alle connessioni wireless e satellitari, nonché la combinazione di tutti questi supporti; abbiamo creato una vasta rete informatica in tutto il mondo: questa rete può essere compresa su larga scala nella sua interezza e vista come una connessione di reti autonome più piccole.

In termini di dimensioni, le reti di computer sono state tradizionalmente classificate come reti locali (LAN) e reti geografiche (WAN). Le WAN in genere collegano un certo numero di LAN. Esistono molte altre designazioni per reti di dimensioni diverse e la terminologia cambia continuamente man mano che si sviluppano nuove tecnologie e conduttività. Tenere il passo con questi cambiamenti è uno dei compiti continui di un hacker.

Le reti hanno anche architetture diverse. L'architettura è determinata non solo dalla configurazione dei diversi nodi, ma anche dal supporto che li collega. Inizialmente i computer in rete erano sempre collegati tramite filo di rame. I cavi di rete in rame comunemente usati, spesso noti come cavi Ethernet, sono costituiti da coppie intrecciate di filo di rame. Sebbene il più comune di questi cavi sia il cavo di categoria cinque, o CAT-5, sta cominciando a lasciare il posto a un nuovo standard, CAT-6, che ha una maggiore capacità di trasmissione del segnale. Per applicazioni ad altissima velocità e distanze più lunghe, vengono solitamente scelti cavi in fibra ottica. Le fibre ottiche utilizzano la luce anziché l'elettricità e hanno una capacità di trasporto delle informazioni molto elevata. Sono utilizzati per trasportare la più moderna televisione via cavo e servizi Internet ad alta velocità. La fibra ottica funge da spina dorsale per Internet. All'interno di spazi ristretti, le reti wireless sono molto comuni. Attraverso l’impiego di un protocollo Wireless Fidelity (Wi-Fi), le reti wireless esistono in molte LAN personali, private e commerciali. Gli hacker sono spesso particolarmente interessati alla violazione delle reti Wi-Fi, e ciò ha provocato il conseguente sviluppo degli standard di sicurezza Wi-Fi. Indipendentemente dall'architettura o dal mezzo di trasmissione, quando due terminali comunicano attraverso una rete devono farlo utilizzando un insieme comune di regole noto come protocollo. I protocolli di rete si sono evoluti da quando sono state create le prime reti informatiche, ma hanno mantenuto lo stesso approccio stratificato di base. In generale, una rete è progettata in termini di livelli diversi che svolgono funzioni diverse. Ciò è anche noto come stack. I protocolli di comunicazione più comuni utilizzati oggi sono Internet Protocol (IP) e Transmission Control Protocol (TCP). Nel loro insieme, questi sono comunemente noti come TCP/IP. Questi protocolli cambiano e a volte sono standardizzati. È fondamentale per l'hacker apprendere questi protocolli e come si relazionano alla comunicazione tra i diversi strati dello stack. Ecco come gli hacker possono ottenere livelli sempre più elevati di accesso a un sistema.

Linguaggi di Programmazione

Può sembrare scoraggiante imparare un linguaggio di programmazione da zero senza averlo mai fatto prima, ma molte persone scoprono che una volta acquisita conoscenza di un linguaggio di programmazione, è molto più facile e veloce imparare gli altri. Gli hacker non devono solo comprendere i linguaggi di programmazione per poter sfruttare le vulnerabilità del software, ma molti devono anche scrivere il proprio codice per poter eseguire un determinato attacco. Leggere, comprendere e scrivere codici è fondamentale nell'hackeraggio.

I linguaggi di programmazione vanno da codici macchina molto difficili da decifrare, che sono in formato binario ed esadecimale e vengono utilizzati per comunicare direttamente con un processore, ai linguaggi orientati ad obiettivi di alto livello che vengono utilizzati per lo sviluppo di software. I linguaggi comuni orientati ad obiettivi di alto livello sono C++ e Java. Il codice scritto in linguaggi di alto livello viene compilato nel codice macchina adatto per un particolare processore, il che rende i linguaggi di alto livello molto intercambiabili tra i diversi tipi di macchine. Un'altra categoria è il linguaggio con script, dove i comandi vengono eseguiti riga per riga anziché essere compilati nel codice macchina. Imparare i linguaggi di programmazione richiede tempo e pratica - non c'è altro modo per diventare competenti. Le lunghe serate e le maratone notturne a occuparsi di scrittura, debug e ricompilazione del codice sono un rito di passaggio comune tra gli hacker principianti.


Вы ознакомились с фрагментом книги.
Для бесплатного чтения открыта только часть текста.
Приобретайте полный текст книги у нашего партнера:
Полная версия книги
(всего 1190 форматов)