segunda-feira, 28 de maio de 2012

Hardening

É um processo de mapeamento das ameaças, mitigação dos riscos e execução das atividades corretivas, com foco na infraestrutura e objetivo principal de torná-la preparada para enfrentar tentativas de ataque.
Normalmente, o processo inclui remover ou desabilitar nomes ou logins de usuários que não estejam mais em uso, além de serviços desnecessários.
Outras providências que um processo de hardening pode incluir: limitar o software instalado àquele que se destina à função desejada do sistema; aplicar e manter os patches atualizados, tanto de sustema operacional quanto de aplicações; revisar e modificar as permissões dos sistemas de arquivos, em especial no que diz respeito a escrita e execução; reforçar a segurança do login, impondo uma política de senha fortes.

Linux:

http://www.csirt.pop-mg.rnp.br/docs/hardening/linux.html

Windows

http://www.csirt.pop-mg.rnp.br/docs/hardening/windows.html

terça-feira, 22 de maio de 2012

Participação no Acet Amostra

Palestra "Técnicas de Invasão: Como se Defender", com o Prof. Eudes Danilo Mendonça e aluno Matheus Manito.
Apresentação pelos Alunos André Dickson, Diogo Couto, Pedro Anaisse e Tiago Maia sobre  implementações em de soluções com a Ferramenta Mikrotik e  Análise de Vulberabilidade em redes WI-FI utilizando a ténica Wardriving.











sexta-feira, 4 de maio de 2012

Manual => TCPDUMP: MONITORAMENTO DE CONEXÕES


Introdução

        Monitorar o tráfego de rede é algo fundamental para a solução de problemas e análises de vulnerabilidades e desempenho. Uma ótima opção para este tipo de trabalho é o tcpdump. O tcpdump é um conhecido sniffer do mundo GNU/Linux. Um sniffer é um software que faz a análise de pacotes direcionados a ele ou não.

O tcpdump também permite o uso de filtros e opções dependendo do tipo de trabalho desejado e tipo de análise a ser executado.

Para trabalhar com o tcpdump é necessário entender o funcionamento de uma rede TCP/IP, ou pelo menos ter alguma fundamentação ou conhecimento do assunto.


 Tcpdump: Monitoramento de conexões

         O tcpdump é um sniffer para sistemas GNU/Linux. Com o tcpdump é possível monitorar portas e interfaces de redes de um servidor e/ou de um cliente.

Instalação:

A instalação do tcpdump em sistemas Debian é bem simples, bastando executar o comando abaixo como super usuário (root):

# apt-get install tcpdump

Utilização dos Parâmetros

         Para iniciarmos a utilização do tcpdump podemos especificar a interface de rede que queremos analisar com o parâmetro -i seguido da interface desejada, por exemplo, se quisermos analisar todo o tráfego que passa pela interface eth0, executaríamos a seguinte linha de comando:
 # tcpdump -i eth0
Obs.: Não se faz obrigatório o uso do parâmetro -i, mas se não especificado, o tcpdump vai capturar os pacotes de todas as interfaces de rede (tanto Ethernet quanto USB).

         Conexões de origem podem ser monitoradas utilizando o parâmetro src host, um exemplo simples seria monitorarmos o tráfego que vem de 192.168.0.9 para o nosso computador, com o ip 192.168.0.2. A linha de comando ficaria da seguinte forma:
# tcpdump -i eth0

         O parâmetro -D mostra as interfaces disponíveis para o monitoramento.
# tcpdump -D

         Outro parâmetro interessante é o -c que termina o monitoramento após “n” pacotes.
# tcpdump -i eth0 -c 20

         O parâmetro -v mostra o pacote com mais detalhes. O parâmetro -vv mostra ainda mais detalhes do que -v, e o parâmetro -vvv mostra o máximo de detalhes que o tcpdump pode mostrar.
# tcpdump -i eth0 -vv

         O parâmetro -x escreve o conteúdo do pacote no formato hexadecimal.
# tcpdump -i eth0 -x

        O parâmetro -X mostra o conteúdo do pacote no formato hexadecimal e ASCII.
# tcpdump -i eth0 -X

         Um comando interessante dentro do tcpdump é portrange. O portrange permite que você monitore um range de portas de uma vez só.
# tcpdump -i eth0 portrange 1-443

         Para não resolver o nome dos hosts durante a captura dos pacotes basta utilizarmos o parâmetro -n.
