IIStealer: uma ameaça do lado do servidor para transações de comércio eletrônico

Nó Fonte: 1022037

O primeiro de nossa série sobre ameaças ao IIS analisa uma extensão maliciosa do IIS que intercepta transações do servidor para roubar informações de cartão de crédito

Os investigadores da ESET descobriram e analisaram um trojan anteriormente não documentado que rouba informações de pagamento de clientes de sites de comércio eletrónico. O trojan, que chamamos de IIStealer, é detectado pelas soluções de segurança da ESET como Win64/BadIIS.

Esta postagem do blog é a primeira parte de nossa série em que os pesquisadores da ESET colocam as ameaças aos servidores web IIS sob o microscópio, com as outras duas partes discutindo malware IIS usado para Espionagem cibernética e Fraude de SEO, Respectivamente. Para obter um guia completo sobre como detectar, analisar e remover malware do IIS, consulte nosso white paper Anatomia do malware nativo do IIS, onde o IIStealer é apresentado como uma das famílias estudadas (Grupo 5).

Visão geral do ataque

IIStealer é implementado como uma extensão maliciosa para Internet Information Services (IIS), software de servidor web da Microsoft. Por fazer parte do servidor, o IIStealer é capaz de acessar toda a comunicação da rede que flui pelo servidor e roubar dados de interesse dos invasores – neste caso, informações de pagamento de transações de comércio eletrônico.

Conforme ilustrado na Figura 1, o IIStealer opera interceptando o tráfego regular entre o servidor comprometido e seus clientes (o vendedor e os compradores), direcionando solicitações HTTP POST feitas para caminhos URI específicos: /checkout/checkout.aspx or /checkout/Pagamento.aspx.

Sempre que um visitante legítimo do site faz uma solicitação a essas páginas de checkout (1), o IIStealer registra o corpo da solicitação HTTP em um arquivo de log (2), sem, de forma alguma, interferir na resposta HTTP gerada pelos componentes do site legítimo ( 3).

Os adversários podem então exfiltrar os dados coletados fazendo uma solicitação HTTP especial ao servidor IIS comprometido: assim que o IIStealer detectar uma solicitação feita a um URI específico (/privacidade.aspx) com uma senha do invasor incluída no Dados X-IIS cabeçalho (4), ele incorpora os dados coletados na resposta HTTP para essa solicitação (5,6).

Figura 1. Mecanismos de coleta e exfiltração do IIStealer

Figura 1. IIStealer: mecanismos de coleta e exfiltração

Com esses recursos, o IIStealer é capaz de roubar informações de cartão de crédito enviadas para sites de comércio eletrônico que não usam serviços de terceiros. gateways de pagamento. Observe que SSL/TLS e canais de comunicação criptografados não protegem essas transações contra o IIStealer, pois o malware pode acessar todos os dados manipulados pelo servidor – que é onde as informações do cartão de crédito são processadas em seu estado não criptografado.

As amostras desse malware que analisamos parecem ser adaptadas para sites de comércio eletrônico específicos (com URIs de página de checkout codificados). De acordo com nossa telemetria, o alvo foi um pequeno número de servidores IIS nos EUA, entre setembro de 2020 e janeiro de 2021, mas isso provavelmente é afetado por nossa visibilidade limitada nos servidores IIS – ainda é comum que os administradores não usem nenhum software de segurança em esses servidores.

Análise técnica

O IIStealer é implementado como um módulo IIS nativo e malicioso – uma DLL C++ colocada no %windir%system32inetsrv pasta no servidor IIS comprometido e configurada no %windir%system32inetsrvconfigApplicationHost.config arquivo. Em alguns casos, o IIStealer é implantado com o nome dir.dll e, como visto na Figura 2, usa um recurso VERSIONINFO forjado para imitar um módulo IIS legítimo do Windows chamado dirlist.dll.

Figura 2. O recurso VERSIONINFO do IIStealer (esquerda) imita o módulo dirlist.dll legítimo (direita)

Figura 2. O recurso VERSIONINFO do IIStealer (esquerda) imita o módulo dirlist.dll legítimo (direita)

Por ser um módulo IIS, o IIStealer é carregado automaticamente pelo IIS Worker Process (w3wp.exe), que lida com as solicitações enviadas ao servidor web IIS – é assim que o IIStealer alcança persistência e como isso pode afetar o processamento das solicitações recebidas.

