Como detectar a mineração de criptografia?

1

Eu gostaria de fazer um plugin Nagios que possa detectar mineiros de criptografia.

O problema é que se o minerador é de encadeamento único e está sendo executado em um host multi-core, o carregamento do avg será abaixo de 1, o que não é, por definição, um problema.

Além disso, gostaria que o plug-in manipulasse hosts com números ou CPUs diferentes.

Pergunta

Se um host estiver rodando um minerador (single ou multi-threaded) eu sempre o detectarei se eu disser: crypto miner detectado se o 3 load avg de uptime for quase o mesmo?

Dessa forma, não tenho que me preocupar com números ou CPUs. Correto?

    
por Sandra 24.05.2018 / 16:35

5 respostas

1

Acabei de criar o "Nagios Crypto Miner Detector", que é um plugin do Nagios. Dê uma olhada no link

Funciona comparando as 3 médias de carga e quando uma carga constante é encontrada, alerta. Não importa se o mineiro de criptografia é único ou multi-threaded.

O administrador só precisa especificar uma tolerância de quando as três médias de carga estão próximas o suficiente para serem consideradas iguais. 10% de costuras para ficar bem para hosts que estão ociosos a maior parte do tempo.

    
por 28.05.2018 / 17:35
1

Se o seu cryptominer pode ser detectado com 100% de uso em um único núcleo, você pode usar

mpstat -P ALL

E verifique se na coluna% user

mpstat -P ALL | awk ' { print $3 " " $4 } ' | grep -E "^[0-9]"

existe um único núcleo que está quase 100% continuamente, acho que isso pode ser feito com uma única linha de awk

    
por 24.05.2018 / 19:09
0

Existem algumas boas respostas aqui que podem funcionar em alguns casos, mas todas elas assumem a mesma coisa: que você gostaria de detectar a presença de um mineiro depois que ele já está rodando.

Isso geralmente seria melhor realizado com um scanner heurístico e uma biblioteca de hashes para detectar aplicativos já conhecidos. Não estou ciente da existência de tal projeto, mas pode ser uma função integrada em algum tipo de scanner de suíte / malware de segurança. No entanto, se um aplicativo mal-intencionado de qualquer tipo já estiver em execução, você estará atrasado para o jogo.

Tudo isso de lado, uma abordagem mais razoável (e mais fácil) seria impedir que o mineiro entre na sua máquina. Dependendo do tipo de avenida que você espera que esses mineiros entrem e do que esses sistemas fazem, você deve bloquear o acesso aos seus sistemas para evitar que isso aconteça. Geralmente, não deve ser permitido de forma alguma que um usuário possa instalar e executar subseqüentemente um programa funcional de qualquer tipo, a menos que seja exatamente o que ele deveria estar fazendo com um determinado recurso.

Embora o descrito acima descreva uma metodologia, ela não descreve exatamente como mitigar esse tipo de coisa. Existem respostas para isso, mas elas dependerão inteiramente da sua implementação além das recomendações mais genéricas.

Por exemplo, o audit daemon ou rkhunter pode ser uma boa maneira de determinar se algo "foreign" está em execução e quem / o que o colocou lá. selinux fornece uma maneira sólida de impedir que arquivos não aprovados sejam executados em um contexto que eles não deveriam. Um bom sistema de geração de imagens / implantação pode ajudar a permitir "nuking orbital" e estabelecer garantias para um sistema "limpo" consistente. Boas práticas de segurança e modelos de implantação problemáticos fazem com que a maioria das preocupações relacionadas à detecção de ameaças sejam irrelevantes.

    
por 06.06.2018 / 20:14
0

A maioria dos ataques de mineradores que eu vi exploram uma vulnerabilidade de aplicativo da Web, como a vulnerabilidade do Drupalgeddon do Drupal, e posteriormente adicionam uma entrada ao crontab para fazer o download do minerador em determinados intervalos.

Então, surpreendentemente, uma boa opção pode ser monitorar seu arquivo crontab. Isso tem o benefício adicional de detectar outros ataques semelhantes também.

Você pode usar o plug-in de monitoramento de arquivos link , por exemplo, para monitorar o tamanho do arquivo de /etc/crontab ou qualquer arquivo crontab que seu usuário da web (por exemplo, drupal ou www-data) tenha acesso.

Sidenote:

Além disso, você pode instalar o link do plugin nagiosgraph e revisar manualmente os gráficos para identificar picos de carga da CPU.

    
por 06.06.2018 / 22:18
-1

Isso se resume à conscientização da sua infraestrutura, algo que 95% de todas as empresas não têm.

A primeira coisa é que eu configuraria um sistema de monitoramento que monitoraria o uso da CPU e a contagem de processos, criaria uma linha de base para o que é normal, o que é o pico anual e assim por diante.

Monitore os processos ativos. Juntamente com minha documentação e linha de base, eu decidiria o que é normal e o que não é. Exemplo, se o servidor for um servidor Tomcat, eu esperaria ver processos que tratam do próprio serviço Tomcat, Java, solicitações HTTP, backup e assim por diante. Mas se um processo desonesto aparecer de repente, não vi antes ou a contagem do processo ativo de repente salta por 16, 32 ou algo a esse respeito, fora do pico e permanece a sua, eu posso determinar que não é um processo normal ou processos para a operação do servidor e eu posso investigar.

Instalar um Sistema de Detecção de Intrusão no local também é fundamental, para que um processo seja iniciado, ele precisa solicitar tempo de CPU de uma forma ou de outra. O sistema IDS pode monitorar isso, registrá-lo e, novamente, se eu vir algo fora da norma que eu possa investigar.

Com base no "serviço" de criptografia, ele pode não sobrecarregar muito a CPU do servidor, já que você pode acelerar os processos ou distribuí-los por 32 núcleos ou do que seu servidor é capaz de fazer. Então, eu iria monitorar várias coisas e, a partir disso, determinar o que está acontecendo.

Nesse sentido, eu diria que não é uma forma direta de determinar isso, a menos que você tenha como alvo um mineiro de criptografia específico.

    
por 24.05.2018 / 19:45

Tags