Existe algum scanner de vulnerabilidade / vírus / malware / BadThings ™ estático no servidor?

3

Nós executamos um servidor web de hospedagem compartilhada com a pilha LAMP usual. Ele está em funcionamento desde há muitos anos (uhm, Apache-1.3 e PHP-3 dias?) E passou por muitas iterações. Nós nos esforçamos para ter boas políticas de sysadmin, como manter toda a pilha atualizada, verificar senhas fracas, minimizar a superfície de ataque, usar suhosin, ficar de olho nos logs de sistemas e assim por diante. É claro que todo host virtual está confinado ao seu diretório (tanto para o acesso FTP quanto para o php open_basedir).

Mas no final do dia é sempre um servidor web executando uma falha de PHP não confiável enviada por clientes (leia-se: usuários desconhecidos e estúpidos sem experiência em TI) com HTTP exposto ao mundo (formulários web e outros) ... esses cenários não são muito incomuns:

  • o usuário fornece sua senha para muitas pessoas e seu site é comprometido
  • o PC do usuário é comprometido e o FTP / web app / qualquer senha roubada de lá
  • o usuário instala coisas ruins do PHP e fica comprometido
  • o usuário instala boas coisas PHP (existe mesmo?) mas não atualiza em anos e fica comprometido
  • o usuário escreve seu próprio material PHP ( ARGH! eles estão saindo das ---------- paredes! )
  • e assim por diante. você entendeu a ideia.

Ao investigar o PHP / JS / HTML / comprometido, encontramos algumas vezes malware na forma de javascript (em arquivos .js ou incorporados em html) e às vezes até encontramos arquivos .zip com malware / vírus para o Microsoft Windows dentro.

Com um ambiente tão selvagem, não é possível executar repetidamente testes de vulnerabilidades automatizadas nos sites, e provavelmente não seria muito útil também. Eu também estou pensando que coisas como mod_security estariam fora de questão em um ambiente tão compartilhado, genérico e fora de controle.

Mas eu estou querendo saber se existe alguma coisa semelhante a antivírus que possamos executar do lado do servidor, pelo menos para procurar sites comprometidos com javascript bem conhecido ou coisas executáveis, ou vulnerabilidades conhecidas em versões antigas de aplicativos web PHP. Algo para executar a partir do cron todas as noites e obter um relatório de e-mail legal.

Existe tal coisa? Poderia o clamav detectar algumas dessas coisas desagradáveis do JS? (Eu estou supondo que já podemos usá-lo para detectar arquivos zip carregados com malware Win32) Qualquer outra coisa que eu não tinha pensado que poderia ser executado no lado do servidor para uma varredura estática? E quanto ao conteúdo armazenado no MySQL (por exemplo, javascript carregado de formulários e armazenado em SQL para exibição posterior em páginas da Web)?

    
por Luke404 11.07.2012 / 18:27

4 respostas

4

Além do ClamAV, considere usar o Maldet para obter mais detecção de malware. De acordo com os documentos, ele tem a capacidade de se integrar ao ClamAV, embora eu não tenha configurado isso pessoalmente.

    
por 11.07.2012 / 19:39
2

O Snort pode detectar enquanto o malware está sendo carregado. Além disso, use Cloud Linux ou SELinux, etc. Isso evita que muitos trabalhos comprometam o site, se configurado para isso. Você pode executar o Kaspersky Scan no servidor da Web também, ele detecta algumas coisas, mas nem sempre a desinfeta corretamente. Acima de tudo, você pode implementar a política da maneira que qualquer coisa carregada tiver que ser com acesso restrito, assim como o que você pode fazer, é evitar sobrescrever os arquivos, exceto as pastas especiais, que não podem ser vinculadas externamente. Isso é possível e existem muitas maneiras de fazer isso. ACLs, SELinux, SUEXEC, etc.

    
por 11.07.2012 / 18:42
2

Clam AntiVirus é a ferramenta que você deseja. Ele vê o dever comum nos sistemas de email, mas não há motivo para você não monitorar os uploads que chegam por meio de seu aplicativo da Web.

Lembre-se de que você provavelmente precisará de alterações no código do aplicativo para usá-lo com eficiência. Ele precisará lidar com o fato de que o ClamAV irá varrer, detectar e possivelmente remover / obstruir arquivos independentemente do seu aplicativo. A melhor opção seria chamar o ClamAV de seu aplicativo para cada upload, mas isso pode ser mais tempo de desenvolvimento do que você gostaria de investir.

    
por 11.07.2012 / 19:32
2

Eu recomendo que você tente usar o Linux Malware Detect ( link ). Coloque-o no cron para executar varreduras periódicas:

0 * * * * / usr / local / sbin / maldet -r ~ > saída

    
por 01.03.2013 / 16:39