Fw: Re: [Cascavel-pm] PIGMEET: Quem puder ajudar

Ramoni ramoni em databras.com.br
Segunda Julho 21 12:20:10 CDT 2003


Sim, pode-se encarar desta forma :)

Os scripts tao aih, alguns nao estao tertminados e domingo em casa implementei
flock nas partes q usam arquivos, mas aki no job eu n tenho essa modificacao.

testa aih se kiser.


On Friday 18 July 2003 16:12, Fabiano Reese Righetti wrote:
>    Seria então um Distributed IDS?
>    Gostaria de dar uma olhada nos sources. :)
>
> []'s
> --
> Fabiano Reese Righetti - frighetti at {cascavel.pm.org, cpan.org,
> unipan.br}
>
> ---------- Forwarded Message -----------
> From: Ramoni <ramoni em databras.com.br>
> To: "Fabiano Reese Righetti" <frighetti em cascavel.pm.org>
> Sent: Fri, 18 Jul 2003 13:30:47 -0300
> Subject: Re: [Cascavel-pm] PIGMEET: Quem puder ajudar
>
> Sim claro.
>
> A ideia eh fazer uma suite IDS completa com mais recursos do que qualquer
> outra,
> por isso o pigmeet esta sendo feito bem segmentado.
> Basicamente voce tera maquinas detectando ataques (com snort se kiser)
> em varios pontos da rede que voce kiser, e podera bloquear os ips dos
> atacantes
> em outros varios pontos da rede como em firewalls, algum fireone, pix etc
>
> O pigmeet consiste no seguinte conjunto de programas:
>
> - pigserverd
> 	Um servidor tcp que recebe comandos dos clients que falem o devido
> 	protocolo que jah esta criado, e toma as acoes devidas.
> 	Bloqueia IPs sem suar system iptables, em vez disso uso o modulo
> IPTables::IPv4
> 	e atravez de hashes ele vai direto ao netfilter. Estou evitando ao
> maximo o uso de systems
> 	e o unico ateh agora sao os proprios programas usando o pigclient.
> - pigclient
> 	O cliente basico usado por todos os monitores/sensores, ele abstrai a
> camada
> 	do protocolo, sendo chamado via linha de comando com parametros
> legiveis.
> - pigmonitord
> 	Por enquanto soh fiz o monitor preparado para snort, que
> 	le os alerts do snort e seguindo suas configuracoes, usa o
> 	pigclient para bloquear o atacante em todos os pigservers
> configurados.
> - pigcontrol
> 	Shell interativa onde voce controla de uma soh vez todos os seus
> pigservers
> 	rodando. Utiliza tambem o pigclient para conexao.
> - pigsyncd
> 	Assegura a sincronia caso queira entre os pigservers,
> 	sincronizando por somente os ips bloqueados em comum ou
> 	bloqueando em todos eles o que ha de novo em algum
>
> Alguns outros poderao ser desnvolvidos, e coisas como uma pagina php
> para controle vai ser facil a partir do momento em que voce poder usar o
> php para fazer uma conexao tcp e consultar os dados de cada pigserverd. Mas
> sei php hehe.
>
> Da pra fazer tb um script que para jogar os dados em um
> mysql/postgre/oracle da vida.
> Mas nao sei nada de sql :)
>
> O protocolo de comunicacao eh bem simples, e para evitar DoS,
> cada comunicacao entre pigclient e pigserver eh feita da seguinte forma:
>
> 1- client -> server # enviando informacoes de autenticacao toda em MD5
> 2 - Ou o servidor fecha a conexao ou emite um "ok"
> 3 - client -> server # client envia o comando
> 4 - server -> client # servidor devolve um resumo da operacao feita e FECHA
> a conexao.
>
> O servidor nao aceita 3 envios de comando do client e nao aceita conexoes
> paradas por mais de 2 segundos.
> O pigclient eh chama em linha de comando e qnd vc executa ele faz isso tudo
> sozinho, nao havendo interacao do user
> com o server. Evitando Dos prevenindo conexoes idles abertas e envio de
> muitos dados em cada requisicao.
>
> O pigmonitor pro snort (unico feito ateh entao) evita um possivel ataque
> DoS no server porque
> mesmo q receba 400 ataques do mesmo ip, ele nao vai tentar conectar 400
> vezes por guarda em hash um timestamp
> onde voce estabelece um minimo delay entre hits do mesmo ip.
>
> A parte de fork tanto do server quanto do client nao gerou processos
> defunct mesmo sob intenso uso.
>
> Estou afzendo o pigmeet dessa forma para tentar fazer mais do q as outras
> ferramentas fazem,, o snort sam eh bom,
> mas nao faz o q eu quero, o guardian coitado, eh mto fraco, o block-it nem
> se fala...
> O snort inline eh otimo pq embarreira somente o pacote, mas nao bloqueia
> remotamente...
> mas vc pode usar o pgimeet junto com o snort_inline.
> A unica ferramenta q ja ouvi falar q faz o q o pigmeet tem o intuito de
> fazer se chama dragon da enterasys e
> custa U$ 25.000,00
>
> A programacao eh facil, estah aberta, nao sou o mestre do perl e por isso
> peco ajuda. A ideia
> eu acho mto boa e o fundamental eh desenvolver de forma que possa crescer
> sem que tenhamos que remendar o programa,
> como foi o caso do pigmeat. (o pigmeet foi o nome q dei pra nova serie do
> antigfo pigmeat)
>
> Nada impede que usemos libpcap para em vez de usar o snort, interagir
> direto neste nivel sem precisar dele,
> isso seria trabalho para um novo programa monitor.
> Bloquear em pix,fireone, seria somente desenvolver um outro pigclient...
> Cada maquina rodaria um monitor diferente se fosse necessario e todos se
> comunicariam usando o pigclient unico.
>
> Os fontes estao bem desorganizados e ainda nao fiz instalacao, embora vc
> possa rodar tudo apenas descompactando.
> O que jah estah estavel:
> - pigserverd -> funcionando ok, falta somente trabalhar melhor com signal
> handlers e pidfile
> - pigmonitord -> pronto. nada em mente a melhorar. Aceita log do snort
> formato fast e normal assim como pelo syslog
> - pigclient -> pronto e funcionando.
>
> Exemplo de uso do pigclient manualmente:
>
> # perl pigclient 127.0.0.1 2222 admin admin block 4.4.4.4
> [pigclient ] (127.0.0.1)        ordered:1 blocked:1 total:1 (ok)
> # perl pigclient 127.0.0.1 2222 admin admin block 4.4.4.4 400.6.6.6
> [pigclient ] (127.0.0.1)        ordered:2 blocked:0 total:1 (Not a valid
> ip) # perl pigclient 127.0.0.1 2222 admin admin blocked
> [pigclient ] (127.0.0.1)        total 1: 4.4.4.4
>
> Pigmonitor em execucao bloqueando ataques:
> [pigmonitor] Adding hosts...
> [pigmonitor] + Server 127.0.0.1:2222 (admin/admin)
> [pigmonitor] Added 1 host(s)
> [pigmonitor] Snort alerts from: /var/log/snort/alert
> [pigmonitor] Hit delay set to: 10
> [pigmonitor] Here we go !
> [pigmonitor]  (monitor)         Attack from 192.168.13.51
> [pigmonitor]  (timehash)        Timing(10): 192.168.13.51
> [pigclient ] (127.0.0.1)        ordered:1 blocked:1 total:2 (ok)
> [pigmonitor]  (monitor)         Attack from 192.168.13.51
> [pigclient ] (127.0.0.1)        ordered:1 blocked:0 total:2 (Already
> blocked) [pigmonitor]  (monitor)         Attack from 192.168.13.51
> [pigmonitor]  (hitdelay)        WoW, going Fast !!! (Again in less than 10
> secs)
>
> seria bom haver bloqueio por determinado numero de segundos, mas nao quiz
> fazer isso usando:
> block xxxx; sleep $secs; unblock xxx pq criaria mtos processos.
>
> desculpem o testamento :P
> quem kiser os fontes eu mendo em pvt.
>
> On Thursday 17 July 2003 19:28, you wrote:
> > On Thu, 17 Jul 2003 13:58:30 -0300, Ramoni wrote
> >
> > > Oi pessoal,
> > > bom, estou desenvolvendo o projeto pigmeet, (pigmeat versao 2)
> > > e jah cheguei num status aceitavel para uso.
> > > Consiste em programas monitoradores que conectam em programas
> > > servidores e mandam bloquear IPs resumindo. Feito pra ser acoplado
> > > ao snort fazendo um IDS mais legal. Se alguem quiser ajudar solto
> > > mais informacoes sobrbe o projeto e libero os scripts valeu
> >
> >    Olá Ramoni! Como esta o senhor?
> >    Bom, estou disposto a ajudar neste seu projeto. Poderia descreve-lo
> > melhor?
> >
> > []'s
> > --
> > Fabiano Reese Righetti - frighetti at {cascavel.pm.org, cpan.org,
> > unipan.br}

-- 
Ramoni
Databras treinamento e Consultoria Linux
Tel.: (21) 2518-2363
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : pigmeet.tgz
Tipo  : application/x-tgz
Tam   : 12865 bytes
Descr.: não disponível
Url   : http://mail.pm.org/pipermail/cascavel-pm/attachments/20030721/37f22f87/pigmeet.bin


Mais detalhes sobre a lista de discussão Cascavel-pm