Discussione Il concetto di sandbox, macchina virtuale, e quanto sono importanti (per utenti non esperti)

Stato
Discussione chiusa ad ulteriori risposte.

Netcat

Utente Jade
17 Gennaio 2022
455
129
331
691
I miei lavori alla mia versione personale di HackBrowserData, un password cracker di tutto rispetto, scritto originariamente da MoonD4rk, procedono. Ma le mie chiacchiere arrivano a un limite: quel limite è il momento in cui il programma dovrà essere pubblicato. Questo non è da riferirsi solo al mio caso, ma in tutti i casi in cui un software, per qualsiasi OS, viene pubblicizzato, va testato in una sandbox, o in un una macchina virtuale. Specialmente in caso scattino i controversi avvisi degli antivirus, che nella maggior parte dei casi hanno ragione, quando segnalano un file come non sicuro, e lo eliminano.

Ecco perché oggi introduco i concetti di sandbox e di macchina virtuale. Ciascuno di noi, nel 2022, dovrebbe possedere queste risorse nel proprio PC. Noi, in realtà, non possiamo mai sapere cosa fa un dato programma quando viene aperto. Persino i programmi più reputabili presenti nel web, possono nascondere insidie, e non si parla necessariamente di un virus, ma anche di vulnerabilità (bug apparentemente innoqui, ma che aprono le porte agli attaccanti). Eseguendo i programmi in una sandbox, o in una macchina virtuale, ci consente di vedere esattamente quello che fa, e constatare se l'autore del software stava nascondendo qualcosa, oppure era un programma che faceva letteralmente tutt'altro, In Tutta Sicurezza. Questo avviene perché le macchine virtuali sono un ambiente completamente isolato dal nostro dispositivo.

Che differenza c'è fra una sandbox e una macchina virtuale? Qual è il metodo più sicuro per testare un programma sospetto?
Le sandbox possono essere bypassate in realtà. Una sandbox, è un mini-ambiente isolato. Anche alcuni antivirus come Avast incorporano una sandbox. Per me non è efficace, perché c'è ancora una possibilità di evasione. Le macchine virtuali, sono invece un vero e proprio OS installato dentro un altro OS. Se usate le impostazioni predefinite di VirtualBox, ad esempio, sarete sempre al sicuro. Se qualcuno pensa di essere furbo con voi, e vi fa scaricare un malware, voi potrete aprire questo virus in un sistema operativo che avete installato su VirtualBox, e gli effetti nefasti del malware, rimarranno confinati a quell'ambiente. Sembra banale detto così, ma purtroppo non è chiaro per tutti. Più volte sono rimasto vittima di comportamenti ostili, completamente insensati, spesso provenienti da persone che scrivono "compiuter" con la I, perché fa ganzo. Informarsi invece non nuoce mai.

Nel mio caso specifico, ho rilasciato un "leggimi.txt" nel mio programma, che spiega passo dopo passo, come installare una macchina virtuale, e spiega dettagliatamente anche cos'è, cosa fa, e a cosa serve. Il mio programma crasha in due situazioni:

1. Se eseguito in una sandbox;
2. Nell'OS dove viene lanciato, non è mai stata digitata alcuna password;

Per testare in sicurezza: creare una macchina virtuale, e creare un profilo finto da qualche parte. Noterete che la mia utility si propone esclusivamente di recuperare delle password smarrite, può servire anche in casi in cui si abbia perso accesso al proprio cellulare, e si è bloccati con un codice a 6 cifre. I procedimenti sono lunghi e tediosi, ma sei sospettoso? Non scaricare niente da nessuno per rimanere al sicuro allora, anche fidarsi ciecamente del proprio antivirus ha i suoi vantaggi (fino ad un certo punto).
 
Ottimo dibattito, anche io sono pro alle macchine virtuali piuttosto che al sandbox. Vorrei solo farti qualche domanda: in quale linguaggio stai programmando il programma? Quanta esperienza hai? Cosa consiglieresti a qualcuno che vuole intraprendere un progetto importante come quello tuo? Grazie
 
