INTRODUÇÃO
De acordo com a norma ISO 27005:2008, em seu item 9.1 que trata sobre a descrição geral do processo de tratamento do risco, convém que controles para reduzir, reter, evitar ou transferir os riscos sejam selecionados e o plano de tratamento do risco seja definido.
Ferramenta
Será utilizado o Snort para o tratamento do trafego da rede.
Sobre o Snort
O SNORT é uma ferramenta NIDS desenvolvido por Martin Roesch “open-source” bastante popular por sua flexibilidade nas configurações de regras e constante atualização frente às novas ferramentas de invasão. Outro ponto forte desta ferramenta é o fato de ter o maior cadastro de assinaturas, ser leve, pequeno, fazer escaneamento do micro e verificar anomalias dentro de toda a rede ao qual seu computador pertence.
O código fonte é otimizado, desenvolvido em módulos utilizando linguagem de programação C e, junto, com a documentação, são de domínio público.
O Snort conta ainda, com o permanente desenvolvimento e atualização, que são feitos diariamente, tanto em relação ao código propriamente dito, como das regras de detecção. Os padrões utilizados na construção das regras de detecção das subversões são introduzidos no sistema de configuração, tão rápido quando são enviados os alertas originados pelos órgãos responsáveis, como por exemplo, o CERT, Bugtraq (lista de discussão), entre outros.
Por ser uma ferramenta peso leve, a utilização do Snort é indicada para monitorar redes TCP/IP pequenas, onde pode detectar uma grande variedade do tráfego suspeito, assim como ataques externos e então, fornece argumento para as decisões dos administradores.
Fonte: http://www.snort.org.br/snort.php
Mais informações, acessar:
VISÃO GERAL DO PROCESSO DE GESTÃO DE RISCOS DE SEGURANÇA DA INFORMAÇÃO
De acordo com a ISO 27005:2008, o processo de gestão de riscos de segurança da informação consiste na definição do contexto, análise/avaliação de riscos, tratamento do risco, aceitação do risco, comunicação do risco e monitoramento e análise crítica de riscos.
Como mostra a imagem acima, o processo de gestão de riscos de segurança da informação pode ter as atividades de análise/avaliação de riscos e/ou de tratamento do risco sendo realizadas mais de uma vez. Um enfoque iterativo na execução da análise/avaliação de riscos torna possível aprofundar e detalhar a avaliação em cada repetição. O enfoque iterativo permite minimizar o tempo e o esforço despendidos na identificação de controles e, ainda assim, assegura que riscos de alto impacto ou de alta probabilidade possam ser adequadamente avaliados.
Diretrizes para implementação
Há quatro opções disponíveis para o tratamento do risco: redução do risco, retenção do risco, evitar o risco e transferência do risco.
A figura a seguir ilustra a atividade de tratamento do risco dentro do processo de gestão de riscos de segurança da informação.
INSTALAÇÃO DO SNORT
Para a instalação do Snort, será necessário inicialmente a instalação e configuração do banco de dados MySQL. Logado com o usuário root, execute o seguinte comando para instalar o MySQL:
# aptitude install mysql-server
Na primeira tela, será necessário definir a senha para o banco de dados.
Na segunda tela, será necessário confirmar a senha informada anteriormente.
Para verificar se o serviço esta rodando corretamente, execute os seguintes comandos:
# ps aux | grep mysql
# netstat -nlpt
Caso o MySQL esteja funcionando na porta 3306 e ouvindo a rede, tudo estará funcionando perfeitamente. Se algo não estiver de acordo, desinstale o serviço e instale novamente.
Por questões de segurança, será criado o usuário: snort com a senha: 123456, para que o mesmo tenha acesso a base de dados do MySQL. Para criar o usuário, execute as seguintes etapas:
# mysql -u root -p
mysql> grant all privileges on snort.* to snort@192.168.200.X identified by "123456";
mysql> grant all privileges on snort.* to snort@localhost identified by "123456";
mysql> quit
Após a criação do usuário e definir sua senha, será necessário criar o banco de dados. Para realizar esta tarefa, execute os seguintes passos:
# mysql -u snort -p
mysql> show databases;
mysql> create database snort;
mysql> quit
Em seguida será realizado a instalação do Snort, uma vez criado o usuário, senha e configurar o banco de dados para que o Snort possa estar cadastrando as informações. Caso não tenha realizado as etapas acima listadas, o Snort não funcionar corretamente.
Para instalar o Snort, execute o seguinte comando;
# apittude install snort-mysql
Na primeira tela, será solicitada a rede em que o Snort irá trabalhar. Caso tenha dúvida, favor perguntar ao administrador da rede qual a faixa em que sua rede trabalha. Em seguida altere o valor pelo o informado.
Em seguida será apresentada a tela que informa que a base de dados não foi configurada para que o Snort possa guardar os registros. Selecionar a opção SIM para que possa configurar uma base de dados.
É obrigatório configurar uma base de dados para o Snort, conforme é exibida a imagem a seguir. Esta etapa será realizada mais tarde, assim sendo, clicar em OK.
Agora será necessário criar as tabelas dentro da base de dados snort. O Snort traz um exemplo das tabelas na sua documentação. Entre no seguinte diretório:
# cd /usr/share/doc/snort-mysql
Utilize o arquivo create_mysql.gz para criar as tabelas dentro da base de dados snort. Execute o seguinte comando:
# zcat create_mysql.gz | mysql -u snort -h localhost -p snort
Acesse o servidor MySQL e verifique as tabelas na base de dados snort. Para realizar esta etapa, execute as seguintes linhas de comandos:
# mysql -u snort -p
mysql> show databases;
mysql> use snort;
mysql> show tables;
mysql> status;
mysql> quit;
Verifique os arquivos de configuração do snort. Para realizar esta etapa, execute os seguintes comandos:
# cd /etc/snort
# ls -l
Por questões de segurança, será realizado o backup de configuração original do Snort e em seguida será criado um novo arquivo de configuração do Snort. Para realizar esta etapa, execute os seguintes comandos:
# mv snort.conf snort.conf.original
# cat snort.conf.original | grep -v ^# | grep . > snort.conf
Alterar a permissão para que somente o dono (root) e o grupo (snort) tenham acesso de leitura. Para realizar esta etapa, execute os seguintes comandos:
# chmod 640 snort.conf
# chown root:snort snort.conf
Em seguida daremos inicio a configuração do Snort, através do arquivo de configuração snort.conf. Execute os seguintes passos para que a configuração seja feita corretamente.
# vim snort.conf
Altere a primeira linha para:
ipvar HOME_NET 10.21.116.0/22
A linha acima irá definir a rede interna a ser monitorada.
Adicione as seguintes configurações após a opção include reference.config.
output database: log, mysql, user=snort password=123456 dbname=snort host=localhost
output alert_full:/var/log/snort/alert
Após realizar as alterações acima dentro do arquivo de configuração, salve o documento e saia.
Nas versões anteriores do Snort, não era necessário a configuração de outro arquivo de configuração para a comunicação com a base de dados. Na versão atual, faz se necessário configurar o tipo e opções para a comunicação, sendo assim, execute os seguintes comandos para configurar a base de dados.
# cd /etc/snort
# vim database.conf
Comente todas as linhas do arquivo e deixe somente a linha descrita:
output database: log, mysql, user=snort password=123456 dbname=snort host=localhost
Salve o documento e saia.
Reinicie o serviço do Snort.
# /etc/init.d/snort restart
Para verificar se o serviço encontrasse de “pé”, execute o seguinte comando:
# ps aux | grep snort
ACIDBASE
Instalação do acidbase
Primeiro comente as linhas do arquivo de configuração do apt.
# vim /etc/apt/sources.list
Após comentar as linhas, adicione as seguintes linhas dentro do arquivo informado acima;
deb http://ftp.us.debian.org/debian lenny main contrib non-free
deb http://ftp.de.debian.org/debian squeeze main
Em seguida, execute o comando para que seja verificado o arquivo alterado.
# apt-get update
Agora execute o comando a seguir para instalar o acidbase:
# aptitude install acidbase
Na primeira tela, clicar em OK.
Caso seja identificado que a máquina possui mais de SGDB, selecione qual o Snort esta configurado, neste caso MySQL.
Cadastre a palavra chave, no meu caso irei utilizar a mesma do usuário snort, informado acima.
Será necessário confirmar a senha.
Informativo de que será necessário realizar algumas configurações manuais para que o mesmo funcione corretamente.
Após finalizar a instalação do Acidbase, teremos que realizar algumas configurações para que ele possa se comunicar com o MySQL corretamente.
Execute as seguintes linhas para configurar o acidbase:
# cd /etc/acidbase
# vim database.php
Configure para que as linhas conforme a imagem.
Libere acesso à página do AcidBase nas configurações do Apache2:
# vim apache.conf
Caso não seja criado um link simbólico automaticamente dentro de /etc/apache2/conf.d/ com o nome de acidbase.conf, execute o comando a seguir:
# ln -s /etc/acidbase/apache.conf /etc/apache2/conf.d/acidbase.conf
Outro ajuste a ser realizado é no arquivo base_conf.php que fica localizado dentro do diretório /etc/acidbase/.
Configure a linha 117 as opções de comunicação com o MySQL.
Permita que o Mysql trabalhe no IP da máquina e não só em localhost:
# vim /etc/mysql/my.cnf
Altere a seguinte linha:
Você deverá colocar o IP do servidor do Snort. A linha a ser alterada é a de número 47.
Libere acesso à página do AcidBase nas configurações do Apache2:
# cd /etc/acidbase
# vim apache.conf
Adicione a seguinte linha:
allow from 192.168.200.0/255.255.255.0
Após realizar todas as configurações listadas acima, reinicie os serviços:
# /etc/init.d/mysql restart
# /etc/init.d/apache2 restart
# /etc/inid.d/snort restart
Utilizando o navegador, acesse com o IP do servidor Snort, para que seja criado as configurações.
Exemplo: http://10.21.119.64/acidbase
Na opção Status, clicar para criar as configurações.
Em seguida será apresentada a seguinte tela. Caso algo de errado, verifique os arquivos de configuração acima.
Em seguida clicar em Home.
Tudo já estará funcionando.
Para alterar o idioma da página, realize as seguintes configurações:
# vim /etc/acidbase/base_conf.php
Altere a linha 28 para portuguese.
Em seguida reinicialize o apache2.
# /etc/init.d/apache2 restart
Abra novamente seu navegador e tudo estará em português.
Erick, obrigado pela contribuição. Um autêntico “como fazer” sem deixar de lado os processos de gestão. Parabéns!
Obrigado meu amigo e qualquer dúvida pode me perguntar.
O Erick é show. Ele é o tipo de cara que fica estudando e fazendo laboratórios em casa, e depois compartilha as soluções com todo mundo.
Aliás, os artigos do mundotibrasil são muito bons e eu leio todos.
Obrigado meu amigo Erick e mundotibrasil!
Alexandre,
Agradeço em nome de toda a equipe de autores do Mundo TI Brasil, e fico feliz que nossos esforços estejam lhe ajudando.
Abraços
Bom dia meu amigo,
Fico muito feliz em ver seu comentário aqui.
Gosto de compartilhar o conhecimento com todos.
Sempre pode contar comigo e com a equipe do Mundo TI Brasil para ajudar.
Abração e um excelente final de semana.
Muito bom Erick! Com esse passo a passo ai e a explicação não tem erro. O Alexandre está corretíssimo, vc sempre compartilhando os seus conhecimentos.
Obrigado Patrícia.
Esse passo a passo parece até instalação de Baidu, sempre dá certo… rs
Sério agora, muito bom mesmo o artigo, Parabéns!!!
Bom dia Felipe,
Fico muito feliz em saber que você gostou do artigo.
Obrigado e qualquer coisa pode sempre contar com a equipe de Mundo TI Brasil.
Abraço.
Parabéns, pelo artigo! Depois de tanto pesquisar na Internet e perder tempo com um monte de lixo que um bando de imbecis publicam, talvez por não terem o que fazer, finalmente encontrei um tutorial que realmente funciona.
Estou à disposição para compartilhar meus conhecimentos em Asterisk, Squid e Iptables.
Parabéns!!!
Obrigado!
Bom dia Vauires,
Obrigado pelo comentário.
Sempre que precisar pode contar comigo e com a equipe do Mundo TI Brasil.
Abração.
Muito bom.
Funcionou perfeitamente. Desde já meus mais sinceros agradecimentos.
Bom dia Cleyton,
Fico feliz que tenha implementado, mesmo que seja somente de teste, mas a minha intensão é de fazer um artigo explicando de forma clara e objetiva sobre a ferramenta e o seu uso.
Estou finalizando outro artigo que irá complementar este.
Obrigado e até a próxima.
Erick, primeiramente parabéns pelo matéria, fiz um LAB em ambiente real e realmente esta funcionando, porém o snort só detecta ataques que são feitos direcionados ao IP dele, quando faço um ataque à alguma outra maquina da rede ele não detecta, terias alguma sugestão?
OBS: A placa de rede do Servidor SNORT esta em modo Promiscuo.
Agradeço desde já.
Abraço!
Eu sou burro, só eu não consegui… segue o erro abaixo
Error (p)connecting to DB : snort@192.168.2.35:3306
Check the DB connection variables in base_conf.php
= $alert_dbname : MySQL database name where the alerts are stored
= $alert_host : host where the database is stored
= $alert_port : port where the database is stored
= $alert_user : username into the database
= $alert_password : password for the username
Database ERROR:Host ‘debian.local’ is not allowed to connect to this MySQL server
Não consegui, está dando erro ao conectar mysql
Bom dia Eduardo,
Poderia dar mais detalhes do erro?
Bom dia, obrigado pela atenção… consegui arrumar, ja está tudo funcionando!
Bom dia, no meu o comando apittude install snort-mysql não funciona
amigo vc sabe me dizer porque o acidbase nao funciona para ser instalado via cli
o mesmo diz foi descontinuado sabe informa????