tcp ip security cs642 computer security
play

TCP/IP security CS642: Computer Security Professor - PowerPoint PPT Presentation

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


  1. 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 ¡

  2. Moving ¡up ¡the ¡network ¡stack ¡ Internet ¡protocol ¡and ¡ICMP ¡ IP ¡spoofing, ¡fragmentaKon ¡ TCP ¡ Denial ¡of ¡Service ¡ IP ¡traceback, ¡filtering ¡ University ¡of ¡Wisconsin ¡CS ¡642 ¡

  3. Internet ¡ Alice ¡ ISP2 ¡ ISP1 ¡ backbone ¡ Bob ¡ Local ¡area ¡network ¡ ¡ Internet ¡ (LAN) ¡ TCP/IP ¡ ¡ Ethernet ¡ BGP ¡ ¡(border ¡gateway ¡protocol) ¡ 802.11 ¡ DNS ¡(domain ¡name ¡system) ¡

  4. Internet ¡threat ¡models ¡ ISP2 ¡ ISP1 ¡ backbone ¡ (1) ¡Malicious ¡hosts ¡ (2) ¡Subverted ¡routers ¡or ¡links ¡ (3) ¡Malicious ¡ISPs ¡or ¡backbone ¡

  5. 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 ¡

  6. 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 ¡

  7. 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 ¡

  8. 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) ¡

  9. 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 ¡

  10. From ¡h9p://en.wikipedia.org/wiki/IPv4 ¡

  11. 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 ¡ ¡

  12. 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) ¡

  13. 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 ¡

  14. 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 ¡

  15. 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 ¡… ¡

  16. 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) ¡

  17. 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 ¡

  18. 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 ¡

  19. 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) ¡

  20. 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 ¡

  21. 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 ¡

  22. 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) ¡

  23. 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