Hacker, Cracker, facciamo un po’ di chiarezza

Hacker-Lock[1]Hacker

Un hacker è una persona che si impegna nell’affrontare sfide intellettuali per aggirare o superare creativamente le limitazioni che le vengono imposte, in primo luogo nei suoi ambienti di interesse, che solitamente comprendono l’informatica o l’ingegneria elettronica.
Esiste peraltro un luogo comune, utilizzato soprattutto dai media, per cui il termine hacker viene associato ai criminali informatici (la cui corretta definizione è cracker).

mit-university-logo-1024x1004[1]Origine del termine. Il termine originale si è sviluppato al MIT molto prima che i computer divenissero strumenti di uso comune; “hack” indicava una semplice (ma spesso elegante) soluzione. In seguito il termine hack cominciò ad essere usato per indicare ogni intervento o “scherzo” astuto perpetrato dagli studenti del MIT; il responsabile dell’intervento era detto hacker. Al MIT questi termini vengono usati allo stesso modo ancora oggi, senza riferirsi necessariamente ai computer.

La cultura informatica si è sviluppata al MIT quando i membri del “Tech Model Railroad Club” iniziarono a lavorare con un elaboratore digitale PDP-1 e applicarono il loro gergo ai computer. Attualmente, nella cultura informatica, essere indicati come “hacker” è un complimento, che indica un programmatore abile e preparato. Mentre nel gergo mediatico, invece, è diventato sinonimo di criminale informatico, o cracker.

Significati. Il termine hacker viene usato, in massima parte, con i seguenti significati:

  1. Qualcuno che conosce un modello di interfaccia di programmazione abbastanza bene da essere in grado di scrivere un software nuovo e utile senza troppa fatica, in una giornata o comunque rapidamente
  2. Qualcuno che (di solito illegalmente) riesce a oltrepassare o sovvertire la sicurezza di un sistema, di un programma o di una rete, spesso con intenti dannosi. Anche detti “black hat hacker”, o “cracker”.
  3. Qualcuno che riesce ad inserirsi in un sistema o in una rete per aiutare i proprietari a prendere coscienza di un problema di sicurezza. Anche detti “white hat hacker” o “sneacker”. Molte di queste persone sono impiegate in aziende di sicurezza informatica e lavorano nella completa legalità. Gli altri ricadono nella definizione precedente.
  4. Qualcuno che, attraverso l’esperienza o per tentativi successivi, modifica un software esistente in modo tale da rendere disponibile una nuova funzione. Più che una competizione, lo scambio tra diversi programmatori di modifiche sui relativi software è visto come un’occasione di collaborazione.
  5. Un “Reality Hacker” o “Urban Spelunker” (origine: MIT) è qualcuno che si addentra nei meandri più nascosti di una città, spesso mettendo a segno “scherzi” elaborati per il divertimento della comunità.
    “Script kiddie” è un termine che indica un utente con poca o nessuna cultura informatica che segue semplicemente delle istruzioni o un “cook-book” senza capire il significato di ciò che sta facendo. Spesso viene utilizzato per indicare chi utilizza exploit creati da altri programmatori e hacker.

Un “h4x0r” (pronuncia “achs-or“) è uno script kiddie in un contesto videoludico, ad esempio qualcuno che usa “cheat” (codici) per modificare le condizioni del videogioco a suo vantaggio.


mini_hack_the_planet[1]Cracker

In ambito informatico il termine inglese cracker indica colui che entra abusivamente in sistemi altrui allo scopo di danneggiarli, lasciare un segno del proprio passaggio, utilizzarli come teste di ponte per altri attacchi oppure per sfruttare la loro capacità di calcolo o l’ampiezza di banda di rete.

I cracker possono essere spinti da varie motivazioni, dal guadagno economico (tipicamente coinvolti in operazioni di spionaggio industriale o in frodi) all’approvazione all’interno di un gruppo di cracker (come tipicamente avviene agli script kiddie, che praticano le operazioni di cui sopra senza una piena consapevolezza né delle tecniche né delle conseguenze).

I media hanno l’abitudine di definire hacker i cracker, mentre, sebbene alcune tecniche siano simili, i primi hanno scopi più costruttivi che distruttivi, come accade invece ai secondi.

Tipologie di attacco. Nonostante sia molto complesso definire in maniera certa il modus operandi del cracker, è possibile grosso modo definire due categorie di attacchi al sistema informatico: l’attacco locale e quello esterno (remoto).
Attacco esterno. L’attacco esterno ha come finalità:

  • lo sfruttamento di una vulnerabilità di un servizio internet, causata da un bug di programmazione (spesso passibili di overflow e simili).
  • l’utilizzo di programmi che vengono eseguiti da un server web (cgi-bin) che possono essere utilizzati in modo improprio, ovvero consentono l’esecuzione di comandi oppure soffrono di vulnerabilità analoghe a quelle dei bug dei servizi internet.
  • lo sfruttamento di determinate configurazioni insicure dei software web.

