ferramentas de respostas a incidentes de segurança - PoP

Transcrição

ferramentas de respostas a incidentes de segurança - PoP
FERRAMENTAS DE RESPOSTAS A INCIDENTES DE
SEGURANÇA
Bolsista: Eric Barbosa Jales de Carvalho
Coordenador: Nathan Franklin Saraiva de Sousa
Teresina
Dezembro/2008
SUMÁRIO
1.0 INTRODUÇÃO ....................................................................................................................9
2.0 JUSTIFICATIVAS DE EXECUÇÃO DO PROJETO..................................................... 10
3.0 OBJETIVOS E METAS.................................................................................................... 11
4.0 TIPOS DE IDS .................................................................................................................. 12
4.1 HIDS ...............................................................................................................................................12
4.1.1 Pontos positivos do HIDS: .............................................................................................................12
4.1.2 Pontos negativos do HIDS: ............................................................................................................13
4.2 NIDS ...............................................................................................................................................13
4.2.1 Pontos positivos do NIDS: .............................................................................................................14
4.2.2 Pontos negativos do NIDS: ............................................................................................................15
4.3 IDS Híbrido.....................................................................................................................................15
4.4 KIDS ...............................................................................................................................................15
5.0 MÉTODOS DE DETECÇÃO ........................................................................................... 17
5.1 Baseados em assinaturas (conhecimento)......................................................................................17
5.1.1 Vantagens .....................................................................................................................................17
5.1.2 Desvantagens ................................................................................................................................17
5.2 Baseados em comportamento (anomalias) ....................................................................................17
5.2.1 Vantagens .....................................................................................................................................17
5.2.2 Desvantagens ................................................................................................................................18
6.0 COMPORTAMENTOS PÓS-DETECÇÃO .................................................................... 19
6.1 Passivo ...........................................................................................................................................19
6.2 Ativo ..............................................................................................................................................19
7.0 HONEYPOT...................................................................................................................... 20
7.1 Vantagens ......................................................................................................................................20
7.2 Desvantagens.................................................................................................................................20
7.3 Tipos de HoneyPot .........................................................................................................................20
7.3.1 Baixa Interatividade ......................................................................................................................20
7.3.2 Alta Interatividade ........................................................................................................................21
8.0 FERRAMENTAS .............................................................................................................. 22
8.1 Labrador ........................................................................................................................................22
8.2 Osiris..............................................................................................................................................22
8.3 OSSEC.............................................................................................................................................22
8.3.1 OSSEC-WUI....................................................................................................................................23
8.4 Tripwire .........................................................................................................................................23
8.5 AIDE ...............................................................................................................................................23
8.6 Snort ..............................................................................................................................................24
8.6.1 SnortNotify....................................................................................................................................25
8.6.2 Snort-inline....................................................................................................................................25
8.7 OSSIM ............................................................................................................................................25
8.8 Prelude ..........................................................................................................................................26
8.8.1 Prewikka........................................................................................................................................27
8.9 Guardian ........................................................................................................................................27
8.10 Fwsnort........................................................................................................................................28
8.11 HLBR ............................................................................................................................................28
8.12 Honeyd ........................................................................................................................................28
8.13 Nessus..........................................................................................................................................29
8.13.1 Inprotect .....................................................................................................................................30
8.14 Nikto ............................................................................................................................................30
9.0 CENÁRIO .......................................................................................................................... 31
10.0 CONCLUSÃO.................................................................................................................. 32
11.0 DIFICULDADES ENCONTRADAS ............................................................................ 33
12.0 BIBLIOGRAFIA............................................................................................................. 34
ANEXOS ................................................................................................................................... 37
ANEXO 1 – TUTORIAL PARA INSTALAÇÃO DO SNORT + PHP5 + APACHE2 +
MYSQL + BASE + SNORTNOTIFY + POSTFIX ............................................................... 37
PCRE-7.8 – Versão utilizada até o momento da criação do tutorial......................................................37
Libpcap_1.0.0 - Versão utilizada até o momento da criação do tutorial ...............................................37
SNORT – 2.8.3.1 - Versão utilizada até o momento da criação do tutorial ...........................................38
SNORTRULES........................................................................................................................................38
ADODB5.04 - Versão utilizada até o momento da criação do tutorial ..................................................39
BASE-1.4.1 - Versão utilizada até o momento da criação do tutorial....................................................39
SNORTNOTIFY – 2.1 - Versão utilizada até o momento da criação do tutorial......................................41
MYSQL .................................................................................................................................................42
PostFix para fazer um relay em um servidor SMTP autenticado: .........................................................44
ANEXO 2 – TUTORIAL PARA INSTALAÇÃO DO SNORT + PHP5 + APACHE2 +
MYSQL + BASE + GUARDIAN VIA APT-GET E COM ATUALIZAÇÃO PARA A
VERSÃO UNSTABLE ............................................................................................................. 48
SNORT via APT-GET (stable) .................................................................................................................48
Instalação e Configuração do MySQL.....................................................................................................48
Instalação e Configuração do Snort com suporte a MySQL ...................................................................49
Instalação e Configuração do Apache2 ..................................................................................................51
Instalação e Configuração do PHP5 .......................................................................................................52
Instalação e Configuração do AcidBase .................................................................................................53
Apache com suporte a SSL .....................................................................................................................55
Atualização do Snort ..............................................................................................................................58
SNORT via APT-GET (unstable).............................................................................................................62
Remontar pacotes do tipo .deb: ............................................................................................................62
Criar pacote .deb sem chaves assinadas:...............................................................................................63
Configuração do Snort com suporte a MySQL .......................................................................................63
ANEXO 3 – TUTORIAL PARA INSTALAÇÃO DO SNORT EM MODO BRIDGE....... 67
Configuração das Interfaces.................................................................................................................67
Configuração do Snort .........................................................................................................................68
ANEXO 4 – TUTORIAL PARA INSTALAÇÃO DO SNORT-INLINE COM SUPORTE
AO MYSQL............................................................................................................................... 70
Instalação e Configuração do MySQL ...................................................................................................70
Libdnet-1.1 – Versão utilizada até o momento da criação do tutorial ..................................................71
Snort_inline-2.6.1.5 - Versão utilizada até o momento da criação do tutorial......................................71
Compilando e Instalando o Snort-Inline:..............................................................................................72
Transformando-o em um IPS ...............................................................................................................73
ANEXO 5 – TUTORIAL PARA INSTALAÇÃO DO HIDS AIDE ..................................... 74
Instalação e Configuração do AIDE.......................................................................................................74
Fazendo uma auditoria com o AIDE .....................................................................................................75
Realizando a auditoria: ........................................................................................................................76
ANEXO 6 – TUTORIAL PARA INSTALAÇÃO DO HIDS OSSEC .................................. 77
Instalação e Configuração do OSSEC ....................................................................................................77
Testando o OSSEC ................................................................................................................................80
Instalação do Postfix: .............................................................................................................................80
Instalando o OSSEC como servidor.......................................................................................................81
Configurando Clientes (Agentes) ...........................................................................................................81
Adicionando Clientes ao servidor ..........................................................................................................81
OSSEC-WUI ..........................................................................................................................................82
Instalação do Servidor com suporte ao php: .........................................................................................82
ANEXO 7 – TUTORIAL PARA INSTALAÇÃO DO HIDS TRIPWIRE .......................... 85
Instalação e Configuração do Tripwire .................................................................................................85
Gerar a base inicial de dados. ..............................................................................................................89
Verificação de integridade do sistema: ................................................................................................89
Atualizando a base de dados: ..............................................................................................................89
ANEXO 8 – TUTORIAL PARA INSTALAÇÃO DO HIDS OSIRIS.................................. 90
Instalação do Servidor .........................................................................................................................90
Acessando pelo console.......................................................................................................................91
Adicionar o servidor para ser monitorado: ..........................................................................................94
Adicionar um cliente para ser monitorado...........................................................................................98
ANEXO 9 – TUTORIAL PARA INSTALAÇÃO DO SCANNER DE
VULNERABILIDADES WEB NIKTO............................................................................... 100
Instalação e Configuração ..................................................................................................................100
Atualizar a base de dados do nikto ....................................................................................................100
Realizar um teste na máquina local: ..................................................................................................101
Utilizar uma forma para “driblar” um possível IDS:............................................................................101
ANEXO 10 – TUTORIAL PARA INSTALAÇÃO DO HIDS LABRADOR................... 102
Instalação e Configuração ..................................................................................................................102
Verificando módulos do Perl necessários para a execução do Labrador:............................................102
Listar os arquivos que o arquivo de regras irá ler:..............................................................................103
Criar a base de dados.........................................................................................................................103
Fazer a verificação nos arquivos ........................................................................................................104
Fazer a restauração dos arquivos.......................................................................................................104
Instalação e Configuração ..................................................................................................................105
Gerar o arquivo necessário para adicionar as regras ao firewall. .......................................................105
Adicionar as regras do firewall baseadas no Snort a partir do fwsnort: .............................................106
ANEXO 12 – TUTORIAL PARA INSTALAÇÃO DO IPS HLBR.................................. 107
Instalação e Configuração ..................................................................................................................107
Configuração das interfaces...............................................................................................................107
Configuração do arquivo hlbr.config ..................................................................................................107
Acrescentar regra ..............................................................................................................................108
Iniciar o daemon do HLBR:.................................................................................................................109
Verificar se o HLBR está executando:.................................................................................................109
Visualizar os arquivos de log:.............................................................................................................109
ANEXO 13 – TUTORIAL PARA INSTALAÇÃO DO HONEYPOT HONEYD ........... 110
Instalação e Configuração ..................................................................................................................110
Direcionar o tráfego para o HoneyPot: ..............................................................................................110
Alterando as configurações default: ..................................................................................................110
Configuração do honeyd.conf ............................................................................................................111
Iniciar o daemon do Honeyd:.............................................................................................................112
Alguns testes .....................................................................................................................................112
ANEXO 14 – TUTORIAL PARA INSTALAÇÃO DO SCANNER DE
VULNERABILIDADES NESSUS ....................................................................................... 113
Instalação e Configuração ..................................................................................................................113
Criar um usuário para acessar o servidor: ..........................................................................................113
Iniciar o servidor Nessus. ...................................................................................................................114
Atualizar a lista de plugins do Nessus. ...............................................................................................115
Realizando um scaneamento: ............................................................................................................118
ANEXO 15 – TUTORIAL PARA INSTALAÇÃO DO OSSIM........................................ 122
Instalação e Configuração ..................................................................................................................122
Instalar o Ossim com o MYSQL no Debian..........................................................................................123
Adicionar as tabelas de plugins:.........................................................................................................124
Instalar o servidor do Ossim: .............................................................................................................124
Instalar o um agente localmente: ......................................................................................................128
Modificar as configurações do Agente: ..............................................................................................129
Instalar o Servidor de Web: ...............................................................................................................129
Instalar o pacote phpgacl...................................................................................................................130
Instalar os Plugins ..............................................................................................................................132
snort .....................................................................................................................................................132
ntop......................................................................................................................................................135
nagios ...................................................................................................................................................137
Outros plugins......................................................................................................................................140
Osiris ....................................................................................................................................................140
Instalar o FrameWork: .......................................................................................................................140
ANEXO 16 – TUTORIAL PARA INSTALAÇÃO DO PRELUDE ................................. 146
Instalação e Configuração ..................................................................................................................146
O registro do cliente no servidor........................................................................................................149
Instalar o Web Front Prewikka...........................................................................................................150
Instalar o servidor de Web:................................................................................................................152
ÍNDICE DE FIGURAS
Figura 1 - Cenário idealizado....................................................................................................... 31
Figura 2 - Página inicial do Setup do AcidBase............................................................................ 43
Figura 3 – Criar as tabelas ........................................................................................................... 43
Figura 4 – Tabelas adicionadas.................................................................................................... 44
Figura 5 - Página inicial do AcidBase ........................................................................................... 44
Figura 6 - Página inicial do OSSEC-WUI ....................................................................................... 84
Figura 7 – Autorização da criação da site key do Tripwire.......................................................... 85
Figura 8 - Autorização da criação da local key do Tripwire......................................................... 86
Figura 9 – Reconstruir o arquivo de configuração do Tripwire................................................... 86
Figura 10 – Reconstruir o arquivo de políticas do Tripwire ........................................................ 86
Figura 11 – Informar senha para site key do Tripwire ................................................................ 87
Figura 12 – Confirmar senha para site key do Tripwire .............................................................. 87
Figura 13 – Informar senha para local key do Tripwire............................................................... 87
Figura 14 – Confirmar senha para local key do Tripwire ............................................................ 87
Figura 15 – Instalação do Tripwire concluída.............................................................................. 88
Figura 16 – Baixar plugins Nessus I ........................................................................................... 115
Figura 17 – Baixar plugins Nessus II .......................................................................................... 115
Figura 18 – Baixar plugins Nessus III ......................................................................................... 116
Figura 19 – Baixar plugins Nessus IV ......................................................................................... 116
Figura 20 – Baixar plugins Nessus V .......................................................................................... 117
Figura 21 – Tela de logins do Nessus-Client .............................................................................. 118
Figura 22 – Tela de seleção de plugins do Nessus-Client.......................................................... 118
Figura 23 – Iniciar um scaneamento no Nessus........................................................................ 119
Figura 24 – Tela de verificação do Nessus................................................................................. 119
Figura 25 – Relatório do Nessus................................................................................................ 120
Figura 26 – Salvar relatório ....................................................................................................... 120
Figura 27 – Relatório do Nessus gerado em html ..................................................................... 121
Figura 28 – Interface usada no Debconf ................................................................................... 123
Figura 29 – Prioridade das perguntas do Debconf.................................................................... 123
Figura 30 – Nome do servidor do OSSIM .................................................................................. 125
Figura 31 – IP do servidor OSSIM .............................................................................................. 125
Figura 32 – Nome do Framework.............................................................................................. 125
Figura 33 – IP do Framework .................................................................................................... 125
Figura 34 – Porta do Framework............................................................................................... 126
Figura 35 – Nome do banco do servidor OSSIM ....................................................................... 126
Figura 36 – Hostname do servidor MYSQL................................................................................ 126
Figura 37 – Nome do administrador do banco ossim ............................................................... 126
Figura 38 – Senha do usuário do banco do servidor MYSQL .................................................... 126
Figura 39 – Nome do banco pertencente ao Snort................................................................... 127
Figura 40 – Hostname do servidor MYSQL................................................................................ 127
Figura 41 – Nome do administrador do banco snort ................................................................ 127
Figura 42 – Senha do administrador do banco ......................................................................... 127
Figura 43 – Nome do banco pertencente ao Osvdb ................................................................. 128
Figura 44 – Hostname do servidor MYSQL................................................................................ 128
Figura 45 – Nome do administrador do banco osvdb............................................................... 128
Figura 46 – Senha do administrador do banco ......................................................................... 128
Figura 47 – Tela inicial de configuração do libphp-adodb ........................................................ 130
Figura 48 – Seleção das versões do Apache.............................................................................. 130
Figura 49 – Configuração da base de dados do phpgacl........................................................... 130
Figura 50 – Escolha do banco a ser utilizado pelo phpgacl ....................................................... 131
Figura 51 – Senha do administrador do banco MYSQL............................................................. 131
Figura 52 – Senha do MYSQL para o phpgacl............................................................................ 131
Figura 53 – Confirmação da senha............................................................................................ 131
Figura 54 – Interface utilizada pelo Snort ................................................................................. 132
Figura 55 – Rede a ser monitorada pelo Snort ......................................................................... 132
Figura 56 – Usuário que irá receber os emails do Snort ........................................................... 132
Figura 57 – Configurar a base de dados .................................................................................... 133
Figura 58 – Hostname do servidor MYSQL................................................................................ 133
Figura 59 – Nome do banco utilizado pelo Snort...................................................................... 133
Figura 60 – Nome do administrador do MYSQL........................................................................ 133
Figura 61 – Senha do administrador do MYSQL........................................................................ 134
Figura 62 – Interface que o Ntop irá escutar ............................................................................ 135
Figura 63 – Nome do usuário que irá rodar o daemon do Ntop............................................... 136
Figura 64 – Página inicial do Ntop............................................................................................. 136
Figura 65 – Nome do Domínio do servidor ............................................................................... 137
Figura 66 – Opção de escolha para uso de senhas no servidor ................................................ 137
Figura 67 – Opção de escolha para configurações vindas de um servidor WINS ..................... 137
Figura 68 – Seleção das versões do Apache.............................................................................. 138
Figura 69 – Senha para administrar o Nagios via web .............................................................. 138
Figura 70 – Opção de habilitar os comandos externos do Nagios ............................................ 138
Figura 71 – Opção de escolha da configuração do banco do nagios-mysql.............................. 139
Figura 72 – Senha do administrador do MYSQL........................................................................ 139
Figura 73 – Senha do MYSQL para o phpgacl............................................................................ 139
Figura 74 – Confirmação da senha............................................................................................ 139
Figura 75 – Configuração da base de dados do acidbase ......................................................... 140
Figura 76 – Escolha do banco a ser utilizado pelo acidbase ..................................................... 140
Figura 77 – Senha do administrador do banco MYSQL............................................................. 141
Figura 78 – Senha do MYSQL para o acidbase .......................................................................... 141
Figura 79 – Confirmação da senha............................................................................................ 141
Figura 80 – Seleção das versões do Apache.............................................................................. 141
Figura 81 – Nome do banco do servidor OSSIM ....................................................................... 142
Figura 82 – Hostname do servidor MYSQL................................................................................ 142
Figura 83 – Nome do administrador do banco ossim ............................................................... 142
Figura 84 – Senha do usuário do banco do servidor MYSQL .................................................... 142
Figura 85 – Nome do banco do OSSIM ACL .............................................................................. 142
Figura 86 – Hostname do servidor MYSQL................................................................................ 143
Figura 87 – Nome do administrador do banco ossim ............................................................... 143
Figura 88 – Senha do usuário do banco do servidor MYSQL .................................................... 143
Figura 89 – Página de configuração do phpGACL I.................................................................... 143
Figura 90 – Página de configuração do phpGACL II................................................................... 144
Figura 91 – Página de configuração do phpGACL III.................................................................. 144
Figura 92 – Página de configuração do phpGACL IV ................................................................. 144
Figura 93 – Página de configuração do phpGACL V .................................................................. 145
Figura 94 – Página de login do OSSIM....................................................................................... 145
Figura 95 – Página de atualizações das aplicações instaladas pelo OSSIM............................... 145
Figura 96 – Configuração da base de dados do acidbase ......................................................... 147
Figura 97 – Escolha do banco a ser utilizado pelo prelude-manager ....................................... 147
Figura 98 – Senha do administrador do banco MYSQL............................................................. 147
Figura 99 – Senha do MYSQL para o prelude-manager ............................................................ 147
Figura 100 – Confirmação da senha.......................................................................................... 147
Figura 101 – Configuração da base de dados do acidbase ....................................................... 150
Figura 102 – Escolha do banco a ser utilizado pelo prewikka................................................... 151
Figura 103 – Senha do administrador do banco MYSQL........................................................... 151
Figura 104 – Senha do MYSQL para o prewikka........................................................................ 151
Figura 105 – Confirmação da senha.......................................................................................... 151
Figura 106 – Tela de login do Prewikka..................................................................................... 153
1.0 INTRODUÇÃO
Com o passar dos anos, o número de incidentes de segurança em informática
teve um grande aumento. A disponibilidade de conexão a todo o momento, e com taxas
de transmissão cada vez mais elevadas juntamente com o uso difundido da utilização
das redes de computadores e serviços usados para Internet, tem contribuído para o
crescimento do número de ataques, tais como worms, prospecção (port scan), negação
de serviço (DoS), força bruta (bruteforce), estouro de memória (buffer overflow), entre
outros.
A definição de intrusão ou ataque se dá como qualquer conjunto de ações que
tentam, de alguma forma, comprometer a integridade, confidencialidade ou
disponibilidade de um recurso computacional, mesmo que este obtenha êxito ou não
destas ações.
Os sistemas de detecção de intrusão (IDS) têm sido utilizados para proteção,
monitoração de atividades maliciosas e diversos tipos de ataques. O IDS funciona como
um monitoramento do ambiente buscando indícios de ataques para enviar diferentes
alertas aos responsáveis. De uma forma muito básica, o IDS funciona como um sniffer
de rede que compara o conteúdo da informação dos pacotes que trafegam pelo meio,
com uma base de dados de assinaturas de ataques e/ou anomalias que indicam potencial
atividade maliciosa. Em outra forma, o IDS analisa as modificações realizadas na
máquina e as compara com uma base de dados, gerada anteriormente, atrás de
modificações realizadas.
É notório lembra que, não vale apenas se proteger com o IDS ou um firewall. É
preciso ter outros mecanismos de rede que possam auxiliar nessa tarefa, como
ferramentas de auditoria usadas com o intuito de detectar e indicar as possíveis
vulnerabilidades encontradas nos computadores.
9
2.0 JUSTIFICATIVAS DE EXECUÇÃO DO PROJETO
O tema foi escolhido devido ao nosso Estado ser deficiente em assuntos
relacionados à segurança de redes. Além disso, o projeto se mostrou interessante devido
a ser um tema atual e por ser pouco abordado.
Este projeto procura reunir um conjunto de boas práticas em instalação,
configuração e administração de ferramentas de respostas a incidentes de segurança em
redes conectadas à Internet. A implantação destas ferramentas minimiza as chances de
ocorrerem falhas de segurança e contribuem para a administração das redes e recursos
de forma segura.
Algumas das ferramentas apresentadas são independentes da plataforma que as
utiliza. O trabalho em conjuntos delas ajuda na segurança em profundidade, onde é
necessário a criação de diversos níveis de defesa a serem utilizados para a proteção de
um ambiente. O firewall pode funcionar como a primeira linha de defesa, realizando o
controle de acesso no nível de rede. A autenticação pode ser usada como segunda linha
de defesa, bem como um sistema de detecção de intrusão (IDS).
Em outro ambiente poderia colocar o IDS como a primeira linha de defesa,
realizando ações antes do acesso ao firewall, tornando este como a segunda linha de
defesa. Mas adiante estaria a terceira linha de defesa formada por um sistema de
autenticação ou um scanner de vulnerabilidades.
10
3.0 OBJETIVOS E METAS
Esse projeto tem como objetivo o estudo de ferramentas de Respostas a
Incidentes de Segurança, utilizando Sistemas de Detecção de Intrusão e de
Vulnerabilidades. Focaram-se as ferramentas mais utilizadas e com os melhores
desempenhos usados em diversas redes, bem como a instalação e configuração das
mesmas.
A meta é analisar, planejar e implementar uma rede com ênfase em segurança.
Utilizando-se dos log’s gerados pelos daemons na busca de possíveis anomalias, para só
então encontrar soluções. Dessa forma, garantindo um ambiente mais propício e seguro
para o tráfego de informações.
11
4.0 TIPOS DE IDS
Os IDS são classificados quanto à arquitetura em quatro tipos:
• Baseado em host, Host-Based Intrusion Detection System (HIDS);
•
Baseado em rede, Network-Based Intrusion Detection System (NIDS);
• IDS híbrido (Hybrid IDS), que aproveita as melhores características do
HIDS e do NIDS.
• Baseado em kernel, Kernel Intrusion Detection (KIDS);
A combinação de diferentes tipos de IDS é importante para que a organização
fique protegida contra todos os tipos de ameaças, principalmente dos ataques realizados
internamente e daqueles vindos da internet. Por exemplo, as invasões vindas da internet
podem ser detectadas pelo uso de IDS baseado em rede (NIDS), enquanto os servidores
da DMZ e da rede interna podem ser monitorados também com o uso de IDS baseado
em host (HIDS) ou IDS híbridos. Já os kernels IDS são a mais nova e recente fronteira
da segurança computacional, podendo até mesmo impossibilitar maiores danos a um
sistema que tenha sido comprometido.
4.1 HIDS
Faz o monitoramento do sistema com base em informações de arquivos de log’s
ou de eventos de auditoria. Os eventos de auditoria são gerados pelo kernel do sistema
operacional, portanto, possuem mais proteção e detalhes do que os arquivos de log’s. O
HIDS fiscaliza acessos e alterações em importantes arquivos do sistema, modificações
nos privilégios dos usuários, processos do sistema e programas em execução, uso da
CPU e detecção de port scanning.
O HIDS pode também verifica a checagem da integridade dos arquivos do
sistema, fazendo com que arquivos corrompidos, que podem vir a ser backdoors, são
detectados antes que causem problemas mais sérios.
4.1.1 Pontos positivos do HIDS:
• Verificar o sucesso ou a falha de um ataque;
• Atividades específicas do sistema podem ser monitoradas detalhadamente, como
o acesso a arquivos, modificação em permissões de arquivos, logon e logoff do
usuário e funções do administrador;
12
• Ataques que utilizam criptografia podem não ser notados pelos NIDS, mas
descobertos pelos HIDS, pois o Sistema Operacional primeiro decifra os
pacotes;
• Ataques que ocorrem fisicamente no servidor podem ser detectados;
• É independente da topologia da rede, podendo ser utilizado em redes separadas
por switches;
• Gera poucos falsos positivos, ou seja, poucos alarmes falsos de ataques;
• Não necessita de hardware adicional.
4.1.2 Pontos negativos do HIDS:
• Dificuldade de gerenciar e configurar em todos os hosts da rede que devem ser
monitorados;
• Dependência do sistema operacional, ou seja, um HIDS que funciona no Linux é
totalmente diferente de um HIDS que opera no Windows;
• Não é capaz de detectar ataques de rede, como o scanning de rede ou o Smurf,
por exemplo;
• Caso o HIDS seja invadido, as informações podem ser perdidas;
• Necessita de espaço de armazenamento adicional para os registros do sistema;
• Não têm bom desempenho em sistemas operacionais que geram poucas
informações de auditoria, como é o caso do Windows 98;
• Apresenta diminuição de desempenho no host monitorado.
4.2 NIDS
O sistema de detecção de intrusão baseado em rede (NIDS) monitora o tráfego
do segmento da rede e os hosts nele conectados, geralmente posicionado em um
segmento de rede ou switch e com a interface de rede atuando em modo promíscuo.
O NIDS é eficiente principalmente contra ataques à suíte de protocolos TCP/IP,
como port scanning, IP spoofing ou SYN flooding, buffer overflow, entre outros. A
detecção é realizada com a captura e análise dos cabeçalhos e conteúdos dos pacotes,
que são comparados em uma base de dados de assinaturas de ataques e/ou anomalias
conhecidos. Exemplos de NIDS são o RealSecure, o NFR e o Snort.
13
Os NIDS podem ser divididos em duas partes que atuam em conjunto, que são
os sensores (hosts) e o gerenciador ou console. Os sensores devem ser espalhados pelos
segmentos de rede e são os responsáveis pelo monitoramento do tráfego de rede,
executando toda a análise localmente, e reportando os ataques para um console de
gerenciamento central. Muitos desses sensores atuam em modo oculto (stealth),
tornando mais difícil para um atacante determinar a presença e localização de um
determinado sensor. Já o gerenciador ou console faz com que os sensores sejam
administrados de modo integrado, com a definição dos tipos de resposta a serem
utilizados para cada tipo de comportamento suspeito percebido. A comunicação entre
sensores e gerenciador é criptografada.
Uma característica importante do NIDS é sua capacidade de detectar ataques na
rede em tempo real. Ele pode capturar os pacotes referentes ao ataque, analisar e
responder à invasão praticamente ao mesmo tempo em que o servidor é atacado. A
resposta poderia ser, por exemplo, o envio de alertas ou o término da conexão. Após a
análise feita pelo sistema de detecção, os resultados possíveis em um IDS são:
• Tráfego suspeito detectado (comportamento normal);
• Tráfego suspeito não detectado (falso negativo);
• Tráfego legítimo que o IDS analisa como sendo suspeito (falso positivo);
• Tráfego legítimo que o IDS analisa como sendo legítimo (comportamento
normal).
Para um administrador de rede, uns dos principais problemas encontrados no uso
de IDS são os falsos positivos, que nada mais são do que os alarmes falsos, como um
alarme indicando ataque a um serviço inexistente no ambiente. É preciso conhecer bem
o ambiente a ser monitorado, refinar as regras e/ou assinaturas baseadas nesse ambiente
para diminuir o número de falsos positivos.
4.2.1 Pontos positivos do NIDS:
• O monitoramento pode ser realizado em um ambiente com múltiplas
plataformas;
• Com a análise de cabeçalhos e do payload de pacotes, ataques de rede como o
port scanning, IP Spoofing ou Teardrop podem ser detectados;
• Pode monitorar portas conhecidas como a porta TCP 80 do HTTP.
14
• Os ataques podem ser detectados e identificados em tempo real e o usuário pode
determinar rapidamente o tipo de resposta apropriada;
• O NIDS é capaz de perceber não só as invasões, mas também as tentativas de
ataque que não tiveram resultado;
• Com o NIDS funcionando, é difícil que um cracker possa apagar seus rastros;
• O cracker terá dificuldades em saber se existe ou não um NIDS monitorando
suas atividades;
• Não causa impacto no desempenho da rede.
4.2.2 Pontos negativos do NIDS:
• Perda de pacotes em redes saturadas;
• Dependência de base de assinaturas de ataques atualizada;
• Dificuldade de compreensão de protocolos de aplicação específicos, conto o
SMB;
• Não são capazes de monitorar o tráfego cifrado;
• Dificuldade de utilização em redes segmentadas;
• Dificuldade de implementação em redes rápidas.
4.3 IDS Híbrido
O HIDS e o NIDS possuem suas vantagens e desvantagens. Isso nos leva a crer
que no mundo de hoje, a melhor estratégia é utilizar ambos os tipos para a proteção dos
recursos da organização. Por exemplo, o NIDS detectaria SYN Flooding, Smurf,
Teardrop, port scanning e no caso de uma pichação do site (web defacement), por
exemplo, o HIDS se encarregaria de detectar.
Assim, a utilização dos dois tipos de IDS ao mesmo tempo traz grandes
benefícios. O IDS híbrido (Hybrid IDS) tem como objetivo combinar os pontos fortes
do HIDS e do NIDS, a fim de oferecer uma melhor capacidade de detecção de intrusões.
Por outro lado, ele herda também os pontos negativos de ambos, como é o caso da
escalabilidade. Seria necessário instalar um IDS híbrido em cada equipamento.
4.4 KIDS
O Kernel Intrusion Detection System (KIDS) nada mais é que um sistema de
detecção de intrusos, porém a função de capturar e comparar pacotes com regras pré15
existentes é exercido no kernel em forma de módulo. Possui as idéias básicas de um
IDS, sem a utilização da biblioteca libpcap (como o tcpdump, wireshark, SNORT, etc)
tratando os pacotes no próprio kernel, obtendo assim um ganho no desempenho do
sistema.
Dessa forma, pode-se criar uma última fronteira de auditoria e também de
barreira para um invasor que possa ganhar acesso ao sistema.
16
5.0 MÉTODOS DE DETECÇÃO
5.1 Baseados em assinaturas (conhecimento)
O funcionamento desse método se baseia na procura por um padrão ou uma
assinatura de ataque que esteja em uma base de dados com informações sobre ataques
conhecidos. Essas assinaturas indicam o conteúdo que deve ser procurado no cabeçalho
e no payload dos pacotes.
5.1.1 Vantagens
•
São mais eficientes, gerando um numero bem menor de falsos positivos;
•
As assinaturas são fáceis de serem desenvolvidas.
5.1.2 Desvantagens
• Identificam apenas ataques conhecidos, necessitando de uma constante
atualização no conjunto de assinaturas;
• Como grande parte das assinaturas são muito especificas, ataques
variantes não são detectados.
• Pode ser enganado por meio de técnicas como a inserção de espaços em
branco no stream de dados do ataque.
5.2 Baseados em comportamento (anomalias)
Esse método é baseado em desvios de comportamento dos usuários ou dos
sistemas. O IDS estabelece uma base com padrões de uso normal, e qualquer
comportamento que desviar do padrão será considerado como uma possível intrusão.
Em outras palavras, tudo que não foi visto ou relacionado como padrão anteriormente,
pode ser perigoso e, portanto, deve ser evitado.
A decisão é tomada por meio de uma analise estatística ou heurística, a fim de
encontrar possíveis mudanças de comportamento, tais como aumento de tráfego,
utilização da CPU, atividade de disco, logon de usuários, acesso a discos etc.
5.2.1 Vantagens
• Por detectar comportamentos e não usuários é possível detectar um ataque
desconhecidos;
17
• Gera informações que podem ser usadas para definir assinaturas.
5.2.2 Desvantagens
• É comum produzir grande numero de alarmes falsos, tanto positivos como
negativos. Isso se deve a comportamentos imprevisíveis dos usuários e de
sistemas;
• Devem ser realizadas muitas sessões para coletar dados para o sistema, com o
intuito de caracterizar os padrões normais de comportamento.
18
6.0 COMPORTAMENTOS PÓS-DETECÇÃO
Após a detecção do possível ataque, o IDS realiza algum tipo de
comportamento. Esse tipo de comportamento pode vir a ser de duas formas, passivo ou
ativo. De modo geral, IDS (Intrusion Detection System) é uma solução passiva de
segurança ao passo que IPS (Intrusion Prevention System) é uma solução ativa de
segurança.
6.1 Passivo
Em um sistema passivo, o IDS detecta uma potencial violação da segurança,
registra a informação (log) e dispara um alerta.
6.2 Ativo
Nesse sistema, o IPS responde à atividade suspeita finalizando a sessão de
usuário ou acrescentando regras no Firewall para bloquear o tráfego de rede da fonte
suspeita, que pode ser maliciosa ou não. Por outro lado, o IPS tem como ponto negativo
a sua suscetibilidade a ataques de negação de serviços, maior do que em IDS, o que
exige uma configuração eficiente sem comprometer a disponibilidade do ambiente.
19
7.0 HONEYPOT
Honeypot (Pote de Mel) são recursos computacionais dedicados a serem sondados,
atacados ou comprometidos, com o propósito de reunir o máximo de informações
possíveis sobre os atacantes, como a análise de suas ações e sua identificação na rede.
Como não possui nenhum serviço rodando em produção, apenas serviços feitos
para captura, qualquer interação com o honeypot, como uma sondagem ou verificação,
pode ser, a princípio, suspeita.
Diversos serviços podem ser simulados ou atendidos por um Honeypot, como FTP,
servidor de e-mail, SSH, telnet, portas específicas para alguns programas, etc. Um
conjunto formado por vários HoneyPot subtende-se como uma HoneyNet.
7.1 Vantagens
• Facilidade de detecção de pragas que se propagam aleatoriamente pela rede;
• Baixa incidência de falsos positivos;
• Fácil de implantar e baixa necessidade de recursos;
• Possibilidade de detectar novas formas de ataques.
7.2 Desvantagens
• Análise restrita, só consegue enxergar o tráfego direcionado a eles;
• Pode servir como porta para o invasor, sendo um risco adicional se mal
configurado.
7.3 Tipos de HoneyPot
7.3.1 Baixa Interatividade
• Emulam serviços e Sistemas Operacionais;
• Fácil de configurar e manter;
• Maior flexibilidade;
• Atacantes não têm acesso à máquina real, ou seja, não tem a possibilidade ter o
controle da máquina;
• Difíceis de iludir atacantes avançados/determinados;
• Ataques e ações não idealizadas podem não funcionar e não ser detectadas;
20
• Por serem razoavelmente seguros, são apropriados para redes de produção;
• Excelentes complementos para Sistemas de Detecção de Intrusão (SDI).
• Exemplos: Back Of_cer Friendly, Deception Toolkit(DTK), Specter, Honeyd,
Labrea, Tarpit.
7.3.2 Alta Interatividade
• Serviços e Sistemas reais;
• Mais difícil de instalar e manter;
• Menor flexibilidade;
• Atacante pode assumir controle total do honeypot;
• Coleta extensa de informações, incluindo ferramentas e comandos;
• Identifica novas vulnerabilidades;
• Difícil de distinguir de um sistema de produção
• Exemplos: UML, VMware, Mantrap, sistemas e aplicativos reais; instalação
padrão de sistemas operacionais; artifícios de monitoração das atividades dos
atacantes(LKM, patches).
21
8.0 FERRAMENTAS
8.1 Labrador
Labrador ou labrador-ids é um HIDS desenvolvido em Perl. É uma ferramenta
multi-plataforma criada para identificar quaisquer modificações indesejadas feitas em
seu sistema.
A instalação do Labrador pode ser vista no anexo 10.
8.2 Osiris
Osiris é um HIDS que pode ser usado para monitorar alterações em uma rede de
hosts ao longo do tempo e comunicar essas alterações para o administrador. Incluindo
quaisquer alterações nos sistemas de arquivos. De tempos em tempos, o Osiris tira
snapshots do sistema de arquivos e armazena em um banco de dados. Esses bancos de
dados, bem como as configurações e log’s, são armazenados em um host de
gerenciamento central. Quando alterações são detectadas, ele irá registrar estes eventos
no log do sistema e opcionalmente enviar e-mail para um administrador. Além disso, ele
é capaz de monitorar outras informações de sistema, incluindo listas de usuários, listas
de grupo e os módulos do kernel ou extensões.
O Osiris possui uma arquitetura cliente/servidor e não é um software baseado em
assinaturas, ele detecta e comunica as alterações em um sistema de arquivos e permite
que o administrador determine que (caso tenha alguma) ação precisa ser feita.
Pode ser feito a instalação em diversos sistemas operacionais, bem como
Windows, sistemas BSD, Linux, Mac OS X, AIX, IRIX.
A instalação do Osiris pode ser vista no anexo 8.
8.3 OSSEC
O ossec hids é software HIDS de código aberto que possui como desenvolvedor
principal o brasileiro Daniel Cid. Ele tem a capacidade de trabalhar localmente, ou
trabalhar em uma rede como cliente e servidor. Pode realizar operações de análise de
log’s, checagem de integridade de sistemas e arquivos, monitora registro do Windows,
detecção de rootkits, alertas em tempo real e respostas pró-ativas (regras no firewall).
22
O OSSEC é multiplataforma e pode ser instalado na maioria dos Sistemas
Operacionais, incluindo Linux, OpenBSD, FreeBSD, MacOS, Solaris e Windows
(somente o agente).
Ele pode trabalhar de três formas:
• Local – funciona na maquina localmente.
• Agente – funciona como cliente e envia todas as informações para o
servidor processar e analisar
• Servidor – analisa e une os log's e informações de vários agentes.
8.3.1 OSSEC-WUI
Interface Web front do OSSEC desenvolvido em PHP. Ele serve para ajudar no
monitoramento do OSSEC, seja localmente, servidor ou agente. Algumas de suas
versões possuem alguns pré-requisitos. A última versão tem como pré-requisitos PHP
na versão 4 ou 5, além de ter instalado o OSSEC com versão igual ou superior a 0.9-3.
A instalação do OSSEC, juntamente com sua interface gráfica, pode ser vista no
anexo 6.
8.4 Tripwire
O Tripwire é um software HIDS, e como tal serve para notificar o administrador
da ocorrência de modificações em arquivos vitais do sistema, e, conseqüentemente,
minimizar o impacto de invasões que não puderam ser impedidas por seu firewall.
Ele gera uma base de dados contendo informações como hash, permissões e data
de modificação de cada arquivo pré-estabelecido para proteção. No processo de
verificação, una nova base de dados é gerada e comparada à primeira, emitindo um
relatório para o administrador.
A instalação do Tripwire pode ser vista no anexo 7.
8.5 AIDE
O AIDE (Advanced Intrusion Detection Environment) também é um software de
HIDS e para muitos é considerado um substituto para a ferramenta de verificação de
integridade de arquivo Tripwire, fazendo coisas além da capacidade deste. O AIDE cria
um banco de dados através de expressões regulares de regras que são encontrados em
23
um arquivo de configuração, e uma vez que esse banco de dados é inicializado, ele pode
ser usado para verificar a integridade de arquivos críticos e de usuários.
AIDE utiliza os mais populares algoritmos de digestão de mensagens (md5,
sha1, rmd160, tiger, haval, etc) para checar a integridade de arquivo. Outros algoritmos
podem ser adicionados com facilidade. Todos os atributos de arquivo também podem
ser verificados a procura de inconsistências. Ele pode ler também, os bancos de dados
de versões mais antigas ou mais recentes.
O AIDE pode ser executado em qualquer sistema baseado no Unix, como
Solaris, Linux, FreeBSD, Unixware, BSDi, OpenBSD, AIX, HP-UX, Cygwin, etc.
A instalação do AIDE pode ser vista no anexo 5.
8.6 Snort
Snort é uma ferramenta de NIDS, bastante utilizada, pois, além de gratuito, é
open source. Ele é sniffer que tem como diferencial a capacidade de inspecionar o payload do
pacote, área que contém os dados do mesmo, fazendo os registros dos pacotes, além de detectar
as invasões.
Possui recursos de farejamento de pacotes para a captura dos dados e um
mecanismo de registro de pacotes (baseado em assinaturas) e de detecção de invasão.
Também pode ser configurado para enviar alertas em tempo real evitando assim a
necessidade de monitorar o sistema continuamente, seja proveniente da rede externa, da
rede internet ou de um segmento de rede.
A arquitetura do Snort é composta por quatro componentes básicos:
• O farejador;
• O pré-processador;
• O mecanismo de detecção;
•
Alerta/registro.
Assim como o TCPDump, o Snort faz uso de uma biblioteca chamada libcap
para realizar a captura dos pacotes. Esta biblioteca além de capturar os dados destinados
à própria máquina é capaz de receber os pacotes destinados a outras máquinas dentro do
mesmo segmento de rede.
24
O Snort é considerado um SDI leve, não requer grandes recursos de hardware e
por isso pode ser instalado em diversas plataformas, tais como sistema Solaris, Linux,
sistemas BSD, HP-UX, IRIX, Windows, Power PC, MacOS X e PA-RISC.
A instalação do Snort pode ser vista nos anexos 1,2 e 3.
8.6.1 SnortNotify
É uma aplicação desenvolvida em Perl. Ela procura início de sessões de alertas,
através do banco do snort e as envia, como relatório, para o email cadastrado. Devido ao
grande número de alertas que o Snort gera, é aconselhável usar o SnortNotify apenas em
redes pequenas. Caso contrário, o servidor SMTP está sempre ocupado e a caixa de
emails sempre cheia.
A instalação do SnortNotify pode ser vista no anexo 1.
8.6.2 Snort-inline
Snort-Inline é um IPS que utiliza as assinaturas de um IDS (Snort) existente para
tomar as decisões sobre os pacotes que passam por ele. É basicamente uma versão
modificada do Snort para se tornar um IPS. Ele aceita pacotes de iptables e ipfw via
libipq (linux) ou divert sockets (FreeBSD), em vez de libpcap. Usa, em seguida, a nova
regra do tipo (drop, sdrop, reject) para dizer iptables/ipfw se o pacote que passa por ele
deve ser eliminado, rejeitado, modificados, ou se tem permissão para transmitir com
base um conjunto de regras do Snort.
A instalação do Snort-inline pode ser vista no anexo 4.
8.7 OSSIM
OSSIM é um conjunto de softwares de código-fonte aberto integrados com o
intuito de fornecer uma infra-estrutura de controle de segurança e monitoramento da
rede, permitindo a correlação entre as funcionalidades de cada um dos produtos.
O objetivo do OSSIM é proporcionar um framework capaz de centralizar,
organizar e melhorar a detecção e exibição dos eventos para um melhor gerenciamento
do administrador, obtendo uma visão detalhada sobre todo e qualquer aspecto das suas
redes, hosts, acesso físico, dispositivos, servidor etc.
25
Softwares que integram o OSSIM:
•
Arpwatch – usado para detectar anomalias no MAC;
•
P0f – usado para a detecção passiva de Sistemas Operacionais;
•
Pads - usado para detecção de anomalias de serviço;
•
Nessus – usado para obter avaliação de vulnerabilidades;
•
Snort – IDS que será usado junto com o Nessus;
•
Spade - usada para obter conhecimentos sobre ataques sem assinatura;
•
Tcptrack - usado para obter informações de dados de sessão que podem
conceder informação útil para identificação de ataque;
•
Ntop - cria o banco de dados de informações do qual possamos obter a
detecção de anomalias por comportamento;
•
Nagios - monitora informações de disponibilidade do host e serviço;
•
Osiris - HIDS usado para monitorar alterações em uma rede de hosts;
•
OCS-NG - inventaria os computadores de uma rede;
•
OSSEC – HIDS que checa integridade, rootkits, alterações no registro, etc.
O OSSIM possui um centro de operação de segurança, no qual todas as
informações e eventos críticos são apresentados a ele. Com a utilização de sensores,
tanto de hardwares como de softwares espalhados na rede, os dados são coletados e
enviados para esse centro. Isso se deve graças a um agente localizado no sensor, que
tem como seu papel coletar e enviar as informações ao servidor.
A arquitetura do OSSIM pode ser definida da seguinte maneira:
•
Sensores;
•
Servidor de gerenciamento;
•
Banco de dados;
•
Frontend.
A instalação do OSSIM pode ser vista no anexo 15.
8.8 Prelude
O Prelude é um IDS Híbrido, que suporta diversas aplicações open-source ou
não. Ele reporta os eventos a um sistema centralizado, através de sensores.
26
O Híbrido significa a vantagem de combinar eventos detectados por qualquer
aplicação de segurança, seja IDS’s, qualquer analisador de log's, aplicações de
segurança, shell script, ou qualquer tipo de aplicação que reporte eventos de incidente
de segurança.
As aplicações de segurança utilizam o Prelude graças a sua estrutura feita em C,
Python e Perl.
O Prelude é composto de:
• Sensores - são responsáveis pela detecção de intrusão, e reportar eventos
para um servidor predule-manager, utilizando conexões TLS;
• prelude-manager - processa os eventos, e os envia para armazenamento
(mysql, postgresql,XML, etc);
• prelude console - visualização dos eventos.
8.8.1 Prewikka
Interface Web front do Prelude desenvolvido em Python. Ele serve para ajudar
no monitoramento o Prelude-Manager. Pode ser utilizado com uma porta diferente da
porta padrão do servidor.
A instalação do Prelude, juntamente com o Prewikka, pode ser vista no anexo
16.
8.9 Guardian
Guardian é um IPS que trabalha junto com o Snort. Ele é capaz de atualizar
automaticamente as regras do firewall baseado nos alertas gerados pelo Snort. As regras
atualizadas do firewall bloqueiam todos os dados oriundos da máquina na qual o Snort
gerou o alerta, possivelmente um IP do atacante.
Como o Snort também gera muitos falsos positivos, é possível deixar máquinas
em que o administrador da rede tenha a certeza de que não comprometem o tráfego ou
que não são máquinas de atacantes, como servidores DNS, servidores de EMAIL,
gateways ou qualquer outra máquina que desejar.
Ele trabalha com script e pode gerar regras de bloqueio/desbloqueio em diversos
firewalls, dentre eles ipchains, iptables, ipfwadm, ipfw, ipfilter, etc.
27
A instalação do Guardian pode ser vista no anexo 2.
8.10 Fwsnort
Fwsnort é um IPS que também trabalha junto com o Snort. Ele cria as regras de
iptables baseado nas regras do Snort. Assim, assinaturas conhecidas de ataques críticos
podem ser interpretadas antes de passar para a rede. Além disso, assinaturas da camada
de aplicativo que existem em regras do Snort, podem ser facilmente detectadas. No
caso, ele adiciona uma opção --hex-string para o iptables permitir que as regras do snort
que contenham caracteres hexadecimais sejam tratadas pelo iptables sem que aja
qualquer modificação.
A instalação do FWsnort pode ser vista no anexo 11.
8.11 HLBR
O HLBR (Hogwash Light Brasil) é também classificado como IPS. Ele foi
baseado no IPS desenvolvido por Jason Larsen, chamado de IPS HOGWASH. Ele
funciona como uma bridge, tornando-o invisível na rede, sendo capaz de interceptar
tráfego malicioso baseado em arquivos de regras e assinaturas de ataques.
O HLBR não usa a libpcap para fazer a ponte entre as placas de rede da máquina.
Portanto, o trabalho de capturar, desmontar, analisar e remontar é feito pelo próprio
HLBR. O HLBR é capaz de analisar o pacote TCP em todas as camadas do Modelo OSI
e TCP.
Os valores dos campos dos cabeçalhos de camada 2, 3 e 4 são testados pelas suas
regras. Ele reconhece o formato dos cabeçalhos sem o auxílio da pilha TCP/IP do
sistema operacional. Dessa forma, o HLBR poder negar ataques na camada 3 do
Modelo OSI mesmo a máquina onde ele está instalado não possuir número IP.
A instalação do HLBR pode ser vista no anexo 12.
8.12 Honeyd
O Honeyd é um software para HoneyPot de baixa interação. Foi desenvolvido
por Niels Provos, da Universidade de Michigan, e pode ser instalado tanto em Windows
como na maioria dos sistemas baseados em Unix.
28
Por ele ser de baixa interatividade, significa que ele vai emular sistemas e
serviços de forma simultânea ao nível da pilha TCP/IP. Os sistemas virtuais podem ter
serviços falsos como e-mail, SSH, Telnet, FTP, DNS, backdoors do Windows como o
MyDoom, etc. Ele permite também criar estrurura de ligação em rede, ligação com
outros honeypots e até mesmo ligar máquinas reais a ele.
Cada sistema virtual possui o seu próprio IP. Assim, o honeyd tem a capacidade
de enganar scanners de rede, como o Nmap e o XPROBE, e retornar o campo do
Sistema emulado, baseado no arquivo de assinaturas nmap.prints. Dessa fora, permite
aos Sistemas virtuais responder exatamente como o sistema operacional que ele emula,
quando testado pelo Nmap, por exemplo.
A instalação do Honeyd pode ser vista no anexo 13.
8.13 Nessus
O Nessus é uma ferramenta de auditoria muito usada para detectar e indicar uma
maneira de solucionar as possíveis vulnerabilidades encontradas nos PC’s da rede. Ele
varre todas as portas TCP´s detectando servidores ativos e simula invasões para detectar
vulnerabilidades.
Além de simular invasões para detectar vulnerabilidades, o Nessus faz uma
varredura de portas usando a ferramenta Nmap (portscan) não apenas nas portas padrão,
mas em todas as portas TCP.
O Nessus, até a versão 2.2.8, era uma ferramenta open-source e gratuita. Em sua
versão mais nova e por questões de concorrências com outras empresas de segurança,
que faziam modificações no Nessus e colocavam em seus produtos proprietários para
competir com ele, passou a ser código fechado e gratuito.
Uma das principais características do Nessus é a sua tecnologia cliente-servidor.
O usuário basta apenas ter instalado o cliente em sua máquina e os servidores podem ser
alocados em pontos estratégicos da rede, permitindo testes de vários pontos diferentes.
Um cliente central ou múltiplos clientes podem controlar todos os servidores. Dessa
forma, o servidor executa os teste e o cliente configura e emite os relatórios.
O Nessus pode ser instalado na maioria dos sistemas baseados no Unix e no
Windows.
29
A instalação do Nessus pode ser vista no anexo 14.
8.13.1 Inprotect
Inprotect é um Web-front para o Nessus e o Nmap. Foi escrito em PHP, Perl e
utiliza o MySql, como banco de dados, para fazer as consultas. Ele apresenta os
resultados da verificação através de algum navegador, notificação por email ou
exportados para um arquivo de formato PDF.
A instalação do Inprotect em Sistemas GNU Debian possui alguns erros. Ele foi
melhor desenvolvido para Sistemas baseados em Red Hat.
8.14 Nikto
O Nikto nada mais é, que um scanner, escrito em Perl, de busca ou detecção de
vulnerabilidades em webservers. Tem a capacidade de descobrir mais de 625 servidores
e conhecer quais são as principais vulnerabilidades de mais de 230 versões específicas
de webservers.
Possui um banco de dados em formato CSV, no qual é possível realizar
atualizações da base de dados de vulnerabilidades, assim como seu próprio código
fonte. Ele determina qual é o diretório que contém CGI’s, alem de trocar as versões
HTTP conforme é necessário para fazer as requisições ao servidor, usando ou não
suporte a SSL. Pode passar por Proxy autenticado e ainda varre várias portas no
servidor para conseguir encontrar um webserver. Também pode ser acrescido de plugins
desenvolvidos em Perl para ter um melhor desempenho e a saída do relatório
direcionada para arquivos do tipo TXT, HTML e CVS.
O Nikto não esconde sua própria identificação porque é uma ferramenta de
auxílio ao administrador de redes, não necessariamente direcionada ao público com
interesse na prática de invasões. Porém, ele também suporta algumas técnicas de evasão
de IDS’s presentes na LibWhisker, na qual é baseado.
A instalação do Nikto pode ser vista no anexo 9.
30
9.0 CENÁRIO
Um dos possíveis cenários que poderia ser feito com a utilização das ferramentas
estudadas é apresentado abaixo:
Figura 1 - Cenário idealizado
31
10.0 CONCLUSÃO
As ferramentas de respostas a incidentes de segurança foram feitas para auxiliar
o administrador de redes, e não para operarem no seu lugar. As ferramentas fazem um
excelente trabalho no que diz respeito ao seu propósito, mas não adianta instalar um
IDS ou ter um scanner de vulnerabilidades se os logs gerados não são lidos diariamente.
É preciso ficar atento as atualizações ou correções das aplicações, atualizando as
mesmas e o Sistema Operacional sempre que possível, tomando cuidado quando a
correção da vulnerabilidade não afetar outras aplicações.
A melhor forma de fazer um perímetro de segurança eficaz é:
• Analisar a sua própria rede;
• Estudar o seu comportamento e identificar algo de perigoso para a
mesma.
• Criar as próprias regras dos IDS baseadas nesse levantamento e não
utilizar apenas as regras padrões.
• Ter um servidor de tempo rodando para na hora da auditoria dos logs das
ferramentas não ocorrer surpresas.
• Analisar diariamente os logs, verificar possíveis vulnerabilidades e ficar
sempre atento as atualizações das aplicações.
Pela análise das ferramentas estudadas, conclui-se que o OSSIM, por possuir
um conjunto de ferramentas, já bem aceitas por analistas de segurança, em seu
no framework, apresenta como uma das melhores ferramentas de reposta a
incidentes de segurança. Em casos isolados, o SNORT, como IDS, o OSIRIS,
como HIDS, o GUARDIAN, como IPS, o NESSUS, como scanner de
vulnerabilidades, e o HONEYD, como honeypot de baixa interatividade, são
considerados as melhores opções.
32
11.0 Dificuldades Encontradas
Inicialmente as dificuldades eram em relação à insuficiência de equipamentos ou
até mesmo de equipamentos com pouco processamento e memória. Dessa forma,
utilizando ferramentas de incidentes de segurança, inviabilizava os testes em possíveis
redes vulneráveis. Com a chegada de novos recursos pôde-se criar uma rede virtual na
qual os testes puderam ser realizados.
Outra dificuldade foi encontrar o lugar no qual cada ferramenta irá se encontrar
na rede. Comprometendo a rede ou até mesmo bloqueando os acessos de saídas e
entradas para a internet.
33
12.0 Bibliografia
[1] Labrador Intrusion Detection. Disponível em: http://labradorids.sourceforge.net/
[2] OSIRIS. Disponível em: http://osiris.shmoo.com/
[3] OSSEC. Disponível em: http://www.ossec.net/
[4] Tripwire. Disponível em: http://sourceforge.net/projects/tripwire/
[5] AIDE. Disponível em: http://cs.tut.fi/~rammer/aide.html
[6] Snort. Disponível em: http://www.snort.org/
[7] SnortNotify. Disponível em: http://www.780inc.com/snortnotify.html
[8] Snort-Inline. Disponível em: http://snort-inline.sourceforge.net/
[9] OSSIM. Disponível em: http://www.ossim.net/
[10] PRELUDE. Disponível em: http://www.prelude-ids.com/
[11] Guardian. Disponível em: http://www.chaotic.org/guardian/
[12] FWSnort. Disponível em: http://cipherdyne.org/fwsnort/
[13] HLBR. Disponível em: http://hlbr.sourceforge.net/
[14] Honeyd. Disponível em: http://www.honeyd.org/
[15] NESSUS. Disponível em: http://www.nessus.org/nessus/
[16] Inprotect. Disponível em: http://inprotect.sourceforge.net/
[17] Nikto. Disponível em: http://www.cirt.net/code/nikto.shtml
[18] Jr,Brivaldo Alves da Silva, “Melhorando a segurança do Firewall com
Bridges usando Snort_Inline no Debian Etch”. Disponível em:
http://www.vivaolinux.com.br/artigo/Melhorando-a-seguranca-do-Firewall-comBridges-usando-Snort_Inline-no-Debian-Etch?pagina=5
[19] Polesso, Rodrigo, “Snort_INLINE: Proteção total”. Disponível em:
http://www.vivaolinux.com.br/artigo/Snort_INLINE-Protecao-total/?pagina=3
[20] Polesso, Rodrigo, “Sistema de Segurança Linux para Usuário Final”.
Disponível em: http://www.dainf.ct.utfpr.edu.br/~cristina/MShield.pdf
34
[21] Brams, Miguel, “Intrusion Detection: Snort (IDS), OSSEC (HbIDS) And
Prelude (HIDS) On Ubuntu Gutsy Gibbon”. Disponível em:
http://www.howtoforge.com/snort-ossec-prelude-on-ubuntu-gutsy-gibbon
[22] LEHMANN, Guillaume, “INSTALLATION DE PRELUDE-IDS”. Disponível em:
http://lehmann.free.fr/PreludeInstall/
[23] Ramesh, “Tripwire Tutorial: Linux Host Based Intrusion Detection
System”. Disponível em: http://www.thegeekstuff.com/2008/12/tripwire-tutoriallinux-host-based-intrusion-detection-system/
[24] Santos, Ricardo Iramar dos, “Osiris - Host Integrity Monitoring System”.
Disponível em: http://www.dicas-l.com.br/dicas-l/20040930.php
[25] Xenlab, “Security Testing your Apache Configuration with Nikto”.
Disponível em: http://www.howtoforge.com/apache_security_testing_with_nikto
[26] Augusto, Keynes, “Checando vulnerabilidades com o Nikto”. Disponível
em: http://www.vivaolinux.com.br/artigo/Checando-vulnerabilidades-com-o-Nikto/
[27] Rafael, “Labrador, um detector de intrusos”. Disponível em:
http://www.vivaolinux.com.br/artigo/Labrador-um-detector-de-intrusos/
[28] Linux Firewalls, “DEPLOYING FWSNORT”. Disponível em:
http://www.tinker.tv/download/firewalls_ch10.pdf
[29] McRee, Russ, “fwsnort-1.0.5: iptables intrusion detection”. Disponível em:
http://www.receptiveit.com.au/files/eBooks/Linux%20Firewalls%20%20Attack%20Detection/Linux%20Firewalls%20Attack%20Detection%20and%20
Response%20with%20Iptables,%20PSAD,%20and%20Fwsnort.pdf
[30] Fernandes, Dailson, “Blindando sua rede com o HLBR - Um IPS invisível e
brasileiro”. Disponível em: http://www.vivaolinux.com.br/artigo/Blindando-suarede-com-o-HLBR-Um-IPS-invisivel-e-brasileiro/
[31] Suzuki, Luiz Henrique, “Implantação de um Honeypot e proposta para
metodologia de Gerenciamento de Projetos de Honeynets”. Disponível em:
http://monografias.cic.unb.br/dspace/bitstream/123456789/102/1/LuizAlexandre.pdf
[32] Morimoto, Carlos E., “Usando o Nessus 3.x”. Disponível em:
http://www.guiadohardware.net/tutoriais/usando-nessus/
[33] Montoro, Rodrigo Ribeiro, “Análise de log’s usando o
OSSEC HIDS”. Disponível em:
[34] Sampaio, Miguel, “Manual de Instalação do Snort@Ubuntu”. Disponível
em:
http://www.snort.org/docs/setup_guides/intl/portuguese/Snort_Install_Portuguese.p
df
35
[35] Rodrigues, José Ricardo Simões, “O tripwire e a integridade de sistemas
GNU/Linux”. Disponível em: http://ricardosimoes.com/docs/arl/cripto.pdf
[36] Chaves, Marcelo H. P. C., “The Brazilian Honeypots Alliance”. Disponível
em: http://www.cert.br/docs/palestras/certbr-ripe53.pdf
[37] Montoro, Rodrigo Ribeiro, “Criando um IDS com resposta ativa com
OSSEC / Snort”. Disponível em: http://www.dynsec.com.br/arquivos/ossec-snortactiveresponse_pt-BR.pdf
36
ANEXOS
ANEXO 1 – TUTORIAL PARA INSTALAÇÃO DO SNORT + PHP5
+ APACHE2 + MYSQL + BASE + SNORTNOTIFY + POSTFIX
Fazer downloads dos pacotes necessários para a compilação do SNORT
PCRE-7.8 – Versão utilizada até o momento da criação do tutorial
Baixe dependências necessárias:
# aptitude install build-essential
Download – http://www.pcre.org
Obs.: Por motivo de organização todos os downloads ficarão na pasta /opt/Downloads
# cd /opt/Downloads
# tar xzvf pcre-7.8.tar.gz
# cd pcre-7.8
# ./configure
# make && make install
Libpcap_1.0.0 - Versão utilizada até o momento da criação do tutorial
Baixe dependências necessárias:
# aptitude install bison flex
Download – http://www.tcpdump.org
37
# cd /opt/Downloads
# tar xzvf libpcap-1.0.0.tar.gz
# cd libpcap-1.0.0
# ./configure
# make && make install
Após a instalação da biblioteca será necessária a atualização:
# ldconfig
SNORT – 2.8.3.1 - Versão utilizada até o momento da criação do tutorial
Utilizaremos juntamente com o MYSQL, portanto:
# aptitude install mysql-server-5.0 libmysqlclient15-dev
Download – http://www.snort.org/dl/
# cd /opt/Downloads
# tar xzvf snort-2.8.3.1.tar.gz
# cd snort-2.8.3.1
# ./configure - -with-mysql
# make && make install
Configurações necessárias do sistema:
# groupadd snort
# useradd -g snort snort
# mkdir /etc/snort
# mkdir /var/log/snort
# cp /opt/Downloads/snort-2.8.3.1/etc/* /etc/snort
SNORTRULES
Faça o seu registro em http://www.snort.org e baixe as regras para o SNORT
38
Donwload – http://www.snort.org/pub-bin/downloads.cgi
Baixe a versão corrente para usuários registrados
Baixe e descompacte dentro de /etc/snort:
# cd /etc/snort
# tar xzvf snortrules-snapshot-CURRENT.tar.gz
Configuração do snort.conf. No exemplo criado, foi utilizado a rede
10.10.10.0/24. Modifique apenas as linhas necessárias:
# vim /etc/snort/snort.conf
var HOME_NET [127.0.0.0/8,10.10.10.0/24]
var EXTERNAL_NET !$HOME_NET
var DNS_SERVERS [200.137.160.130,200.137.160.135]
var RULE_PATH /etc/snort/rules
output database: log, mysql, user=snort password=snort dbname=snort host=localhost
Após realizada as modificações reinicie o snort:
# snort -c /etc/snort/snort.conf -D
ADODB5.04 - Versão utilizada até o momento da criação do tutorial
# aptitude install apache2 libapache2-mod-php5 php5 php5-gd php-pear php5-cli php5common php5-mysql php-net-socket php-net-smtp php-mail php-http php-db php-xmlparser
Download – http://sourceforge.net/project/showfiles.php?group_id=42718
Baixe e descompacte o adodb dentro de /var/www:
# cd /var/www
# tar xzvf adodb5.tgz
39
BASE-1.4.1 - Versão utilizada até o momento da criação do tutorial
Donwload – http://sourceforge.net/projects/secureideas
Retire o redirecionamento para o apache2-default:
# vim /etc/apache2/sites-available/default
Comente a linha que possui:
RedirectMatch ^/$ /apache2-default/
Baixe e descompacte o base dentro de /var/www:
# cd /var/www
# tar xzvf base-1.4.1.tar.gz
# mv base-1.4.1 base
# cd base
Configuração do arquivo base_conf.php:
# cp base_conf.php.dist base_conf.php
# vim base_conf.php
$BASE_Language = 'portuguese';
$BASE_urlpath = '/base';
$DBlib_path = '/var/www/adodb/';
$DBtype = 'mysql';
$alert_dbname = 'snort';
$alert_host = 'localhost';
$alert_port = '';
$alert_user = 'snort';
$alert_password = 'snort';
$archive_exists = 0;
$archive_dbname = 'snort';
$archive_host = 'localhost';
$archive_port = '';
$archive_user = 'snort';
40
$archive_password = 'snort';
Baixar os arquivos necessários para gerar os gráficos
Download – http://download.pear.php.net/package/Image_Canvas-0.3.1.tgz
Download – http://download.pear.php.net/package/Image_Color-1.0.2.tgz
Download – http://download.pear.php.net/package/Image_Graph-0.7.2.tgz
Descompacte e instale:
# cd /opt/Downloads
# tar xzvf Image_Canvas-0.3.1.tar.gz
# tar xzvf Image_Color-1.0.2.tar.gz
# tar xzvf Image_Graph-0.7.2.tar.gz
# pear install Image_Canvas-0.3.1 Image_Color-1.0.2 Image_Graph-0.7.2
Enviar alertas por email
SNORTNOTIFY – 2.1 - Versão utilizada até o momento da criação do tutorial
Download - http://www.780inc.com/snortnotify/
Baixar arquivos Perl necessários:
# perl –MCPAN –e ‘install DBI’
# perl –MCPAN –e ‘force install DBD::mysql’
# perl –MCPAN –e ‘install Net::SMTP’
Faça uma cópia do arquivo de configuração para o diretório padrão:
# cp /opt/Downloads/snortnotify-v2.1/SnortNotify.conf /etc
41
Modificar o arquivo de configuração:
# vim /etc/SnortNotify.conf
$workto = '[email protected]';
$offto = '[email protected]';
$startworkhr = '08';
$endworkhr = '18';
@workdays = ('1', '2', '3', '4', '5', '6', 7'') ;
$sender = 'Snort Alerts <[email protected]>';
$return = '[email protected]';
$subject = 'Alertas do Snort';
$message = 'snortsensor detected signature from src to dst count times last at
timestamp';
$usesendmail = '1';
$sendmail = '/usr/sbin/sendmail';
$mailserver = 'localhost';
$dbhost = 'localhost';
$dbname = 'snort';
$dbuser = 'snort';
$dbpass = 'snort';
$priority = '3';
$threshold = 'on';
MYSQL
Configuração do MySQL:
# mysql
mysql> set password for root@localhost=password(‘senhaparaoroot’);
mysql> create database snort;
mysql> grant insert, select on root.* to snort@localhost;
mysql> set password for snort@localhost=password(‘snort’);
mysql> grant create, insert, select, delete, update on snort.* to snort@localhost;
mysql> grant create, insert, select, delete, update on snort.* to snort;
mysql> exit
42
Criar as tabelas do banco snort:
# mysql -u root -p < /opt/Downloads/snort-2.8.0.1/schemas/create_mysql snort
Digite a senha do root para o banco
Checar se foram feitas as alterações:
# mysql -p
Digite a senha do root para o banco:
mysql> show databases;
mysql > use snort;
mysql > show tables;
mysql > exit
Abra um Browser e acesse http://localhost/base. Clique em página de Setup:
Figura 2 - Página inicial do Setup do AcidBase
Na próxima página clique em Create BASE AG:
43
Figura 3 – Criar as tabelas
A página que aparece será exibido a criação das tabelas com sucesso. Para
continuar clique em Main Page para ir para a página principal
Figura 4 – Tabelas adicionadas
44
Página
Principal
Figura 5 - Página inicial do AcidBase
PostFix para fazer um relay em um servidor SMTP autenticado:
# aptitude install sasl2-bin libsasl2 libsasl2-modules postfix postfix-tls
O aptitude executará o Debconf para fazer algumas perguntas para você e ajustar
algumas configurações pós-instalação de alguns pacotes.
Sobre o Postfix, o Debconf perguntará:
• Qual o tipo de configuração do Postfix?
o Internet with smarthost
• Onde redirecionar as mensagens de sistemas para os usuários de sistema e root?
o seu_usuario
• Qual o FQDN (Fully Qualified Domain Name)?
o dominio.com.br
45
• Qual o servidor a ser usado como relay?
o smtp.provedor.com.br ou IP do servidor
• Outros destinos que o servidor de e-mail responderá? Pode deixar o padrão já
descrito como resposta.
o localhost
• Forçar a atualização sincronizada?
o No.
• De quais segmentos de rede você receberá as mensagens?
o 127.0.0.1/8 10.10.10.0/24
• Usar o procmail para entrega local?
o Sim.
• Limite da caixa de email?
o 0 (Zero)
• Caracter de extensão para endereço local?
o +
Configuração:
Caso esteja usando Debian ou derivados, deverá editar também o
/etc/default/saslauthd, retirando o comentário da seguinte linha:
START=yes
Edite o Arquivo /etc/postfix/main.cf, adicionando no final do arquivo:
# Habilita ou não autenticação usando SASL.
smtp_sasl_auth_enable = yes
# Configura o mecanismo de autenticação do Postfix, no nosso caso está vazio, pois a
autenticação é enviada como texto.
smtp_sasl_security_options =
# Aponta o arquivo com mapa de senha para autenticar no provedor.
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl
# Configura o servidor ao qual o Postfix enviará as mensagens.
46
srelayhost = smtp.provedor.com.br
Configurar o arquivo /etc/postfix/sasl/sasl para realizar a autenticação:
smtp.provedor.com.br <usuario>@<servidor smtp relay>:<senha_do_usuario>
Ex.: parnaiba.smtp.provedor.com.br [email protected]:snort123
Obs.: Entre as colunas é necessário usar tabulação ao invés do espaço (TAB).
Agora, devemos criar o arquivo.db do sasl com o comando:
# postmap /etc/postfix/sasl/sasl
Reinicie o Postfix:
# invoke-rc.d postfix restart
Faça o teste:
# echo "teste" | mail -s "teste $(hostname)" [email protected]
E veja os log’s em:
# tail /var/log/mail.log -f
47
ANEXO 2 – TUTORIAL PARA INSTALAÇÃO DO SNORT + PHP5
+ APACHE2 + MYSQL + BASE + GUARDIAN VIA APT-GET E
COM ATUALIZAÇÃO PARA A VERSÃO UNSTABLE
SNORT via APT-GET (stable)
Instalação e Configuração do MySQL
Instale o mysql-server:
# aptitude install mysql-server
Verifique se o MySQL está rodando e se os sockets estão ativos:
# ps aux | grep mysql
# netstat -nlpt
Defina uma senha para o usuário root do MySQL:
# mysqladmin -u root password <nova senha>
Agora, conecte no MySQL:
# mysql -u root -p
Conectado no MySQL crie uma base de dados para o Snort:
# mysql -u root -p
mysql> show databases;
mysql> create database snort;
mysql> quit
48
Instalação e Configuração do Snort com suporte a MySQL
Instale o Snort com suporte a MySQL:
# aptitude instal snort-mysql
Detalhes de configuração:
Faixa de endereço na qual o Snort deve ouvir(exemplo):
• 10.10.10.0/24
Deseja configurar uma base de dados para snort-mysql gravar os log’s:
• Sim
É 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:
# zcat create_mysql.gz | mysql -u root -h localhost -p snort
Acesse o servidor MySQL e verifique as tabelas na base de dados snort:
# mysql -u root -p
mysql> show databases;
mysql> use snort;
mysql> show tables;
mysql> status;
mysql> quit;
49
Verifique os arquivos de configuração do snort:
# cd /etc/snort
# ls -l
Faca um cópia do snort.conf original e mantenha um novo arquivo sem os comentários:
# mv snort.conf snort.conf.orig
# cat snort.conf.orig | grep –v ^# | grep . > snort.conf
Edite o snort.conf e modifique-o da seguinte maneira:
# vi snort.conf
var HOME_NET 10.10.10.0/24
var EXTERNAL NET any
var DNS_SERVERS $HOME_NET
var SMTP_SERVERS $HOME_NET
var HTTP_SERVERS $HOME_NET
output database: log, mysql, user=root
host=localhost
password=123456
dbname=snort
Verifique também o arquivo de configuração snort.debian.conf:
Antes de reiniciar o snort, apague o arquivo de pendência da configuração do
banco de dados que ele criou dentro de /etc/snort:
# cd /etc/snort
# rm db-pending-config
Reinicie o snort:
# /etc/init.d/snort restart
50
Para finalizar essa etapa, dê permissão de acesso remoto na base de dados snort e
suas tabelas:
# mysql -u root -p
mysql> grant all privileges on snort.* to [email protected] identified by "123456";
mysql> grant all privileges on snort.* to root@microX identified by "123456';
mysql> quit
Instalação e Configuração do Apache2
Instale o Apache2:
# aptitude install apache2
Edite o arquivo de configuração do apache2 e defina um FQDN:
# vi /etc/apache2/apache2.conf
ServerName 10.10.10. X
Edite o arquivo /etc/default/apache2, para permitir que o apache seja iniciado:
# vi /etc/default/apache2
NO_START=0
Reinicie o Apache2:
# /etc/init.d/apache2 restart
51
Procedimentos Básicos de Segurança para o Apache2
Remova o diretório padrão apache2-default:
# cd /var/www
# rm -rf apache2-default
Retire a opção de Indexes para o diretório padrão do apache2 e retire o
redirecionamento para a pasta apache2-default:
# vi /etc/apache2/sites-available/default
<Directory /var/www/>
Options FollowSymLinks MuitiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
# RedirectMatch ^/$ /apache2-default/
</Directory>
.
.
.
ServerSignature Off
Reinicie o Apache2:
# /etc/init.d/apache2 restart
Instalação e Configuração do PHP5
Instale o PHP5 e alguns módulos necessários:
# aptitude install php5 php5-mysql php5-pear libapache2-mod-php5
52
Edite o arquivo php.ini do Apache2 e descomente a seguinte linha para dar
suporte ao MySQL e acrescente parâmetros para deixá-lo mais seguro:
# vi /etc/php5/apache2/php.ini
; Example lines:
extension=mysql.so
; Safe Mode
safe_mode = 0n
safe_mode_gid = 0n
Reinicie o Apache2:
# /etc/init.d/apache2 restart
Instalação e Configuração do AcidBase
O AcidBase é a ferramenta que será utilizada para visualizar os eventos de alerta
que serão gerados pelo Snort e gravados dentro do MySQL.
Instale o Acidbase:
# aptitude install acidbase
Edite o arquivo de configurarão de base de dados do AcidBase, informando os
valores corretos:
# vi /etc/acidbase/database.php
$alert _user=' root ';
$alert_password=' 123456';
$basepath=' ';
$alert_dbname='snort ';
$alert_host=' 10.10.10.102';
$alert_port=' 3306';
$DBtype='mysql ';
53
Libere acesso à página do AcidBase nas configurações do Apache2:
# vi /etc/acidbase/apache.conf
<IfModule mod_alias .c>
Alias /acidbase "/usr/share/acidbase"
</IfModule>
<DirectoryMatch /usr/share/acidbase/>
Options +FollowSymLinks
AllowOverride None
order deny,allow
deny from all
allow from 10.10.10.0/255.255.255.0
allow from 127.0.0.0/255.0.0.0
<IfModule mod_php4.c>
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_value include_path .:/usr/share/php
</IfModule>
</DirectoryMatch>
Crie o link simbólico para a pasta do apache2:
# ln -s /etc/acidbase/apache.conf /etc/apache2/conf.d/acidbase.conf
Reinicie o Apache2:
# /etc/init.d/apache2 restart
Permita que o Mysql trabalhe no IP da máquina e não só em localhost:
# vi /etc/mysql/my.cnf
bind-address
= 10.10.10.102
54
Reinicie o Mysql:
# /etc/init.d/mysql restart
Acesse o AcidBase no browser:
http://10.10.10.102/acidbase/
Importante: No primeiro acesso, a interface do AcidBase dará um erro reclamando a
falta de algumas das tabelas que o AcidBase utiliza. Para resolver esse erro, clique em
Setup Page e depois em Create Base A G
Apache com suporte a SSL
Vamos verificar se temos o módulo ssl ativo:
# apache2ctl -M
ou
# ls -l /etc/apache2/mods-enable
Se não, ative o módulo ssl:
# a2enmod ssl
Vai pedir para reiniciar o apache, mas antes vamos fazer mais algumas modificações.
Vamos acrescentar ao arquivo /etc/apache2/ports.conf a porta padrão que o
protocolo http sobre TLS/SSL ouve:
# vi /etc/apache2/ports.conf
Listen 443
55
Nos próximo passas mostraremos o que é preciso para criação de um certificado
padrão X.509. c como nós mesmos podemos assiná-1ó. Utilizaremos o programa
openssl para isto.
Verifique se tem o pacote instalado:
# dpkg -l openssl
Instalando o openssl caso não possua:
# aptitude install openssl
Crie um diretório para nosso certificado:
# mkdir /etc/apache2/ssl
# cd /etc/apache2/ssl
Agora criaremos um certificado com algoritmo padrão que é aceito pela maioria
dos browsers:
Primeiro a chave:
# openssl genrsa -out hostname.key 1024
Depois o certificado(serão feitas algumas perguntas):
# openssl req -new -key hostname.key -out hostname.csr
Country Name (2 letter code) [AU]:BR[ENTER]
State or Province Name (full name) [Some-State]:Piaui[ENTER]
Locality Name (eg, city) []:Teresina[ENTER]
Organization Name (eg, company) [Internet Widgits Pty Ltd]:PoP-PI[ENTER]
Organizational Unit Name (eg, section) []: Infra[ENTER]
Common Name (eg, YOUR name) []:.[ENTER]
Email Address []:[email protected] [ENTER]
56
Please enter the following 'extra' attributes to be sent with your certificate request A
challenge password []:[ENTER]
An optional company name []:[ENTER]
Neste ponto você tem duas opções, pode tanto enviar seu certificado (CSR) para
uma das várias autoridades certificadoras para que assinem e tornem seu certificado
válido ou você mesmo pode assinar:
# openssl x509 -req -days 365 -in hostname.csr -signkey hostname.key -out
hostname.crt
Obs.: O arquivo hostname.crt é nosso certificado e o hostname.key nossa chave
Alterando nosso Domínio Virtual e adicionando as diretivas necessárias para
ativar o SSL:
# vi /etc/apache2/sites-enable/000-default
NameVirtualHost *
<VirtualHost *>
........
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/hostname.crt
SSLCertificateKeyFile /etc/apache2/ssl/hostname.key
........
</VirtualHost>
Reinicie o serviço:
# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start
Verifique os processos do Apache2 que foram inicializados:
# ps auxf | grep apache2 | grep -v grep
57
Confira as portas que foram abertas para o servidor web com https:
# netstat -nltp | grep apache2
Atualização do Snort
Para fazer a atualização do Snort, será necessário realizar um cadastro no site
oficial do snort, e obter o chamado Oink Code, que é o código que permite ter acesso as
atualizações.
Acesse o site oficial do Snort e faça um novo registro utilizando um e-mail
verdadeiro:
http://www.snort.org
Feito o cadastro, acesse o seu e-mail e utilize o usuário e senha que foram
enviados para fazer login no site do Snort.
Após o login, clique no botão "Get Code" para obter o "Oink Code", que será
semelhante ao seguinte:
5aO8f649c16a278e1012e1c84bdc8fab9a70e2a4
Agora acesse a seguinte url, colocando o seu código, para baixar o pacote de
atualização:
http://www.snort.org/pub-bin/oinkmaster.cgi/5aO8f649clóa278elO12elc34bdc3fab9a
70e2a4/snortrules-snapshot-2.3.tar.gz
Após ter baixado o pacote, descompate-o dentro do diretório do snort:
# tar xzvf snortrules-snapshot-2.3 tar.gz -C /etc/snort
58
Entre no diretório do Snort e mova o diretório doc/signatures para dentro do
diretório do AcidBase:
# cd /etc/snort/doc
# mv signatures /usr/share/acidbase
Reinicie o Snort:
# /etc/init.d/snort restart
Instalando o Guardian
Obs.: Por uma limitação do Guardian, seu sistema precisa estar com o idioma em inglês,
pois o Guardian se baseia nos parâmetros que estão no ifconfig. Em seu script ele
procura pela string “inet end” e em português estaria “inet addr”. Caso já tenha
instalado a versão do S.O. em português existem 2 soluções:
1. Modifica o script em Perl
2. # LANG = en_us
o Somente em memória
O Guardian é basicamente um script em Perl, e não está nos repositórios Debian.
Podemos obtê-lo pelo seguinte site:
http://www.chaotic.org/guardian/
Após baixar o Guardian, iremos descompactá-lo:
# cd /root
# tar xzvf guardian-l X.tar.gz
59
Primeiro vamos modificar o arquivo de configuração guardian.conf:
# vi guardian.conf
Interface eth0
LogFile /var/log/guardian. Log
AlertFile /var/log/snort/alert
IgnoreFile
/etc/guardian.ignore
TimeLimit
3600
Colocar o arquivo de configuração no diretório padrão:
# cp guardian.conf /etc
Podemos criar o arquivo guardian.ignore, e colocar os IP's que não precisam ser
checados, no caso podemos colocar o nosso próprio IP:
# vi /etc/guardian.ignore
10.10.10.7
Agora precisamos preparar os scripts que o guardian vai utilizar par bloquear e
desbloquear os IP's:
# cd scripts
# cp iptables_block. sh /sbin/guardian_block. Sh
# cp iptables_unblock.sh /sbin/guardian_unblock.sh
Para colocar o Guardian em funcionamento, vamos jogar o script guardian.pl
para um dos diretórios do PATH:
# cd ..
# cp guardian.pl /sbin
Crie o arquivo de log do Guardian:
60
# touch /var/log/guardian.log
Agora vamos iniciar o Guardian:
# guardian.pl -c /etc/guardian.conf
# ps ax
Para testar, acompanhe o log do Guardian enquanto outra máquina faz uma
varredura com nmap:
# tail -f /var/log/guardian.log
Crie um script no nível de execução padrão para o Guardian ser iniciado
automaticamente no boot do sistema:
# vi /etc/init.d/guardian
#!/bin/bash
test -f /sbin/guardian.pl || exit 0
case "$1" in
start)
guardian.pl -c /etc/guardian.conf
;;
stop)
kill -9 $(pgrep guardian.pl)
;;
*)
echo "Opção invalida. Use start ou stop."
exit 2
;;
esac
exit 0
Modificar as permissões do arquivo:
61
# chmod 755 /etc/init.d/guardian
Adicionar no momento do boot:
# update-rc.d guardian defaults
Reiniciar o serviço:
# /etc/init.d/guardian stop
# /etc/init.d/guardian start
SNORT via APT-GET (unstable)
Remontar pacotes do tipo .deb:
# aptitude install dpkg-dev
Modificar o repositório no sources.list:
# vi /etc/apt/sources.list
deb http://ftp.debian.org/debian unstable main contrib non-free
deb-src http://ftp.debian.org/debian unstable main contrib non-free
Fazendo o download do código-fonte:
# cd /opt
# apt-get update
# apt-get source snort-mysql
Obs: Após concluir o download do source, colocar o repositório no stable e dar um aptget update.
# cd /opt/snort-2.7.0
62
Criar pacote .deb sem chaves assinadas:
# dpkg-buildpackage -us -uc
Irá reclamar e listar as dependências, então iremos instalá-las:
# aptitude install “todas_as_dependências”
Por questão de segurança irá dar um erro nos manuais desse pacote:
# vi /opt/snort-2.7.0/debian/snort-docs.docs
Remova o doc/snort_manual.pdf e o doc/faq.pdf
Construa o pacote novamente:
# dpkg-buildpackage -us -uc
Entre no diretório em que foram criados os .deb e instale-os:
# cd /opt
# dpkg -i pacote.deb
Obs: Vai dar um erro no snort-mysql. Será preciso realizar alguns ajustes:
Configuração do Snort com suporte a MySQL
# mysql -u -p > drop database snort .
Conectado no MySQL crie uma base de dados para o Snort:
63
# mysql -u root -p
mysql> show databases;
mysql> create database snort;
mysql> quit
Instalação e Configuração do Snort com suporte a MySQL
Instale o Snort com suporte a MySQL:
# aptitude instal snort-mysql
Detalhes de configuração:
Faixa de endereço na qual o Snort deve ouvir: 10.10.10.0/24
Deseja configurar uma base de dados para snort-mysql gravar os log’s: Sim
É 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:
# zcat create_mysql.gz | mysql -u root -h localhost -p snort
Acesse o servidor MySQL e verifique as tabelas na base de dados snort:
# mysql -u root –p
mysql> show databases;
mysql> use snort;
mysql> show tables;
mysql> status;
64
mysql> quit;
Verifique os arquivos de configuração do snort:
# cd /etc/snort
# ls -l
Faca um cópia do snort.conf original e mantenha um novo arquivo sem os comentários:
# mv snort.conf snort.conf.original
# cat snort.conf.original | grep –v ^# | grep . > snort.conf
Edite o snort.conf e modifique-o da seguinte maneira:
# vi snort.conf
var HOME_NET 10.10.10.0/24
var EXTERNAL NET any
var DNS_SERVERS $HOME_NET
var SMTP_SERVERS $HOME_NET
var HTTP_SERVERS $HOME_NET
output database: log, mysql, user=root
host=localhost
password=123456
dbname=snort
Verifique também o arquivo de configuração snort.debian.conf:
# cat snort.debian.conf
Visualize as regras (assinaturas) do Snort dentro do diretório rules:
# cd rules
# ls
65
Antes de reiniciar o snort, apague o arquivo de pendência da configuração do
banco de dados que ele criou dentro de /etc/snort:
# cd /etc/snort
# rm db-pending-config
Reinicie o snort:
# /etc/init.d/snort restart
Para finalizar essa etapa, dê permissão de acesso remoto na base de dados snort e
suas tabelas:
# mysql -u root –p
Coloque a senha de root e faça as seguintes configurações:
mysql> grant all privileges on snort.* to [email protected] identified by "123456";
mysql> grant all privileges on snort.* to root@microX identified by "123456';
mysql> quit
Configuração do AcidBase
Acesse o AcidBase no browser:
http://10.10.10.102/acidbase/
Importante: No primeiro acesso, a interface do AcidBase dará um erro
reclamando a falta de algumas das tabelas que o AcidBase utiliza. Para resolver esse
erro, clique em Setup Page e depois em Create Base A G
Reinicie o Snort:
# /etc/init.d/snort restart
66
ANEXO 3 – TUTORIAL PARA INSTALAÇÃO DO SNORT EM
MODO BRIDGE
Em ambientes onde o Snort precisa ficar transparente na rede ou em redes onde
não tem a disponibilidade de trabalhar com um Switch com port-mirror. Podemos fazer
que o Snort trabalhe como se fosse uma ponte(bridge), onde todo o tráfego de rede
passará por ele de forma transparente.
Primeiro precisamos instalar o pacote para criar a bridge entre as interfaces:
# aptitude install bridge-utils
Agora vamos criar a interface de bridge:
# brctl addbr br0
# ifconfig -a
Com a interface de bridge criada, temos que definir quais interfaces vão
pertencer a ela para a ponte ser estabelecida:
# brctl addif br0 eth0
# brctl addif br0 ethl
Configuração das Interfaces
Para ficar algo transparente, as interfaces não podem ter endereço IP:
# ifconfig eth0 0.0.0.0
# ifconfig ethl 0.0.0.0
67
Para colocar a bridge em funcionamento precisamos levantar a sua interface:
# ifconfig br0 up
Para
deixar
essas
configurações
fixas,
precisamos
editar
o
/etc/network/interfaces e deixa da seguinte maneira:
# vi /etc/network/interfaces
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 0.0.0.0
network 0.0.0.0
broadcast 0.0.0.0
auto ethl
iface ethl inet static
address 0.0.0.0
network 0.0.0.0
broadcast 0.0.0.0
auto br0
iface br0 inet static
bridge_ports eth0 ethl
bridge_maxwait 0
Configuração do Snort
Agora devemos fazer com que o Snort trabalhe na interface da bridge:
# vi /etc/snort/snort.debian.conf
DEBIAN_SNORT_STARTUP="boot" DEBIAN_SNORT_HOME_NET="10.10.10.0/24"
DEBIAN_SNORT_OPTIONS=""
DEBIAN_SNORT_INTERFACE="br0"
DEBIAN_SNORT_SEND_STATS="true"
DEBIAN_SNORT_STATS_RCPT="root" DEBIAN_SNORT_STATS_THRESHOLD="1"
68
E feitas às modificações, reiniciar o snort:
# /etc/init.d/snort restart
Para desfazer a bridge, devemos fazer os seguintes passos:
# ifconfig br0 down
# brctl delif br0 eth0
# brctl delif br0 eth1
# brctl delbr br0
Reiniciar as configurações de Rede:
# /etc/init.d/networking restart
69
ANEXO 4 – TUTORIAL PARA INSTALAÇÃO DO SNORT-INLINE
COM SUPORTE AO MYSQL
Instalação e Configuração do MySQL
Instale o mysql-server:
# aptitude install mysql-server
Verifique se o MySQL está rodando e se os sockets estão ativos:
# ps aux | grep mysql
# netstat -nlpt
Defina uma senha para o usuário root do MySQL:
# mysqladmin -u root password <nova senha>
Agora, conecte no MySQL:
# mysql -u root -p
Conectado no MySQL crie uma base de dados para o Snort:
# mysql -u root -p
mysql> show databases;
mysql> create database snort;
mysql> grant all privileges on snort.* to snort@localhost identified by ´snort´;
mysql> quit
70
Instalando dependências
Baixe dependências necessárias:
# aptitude install build-essential libnet0-dev libpcre3-dev libmysqlclient15-dev iptablesdev
No Debian Etch, o pacote libdnet-dev, necessário para a compilação e instalação
do Snort-inline possui um erro. Então iremos instalá-lo manualmente.
Libdnet-1.1 – Versão utilizada até o momento da criação do tutorial
Download – http://libdnet.sourceforge.net
# cd /opt/Downloads
# tar xzvf libdnet-1.1.tar.gz
# cd libdnet-1.1
# ./configure
# make && make install
Snort_inline-2.6.1.5 - Versão utilizada até o momento da criação do tutorial
Download – http://snort-inline.sourceforge.net/download.html
# cd /opt/Downloads
# tar xzvf snort_inline-2.6.1.5.tar.gz
# cd snort_inline-2.6.1.5
Criar os diretórios para os arquivos de configurações e as regras:
# mkdir -p /etc/snort/rules
Copiar o arquivo de configuração do Snort para o diretório padrão:
# cp etc/* /etc/snort
71
Realizar duas alterações no arquivo de configuração.
# vi /etc/snort/snort_inline.conf
var RULE_PATH /etc/snort/rules
output database: log, mysql, user=snort password=snort dbname=snort host=localhost
# make && make install
Colocar dois arquivos no diretório de regras:
• Classification.config – define as url’s para as referências encontradas nas regras.
• Reference.config – inclui informações para priorização das regras.
# cp etc/classification.config /etc/snort/rules
# cp etc/reference.config /etc/snort/rules
Criar o arquivo de log’s do Snort:
# mkdir /var/log/snort
Criar as tabelas do banco Snort:
# mysql -u -p snort < schemas/create_mysql
Compilando e Instalando o Snort-Inline:
# cd /opt/Downloads
# tar xzvf snort_inline-2.6.1.5.tar.gz
# cd snort_inline-2.6.1.5
# ./configure --enable-inline --enable-flexrep --enable-gre --enable-pthread --withlibipq-includes=/usr/include/libipq --with-mysql
# make && make install
72
O Snort já está capturando o tráfego que passa por ele:
# snort_inline -v
Transformando-o em um IPS
1. Direcionar todos os pacotes para uma fila:
# iptables -A FORWARD -j QUEUE
2. Executar o Snort em modo inline:
# snort -Q -N -c /etc/snort/snort_inline.conf -l /var/log/snort -D
Obs.: A instalação do AcidBase no Snort-Inline segue da mesma forma descrita
anteriormente.
73
ANEXO 5 – TUTORIAL PARA INSTALAÇÃO DO HIDS AIDE
Antes de instalar o AIDE, tire o atributo -a para que ele possa criar os arquivos
necessários no diretório de log’s:
# chattr -R -a /var/log
Instalação e Configuração do AIDE
O primeiro passo é instalarmos o AIDE no Debian:
# aptitude install aide
Verifique o man do aide.conf para ver como funcionam as suas checagens:
# man aide.conf
Vamos verificar os arquivos de configuração que foram criados:
# cd /etc/aide
# ls
# cd aide.conf.d
# ls
Os arquivos são o seguinte:
• aide.conf: Principal arquivo de configuração do AIDE.
• aide.conf.d: Diretórios aonde ficam os arquivos de configurarão específico para
cada aplicativo.
Analise o arquivo /etc/aide/aide.conf:
74
# cd /et c/aide
# vi aide.conf
Em seguida vamos verificar um dos arquivos de configuração dos aplicativos:
# cd /etc/aide/aide.conf.d
# vi 31_aide_apache2
Antes de gerar uma base é necessário validar as alterações no arquivo de
configuração aide.conf:
# update-aide.conf
Esse comando vai criar uma cópia do arquivo de configuração no diretório
/var/lib/aide chamado aide.conf.autogenerated que vai ser usado pelo comando gerador
de bases do Aide.
Agora que o AIDE está configurado, e nosso sistema está pronto, podemos gerar
a base do AIDE:
# aideinit
Quando executado, o comando aideinit criará o arquivo /var/lib/aide/aide.db.new
e criará também o /var/lib/aide/aide.db.
Após o comando aideinit, verifique se as bases foram criadas:
# cd /var/lib/aide
Fazendo uma auditoria com o AIDE
75
Agora que a base está criada, podemos simular algumas modificações no sistema
e ver como o AIDE vai nos notificar sobre essas modificações.
Vamos mudar a localização do binário rmdir, e criar outro forjado:
# mv /bin/rmdir /root
# echo teste > /bin/rmdir
Realizando a auditoria:
# aide -C --config=/var/lib/aide/aide.conf.autogenerated | tee /root/relatorio1_aide.txt
O relatório foi gerado na tela e no arquivo. Verifique o relatório que ficou
documentado:
# cd /root
# vi relatoriol_aide.txt
OBS: Não se esqueça de colocar o rmdir de volta no /bin (cp /root/rmdir /bin).
76
ANEXO 6 – TUTORIAL PARA INSTALAÇÃO DO HIDS OSSEC
Instalação e Configuração do OSSEC
Primeiro precisamos obter o código-fonte do Ossec no seu site oficial: www.ossec.net:
# cd /opt
# wget http://www.ossec.net/files/ossec-hids-1.6.1.tar.gz
Agora vamos descompactá-lo:
# tar xzvf ossec-hids-1.6.1.tar.gz
# ls
Instale os pacotes necessários para fazer a compilação:
# aptitude install build-essential
O OSSEC possui um script para
a sua instalação onde serão feitas várias
perguntas, para isso execute:
# cd ossec-hids-1.6.1
# ./install.sh
No primeiro passo da instalação escolha o idioma a ser instalado :
** Para instalação em português, escolha [br].
** Fur eine deutsche Installation wohlen Sie [de].
** For installation in English, choose [en].
** Para instalar en Espanol , eliga [es].
** Pour uno installation en François, choisissez [fá]
** Per l'installazione in Italiano, scegli [it].
** Za instalaciju na srpskom, izaberi [só].
77
(en/br/cn/de/es/fr/it/jp/pl/ru/sr/tr) [en]:br
Agora vamos escolher o modo como ele vai trabalhar que pode ser:
• Servidor - será o servidor que tratará os log’s
• Cliente – cliente ou agente que enviará os log’s pro Server
• Local - no caso de apenas um servidor sem clientes a monitorar log’s.
Que tipo de instalação você deseja (servidor, cliente, local ou ajuda)?
local
Próximo passo é escolher onde o OSSEC será insta1ado. Podemos aceitar o
diretório proposto.
Configurando o ambiente de instalação.
Escolha onde instalar o OSSEC HIDS [/var/ossec]:
Tecle ENTER
Depois vamos aceitar para receber notificações por e-mail
Configurando o OSSEC HIDS.
Deseja receber notificações por e-mail? (s/n) [s]:
Tecle ENTER
Qual é o seu endereço de e-mail?
[email protected]
78
Seu servidor SMTP foi encontrado como:
smtp.dominio.com.br
Ex.: panaiba.pop-pi.rnp.br
Deseja usá-lo? (s/n) [s]:
Tecle ENTER
Em seguida vamos habi1itar a1guns tipos de checagens.
Deseja habilitar o sistema de verificação de integridade? (s/n) [s]:
Tecle ENTER
Deseja habilitar o sistema de detecção de rootkis? (s/n) [s]:
Tecle ENTER
Respostas automáticas permitem você executar um comando específico baseado
nos eventos recebidos. Você pode bloquear um endereço de IP ou desabilitar o acesso
de
um
usuário
específico,
por
exemplo.
Maiores
informações:
http://www.ossec.net/en/manual.html#active-response
Deseja habilitar o sistema de respostas automáticas? (s/n) [s]:
Tecle ENTER
Deseja habilitar o firewall-drop? (s/n) [s]:
Tecle ENTER
79
Deseja adicionar mais algum endereço a essa lista? (s/n)? [n]:
Tecle ENTER
Após isso o OSSEC será compilado e instalado.
Com OSSEC instalado, podemos iniciá-lo:
# /etc/init.d/ossec start
# ps ax
Vamos visualizar onde o OSSEC está instalado e seu arquivo de configuração principal:
# cd /var/ossec
# ls
# cd etc
# vi ossec. conf
Obs: Todos os arquivos de configurarão do OSSEC estão em um formato XML,
que é muito simples de entender.
Testando o OSSEC
Podemos fazer um teste com o OSSEC e ver como o seu active-response trabalha.
Vamos testar utilizando um servidor de e-mail instalado em nosso sistema, utilizaremos
o Postfix nesse exemplo.
Instalação do Postfix:
# aptitude install postfix
Realize um teste de telnet na porta 25 de uma outra máquina para a máquina
onde está instalado o postfix. Pode-se notar que o OSSEC bloqueou IP que estava
tentando realizar o telnet:
80
# telnet 10.10.10. 102 25
Trying 10.10.10. 102. . .
Connected Lo 10.10.10.102.
Escape character is '^]'.
220 postfix ESMTP Postfix (Debian/GNU)
helo teste.com.br
mail from: [email protected]
250 2.1.0 Ok
rcpt to: [email protected]
554 5.7.1 <[email protected]>: Relay access denied
Nesse momento a máquina que está recebendo a conexão já deve ter bloqueado
o IP de origem.
Se já tentaram fazer essa conexão em sua máquina, veja se o IP da pessoa que
tentou já está bloqueado:
# iptables -n -L
# vi /etc/hosts.deny
Essa regra ficará setada até passar o tempo que está configurado nas regras do OSSEC.
Instalando o OSSEC como servidor
Segue da mesma forma feita anteriormente. A diferença é na hora de o tipo de
instalação deverá ser escolhido servidor.
Configurando Clientes (Agentes)
Os clientes a serem monitorados podem ser tanto Linux como Windows.
•
A versão Windows se encontra em http://www.ossec.net/files/ossec-agent-win321.6.1.exe
•
A versão Linux é a mesma feita para o local ou servidor, escolhendo Cliente e
depois seguir com a instalação normalmente, apenas informando o IP do servidor
quando for solicitado.
81
Adicionando Clientes ao servidor
Como a comunicação entre os clientes e o servidor é criptografada, será preciso
criar, no servidor, uma chave para cada cliente.
Adicionando um cliente:
# cd /var/ossec/bin
# ./manage_agents
Selecione a opção “(A)dd an agent (A)” e informe um nome e o IP do agente
(cliente).
Feito isso, será necessário extrair a chave. Selecione a opção “(E)xtract key for
an agent (E)”, o script listará os agentes disponíveis, identificados por um ID. Digite o
ID
do
cliente
escolhido
e
a
chave
será
impressa
na
tela.
Volte no cliente:
# cd /var/ossec/bin
# ./manage_agents
Selecione a opção “(I)mport key for the server (I)”. E cole a mesma chave
gerada no servidor para esse cliente.
Reiniciar o serviço Ossec, tanto no servidor como no cliente:
# /etc/init.d/ossec restart
OSSEC-WUI
Interface Web front para monitorar o OSSEC. Essa versão tem como prérequisitos PHP 4 ou 5, além de ter instalado o OSSEC com versão igual ou superior a
0.9-3.
82
Instalação do Servidor com suporte ao php:
# aptitude install apache2 php5 libapache-mod-php5
Faça o download do pacote ossec-wui:
# wget http://www.ossec.net/files/ui/ossec-wui-0.3.tar.gz
Descompacte os arquivos no Document Root do Servidor:
# cd /var/www
# tar xzvf ossec-wui-0.3.tar.gz
# mv ossec-wui-0.3 ossec-wui
Execute o script de instalação:
# cd /var/www/ossec-wui
# ./setup.sh
Irá pedir o usuário dono do processo do apache, no caso desta versão é o “wwwdata”. Logo após irá solicitar uma senha. Coloque uma senha para acesso
administrativo.
Adicione o grupo do apache ao usuário ossec:
# vi /etc/group
ossec:x:1002:www-data
ou
# gpasswd -a ossec www-data
Adicione as permissões necessárias:
# chmod 770 tmp/
# chgrp www tmp/
83
Renicie o apache:
# /etc/init.d/apache2 restart
Abra um Browser e acesse:
http://localhost/ossec-wui
Página inicial do OSSEC WebUI
Figura 6 - Página inicial do OSSEC-WUI
84
ANEXO 7 – TUTORIAL PARA INSTALAÇÃO DO HIDS
TRIPWIRE
Instalação e Configuração do Tripwire
O passo de instalação do Tripwire no Debian é:
# aptitude install tripwire
O Tripwire pode proteger arquivos comuns para diversos sistemas, como os seus
arquivos de configuração e o arquivo de políticas. Para isso ele dá uma opção de criar
uma senha (site key) de acesso a eles:
Figura 7 – Autorização da criação da site key do Tripwire
Da mesma forma que a anterior, ele também protege arquivos específicos para o
sistema, como a sua base de dados. Para isso ele dá uma opção de criar uma senha (local
key) de acesso a eles:
85
Figura 8 - Autorização da criação da local key do Tripwire
Reconstruir o arquivo de configuração:
Figura 9 – Reconstruir o arquivo de configuração do Tripwire
Reconstruir o arquivo de políticas:
Figura 10 – Reconstruir o arquivo de políticas do Tripwire
86
Informe a senha para arquivos comuns:
Figura 11 – Informar senha para site key do Tripwire
Confirme a senha criada:
Figura 12 – Confirmar senha para site key do Tripwire
Informe a senha para arquivos específicos:
Figura 13 – Informar senha para local key do Tripwire
Confirme a senha criada:
Figura 14 – Confirmar senha para local key do Tripwire
87
Caso obtenha sucesso em todos os passos, será exibida a tela abaixo:
Figura 15 – Instalação do Tripwire concluída
Após instalar e criar as senhas para o tripwire são gerados dois arquivos dentro de
/etc/tripwire:
• twpol.txt
• twcfg.txt
Esses arquivos não podem ser lidos diretamente. Para isso serão necessários os
comandos:
# twadmin --print-polfile
# twadmin --print-cfgfile
O funcionamento do tripwire é controlado por dois arquivos de configurações:
3. /etc/tripwire/twcfg.txt – parâmetros gerais. Caminhos para executáveis;
4. /etc/tripwire/twpol.txt – políticas de proteção dos arquivos.
Como proteção, será necessário modificar o uso do diretório temporário padrão:
# vi /etc/tripwire/twcfg.txt
TEMPDIRECTORY =/tmp/tripwire
Criar e colocar as permissões necessárias:
# mkdir /tmp/tripwire
# chmod 700 /tmp/tripwire
88
Gerar a base inicial de dados.
A base de dados não poderá ser lida diretamente. Ela será gerada em
/var/lib/tripwire/hostname.domain.twd:
# tripwire --init
Caso tenha alterado o arquivo de políticas, será necessário atualizar o tripwire:
# tripwire --update-policy --secure-mode low /etc/tripwire/twpol.txt
Verificação de integridade do sistema:
# tripwire --check --interactive
Será gerado um arquivo contendo o relatório da checagem. Para visualizar
utilize o comando:
# twprint --print-report --twrfile /var/lib/tripwire/report/hostname-timestamp.twr >
/tmp/checagem.txt
Atualizando a base de dados:
# tripwire --update --twrfile /var/lib/tripwire/report/hostname-timestamp.twr
89
ANEXO 8 – TUTORIAL PARA INSTALAÇÃO DO HIDS OSIRIS
Instalação do Servidor
Baixe dependências necessárias:
# aptitude install build-essential libssl-dev
Download – http://osiris.shmoo.com/download.html
# cd /opt/Downloads
# tar xzvf osiris-4.2.3.tar.gz
# cd Osíris-4.2.3
# ./configure
# make all && make install
Obs: Após ter realizado o make install, serão feitas algumas perguntas:
…
…
A próxima pergunta será sobre iniciar o daemon gerenciador, chamado de
osirismd. Irá gerar uma chave RSA para o certificado:
90
Inicie também o daemon do cliente local responsável pela verificação, chamado
de osirisd. Iremos manipular o osirismd através do comando osiris:
Verifique se os dois daemons estão sendo executados:
# ps aux| grep osiris
Acessando pelo console
Por padrão e questões de segurança, a primeira configuração, em uma conexão
com o daemon osirismd, deverá ser feita localmente. Será gerado um certificado para
obtenção de conexão segura. Configure através da linha de comando:
# osiris
Também por padrão o usuário e senha já são definidos. No caso, usuário admin e
senha em branco. Por questões de segurança teremos que gerar uma nova senha:
91
Modificando a senha padrão:
O comando “help”, ou apenas “?”, lista os possíveis comandos suportados pelo
osirismd:
92
Realizar configurações básicas necessárias no servidor:
Confirme a autorização da lista e adicione a rede na qual estará autorizada a
conectar no servidor:
93
Sair e confirmar todas as modificações:
Adicionar o servidor para ser monitorado:
94
As próximas perguntas são referentes à base de verificação e são autoexplicativas. Caso não discorde, deixar como padrão:
Após as perguntas sobre a base de verificação, serão solicitas perguntas sobre as
notificações. Caso não tenha um MTA instalado localmente ou interno que não use
autenticação de SMTP deixar como padrão:
95
As próximas perguntas são referentes às verificações. Quando foi realizada a
primeira verificação e com que freqüências ela será efetuada. Caso seja a primeira vez,
deixar como padrão:
Habilitar e confirmar as configurações do host:
96
Em outro console, verificar se o daemon osirisd está iniciado. Voltando ao
console de configuração do osiris, confirmar a inicialização do host. A configuração dos
arquivos checados ficará nos arquivos padrão default.linux:
Verificar se a base de verificação do host local foi criada. Caso a coluna
CREATED esteja escrito (peding), a base ainda está sendo gerada:
97
Escolha a base com o comando print-db 1. Selecionar o host servidor e analisar
com mais detalhes a base gerada, bastando apenas escolher a letra que aparece no novo
prompt:
Para sair basta executar os comandos abaixo:
Adicionar um cliente para ser monitorado.
O pacote de instalação e as dependências são as mesmas do servidor,
modificando apenas no comando make.
Baixe dependências necessárias:
# aptitude install build-essential libssl-dev
98
Download – http://osiris.shmoo.com/download.html
# cd /opt/Downloads
# tar xzvf osiris-4.2.3.tar.gz
# cd Osíris-4.2.3
# ./configure
# make agent && make install
Obs: Após ter realizado o make install, serão feitas algumas perguntas:
…
Inicie também o daemon do cliente local responsável pela verificação, chamado
de osirisd. Iremos manipular o osirismd através do comando osiris:
Verifique se o daemon está sendo executado:
# ps aux| grep osiris
Obs.: O host deverá ser adicionado no servidor da mesma forma que o host servidor foi
adicionado pelo aplicativo via linha de comando, chamado osiris. Colocando um nome
para o cliente e o IP ao qual ele pertence. Responder as outras perguntas conforme a
configuração do cliente.
99
ANEXO 9 – TUTORIAL PARA INSTALAÇÃO DO SCANNER DE
VULNERABILIDADES WEB NIKTO
Instalação e Configuração
Primeiro vamos ao download da ferramenta – http://www.cirt.net/nikto/
# cd /usr/local
# tar xzvf nikto-current.tar.gz
Acrescente o diretório do nikto na variável PATH:
# vi /etc/profile
PATH=$PATH:/usr/local/nikto
export PATH
Instalar um servidor de web para teste:
# aptitude install apache
Verificar se o mesmo está iniciado:
# netstat -napt | grep apache
Atualizar a base de dados do nikto
# nikto.pl -update
Para solicitar os possíveis comandos aceitos pelo nikto:
# nikto.pl -h
100
Realizar um teste na máquina local:
# nikto.pl -h localhost -o /root/localhost.txt
Utilizar uma forma para “driblar” um possível IDS:
# nikto.pl -h localhost -evasion 1 -o /root/localhost.txt
101
ANEXO 10 – TUTORIAL PARA INSTALAÇÃO DO HIDS
LABRADOR
Instalação e Configuração
Primeiro vamos ao download da ferramenta:
http://labrador-ids.sourceforge.net/download.html
# cd /usr/local
# tar xzvf labrador-0.9.1-linux.i386.tar.gz
# mv labrador-0.9.1 labrador
Acrescente o diretório do labrador na variável PATH:
# vi /etc/profile
PATH=$PATH:/usr/local/labrador
export PATH
Baixando dependências necessárias:
# aptitude install build-essential
Verificando módulos do Perl necessários para a execução do Labrador:
# cd /usr/local/labrador/tools
# ./perlcheck.pl
Obs.: O script irá fazer as perguntas dos módulos que ainda não estão instalados no
sistema. Confirme as instalações e aguarde o final da execução do mesmo. Caso ocorra
algum erro na instalação de algum módulo, baixá-lo diretamente do site
http://search.cpan.org. Mais informações sobre os módulos encontram-se em
/usr/local/labrador/LEIAME.txt.
102
Baixar o módulo necessário para criptografar a base de dados:
# perl -MCPAM -e shell
cpan> install Crypt::Blowfish
cpan> q
Modificar o arquivo de regras:
# cd /usr/local/labrador/conf
# cp rules-Linux.conf rules.conf
Listar os arquivos que o arquivo de regras irá ler:
# labrador.pl -l
Obs.: Informações de como manipular o arquivos de regras encontram-se na seção 5.1
do arquivo /usr/local/labrador/LEIAME.txt.
Modificar o arquivo de configuração:
# cd /usr/local/labrador/conf
# vi labrador.conf
lang=pt_br
encrypt=yes
cipher=Blowfish
Criar a base de dados
Criar a base de dados de acordo com o que foi definido no arquivo de regras e no
arquivo de configuração labrador.conf:
# labrador.pl -n
Após o comando é preciso digitar a senha para ser gerada a base de dados,
chamada de labrador.db, criptografada.
103
Fazer a verificação nos arquivos
Para saber se houve alguma alteração:
# labrador.pl -v
Fazer a restauração dos arquivos
Será possível fazer uma restauração dos arquivos, caso alguma alteração tenha
ocorrido:
# labrador.pl -e
104
ANEXO 11 – TUTORIAL PARA INSTALAÇÃO DO IPS FWSNORT
Instalação e Configuração
Download – http://cipherdyne.org/fwsnort/download/
Baixando dependências necessárias:
# aptitude install build-essential
Instalar Fwsnort juntamente com os módulos em Perl necessários. Será
perguntado se você deseja instalar as ultimas regras do Snort. Confirme e prossiga.
# cd /usr/local
# tar xzvf fwsnort-1.0.5.tar.gz
# cd fwsnort-1.0.5
# ./install.pl
Configuração do fwsnort.conf. No exemplo criado, foi utilizado a rede
10.10.10.0/24. Modifique apenas as linhas necessárias:
# vim /etc/fwsnort/fwsnort.conf
HOME_NET
DNS_SERVERS
WHITELIST
10.10.10.0/24
[200.137.160.130,200.137.160.135]
10.10.10.5, 10.10.10.7
Gerar o arquivo necessário para adicionar as regras ao firewall.
O arquivo gerado ficará localizado em /etc/fwsnort/fwsnort.sh:
# fwsnort
105
Adicionar as regras do firewall baseadas no Snort a partir do fwsnort:
# /etc/fwsnort/fwsnort.sh
106
ANEXO 12 – TUTORIAL PARA INSTALAÇÃO DO IPS HLBR
Instalação e Configuração
Download – http://sourceforge.net/projects/hlbr
Baixando dependências necessárias:
# aptitude install build-essential libpcre3-dev libpcre3
Instalar HLBR com o idioma em português:
# cd /opt/Downalods
# tar xzvf hlbr-1.6.tar.gz
# cd hlbr-1.6
# ./configure
Selecione p e [ENTER]
#make && make install
Configuração das interfaces
Como é o daemon do HLBR que gerencia as placas de rede, será necessário
colocar endereçamentos locais:
# ifconfig eth0 127.0.0.2
# ifconfig eth1 127.0.0.3
Configuração do arquivo hlbr.config
A configuração do HLBR é realizada no arquivo hlbr.config. Somente as
entradas IPList devem ser alteradas. Caso não disponha de todos os campos do IPList,
basta apenas comentá-los:
# vi /etc/hlbr/hlbr.config
<IPList www>
200.137.160.188
107
</list>
<IPList dns>
200.137.160.130
200.137.160.135
</list>
<IPList email>
200.137.160.188
</list>
<IPList firewall>
10.10.10.254
</list>
<IPList network>
10.10.10.0/24
</list>
#<IPList others>
#10.10.10.5
#10.10.10.7
#</list>
<IPList servers>
www
dns
email
firewall
#others
</list>
Acrescentar regra
As regras de detecção de ataque do HLBR ficam em /etc/hlbr/rules. Abaixo será
adicionado uma regra para identificar SQL Injections:
# vi /etc/hlbr/rules/SQL-xss.rules
…
<rule>
ip
tcp
regex((?:^\s*[;>"]\s*(?:UNION|SELECT|CREATE|RENAME|
dst(www)
dst(80)
108
TRUNCATE|LOAD|ALTER|DELETE|UPDATE|INSERT|DESC))|(?:(?:SELECT|
CREATE|RENAME|TRUNCATE|LOAD|ALTER|DELETE|UPDATE|INSERT|
DESC)\s+(?:CONCAT|CHAR|CONCAT|LOAD_FILE|0x)\s?\(?)|
(?:END\s*\);)|
("\s+REGEXP\W))
message=(sql-xss-5) Detects concatenated basic SQL injection and SQLLFI attempts
action=action1
</rule>
Iniciar o daemon do HLBR:
# /etc/initd.d/hlbr start
ou
# hlbr -c /etc/hlbr/hlbr.config -r /etc/hlbr/hlbr.rules -d
Verificar se o HLBR está executando:
# ps aux | grep hlbr
Os log’s do HLBR ficam armazenados em /var/log/hlbr. São gerados log’s em
arquivos textos com extensão .log e arquivos de dump do tcpdump.
Visualizar os arquivos de log:
# vi hlbr.log
Para visualizar os dumps do tcpdump:
# tcpdump -s 1500 -vvv -tttt -X -r hlbr.dump
109
ANEXO 13 – TUTORIAL PARA INSTALAÇÃO DO HONEYPOT
HONEYD
Instalação e Configuração
O primeiro passo é instalarmos o Honeyd no Debian:
# aptitude install farpd honeyd
Direcionar o tráfego para o HoneyPot:
# farpd 10.10.10.0/24
Todos
os
serviços
que
vão
ser
emulados
se
encontram
em
/usr/share/honeyd/scripts, alguns são específicos para certos Sistemas Operacionais,
como o mydoom.pl, que é próprio para Sistemas Windows.
As assinaturas para NMAP (PortScan) dos Sistemas Operacionais emulados se
encontram em /etc/honeypot/nmap.prints. Caso o atacante use o P0f, as assinaturas
ficam em /etc/honeypot/pf.os. Caso o atacante especifique NMAP juntamente com o
xprobe,
o
arquivo
contendo
os
estilos
do
xprobe
fica
localizado
em
se
encontra
em
/etc/honeypot/xprobe2.conf.
Alterando as configurações default:
# vi /etc/default/honeyd
RUN= “yes”
NETWORK=10.10.10.0/24
O
arquivo
de
configuração
do
Honeyd
/etc/honeypot/honeyd.conf. Nele será definido quais sistemas estão sendo emulados,
quanto tempo o sistema está ligado,
se ele vai responder a ICMP do tipo
ECHO_REQUEST, quais as portas para aquele respectivo sistema estarão abertas, qual
o serviço aquela porta está escutando e qual o IP para este sistema emulado.
110
Configuração do honeyd.conf
Emulação de um Sistema operacional Windows e um Sistema Operacional
Linux. Ambos se “encontram” na mesma rede local:
# mv /etc/honeypot/honeyd.conf /etc/honeypot/honeyd.conf.orig
# vi /etc/honeypot/honeyd.conf
# Maquina Windows
create windows
set windows personality "Microsoft Windows XP Professional SP1"
set windows uptime 679701
set windows default tcp action reset
set windows default udp action reset
set windows default icmp action block
add windows tcp port 4444 "/usr/share/honeyd/scripts/cmdexe.pl -p winxp -l
/var/log/honeyd/blaster.logs "
add windows tcp port 23 "/usr/share/honeyd/scripts/telnet/faketelnet.pl -p winxp -l
/var/log/honeyd/tel23.logs "
add
windows
tcp
port
1080
"/usr/share/honeyd/scripts/mydoom.pl
-l
/var/log/honeyd/mydoom.logs "
bind 10.10.10.100 windows
# Maquina Linux 2.4.x
create linux
set linux personality "Linux 2.4.16 - 2.4.18"
set linux default tcp action reset
set linux default udp action reset
set linux default icmp action open
add linux tcp port 110 "sh /usr/share/honeyd/scripts/unix/general/pop/pop3.sh"
add linux tcp port 25 "sh /usr/share/honeyd/scripts/unix/general/smtp.sh"
add linux tcp port 21 "sh /usr/share/honeyd/scripts/unix/linux/ftp.sh"
set linux uptime 456460
bind 10.10.10.101 linux
create default
set default default tcp action block
set default default udp action block
set default default icmp action block
111
Iniciar o daemon do Honeyd:
# /etc/init.d/honeyd start
Verificar se ocorreu a inicialização:
# ps aux | grep honeyd | grep -v grep
Alguns testes
Em outra máquina realize os seguintes testes para verificar a conectividade com
as máquinas emuladas e se existem serviços nas portas especificadas:
# ping 10.10.10.100
…
# ping 10.10.10.101
…
# nmap -sT 10.10.10.100 -PN
…
# nmap -sT 10.10.10.101 -PN
…
112
ANEXO 14 – TUTORIAL PARA INSTALAÇÃO DO SCANNER DE
VULNERABILIDADES NESSUS
Instalação e Configuração
O primeiro passo é instalarmos o Nessus-server no Debian:
# aptitude install nessusd libnessus-dev nessus-dev
Instalar também a parte do cliente:
# aptitude install nessus
Criar um usuário para acessar o servidor:
# nessus-adduser
Digite o nome do usuário e o tipo de autenticação:
113
Acrescente algumas regras para o usuário e depois confirme:
Iniciar o servidor Nessus.
Os plugins instalados por padrão serão automaticamente carregados:
# nessusd &
Verificar se o serviço foi iniciado corretamente:
# ps aux | grep nessus
ou
# netstat –nlpt | grep 1241
114
Atualizar a lista de plugins do Nessus.
Acessar o site do desenvolvedor (http://www.nessus.org) e clicar em plugins:
Figura 16 – Baixar plugins Nessus I
No Menu à esquerda, escolher a opção Register:
Figura 17 – Baixar plugins Nessus II
115
Dentre as opções de registro escolher Free:
Figura 18 – Baixar plugins Nessus III
Aceitar os termos do registro:
Figura 19 – Baixar plugins Nessus IV
116
Inserir um email válido e clicar em Register:
Figura 20 – Baixar plugins Nessus V
Ao receber o email, verifique a distribuição na qual o Nessus esta instalada.
Digite o comando, que aparece no email, em uma console. Esse registro só pode ser
utilizado uma única vez:
# nessus-fetch --register E4E7-3002-4F8A-E8E9-063B
Mate o processo correspondente ao daemon do Nessus e o execute novamente.
Dessa forma, os novos plugins serão carregados:
# pkill nessus
# nessusd &
117
Realizando um scaneamento:
Figura 21 – Tela de logins do Nessus-Client
Na aba de Plugins, selecione apenas aqueles apropriados para a checagem:
Figura 22 – Tela de seleção de plugins do Nessus-Client
118
Na aba Target selection, coloque o IP do cliente que deseja verificar ou leia de
um arquivo contendo vários IP’s. Depois clique em Start the scan para iniciar a
verificação:
Figura 23 – Iniciar um scaneamento no Nessus
A verificação pode demorar, dependendo da quantidade de plugins:
Figura 24 – Tela de verificação do Nessus
119
A próxima janela que se abre diz respeito aos hosts que foram verificados, bem
como os seus serviços. Encontrando vulnerabilidades, o Nessus também informa uma
possível solução. Caso queira salvar esse relatório, basta clicar em Save report:
Figura 25 – Relatório do Nessus
O Nessus suporta salvar em diversos formatos. Escolha o local apropriado, o
formato do arquivo (indicado pela seta vermelha) e o nome do relatório. Feito isso,
clique em OK:
Figura 26 – Salvar relatório
120
Exibição de um relatório em formato HTML:
Figura 27 – Relatório do Nessus gerado em html
121
ANEXO 15 – TUTORIAL PARA INSTALAÇÃO DO OSSIM
Instalação e Configuração
Modificar o repositório do Debian, adicionar as seguintes linhas no sources.list:
# vi /etc/apt/sources.list
deb http://www.ossim.net/download/ debian/
deb-src http://www.ossim.net/download/ debian/
# aptitude update
Criar um arquivo de preferências para o Ossim:
# vi /etc/apt/preferences
Package: *
Pin: release o=ossim
Pin-Priority: 995
Atualizar a lista de repositórios:
# aptitude update
Modificar as respostas do debconf:
# dpkg-reconfigure -plow debconf
122
Figura 28 – Interface usada no Debconf
Figura 29 – Prioridade das perguntas do Debconf
Instalar o Ossim com o MYSQL no Debian.
Irá solicitar a senha do administrador do MYSQL:
# aptitude install ossim-mysql
Caso não apareça a solicitação de senha, coloque manualmente:
# mysqladmin -u root password <senha>
Permita que o Mysql trabalhe no IP da máquina e não só em localhost:
# vi /etc/mysql/my.cnf
bind-address
=*
123
Reinicie o Mysql:
# /etc/init.d/mysql restart
Criar os seguintes bancos no Mysql:
# mysql -p
mysql> create database ossim;
mysql> create database ossim_acl;
mysql> create database snort;
mysql> create database osvdb;
mysql> exit;
Adicionar as tabelas nos respectivos bancos:
# zcat /usr/share/doc/ossim-mysql/contrib/create_mysql.sql.gz \
/usr/share/doc/ossim-mysql/contrib/ossim_config.sql.gz \
/usr/share/doc/ossim-mysql/contrib/ossim_data.sql.gz | \
mysql -u root ossim -p
# zcat /usr/share/doc/ossim-mysql/contrib/create_snort_tbls_mysql.sql.gz \
/usr/share/doc/ossim-mysql/contrib/create_acid_tbls_mysql.sql.gz | \
mysql -u root snort -p
# zcat /usr/share/doc/ossim-mysql/contrib/OSVDB-tables.sql.gz \
mysql -u root snort -p
Adicionar as tabelas de plugins:
# cd /usr/share/doc/ossim-mysql/contrib/plugins
# zcat *.sql.gz | mysql -u root ossim -p
# cat *.sql.gz | mysql -u root ossim -p
Instalar o servidor do Ossim:
# aptitude install ossim-server
124
Figura 30 – Nome do servidor do OSSIM
Figura 31 – IP do servidor OSSIM
Obs.: O IP 0.0.0.0 significa que ele poderá “escutar” qualquer IP das redes das quais ele
faz parte.
Figura 32 – Nome do Framework
Figura 33 – IP do Framework
125
Figura 34 – Porta do Framework
Figura 35 – Nome do banco do servidor OSSIM
Figura 36 – Hostname do servidor MYSQL
Figura 37 – Nome do administrador do banco ossim
Figura 38 – Senha do usuário do banco do servidor MYSQL
126
Figura 39 – Nome do banco pertencente ao Snort
Figura 40 – Hostname do servidor MYSQL
Figura 41 – Nome do administrador do banco snort
Figura 42 – Senha do administrador do banco
127
Figura 43 – Nome do banco pertencente ao Osvdb
Figura 44 – Hostname do servidor MYSQL
Figura 45 – Nome do administrador do banco osvdb
Figura 46 – Senha do administrador do banco
Instalar o um agente localmente:
# aptitude install ossim-agent
128
Modificar as configurações do Agente:
# vi /etc/ossim/agent/config.cfg
sensor = 127.0.0.1
interface = eth0
date_format = %d-%m-%Y %H:%M:%S
ossim_dsn=mysql:localhost:ossim:root:123456
Adicionar os privilégios ao usuário do Snort:
# mysql -u root -p
mysql> grant all privileges on *.* to [email protected] identified by "123456";
mysql> quit
Instalar o Servidor de Web:
# aptitude install apache2 php5 libapache2-mod-php5 libphp-jpgraph php5-cli php5-gd
php5-mysql
Retire o redirecionamento para o apache2-default:
# vim /etc/apache2/sites-available/default
Comente a linha que possui:
RedirectMatch ^/$ /apache2-default/
Adicionar um nome para responder o servidor do apache:
# vi /etc/apache2/apache2.conf
ServerName localhost
129
Reinicie o Apache2:
# /etc/init.d/apache2 restart
Instalar o pacote phpgacl
Responsável pela alimentação do banco ossim_acl:
# aptitude install phpgacl
Figura 47 – Tela inicial de configuração do libphp-adodb
Figura 48 – Seleção das versões do Apache
Figura 49 – Configuração da base de dados do phpgacl
130
Figura 50 – Escolha do banco a ser utilizado pelo phpgacl
Figura 51 – Senha do administrador do banco MYSQL
Figura 52 – Senha do MYSQL para o phpgacl
Figura 53 – Confirmação da senha
131
Instalar os Plugins
snort
# aptitude install snort-mysql
Figura 54 – Interface utilizada pelo Snort
Figura 55 – Rede a ser monitorada pelo Snort
Figura 56 – Usuário que irá receber os emails do Snort
132
Figura 57 – Configurar a base de dados
Figura 58 – Hostname do servidor MYSQL
Figura 59 – Nome do banco utilizado pelo Snort
Figura 60 – Nome do administrador do MYSQL
133
Figura 61 – Senha do administrador do MYSQL
Antes de reiniciar o snort, apague o arquivo de pendência da configuração do
banco de dados que ele criou dentro de /etc/snort:
# rm -f /etc/snort/db-pending-config
Faca um cópia do snort.conf original e mantenha um novo arquivo sem os comentários:
# mv snort.conf snort.conf.orig
# cat snort.conf.orig | grep –v ^# | grep . > snort.conf
Verificar se o snort.conf encontra-se com as seguintes características, caso
contrário, será necessário modificar:
# vi snort.conf
var HOME_NET 10.10.10.0/24
var EXTERNAL NET !$HOME_NET
var DNS_SERVERS $HOME_NET
var SMTP_SERVERS $HOME_NET
var HTTP_SERVERS $HOME_NET
output database: log, mysql, user=root
host=localhost
include spade.ossim.conf
password=123456
dbname=snort
134
Atualizar as regras de assinaturas:
# cd /etc/snort/rules
# wget http://www.bleedingsnort.com/bleeding-all.rules
# echo “include \$RULES_PATH/bleeding-all.rules” >> /etc/snort/snort.conf
Criar o arquivo bleeding.conf:
# echo “var SSH_PORTS 22” > /etc/snort/rules/bleeding.conf
Atualizar o banco ossim com as regras novas:
# /usr/share/ossim/scripts/create_sidmap.pl /etc/snort/rules | mysql -u root ossim -p
Iniciar o daemon do Snort:
# /etc/init.d/snort start
ntop
# aptitude install librrd2 ntop
Figura 62 – Interface que o Ntop irá escutar
135
Figura 63 – Nome do usuário que irá rodar o daemon do Ntop
Definir um password para o administrador do Ntop:
# ntop -u ntop
Insere a senha
# [Ctrl]+c
# /etc/init.d/ntop start
Abra um Browser e acesse:
http://localhost:3000
Figura 64 – Página inicial do Ntop
136
nagios
# aptitude install nagios-mysql
Figura 65 – Nome do Domínio do servidor
Figura 66 – Opção de escolha para uso de senhas no servidor
Figura 67 – Opção de escolha para configurações vindas de um servidor WINS
137
Figura 68 – Seleção das versões do Apache
Figura 69 – Senha para administrar o Nagios via web
Figura 70 – Opção de habilitar os comandos externos do Nagios
138
Figura 71 – Opção de escolha da configuração do banco do nagios-mysql
Figura 72 – Senha do administrador do MYSQL
Figura 73 – Senha do MYSQL para o phpgacl
Figura 74 – Confirmação da senha
Obs.: As configurações dos arquivos do Nagios fogem o escopo desse material. Os
arquivos do nagios devem ser modificados de acordo com a rede em que se encontra.
139
Outros plugins
# aptitude install p0f arpwatch pads tcptrack
Por causa do ossim-agent, não pode carregar no boot o arpwatch e o pads:
# update-rc.d -f arpwatch remove
# update-rc.d -f pads remove
Osiris
# aptitude install osiris osirisd
Obs.: São as mesmas configurações descritas sobre o Osiris anteriormente
Instalar o FrameWork:
# aptitude install ossim-framework
Figura 75 – Configuração da base de dados do acidbase
Figura 76 – Escolha do banco a ser utilizado pelo acidbase
140
Figura 77 – Senha do administrador do banco MYSQL
Figura 78 – Senha do MYSQL para o acidbase
Figura 79 – Confirmação da senha
Figura 80 – Seleção das versões do Apache
141
Figura 81 – Nome do banco do servidor OSSIM
Figura 82 – Hostname do servidor MYSQL
Figura 83 – Nome do administrador do banco ossim
Figura 84 – Senha do usuário do banco do servidor MYSQL
Figura 85 – Nome do banco do OSSIM ACL
142
Figura 86 – Hostname do servidor MYSQL
Figura 87 – Nome do administrador do banco ossim
Figura 88 – Senha do usuário do banco do servidor MYSQL
Abra um Browser e acesse http://localhost/ossim. Siga as instrunções para a
configuração do phpGACL:
Figura 89 – Página de configuração do phpGACL I
143
Figura 90 – Página de configuração do phpGACL II
Figura 91 – Página de configuração do phpGACL III
Após ter clicado em Submit, a próxima janela que se abre será para criar ACL
através de uma interface administrativa:
Figura 92 – Página de configuração do phpGACL IV
144
Figura 93 – Página de configuração do phpGACL V
Acesse novamente http://localhost/ossim. A tela de login do Ossim irá se abrir.
Por padrão, o usuário e a senha vêm setados como “admin”:
Figura 94 – Página de login do OSSIM
Depois de efetuado o login, o Ossim dá a possibilidade de realizar algumas
atualizações:
Figura 95 – Página de atualizações das aplicações instaladas pelo OSSIM
145
ANEXO 16 – TUTORIAL PARA INSTALAÇÃO DO PRELUDE
Instalação e Configuração
Instalar as dependências necessárias:
# aptitude install debconfig-common
Instale o mysql-server:
# aptitude install mysql-server
Verifique se o MySQL está rodando e se os sockets estão ativos:
# ps aux | grep mysql
# netstat -nlpt
Defina uma senha para o usuário root do MySQL:
# mysqladmin -u root password <nova senha>
Modificar o repositório do Debian, adicionar as seguintes linhas no sources.list:
# vi /etc/apt/sources.list
deb http://packages.inl.fr/ stable/
# aptitude update
Instale o Prelude-Manager:
# aptitude install prelude-manager
146
Figura 96 – Configuração da base de dados do acidbase
Figura 97 – Escolha do banco a ser utilizado pelo prelude-manager
Figura 98 – Senha do administrador do banco MYSQL
Figura 99 – Senha do MYSQL para o prelude-manager
Figura 100 – Confirmação da senha
147
Por padrão, o script do daemon do prelude-manager não vem ativo. Será
necessário fazer uma modificação:
# vi /etc/default/prelude-manager
RUN=yes
Coloque o IP do servidor para não ser apenas local:
# vi /etc/prelude-manager/prelude-manager.conf
listen = 10.10.10.118
Inicie o daemon do Prelude-Manager e verifique se o mesmo está rodando:
# /etc/init.d/prelude-manager start
# netstat -anput | grep prelude
Instale o Prelude-LML. Cada host que será monitorado deverá ter esse pacote
instalado. Ele é responsável pela análise de log’s e o envio dos eventos para o servidor
(Prelude-Manager):
# aptitude install prelude-lml
Colocar o IP do servidor no arquivo do cliente:
# vi /etc/prelude/default/client.conf
server-addr = 10.10.10.118
Obs.: O servidor não confia nos clientes. Passa a confiar apenas quando eles são
registrados. Pode-se primeiro testar adicionando o próprio servidor como cliente.
148
O registro do cliente no servidor
É feito em quatro passos.
1 – Digitar o comando no cliente:
# prelude-adduser register prelude-lml “idmef:w” 10.10.10.118 --uid 0 --gid 0
2 – Executar o seguinte comando no Servidor. Detalhe para a senha destacada. Ela é do
tipo OTP (One-Time Password), usada apenas uma vez. Servirá para autenticar o
cliente:
# prelude-admin registration-server prelude-manager
149
3 – Volte no cliente e digite a senha OTP gerada pelo servidor:
4 – Confirme o registro no servidor:
Inicie o daemon do Prelude-LML no servidor e verifique se o mesmo está rodando:
# /etc/init.d/prelude-lml start
# ps auxw | grep prelude-lml
Instalar o Web Front Prewikka
# aptitude install prewikka
Figura 101 – Configuração da base de dados do acidbase
150
Figura 102 – Escolha do banco a ser utilizado pelo prewikka
Figura 103 – Senha do administrador do banco MYSQL
Figura 104 – Senha do MYSQL para o prewikka
Figura 105 – Confirmação da senha
Edite o arquivo de configurarão de base de dados do Prewikka, informando os
valores corretos. O valores também se encontram em /etc/prelude-manager/preludemanager.conf:
# vi /etc/prewikka/prewikka.conf
[idmef_database]
151
type: mysql
host: localhost
user: prelude
pass: 123456
name: prelude
Instalar o servidor de Web:
# aptitude install apache2 libapache2-mod-python
Crie um arquivo para host virtual:
# vi /etc/apache2/sites-available/prewikka
NameVirtualHost *
<VirtualHost *>
ServerAdmin [email protected]
<Location />
SetHandler mod_python
PythonHandler prewikka.ModPythonHandler
PythonOption PrewikkaConfig /etc/prewikka/prewikka.conf
</Location>
<Location /prewikka>
SetHandler None
</Location>
Alias /prewikka /usr/share/prewikka/htdocs
Alias /htdocs /usr/share/prewikka/htdocs
</VirtualHost>
Habilitar somente o host virtual Prewikka e reiniciar o daemon do Apache:
# a2dissite 000-default
# a2ensite prewikka
# apache2ctl restart
152
Em uma console coloque o prewikka para escutar em uma porta diferente da
porta padrão:
# prewikka-httpd
Abra um navegador e acesse o endereço http://10.10.10.118:8000. Por padrão, o
usuário e a senha vêm setados como “admin”:
Figura 106 – Tela de login do Prewikka
153

Documentos relacionados

Manual de Instalação do Snort em Português

Manual de Instalação do Snort em Português ACID 0.9.6B21 http://acidlab.sourceforge.net/ PHP v4.1.* ftp://updates.redhat.com/7.3/en/os/i386/ ADODB v2.31 http://php.weblogs.com/adodb PHPLOT v4.4.6 http://www.phplot.com/ GD v1.8.4 http://www....

Leia mais