Há uma nova vulnerabilidade de dia zero no Joomla. Os detalhes estão descritos em CVE-2015-8562.
Recomendamos que você atualize o Joomla imediatamente. No entanto, se isso não for possível ou se você não puder alterar os arquivos nos servidores de backend, poderá aplicar uma correção no NGINX ou no NGINX Plus no frontend.
Observação: Recomendamos enfaticamente que você atualize suas instalações do Joomla o mais rápido possível, mesmo que corrija seu site hoje com esta configuração do NGINX.
Você pode ler sobre a vulnerabilidade e a correção no blog da Sucuri ou no Ars Technica, entre outros.
Identificando o ataque
Os ataques originais vieram destes endereços IP:
- Em 12 de dezembro de 2015 – 74.3.170.33
- Em 13 de dezembro de 2015 – 146.0.72.83 e 194.28.174.106
O ataque geralmente é realizado por meio da modificação do cabeçalho User-Agent e pode ser identificado pelos seguintes valores presentes nele: JDatabaseDriverMysqli e O: (letra O maiúscula seguida de dois-pontos).
O Joomla fornece o seguinte exemplo de entrada de log de um ataque.
2015 Dec 12 16:49:07 clienyhidden.access.logSrc IP: 74.3.XX.XX / CAN / Alberta
74.3.XX.XX [12/Dec/2015:16:49:40 -0500] GET /contact/ HTTP/1.1 403 5322 http://google.com/ }__test|O:21:x22JDatabaseDriverMysqlix22:3:..{s:2:x22fcx22;O:17:x22JSimplepieFactoryx22:0:..{}s:21:x22x5C0x5C0x5C0disconnectHandlersx22;a:1:{i:0;a:2:{i:0;O:9:x22SimplePiex22:5:..{s:8:x22sanitizex22;O:20:x22JDatabaseDriverMysqlx22:0:{}s:8:x22feed_urlx22;s:60:..Aplicando uma correção no NGINX ou NGINX Plus
Use este trecho de configuração do NGINX para bloquear os endereços IP originais e qualquer solicitação em que o cabeçalho User-Agent contenha O: ou JDatabaseDriverMysqli. Para bloquear outros endereços IP, adicione-os à lista no segundo bloco map.
http { map $http_user_agent $blocked_ua {
~(?i)O: 1;
~(?i)JDatabaseDriverMysql 1;
default 0;
}
map $remote_addr $blocked_ip {
74.3.170.33 1;
146.0.72.83 1;
194.28.174.106 1;
default 0;
}
server {
listen 80;
if ($blocked_ua) { return 403; }
if ($blocked_ip) { return 403; }
# ...
}
}Para obter mais informações sobre como restringir o acesso ao seu site, consulte o Guia do Administrador do NGINX Plus.
Compartilhe sua experiência nos comentários abaixo.
Sobre o autor

Publicações relacionadas no blog

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade
Descubra como o F5 NGINX One aprimora o gerenciamento e a observabilidade de ambientes híbridos e multicloud ao oferecer um console web centralizado baseado em SaaS, com insights em tempo real, conformidade automatizada e gerenciamento simplificado de configurações.

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa
Descubra como transformar uma definição de esquema OpenAPI em uma configuração NGINX totalmente funcional, operando como um API Gateway com a segurança de um Web Application Firewall e um Portal do Desenvolvedor, usando uma abordagem declarativa de API.

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor
Picos de tráfego e sobrecarga de servidores são preocupações sérias para varejistas online em qualquer época, mas especialmente durante a “Cyber Season” de compras de fim de ano. Detalhamos como você pode aproveitar as soluções de entrega de aplicações de nível de produção da NGINX para se preparar para aumentos repentinos de tráfego.

Distribuição segura de chaves privadas SSL com o NGINX
Descrevemos três maneiras progressivamente mais seguras de proteger chaves privadas SSL ao configurar o NGINX para processar tráfego HTTPS: permitir acesso de leitura apenas ao usuário root, criptografar as chaves com senhas armazenadas separadamente e distribuir as senhas a partir de um repositório central.
Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX
O módulo JavaScript do NGINX lançado com o NGINX Plus R15 oferece suporte a subsolicitações, possibilitando uma classe totalmente nova de casos de uso para o NGINX Plus. Este exemplo completo também usa a API do NGINX Plus e os módulos de chave-valor para converter solicitações de API dos clientes em solicitações separadas para as APIs dos microsserviços que compõem um aplicativo.
Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus
Confira dicas para evitar o esgotamento de portas efêmeras com ajustes no kernel do Linux, conexões keepalive e conexões vinculadas dinamicamente a endereços IP locais.