Pesquisadores da ESET descobriram um conjunto de famílias de malware, não documentadas anteriormente, que são implementadas como extensões maliciosas para o software de servidor da web Internet Information Services (IIS). Visando servidores de e-mail do governo e sites que realizam transações de comércio eletrônico, bem como auxiliando na distribuição de malware, essa ameaça opera espionando e manipulando as comunicações do servidor.
Além de fornecer uma análise completa das famílias recentemente descobertas, nosso novo white paper, intitulado "Anatomia do malware IIS nativo", serve como um guia para ajudar a detectar, analisar e mitigar esses tipos de ameaças do lado do servidor. Nesta publicação, resumimos as principais descobertas que descrevemos com mais profundidade neste documento.
Também estamos lançando uma série de postagens que apresentam as famílias de malware para IIS mais notáveis recentemente descobertas, bem como estudos de caso sobre como esse tipo de malware é usado para crimes cibernéticos, espionagem cibernética e fraude do CEO. Além deste artigo no qual apresentamos uma visão geral da pesquisa, você também pode ler o primeiro artigo desta série, intitulado "IIStealer: A server‑side threat to e‑commerce transactions."
Os resultados de nossa pesquisa de malware para IIS foram apresentados pela primeira vez na Black Hat USA 2021 e também serão apresentados na edição 2021 da conferência Virus Bulletin que será realizada no próximo dia 8 de outubro.
O Internet Information Service, também conhecido pela sigla IIS, é o software para servidor da web do Microsoft Windows que possui uma arquitetura modular extensível e que, desde a versão 7.0, suporta dois tipos de extensões: módulos nativos (DLL em C ++) e gerenciados (montagem .NET). Concentrando-se nos módulos nativos para IIS que são maliciosos, encontramos mais de 80 amostras exclusivas que foram usadas ativamente no contexto de uma campanha e as classificamos em 14 famílias de malware, 10 das quais não haviam sido documentadas anteriormente. As soluções de segurança da ESET detectam essas famílias como Win{32,64}/BadIIS y Win{32,64}/Spy.IISniff.
Como funciona o malware para IIS
O malware IIS é um tipo de ameaça usada para crimes cibernéticos, espionagem cibernética e fraude do SEO, mas em todos os casos, seu principal objetivo é interceptar solicitações HTTP que entram no servidor IIS comprometido e afetam a maneira como o servidor responde a (algumas de) essas solicitações.
Com a instalação padrão, o IIS já é persistente, portanto, o malware baseado em extensão do IIS não precisa implementar mecanismos de persistência adicionais. Depois de configurado como uma extensão do IIS, o módulo malicioso para o IIS é carregado pelo processo de trabalho do IIS (w3wp.exe), que lida com as solicitações enviadas ao servidor. É aqui que o malware direcionado ao IIS pode interferir no processamento da solicitação.
Identificamos cinco modos principais nos quais o malware IIS opera, conforme ilustrado na Figura 1:
- Os backdoors para IIS permitem que seus operadores controlem remotamente o computador comprometido que possui o IIS instalado
- Os infostealers (ladrões de informações) para IIS permitem que seus operadores interceptem o tráfego regular entre o servidor comprometido e seus visitantes legítimos, para roubar informações como credenciais de login e informações de pagamento. O uso de HTTPS não evita esse ataque, pois o malware para IIS pode acessar todos os dados manipulados pelo servidor, que é onde os dados são processados em seu estado não criptografado.
- Os injectors para IIS modificam as respostas HTTP enviadas a visitantes legítimos para fornecer conteúdo malicioso
- Os proxies para IIS transformam o servidor comprometido em uma parte da infraestrutura C&C para outra família de malware e usam indevidamente o servidor IIS para transmitir a comunicação entre as vítimas desse malware e o servidor C&C real.
- O malware para IIS, por meio de fraude do SEO, modifica o conteúdo enviado aos mecanismos de pesquisa para manipular algoritmos SERP e melhorar a classificação de outros sites de interesse dos atacantes.
Todos esses tipos de malware são analisados de forma detalhada no documento.
Como (e onde) é distribuído
Os módulos nativos para IIS têm acesso irrestrito a quaisquer recursos disponíveis para o processo de trabalho do servidor; portanto, as permissões de nível de administrador são necessárias para instalar o malware nativo para IIS. Isso reduz bastante as opções para o vetor de ataque inicial. Vimos evidências dos dois cenários a seguir:
- O malware para IIS se propaga como uma versão trojanizada de um módulo IIS legítimo
- O malware para IIS se propaga através da exploração do servidor
Por exemplo, entre março e junho de 2021, detectamos uma onda de backdoors para IIS sendo propagada por meio da exploração da cadeia de vulnerabilidades do RCE no Microsoft Exchange (CVE-2021-26855, CVE-2021-26857, CVE-2021-26858, e CVE-2021-27065), também conhecido como ProxyLogon. O alvo específico eram os servidores Exchange que tinham o Outlook web (também conhecido como OWA) habilitado. Como o IIS é usado para implementar o OWA, eles eram um alvo particularmente interessante para espionagem.
Depois que relatamos o primeiro caso em março de 2021, detectamos mais quatro campanhas de vários backdoors para IIS buscando explorar a mesma vulnerabilidade no Microsoft Exchange. Para complementar a nossa telemetria, realizamos uma varredura na Internet para detectar a presença desses backdoors, o que nos permitiu identificar e notificar outras vítimas do malware.
A imagem 2 mostra as localizações geográficas dos servidores afetados por essas cinco campanhas, usando dados de nossa telemetria e varreduras de internet.
As seguintes entidades estavam entre as vítimas:
- Instituições governamentais em três países do sudeste asiático;
- Uma grande empresa de telecomunicações no Camboja;
- Uma instituição dedicada à pesquisa no Vietnã;
- Dezenas de empresas privadas pertencentes a diversos setores, localizadas principalmente no Canadá, Vietnã e Índia, e outras nos EUA, Nova Zelândia, Coréia do Sul e outros países.
Observe que, embora os backdoors para IIS possam ser adequados para espionar contas de e-mail de alto perfil, as vítimas de malware para IIS não se limitam aos servidores comprometidos; todos os visitantes legítimos de sites hospedados nesses servidores são vítimas em potencial, pois o malware pode ser usado para roubar dados confidenciais do visitante (infostealers para IIS) ou entregar conteúdo malicioso (injectors para IIS). Confira o white paper para obter mais informações sobre as vítimas das outras famílias de malware para IIS analisadas.
Análise do malware nativo para IIS
Do ponto de vista técnico, todos os tipos de malware nativo para IIS são implementados como bibliotecas de vínculo dinâmico (DLLs) escritas usando o API para IIS em C++. Qualquer DLL deste tipo deve:
- Implementar uma classe herdada da classe CHttpModule ou CGlobalModule (ou ambas) e substituir vários dos métodos dessa classe (controladores de eventos)
- Exportar a função RegisterModule, que é o ponto de entrada da biblioteca, responsável por criar as instâncias dessas classes e registrar os controladores implementados para os eventos do servidor, conforme ilustrado na Figura 3.
Os eventos do servidor (server events) referem-se às etapas que o servidor IIS executa durante o processamento da solicitação (veja a Figura 4), mas também a outras ações executadas pelo servidor (por exemplo, enviar uma resposta HTTP). Esses eventos geram notificações de eventos, que são tratadas por controladores de eventos implementados nos módulos do servidor (veja a Imagem 5).
Resumindo, é nos controladores de eventos (ou nos métodos das classes principais do módulo IIS) onde a funcionalidade maliciosa do malware para IIS é implementada e onde qualquer engenheiro reverso deve focar sua análise. Para se aprofundar nos fundamentos do malware para IIS e como analisar esses binários, confira o capítulo “Anatomy of native IIS malware” de nosso white paper.
Comunicação de rede
Um recurso notável do malware para IIS é a forma como se comunica com seus operadores. Os módulos maliciosos para IIS, especialmente os backdoors para IIS, raramente criam novas conexões com seus servidores C&C. Eles funcionam como implantes passivos, permitindo que atacantes os controlem, fornecendo algum "segredo" em uma solicitação HTTP enviada ao servidor da web IIS comprometido. É por isso que os backdoors para IIS geralmente possuem um mecanismo para reconhecer as solicitações feitas por atacantes que são usados para controlar o servidor e possuem uma estrutura predefinida, como:
- URL ou corpo da solicitação que corresponde a uma expressão regular específica;
- A presença de um cabeçalho HTTP personalizado específico;
- Um token incorporado (na URL, no corpo da solicitação ou em um dos cabeçalhos) que corresponde a uma senha hardcodeada;
- Um valor hash de um token incorporado que corresponde a um valor hardcodeado;
- Uma condição mais complexa, por exemplo, uma relação entre todos os itens acima.
Por outro lado, algumas categorias de malware para IIS implementam um canal C&C alternativo - usando protocolos como HTTP ou DNS - para obter as configurações atuais em tempo real. Por exemplo, um injetor para IIS contata seu servidor C&C toda vez que há uma nova solicitação de um visitante legítimo para o site comprometido e usa a resposta do servidor para modificar o conteúdo entregue a esse visitante (como código malicioso ou adware).
A Tabela 1 resume como os canais de comunicação com o C&C, bem como outras técnicas notáveis, são implementados pelas 14 famílias de malware para IIS analisadas.
Group # | #colspan# | #colspan# | #colspan# | #colspan# | #colspan# | #colspan# | Detection evasion and obfuscation techniques | ||
---|---|---|---|---|---|---|---|---|---|
Backdoor | Infostealer | Proxy | SEO fraud | Injector | Attacker request verification (e.g. specific header present, specific URI, query string parameter) | Encryption/ encoding |
Alternative channel protocol | #rowspan# | |
Group 1 | ✅ | ✅ | ❌ | ❌ | ❌ | HTTP header with hardcoded password | base64 | ❌ | ❌ |
Group 2 | ✅ | ❌ | ❌ | ❌ | ❌ | HTTP header with hardcoded password | RSA + AES-CBC | ❌ | ❌ |
Group 3 | ✅ | ❌ | ❌ | ❌ | ❌ | HTTP header present | base64 | ❌ | ❌ |
Group 4 | ✅ | ❌ | ❌ | ❌ | ❌ | HTTP header with hardcoded password | XOR + base64 | ❌ | Anti-logging |
Group 5 | ❌ | ✅ | ❌ | ❌ | ❌ | URI and HTTP header with hardcoded password | ❌ | ❌ | String stacking |
Group 6 | ❌ | ✅ | ❌ | ❌ | ❌ | Query string parameter | ❌ | ❌ | ❌ |
Group 7 | ✅ | ❌ | ❌ | ❌ | ❌ | Relationship between HTTP headers, HTTP body format | AES-CBC | ❌ | Anti-logging |
Group 8 | ✅ | ❌ | ❌ | ❌ | ❌ | HTTP header with hardcoded password | ❌ | ❌ | ❌ |
Group 9 | ❌ | ❌ | ✅ | ✅ | ❌ | No support for attacker requests | ❌ | HTTP | Encrypted strings (XOR 0x56) |
Group 10 | ❌ | ❌ | ❌ | ✅ | ❌ | No support for attacker requests | ❌ | HTTP to obtain JavaScript config | ❌ |
Group 11 | ✅ | ❌ | ✅ | ✅ | ✅ | HTTP header with hardcoded password | ❌ | DNS TXT to obtain config, HTTP for C&C | String encryption (ADD 0x02) |
Group 12, variant A | ✅ | ❌ | ✅ | ✅ | ✅ | HTTP header with password whose MD5 hash is hardcoded | ❌ | HTTP | String encryption (ADD 0x01) |
Group 12, variant B | ✅ | ❌ | ❌ | ✅ | ✅ | #rowspan# | ❌ | HTTP | UPX packing |
Group 12, variant C | ❌ | ❌ | ❌ | ✅ | ❌ | No support for attacker requests | ❌ | HTTP | String encryption (XOR 0x0C) |
Group 13 | ✅ | ❌ | ❌ | ✅ | ❌ | Query string parameter | ❌ | HTTP | ❌ |
Group 14 | ❌ | ❌ | ❌ | ✅ | ✅ | No support for attacker requests | ❌ | HTTP | ❌ |
Tabela 1. Resumo das ofuscações implementadas e as funcionalidades suportadas pelas famílias de malware para IIS analisadas.
Mitigação
Como os módulos nativos para IIS só podem ser instalados com privilégios de administrador, os atacantes devem primeiro obter acesso elevado ao servidor IIS. As dicas a seguir podem fazer com que o seu trabalho seja mais difícil:
- Use contas dedicadas com senhas exclusivas e fortes para a administração do servidor IIS. Solicite autenticação multifator (MFA) para essas contas. Monitore o uso dessas contas.
- Instale periodicamente atualizações de segurança para o seu sistema operacional e analise cuidadosamente quais serviços são expostos àiInternet para reduzir o risco de exploração do servidor.
- Considere o uso de um firewall de aplicativo da web e/ou solução de segurança de endpoint em seu servidor IIS.
- Os módulos nativos para IIS têm acesso irrestrito a quaisquer recursos disponíveis para o processo de trabalho do servidor. Neste caso, é necessário instalar módulos IIS nativos de fontes confiáveis para evitar o download de versões trojanizadas. Esteja especialmente atento aos módulos que prometem recursos muito bons para ser verdade, como aprimorar o SEO de forma mágica.
- Verifique regularmente a configuração do servidor IIS para verificar se todos os módulos nativos instalados são legítimos (assinados por um fornecedor confiável ou instalados propositalmente).
Para obter mais detalhes sobre como detectar e remover o malware para IIS, confira o capítulo Mitigação de nosso white paper. Também publicamos um conjunto de regras YARA que você pode aproveitar para detectar as 14 famílias de malware para IIS analisadas.
Conclusão
Os servidores da web Internet Information Services (IIS) têm sido atacados por vários agentes mal-intencionados, tanto para crimes cibernéticos quanto para espionagem cibernética. A arquitetura modular do software, projetada para fornecer extensibilidade aos desenvolvedores da web, pode ser uma ferramenta útil para que atacantes se tornem parte do servidor IIS e interceptem ou modifiquem seu tráfego.
Ainda é muito estranho que softwares de segurança para endpoints (e outros) sejam usados em servidores IIS, o que faz com que seja ainda mais fácil para os atacantes operarem sem serem detectados por longos períodos de tempo. Isso deve chamar a atenção de todos os portais da web sérios que desejam proteger os dados de seus visitantes, incluindo credenciais de autenticação e informações de pagamento. As organizações que usam o OWA também devem estar atentas, pois ele depende do IIS e pode ser um alvo interessante para espionagem.
Embora as ameaças que visam os servidores IIS não se limitem ao malware nativo para IIS, acreditamos que este documento será um ponto de partida útil para os profissionais de segurança compreenderem, identificarem e removerem as ameaças que visam o IIS, e um guia para que nossos colegas pesquisadores realizem engenharia reversa nesse tipo de ameaças e compreendam suas táticas, técnicas e procedimentos mais comuns.
Detalhes técnicos adicionais sobre malware e indicadores de comprometimento podem ser encontrados em nosso white paper e no GitHub. Caso tenha dúvidas ou queira enviar amostras relacionadas com o assunto abordado nesta publicação, entre em contato conosco pelo e-mail threatintel@eset.com.
Um agradecimento especial aos pesquisadores de malware da ESET, Marc-Étienne Léveillé e Mathieu Tartare, pelo trabalho realizado nesta pesquisa.