Title: Diapositive 1
1 IpMorph unification de la mystification de
la prise d'empreinte
Guillaume PRIGENT DIATEAM - Brest
2Contexte
- Théorème
- Vivons heureux, vivons cachés
- Corolaire
- Si une machine peut falsifier son identité et
lusurper, celle ci minimise lattrait de
lattaquant et perturbe la pertinence des
attaques ciblées à sa nature apparente.
3Etymologie
- IpMorph
- Du greek ancien µ??f? - ??µ????, morphéstakis,
forme de pile . - Suffixe
- -morph /m??f/
- En relation avec la forme dune pile IP, qui a la
forme dune pile IP. - Apparentés étymologiques
- FingerprintFucker
- OS fingerprint frustrating
- Packet scrubbing
4Typologie de la prise dempreinte
Techniques de détection
Actives
Passives
Ecoutes réseau
Collectes
Empreintes de pile
Binaires
Time-out
Entêtes TCP
Réponses ICMP
Profils ISN
Bannières
thc-rut
Xprobe2
Nmap
Ring2
SinFP
p0f
SinFP
Ettercap
5Principes de détection
Détection active dempreinte de pile
Nmap, SinFP,
NETWORK
A
Détection passive dempreinte de pile
p0f, SinFP,
NETWORK
B
A
6Cas dutilisation dIpMorph
SYN
SYNACK
SYN
SYNACK
A
A
B
A
OSFP Actif Machine réelle
OSFP Actif Machines virtuelles
SYN
SYNACK
SYN
SYNACK
A B
A
A
B
OSFP Passif Machine réelle
OSFP Passif Machines virtuelles
7Etat de l'art de la mystification 7
- Filtrage
- Stealth patch Unmaintained as of 2002,
GNU/Linux kernel 2.2-2.4 14 - Blackhole FreeBSD, kernel options 16
- IPlog Unmaintaned as of 2001, BSD 17
- Packet filter OpenBSD 18
- Configuration et modification de pile TCP/IP
("host based") - Ip Personality 19
- Fingerprint Fucker 1213
- Fingerprint scrubber 1
- OSfuscate 8
- Substitution de pile TCP/IP ("proxy behaviour")
- Honeyd 9
- Packet purgatory / Morph 10
8Socle logiciel
- Langage C
- Application UserLand
- Utilisation du framework Qt4
- Eléments constituants
- IpMorph (Core)
- IpMorph Controller
- IpMorph Personality Manager
- IpView (IpMorph GUI)
- Portabilité
- GNU/Linux
- BSD, Mac OS
- License GPLv3
9Architecture générale
Context queue
Exposed IP stack
Protected IP stack
TCP Filter Processor
TCP Filter Processor
TCP context tracker data processor (plugins)
TCP
TCP
Scheduler
UDP Filter
UDP Filter
UDP context tracker data processor (plugins)
UDP
UDP
ICMP Filter
ICMP Filter
ICMP context tracker data processor (plugins)
ICMP
ICMP
Frag. Reass.
Frag. Reass.
IP context tracker data processor (plugins)
IP
IP
IP Filter
IP Filter
(R)ARP
(R)ARP
(R)ARP translation processor
ETH
ETH
Eth. Write
Eth. Write
Eth. Read
Eth. Read
Interface layer
Interface layer
eth
tap
fd
eth
tap
fd
10Nmap Format dune signature
SP TCP ISN Predictability
GCD TCP ISN Greatest Common Divisor
ISR TCP ISN counter Rate
TI TCP IP ID sequence generation algorithm
II ICMP IP ID sequence generation algorithm
TS TCP timestamp option algorithm
SS Shared IP ID sequence Boolean
W1-W6 TCP initial win size
O1-06 TCP Options (ordering values)
Fingerprint FreeBSD 7.0-CURRENT Class FreeBSD
FreeBSD 7.X general purpose SEQ(SP101-10DGCD
lt7ISR108-112TIRDIIRITS202122) OPS(O1M5
B4NW8NNT11O2M578NW8NNT11O3M280NW8NNT11O4M5B4
NW8NNT11O5M218NW8NNT11O6M109NNT11) WIN(W1FFFF
W2FFFFW3FFFFW4FFFFW5FFFFW6FFFF) ECN(RY
DFYT40TG40WFFFFOM5B4NW8CCNQ) T1(RYD
FYT40TG40SOASFASRD0Q) T2(RN) T3(R
YDFYT40TG40WFFFFSOASFASOM109NW8N
NT11RD0Q) T4(RYDFYT40TG40W0SAAZF
RORD0Q) T5(RYDFYT40TG40W0SZAS
FARORD0Q) T6(RYDFYT40TG40W0SAA
ZFRORD0Q) T7(RYDFYT40TG40W0SZ
ASFARORD0Q) U1(DFNT40TG40TOS0IPL
38UN0RIPLGRIDGRIPCKGRUCKGRULGRUDG) I
E(DFIST40TG40TOSISCDSSISDLIS)
DF IP dont fragment bit
W TCP initial win size
T IP initial time-to-live
S TCP seq. number
TG IP initial time-to-live guess
F TCP Flags
RD TCP RST data checksum
Q TCP misc. quirks
RIPCK Returned probe IP checksum value
RUCK Returned probe UDP checksum
A TCP ack. number
IPL IP total length
UN Unused port unreach. field nonzero
RIPL Returned probe IP total length value
TOS IP type of service
RID Returned probe IP ID value
RUL Returned probe UDP length
11SinFP Base des signatures (sqlite)
IpVersion
idIpVersion (PK)
ipVersion
SystemClass
idSystemClass (PK)
systemClass
Signature
idSignature (PK)
idIpVersion
idSystemClass
idVendor
idOs
idOsVersion
idOsVersionFamily
idP1PatternBinary
idP1PatternTcpFlags
idP1PatternTcpWindow
idP1PatternTcpOptions
idP1PatternTcpMss
idP3PatternBinary
idP3PatternTcpFlags
idP3PatternTcpWindow
idP3PatternTcpOptions
idP3PatternTcpMss
trusted
OsVersionChildren
idSignature
idOsVersion
Vendor
idVendor (PK)
vendor
Os
idOs (PK)
os
OsVersion
idOsVersion (PK)
osVersion
OsVersionFamily
idOsVersionFamily (PK)
osVersionFamily
PatternTcpFlags
idPatternTcpFlags (PK)
patternTcpFlagsHeuristic0
patternTcpFlagsHeuristic1
patternTcpFlagsHeuristic2
PatternTcpWindow
idPatternTcpWindow (PK)
patternTcpWindowHeuristic0
patternTcpWindowHeuristic1
patternTcpWindowHeuristic2
PatternBinary
idPatternBinary (PK)
patternBinaryHeuristic0
patternBinaryHeuristic1
patternBinaryHeuristic2
PatternTcpMss
idPatternTcpMss (PK)
patternTcpMssHeuristic0
patternTcpMssHeuristic1
patternTcpMssHeuristic2
PatternTcpOptions
idPatternTcpOptions (PK)
patternTcpOptionsHeuristic0
patternTcpOptionsHeuristic1
patternTcpOptionsHeuristic2
12SinFP Format dune signature
idSignature
ipVersion
systemClass
vendor
os
osVersion
osVersionFamily
trusted
104,1,IPv4,Windows,Microsoft,Windows,Vista,Vista,
B11113,B13,B.., F0x12F0x12F0x12, M1460,M134.
.,M\d, O0204ffff,O0204ffff,O0204ffff, W8192,W801
2..,W\d, B11113,B12,B.., F0x12,F0x12,F0x12, M1
460,M134..,M\d, O0204ffff010303080402080affffff
ff44454144,O0204ffff(?01)?(?030308).(.0402)?(?
080affffffff44454144)?,O0204ffff(?01)?(?030308).
(.0402)?(?080affffffff44454144)?, W8192,W8012.
.,W\d, B11121,B21,B.., F0x04,F0x04,F0x012, M0,M
0,M0, O0,O0,O0 W0,W0,W0
Test P1
Test P2
Test P3
Binary heuristic0, heuristic1, heuristic2
TcpFlags heuristic0, heuristic1, heuristic2
TcpMss heuristic0, heuristic1, heuristic2
TcpOptions heuristic0, heuristic1, heuristic2
TcpWindow heuristic0, heuristic1, heuristic2
13p0f Format dune signature
TCP Window Size
TCP Initial TTL
IP Dont Fragment Bit
TCP SYN Packet Size
8192128152M,W8,N,N,N,S.WindowsVista (beta)
TCP Options
Quirks
OS System Class
OS Name
- Version 2.0.8 (2006)
- 6 paramètres danalyse
- Uniquement sur un SYN (par défaut p0f.fp)
- Autres fichiers de signatures pour autres modes
(expérimentaux)
14Ring2 - Mystification de la congestion
15192.168.10.110
192.168.10.73
IpMorph
16Personality Manager
17Perspectives
- Juin 2009 SSTIC 2009
- Présentation officielle
- Beta release 0.1 (en download par
courriel) - Fin 2009 Début 2010
- Refactoring (Qt4 ?, uIp !, tests en
production ) - PersonalityManager, Intégration filtrage,
- Version 0.2 en download Internet
- Documentation, UserGuide ,
- Intégration de quelques scrubbers applicatifs
(DNS, SMB, DHCP, ) ?
18Démonstration
tap0
192.168.10.110 Linux Ubuntu 8.04
LAN
eth0
192.168.10.73 Nmap, Xprobe2, SinFP, P0f
Scénario de la démonstration
Prise dempreinte passive
Prise dempreinte active
Configuration
1 - Interface tap0
4 - Xprobe2
7 - SinFp en passif
2 - VirtualBox
5 - Nmap
8 - p0f
3- IpMorph
6 - SinFp en actif
19 Merci de votre attention.