Malware em F5 BIG-IP APM injeta web shell em PHP na memória e escapa de varreduras em disco

Malware associado a invasões em appliances F5 BIG-IP Access Policy Manager esconde uma web shell em PHP na memória, em vez de gravá-la em arquivo no disco, segundo análise da Sophos publicada em 7 de setembro. Quando o Apache carrega scripts PHP legítimos do próprio equipamento, o malware injeta a web shell na cópia em memória, permitindo que verificações no arquivo em disco voltem limpas.


Swati Khandelwal Quarta - 09 de Setembro de 2026 às 11:37
Imagem gerada por IA
Malware associado a invasões em appliances F5 BIG-IP Access Policy Manager esconde uma web shell em PHP na memória, em vez de gravá-la em arquivo no disco, segundo análise da Sophos publicada em 7 de setembro. Quando o Apache carrega scripts PHP legítimos do próprio equipamento, o malware injeta a web shell na cópia em memória, permitindo que verificações no arquivo em disco voltem limpas.

Malware associado a invasões em appliances do F5 BIG-IP Access Policy Manager (Gerenciador de Políticas de Acesso) esconde uma web shell em PHP na memória, em vez de gravá-la em um arquivo no disco, afirmou a Sophos em uma análise publicada em 7 de setembro.

Quando o Apache carrega qualquer um dos três scripts PHP do próprio appliance, o malware adiciona a web shell à cópia mantida na memória, de modo que uma verificação do arquivo no disco pode retornar limpa. Esses três scripts são os mesmos que a F5 indicou aos clientes em março, quando afirmou que mudanças apenas neles não comprovam uma invasão.

Uma web shell geralmente é um pequeno script que um invasor deposita em pastas de um servidor web para executar comandos por meio de requisições web comuns. Por ficar no disco, os defensores a procuram varrendo arquivos e comparando-os com cópias consideradas íntegras.

Essa abordagem não funciona aqui. Como resumiram os pesquisadores, a web shell "não precisa existir em sua forma final no disco".

Os três scripts são apm_css.php3, full_wt.php3 e webtop_popup_css.php3, parte do webtop do BIG-IP APM. A F5 listou os três em março, em uma lista pública de indicadores de comprometimento para o malware que rastreia como c05d5254, e afirmou na época que a simples presença deles não indica um problema de segurança.

A F5 também disse ter observado casos em que uma web shell foi gravada em disco, mas que as web shells "foram vistas funcionando apenas em memória", o que significa que os arquivos listados podem não ter sido modificados. A análise da Sophos explica como as duas afirmações podem ser verdadeiras ao mesmo tempo.

A Sophos examinou uma única amostra. Sua análise não nomeia nenhuma vítima nem informa como a amostra foi obtida.

A F5 associou a atividade do c05d5254 a appliances afetados pela CVE-2025-53521 (Vulnerabilidades e Exposições Comuns), informou a Sophos. A F5 publicou originalmente essa falha em 15 de outubro de 2025, como um problema de negação de serviço.

Em 27 de março de 2026, a F5 disse que novas informações a levaram a reclassificar a falha como execução remota de código e que ela vinha sendo explorada. Um invasor não precisa de login para usá-la, e a F5 a classifica com nota 9,8 no CVSS 3.1 (Sistema de Pontuação de Vulnerabilidades Comuns) e 9,3 no CVSS 4.0.

A CISA (Agência de Segurança Cibernética e de Infraestrutura dos Estados Unidos) a adicionou ao seu catálogo de Vulnerabilidades Exploradas Conhecidas no mesmo dia, dando às agências civis federais dos EUA até 30 de março para agir.

A falha se aplica quando uma política de acesso do BIG-IP APM é configurada em um servidor virtual. O Centro Nacional de Segurança Cibernética do Reino Unido (NCSC) descreve o BIG-IP APM como um componente comum, especialmente em grandes organizações. O aviso da F5 lista as versões afetadas e corrigidas.

A correção que resolve o problema tem quase um ano. O Centro Nacional de Segurança Cibernética da Irlanda afirmou em um aviso de 31 de março que a correção divulgada em outubro continua válida e protege contra a exploração.

A web shell é a última etapa de uma cadeia mais longa, e as etapas anteriores tocam o disco. A Sophos disse que um instalador separado, encontrado em uma amostra chamada umount, infecta o programa do servidor web Apache em /usr/sbin/httpd adicionando código malicioso ao início do arquivo original. O tamanho desse código adicionado corresponde ao payload carregado dentro do instalador, o que, segundo a Sophos, indica fortemente que o instalador o coloca ali.

A ESET, que analisou amostras relacionadas em abril e batizou o malware como PoisonedRefresh, disse que o instalador deve ser executado como root e desativa o SELinux (Linux com Segurança Aprimorada). Ele também infecta umount, httpd e rc.local dentro de imagens de instalação do BIG-IP, o que, segundo a ESET, foi feito presumivelmente para espalhar o malware para outros sistemas por meio da mídia de instalação.

Como o malware fica dentro do programa do Apache, ele é executado antes do próprio código do Apache iniciar. A Sophos disse que ele intercepta uma função do Apache Portable Runtime (tempo de execução portátil do Apache), a apr_dso_load, e não faz nada até que o Apache carregue o módulo PHP, a libphp.

