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
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