Il progetto originale è in Golang, io lo sto rifacendo in Python (3.9.8 per la versione a 64 bit, e la 2.7.15 per la variante a 32 bit). Nella versione originale tuttavia, non è possibile recuperare codici a 6 cifre, questa è una feature esclusiva del mio progetto, ed è parecchio ambiziosa da aggiungere, anche se sembra una banalità. In questo thread ho già elencato dettagliatamente le caratteristiche del risultato finale (https://www.inforge.net/forum/threa...acking-utility-wesker1998-ft-moond4rk.610840/)

Per rendere meglio l'idea di come mai questo tool fa scattare la detection, posso riferirmi ai vaccini che ci hanno fatto contro il covid.
Non sono un biologo, ma a grandi linee ho capito come funzionvano i vaccini. Nel caso di Moderna, è stato usato come vettore d'inoculazione un virus ad rna, risequenziato e privato della sua carica virale originale, la sua componente nefasta insomma. Questo virus, conteneva istruzioni da "insegnare" alle cellule dell'organismo su come combattere l'infezione del covid. E il nostro organismo ha fornito la risposta più sensata a quando si entra in contatto con un agente patogeno, che sia nefasto o meno, ossia i sintomi influenzali.

Una cosa molto simile a questa accade quando un antivirus sul computer segnala dei file come infetti, quando in realtà questi sono falsi positivi. Sarebbe sufficiente davvero una piccola modifica, e il mio programma può trasformarsi da un utility di recupero delle password ad uno stealer. Per questo non voglio rendere il codice che sto sviluppando disponibile. Accetto delle pull request in privato, relative a bug, o all'aggiunta di nuove feature, ma non sarà mai rilasciato pubblicamente.

Ai piccoli sviluppatori che si cimentano nella programmazione, io consiglio vivamente di riprogrammare in linguaggi differenti dei software di cui il codice è già open source, e di non dedicarsi mai allo sviluppo in completa autonomia di un videogioco o un programma complesso da soli, perché può essere molto stressante. Durante le mie tappe, mi sono scontrato più volte con un terminale che restituisce continuamente errori, non è facile programmare.
 
Se usate le impostazioni predefinite di VirtualBox, ad esempio, sarete *sempre al sicuro.
*Quasi sempre. Faccio questo piccolo appunto perchè anche le Macchine Virtuali possono essere evase. Non in tutti i casi, ovvio, si tratta di specifiche vulnerabilità non alla portata di chiunque che i broker di exploit pagano molto bene (in genere da 80k in su secondo Zerodium), ma come dimostra la storia, è possibile.
Di seguito l'analisi tecnica di un escape da VirtualBox 6.1 di qualche anno fa:
 
Questa versione di virtualbox 6.1 che hai citato è stata deprecata in favore delle versioni più recenti, tenere aggiornate le app serve proprio a questo. Evitare gli exploit.
 
Questa versione di virtualbox 6.1 che hai citato è stata deprecata in favore delle versioni più recenti, tenere aggiornate le app serve proprio a questo. Evitare gli exploit.
Ovviamente, ma ciò non esclude che esistano attuali vulnerabilità non ancora note che permettano di evadere la VM. Ovviamente sono situazioni molto rare, si parla di 0day, ma come ho mostrato sopra l'evasion di una Virtual Machine è già stata fatta in passato, per cui è un attacco fattibile e non solo teorico e, tecnicamente, ancora fattibile.

Ovviamente non è un attacco mainstream, per il 99% delle persone è infattibile, ciò non toglie che però ci possa essere un 1% di possibilità di venir bypassata
 
Ultima modifica:
Veramente cel'ha anche Metasploit un modulo che permette di fare VMachine evasion, ve lo lascio in allegato. A parte quest'exploit, che funziona solo se si ha una versione specifica di Windows e una versione specifica di Virtualbox, non ho davvero niente, e per gli exploit 0day di cui parli o sei più bravo di 20 cervelli clonati di @JunkCoder messi insieme oppure sei sugar daddy che può spendere anche un milione per averli. Io non sto attaccando nessuno qui.
Messaggio unito automaticamente:

Poi per carità, se pensate che vi sto davvero hackerando con sta cazzata basta che disabilitate il 3D acceleration support, si fa dalle impostazioni della VM, o cambiando OS e versione di VB
 

Allegati

  • Untitled888.png
    Untitled888.png
    40.4 KB · Visualizzazioni: 11
Stato
Discussione chiusa ad ulteriori risposte.