terça-feira, 2 de junho de 2009

Sniffer de rede

O que é um sniffer de rede?

É software feito para capturar todos pacotes de rede que passam por uma determinada interface, um sniffer pode ser também um equipamento como um switch especial que captura todos os pacotes que passam por ele.


O que é método de histerese em redes?

É um método em que se define valores mínimos e máximos para variáveis de rede, como por exemplo quantidades de pacotes broadcast, em uma rede, digamos que normalmente a 10 % dos pacotes da minha rede são broadcast, então os limites para o método poderiam ser: minimo 0% e maximo 15%. Estabelecendo esses limites poderia-se dizer que se mais de 15% de pacotes broadcast na minha rede sugerem um problema (ataque de negação de serviço, tentativa de invasão por bruta, um equipamento com problema, etc...), dos quais o administrador da rede deve procurar.


Exercício

Nas ultimas aulas de administração e gerencia de redes foi proposto um trabalho para utilizar o método de histerese para analisar o que estava correndo pela rede.


Software utilizado

Na implementação do trabalho foi necessário utilizar o tshark, derivado de um conhecido sniffer de rede o Wireshark, esses softwares rodam muito bem em Linux ou Windows.


Obtendo estatisticas com tshark

rodar como administrador:

tshark -i placa -a duration:duracao -q -z io,stat,duracao,,,eth.addr==ff:ff:ff:ff:ff:ff,msnms,tcp,udp


Trabalho:

Na implementação do trabalho utilizei a linguagem Java, e fiz análise dos pacotes de

broadcast: eth.addr==ff:ff:ff:ff:ff:ff

Msn: msnms

tcp: tpc

e udp: udp


Um teste

Um bom teste pra você fazer é usar o wireshark (ferramenta visual) com o filtro do “msnms” assim você pode capturar todos pacotes do msn que passarem na sua rede.


Implementação

link do cod fonte:

http://www.4shared.com/file/109480798/27b1dda9/projeto_sniffer.html

4 comentários:

Lucas Israel disse...

Por favor, você pode postar um novo link?
Gostaria muito de estudar seu código fonte. Se você não tiver mais o projeto, por favor, me envie referências.
Quero fazer um programa que veja o trafego de protocolos na rede (e conte-os, tanto enviados quanto recebidos). Quero fazer em java. Estou dando uma estudada em java.net, mas está muito vago pra mim ainda.
Por favor, se puder me auxiliar, agradeceria muito. O link que você colocou ai está quebrado.
Me avise quando estiver disponivel: meu email é lucas @rr0b@ mcluck ponto com ponto br.
(Desculpa a forma de colocar, é pra evitar span de robos... )

Att,

Lucas Israel

Lucas Oliveira disse...

link quebrado amigo, poderia postar um novo pra gente?

Ramon Rosa da Silva disse...

Na verdade eu não tenho mais o source desse projeto.
Mas é simples, ele apenas usa um software como o wireshark, ou melhor usa o tshark que é utilizado pelo wireshark para capiturar pacotes na rede, o wireshark cuida só da interface gráfica.
Rodei ele no linux, não sei como seria o comportamento no windows.

No linux foi assim:
Process p = Runtime.getRuntime().exec("tshark -i placa -a duration:duracao -q -z io,stat,duracao,,,eth.addr==ff:ff:ff:ff:ff:ff,msnms,tcp,ud");

Então a resposta fica armazenada objeto "p".
O metodo p.getInputStream(); retorna uma strean que pode ser convertido para texto e lido.
Este texto contém as estatísticas e os pacotes capiturados.

Que eu lembro é isso.

Espero ter ajudado um pouco. Caso tenha alguma dúvida pode postar, com o source de sua aplicação.

Abraço

Anônimo disse...

pode postar um novo link com o código fonte?? ou então manda no email johnsilbert@hotmail.com .
obrigado