PSAD: Port Scan Attack Detector

Neste artigo vamos conhecer o PSAD, um um software criado exclusivamente para agir como um detector de ataques como port scan e DDoS. Veremos suas principais características e como tirar proveito deste projeto muito interessante.

[ Hits: 106.410 ]

Por: Anderson L Tamborim em 25/10/2004 | Blog: http://y2h4ck.wordpress.com


Proof of Concept: testes de segurança



Agora que já configuramos basicamente o PSAD, vamos inicializá-lo:

# /etc/init.d/psad start
Starting the psad daemons.

Os seguintes daemons fazem parte do psad:
  • /usr/bin/perl -w /usr/sbin/psad
  • /usr/sbin/psadwatchd
  • /usr/sbin/kmsgsd

Agora ele está executando e protegendo nosso sistema.

Vamos realizar um teste com o nmap localmente:

# nmap -sT -v -PT localhost
Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2004-09-01 17:29 BRT
Note: Host seems down. If it is really up, but blocking our ping probes, try -P0
Nmap run completed -- 1 IP address (0 hosts up) scanned in 2.150 seconds

BINGO, como vimos não retornou nenhuma porta válida, agora vamos ver os emails:

# mail
"/var/spool/mail/root": 12 messages 1 new 12 unread
U 1 root@unsekurity.lo Wed Sep 1 17:27 52/1715 [psad-alert] DL2 src: loc
U 2 root@unsekurity.lo Wed Sep 1 17:27 52/1715 [psad-alert] DL2 src: loc
?1
Message 1:
From root@unsekurity.local Wed Sep 1 17:27:07 2004
X-Original-To: root@localhost
Delivered-To: root@localhost.unsekurity.local
Date: Wed, 01 Sep 2004 17:27:06 -0300
To: root@localhost.unsekurity.local
Subject: [psad-alert] DL2 src: localhost dst: localhost
User-Agent: nail 10.5 4/27/03
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
From: root@unsekurity.local (root)

=-=-=-=-=-=-=-=-=-=-=-= Wed Sep 1 17:27:06 2004 =-=-=-=-=-=-=-=-=-=-=-=


         Danger level: [2] (out of 5) Multi-Protocol

    Scanned tcp ports: [4-6112: 22 packets]
            tcp flags: [SYN: 22 packets, Nmap: -sT or -sS]
  Iptables chain: INPUT (prefix "Port Scan Attack"), 22 packets
    Scanned udp ports: [512: 1 packets, Nmap: -sU]
       Iptables chain: INPUT (prefix "Port Scan Attack"), 1 packets

               Source: 127.0.0.1
                  DNS: localhost

          Destination: 127.0.0.1
                  DNS: localhost

      Syslog hostname: RootSec

     Current interval: Wed Sep  1 17:27:01 2004 (start)
                       Wed Sep  1 17:27:06 2004 (end)

   Overall scan start: Wed Sep  1 17:26:40 2004
   Total email alerts: 5
   Complete tcp range: [4-44443]
   Complete udp range: [512]

   chain:   interface:   tcp:   udp:   icmp:  
   INPUT    lo           161    4      0      

[+] Whois Information:
Unknown AS number or IP network. Please upgrade this program.
?q

Como vimos ele detalhou o ataque: tipo de scan, protocolos utilizados e etc.

Vamos ver o syslog também:

# tail /var/log/messages
Sep 1 17:28:00 RootSec kernel: Port Scan AttackIN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=39 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=32771 DPT=512 LEN=19
Sep 1 17:28:01 RootSec kernel: Port Scan AttackIN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=40 TOS=0x00 PREC=0x00 TTL=39 ID=45715 PROTO=TCP SPT=54369 DPT=1427 WINDOW=4096 RES=0x00 SYN URGP=0
Sep 1 17:28:05 RootSec psad: scan detected: 127.0.0.1 -> 127.0.0.1 tcp=[142-1427] SYN tcp=2 udp=1 icmp=0 dangerlevel: 2
Sep 1 17:28:05 RootSec psad: sending email alert to: root@localhost
Sep 1 17:28:32 RootSec kernel: Port Scan AttackIN=ppp0 OUT= MAC= SRC=200.176.2.10 DST=200.232.209.247 LEN=115 TOS=0x00 PREC=0x00 TTL=53 ID=0 DF PROTO=UDP SPT=53 DPT=32776 LEN=95

