como poderia evitar a descoberta do meu S.O. via t?cnica finger print . Algu?m sabe como eu poderia me proteger contra o FingerPrint ?
Evitando que o seu sistema responda pedidos de inicializacao (SYN FLAG) invalidos, em portas que nao est�o ouvindo ;-) Ou qualquer outro pacote (ACK perdido, fora de um handshake, FIN sem ter inicializado, etc).
OBS: Uso freebsd com ipfw, por especifica??o do cliente n?o poderei mudaro sistema ou o filtro.
Nem deve/precisa.
No passado eu fazia isso com o ipfilter com o sysctl do Openbsd
Com os 2? IPF+Sysctl? Paranoid hein.
Bom, vamos l�. O que voc� est� querendo, via sysctl, s�o as MIBS que controlam blackholes, elas s�o:
sysctl net.inet.tcp.blackhole sysctl net.inet.udp.blackhole
Elas forcam exatamente o comportamento que eu citei acima, evitam que seu sistema responda (TCP RST) quando n�o tiver nada ouvindo em uma porta, agindo como um "drop" silencioso pros pacotes. A ferramenta vai tentar adivinhar o OS de qualquer forma, baseando-se nas portas que estavam ouvindo (80, por exemplo) mas invariavelmente vai errar feio.
Com blackholes, invariavelmente o NMAP pensa que os FreeBSD onde eu testo s�o IBM-AIX. Com Firewall e blackholes ele nem chuta... diz que � invalido e pede pra ser submetida informacao caso voce saiba qual o O.S.
Com firewall, a id�ia � a mesma, basta dropar silenciosamente os pacotes para sequencias de flags conhecidas, e que invariavelmente n�o surgem efeito. Essas sequ�ncias variam de tempos em tempos, conforma a t�cnica das varreduras v�o se aperfeicoando, portanto e' bom voc� se manter em dia com isso. Segue parte de um exemplo que eu costumo usar, algumas (n�o todas) regras pra evitar fingerprint com comportamento conhecido:
setup7_fingerprint() {
${fwcmd} add set 7 drop log tcp from any to any tcpflags fin,urg,psh in recv ${ife}
${fwcmd} add set 7 drop log tcp from any to any tcpflags !fin,!syn,!ack,!urg,!psh,!rst in recv ${ife}
${fwcmd} add set 7 drop log tcp from any to any tcpflags psh in recv ${ife}
${fwcmd} add set 7 drop log tcp from any to any tcpflags syn,fin,rst,ack in recv ${ife}
${fwcmd} add set 7 drop log tcp from any to any tcpflags fin,!syn,!rst,!ack in recv ${ife}
${fwcmd} add set 7 drop tcp from any to any tcpflags urg,!syn,!fin,!rst,!ack in recv ${ife}
...
...
...
}
N�o saia usando essas regras a esmo, teste antes, e crie seu proprio setup pra evitar fingerprint. Esse exemplo nao esta completo, voce pode analisar outras sequencias de flags tcp usando portscanners em hosts para testes (varias outras), e cuidado se for usar SSH, algumas regras acima podem causar falsos positivos e dropar o handshake de conexoes SSH. Enfim, � apenas uma id�ia pra voc� comecar seu setup...
(PS.: IPFW1 n�o tem "set <N>" pra controlar conjuntos de regras.)
-- Atenciosamente,
Patrick Tracanelli
FreeBSD Brasil LTDA. The FreeBSD pt_BR Documentation Project http://www.freebsdbrasil.com.br patrick @ freebsdbrasil.com.br "Long live Hanin Elias, Kim Deal!"
_______________________________________________________________ Sair da Lista: http://www2.fugspbr.org/mailman/listinfo/fugspbr Historico: http://www4.fugspbr.org/lista/html/FUG-BR/
