I malware abbandoneranno mai i server? E quando i server non ci sono? Ecco Denonia, pronto per AWS Lambda

0

E’ inevitabile, e negli anni lo abbiamo visto ripetuto più e più volte, che chi scrive i malware non solo li sviluppa sfruttando generalmente le tecnologie del momento, ma anche avendo queste tecnologie in testa come bersaglio.

Per cui, se prima vedevamo tantissimi malware per sistemi Microsoft e, con il passare degli anni, abbiamo imparato che oramai non sono così rari per i nostri amati sistemi Linux, la “storia” ha visto nascere anche software malevoli pensati per girare su sistemi più specifici, come Kubernetes (giusto per citarne uno tra i più famosi).

Ed ultimamente di quale tecnologia stiamo vedendo un uso crescente, soprattutto nelle realtà medio-piccole? Delle cosiddette tecnologie serverless, come Lambda di AWS, che permettono di eseguire nel cloud le proprie applicazioni non solo evitando di dover gestire i server e gli OS in esecuzione, ma anche demandando al relativo cloud provider la gestione dell’intera infrastruttura (anche software) di erogazione. Io scrivo il codice, Lambda lo esegue on-demand. Come o tramite quale tecnologia questo avvenga, non è più affar mio.

Ed ovviamente chi sono i malware per lasciarsi sfuggire la nuova tipologia di ambiente da sfruttare per i propri scopi? E’ proprio questo che alcuni ricercatori di Cado Security hanno trovato quando hanno scoperto Denonia:

Although this first sample is fairly innocuous in that it only runs cryptomining software, it demonstrates how attackers are using advanced cloud-specific knowledge to exploit complex cloud infrastructure, and is indicative of potential future, more nefarious attacks

Nonostante questo primo esempio è abbastanza innocuo poichè esegue semplicemente un cryptominer, dimostra come gli attaccanti stiano utilizzando alcune conoscenze cloud-specifiche per forzare infrastrutture cloud complesse, ed è indicativo i potenziali attacchi futuri e più nefasti.

Denonia è un binario a 64-bit per Linux scritto in Go e, seppur i ricercatori non abbiano ancora informazioni riguardo come venga distribuito, il sospetto è che credenziali di accesso AWS compromesse siano utilizzate. Perchè il linguaggio Go? Beh, intanto perchè è facilmente ottenibile un binario multipiattaforma ed auto-contenuto (al netto di un eseguibile più grande, i binari Go contengono il software e tutte le librerie necessarie alla loro esecuzione) e, cosa non da poco, è uno dei linguaggi supportati nativamente da AWS Lambda.

Questo malware è chiaramente creato per Lambda poichè è stato notato che contine librerie specifiche per esso (aws-sdk-go e aws-lmbda-go), oltre al fatto che per la sua esecuzione verifica la presenza di variabili di ambiente specifiche di Lambda come LAMBDA_SERVER_PORT e AWS_LAMBDA_RUNTIME_API).

Despite the presence of this, we discovered during dynamic analysis that the sample will happily continue execution outside a Lambda environment […] We suspect this is likely due to Lambda ‘serverless’ environments using Linux under the hood, so the malware believed it was being run in Lambda (after we manually set the required environment variables) despite being run in our sandbox.

Nonostante queste, abbiamo scoperto durante la nostra analisi dinamica che l’esempio si può tranquillamente eseguire anche all’esterno di ambienti Lambda […] Sospettiamo sia possibile perchè l’ambiente “serverless” Lambda utilizzi Linux sotto il cofano, così il malware può credere di essere eseguito all’interno di Lambda (dopo aver manualmente settato le variabili di ambiente richieste) nonostante sia in esecuzione nella nostra sandbox.

Quindi, se ancora non fosse chiaro il concetto che “il cloud è il computer di qualcun altro“, questa ne è ulteriormente una prova: con le giuste variabili di ambiente Denonia può anche essere eseguito su un qualsiasi sistema Linux semplicemente perchè il codice Lambda viene eseguito su Linux.

Sicuramente la scoperta di questo malware apre a tutte una serie di casistiche e possibilità da parte degli attaccanti, che possono scrivere non solo malware che girano su diversi sistemi perchè estremamente portabili, ma anche su intere infrastrutture cloud, il tutto senza modificare una riga di codice e con possibili impatti economici davvero sostanziosi per le malaugurate vittime (immagine un cryptominer su Lambda, ambiente che si paga “a consumo”, a che costo può tradursi in termini di pagamento ad Amazon).

Non possiamo stare tranquilli un attimo, anche quando non abbiamo più i server.

Utente Linux/Unix da più di 20 anni, cerco sempre di condividere il mio know-how; occasionalmente, litigo con lo sviluppatore di Postfix e risolvo piccoli bug in GNOME. Adoro tutto ciò che può essere automatizzato e reso dinamico, l’HA e l’universo container. Autore dal 2011, provo a condividere quei piccoli tips&tricks che migliorano il lavoro e la giornata.