lunedì 4 ottobre 2010

SICUREZZA:exploits e payloads

Sono sicuro che molti di voi,navigando su internet, hanno sentito questi termini,spesso affiancati alle parole hacking,pentest*,etc....
Ma cosa sono in realtà gli exploits?



Gli exploits sono codici che sfruttando un bug(=insetto;nel nostro caso però=falla) o una vulnerabilità di un sistema, portano all'acquisizione di privilegi o al denial of service** di un computer.

Possiamo raggruppare gli exploits in due grandi categorie:remoti e locali.


Iniziamo con il definire queste due categorie:

  • Locali:sono tutti quegli exploit che vengono eseguiti sulla propria macchina.

  • Remoti: gli exploits remoti sono invece tutti quelli che possono avere come bersaglio un utente che non si trova nella stessa rete,come per esempio in una rete LAN***.

*Pentest: sta per penetration test,cioè il processo operativo di valutazione della sicurezza di un sistema/rete.
**Denial of Service(DoS): che significa(tradotto) negazione del servizio,è un tipo di "attacco" effettuabile ad un sistema/rete(non voglio divulgarmi troppo).
***LAN(Local Access Network): scommetto che se lo dico in italiano la conoscete: rete di accesso locale(si,è la rete locale).

Un exploit ,però, è molto più efficace con un payload.
Ora vi starete chiedendo,cosa sono i payloads?

Un payloads(no,non questo) è una runtime;se vogliamo possiamo definirlo un "mix" tra il tipo di attacco e il codice da eseguire.Quindi il payload è (banalmente parlando) il dato o l'insieme di dati che si manda al programma/bersaglio vulnerabile  per sfruttare una vulnerabilità(mmm...troppe ripetizioni!) e farne  ricavare profitti/benefici/privilegi all'attaccante.

Ok,ma CHI e COME fa questi exploits?


Per il CHI è abbastanza facile,la persona che andrà a creare un exploit ha un obiettivo OWNARE** un computer,ma perchè lo fa?
Dipende da soggetto,un hacker lo fa per avere accesso ad informazioni a cui è interessato,per avere accesso ad alcuni documenti,etc..
Ma questo nel caso di un hacker;nel caso di un cracker*** i motivi possono essere tanti: per divertimento,per soldi,per informazioni(che poi -forse-venderanno),per vendetta,etc...

Per il COME è un po più complicato: per creare un exploit bisogna conoscere un linguaggio di programmazione e,quasi sempre,anche l'assembly****,infine bisogna trovare/sfruttare una falla.

*Runtime: momento in cui un programma viene eseguito.
**Ownare: termine italianizzato che deriva da owned(=impossessarsi;che deriva da own=proprietario)che indica la "sottomissione" di un sistema all'attaccante.
***Cracker(o hacker black hat):in breve sono persone che si "divertono" a danneggiare un sistema (crack,dall'inglese,=rompere)
****Assembly: è il linguaggio di programazione più vicino al binario(01101111 01101011 00111111 ,capito no?).


Ricordo a tutti i lettori che se ci sono terminologie errate,etc...che è possibile comunicarmelo(provvederò subito!)

Nessun commento:

Posta un commento