Latest news

Windows PowerShell: 6 pratici consigli per incrementare la sicurezza

Una delle tecniche più usate da chi minaccia la sicurezza delle reti informatiche è quella di usare degli strumenti legali e comunemente usati. Per proteggersi molte aziende puntano a formare i propri dipendenti tramite corsi specifici.

Gli attaccanti scelgono questi strumenti perché in grado di bypassare più comodamente le difese: la probabilità che queste minacce vengano rilevate, infatti, è molto più bassa rispetto ad altri strumenti che potrebbero innescare l’analisi e i controlli di sicurezza.

PowerShell è spesso sfruttato per veicolare attacchi malware, un esempio è dato da Petya, una famiglia di malware che ha colpito l’Europa prima nel 2016 poi di nuovo nel 2017 con la seconda variante NotPetya.

In questo articolo vedremo una panoramica su Microsoft PowerShell, e su come usare questo strumento per combattere gli attacchi che sfruttano PowerShell come minaccia. Nello specifico vedremo:

  • Cos’è PowerShell?
  • Perché usare PowerShell?
  • Come sfruttare PowerShell per aumentare la tua sicurezza
Windows PowerShell: 6 pratici consigli per incrementare la sicurezza

Cos’è PowerShell?

Microsoft PowerShell è un linguaggio di scripting e una soluzione multipiattaforma che permette di automatizzare delle attività ed è capace di semplificare la gestione del sistema. Si può eseguire su Windows, Linux e macOS ed è capace di sfruttare tutta la potenza di Microsoft. Infatti, a differenza delle altre shell, PowerShell accetta e restituisce oggetti .NET, ovvero degli oggetti ricchi di informazioni e capaci di integrare moltissimi set di funzioni utili a controllare gli ambienti di Windows.

Il linguaggio di scripting di PowerShell viene solitamente usato per gestire ed automatizzare i sistemi ed è basato su .NET Common Language Runtime (CLR).

Perché usare PowerShell?

Come detto in precedenza, PowerShell in passato è stato largamente usato per effettuare attacchi informatici, questo perché PowerShell è capace di integrarsi con framework .NET, che permette di manipolare il bersaglio in vari modi.

Le caratteristiche che rendono PowerShell uno strumento interessante agli occhi di effettua queste minacce sono molteplici, tra le varie troviamo:

  • L’accesso semplificato alle prese di rete
  • La costruzione di binari potenzialmente dannosi in memoria
  • La possibilità di fare un accesso diretto all’interfaccia di programmazione delle applicazioni Win 32 (API)
  • Un’interfaccia chiara e semplice grazie alla strumentazione gestione Windows (WMI)
  • Un ambiente di scripting potente
  • La possibilità di effettuare chiamate dinamiche con il metodo runtime
  • Un accesso facile alle librerie di crittografia, ad esempio IPSec
  • La possibilità di agganciare un codice gestito
  • Facili associazioni a Component Object Model (COM)

Esistono molti altri strumenti di attacco che permettono un agente post-sfruttamento basato su comunicazioni crittografiche, a titolo di esempio troviamo: la piattaforma Nishang, PowerSploit e PowerShell Empire. Tutti questi strumenti hanno la possibilità di essere impiegati per effettuare molteplici tecniche offensive.

PowerShell ha la caratteristica che può essere programmata in vari modi; grazie alle sue capacità fornisce strumenti e tecniche che consentono un’alta furtività e una grande capacità di evitare i controlli di sicurezza e le contromisure più comuni.

Windows PowerShell: 6 pratici consigli per incrementare la sicurezza

Come sfruttare PowerShell per aumentare la tua sicurezza

Ci sono organizzazioni che richiedono l’utilizzo di PowerShell, per questo non sempre si ha la possibilità di rimuoverlo o disabilitarlo. PowerShell continua ad essere uno degli strumenti offensivi più utilizzati in quanto è un potente ambiente di scripting, permette un accesso diretto alle API Win32 e c’è una mancanza di sicurezza. Viste queste caratteristiche unite al fatto che non sempre è possibile disabilitarlo, è necessario capire come sfruttarlo al meglio per proteggersi dagli attacchi.

Ci sono 6 azioni da seguire per utilizzare PowerShell in maniera efficiente che permettono di aumentare la sicurezza:

La modalità di linguaggio vincolato