# tcpdump -i eth0 -n -c 20

         Para não resolvermos o nome dos hosts e dos serviços associados às portas utilizamos o parâmetro -nn.
# tcpdump -i eth0 -nn -c 20

         Conexões de origem podem ser monitoradas utilizando o parâmetro src host, um exemplo simples seria monitorarmos o tráfego que vem de 192.168.0.9 para o nosso computador, com o ip 192.168.0.2. A linha de comando ficaria da seguinte forma:
# tcpdump -i eth0 src host 192.168.0.9

         Se quisermos monitorar conexões especificando um host de destino, poderíamos fazê-lo com o parâmetro dst host, o exemplo abaixo mostra todo o tráfego do host 192.168.0.2 com 192.168.0.1, no caso, 192.168.0.1 é nosso gateway.
# tcpdump -i eth0 dst host 192.168.0.1

         Com o tcpdump também podemos especificar exceções com o parâmetro not host, por exemplo, em nosso servidor queremos ver todo o tráfego que se passa em sua rede, exceto o de 192.168.0.8, faríamos da seguinte forma:
# tcpdump -i eth0 not host 192.168.0.9

         No tcpdump podemos também especificar portas de origem com os comando src e st port, um exemplo seria monitorarmos todo o tráfego destinado à porta 80 (http), para isso utilizaríamos a linha de comandos abaixo e navegaríamos em um site qualquer:
 # tcpdump -i eth0 dst port 80

         Para verificarmos o tráfego da porta de origem 32881 por exemplo, faríamos da seguinte forma:
# tcpdump -i eth0 src port 32881

         Para fazermos uma varredura de todas as portas com exceção de uma determinada porta, por exemplo 80 utilizamos o seguinte parâmetro:
# tcpdump not port 80

        Para fazermos a varredura de uma rede por inteiro descartando a varredura de um host 10.1.4.5 por exemplo, utilizamos a seguinte sintaxe:
# tcpdump -i any net 10.1.4.0/24 and not host 10.1.4.248
Assim será feita a varredura de toda a rede 10.1.4.0/24 mas ignorando o host 10.1.4.248.

Armazenando os Pacotes Capturados em Arquivo

         Não vai te ajudar apenas ver todo o stream de pacotes em sua tela, por isso é interessante que você armazene todos esses dados em um arquivo para que você possa analisar tudo com calma depois, identificando cada pacote.

         No tcpdump isso é feito utilizando a flag -w:
#tcpdump -nn -ni eth0 not host 192.168.0.1 -w /tmp/captura.pcap

         Isso irá escrever todos os pacotes capturados no arquivo /tmp/captura.pcap. Este é um arquivo binário (escrever em um arquivo binário é mais rápido que escrever em um arquivo texto puro, evitando que o sniffer perca pacotes enquanto espera o fluxo ser salvo no arquivo), portanto não adianta você tentar lê-lo utilizando um editor de textos normal ou mesmo um comando como o cat, por exemplo. Você precisa de um software que saiba ler este arquivo como o próprio tcpdump ou o Wireshark
Depois que você escrever um arquivo binário com a captura, pode lê-lo utilizando a flag -r do tcpdump:
# tcpdump -r /tmp/captura.pcap
Assim você pode fazer uma análise ainda mais detalhada dos pacotes que você capturou. A opção -XX (ou -X, que não imprime alguns cabeçalhos de nível mais baixo) também pode ser utilizada diretamente na linha de comando, não apenas quando se está lendo um arquivo.


 Conclusão

        Segurança é algo fundamental, seja em um ambiente doméstico ou empresarial. O importante é que tanto nestes dois tipos de estrutura o que mais se presa são os dados. O nível de segurança a ser adotado em rede deve ser avaliado de acordo com o valor das informações que a empresa carrega.
        
         Existem várias formas de prover segurança em sua rede: fazendo tentativas de invasão em seus servidores, verificando registros de log, entre outros. Mas quem conhece sabe que verificar listas de log é muito trabalhoso e exige muita atenção a pequenos detalhes. Com o tcpdump se torna mais fácil e amigável este tipo de análise, pois o mesmo pode escanear somente as portas determinadas e gerar logs separados dos logs comuns do kernel.

         O tcpdump pode fazer muito que gerar logs de portas comuns da sua rede, basta explorá-lo.

 
Referências

TCPDUMP – DUMP TRAFFIC ON A NETWORK
Disponível em: www.tcpdump.org/tcpdump_man.html. Acesso em 20 fevereiro 2012


Desenvolvido por Matheus Manito.