Portscanner e security scanner. Per fare questo il cracker si avvale di numerosi software, tra i quali degni di menzione sono i portscanner che effettuano dei portscan al fine di individuare quali servizi internet sono attivi su una determinata macchina. I portscanner più evoluti sono in grado di determinare anche la versione dei vari software che gestiscono il servizio web. Più evoluti dei portscanner sono i security scanner, atti ad individuare le vulnerabilità dei servizi internet.

Attacco locale. L’attacco locale viene portato a compimento da individui che hanno accesso fisico alla macchina oppure che hanno accesso al sistema via internet tramite delle console remote che permettono loro di eseguire un limitato numero di operazioni con privilegi altrettanto limitati.

Ottenimento di privilegi illimitati. L’ottenimento dello status di root, ovvero utente dai privilegi illimitati, si ottiene mediante lo sfruttamento di vulnerabilità di overflow insite nel servizio internet, come descritto nell’attacco esterno, sfruttando difetti nel kernel (solitamente con un attacco locale), la sovrascrittura di file eseguibili o l’utilizzo dei programmi SETUID, che consentono l’esecuzione di determinate operazioni che necessitano di privilegi differenti (solitamente root).

Essere superutente (ovvero root) si rivela essenziale per i cracker che hanno intenzione di nascondere le tracce del proprio passaggio e fare il bello e il cattivo tempo sulla macchina compromessa. Alcune operazioni che solamente root può fare sono ad esempio: lo sniffing dei dati in transito su un’interfaccia di rete (solitamente password) e l’utilizzo di software in grado di agire a livello di rete molto basso.

L’eliminazione delle tracce. L’eliminazione delle tracce del proprio passaggio o della propria presenza è essenziale perché il cracker si renda totalmente invisibile all’amministratore di sistema. E ciò viene ottenuto tramite:

  • l’eliminazione o modifica dei file di log, che sono i registri che tengono traccia delle operazioni degli utenti
  • la modifica dei file eseguibili affinché le operazioni risultino totalmente invisibili
    l’inserimento di codice direttamente all’interno del kernel (in linux tramite dei LKM, moduli caricabili) che modifica e “dirotta” le chiamate di sistema (system call)
  • Queste operazioni vengono spesso automatizzate e riassunte tramite dei software chiamati root kit.

Come difendersi. Oggigiorno esistono numerosi sistemi per difendersi e individuare per tempo questi tipi di attacchi.

  • Il firewall. Il tool più diffuso per proteggere la propria rete o il proprio server è certamente il firewall, che permette di precludere l’accesso a determinati servizi, oppure da un’elenco di sistemi che non si ha intenzione di far accedere ai propri servizi internet.
  • IDS. Altro software di grande efficacia e complessità è l’intrusion detection system (IDS) che, attraverso una serie di regole prestabilite rileva tentativi di intrusione e li notifica all’amministratore.

Mentor[1]Lamer

Un lamer è un aspirante cracker con conoscenze informatiche limitate. Il termine inglese, in genere dispregiativo, si può tradurre come stupidotto.
Solitamente i lamer sono per lo più dei ragazzini che, a puro scopo di vandalismo, mandano dei trojan (virus) ad altri utenti al fine di entrare nei loro computer, per poi eventualmente danneggiare o distruggere le informazioni contenute all’interno del PC attaccato.
I lamer vengono disprezzati dagli hackers perché sono ritenuti in parte responsabili della connotazione negativa del termine hacker, che viene tutt’oggi associato alla criminalità informatica, alla diffusione di malware ecc.
Il lamer si differenzia dall’hacker perché il suo scopo non è esplorare e migliorare, ma fare vandalismo.

Script kiddie (ragazzino degli script) è un termine spregiativo, utilizzato dagli hacker, per intendere una persona che si diletta a seguire pedissequamente le istruzioni, senza capirle, e a copiare/modificare leggermente gli script creati da altri, facendo intendere agli altri di essere un grande guru dell’informatica.

Il termine si sviluppa sul finire degli anni 90, quando la diffusione dei sistemi operativi open source e degli accessi privati ad internet iniziano ad allargare il pubblico di persone interessate al funzionamento dei Personal Computer, con il conseguente aumento di persone con pochi scrupoli e imitatori in cerca dei 15 minuti di notorietà.


Phreaker

Eseguire chiamate telefoniche riuscendo a non pagarle, precursore dell’hacking.
Un phreaker è una persona che si inserisce in un network telefonico tipicamente per poter effettuare telefonate gratuite ma anche semplicemente per poter origliare. Il termine è anche usato per indicare persone che penetrano o tentano di penetrare i sistemi di sicurezza di un qualunque network.

Questo articolo è stato riesumato dalla sezione Hacking di Enkey.it del 2004

I commenti sono chiusi, ma riferimenti e pingbacks sono aperti.