O PSAD além de reportar com grande precisão o ataque, não permitiu que o atacante pudesse coletar informações sobre nosso servidor.

Página anterior     Próxima página

Páginas do artigo
   1. Prólogo
   2. Introdução: PSAD
   3. Instalação do PSAD
   4. Configuração do PSAD
   5. Proof of Concept: testes de segurança
   6. Considerações finais
   7. Append 1
Outros artigos deste autor

PortSentry: Melhorando a segurança do seu Linux

Análise Passiva: Analisando seu tráfego de maneira segura

PHLAK :: [P]rofessional [H]acker's [L]inux [A]ssault [K]it

Race condition - vulnerabilidades em suids

Análise passiva (parte 2)

Leitura recomendada

Segurança em redes wireless

Escrevendo em discos sem sistemas de arquivos

Auditando senhas com John The Ripper

Automatizando as atualizações no Linux

Configurando o IDS - Snort / Honeypot (parte 2)

  
Comentários
[1] Comentário enviado por cvs em 25/10/2004 - 09:52h

Aprendeu do jeitinho que eu ensinei hein? :D ehehehhehe... muito bom o artigo, jã vou testar aqui.

[2] Comentário enviado por rfranzen em 25/10/2004 - 12:23h

Mais um excelente artigo do y2h4ck...

Parabéns !

[3] Comentário enviado por ygorth em 25/10/2004 - 12:25h

interessante o assunto. Só nao acho que o artigo ficaria chato se o .conf do PSAD fosse tratado com mais atencao. Porem, muito valido o artigo eu pessoalmente nao conhecia ferramenta.

[4] Comentário enviado por ygorth em 25/10/2004 - 12:30h

interessante o assunto. Só nao acho que o artigo ficaria chato se o .conf do PSAD fosse tratado com mais atencao. Porem, muito valido o artigo eu nao conhecia ferramenta.

[5] Comentário enviado por y2h4ck em 25/10/2004 - 13:12h

Caro controlc, o conf do PSAD vai ser postado na seção "Conf"
justamente para evitar ter que colar um .conf gigante aqui :)

Abraços

[6] Comentário enviado por cmarcelo em 25/10/2004 - 15:00h

Esta ferramenta é melhor que o Protsentry? Quais as principais diferenças? Qual você me recomendaria usar?

[7] Comentário enviado por neriberto em 25/10/2004 - 17:01h

Cmarcelo, mandou bem... o artigo tá legal mesmo...

[8] Comentário enviado por y2h4ck em 25/10/2004 - 18:30h

Cmarcelo, como o PSAD e o portsentry trabalham de maneira um pouco diferente, eu diria que isso iria depender um pouco do cenario que iria ser implantado.

Mas eu recomendo utilizar o PSAD integrado ao Snort, assim conseguiria uma solução mais Eficiente.

:)

Boa sorte

[9] Comentário enviado por tucs em 25/10/2004 - 20:17h

Realmente interessante, utilizo o guardian para esse serviço mas estarei estudando essa possibilidade, parabens.

Eduardo Assis

[10] Comentário enviado por naoexistemais em 26/10/2004 - 04:55h

Andeson,

Kd o Engos, reclamando do seu artigo, parabéns....

Falou,

[11] Comentário enviado por andreguerra em 26/10/2004 - 10:48h

Mais um artigo excelente, aliás como todos os outros do Anderson.

Abraço,

André Guerra

[12] Comentário enviado por naoexistemais em 29/10/2004 - 06:08h

Anderson,

Você testou em qual distribuição o PSAD, por se foi no Slackware você deve ter esquecido mencionar alguns provaveis problemas, exemplo como editar o install.pl e colocar o caminho correto do INIT_DIR.

Falou,

[13] Comentário enviado por y2h4ck em 29/10/2004 - 09:56h

Como mencionei na pagina 2 ...
Plataforma: SuSE Linux 9.1 Professional

