
Uma ferramenta de criação de pacotes para Linux.
Pig (que pode ser entendido como Packet intruder generator) é uma ferramenta Linux de criação de pacotes.
Você pode usar Pig para testar seu IDS/IPS entre outras coisas.
Pig traz um monte de assinaturas de ataque conhecidas prontas para uso e você pode expandir essa coleção
com coisas mais específicas de acordo com suas necessidades.
Até agora é possível criar assinaturas IPv4 com camada de transporte baseada em TCP, UDP e ICMP.
Você também pode criar assinaturas baseadas no protocolo ARP, além de montar o pacote desde seu quadro Ethernet.
Se você chegou aqui pelo meu artigo da 2600 da edição SPRING 2016 número, continue lendo as próximas seções da documentação porque este pequeno Pig tem evoluído desde então.
É bem simples:
[email protected]:~/src# git clone https://github.com/rafael-santiago/pig pig
[email protected]:~/src# cd pig
[email protected]:~/src/pig# git submodule update --init
Você precisa usar o Hefesto para compilar pig. Após seguir
os passos para colocar Hefesto funcionando no seu sistema. Vá para o subdiretório pig chamado src e execute
o seguinte comando:
[email protected]:~/src/pig/src# hefesto
Após este comando, você deve encontrar o binário pig no caminho src/bin. Você pode usar o binário relativamente a partir de
src/bin ou instalá-lo.
Se por algum motivo você estiver tendo problemas de compilação, tente ler alguns comentários presentes em BUILD.md.
Para instalar você precisa estar dentro do subdiretório src e chamar:
[email protected]:~/src/pig/src# hefesto --install
Para desinstalar, estando dentro do subdiretório src, você deve chamar:
[email protected]:~/src/pig/src# hefesto --uninstall
Arquivos Pigsty são arquivos de texto simples onde você pode definir um conjunto de assinaturas de pacotes. Há uma sintaxe específica a ser seguida. Veja um exemplo de um arquivo pigsty:
[ signature = "Hello",
ip.version = 4,
ip.ihl = 5,
ip.tos = 0,
ip.src = 192.30.70.10,
ip.dst = 192.30.70.3,
ip.protocol = 17,
udp.dst = 1008,
udp.src = 32000,
udp.payload = "Hello!!" ]
Basicamente, todos os dados da assinatura devem estar entre colchetes: [ ... ].
Dentro desta área, a informação é fornecida pelo esquema field = data.
Se você tem alguma experiência com Redes de Computadores, certamente a maioria dos campos listados na Tabela 1 tem um significado forte para você. Você deve usar esses campos para criar suas futuras assinaturas.
Tabela 1: Os campos de assinatura do pig.