TCP/IP ¡security ¡ CS642: ¡ ¡ Computer ¡Security ¡ Professor ¡Ristenpart ¡ h9p://www.cs.wisc.edu/~rist/ ¡ rist ¡at ¡cs ¡dot ¡wisc ¡dot ¡edu ¡ University ¡of ¡Wisconsin ¡CS ¡642 ¡
Moving ¡up ¡the ¡network ¡stack ¡ Internet ¡protocol ¡and ¡ICMP ¡ IP ¡spoofing, ¡fragmentaKon ¡ TCP ¡ Denial ¡of ¡Service ¡ IP ¡traceback, ¡filtering ¡ University ¡of ¡Wisconsin ¡CS ¡642 ¡
Internet ¡ Alice ¡ ISP2 ¡ ISP1 ¡ backbone ¡ Bob ¡ Local ¡area ¡network ¡ ¡ Internet ¡ (LAN) ¡ TCP/IP ¡ ¡ Ethernet ¡ BGP ¡ ¡(border ¡gateway ¡protocol) ¡ 802.11 ¡ DNS ¡(domain ¡name ¡system) ¡
Internet ¡threat ¡models ¡ ISP2 ¡ ISP1 ¡ backbone ¡ (1) ¡Malicious ¡hosts ¡ (2) ¡Subverted ¡routers ¡or ¡links ¡ (3) ¡Malicious ¡ISPs ¡or ¡backbone ¡
Internet ¡protocol ¡stack ¡ ApplicaKon ¡ HTTP, ¡FTP, ¡SMTP, ¡SSH, ¡etc. ¡ Transport ¡ TCP, ¡UDP ¡ Network ¡ IP, ¡ICMP, ¡IGMP ¡ Link ¡ 802x ¡(802.11, ¡Ethernet) ¡ ApplicaKon ¡ ApplicaKon ¡ Transport ¡ Transport ¡ Network ¡ Network ¡ Network ¡ Link ¡ Link ¡ Link ¡
IP ¡protocol ¡(IPv4) ¡ • ConnecKonless ¡ – no ¡state ¡ • Unreliable ¡ – no ¡guarantees ¡ • ICMP ¡(Internet ¡Control ¡Message ¡Protocol) ¡ – error ¡messages, ¡etc. ¡ – o\en ¡used ¡by ¡tools ¡such ¡as ¡ping, ¡traceroute ¡
Internet ¡protocol ¡stack ¡ user ¡data ¡ ApplicaKon ¡ Appl ¡ user ¡data ¡ TCP ¡ hdr ¡ IP ¡ Ethernet ¡ TCP ¡ Appl ¡ TCP ¡segment ¡ user ¡data ¡ hdr ¡ hdr ¡ IP ¡ TCP ¡ Appl ¡ user ¡data ¡ IP ¡datagram ¡ hdr ¡ hdr ¡ hdr ¡ ENet ¡ IP ¡ TCP ¡ Appl ¡ ENet ¡ user ¡data ¡ Ethernet ¡frame ¡ hdr ¡ hdr ¡ hdr ¡ hdr ¡ tlr ¡ 14 ¡ 20 ¡ 20 ¡ 46 ¡to ¡1500 ¡bytes ¡
IPv4 ¡ Ethernet ¡frame ¡ ¡ ENet ¡ IP ¡ ENet ¡ data ¡ containing ¡ ¡ hdr ¡ hdr ¡ tlr ¡ IP ¡datagram ¡ 4-‑bit ¡ 4-‑bit ¡ 8-‑bit ¡ ¡ 16-‑bit ¡ ¡ version ¡ hdr ¡len ¡ type ¡of ¡service ¡ total ¡length ¡(in ¡bytes) ¡ 16-‑bit ¡ ¡ 3-‑bit ¡ 13-‑bit ¡ ¡ idenKficaKon ¡ flags ¡ fragmentaKon ¡offset ¡ 8-‑bit ¡ ¡ 8-‑bit ¡ ¡ 16-‑bit ¡ ¡ Kme ¡to ¡live ¡(TTL) ¡ protocol ¡ header ¡checksum ¡ 32-‑bit ¡ ¡ source ¡IP ¡address ¡ 32-‑bit ¡ ¡ desKnaKon ¡IP ¡address ¡ opKons ¡(opKonal) ¡
Classless ¡Inter-‑Domain ¡rouKng ¡(CIDR) ¡ 128.168.0.0/16 ¡ a.b.c.d ¡/ ¡x ¡ ¡ x ¡indicates ¡number ¡of ¡bits ¡used ¡for ¡a ¡rouKng ¡prefix ¡ IP ¡addresses ¡with ¡same ¡/x ¡prefix ¡share ¡some ¡porKon ¡of ¡route ¡
From ¡h9p://en.wikipedia.org/wiki/IPv4 ¡
CIDR ¡addressing ¡ 10110… ¡1110000 ¡ 10110… ¡1100011 ¡ 5.6.7.8 ¡ ISP2 ¡ ISP1 ¡ …1111001 ¡ 10110… ¡1111000 ¡ backbone ¡ …1111011 ¡ Prefixes ¡used ¡to ¡setup ¡hierarchical ¡rouKng: ¡ ¡ ¡-‑ ¡An ¡organizaKon ¡assigned ¡ ¡ ¡a.b.c.d/x ¡ ¡ ¡-‑ ¡It ¡manages ¡addresses ¡prefixed ¡by ¡a.b.c.d/x ¡ ¡
RouKng ¡ 10110… ¡1110000 ¡ 10110… ¡1100011 ¡ 5.6.7.8 ¡ ISP2 ¡ ISP1 ¡ …1111001 ¡ 10110… ¡1111000 ¡ backbone ¡ …1111011 ¡ Autonomous ¡systems ¡(AS) ¡are ¡organizaKonal ¡building ¡blocks ¡ ¡-‑ ¡CollecKon ¡of ¡IP ¡prefixes ¡under ¡single ¡rouKng ¡policy ¡ ¡-‑ ¡wisc.edu ¡ Within ¡AS, ¡might ¡use ¡RIP ¡(RouKng ¡InformaKon ¡Protocol) ¡ Between ¡AS, ¡use ¡BGP ¡(Border ¡Gateway ¡Protocol) ¡
Security ¡issues ¡with ¡IP ¡ 5.6.7.8 ¡ ISP2 ¡ ISP1 ¡ 1.2.3.4 ¡ backbone ¡ RouKng ¡has ¡issues, ¡we’ll ¡get ¡to ¡that ¡later ¡ What ¡else? ¡ ¡-‑ ¡Anyone ¡can ¡talk ¡to ¡anyone ¡ ¡-‑ ¡No ¡source ¡address ¡authenKcaKon ¡in ¡general ¡
Denial ¡of ¡Service ¡(DoS) ¡a9acks ¡ 5.6.7.8 ¡ Backbone ¡ ¡ ISP2 ¡ ¡ ISP1 ¡ 1.2.3.4 ¡ Goal: ¡prevent ¡legiKmate ¡users ¡from ¡accessing ¡ ¡ vicKm ¡(1.2.3.4) ¡ ¡ ICMP ¡ping ¡flood ¡
ICMP ¡ ¡ (Internet ¡Control ¡Message ¡Protocol) ¡ IP ¡ ICMP ICMP ¡message ¡ hdr ¡ hdr ¡ 8-‑bit ¡ ¡ 8-‑bit ¡ ¡ 16-‑bit ¡ ¡ type ¡ code ¡ checksum ¡ 4-‑byte ¡ more ¡of ¡header ¡(depends ¡on ¡type) ¡ message ¡… ¡
ICMP ¡ ¡ (Internet ¡Control ¡Message ¡Protocol) ¡ IP ¡ ICMP ICMP ¡message ¡ hdr ¡ hdr ¡ 8-‑bit ¡ ¡ 8-‑bit ¡ ¡ 16-‑bit ¡ ¡ type ¡(0 ¡or ¡8) ¡ code ¡= ¡0 ¡ checksum ¡ 16-‑bit ¡ ¡ 16-‑bit ¡ ¡ idenKfier ¡ ¡ sequence ¡number ¡ opKonal ¡data ¡ Echo ¡request ¡(used ¡by ¡ping) ¡
Denial ¡of ¡Service ¡(DoS) ¡a9acks ¡ 5.6.7.8 ¡ Backbone ¡ ¡ ISP2 ¡ ¡ ISP1 ¡ 1.2.3.4 ¡ Goal ¡is ¡to ¡prevent ¡legiKmate ¡users ¡from ¡accessing ¡ ¡ vicKm ¡(1.2.3.4) ¡ ¡ ICMP ¡ping ¡flood ¡ -‑ A9acker ¡sends ¡ICMP ¡pings ¡as ¡fast ¡as ¡possible ¡to ¡vicKm ¡ -‑ When ¡will ¡this ¡work ¡as ¡a ¡DoS? ¡ ¡ A9acker ¡resources ¡> ¡vicKm’s ¡ -‑ How ¡can ¡this ¡be ¡prevented? ¡ ¡ ¡ Ingress ¡filtering ¡near ¡vicKm ¡
Denial ¡of ¡Service ¡(DoS) ¡a9acks ¡ 5.6.7.8 ¡ Backbone ¡ ¡ ISP2 ¡ ¡ ISP1 ¡ 1.2.3.4 ¡ ISP3 ¡ ¡ 8.7.3.4 ¡ How ¡can ¡a9acker ¡avoid ¡ingress ¡filtering? ¡ A9acker ¡can ¡send ¡packet ¡with ¡fake ¡source ¡IP ¡ ¡“spoofed” ¡packet ¡ Packet ¡will ¡get ¡routed ¡correctly ¡ Replies ¡will ¡not ¡ source: ¡8.7.3.4 ¡ Send ¡IP ¡packet ¡with ¡ ¡ from ¡5.6.7.8 ¡ dest: ¡1.2.3.4 ¡ Filter ¡based ¡on ¡source ¡may ¡be ¡incorrect ¡
DoS ¡reflecKon ¡a9acks ¡ 5.6.7.8 ¡ Backbone ¡ ¡ ISP2 ¡ ¡ ISP1 ¡ 1.2.3.4 ¡ ISP3 ¡ ¡ 8.7.3.4 ¡ Note ¡a ¡valid ¡packet ¡sends ¡a ¡reply ¡to ¡8.7.3.4 ¡ ¡-‑ ¡A9acker ¡can ¡bounce ¡an ¡a9ack ¡against ¡8.7.3.4 ¡off ¡1.2.3.4 ¡ ¡ ¡-‑ ¡“Frame” ¡1.2.3.4 ¡ ¡-‑ ¡Single-‑packet ¡exploit ¡(1.2.3.4 ¡in ¡foreign ¡country) ¡
Denial ¡of ¡Service ¡(DoS) ¡a9acks ¡ 5.6.7.8 ¡ Backbone ¡ ¡ ISP2 ¡ ¡ ISP1 ¡ 1.2.3.4 ¡ DoS ¡works ¡be9er ¡when ¡there ¡is ¡ asymmetry ¡between ¡ vicKm ¡and ¡a9acker ¡ -‑ A9acker ¡uses ¡few ¡resources ¡to ¡cause ¡ -‑ VicKm ¡to ¡consume ¡lots ¡of ¡resources ¡
Denial ¡of ¡Service ¡(DoS) ¡a9acks ¡ 5.6.7.8 ¡ Backbone ¡ ¡ ISP2 ¡ ¡ ISP1 ¡ 1.2.3.4 ¡ DoS ¡works ¡be9er ¡when ¡there ¡is ¡ asymmetry ¡between ¡ vicKm ¡and ¡a9acker ¡ -‑ A9acker ¡uses ¡few ¡resources ¡to ¡cause ¡ -‑ VicKm ¡to ¡consume ¡lots ¡of ¡resources ¡ Old ¡example: ¡Smurf ¡a9ack ¡ Router ¡allows ¡a9acker ¡to ¡send ¡broadcast ¡ICMP ¡ping ¡on ¡ network. ¡A9acker ¡spoofs ¡SRC ¡address ¡to ¡be ¡1.2.3.4 ¡
Denial ¡of ¡Service ¡(DoS) ¡a9acks ¡ Short ¡DNS ¡request ¡ 5.6.7.8 ¡ Backbone ¡ ¡ ISP2 ¡ ¡ ISP1 ¡ 1.2.3.4 ¡ ISP3 ¡ ¡ Longer ¡DNS ¡reply ¡ 8.7.3.4 ¡ DoS ¡works ¡be9er ¡when ¡there ¡is ¡ asymmetry ¡between ¡ vicKm ¡and ¡a9acker ¡ -‑ A9acker ¡uses ¡few ¡resources ¡to ¡cause ¡ -‑ VicKm ¡to ¡consume ¡lots ¡of ¡resources ¡ More ¡recent: ¡DNS ¡reflecKon ¡a9acks ¡ Send ¡DNS ¡request ¡w/ ¡spoofed ¡target ¡IP ¡(~65 ¡byte ¡request) ¡ DNS ¡replies ¡sent ¡to ¡target ¡(~512 ¡byte ¡response) ¡
Denial ¡of ¡Service ¡(DoS) ¡a9acks ¡ 5.6.7.8 ¡ Backbone ¡ ¡ ISP2 ¡ ¡ ISP1 ¡ 1.2.3.4 ¡ DoS ¡works ¡be9er ¡when ¡there ¡is ¡ asymmetry ¡between ¡ vicKm ¡and ¡a9acker ¡ -‑ A9acker ¡uses ¡few ¡resources ¡to ¡cause ¡ -‑ VicKm ¡to ¡consume ¡lots ¡of ¡resources ¡ Big ¡asymmetry: ¡ping ¡of ¡death ¡ ¡ A ¡single ¡packet ¡that ¡causes ¡crash ¡on ¡remote ¡system ¡ Early ¡on: ¡ping ¡packet ¡with ¡size ¡> ¡65,535 ¡
Recommend
More recommend