Aqui não tive problemas :)

Abraços

[14] Comentário enviado por Sabaote em 29/12/2004 - 08:23h

Eu instalei em um Sistema o PSAD e agora recebo e-mails a cada minuto.. chego a receber cerca de 5000 mil e-mails por dia avisando que alguém tentou scanear o sistema.. como posso parar com isso ?
Muito bom o artigo.. :)

[15] Comentário enviado por removido em 21/11/2006 - 07:40h

O PSAD trabalha com os logs gerados de algum firewall, geralmente o iptables, mas pelo que vi no artigo, você não colocou nenhuma regra de firewall para gerar logs. Você até comentou no começo, mas deve ter esquecido durante o artigo.

Para que ele envie a notificação via email é preciso está rodando o Sendmail, o PSAD usa esse Daemon para enviar os emails.

Para habilitar a diretiva "IPTABLES_BLOCK_METHOD" a diretiva "ENABLE_AUTO_IDS" tem que está ativa também, senão estiver não vai ter efeito a diretiva "IPTABLES_BLOCK_METHOD".

A respeito do usuário acima uma sugestão é você mudar o valor da diretiva "EMAIL_ALERT_DANGER_LEVEL" para 4 no arquivo de configuração do PSAD "/etc/psad/psad.conf". Para só enviar um email para as notificações mais importantes.
Outra solução é mudar o valor da diretiva "EMAIL_LIMIT" que por padrão seu valor é 0, ou seja, ilimitado. Defina o valor de quantos email você pode receber em um determinado IP, por exemplo:

EMAIL_LIMIT 5

Apesar de o PSAD não ter muita documentação, este artigo vai ser bem útil para vários administradores. Parabéns!

[16] Comentário enviado por fjbvn em 11/12/2007 - 21:15h

Bom artigo...

> /mybrower/bookmarks.

Vou implementar aqui e relato algum problema ocorrido!

[17] Comentário enviado por memory em 29/10/2008 - 21:33h

Concordo com leogemeostotino,
artigo esta bom mesmo bem facil de ser entendido para quem esta interessado no assunto.
http://www.4shared.com/file/71491619/b73f328d/Psad.html?
abracos

[18] Comentário enviado por condealisson em 04/11/2011 - 11:12h

Parabéns, excelente tutorial, simples e eficiente!

Vou deixar aqui minha experiencia.

Instalei o psad e nada dele monitorar, rodava normalmente, sem erros, porém sem reports.

Então lembrei que havia alterado meu rsyslogd.conf, aí a solução.

A linha que busca o arquivo de log continha:

IPT_SYSLOG_FILE /var/log/messages;

E eu alterei as mensagens de log do kernel para cairem todas no kern.log no rsyslogd.conf!!!

Então alterei a linha para:

IPT_SYSLOG_FILE /var/log/kern.log;

E está tudo funcionando agora.

Outra observação: caso o processo /usr/sbin/kmsgsd não exista é devido à configuração:

ENABLE_SYSLOG_FILE Y;

Se alterarmos para N o psad usará o kmsgsd para monitorar o iptables, mas assim ele vai inserir dados no arquivo de log, então, melhor deixar com Y mesmo e sem o kmsgsd para "estufar" os logs.

(Dica retirada de: <http://www.mail-archive.com/psad-discuss@lists.sourceforge.net/msg00015.html>)

Outro problema que encontrei foi a mensagem:

Starting psad: Undefined subroutine &main::LOG_DAEMON called at /usr/sbin/psad line 9443.

Isso se deve ao colocar a opção N na regra IPTABLES_BLOCK_METHOD.
Caso queira desativar o bloqueio de ips altere:

ENABLE_AUTO_IDS Y;

para:


ENABLE_AUTO_IDS N;

e não a opção:

IPTABLES_BLOCK_METHOD Y;

para:

IPTABLES_BLOCK_METHOD N;

Essa última deve ser sempre Y.

Forte abraço.

[19] Comentário enviado por jgama em 26/06/2014 - 11:11h

Esta maquina que vai ter o PSAD tem que ser o gateway da Rede?

Abraço


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts