{"id":28,"date":"2022-12-31T08:34:01","date_gmt":"2022-12-31T08:34:01","guid":{"rendered":"https:\/\/pietrocornelio-labs.com\/?p=28"},"modified":"2022-12-31T08:44:00","modified_gmt":"2022-12-31T08:44:00","slug":"go-il-linguaggio-di-programmazione-preferito-dai-pirati-informatici","status":"publish","type":"post","link":"https:\/\/pietrocornelio-labs.com\/?p=28","title":{"rendered":"Go: il linguaggio di programmazione preferito dai pirati informatici"},"content":{"rendered":"<p class=\"reader-text-block__paragraph\">Da quando Google ha sviluppato il linguaggio Go per risolvere le mostruose esigenze computazionali di concorrenza ed efficienza nella gestione di migliaia e migliaia di tera byte di informazioni su sistemi distribuiti, io sono stato tra i primi a capirne le potenzialit\u00e0 e a imparare questo linguaggio velocemente e dopo aver scritto alcuni software concorrenti e paralleli per alcuni esigenze di elaborazione dati ne ho subito intravisto le grandi potenzialit\u00e0 per il settore della pirateria informatica per scrivere nuovi e pi\u00f9 sofisticati malware.<\/p>\n<p class=\"reader-text-block__paragraph\">Go \u00e8 un linguaggio di programmazione open source creato da Google nel 2009 e i fondatori del linguaggio sono stati i grandi Rob Pike, Robert Griesemer e Ken Thompson quest\u2019ultimo uno degli hacker e scienziati pi\u00f9 grandi di tutti i tempi.<\/p>\n<p class=\"reader-text-block__paragraph\">Molti sviluppatori professionisti sono entusiasti del linguaggio Go ed affermano esso \u00e8 molto pi\u00f9 facile e semplice di Python sotto molti aspetti, per semplicit\u00e0 non intendo banalit\u00e0 per neofiti bens\u00ec eleganza, coerenza ed efficienza soprattutto nella implementazione degli algoritmi per gestire una concorrenza efficiente e sicura ed un parallelismo di calcolo robusto.<\/p>\n<p class=\"reader-text-block__paragraph\">Sebbene Go sia un linguaggio compilato, a differenza dei linguaggi classici e storici come ad esempio il C e C++, Go pu\u00f2 essere compilato in un singolo binario. Go \u00e8 in grado di collegare staticamente le sue librerie di dipendenze in un singolo file binario, quindi invece di scaricare dalla rete le dipendenze necessarie all&#8217;applicazione \u00e8 possibile caricare in un singolo file eseguibile tutto il necessario per permettere all&#8217;applicazione di funzionare.<\/p>\n<p class=\"reader-text-block__paragraph\">Inoltre, Go mette a disposizione molteplici strumenti di sviluppo e codifica che eliminano il compito di cercare librerie di terze parti, allo stesso tempo Go offre un ambiente di sviluppo integrato all&#8217;avanguardia e snello con strumenti di debug e plug-in avanzati, garantendo cos\u00ec che la velocit\u00e0 di programmazione sia condotta senza ostacoli relativi alle molteplici configurazioni come accade per i linguaggi pi\u00f9 classici.<\/p>\n<p class=\"reader-text-block__paragraph\">La sintassi di Go chiara e senza componenti non necessari consente agli sviluppatori di concentrarsi sullo sviluppo elegante e pulito del codice piuttosto che perdersi nella struttura rigida del linguaggio, questo \u00e8 un ulteriore vantaggio non di poco conto che permette ai pirati informatici di concentrarsi sulle funzionalit\u00e0 creative e stealth nella progettazione di software malware.<\/p>\n<p class=\"reader-text-block__paragraph\">Per questo motivo la comunit\u00e0 di sviluppatori di malware (di cui ho avuto modo di conoscere per studio e analisi sul darkweb da svariati anni), fa uso di Go sempre pi\u00f9 e negli ultimi anni il tasso di utilizzo di Go \u00e8 in costante aumento. Il motivo per cui i pirati informatici utilizzano Go per lo sviluppo di malware \u00e8 dovuto a tutta una serie di ragioni: innanzitutto il linguaggio consente di compilare una applicazione in una singola base di codice per tutti i principali sistemi operativi e piattaforme anche quelle che sfruttano i container come Docker e Kubernetes quest&#8217;ultimi presi di mira da software maligni negli ultimi anni proprio grazie alle innumerevoli capacit\u00e0 di Go.<\/p>\n<p class=\"reader-text-block__paragraph\">E&#8217; possibile sviluppare software capace di infiltrarsi nei sistemi in modalit\u00e0 stealth senza essere rilevati, \u00e8 relativamente pi\u00f9 semplice;il malware scritto in Go \u00e8 solitamente di grandi dimensioni e con opportune accortezze \u00e8 possibile fare in modo che i software antivirus non siamo in grado di eseguire la scansione di file di grandi dimensioni o meglio, durante la scansione di file di grandi dimensioni \u00e8 possibile ingannare l\u2019antivirus con trigger che si auto attivano inserendo codice a run-time di disturbo.<\/p>\n<p class=\"reader-text-block__paragraph\">Inoltre Go grazie al suo ricco ecosistema di librerie semplifica il processo di creazione di malware molto sofisticati capaci di attivarsi con triggers e sensori attivi su specifiche syscall del sistema operativo, questo permette di eludere molte protezioni e\/o parallelamente poter generare \u201cfigli\u201d software capaci di uccidere i processi padre al verificarsi di eventi importanti quindi cambiare vestito per confondere i software di analisi e scansione di malware anche di ultima generazione.<\/p>\n<p class=\"reader-text-block__paragraph\">Altra interessante caratteristica \u00e8 che ogni pirata informatico e hacker di alto livello (che io definisco insanity o pirata hard-core) possiede un poderoso archivio personale di programmi scritti in C, C++, Assembly, etc. per svolgere le funzioni di mascheramento, infezione, caricamento payload, funzioni dormiente, funzione di osservazione attivit\u00e0 utente, elusione di antivirus, etc. il che significa che tale conoscenza profonda e accumulata in anni e anni di esperienza nel saper scrivere software intelligenti e multi-forma pu\u00f2 essere usata senza alcun problema nel codice Go inserendo il codice C o Assembly direttamente nel codice dell\u2019applicazione scritta in Go.<\/p>\n<p class=\"reader-text-block__paragraph\">Tutto questo si traduce in applicazioni malware terribilmente sofisticate difficilmente rilevabili.<\/p>\n<p class=\"reader-text-block__paragraph\">Le applicazioni compilate con Go naturalmente possono essere decompilate per il reverse enginnerging come accade con altri linguaggi come Python o C, per\u00f2 l\u2019eseguibile Go rende pi\u00f9 difficile per i ricercatori analizzare e separare il codice dalle librerie.<\/p>\n<p class=\"reader-text-block__paragraph\">Faccio un esempio, nel 2019 fu scoperto che un malware trojan diverso rivolto a siti di e-commerce scritto in Go difficile da rilevare, oppure la campagna di mining di criptovalute scoperta nel luglio 2019 in cui \u00e8 stato scoperto che il malware Go prendeva di mira anche server basati su GNU\/Linux e fu difficile farne una analisi se non dopo molto tempo di studio. Il malware GoBotKR si \u00e8 diffuso attraverso i siti torrent ed ha permesso agli aggressori di accedere da remoto a moltissimi sistemi rimanendo per sufficiente tempo non rilevabile.<\/p>\n<p class=\"reader-text-block__paragraph\">Sempre nel 2019 il gruppo FancyBear \u00e8 tornato all\u2019attacco con un payload riscritto in Go introducendo una nuova backdoor difficile da rilevare. Ancora, il malware Glupteba \u00e8 stato creato con Go ed \u00e8 stato dotato di un miner di criptovaluta capace di lavorare silentemente sui sistemi infettati senza essere scoperto.<\/p>\n<p class=\"reader-text-block__paragraph\">In luglio 2019 alcuni ricercatori di sicurezza hanno confermato che circa 11.000 dei malware intercettati e studiati erano scritti in Go.<\/p>\n<p class=\"reader-text-block__paragraph\">E\u2019 evidente quindi che le innovative caratteristiche del linguaggio creato da Google sta guadagnando molta popolarit\u00e0 e importanza tra i pirati informatici che sviluppano malware pi\u00f9 sofisticati e creativi di tipo stealth rispetto al passato rendendo pi\u00f9 difficile il rilevamento. Per questo motivo ho sempre affermato che un esperto di sicurezza deve saper sviluppare software in modalit\u00e0 insanity e con grandi capacit\u00e0 di analisi multidisciplinari che non possono essere acquisite e imparate dai tanti corsi cyber che si trovano in giro.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Da quando Google ha sviluppato il linguaggio Go per risolvere le mostruose esigenze computazionali di concorrenza ed efficienza nella gestione di migliaia e migliaia di tera byte di informazioni su sistemi distribuiti, io sono stato tra i primi a capirne le potenzialit\u00e0 e a imparare questo linguaggio velocemente e dopo aver scritto alcuni software concorrenti &#8230; <a title=\"Go: il linguaggio di programmazione preferito dai pirati informatici\" class=\"read-more\" href=\"https:\/\/pietrocornelio-labs.com\/?p=28\" aria-label=\"Per saperne di pi\u00f9 su Go: il linguaggio di programmazione preferito dai pirati informatici\">Leggi tutto<\/a><\/p>\n","protected":false},"author":1,"featured_media":30,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[9,10],"tags":[16,15,17,18],"class_list":["post-28","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-elettronica-informatica","category-linguaggi-programmazione","tag-developing","tag-programming","tag-virus","tag-worm"],"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/pietrocornelio-labs.com\/wp-content\/uploads\/2022\/12\/GoLang.png?fit=1350%2C535&ssl=1","_links":{"self":[{"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/posts\/28","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=28"}],"version-history":[{"count":2,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/posts\/28\/revisions"}],"predecessor-version":[{"id":32,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/posts\/28\/revisions\/32"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/media\/30"}],"wp:attachment":[{"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=28"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}