Magazine Informatica

Come funziona un crypter

Creato il 11 febbraio 2011 da Hnikarr
Come abbiamo visto, è possibile nascondere un virus agli antivirus. Un file che il nostro antivirus ci presenta come "pulito", in realtà, potrebbe nascondere al proprio interno un bel trojan, pronto a infettare il nostro computer. Per questo, non possiamo mai avere la certezza assoluta che un file sia sicuro, soprattutto se lo abbiamo scaricato in modo "discutibile" e in una versione crackata: chi ha provveduto a crackare il programma, o a confezionare un'apposita crack per un programma, potrebbe anche aver deciso di lasciare un ricordino all'interno del file.
Uno degli strumenti più usati per occultare un virus è il crypter. Vediamo come funziona.
Abbiamo detto che un antivirus riconosce un virus sulla base del codice da cui è composto. Ogni file con estensione EXE, ossia l'estensione di quasi tutti i programmi e i virus per Windows, non è altro che una sequenza di linee di comandi: ogni tipo di programma ha determinate sequenze di linee di codice, che lo contraddistinguono e ne identificano le funzioni. Anche i virus hanno sequenze di codice che li identificano come virus, in quanto descrivono il loro funzionamento. L'antivirus ha in memoria queste sequenze, per poterle riconoscere quando scansiona un file. Se all'interno di un file sono presenti queste sequenze di codice e di comandi, allora quel file è, oppure contiene, un virus e l'antivirus lo segnala. Un buon antivirus utilizza anche altri criteri oltre a questo, ma non complichiamo troppo le cose.
Un crypter ha appunto lo scopo di nascondere quelle parti di codice che un antivirus riconoscerebbe come infette, mascherandole con una porzione di codice pulito e apparentemente innocuo: al momento della scansione con l'antivirus, sarà proprio la parte sostituita a essere esaminata, mentre la parte infetta resterà al sicuro, nascosta dietro di essa. L'antivirus non la vedrà, perché le parti di codice che riconosce come virus gli sono state nascoste, ricoperte da un codice che, invece, non può identificare.
Un crypter è un programma che carica al proprio interno il file infetto, ne preleva il codice, lo maschera con una serie di processi di crittografia, per renderlo irriconoscibile e, alla fine, produce un file infetto che potrà risultato UD (undetectable, ossia irriconoscibile per buona parte degli antivirus), oppure FUD (fully undetectable, ossia irriconoscibile per tutti gli antivirus). Come è facile capire, al cuore di ogni crypter ci sono proprio i processi di crittografia a cui sottoporrà il virus, per mascherarlo: i vari crypter esistenti si distinguono proprio in base alla crittografia utilizzata, alla potenza del sistema e così via. I dati di crittografia si trovano all'interno di un particolare file del crypter, chiamato stub.Lo stub, in pratica, contiene la maschera che sarà utilizzata per nascondere il codice del virus e ha di solito una vita piuttosto breve. Uno stub resiste fino a quando un antivirus non impara a riconoscere il virus mascherato: a quel punto, anche il codice usato dallo stub sarà etichettato come virus e non sarà più possibile usarlo per mascherare con successo un virus. Come molto spesso accade in campo informatico, è un continuo gioco di guardie e ladri tra le case produttrici di antivirus e i creatori di virus. Gli antivirus, a mano a mano, imparano a riconoscere gli stub, ossia il codice usato per mascherare i virus, e i creatori di virus devono di continuo produrre nuovi stub, ossia nuove combinazioni crittografiche per mascherare i virus.Il procedimento è il seguente:
  1. Si parte da un virus.
  2. Il crypter protegge il virus con la crittografia, per renderlo illeggibile agli antivirus.
  3. Il crypter prende il virus crittografato e lo inserisce nel fondo dello stub, che è pronto per essere inserito in un programma o distribuito in altri modi.
  4. L'antivirus, in una scansione, controllerà lo stub e vedrà solo un file pulito, perché il virus è nascosto e crittografato al suo interno.
  5. Quando la vittima esegue il programma che contiene lo stub, lo stub estrae il virus, lo decritta e lo salva in una cartella del computer della vittima.
  6. Il virus ha infettato il computer della vittima, senza che l'antivirus lo potesse trovare.

Come difendersi?Non c'è un sistema unico e garantito per difendersi. Se un virus è nascosto a regola d'arte con un buon crypter (ed è quindi FUD), allora per i primi giorni dopo la sua creazione sarà invisibile a ogni antivirus. C'è la possibilità, però, che non sia completamente introvabile, ma che alcuni antivirus riescano a trovarlo (e allora è UD): se abbiamo un file sospetto, è bene sottoporlo a una scansione con più antivirus, usando per esempio il sito Novirusthanks, già citato.La soluzione migliore, però, è sempre la prevenzione. I file a più alto rischio sono sempre le crack per videogiochi, programmi e altro: in molti casi conterranno un virus, spesso un trojan. Se possibile, meglio non scaricarle, soprattutto da Torrent o altre fonti inaffidabili. Se proprio dobbiamo, allora controlliamole con il nostro antivirus e con un sito come Novirusthanks, come già detto. Meglio ancora, aspettiamo qualche giorno e poi controlliamole con gli antivirus: come detto, i crypter hanno vita breve ed è raro che uno stub possa rimanere nascosto a tutti gli antivirus per più di una settimana. Se abbiamo un po' di pazienza, qualche casa di antivirus lo localizzerà e potremo quindi salvarci da una infezione.

Ritornare alla prima pagina di Logo Paperblog