Não temos nenhuma informação sobre como o malware se espalha, mas sabemos que privilégios administrativos são necessários para instalá-lo como um módulo nativo do IIS, o que restringe os candidatos para o compromisso inicial. Uma fraqueza de configuração ou vulnerabilidade em um aplicativo da Web ou no próprio servidor são os prováveis ​​culpados.

Quanto às suas características técnicas, o IIStealer implementa uma classe central herdada de Módulo CHttp (classe do módulo) e substitui o CHttpModule::OnPostBeginRequest método com seu código malicioso. Tal como acontece com todos os módulos nativos do IIS, o IIStealer exporta uma função chamada Módulo de registro (veja a Figura 3), onde ele instancia a classe do módulo e registra seus métodos para eventos do servidor – mais especificamente, ele registra para o RQ_BEGIN_REQUEST notificação pós-evento que é gerado sempre que o servidor começa a processar uma solicitação HTTP de entrada. Como resultado, o OnPostBeginRequest O método é chamado a cada nova solicitação, o que permite que o IIStealer afete o processamento da solicitação.

Figura 3. Ponto de entrada RegisterModule do IIStealer

Figura 3. Ponto de entrada RegisterModule do IIStealer

No OnPostBeginRequest manipulador, o IIStealer filtra as solicitações HTTP recebidas por URIs de solicitação. Todas as solicitações POST feitas para /checkout/checkout.aspx or /checkout/Pagamento.aspx são registrados – junto com seus corpos HTTP completos – em um arquivo chamado C:WindowsTempcache.txt. Estas solicitações são feitas por visitantes legítimos dos sites de comércio eletrônico comprometidos e podem conter informações confidenciais, como dados pessoais e números de cartão de crédito.

Os dados coletados podem ser exfiltrados por meio de uma solicitação HTTP especificamente criada pelo invasor. Esta solicitação deve ter um Dados X-IIS Cabeçalho HTTP definido como uma senha alfanumérica codificada de 32 bytes (que optamos por não divulgar) e deve ser enviado para um caminho de URL especificado na amostra de malware:

  • /privacidade.aspx
  • /checkout/Pagamento.aspx

Uma vez que o módulo malicioso detecta tal solicitação, ele usa o IHttpResponse::Limpar para excluir qualquer resposta HTTP preparada pelo servidor IIS e copia o conteúdo não criptografado do arquivo de log no corpo da resposta HTTP usando o método IHttpResponse::WriteEntityChunks Função API, conforme visto na Figura 4.

Figura 4. IIStealer substitui o corpo da resposta HTTP por seus próprios dados

Figura 4. IIStealer substitui o corpo da resposta HTTP por seus próprios dados

Isso permite que os operadores do IIStealer acessem e exfiltrem os dados coletados simplesmente enviando uma solicitação especial ao servidor IIS comprometido – não há necessidade de o malware implementar canais C&C adicionais ou incorporar quaisquer domínios de servidor C&C em sua configuração.

Mitigação

O IIStealer é uma ameaça do lado do servidor que espiona as comunicações entre um site de comércio eletrônico comprometido e seus clientes, com o objetivo de roubar informações confidenciais de pagamento – mas é claro que módulos maliciosos do IIS também podem ter como alvo credenciais e outras informações. Embora SSL/TLS seja vital para proteger a transmissão de dados entre o cliente e o servidor, ele não evita esse cenário de ataque, pois o IIStealer faz parte do servidor. Isto deve ser preocupante para todos os portais sérios que desejam proteger os dados dos seus visitantes, incluindo autenticação e informações de pagamento.

A melhor maneira de proteger um servidor IIS contra o IIStealer e outras ameaças é:

  • Use contas dedicadas com senhas fortes e exclusivas para a administração do servidor IIS.
  • Corrija regularmente o seu sistema operacional e considere cuidadosamente quais serviços estão expostos à Internet, para reduzir o risco de exploração do servidor.
  • Instale apenas módulos nativos do IIS de fontes confiáveis.
  • Considere usar um firewall de aplicativo da Web e/ou solução de segurança de endpoint em seu servidor IIS.
  • Verifique regularmente o arquivo de configuração %windir%system32inetsrvconfigApplicationHost.config, Bem como o %windir%system32inetsrv e %windir%SysWOW64inetsrv pastas para verificar se todos os módulos nativos instalados são legítimos (assinados por um provedor confiável ou instalados propositalmente).