Questa modalità permette di proteggere gli elementi del linguaggio sensibili limitandone l’accesso. Si usa questa tecnica per evitare che quegli elementi siano utilizzati per eseguire API di Windows. La modalità di linguaggio vincolato di PowerShell dovrebbe essere applicata a tutta la tipologia di utenti che hanno bisogno di accedere a PowerShell per svolgere le loro mansioni quotidiane.

PowerShell con Applocker, Device Guard e Windows Defender Application Control

È possibile integrare in PowerShell delle applicazioni come Applocker che permettono di verificare lo script e incrementare il livello di sicurezza nella fase precedente all’avvio di uno script. Applocker analizza il file di script e lo valuta secondo dei criteri che se rispettati lo rendono idoneo all’esecuzione.

Grazie a Windows Defender Application Control (WDAC) invece, si è in grado di controllare le applicazioni e controllare se alcuni specifici componenti aggiuntivi o plug-in hanno la possibilità di essere eseguiti da applicazioni specifiche.

Accesso delle attività di PowerShell

Uno strumento di controllo sicurezza molto utile è il controllo degli accessi (logging) alle attività di PowerShell. I principali componenti di accesso di PowerShell sono:

  • Transcript Logging:
    • Abilitare l’attivazione dell’impostazione PowerShell Transcription Group Policy
    • HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\PowerShell\Transcription
  • Scriptblock Logging:
    • Event Tracing per Windows (ETW) Microsoft-Windows-PowerShell\Operational
    • Event ID 4104
    • Abilitare l’attivazione dell’impostazione PowerShell Script Block Logging Group Policy
    • HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging
    • Scriptblock Logging mostra cosa è stato eseguito
  • Protected Event Logging
    • Protected Event Logging consente alle applicazioni di crittografare i dati sensibili mentre vengono scritti nel registro eventi.
    • Abilitare l’attivazione dell’impostazione Enable Protected Event Logging Group Policy
  • Module Logging
    • Abilita l’impostazione Module Logging Group Policy

Rimuovi PowerShell V.2

Rimuovere la vecchia versione di PowerShell è un’azione da fare assolutamente per eliminare tutti gli svantaggi sulla sicurezza che porta con sé.

Just Enough Administration – JEA

La tecnologia di protezione JEA – Just Enough Administration rappresenta uno strumento di controllo utile all’amministrazione dei server che opera tramite Windows PowerShell Remoting. Lo fa attraverso una sessione remota sandbox PowerShell studiata per limitare le azioni dell’utente connesso.

JEA di base è impostato per bloccare gli eseguibili, salvo che l’esecuzione non viene esplicitamente consentita.

Altri miglioramenti per la sicurezza

  • Anti-Malware Scan Interface (AMSI): nel contesto di sicurezza basata su Windows PowerShell, AMSI rappresenta uno strumento fondamentale che consente di affrontare le sfide quotidiane che altri metodi di protezione potrebbero non rilevare:
    • Offuscamento del codice
    • Codice in esecuzione direttamente in memoria senza caricarlo da un disco
    • La possibilità di utilizzare diverse applicazioni host
  • PowerShell Desired State Configuration (DSC): il suo obiettivo principale è quello di automatizzare l’aggiunta di configurazioni personalizzate. Consente inoltre di modificare le disposizioni di sicurezza facenti parte della configurazione standard del computer.
  • Endpoint Detection e Reponse (EDR): uno strumento che sfrutta le capacità dell’intelligenza artificiale di rilevazione avanzata. Le soluzioni moderne di EDR sembrano essere molto efficaci contro la maggior parte degli attacchi su PowerShell.
Windows PowerShell

Ancora dubbi su come proteggere i tuoi sistemi? 

L’esperienza del personale tecnico di Nexsys ti aiuterà a garantire la sicurezza degli endpoint e non solo. Sfruttando in combinazione le potenzialità della piattaforma Cybereason  e le conoscenze dei nostri tecnici potrai proteggere nel migliore dei modi i tuoi server ed endpoint.

Nexsys in aggiunta, propone un corso specialistico studiato per apprendere le tecniche di attacco e difesa delle infrastrutture Active Directory.

Per avere maggiori informazioni su Cybereason e per scoprire tutti i corsi proposti, non esitare a contattarci o a chiamare al numero  +39 0452456669 per una consulenza tecnica. Scopri le aziende che hanno scelto i nostri corsi e che si affidano alla nostra esperienza.

Hai bisogno di maggiori informazioni?

I nostri esperti IT sapranno certamente aiutarti!