Ferramentas para digitalizar código Magento em busca de conteúdo malicioso

8

Temos um cliente que está muito preocupado com o código malicioso sendo introduzido em módulos de terceiros, especialmente os módulos provenientes do Magento Connect (ou qualquer outro módulo gratuito). Eles gostariam de usar um desses módulos, mas querem ter certeza de que o módulo funciona. não contém código que permita que um hacker tenha acesso a diferentes partes do site Magento.

Minha pergunta é a seguinte: Existe uma ferramenta que poderíamos usar para verificar o conteúdo de código? Algo assim, mas talvez mais em profundidade.

function check($contents,$file) {
        $this->scanned_files[] = $file;
        if(preg_match('/eval\((base64|eval|\$_|\$\$|\$[A-Za-z_0-9\{]*(\(|\{|\[))/i',$contents)) {
            $this->infected_files[] = $file;
        }
}

Mesmo um serviço que pode ser executado no servidor web.

Idealmente, se houvesse um serviço que varreria cada confirmação antes que o código entrasse no repositório seria o ideal.

brentwpeterson
fonte
Ótima pergunta. Sou paranóico por natureza e, ao instalar um novo módulo, vou verificar o código para ver se há algo suspeito. Acho que o problema é para quem não sabe o que está procurando. Como todos os aplicativos de lanterna que acessam a câmera e / ou o microfone do telefone. Você não sabe até que seja tarde demais ou dê uma olhada séria no que está instalando. Dito isto, espero que alguém possa ter uma solução OU que o Magento Connect se torne muito mais árduo nos módulos que eles permitem.
SR_Magento 03/04
11
Eles não podem apenas pagar para fazer o download e depois revisar o código antes de fazer o upload no site do comerciante sem usar o Connect?
Kristof em Fooman

Respostas:

3

Você já pensou em executar clamav? - https://www.clamav.net/index.html - Corri isso recentemente em um servidor Ubuntu de clientes executando o magento e ele voltou com dois arquivos infectados - a velocidade da verificação foi impressionante e é facilmente executada se você tiver acesso SSH - você também pode executar regularmente através de um trabalho Cron.

Para rodar clam AV no Ubuntu

Para instalar o ClamAV, execute o seguinte comando

apt-get update
apt-get install clamav

Atualizar manualmente os bancos de dados de vírus

freshclam

Você verá o processo de atualização do ClamAV iniciado Para verificar manualmente arquivos / pastas em busca de vírus

clamscan -r --bell -i /

Para aqueles que não estão no Ubuntu, instruções completas podem ser encontradas aqui https://www.clamav.net/doc/install.html

David Allsop
fonte
Adicione isso ao Linux Malware Detect, que faz um nível de verificação e, em seguida, vincula-se ao ClamAV para finalizar a tentativa de eliminar os desagradáveis ​​aplicativos php.
Fiasco Labs
O FYI Clam não detecta a maioria dos malware Magento mais recentes. Além disso, a maioria dos malwares está oculta no banco de dados, especificamente nestas tabelas: core_config_data, cms_blocks, cms_pages. Portanto, você deve despejá-las em um arquivo e digitalizá-lo.
Willem
3

Existem várias maneiras de ofuscar o código, de modo que uma solução tão simples não seja uma solução para todo o IMO. Se você realmente deseja bloquear seu sistema e impedir códigos maliciosos, eu recomendaria:

  1. Não permita a instalação de módulos via Connect. Use um repositório git e instale primeiro em um servidor intermediário e somente atualize a produção via git após testes e inspeções completas.

  2. Nunca permita o uso de módulos com código ofuscado, independentemente de quem seja o desenvolvedor. Peça uma cópia não ofuscada ou procure em outro lugar. Simpatizo com os desenvolvedores de extensões que desejam evitar a pirataria, mas se você está preocupado com a segurança, isso é um fator decisivo.

  3. Se possível, restrinja o tráfego de saída via iptables. Isso é difícil, pois existem tantas APIs de terceiros para integrar e elas podem alterar seus IPs a qualquer momento, mas é a maneira mais segura de impedir que códigos maliciosos (Magento ou outros) cheguem.

  4. Instale uma ferramenta que monitore sua raiz da web para alterações de arquivos. Por exemplo, o ConfigServer Firewall e o OSSEC têm componentes que fazem isso bem, após a configuração adequada, é claro.

Se você souber de um sistema que atualizará entradas do iptables ou Grupos de Segurança da AWS quando os registros DNS forem atualizados, informe-me, pois ainda não encontrei ou construí um.

ColinM
fonte
Obrigado a Colin, que na verdade não responde à pergunta: Nós fazemos 1 e 2. O número três é posterior ao fato e não lida com a digitalização do código. O nº 4 é apenas uma comparação do código existente. Temos o clamAV e o Sophus, mas faltaram dois arquivos.
precisa saber é o seguinte
2

Experimente o Magento Malware Scanner , que contém a maior coleção de assinaturas de malware que está disponível ao público. Ele baixa as assinaturas mais recentes, lida com listas de permissões e mantém o estado.

É recomendado pelo Magento , usado pelo Magento Marketplace , Homeland Security, VISA e muitos outros.

Willem
fonte
1

Eu criei um módulo chamado MB_ Callinghome para fazer exatamente isso. A extensão é bastante simples, ele observa o evento de login do administrador e procura por uma sequência configurável com find e grep. A extensão usa exec (), que o torna utilizável apenas em um ambiente de teste, pois pode expor o site a um ataque se usado no prod.

mbalparda
fonte
1

Talvez você possa usar o PHP_CodeSniffer ou uma ferramenta padrão de codificação semelhante. Obviamente, você precisa ter um forte entendimento do funcionamento interno do que deve ser considerado seguro, mas é possível configurá-lo de forma que o sniffer de código sinalize arquivos problemáticos.

Lembro-me de que havia uma pergunta aqui a respeito de por que os padrões usados ​​pelo módulo aqui https://github.com/magento-ecg/coding-standard são tão sensíveis a assuntos como operações fopen e outras operações de E / S de arquivos.

Ao usá-lo, você pode pelo menos identificar o que pode considerar um código perigoso. No entanto, em última análise, ainda seria necessário uma revisão da base de código. Qualquer coisa que seja sinalizada lá pode ser um código legítimo para os propósitos da operação dos módulos. Infelizmente, você não pode confiar apenas em testes automáticos para algo dessa natureza.

John Cuthbert
fonte
0

Existem ferramentas online gratuitas que você pode usar para verificar sua instalação do Magento remotamente. Isso pode ajudar a identificar swipers de cartão de crédito, cargas maliciosas, domínios intermediários e outros problemas de segurança.

https://sitecheck.sucuri.net/

https://www.magereport.com/

http://www.unmaskparasites.com/

http://webscan.foregenix.com/

https://github.com/gwillem/magento-malware-scanner/

https://magescan.com/

https://www.virustotal.com/

Mohamed El Mrabet
fonte