Para desenvolvedores web: mesmo que você não tenha controle sobre o servidor IIS onde seu serviço web está hospedado, você ainda pode tomar medidas para reduzir o impacto sobre os usuários de seu serviço web no caso de comprometimento, especialmente:

  • Não envie a própria senha para o servidor (nem mesmo por SSL/TLS); use um protocolo como Senha remota segura (SRP) para autenticar usuários sem a necessidade de transmissão da senha não criptografada ao servidor, nem de dados que possam ser usados ​​para reautenticação. Os infostealers do IIS são um bom exemplo de por que o hashing do lado do servidor não é bom o suficiente.
  • Evite enviar desnecessariamente informações confidenciais da aplicação web; use gateways de pagamento.
  • Se você identificar um comprometimento bem-sucedido: notifique todas as partes envolvidas em qualquer violação de segurança para que possam tomar medidas rápidas.

Para os consumidores: do ponto de vista do visitante, é impossível saber se um servidor IIS está comprometido, mas estas dicas irão ajudá-lo a reduzir o risco:

  • Tenha cuidado ao inserir o número do seu cartão de crédito. Considere usar gateways de pagamento de fornecedores terceirizados confiáveis ​​em sites de comércio eletrônico cuja reputação você não conhece: com gateways de pagamento, esses sites não lidam com informações confidenciais de pagamento.
  • Fique de olho no seu extrato de crédito para pagamentos pequenos ou incomuns: muitas vezes, pequenas quantias são processadas para testar se os cartões são válidos.
  • Se você detectar algo incomum, notifique seu banco imediatamente.

Detalhes técnicos adicionais sobre malware, indicadores de comprometimento e regras YARA podem ser encontrados em nosso abrangente artigo:, E nas GitHub. Para qualquer dúvida ou para fazer envios de amostras relacionados ao assunto, entre em contato conosco: ameaçaintel@eset.com.

Indicadores de Compromisso (IoCs)

Nomes de detecção ESET

Win64/BadIIS.F
Win64/BadIIS.O

SHA-1

706EAB59C20FCC9FBC82C41BF955B5C49C644B38
7A2FA07A7DC05D50FE8E201A750A3DC7F22D6549
A1C5E7424E7C4C4C9902A5A1D97F708C6BB2F53A

Nomes de arquivos e caminhos

dir.dll
isapicache___.dll
isapicache_.dll_
C:WindowsTempcache.txt

Indicadores de rede

URIs direcionados

/checkout/checkout.aspx
/checkout/Pagamento.aspx
/privacidade.aspx

Cabeçalho HTTP

Dados X-IIS

Técnicas MITER ATT e CK

Nota: Esta tabela foi construída usando versão 9 da estrutura MITER ATT & CK.

Tática ID Nome Descrição
Desenvolvimento de Recursos T1587.001 Desenvolver recursos: malware IIStealer é uma família de malware personalizada.
Execução T1569.002 Serviços do sistema: execução de serviço O servidor IIS (e por extensão, IIStealer) persiste como um serviço do Windows.
Persistência T1546 Execução disparada por evento IIStealer é carregado pelo processo de trabalho do IIS (w3wp.exe) quando o servidor IIS recebe uma solicitação HTTP de entrada.
Evasão de Defesa T1036.005 Mascaramento: corresponder ao nome ou local legítimo IIStealer foi implantado com o nome dir.dll, em uma tentativa de imitar um módulo legítimo do Microsoft IIS chamado dirlist.dll.
T1027 Arquivos ou informações ofuscados O IIStealer usa empilhamento de strings na tentativa de evitar alguma detecção baseada em strings.
Acesso de credencial T1056 Captura de entrada O IIStealer intercepta o tráfego de rede entre o servidor IIS e seus clientes para coletar informações confidenciais, como detalhes de cartão de crédito.
Coleção T1119 Recolha Automática O IIStealer coleta automaticamente informações de solicitações HTTP de entrada, como detalhes de cartão de crédito.
T1074.001 Dados preparados: preparação de dados locais IIStealer usa um arquivo local para preparar as informações coletadas.
Comando e controle T1071.001 Protocolo de camada de aplicativo: protocolos da Web Os adversários enviam solicitações HTTP ao servidor IIS comprometido para controlar o IIStealer.
exfiltration T1041 Exfiltração no canal C2 O IIStealer usa seu canal C&C para exfiltrar os dados coletados: as solicitações HTTP são enviadas pelo adversário ao servidor IIS comprometido.

Fonte: https://www.welivesecurity.com/2021/08/06/iistealer-server-side-threat-ecommerce-transactions/

Carimbo de hora:

Mais de WeLiveSecurity