Para obter a resposta específica à sua pergunta, consulte /magento//a/72700/361
fundo
Em primeiro lugar, não há exploração específica - há uma série de artigos em andamento no momento que interpretaram mal e entenderam mal o artigo de origem.
O artigo original apenas dizia (e estou parafraseando),
Se um hacker foram capazes de obter acesso a seus arquivos Magento, eles poderiam capturar informações de seu cliente
A parte principal é o hacker que realmente precisa acessar seu servidor e modificar arquivos.
Não entre em pânico ... isso não é nada específico do Magento
Em termos de captura de informações, não há nada específico para Magento do que qualquer outro site / plataforma. Se um hacker obtém acesso aos seus arquivos, seu jogo acaba efetivamente - ele poderá capturar qualquer informação que deseje.
O melhor que você pode fazer (e, finalmente, o mínimo que deve fazer) é manter uma boa política de segurança que atenda aos padrões de segurança PCI do setor de processamento de pagamentos. Você pode encontrar a lista aqui, https://www.pcisecuritystandards.org /documents/Prioritized_Approach_for_PCI_DSS_v3_.pdf
Endurecer sua loja
Você pode realmente bloquear facetas da sua loja que reduzem bastante a área de ataque de superfície de um hacker ou, pelo menos, retardam o progresso se conseguirem entrar /
Bloquear permissões
Você pode restringir permissões na raiz do documento para permitir apenas a gravação em diretórios essenciais ( /var
e /media
)
É o que fazemos por padrão no MageStack ,
echo -n "Fixing ownership"
chown -R $SSH_USER:$WEB_GROUP $INSTALL_PATH && echo " ... OK" || echo " ... ERROR"
INSTALL_PATH="/path/to/public_html"
chmod 750 $INSTALL_PATH
find $INSTALL_PATH -type d ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing file permissions"
find $INSTALL_PATH -type f ! -perm 740 -exec chmod 740 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing cron permissions"
find $INSTALL_PATH/*/cron.sh -type f ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var file permissions"
chmod -R 760 $INSTALL_PATH/*/media $INSTALL_PATH/*/var && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var directory permissions"
find $INSTALL_PATH/*/media $INSTALL_PATH/*/var -type d ! -perm 770 -exec chmod 770 {} \; && echo " ... OK" || echo " ... ERROR"
Ajuste INSTALL_PATH,SSH_USER,WEB_GROUP
para se adequar. O que é importante é que você SSH_USER
não é o mesmo usuário que o PHP usa para o processo do servidor da Web; caso contrário, você essencialmente forneceria acesso total de gravação ao servidor da Web (atenuando quaisquer benefícios).
Bloqueie seu acesso de administrador / downloader
No MageStack, você configuraria isso em ___general/x.conf
set $magestack_protect_admin true;
set $magestack_protect_downloader true;
No Nginx, você pode usar isso,
location ~* ^/(index.php/)?admin{
satisfy any;
allow x.x.x.x;
auth_basic "Login";
auth_basic_user_file /microcloud/data/domains/x/domains/x/___general/.htpasswd;
deny all;
location ~* \.(php) {
include fastcgi_params;
}
try_files $uri $uri/ /admin/index.php ;
}
Há um pouco mais de documentação sobre como preparar um .htpasswd
arquivo aqui
Envolva o cron.sh
processo
Encontrei outros provedores de hospedagem usando máquinas dedicadas para uso do cron / admin - o que significa que a modificação do cron.sh
arquivo permitiria a execução remota de código no cron / admin sem precisar acessar. Encerrar o processo com o usuário certo em um fakechroot pode ir um pouco mais além para bloquear o processo.
Há muito código para eu postar, mas há um script aqui . É específico para o MageStack, mas pode ser ajustado para uso em configurações de servidor menos elegantes :)
Auditoria, auditoria, auditoria
O Linux é fantástico em termos de registro e acesso, oferecendo uma visão completa do que seu servidor está fazendo.
Um recurso fantástico no MageStack é a ferramenta de auditoria que registra todos os tipos de acesso e até alterações de arquivos diariamente. Você pode encontrar os logs aqui,
/microcloud/logs_ro
|-dh[0-9]+
|---access-YYYY-MM-DD.log.gz
|---backup-YYYY-MM-DD.log.gz
|---magescan-YYYY-MM-DD.log.gz
|---php-differential-YYYY-MM-DD.log.gz
|-acc[0-9]+
|---access-YYYY-MM-DD.log.gz
Se você não estiver usando o MageStack, poderá replicar parte disso com seu próprio provedor de hospedagem com bastante facilidade, rsync
sendo a ferramenta mais simples para fazer isso.
Por exemplo. Se seus backups estiverem disponíveis localmente, você poderá fazer o seguinte. Isso fará a comparação a seco de dois diretórios e produzirá uma lista de patches diff.
rsync -na /path/to/public_html/ /path/to/backup/public_html/ > change.log
grep -E '\.php$' change.log | while read FILE; do
diff -wp /path/to/public_html/$FILE /path/to/backup/public_html/$FILE >> php-differential.log
done
As mudanças no PHP são tão raras que você pode agendar isso para ser executado diariamente (ou várias vezes ao dia) e notificá-lo por e-mail se houver uma alteração no arquivo PHP.
Em suma
- Use o controle de versão, é mais fácil rastrear alterações
- Apenas ter um certificado SSL não é suficiente para tornar seu site seguro
- Não espere ser hackeado para considerar a segurança
- Só porque você redireciona para seu provedor de gateway de pagamento (versus captura de informações) - isso não significa que você pode evitar a conformidade com PCI, você ainda precisa
- Seja proativo, seguro e completo - verifique o código do módulo antes de instalá-lo, verifique os arquivos PHP diariamente, revise os logs, verifique o acesso FTP / SSH, altere as senhas regularmente
Seus clientes depositam uma enorme confiança em você quando repassam todas as suas informações privadas - e se você trair essa confiança ao não operar uma empresa segura, perderá o costume e todo o futuro.
As investigações forenses da PCI são incrivelmente caras, demoradas e acabam arriscando sua capacidade de receber pagamentos com cartão novamente. Nunca se deixe nessa posição!
Receba atualizações
Ultimamente, havia uma série de patches lançados pelo Magento que corrigiam buracos, incluindo alguns que permitiam a execução remota de código. Você pode buscá-los aqui, https://www.magentocommerce.com/products/downloads/magento/
Mas esses novos artigos não estão se referindo a uma nova exploração, eles estão simplesmente declarando como os hackers estão aproveitando as explorações históricas (ou qualquer outro vetor de ataque) para poder capturar informações do titular do cartão.
Fontes
Estou adicionando outra resposta apenas porque a minha outra não respondeu à pergunta - e certamente não precisa ser mais!
Como posso verificar se uma imagem contém informações sobre CC
Em última análise, você não pode. Às vezes, existem indicadores que o destacam,
Por exemplo.
Mas pode ser particularmente difícil digerir o conteúdo dos arquivos binários para determinar o conteúdo se o conteúdo não estiver apenas em texto simples.
A exploração mais comum que eu vi não envolve a gravação de dados de texto sem formatação em um arquivo com uma
.jpg|png|gif|etc
extensão, eles geralmente envolvem algum tipo de codificação / criptografia para ofuscar os dados (por exemplo,base64
oumcrypt
etc.). O que significa que um grep simples não funcionará.Você poderia (e isso não é de forma alguma exaustivo) ...
Encontre arquivos anormalmente grandes
Localizar arquivos correspondentes ao CC regex
Verifique se os arquivos de imagem são válidos
Ou
Como posso verificar os arquivos PHP na minha instalação para ver se foram modificados
A maneira mais fácil de comparar seus arquivos de instalação seria diferenciar o núcleo de uma cópia limpa. Isso não leva em conta os arquivos do tema, mas ajuda bastante na verificação de alguns milhares de arquivos na sua instalação.
O processo é realmente fácil,
Por exemplo. Para Magento versão 1.7.0.2
Lembre-se de que as versões mais antigas do Magento não são corrigidas (irritantemente), portanto, fazer um diff principal resultará em alterações. Para evitar isso, aplique os patches na fonte limpa recém-baixada e difira novamente depois.
fonte
Ótimo post, mas infelizmente nem todas as coisas são criadas da mesma forma.
Permissões de arquivo
Quando a hospedagem compartilhada se tornou popular, foi considerado mais importante que as pessoas não pudessem exibir o conteúdo de outras pessoas no mesmo servidor. Até o advento das cadeias do FreeBSD, isso significava:
Isso permitiu a modificação dos arquivos (então) HTML pelo proprietário da conta e, ao mesmo tempo, o processo do servidor da web e o proprietário da conta não tiveram acesso a outras pessoas na mesma máquina.
Isso não mudou muito e os pacotes de software adaptados à hospedagem compartilhada (CPanel, DirectAdmin, Plex) usam esses princípios. Isso significa que o principal ponto de entrada (servidor da web e / ou interpretador de scripts) pode gravar em qualquer arquivo da conta, tornando inúteis as permissões de arquivo.
Nenhum CC para roubar se você não o tiver
Informe com o seu provedor de pagamento de CC se os dados do CC são realmente enviados para o servidor e, em caso afirmativo, se são enviados não criptografados, não criptografados. Atualmente, o JavaScript é bastante poderoso e existem fornecedores de serviços de pagamento por aí que usam o mecanismo JavScript do seu cliente para criptografar informações confidenciais antes da transmissão ao servidor. Embora possa ser possível para esse coletor de informações obter a chave da sessão e os dados criptografados (e, assim, poder descriptografá-los), é menos interessante para o coletor, pois os dados coletados são maiores e a IA do bot muito mais complexa .
Detecção de modificação
Mais de 15 anos de unix e ainda põe um sorriso nostálgico no meu rosto quando vejo reencarnações do TripWire . Git é uma boa ferramenta para isso também. Comparando com uma versão boa conhecida, um pouco menos, pois ela não leva em consideração as adições e, novamente, fornece uma boa ferramenta aqui, pois as modificações no site local são mais frequentes do que as instalações originais.
O Downloader
É tão fácil mover o downloeader para fora da raiz do documento quanto instalar alguma forma de autenticação HTTP. Em seguida, coloque-o novamente quando você o usar. Se isso não for prático, prefiro bloqueá-lo com base no endereço remoto e não em outra camada de usuário / senha, especialmente aquelas que enviam senhas em texto sem formatação.
WAF e alternativas
Um firewall de aplicativo da Web pode evitar muitos problemas, já no estágio de verificação de um ataque. Infelizmente, essas são caixas pretas caras, mas existem algumas alternativas:
Acho que cobrimos muitas coisas, mas deixe-me terminar com a minha petpeeve:
PARAR DE USAR FTP
Lá. Eu disse isso. E aqui está: https://wiki.filezilla-project.org/Howto
fonte
Não há nada certo sobre esse novo hack, Ben Marks postou ontem que está investigando o problema e também existe este artigo.
A melhor abordagem que você pode tentar é fazer login via SSH e fazer uma pesquisa dentro de todos os arquivos que você possui para uma determinada string, algo como
da pasta raiz do Magento e, se você conseguir uma correspondência, verifique manualmente o arquivo para ver o que está acontecendo. O mesmo acontece com outras strings como "END PUBLIC KEY", por exemplo.
fonte