Os atacantes sempre buscam formas de evitar a detecção. Visto que a maioria dos produtos de segurança de endpoint lida bem com ataques baseados em arquivos, os scripts são uma ótima maneira para os atacantes evitarem mudanças no disco, logo evitando as capacidades de detecção de ameaça da maioria dos produtos. No panorama de ameaças atual, os scripts oferecem acesso inicial, possibilidade de evasão e facilitam os movimentos laterais pós-infecção. Os atacantes usarão scripts diretamente na máquina ou embutido em um documento do Office ou em um PDF enviado para as vítimas como anexos de e-mail. O artigo a seguir oferece uma visão de como é o panorama das ameaças de script e analisa os métodos de ataque mais comuns.
Ataques cibernéticos baseados em script ganharam popularidade em 2017 e esses ataques cresceram rapidamente em mais de 400%. Diversos grupos de criminosos cibernéticos adotaram o uso de scripts e malwares independentes de arquivos no mesmo período de tempo. Hoje, os ataques baseados em script representam cerca de 40% de todos os ataques cibernéticos, de acordo com o relatório de segurança de endpoint 2020 do Instituto Ponemon. Em 2019 e 2018, a Deep Instinct identificou o aumento na utilização de ataques que não utilizam arquivos. Dentre elas, uma particularmente suspeita foi um aumento no abuso de aplicações legitimas e ferramentas nativas como o PowerShell para movimentação lateral e infecção.
Um script pode ser qualquer coisa desde uma simples sequência de comandos, até linguagens de scripting avançadas que são usadas para configuração de sistemas, automações de tarefa complexas entre outros propósitos. Dentre as linguagens comuns de script estão o VBScrpit, JavaScript e o PowerShell. Ao contrário de outras aplicações que são executadas após serem compiladas na linguagem de máquina, os computadores interpretam os scripts. Nas palavras de Larry Wall, criador da linguagem de script Perl, “um script é o que você dá aos atores, mas o programa é o que você dá a audiência.”
Como os atacantes usam os Scripts
Como qualquer outro tipo de malware, payload e movimento lateral seguem um script que teve êxito em iniciar uma infecção. O payload performa ações designadas pelo atacante como coletar informações, criptografar arquivos ou fazer um backdoor na comunicação. Ao mesmo tempo, o movimento lateral infecta outros computadores na rede.
O uso de scripts da diversas vantagens aos atacantes; os scripts são fáceis de se escrever e executar, triviais de se ofuscar e extremamente polifórmico. Além do mais, os atacantes usam diversos tipos de arquivos script para carregar um ataque, os mais populares sendo o PowerShell, JavaScript, HTA, VBA, VBS e scripts batch. Finalmente, já que os ataques sem arquivo ocorrem na memória, a detecção tradicional de arquivos estáticos se tornam inúteis. Além disso, os scripts complicam a analise pós-eventos já que muitos artefatos relacionados ao ataque existem apenas na memória do computador e podem ser sobrescritas ou removidas através de uma reinicialização por exemplo. Detecção na memória e coleta de artefato é possível através do uso de heurístico e comportamento analítico, que pode detectar atividade maliciosa na memória.
Ataques baseados em script normalmente são executados virtualmente em todos os sistemas Windows, aumentando o potencial de infecção. Uma das desvantagens do ataque de script no entanto é que a não ser que ele seja implementando via uma vulnerabilidade, para o script ser executado, uma interação do usuário será necessária. Por exemplo, na maioria dos casos, o script vem em um arquivo de script em um e-mail que requer uma ação do usuário ou um VBA macro em documento que requer que o usuário habilite macros.
Muitos tipos de Malware, incluindo ransomware, backdoors e os com intuito de roubar dados financeiros fazem uso do script. Por exemplo, um script que faz o download de um arquivo PE pode salvá-lo no disco ou executá-lo através da memória, dependendo do nível de sofisticação. O script pode também executar múltiplas ações maliciosas, como coletar informação da vítima, do computador e até a coletar senhas salvas.
Estudando uma amostra completa de ataque, a inteligência de ameaças do Deep Instinct concluiu que 75% dos ataques sem arquivos utilizam scripts (a maioria utiliza um ou mais scripts no PowerShell, HTA, JavaScript) em pelo menos um dos estágios.
Por exemplo, o Helminth Trohan, usado por um grupo iraniano chamado Oilrig, usou os scripts para lógica maliciosa. No ataque, o documento Microsoft Word explorava o CVE-2017-0199 entregando um script HTA executado por um processo do Windows, que executa o HTML executável mshta.exe. Uma vez executado, o script inicia o ataque entregando o Helminth Trojan como arquivos Powershell e VBS.
PowerShell: Uma ferramenta poderosa para o Sysadmin e para o atacante
O PowerShell é um framework usado para gerenciamento da configuração e da automação de tarefas, com linhas de comando shell e linguagem de script. O PowerShell oferece acesso ao Microsoft Windows Management Instrumentation (WMI) e ao Component Object Model (COM), que o tornam uma ferramenta útil e versátil não só para os administradores de sistema automatizarem os gerenciamentos de processo da TI, mas também para os atacantes procurarem uma brecha no sistema.

