# Cracker (informatica)

Cracker, o pirata informatico, è un appassionato di informatica, esperto di programmazione, di sistemi e di sicurezza informatica in grado di introdursi in reti di computer senza autorizzazione allo scopo di danneggiare un sistema informatico; non è da confondere con gli hacker i quali sono contraddistinti da una cultura e un'etica legata all'idea del software libero. I cracker possono essere spinti da varie motivazioni (seguendo lo schema del MOM), dal guadagno economico con operazioni di spionaggio industriale o frodi, all'approvazione all'interno di una comunità di cracker.

## Descrizione

Cracker è chi spezza le protezioni invece di aggirarle (ad esempio con patch o metodo forza bruta), mentre black hat hacker indica un hacker criminale (molti cracker rientrano anche in questa categoria, ma non tutti e la distinzione è fondamentale per comprendere il vero significato del termine). Il black hat hacker viene spesso confuso con quello di white hat hacker, il cui significato è lievemente diverso. Alcune tecniche sono simili, ma il white hat hacker è colui che forza le protezioni di un sistema informatico per sfida o dietro pagamento di aziende al fine di trovarne le debolezze. Al contrario, il cracker è colui che sfrutta le proprie capacità (o in certi casi quelle degli altri) al fine di distruggere (i cracker fanno spesso utilizzo del DoS), ingannare e arricchirsi.

### Tipi di attacco utilizzati

È possibile definire due categorie di attacchi al sistema informatico: l'attacco esterno (remoto) e quello locale.
Il primo ha come finalità:
* lo sfruttamento di una vulnerabilità di un servizio internet, causata da un bug di programmazione (spesso passibili di buffer 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.
Per effettuare l'attacco esterno il cracker si avvale di numerosi software come i portscanner che effettuano dei port scanning al fine di individuare quali servizi internet sono attivi su una determinata macchina. Più evoluti dei portscanner sono i security scanner, atti a individuare le vulnerabilità dei servizi internet.
L'attacco locale viene portato a compimento quando si ha accesso fisico alla macchina oppure tramite accesso al sistema via internet attraverso delle console remote che permettono loro di eseguire un limitato numero di operazioni con privilegi altrettanto limitati.
L'ottenimento dello status di root, ovvero come 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 operare 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 del proprio passaggio o della propria presenza è essenziale perché il cracker si renda totalmente invisibile all'amministratore di sistema. Ciò viene ottenuto tramite:
* l'eliminazione o la 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
Queste operazioni vengono spesso automatizzate e riassunte tramite dei software chiamati rootkit.

## Strumenti di difesa
### Il firewall

Il tool più diffuso per proteggere la propria rete o il proprio server è 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 multimediali.

### IDS

Altro software di grande efficacia e complessità è l'Intrusion detection system (IDS) che, attraverso una serie di regole prestabilite rileva tentativi di enumerazione, intrusione o di attacco e li notifica a un operatore.