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.
php
magento-connect
extensions
security
brentwpeterson
fonte
fonte
Respostas:
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
Atualizar manualmente os bancos de dados de vírus
Você verá o processo de atualização do ClamAV iniciado Para verificar manualmente arquivos / pastas em busca de vírus
Para aqueles que não estão no Ubuntu, instruções completas podem ser encontradas aqui https://www.clamav.net/doc/install.html
fonte
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:
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.
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.
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.
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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/
fonte