Analisando um alerta do Snort via linha de comando
Muitas vezes não temos a opção de acessar a interface web, ou profissionais mais paranóias não querem fazer log em banco de dados e ter uma interface web para gerenciar. Baseado nisso demonstraremos como analisar se um alerta é um falso-positivo(FP) ou realmente temos que tomar alguma ação. No exemplo pegamos um sensor que monitara o ambiente interno de uma empresa cliente da Dynsec .
Abaixo o alerta:
[**] [1:15165:2] BACKDOOR Pushdo client communication attempt [**]
[Classification: A Network Trojan was detected] [Priority: 1]
05/20-14:27:53.110258 192.168.1.40:1029 -> 195.2.252.220:80
TCP TTL:128 TOS:0x0 ID:32 IpLen:20 DgmLen:128 DF
***AP*** Seq: 0x1B2642F7 Ack: 0xCD719B8A Win: 0xFFFF TcpLen: 20
[Xref => http://www.eweek.com/c/a/Security/Inside-a-Modern-Malware-Distribution-System/]
Todo alerta gerado pelo snort é gravado o payload em formato pcap no diretório configurado para o log que por padrão é o /var/log/snort onde pela data de criação devido ao rotate que ele faz automaticamente você saberá em que arquivo de pcap seu payload estará.
Analisando o pcap , procuramos pelos alertas para o destino 195.2.252.220 conforme gerado pelo alerta e obtivemos
# tcpdump -A -r snort.log.1242833559 host 195.2.252.220
reading from file snort.log.1242833559, link-type EN100MB (Ethernet)
13:03:28.643122 IP ip_cliente.1025 > 195.2.252.220.http: P
2780398173:2780398261(88) ack 2400962756 win 65535
E…..@….9………..P…]….P…….GET /40E80008F9B2F038EBAA26006C0000000266000000017600000140EB0005307B80858A HTTP/1.0
14:27:53.110268 IP ip_cliente.1029 > 195.2.252.220.http: P
455492343:455492431(88) ack 3446774666 win 65535
E…. @…………….P.&B..q..P…….GET /40E80008F9B2F038EBAA26006C0000000266000000017600000140EB000530ACB1B6BA HTTP/1.0
#
Com certeza um GET muito suspeito e para complementar nossa pesquisa, demos um whois nesse IP.
# whois 195.2.252.220
[Querying whois.ripe.net]
[whois.ripe.net]
% This is the RIPE Whois query server #1.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf
% Note: This output has been filtered.
% To receive output for a database update, use the “-B” flag.
% Information related to ‘195.2.252.0 - 195.2.253.255′
inetnum: 195.2.252.0 - 195.2.253.255
netname: MADET-NET
remarks: —————————————————-
remarks: Routing and peering issues: noc@madet.net
remarks: SPAM issues: abuse@madet.net
remarks: Network security issues: abuse@madet.net
remarks: Mail issues: postmaster@madet.net
remarks: General information: info@madet.net
remarks: —————————————————-
descr: Madet Ltd.
country: RU
org: ORG-ML87-RIPE
admin-c: TIV15-RIPE
tech-c: TIV15-RIPE
tech-c: PAS521-RIPE
status: ASSIGNED PI
mnt-by: RIPE-NCC-HM-PI-MNT
mnt-by: MNT-MADET
mnt-lower: RIPE-NCC-HM-PI-MNT
mnt-routes: MNT-MADET
mnt-routes: DN-MNT
mnt-domains: MNT-MADET
source: RIPE # Filtered
organisation: ORG-ML87-RIPE
org-name: Madet Ltd.
org-type: OTHER
address: Russia, 109052, Moscow, Nizhegorodskaya st., 84
e-mail: info@madet.net
mnt-ref: MNT-MADET
mnt-by: MNT-MADET
source: RIPE # Filtered
person: Trifonov Igor Vladimirovich
address: Russia, 109052, Moscow, Nizhegorodskaya st., 84
e-mail: tiv@madet.net
phone: +79032910584
fax-no: +79032910584
nic-hdl: TIV15-RIPE
source: RIPE # Filtered
person: Panov Artur Semenovich
address: Russia, 109052, Moscow, Nizhegorodskaya st., 84
e-mail: panov@madet.net
phone: +79032910584
nic-hdl: PAS521-RIPE
source: RIPE # Filtered
% Information related to ‘195.2.252.0/23AS12695′
route: 195.2.252.0/23
descr: MADET-NET
descr: Moscow, Russia
origin: AS12695
mnt-by: DN-MNT
source: RIPE # Filtered
#
Como observaram no alerta do snort vocês possuem uma referência a http://www.eweek.com/c/a/Security/Inside-a-Modern-Malware-Distribution-System/ no qual SEMPRE deve ser lida caso não conheça o ataque que está ocorrendo.
Lendo a página e logicamente por ser uma comunicação com um host russo , as chamadas RBN(Russian Business Network) , só nós restou notificar o administrador da rede para analisar a maquina em questão pois com certeza não foi um falso-positivo.
Isso foi um exemplo bem simples que acredito que ilustre um pouco mais a vida real de uma análise .
Espero que tenha ajudado.
Happy Snorting!
Rodrigo Montoro(Sp0oKeR)