Verifique o serviço quanto a vulnerabilidades [fechadas]

2

Eu preciso escrever algum tipo de script bash que verifique arquivos de serviços conf (comumente usado como nginx apache mongodb cassandra ssh etc) e procure por padrões (ou seja, verifique se o mongod.conf tem autorização: linha ativada ou verifique se o ssh o registro via chaves está habilitado, verificando também se cada serviço está na versão mais recente, desativando os usuários padrão) para ter certeza de que o serviço é seguro.

Mas aqui está um problema que não consigo resolver (ainda;)) - Eu preciso provar que meu script funciona - você conhece algum aplicativo que possa verificar vulnerabilidades de serviços comumente usados? Não me refiro a sites - serviços. Eu poderia realizar esse teste antes de executar o meu script e depois e depois - voila - meu script está salvando o mundo;)

Eu ficaria muito grato por qualquer resposta.

Muito obrigado: 3

    
por Thomas 11.08.2016 / 00:39

1 resposta

1

A coisa que você está pedindo para mim parece escrever scripts de monitoramento padrão.

A melhor maneira de abordá-lo é estabelecer uma linguagem de programação e usá-la para escrever todas elas.

O script Bash não é a melhor escolha, pois é esquisito para algumas operações - ele pode fazer muito, mas é um grande problema mantê-lo e é muito confuso devido ao uso de vários binários externos e erros de manuseio e assim por diante. não é bom como manipulação de exceção em outros idiomas.

Eu recomendaria usar uma das linguagens da JVM - Java, Scala, Groovy - você tem drivers para cada banco de dados e outras coisas. Também o C # é uma boa escolha, pois possui todas as bibliotecas.

Se não, então Python, PHP, Perl - aqui você também tem muitos drivers e APIs.

Então, você precisa levar este assunto a sério, pois ele é one of the most important things e garante um teste adequado para cada serviço.

Conforme você escreve apenas os scripts, você pode usar qualquer front-end de monitoramento de rede existente como o Nagios com Thruk para alimentar a execução agendada destes e notificações / relatórios.

Além disso, você pode desenhar métricas com o pnp4nagios.

Observe também que Vulnerability Scan and Monitoring são duas coisas diferentes. Pelo primeiro você tem OpenVAS e Nessus, pelo segundo você tem Nagios, Solar Winds e outros. O que você quer fazer é usar scripts personalizados com, por exemplo, Nagios.

Também é uma ótima maneira de aprender programação. Tudo o que você precisa é fazer scripts muito simples para que você possa aprender muito sem muita pressão. Dedique de 2 a 3 horas por dia o tempo todo, para que você tenha uma visão ampla da sua infraestrutura. Você pode começar com o Eclipse ou o IntelliJ e usar o Gradle para criar projetos simples. Como há boa automação com o Gradle e um bom suporte em Java, você deve ser feliz em longo prazo. E você pode pedir ajuda à equipe de desenvolvimento. Verifique a documentação do plug-in do Nagios sobre quais strings devem ser retornadas para desenhar gráficos com o pnp4nagios.

Você também pode tentar ingerir logs no banco de dados, o que também é muito útil.

Agora, mais algumas informações práticas. Você pode executar mini-programas java (plugins Nagios) remotamente ou você pode executá-lo localmente na máquina Nagios (preferencial). Então, desta forma você ssh (em Java ou Python) para o sistema, leia o arquivo, faça o download e analise-o. Então você precisa de algumas operações de rede em alguns cenários.

Você também pode usar as Cloud APIs.

E você também pode usar o SNMP com os plug-ins do Nagios existentes para não precisar de Java para tudo.

Alguns bancos de dados que você pode monitorar com soluções dedicadas, se você não fizer scripts manualmente (para os quais o Nagios é o melhor), você pode encontrar na Web algo que irá monitorar o desempenho do seu banco de dados.

Por fim, os scripts de monitoramento são bons para verificar se o banco de dados tem senha. Isto é o que é usado para fazer normalmente. E também que não fique sem memória RAM, espaço em disco, etc.

E aqui está como isso pode ser feito corretamente.

  1. Banco de dados da sua infraestrutura, por exemplo todos os hosts e assim por diante, possivelmente com detecção automatizada. Isso está vinculado à infraestrutura / automação de construção. Isso pode ser mais de um banco de dados se você usar a nuvem.

  2. Outra base de dados com os logs e outros, e. documentos, então isso contém log de execução do Nagios e resulta de scripts executados em (4). Aqui você pode ingerir outros registros. O MongoDB seria bom. Cassandra também pode fazer isso.

  3. Nagios

    • Execute a verificação que examina o banco de dados (2) e veja se as verificações foram bem-sucedidas e qual é o resultado
    • Verifique se o script de segundo plano está em execução, verificando os logs do banco de dados (2)
  4. Scripts em segundo plano executando verificações de senha / acesso

    • Se todos os sistemas do banco de dados (1) não tiverem senha raiz ou conjunto de senhas padrão vazio
    • Se todo sistema do banco de dados (1) permitir determinados logons
    • Ingerir os resultados e logs no banco de dados (2)
    • Isso também pode executar o OpenVAS e o resultado pode ser ingerido para (2)
  5. Como resultado, você pode atualizar o build (1) ou os servidores de (1) se houver senha padrão ou sem senha. Você também pode criar (1) gerar verificações para o Nagios monitorar e produzir métricas específicas. Você pode executar muitos sistemas Nagios. O banco de dados (2) pode ser usado para ingerir logs de várias fontes (você precisaria de adaptadores para isso). Bases nestes registros você pode ver o que quer que seja forçado por brute e ajustar as políticas, etc.

O Nessus e o OpenVAS também são grandes porcos. Então, usar o Nagios com verificações dedicadas para hosts é apenas uma maneira fácil e eficaz. Além disso, o Nessus e o OpenVAS não são boas soluções para verificação de padrão ou falta de senhas. Script dedicado é a melhor maneira de resolver este problema.

    
por 11.08.2016 / 01:57