Bobagem da Semana episódio I: Cegueira do TCPDump

Hoje vou dar início a uma nova série de posts (como se eu já não tivesse começado várias): uma série com as melhores bobagens técnicas que eu ouvi na semana, que pretendo postar toda sexta-feira, o "dia casual" por excelência. Afinal, eu tenho escrito sobre muita coisa densa e as pessoas parecem gostar mais de posts mais descontraídos e curtinhos. E não é segredo pra ninguém que a área de TI (e infosec em particular) é cheia de poseurs, o que praticamente garante uma sequência infindável de patetadas.

A dessa semana eu ouvi enquanto Renato Bezerra ajudava um incauto a depurar por que o firewall dele não estava exportando os logs via o protocolo syslog. Renato pediu pro cara tentar novamente que por que dessa vez ele tinha engatilhado o tcpdump para capturar o tráfego. O interlocutor prontamente respondeu: "ah, não vai funcionar, porque o syslog é UDP e o tcpdump só captura TCP".

Vai ver ele achou que porque o nome do tcpdump começa com "tcp", ele só enxerga TCP.

Bacana foi ver a habilidade do Renato em lidar com a gafe, procurando ser polido, respondendo que "hmmm, talvez a minha versão seja diferente, porque com ela eu consigo ver pacotes UDP normalmente".

Parabéns, Renato! Eu não teria lidado melhor com a situação.

Comentários
Aceita-se formatação à la TWiki. HTML e scripts são filtrados. Máximo 15KiB.

 
Enviando... por favor aguarde...
Comentário enviado com suceso -- obrigado.
Ele aparecerá quando os moderadores o aprovarem.
Houve uma falha no envio do formulário!
Deixei uma nota para os admins verificarem o problema.
Perdoe-nos o transtorno. Por favor tente novamente mais tarde.
Tímido Visitante Anônimo | 2011-06-06 07:37:58 | permalink | topo

http://www.cs.unc.edu/~dewan/242/s00/xinu-pentium/debug/udpdump.c

/* udpdump.c - udpdump */

#include <conf.h>
#include <kernel.h>
#include <network.h>

/*------------------------------------------------------------------------
 * udpdump - pretty-print a UDP packet to the console
 *------------------------------------------------------------------------
 */
udpdump(pudp, dlen, order)
struct udp	*pudp;
int		dlen;
int		order;
{
	unsigned short	u_src, u_dst, u_len, u_cksum;

	if (order & EPO_UDP) {
		u_src = pudp->u_src;
		u_dst = pudp->u_dst;
		u_len = pudp->u_len;
		u_cksum = pudp->u_cksum;
	} else {
		u_src = hs2net(pudp->u_src);
		u_dst = hs2net(pudp->u_dst);
		u_len = hs2net(pudp->u_len);
		u_cksum = hs2net(pudp->u_cksum);
	}
	kprintf("UDP:\tsrc %5u dst %5u len %d cksum %04x\n",
		u_src,u_dst, u_len, u_cksum);
	hexdump((char *)pudp U_HLEN, dlen - U_HLEN);
}

kakakaka :)