Depois que o PHP é carregado, o malware lê /proc/self/maps para localizar o módulo na memória, torna brevemente essas páginas de memória graváveis, reescreve as chamadas que o módulo usa para abrir, dimensionar e mapear arquivos e, em seguida, restaura as permissões originais. A partir daí, ele controla o que o PHP vê quando abre um dos três scripts. Quando o arquivo é mapeado na memória, o malware coloca a web shell à frente do conteúdo original.

A web shell lê o corpo bruto de uma requisição, procura um marcador curto, descriptografa o restante e o executa. Ela responde com o status HTTP 201 e um tipo de conteúdo CSS, de modo que a troca se parece com uma requisição de folha de estilo.

O malware também abre um socket local em /run/bigtlog.pipe. Após verificar um token fixo, ele conecta esse socket ao /bin/bash, fornecendo um shell interativo sem abrir uma porta de rede.

A Sophos disse não ter encontrado no código da amostra nenhuma rotina para se conectar a esse socket, nem qualquer outro uso do token, de modo que as duas formas de entrada parecem recursos separados. Não há evidências, em nenhum dos sentidos, sobre se o invasor acessa o socket pela web shell.

O que os defensores podem verificar

A Sophos disse que seus sinais comportamentais são pistas para investigação, não provas por si só, e devem ser lidos em conjunto com evidências de arquivos, processos e memória. A lista abaixo combina essas pistas com os indicadores publicados pela F5 em março.

  • Arquivo: presença de /run/bigtlog.pipe ou /run/bigstart.ltm
  • Binário: divergência de hash, tamanho ou registro de data/hora em /usr/bin/umount ou /usr/sbin/httpd em relação a uma cópia considerada íntegra. A F5 observa que tamanhos e datas variam entre versões e hotfixes de engenharia
  • Ferramenta: falha do sys-eicheck porque um desses dois arquivos foi alterado
  • Log: entrada em /var/log/restjavad-audit mostrando um usuário local acessando a API REST do iControl a partir do localhost
  • Log: entrada em /var/log/auditd mostrando o SELinux sendo desativado pelo mesmo caminho
  • Log: entrada em /var/log/audit mostrando um comando bash executado por meio da API REST do iControl. A F5 diz que essas linhas mostram dados em base64 gravados em um arquivo e a execução de /run/bigstart.ltm
  • Tráfego: respostas HTTP 201 com tipo de conteúdo CSS vindas do appliance
  • Comportamento do host: um worker do Apache lendo /proc/self/maps, alterando permissões de memória em torno da libphp, criando um socket em /run ou iniciando /bin/bash
  • SHA-256 (algoritmo de hash criptográfico): 26bd5b0722d1dbab5db749a063c49bc8638653ac2addfead7a9cb3d6d57bccc9
  • Arquivo, sinal fraco sozinho: alterações nos três scripts .php3. A F5 diz que a presença deles, por si só, não indica problema, e a análise da Sophos explica por quê: o arquivo não precisa ser alterado

A lista da F5 também inclui itens que a análise da Sophos não cobre, entre eles /run/bigstart.ltm e as alterações que afetam o sys-eicheck. Nenhum dos dois relatos descreve a invasão por completo.

Se você já aplicou a correção

Aplicar o patch não resolve a questão de saber se um appliance foi comprometido antes da atualização.

O NCSC da Irlanda disse que não há um cronograma de exploração disponível e que espera que alguma exploração tenha ocorrido ou possa ter ocorrido antes da divulgação inicial da falha e de sua correção, em outubro de 2025.

O NCSC do Reino Unido orienta investigar sinais de comprometimento "independentemente de quando o sistema tenha sido atualizado".

  1. Execute a verificação de integridade sys-eicheck, ferramenta integrada da F5. Os próprios indicadores da F5 dizem que as alterações em /usr/bin/umount e /usr/sbin/httpd fazem essa ferramenta falhar, então a própria falha já é o sinal.
  2. Colete um relatório qkview, envie-o à F5 e abra um caso. O NCSC da Irlanda disse que a F5 consegue analisar esse relatório em busca de indícios de comprometimento e que abrir um caso associado garante uma resposta mais rápida e completa.
  3. Compare o conteúdo dos módulos na memória com as cópias em disco, o que a Sophos recomenda incluir nos playbooks de resposta a incidentes para servidores web críticos.
  4. Quando uma investigação completa não for possível, o NCSC do Reino Unido orienta isolar o appliance e reconstruí-lo do zero, e alerta que isso pode causar uma interrupção.

Três pontos ainda são desconhecidos. A F5 não disse quando a exploração começou.

Nenhum dos avisos ou análises publicados informa se atualizar um appliance para uma versão corrigida remove malware já instalado, e tanto a Sophos quanto a ESET descrevem um componente projetado para sobreviver a imagens de atualização.

E ninguém nomeou um invasor: a Sophos disse não ter evidências suficientes para apontar um grupo, e a ESET afirmou em abril que também não havia chegado a uma conclusão.

cibersegurança malware F5