Domanda:
Mi sono imbattuto accidentalmente nel codice sorgente di alcuni malware, cosa fare?
user67447
2015-09-03 20:36:07 UTC
view on stackexchange narkive permalink

Sono andato accidentalmente, l'altro giorno, su un sito losco e oggi ho scoperto che nella mia cache c'era un file di testo. E dopo aver letto il contenuto del file, ho dedotto che è il codice sorgente di un malware potenzialmente nuovo che sfrutta una vulnerabilità in un programma di sicurezza.

Ora voglio inviarlo al mio antivirus fornitore, tuttavia, lo invio come file di testo (poiché dovrebbero compilarlo per ottenere una firma antivirus e non so quanto sia automatizzato il processo), o dovrei inserirlo nel mio IDE, crearlo e poi inviare loro la versione compilata, o come dovrei inviarglielo? Nel modo più sicuro e responsabile che sia.

Comprimi il file prima di inviarlo (con `zip`), questo disattiverà il virus.
Qual è il modo corretto per inviare potenziali nuovi virus secondo il tuo fornitore di antivirus? La domanda è probabilmente la migliore risposta da loro.
* dovrei inserirlo nel mio IDE, crearlo * ** non farlo, almeno non sulla tua macchina personale **. Anche il codice sorgente potrebbe avere qualcosa per sfruttare i bug negli IDE o nei compilatori.
@NeilSmithline: Non dicono davvero nulla ... Hanno solo bisogno di un eseguibile e non solo del codice sorgente ...
@AndréBorie: Dopo un'attenta analisi del codice sorgente, sembra che non sfrutti alcun bug nel mio IDE o nei compilatori. E se lo compilo e poi lo invio, ma lo faccio in una VM?
Anche le VM @ParanoidPanda non sono sicure al 100% (l'unica cosa sicura è un vuoto d'aria completo), ma supponendo che tu legga la fonte e non trovi cose strane, direi che è sicuro compilarlo. Ma compilare ciecamente un pezzo di codice non attendibile prima di esaminarlo è pericoloso.
@AndréBorie: Sì, capisco, quindi se sono sicuro che sia sicuro da compilare, dovrei semplicemente farlo e inviare la versione compilata al mio fornitore AV? Il processo di compilazione non inserirà nessuno dei dettagli del mio computer da nessuna parte nel sorgente compilato, vero? Ma forse dovrei solo menzionare al venditore di AV che l'ho ricompilato.
@AndréBorie: Ok, grazie, non c'è un vero altro modo per contattarli, ma lo scoprirò. Ma puoi pubblicarlo come risposta, per favore, in modo che io possa accettarlo.
Il venditore di AV avrà probabilmente un dipartimento di ricerca con il proprio feed Twitter. Potresti semplicemente pingarli usando quello.
`Dopo un'attenta analisi del codice sorgente, sembra che non sfrutti alcun bug nel mio IDE o nei compilatori. Eh? Come puoi esserne così sicuro?
@deviantfan: Poiché il linguaggio in cui è scritto è uno che conosco molto bene, e anche il malware non è così grande, il problema che sfrutta non richiede migliaia di righe di codice. L'ho anche eseguito in un ambiente sandbox.
@ParanoidPanda Per ripetere, non intendevamo ciò che il malware fa da solo, ma la possibilità che il compilatore faccia qualcosa di inaspettato durante la compilazione. L'attivazione di bug nel software non richiede file di grandi dimensioni. Un solo bit potrebbe essere sufficiente. Finché non studi anche il codice del compilatore, non puoi sapere cosa accadrà con determinati input. (E per ogni lingua principale, rivedere il codice del compilatore con sufficiente precisione è molto per una persona)
@deviantfan Sarebbe solo un modello di business di nicchia estremo per un autore di malware produrre codice sorgente che attacca uno specifico IDE / compilatore - qualcosa che non è necessariamente diffuso - e lo fa tramite codice sorgente che viene scaricato accidentalmente nella cache.
Quindi almeno l '* exploit * utilizzato nel codice è noto? In caso contrario, contattare il fornitore del sistema operativo (o qualsiasi altra cosa) o CVE
@HagenvonEitzen: Il fornitore è a conoscenza del problema, ma in realtà non sta facendo nulla per correggerlo.
@HagenvonEitzen D'accordo, è improbabile. Volevo solo chiarire alcune cose su ciò che ha detto AndréBorie, perché a quanto pare OP aveva un'idea sbagliata di come funzionano le cose.
Sono diventato incuriosito dopo tutte queste chiacchiere su questo codice. Forse potresti condividere il campione? (dopo un po 'di tempo, le firme vengono aggiunte agli AV, forse).
@HagenvonEitzen: ancora meglio, lo hanno fatto tramite codice sorgente * per un exploit non correlato di qualche falla di sicurezza *, quando presumibilmente avrebbero potuto inserire questo exploit subdolo del compilatore in codice che ha fatto qualcosa di utile, come rispondere a una domanda su StackOverflow relativa a quel linguaggio. Ovviamente hanno un acuto senso dell'ironia, dal momento che hanno scritto malware che prende di mira selettivamente gli sviluppatori di software interessati agli exploit di sicurezza che si aggirano nella cache del browser :-)
Non avresti bisogno di compilarlo. Se ipoteticamente il fornitore di AV desidera compilarlo per creare una firma di qualche tipo, sarà in grado di farlo da solo. Il codice sorgente è comunque molto più prezioso per loro rispetto al codice compilato.
C'è il rischio di essere accusati di essere l'autore del malware se sei l'unica fonte nota di un eseguibile e puoi essere trovato con il codice sorgente sulla tua macchina?
@Rikki: Beh, il fatto che mi sia imbattuto nel malware mostra chiaramente che non sono l'unico con esso e che non ce l'ho fatta ... Perché se l'avessi fatto, perché avrei dovuto dire alla gente che l'ho trovato e non l'avevi mai visto prima? Se fossi stato il suo autore, perché mai avrei dovuto annunciarlo qui e poi inviarlo a molti AV? Non mi sembra logico perché qualcuno con cattive intenzioni lo faccia ...
Sono abbastanza sicuro che qualsiasi codice sorgente in cui inciampi è probabile che sia noto o semplicemente spazzatura.
Cinque risposte:
André Borie
2015-09-03 22:45:52 UTC
view on stackexchange narkive permalink

Temo che il tuo file binario compilato differisca molto dal malware effettivo che può essere trovato in natura. Diversi compilatori e flag della riga di comando produrranno file binari completamente diversi e il binario del malware può essere ulteriormente ottimizzato / offuscato utilizzando strumenti aggiuntivi o anche manualmente.

L'invio del file binario compilato è probabilmente controproducente sprecherà solo il tempo di tutti. Invece, se non puoi inviare direttamente il file del codice sorgente (perché il loro modulo richiede un binario, ecc.), Prova a metterti in contatto con un essere umano e fornisci loro la fonte.

Come sviluppatore, non è possibile che non vogliano il codice sorgente! Soprattutto se il codice sorgente ha commenti, ma anche senza, questo è comunque molto utile.
Steve Jessop
2015-09-04 07:21:20 UTC
view on stackexchange narkive permalink

dovrei inserirlo nel mio IDE, compilarlo e poi inviare loro la versione compilata

Non è una buona opzione. A meno che non ci sia qualche motivo per credere che l'autore del malware e voi abbiate un ambiente di sviluppo in comune a cui il fornitore di AV non può ragionevolmente accedere, il fornitore di AV può farlo da solo e lo farà se pensa che potrebbe aiutare. È molto probabile che possano fare un lavoro migliore nel considerare la domanda "come potrebbe essere il malware rilasciato e come possiamo rilevare l'intera varietà di malware che probabilmente vedremo attaccare questo difetto?" di quanto puoi, perché è esattamente nella loro linea di lavoro.

Considera: che nelle tue mani, dal momento che non sei malizioso, questo diventa una prova di codice di exploit concettuale. Potrebbe essere stato inteso come malware e non hai scoperto tu stesso il difetto, ma tralasciando i dettagli di merito e priorità, sei praticamente nella stessa posizione riguardo alla divulgazione in cui ti trovi se avessi scoperto tu stesso il difetto e scritto questo codice per dimostrarlo sfruttabile.

Almeno dovresti:

  • Cerca per brevi sezioni riconoscibili del codice online per assicurarsi che questo codice sorgente specifico non sia già pubblicato. So che hai dedotto diversamente, ma non riesco a scrollarmi di dosso la fastidiosa sensazione che forse questo è codice di exploit proof of concept e non malware.

  • Esegui il processo di divulgazione dei difetti del fornitore del "programma di sicurezza" sfruttato da questo codice. Se non hanno una procedura, invia un'e-mail o contattali in altro modo e chiedi. Fai tutto il possibile all'interno di questo processo per trasmettere la tua conclusione che un exploit funzionante per il difetto è già in circolazione.

  • Se non si ottiene una risposta soddisfacente, rivolgersi a uno o più fornitori di AV. Scopri in che modo il fornitore scelto preferisce ricevere richieste di malware o utilizza un elenco esistente di dettagli di contatto. Poiché questo è un caso alquanto insolito, in quanto hai una sorgente da inviare piuttosto che un file binario dannoso, ti consiglio di appoggiarti a qualsiasi cosa che sembri che potrebbe esserci un essere umano dall'altra parte.

  • Non concentrarti solo sull'AV che usi: se riesci a persuadere qualsiasi (importante) fornitore di AV a riconoscere il problema, altri, incluso il tuo, seguiranno. I fornitori di AV più grandi sono anche in una posizione migliore per convincere il fornitore del software difettoso a fare qualcosa al riguardo piuttosto che, senza offesa per te, una persona a caso. Se riesci a identificare dalla stampa i ricercatori della sicurezza che hanno precedentemente scoperto difetti nello stesso software o software dello stesso fornitore, includili nell'elenco delle persone da contattare. Hanno già affrontato il processo di divulgazione che non è riuscito a soddisfarti.

  • Se ancora non ottiene una risposta soddisfacente, come ultima risorsa assoluta, invia una versione binaria compilata [* ] del sospetto malware come sopra, e spero che la loro routine per i binari inviati funzioni meglio di quanto non facessero con il codice sorgente.

[*] hai già compilato esso, quindi la nave ha navigato sulla preoccupazione che potrebbe sfruttare il tuo compilatore oltre che essere codice per sfruttare questo programma di sicurezza. Del resto, potrebbe sfruttare il tuo editor di testo e l'hai già visto con quello. potrebbe sfruttare il tuo stack di rete e l'hai già scaricato. Questa è la vita.

Si noti che l'ambiente può essere riprodotto all'interno di una macchina virtuale, con la scheda di rete disabilitata. Questo aiuterà a prevenire l'infezione della tua macchina * reale *. Perché ho detto "aiutare a prevenire" invece di "prevenire"? Bene, il codice del virus sarà ancora nella RAM ** reale ** e può far esplodere il software della macchina virtuale per scrivere al di fuori dello spazio degli indirizzi RAM in sandbox e infettare il tuo computer in generale.
tylerl
2015-09-03 22:07:21 UTC
view on stackexchange narkive permalink

La soluzione più comune per gestire i file malware è comprimerli (ad esempio in un file zip). Tuttavia, poiché molti strumenti AV ora guardano all'interno degli archivi, potrebbe essere necessario contrastare i tentativi di ispezione automatica: la soluzione più semplice è semplicemente inserire una password nel file zip (che crittografa i contenuti).

Come una regola, la password viene distribuita insieme al campione di malware, poiché stai cercando di impedire che venga aperta dalle macchine, ma non dagli esseri umani. Spesso la password sarà una sorta di testo di avviso, come "malware" o "questo è un virus" o qualcosa del genere, in modo da rendere assolutamente chiaro a tutti gli esseri umani che i contenuti potrebbero essere dannosi.

Ebbene, il motivo per cui ho un problema con l'ispezione automatizzata è che potrebbe chiudere un occhio su qualcosa che non può eseguire, ma non ho problemi a guardarlo. Il mio vero problema è che non so come portarlo nell'AV, immagino che dovrei semplicemente costruirlo e inviarlo però ...
In realtà, se il codice viene rilevato come dannoso dalle macchine, allora in questa circostanza è una * vittoria *. Fare in modo che AV lo rilevi è una parte importante dell'obiettivo di inviarlo a un fornitore AV, quindi se lo fa già, allora fantastico ...
@paranoidpanda sono piuttosto brillanti e possono capirlo. Fanno letteralmente queste cose ogni giorno. Una firma binaria è comunque meno preziosa del sorgente, poiché il codice sta diventando bravo a nascondere la sua firma. Se hanno la fonte, possono generare firme più utili.
Ángel
2015-09-04 04:06:48 UTC
view on stackexchange narkive permalink

Non so quale sia il fornitore di AV a cui desideri inviarlo (in realtà, non sono sicuro del motivo per cui vorresti limitare la tua presentazione a un singolo fornitore di AV)

quello che devi fare è contattare il venditore AV. Avranno alcune e-mail / mailing list / forum / chat… disponibili. Spiega che hai un codice sorgente dannoso e desideri inviarglielo. Il tuo problema è portare il file a un essere umano (supponendo che nessuno possa mai dare un'occhiata ai binari non eseguibili che gli vengono inviati, il che sembra un errore da parte loro), -oppure, a volte, al dipartimento giusto-, che quindi assicurati che arrivi alla persona giusta.

Tieni presente che il codice sorgente che hai trovato potrebbe non essere dannoso, i loro analisti sono troppo occupati per elaborare il tuo campione (ma assicurati che lo manterrà archiviato solo nel caso sia utile in futuro), o la società di AV potrebbe anche non preoccuparsi (non ha l'obbligo di esaminare i tuoi invii, dopotutto).

L'OP dice che l'exploit è per un programma di sicurezza specifico, il problema è inviare il codice a quel fornitore.
@schroeder non è chiaro per me che il programma di sicurezza interessato provenga dal suo fornitore AV. Non ho pensato a questa possibilità fino a dopo il tuo commento. Ma dato che dice che «Il venditore è a conoscenza del problema», penso che abbia già contattato quel venditore di _software_ (che lo ha ignorato) e ora sta cercando di contattare il suo venditore di _antivirus_.
VirusTotal sarebbe un posto in cui inviarlo. Lo direbbe se i fornitori di AV lo sapessero già.
@HexTitan: Ho provato a inviare il file di testo e un binario compilato (che ho compilato) a VirusTotal, tuttavia tutti gli AV hanno detto che entrambi erano sicuri, ma forse come è stato detto, la mia versione compilata potrebbe essere molto diversa dal malware effettivo nel selvaggio.
@ParanoidPanda Abbastanza giusto. :)
Robbyn M
2015-09-08 09:40:31 UTC
view on stackexchange narkive permalink

Se si utilizza Avast AntiVirus, una volta aperta l'interfaccia utente, dovrebbero essere presenti le informazioni di contatto da qualche parte. Anche un appassionato di posta elettronica andrà bene. Basta copiare e incollare e inviarlo. In un modo o nell'altro un dipendente lo invierà dove deve andare.
Ora, per una misura di sicurezza, nel caso in cui il malware facesse qualcosa "dietro le quinte", è una buona idea eseguire una scansione all'avvio. (Un'opzione disponibile nella maggior parte degli AV).



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...