Os atacantes usam o PowerShell para carregarem malwares direto na memória sem precisar escrevê-los no disco, passando fora do radar de diversos produtos de segurança de endpoint. Os atacantes também usam o PowerShell para automatizar a exfiltração de dados e o processo de infecção usando frameworks como o Metasploit ou o PowerSploit.
Já com outros tipos de ataque, em um ataque baseado em script, a preensão inicial da vítima geralmente ocorre através de um ataque de phishing bem sucedido que contém um dropper, como um PDF, RTF, arquivo Office ou um armazenamento. Na maioria dos casos, o dropper executará um script, ou VBA macro ou algum outro tipo de script como o PowerShell, JavaScript ou o HTA. Em alguns casos, os scripts fazem o download, seja baixando um arquivo PE em algum outro processo, ou fazendo o download de arquivo PE no disco antes de removê-lo, injetando o arquivo PE em outro processo, ou fazendo o download de outro script para iniciar o próximo estágio do ataque. Outras situações mais raras, o script contém um lógica inteiramente maliciosa. Em outros casos, o atacante explora as vulnerabilidades no leitor de documento, como por exemplo o Adobe Acrobat, para instalar a nova fase do ataque. O uso de droppers é generalizado não apenas em ataques de malware baseados em arquivos, incluindo ransomwares conhecidos e campanhas de malware com intuito de obter retorno financeiro.
Um ataque bem conhecido usando esse método é o Cobalt Malware, que usou um dropper de documento explorando o CVE-2017-11882. Quando usuário abre o documento, a vulnerabilidade contida no documento baixará um JavaScript, que então executava diversos scripts PowerShell, o ultimo que incluía DLLs do Cobalt no código do script. Eles então ficavam na memória sem serem levados ao disco. Através do uso dessa vulnerabilidade, os atacantes executavam um ataque sem arquivo, na qual a única ação foi de um usuário abrindo um arquivo com dropper.

Em diversos casos, o PowerShell permite que o atacante ganhe uma vantagem sobre a vítima, já que usar o PowerShell permite que o atacante obtenha permissões e privilégios, realize movimentos laterais no sistema além de interagir com outras aplicações do Windows como Microsoft Exchange.
JavaScript: Um convidado indesejado no seu leitor de PDF
JaacScript é o padrão da linguagem de Script usada em páginas da Web, aplicações web e navegadores. O JavaScript pode manipular e modificar arquivos PDF com objetos implementados, links de página web e muito mais. Apesar de não ser desenhado para ter acesso direto aos arquivos do sistema, a maioria dos ataques em PDF usam o software leitor de PDF para executar código de JavaScript nas máquinas das vítimas. Tanto explorando vulnerabilidade que não foram corrigidas ou usando um recurso dos leitores, as companhias de leitores de PDF e o desenvolvedores de Malware estão em uma caçada interminável.
Scripts adicionais com base nas ameaças
A aplicação HTML (HTA) é um arquivo do Microsoft Windows feito para ser executado no Internet Explorer, que combina o código HTML com scripts suportados pelo Internet Explorer como o VBScript ou o JScript. Os arquivos HTA executam através do motor Microsoft HTA (mshta.exe) que tem os privilégios do usuário local ao invés dos privilégios restritos do Internet Explorer, com acesso ao sistema de arquivos e ao registro.
Arquivos HTA maliciosos permitem os scripts serem executados na máquina com privilégios de usuário local para fazerem o download e abrir executáveis ou outros scripts. Apesar de ser considerado um vetor de ataque antigo, diversos ataques baseados em script continuam a usar arquivos HTA. Esses arquivos podem ser enviados como anexos, ou serem baixados de outro script ou serem redirecionados de sites maliciosos.
O VBScript (Microsoft Visual Basic Scripting Edition) é uma linguagem de Microsoft Scripting baseada no VBA (Visual Basic para aplicações). Ao invés de um desenvolvedor de aplicação completo que o VBA oferece, o VBS oferece um uso mais direto, almejando a automatização de sistemas para administradores. Parecido com o PowerShell, que normalmente é utilizado para usos similares, o VBScript é normalmente visto em ataques baseados em script. O suporte da Microsoft a codificação de script na forma de arquivo VBE é outra razão dos atacantes acharem o VBScript uteis.
Então, eu devo permitir a execução de Scripts na rede da minha organização?
Em ataques baseados em script e em ataques sem arquivos, a lógica maliciosa dos ataques ocorre na memória, tornando a detecção de ameaça com a análise de arquivos estáticos tradicionais insuficiente. Com ataques baseados em scripts na crescente, do PowerShell em particular, torna necessário que as organizações estejam preparada para combater um ataque em que toda a sua sequência ocorra na memória.
Um dos primeiros passos que a organização deve considerar é a segmentação dos empregados em alguns grupos.
- Os que executam scripts como parte do seu trabalho diário
- Quem executa scripts raramente
- Não executam scripts de forma alguma
Uma vez segmentado, as equipes de segurança devem garantir que os scripts só possam ser executados de locais onde apenas a leitura é permitida e acessadas em máquinas especificas. Adicionalmente, as equipes de segurança devem restringir e monitorar o uso interativo do PowerShell através da organização. Adicionalmente, praticar boas maneiras de TI pode limitar a superfície de ataque de uma organização e reduzir o risco associado a ataques baseados em script.
Com todas essas regras implementadas, as organizações devem procurar soluções de segurança especificas que detectem ataques baseados em script enquanto deixa seus usuários que precisam utilizar os scripts nas suas funções no trabalho para que eles o façam sem interrupção. O DeepInstinct possui análise comportamental de script contextual que oferece a capacidade de prevenção de ameaça de script que batem com os requerimentos. Ao contrário de outros métodos de prevenção que limitam o acesso do script apenas pela política, a analise comportamental de script contextual do Deep Instinct analisa o conteúdo do script para identificar ameaças. Com capacidade embutida de identificar comandos e conteúdo de PowerShell maliciosos assim como identificar quando um script executa um processo filho em uma lista de processos pais fechados (como o MS Word, Outlook, etc.) o método hibrido do DeepInstinct de prevenir ameaças baseadas em script entrega o que você precisa para manter uma postura de segurança resiliente.
