Ok, salto l'uso sbagliato del termine hacker qui.
Quale linguaggio usano i cracker, i cybercriminali e gli esperti di sicurezza informatica?
Tutto ciò di cui hanno bisogno per risolvere il compito. Di solito scelgono almeno un linguaggio per i tre livelli di programmazione 1) livello applicazione 2) livello sistema e implementazione 3) livello hardware.
Inoltre stanno imparando ad usare l'ambiente di sistema, con debugger, editor esadecimali e disassemblatori come Radare2 e tutto il resto. Usano i linguaggi che danno loro il massimo rendimento e che possono anche inviare in rete per lavorare su diversi sistemi target.
Quindi naturalmente il primo linguaggio che imparano è il C. Il secondo linguaggio che imparano è l'Assembler, almeno quello per il loro sistema target. Non si può andare in profondità senza di esso. Poi scelgono un linguaggio dinamico, alcune persone suggeriscono Python, ma questo linguaggio è davvero pessimo in questo, perché ha un prezzo enorme, è fottutamente lento, fottutamente gonfio e non compete davvero con LuaJIT in nessun campo di questa applicazione.
Così i primi malware sono là fuori, che stanno effettivamente lavorando con Lua, non Python. Python è più il tipico linguaggio da calcolatrice tascabile che molti dei recenti studenti hanno imparato.
Ma non lo rendo un buon linguaggio per questo scopo, sì lo so, Metasploit e così via. È troppo gonfio.
Malware Lua, due esempi importanti tra i tanti:
Flame (malware) - Wikipedia
MMD-0057-2016 - Linux/LuaBot - IoT botnet as service
E stanno arrivando e arrivando ora, perché ha senso.
Se stai facendo software worm, ha anche senso imparare a programmare Perl, perché è un linguaggio di scripting che è disponibile fin dall'inizio su qualsiasi sistema target conosciuto basato su Linux. Come i compilatori C di solito ci sono e almeno un assemblatore.
Lua non ha bisogno di essere sul sistema di destinazione, è così piccolo che puoi portarlo con te, collegato staticamente. Le implementazioni più piccole sono solo 120 kb di dimensione che è più piccola di qualsiasi altra cosa di HLL. LuaJIT ha un po' più di carne su di esso con 400 kb, ma ancora è minuscolo.
Dovresti conoscere il sistema da dentro e fuori e come funziona, con questo devi essere fluente con Assembly, C, Lua, Perl, Awk, Grep, Gdb, Radare2, Make e tutti gli altri strumenti di sviluppo, la tua shell Linux media, la tua libc media, POSIX e se hai intenzione di rompere sistemi Windows, non c'è proprio arte.
Prendi il bambino medio della scuola, dagli un po' di Metasploit e l'accesso al forum dove può copiare e incollare e sei a posto. Rompere Windows non è un'arte, quella merda è rotta di default. Ora ci sono dodici nuovi malware fuori ogni minuto su quella piattaforma.
È così mal mantenuto e protetto che c'è in realtà un'industria che si sta evolvendo sui kit di costruzione del malware, dove basta mettere insieme alcune parti del malware personalizzato che si vuole costruire, compilarlo ed essere fatto. E questi kit non si rompono dopo una settimana che entrano nel mercato, rimangono sul mercato per anni.
Quindi, gli "hacker" sono pragmatici. Hanno appena scelto i linguaggi che danno più bang for the buck, sono pigri, fanno ciò che richiede il minimo sforzo, sono efficienti, un piccolo malware non viene rilevato, cercano di fare il più possibile nel minor numero di codice possibile.
Inoltre Lua è un codice molto complesso e non facilmente rilevabile.
Immagino sia per questo che così tanti di loro stanno usando quella roba ultimamente. Ed è la ragione per cui ho iniziato a scavare in questo linguaggio e questo linguaggio ha ottenuto il mio pieno rispetto. Beh, ci sono dentro da un bel po' di tempo, ad essere onesti. Ma non così a lungo come vorrei. Vorrei averlo scoperto prima, mi avrebbe aiutato a saltare Python.
Voglio dire, Lua per i malware. Solo un pensiero aggiuntivo.
Di solito si va a scansionare il software, giusto? Giusto. Ma Lua non esiste direttamente prima di essere eseguito. Non puoi fare la scansione delle chiamate o dei marcatori specifici, è un codice completamente polimorfo e criptato. Non puoi vederlo. Non lo vedi arrivare.
Addio Reverse Engineering: "Bruder-Schwester" https://www.quora.com/I-have...
Letteralmente non puoi vederlo e non c'è modo di rilevarlo, perché è codice nascosto, nascosto ovunque, dappertutto.
Puoi scrivere codice che viene sbloccato su certe notizie mainstream. Se alcune parole appaiono lì. Diciamo una città o una persona o qualche grande evento che verrà.
Non si può bloccare, non si può chiudere il notiziario e non si sa quale tipo di messaggio attiverà il codice. Non si vede nemmeno il codice, si vedono solo cose confuse. E questo forse non è solo un programma, può nasconderne molti. Programmi che ricaricano roba dappertutto.
Questo è "Bruder-Schwester", una delle cose veramente cattive che abbiamo pensato nel nostro VTC Virus Test Center all'Università di Amburgo nei primi anni '90. E che è stato nascosto per circa 25 anni. E ho deciso di pubblicarlo. Il mio professore ha optato contro e così è rimasto nascosto.
Non era uno scienziato che credeva nel potere di pulizia dello scrutinio, il potere della scienza e del metodo scientifico per arrivare in tempo a quel problema. Invece ora è successo nell'oscurità e non ci troviamo di fronte a qualche piccolo software che fa il baby stepping, che è solo fastidioso e che avremmo potuto mettere sotto controllo.
Ora abbiamo una piaga che farà crashare i nostri sistemi. Una placca che si è evoluta nelle trincee di questa guerra, tra i giovani sistemi seduti lì, sgranati e come nella prima guerra mondiale questa placca sta arrivando su di noi, ora. Perché il malware ha avuto il tempo di evolversi, di pianificare questo attacco, noi non abbiamo un angolo per contrastarlo.
E per questo gli hacker usano sempre più Lua e altri HLL. La nuova generazione sta arrivando, e mentre ho promesso di non pubblicare mai quello che abbiamo lavorato, posso dirvi che ci sono cose molto peggiori come questa in arrivo.
E sono in grado di combinare i loro poteri con quello che c'è già. Codice polimorfico? Sì, l'abbiamo già visto, può diventare peggio, molto peggio.