NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I...

146
Network Security Security aspects of TCP/IP Radboud University, The Netherlands Spring 2017

Transcript of NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I...

Page 1: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Network SecuritySecurity aspects of TCP/IP

Radboud University, The Netherlands

Spring 2017

Page 2: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

A short recapI Within the same subnet, it’s fairly easy to sniff traffic

I Hubs distribute data to everyone (but are largely obsolete)I Use ARP cache poisoning on switched EthernetI Wireless LAN behaves a lot like hubbed Ethernet

I Protecting against ARP spoofing is hard: ARP does not supportauthentication

I WiFi is generally easier to access than wired network (no physicalprotection)

I WiFi uses encryption to protect access to the networkI WEP (Wired Equivalent Privacy) is broken (aircrack-ng)I WPA (Wireless Protected Access) fixes some problems but still uses

weak RC4 (TKIP)I Problems properly solved in WPA2: uses AES (CCMP) instead of

RC4I Most threatening in WPA2: bad passphrases, backwards-compatible

TKIPI Additional threat: WiFi Protected Setup (WPS)

Network Security – Security aspects of TCP/IP 2

Page 3: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

A short recapI Within the same subnet, it’s fairly easy to sniff traffic

I Hubs distribute data to everyone (but are largely obsolete)I Use ARP cache poisoning on switched EthernetI Wireless LAN behaves a lot like hubbed Ethernet

I Protecting against ARP spoofing is hard: ARP does not supportauthentication

I WiFi is generally easier to access than wired network (no physicalprotection)

I WiFi uses encryption to protect access to the network

I WEP (Wired Equivalent Privacy) is broken (aircrack-ng)I WPA (Wireless Protected Access) fixes some problems but still uses

weak RC4 (TKIP)I Problems properly solved in WPA2: uses AES (CCMP) instead of

RC4I Most threatening in WPA2: bad passphrases, backwards-compatible

TKIPI Additional threat: WiFi Protected Setup (WPS)

Network Security – Security aspects of TCP/IP 2

Page 4: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

A short recapI Within the same subnet, it’s fairly easy to sniff traffic

I Hubs distribute data to everyone (but are largely obsolete)I Use ARP cache poisoning on switched EthernetI Wireless LAN behaves a lot like hubbed Ethernet

I Protecting against ARP spoofing is hard: ARP does not supportauthentication

I WiFi is generally easier to access than wired network (no physicalprotection)

I WiFi uses encryption to protect access to the networkI WEP (Wired Equivalent Privacy) is broken (aircrack-ng)

I WPA (Wireless Protected Access) fixes some problems but still usesweak RC4 (TKIP)

I Problems properly solved in WPA2: uses AES (CCMP) instead ofRC4

I Most threatening in WPA2: bad passphrases, backwards-compatibleTKIP

I Additional threat: WiFi Protected Setup (WPS)

Network Security – Security aspects of TCP/IP 2

Page 5: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

A short recapI Within the same subnet, it’s fairly easy to sniff traffic

I Hubs distribute data to everyone (but are largely obsolete)I Use ARP cache poisoning on switched EthernetI Wireless LAN behaves a lot like hubbed Ethernet

I Protecting against ARP spoofing is hard: ARP does not supportauthentication

I WiFi is generally easier to access than wired network (no physicalprotection)

I WiFi uses encryption to protect access to the networkI WEP (Wired Equivalent Privacy) is broken (aircrack-ng)I WPA (Wireless Protected Access) fixes some problems but still uses

weak RC4 (TKIP)

I Problems properly solved in WPA2: uses AES (CCMP) instead ofRC4

I Most threatening in WPA2: bad passphrases, backwards-compatibleTKIP

I Additional threat: WiFi Protected Setup (WPS)

Network Security – Security aspects of TCP/IP 2

Page 6: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

A short recapI Within the same subnet, it’s fairly easy to sniff traffic

I Hubs distribute data to everyone (but are largely obsolete)I Use ARP cache poisoning on switched EthernetI Wireless LAN behaves a lot like hubbed Ethernet

I Protecting against ARP spoofing is hard: ARP does not supportauthentication

I WiFi is generally easier to access than wired network (no physicalprotection)

I WiFi uses encryption to protect access to the networkI WEP (Wired Equivalent Privacy) is broken (aircrack-ng)I WPA (Wireless Protected Access) fixes some problems but still uses

weak RC4 (TKIP)I Problems properly solved in WPA2: uses AES (CCMP) instead of

RC4

I Most threatening in WPA2: bad passphrases, backwards-compatibleTKIP

I Additional threat: WiFi Protected Setup (WPS)

Network Security – Security aspects of TCP/IP 2

Page 7: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

A short recapI Within the same subnet, it’s fairly easy to sniff traffic

I Hubs distribute data to everyone (but are largely obsolete)I Use ARP cache poisoning on switched EthernetI Wireless LAN behaves a lot like hubbed Ethernet

I Protecting against ARP spoofing is hard: ARP does not supportauthentication

I WiFi is generally easier to access than wired network (no physicalprotection)

I WiFi uses encryption to protect access to the networkI WEP (Wired Equivalent Privacy) is broken (aircrack-ng)I WPA (Wireless Protected Access) fixes some problems but still uses

weak RC4 (TKIP)I Problems properly solved in WPA2: uses AES (CCMP) instead of

RC4I Most threatening in WPA2: bad passphrases, backwards-compatible

TKIP

I Additional threat: WiFi Protected Setup (WPS)

Network Security – Security aspects of TCP/IP 2

Page 8: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

A short recapI Within the same subnet, it’s fairly easy to sniff traffic

I Hubs distribute data to everyone (but are largely obsolete)I Use ARP cache poisoning on switched EthernetI Wireless LAN behaves a lot like hubbed Ethernet

I Protecting against ARP spoofing is hard: ARP does not supportauthentication

I WiFi is generally easier to access than wired network (no physicalprotection)

I WiFi uses encryption to protect access to the networkI WEP (Wired Equivalent Privacy) is broken (aircrack-ng)I WPA (Wireless Protected Access) fixes some problems but still uses

weak RC4 (TKIP)I Problems properly solved in WPA2: uses AES (CCMP) instead of

RC4I Most threatening in WPA2: bad passphrases, backwards-compatible

TKIPI Additional threat: WiFi Protected Setup (WPS)

Network Security – Security aspects of TCP/IP 2

Page 9: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How bad is the TKIP problem?

I Current attacks do not recover TKIP key

I But they do:I Decrypt, re-encrypt and re-use short TKIP packets up to seven times

(Becks–Tews, 2009)

I ARP spoofing trivially possible

I Inject arbitrary amounts of packets, each up to 112 bytes(Vanhoef–Piessens, 2013)

I Port scanner against any client using WPA-TKIPI Decryption of arbitrary packets sent to clientI Can be used to hijack TCP

I Also works when TKIP is used as a group cipher (common setup)I Stop using TKIP

I iw dev wlp0s1 scan | grep TKIP

Network Security – Security aspects of TCP/IP 3

Page 10: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How bad is the TKIP problem?

I Current attacks do not recover TKIP keyI But they do:

I Decrypt, re-encrypt and re-use short TKIP packets up to seven times(Becks–Tews, 2009)

I ARP spoofing trivially possible

I Inject arbitrary amounts of packets, each up to 112 bytes(Vanhoef–Piessens, 2013)

I Port scanner against any client using WPA-TKIPI Decryption of arbitrary packets sent to clientI Can be used to hijack TCP

I Also works when TKIP is used as a group cipher (common setup)I Stop using TKIP

I iw dev wlp0s1 scan | grep TKIP

Network Security – Security aspects of TCP/IP 3

Page 11: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How bad is the TKIP problem?

I Current attacks do not recover TKIP keyI But they do:I Decrypt, re-encrypt and re-use short TKIP packets up to seven times

(Becks–Tews, 2009)

I ARP spoofing trivially possibleI Inject arbitrary amounts of packets, each up to 112 bytes

(Vanhoef–Piessens, 2013)

I Port scanner against any client using WPA-TKIPI Decryption of arbitrary packets sent to clientI Can be used to hijack TCP

I Also works when TKIP is used as a group cipher (common setup)I Stop using TKIP

I iw dev wlp0s1 scan | grep TKIP

Network Security – Security aspects of TCP/IP 3

Page 12: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How bad is the TKIP problem?

I Current attacks do not recover TKIP keyI But they do:I Decrypt, re-encrypt and re-use short TKIP packets up to seven times

(Becks–Tews, 2009)I ARP spoofing trivially possible

I Inject arbitrary amounts of packets, each up to 112 bytes(Vanhoef–Piessens, 2013)

I Port scanner against any client using WPA-TKIPI Decryption of arbitrary packets sent to clientI Can be used to hijack TCP

I Also works when TKIP is used as a group cipher (common setup)I Stop using TKIP

I iw dev wlp0s1 scan | grep TKIP

Network Security – Security aspects of TCP/IP 3

Page 13: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How bad is the TKIP problem?

I Current attacks do not recover TKIP keyI But they do:I Decrypt, re-encrypt and re-use short TKIP packets up to seven times

(Becks–Tews, 2009)I ARP spoofing trivially possible

I Inject arbitrary amounts of packets, each up to 112 bytes(Vanhoef–Piessens, 2013)

I Port scanner against any client using WPA-TKIPI Decryption of arbitrary packets sent to clientI Can be used to hijack TCP

I Also works when TKIP is used as a group cipher (common setup)I Stop using TKIP

I iw dev wlp0s1 scan | grep TKIP

Network Security – Security aspects of TCP/IP 3

Page 14: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How bad is the TKIP problem?

I Current attacks do not recover TKIP keyI But they do:I Decrypt, re-encrypt and re-use short TKIP packets up to seven times

(Becks–Tews, 2009)I ARP spoofing trivially possible

I Inject arbitrary amounts of packets, each up to 112 bytes(Vanhoef–Piessens, 2013)

I Port scanner against any client using WPA-TKIP

I Decryption of arbitrary packets sent to clientI Can be used to hijack TCP

I Also works when TKIP is used as a group cipher (common setup)I Stop using TKIP

I iw dev wlp0s1 scan | grep TKIP

Network Security – Security aspects of TCP/IP 3

Page 15: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How bad is the TKIP problem?

I Current attacks do not recover TKIP keyI But they do:I Decrypt, re-encrypt and re-use short TKIP packets up to seven times

(Becks–Tews, 2009)I ARP spoofing trivially possible

I Inject arbitrary amounts of packets, each up to 112 bytes(Vanhoef–Piessens, 2013)

I Port scanner against any client using WPA-TKIPI Decryption of arbitrary packets sent to client

I Can be used to hijack TCPI Also works when TKIP is used as a group cipher (common setup)I Stop using TKIP

I iw dev wlp0s1 scan | grep TKIP

Network Security – Security aspects of TCP/IP 3

Page 16: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How bad is the TKIP problem?

I Current attacks do not recover TKIP keyI But they do:I Decrypt, re-encrypt and re-use short TKIP packets up to seven times

(Becks–Tews, 2009)I ARP spoofing trivially possible

I Inject arbitrary amounts of packets, each up to 112 bytes(Vanhoef–Piessens, 2013)

I Port scanner against any client using WPA-TKIPI Decryption of arbitrary packets sent to clientI Can be used to hijack TCP

I Also works when TKIP is used as a group cipher (common setup)I Stop using TKIP

I iw dev wlp0s1 scan | grep TKIP

Network Security – Security aspects of TCP/IP 3

Page 17: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How bad is the TKIP problem?

I Current attacks do not recover TKIP keyI But they do:I Decrypt, re-encrypt and re-use short TKIP packets up to seven times

(Becks–Tews, 2009)I ARP spoofing trivially possible

I Inject arbitrary amounts of packets, each up to 112 bytes(Vanhoef–Piessens, 2013)

I Port scanner against any client using WPA-TKIPI Decryption of arbitrary packets sent to clientI Can be used to hijack TCP

I Also works when TKIP is used as a group cipher (common setup)

I Stop using TKIP

I iw dev wlp0s1 scan | grep TKIP

Network Security – Security aspects of TCP/IP 3

Page 18: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How bad is the TKIP problem?

I Current attacks do not recover TKIP keyI But they do:I Decrypt, re-encrypt and re-use short TKIP packets up to seven times

(Becks–Tews, 2009)I ARP spoofing trivially possible

I Inject arbitrary amounts of packets, each up to 112 bytes(Vanhoef–Piessens, 2013)

I Port scanner against any client using WPA-TKIPI Decryption of arbitrary packets sent to clientI Can be used to hijack TCP

I Also works when TKIP is used as a group cipher (common setup)I Stop using TKIP

I iw dev wlp0s1 scan | grep TKIP

Network Security – Security aspects of TCP/IP 3

Page 19: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Layers and layers

I Recall the 4-layer IP model:

I Link layerI Internet layerI Transport layerI Application layer

I Cracking WEP: attacking physical part of link layerI ARP spoofing: attacking logical part of link layerI What about the internet and transport layers?

Network Security – Security aspects of TCP/IP 4

Page 20: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Layers and layers

I Recall the 4-layer IP model:I Link layer

I Internet layerI Transport layerI Application layer

I Cracking WEP: attacking physical part of link layerI ARP spoofing: attacking logical part of link layerI What about the internet and transport layers?

Network Security – Security aspects of TCP/IP 4

Page 21: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Layers and layers

I Recall the 4-layer IP model:I Link layerI Internet layer

I Transport layerI Application layer

I Cracking WEP: attacking physical part of link layerI ARP spoofing: attacking logical part of link layerI What about the internet and transport layers?

Network Security – Security aspects of TCP/IP 4

Page 22: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Layers and layers

I Recall the 4-layer IP model:I Link layerI Internet layerI Transport layer

I Application layerI Cracking WEP: attacking physical part of link layerI ARP spoofing: attacking logical part of link layerI What about the internet and transport layers?

Network Security – Security aspects of TCP/IP 4

Page 23: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Layers and layers

I Recall the 4-layer IP model:I Link layerI Internet layerI Transport layerI Application layer

I Cracking WEP: attacking physical part of link layerI ARP spoofing: attacking logical part of link layerI What about the internet and transport layers?

Network Security – Security aspects of TCP/IP 4

Page 24: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Layers and layers

I Recall the 4-layer IP model:I Link layerI Internet layerI Transport layerI Application layer

I Cracking WEP: attacking physical part of link layer

I ARP spoofing: attacking logical part of link layerI What about the internet and transport layers?

Network Security – Security aspects of TCP/IP 4

Page 25: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Layers and layers

I Recall the 4-layer IP model:I Link layerI Internet layerI Transport layerI Application layer

I Cracking WEP: attacking physical part of link layerI ARP spoofing: attacking logical part of link layer

I What about the internet and transport layers?

Network Security – Security aspects of TCP/IP 4

Page 26: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Layers and layers

I Recall the 4-layer IP model:I Link layerI Internet layerI Transport layerI Application layer

I Cracking WEP: attacking physical part of link layerI ARP spoofing: attacking logical part of link layerI What about the internet and transport layers?

Network Security – Security aspects of TCP/IP 4

Page 27: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

IP networks and addresses

I Hosts (i.e., computers) are identified by their IP addressI IP addresses have a network part and a host partI Hosts with the same network part are “directly reachable”I Access to hosts with a different network part needs to go through

gateway (later in this lecture)

I Today: variable-length subnet masks (VLSM):I Specify how far the network part reaches through a bitmaskI Example: Netmask 255.255.255.0 means that the first 3 bytes are

network part

I Example 2: Netmask 255.224.0.0 means that the first 11 bits arenetwork part

I Specify network together with mask, e.g:I Example: 192.168.42.0/24

Network Security – Security aspects of TCP/IP 5

Page 28: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

IP networks and addresses

I Hosts (i.e., computers) are identified by their IP addressI IP addresses have a network part and a host partI Hosts with the same network part are “directly reachable”I Access to hosts with a different network part needs to go through

gateway (later in this lecture)I Today: variable-length subnet masks (VLSM):

I Specify how far the network part reaches through a bitmaskI Example: Netmask 255.255.255.0 means that the first 3 bytes are

network part

I Example 2: Netmask 255.224.0.0 means that the first 11 bits arenetwork part

I Specify network together with mask, e.g:I Example: 192.168.42.0/24

Network Security – Security aspects of TCP/IP 5

Page 29: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

IP networks and addresses

I Hosts (i.e., computers) are identified by their IP addressI IP addresses have a network part and a host partI Hosts with the same network part are “directly reachable”I Access to hosts with a different network part needs to go through

gateway (later in this lecture)I Today: variable-length subnet masks (VLSM):

I Specify how far the network part reaches through a bitmaskI Example: Netmask 255.255.255.0 means that the first 3 bytes are

network partI Example 2: Netmask 255.224.0.0 means that the first 11 bits are

network part

I Specify network together with mask, e.g:I Example: 192.168.42.0/24

Network Security – Security aspects of TCP/IP 5

Page 30: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

IP networks and addresses

I Hosts (i.e., computers) are identified by their IP addressI IP addresses have a network part and a host partI Hosts with the same network part are “directly reachable”I Access to hosts with a different network part needs to go through

gateway (later in this lecture)I Today: variable-length subnet masks (VLSM):

I Specify how far the network part reaches through a bitmaskI Example: Netmask 255.255.255.0 means that the first 3 bytes are

network partI Example 2: Netmask 255.224.0.0 means that the first 11 bits are

network partI Specify network together with mask, e.g:

I Example: 192.168.42.0/24

Network Security – Security aspects of TCP/IP 5

Page 31: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

IP networks and addresses

I Hosts (i.e., computers) are identified by their IP addressI IP addresses have a network part and a host partI Hosts with the same network part are “directly reachable”I Access to hosts with a different network part needs to go through

gateway (later in this lecture)I Today: variable-length subnet masks (VLSM):

I Specify how far the network part reaches through a bitmaskI Example: Netmask 255.255.255.0 means that the first 3 bytes are

network partI Example 2: Netmask 255.224.0.0 means that the first 11 bits are

network partI Specify network together with mask, e.g:I Example: 192.168.42.0/24

Network Security – Security aspects of TCP/IP 5

Page 32: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

The IP header

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Version IHL DSCP ECN Total Length

Identification Flags Fragment Offset

Time to Live Protocol Header Checksum

Source IP Address

Destination IP Address

Options

. . .

Network Security – Security aspects of TCP/IP 6

Page 33: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

IP spoofing

I Generally: Send IP packet with wrong (“spoofed”) source addressI Easy to achieve with raw sockets (see first homework assignment)

I Very problematic with services that use host-based authenticationI Classic example: rlogin, rcp, rsh

I rlogin: Log into remote machineI rsh: Run command on remote machineI rcp: Copy files to remote machine

I No password required if the IP address is in /etc/hosts.equiv or~/.rhosts

I This is to some extent fixed in recent versions of rloginI From the ssh manpage: “the rlogin/rsh protocol in general, are

inherently insecure and should be disabled if security is desired”I IP spoofing is today mainly important in a larger attack context

Network Security – Security aspects of TCP/IP 7

Page 34: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

IP spoofing

I Generally: Send IP packet with wrong (“spoofed”) source addressI Easy to achieve with raw sockets (see first homework assignment)I Very problematic with services that use host-based authenticationI Classic example: rlogin, rcp, rsh

I rlogin: Log into remote machineI rsh: Run command on remote machineI rcp: Copy files to remote machine

I No password required if the IP address is in /etc/hosts.equiv or~/.rhosts

I This is to some extent fixed in recent versions of rloginI From the ssh manpage: “the rlogin/rsh protocol in general, are

inherently insecure and should be disabled if security is desired”I IP spoofing is today mainly important in a larger attack context

Network Security – Security aspects of TCP/IP 7

Page 35: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

IP spoofing

I Generally: Send IP packet with wrong (“spoofed”) source addressI Easy to achieve with raw sockets (see first homework assignment)I Very problematic with services that use host-based authenticationI Classic example: rlogin, rcp, rsh

I rlogin: Log into remote machineI rsh: Run command on remote machineI rcp: Copy files to remote machine

I No password required if the IP address is in /etc/hosts.equiv or~/.rhosts

I This is to some extent fixed in recent versions of rloginI From the ssh manpage: “the rlogin/rsh protocol in general, are

inherently insecure and should be disabled if security is desired”I IP spoofing is today mainly important in a larger attack context

Network Security – Security aspects of TCP/IP 7

Page 36: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

IP spoofing

I Generally: Send IP packet with wrong (“spoofed”) source addressI Easy to achieve with raw sockets (see first homework assignment)I Very problematic with services that use host-based authenticationI Classic example: rlogin, rcp, rsh

I rlogin: Log into remote machineI rsh: Run command on remote machineI rcp: Copy files to remote machine

I No password required if the IP address is in /etc/hosts.equiv or~/.rhosts

I This is to some extent fixed in recent versions of rloginI From the ssh manpage: “the rlogin/rsh protocol in general, are

inherently insecure and should be disabled if security is desired”

I IP spoofing is today mainly important in a larger attack context

Network Security – Security aspects of TCP/IP 7

Page 37: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

IP spoofing

I Generally: Send IP packet with wrong (“spoofed”) source addressI Easy to achieve with raw sockets (see first homework assignment)I Very problematic with services that use host-based authenticationI Classic example: rlogin, rcp, rsh

I rlogin: Log into remote machineI rsh: Run command on remote machineI rcp: Copy files to remote machine

I No password required if the IP address is in /etc/hosts.equiv or~/.rhosts

I This is to some extent fixed in recent versions of rloginI From the ssh manpage: “the rlogin/rsh protocol in general, are

inherently insecure and should be disabled if security is desired”I IP spoofing is today mainly important in a larger attack context

Network Security – Security aspects of TCP/IP 7

Page 38: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP handshake

I TCP ports identify processes

I Before sending data, create TCP connection with three-wayhandshake:

I Client sends SYN, SEQ=XI Server answers with SYN, ACK, SEQ=Y , ACK=X + 1I Client answers with ACK, SEQ=X + 1, ACK=Y + 1

I Negative answer to a SYN is an RSTI During data transmission, each correctly received byte is

acknowledged:I Sequence numbers increase by payload bytes sentI Acknowledgement numbers are the next expected sequence number

I Termination of a connection uses a 4-way handshake:I Each side terminates independently (through a FIN)I Each side acknowledges the FIN of the other side

Network Security – Security aspects of TCP/IP 8

Page 39: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP handshake

I TCP ports identify processesI Before sending data, create TCP connection with three-way

handshake:I Client sends SYN, SEQ=XI Server answers with SYN, ACK, SEQ=Y , ACK=X + 1I Client answers with ACK, SEQ=X + 1, ACK=Y + 1

I Negative answer to a SYN is an RSTI During data transmission, each correctly received byte is

acknowledged:I Sequence numbers increase by payload bytes sentI Acknowledgement numbers are the next expected sequence number

I Termination of a connection uses a 4-way handshake:I Each side terminates independently (through a FIN)I Each side acknowledges the FIN of the other side

Network Security – Security aspects of TCP/IP 8

Page 40: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP handshake

I TCP ports identify processesI Before sending data, create TCP connection with three-way

handshake:I Client sends SYN, SEQ=XI Server answers with SYN, ACK, SEQ=Y , ACK=X + 1I Client answers with ACK, SEQ=X + 1, ACK=Y + 1

I Negative answer to a SYN is an RST

I During data transmission, each correctly received byte isacknowledged:

I Sequence numbers increase by payload bytes sentI Acknowledgement numbers are the next expected sequence number

I Termination of a connection uses a 4-way handshake:I Each side terminates independently (through a FIN)I Each side acknowledges the FIN of the other side

Network Security – Security aspects of TCP/IP 8

Page 41: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP handshake

I TCP ports identify processesI Before sending data, create TCP connection with three-way

handshake:I Client sends SYN, SEQ=XI Server answers with SYN, ACK, SEQ=Y , ACK=X + 1I Client answers with ACK, SEQ=X + 1, ACK=Y + 1

I Negative answer to a SYN is an RSTI During data transmission, each correctly received byte is

acknowledged:I Sequence numbers increase by payload bytes sentI Acknowledgement numbers are the next expected sequence number

I Termination of a connection uses a 4-way handshake:I Each side terminates independently (through a FIN)I Each side acknowledges the FIN of the other side

Network Security – Security aspects of TCP/IP 8

Page 42: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP handshake

I TCP ports identify processesI Before sending data, create TCP connection with three-way

handshake:I Client sends SYN, SEQ=XI Server answers with SYN, ACK, SEQ=Y , ACK=X + 1I Client answers with ACK, SEQ=X + 1, ACK=Y + 1

I Negative answer to a SYN is an RSTI During data transmission, each correctly received byte is

acknowledged:I Sequence numbers increase by payload bytes sentI Acknowledgement numbers are the next expected sequence number

I Termination of a connection uses a 4-way handshake:I Each side terminates independently (through a FIN)I Each side acknowledges the FIN of the other side

Network Security – Security aspects of TCP/IP 8

Page 43: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

The TCP header

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Source Port Destination Port

Sequence Number

Acknowledgement Number (if ACK set)

Data Re- N C E U A P R S F

Offset served S W C R C S S Y I Window Size

0 0 0 R E G K H T N N

Checksum Urgent pointer (if URG set)

Options

. . .

Network Security – Security aspects of TCP/IP 9

Page 44: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN flooding

I After client sends SYN, server allocates resources for connection inthe SYN queue, sends SYN/ACK

I Attack: send many SYN packets, never reply to SYN/ACK withACK

I Server’s SYN queue will fill upI DOS attack, preventing server from respondingI Need to send SYN packets faster than server is “discarding”

half-open connectionsI Time to discard is configured by the TCP SYN-RECEIVED timer

CountermeasuresI Decrease the SYN-RECEIVED timerI Increase the size of the queueI Recycle oldest half-open connectionI Firewalls (later in this course)

Network Security – Security aspects of TCP/IP 10

Page 45: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN flooding

I After client sends SYN, server allocates resources for connection inthe SYN queue, sends SYN/ACK

I Attack: send many SYN packets, never reply to SYN/ACK withACK

I Server’s SYN queue will fill upI DOS attack, preventing server from responding

I Need to send SYN packets faster than server is “discarding”half-open connections

I Time to discard is configured by the TCP SYN-RECEIVED timer

CountermeasuresI Decrease the SYN-RECEIVED timerI Increase the size of the queueI Recycle oldest half-open connectionI Firewalls (later in this course)

Network Security – Security aspects of TCP/IP 10

Page 46: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN flooding

I After client sends SYN, server allocates resources for connection inthe SYN queue, sends SYN/ACK

I Attack: send many SYN packets, never reply to SYN/ACK withACK

I Server’s SYN queue will fill upI DOS attack, preventing server from respondingI Need to send SYN packets faster than server is “discarding”

half-open connectionsI Time to discard is configured by the TCP SYN-RECEIVED timer

CountermeasuresI Decrease the SYN-RECEIVED timerI Increase the size of the queueI Recycle oldest half-open connectionI Firewalls (later in this course)

Network Security – Security aspects of TCP/IP 10

Page 47: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN flooding

I After client sends SYN, server allocates resources for connection inthe SYN queue, sends SYN/ACK

I Attack: send many SYN packets, never reply to SYN/ACK withACK

I Server’s SYN queue will fill upI DOS attack, preventing server from respondingI Need to send SYN packets faster than server is “discarding”

half-open connectionsI Time to discard is configured by the TCP SYN-RECEIVED timer

CountermeasuresI Decrease the SYN-RECEIVED timerI Increase the size of the queueI Recycle oldest half-open connectionI Firewalls (later in this course)

Network Security – Security aspects of TCP/IP 10

Page 48: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Solving the real problem

I SYN flooding countermeasures don’t really solve the problem

The recipient will be left with multiple half-open connections that areoccupying limited resources. Usually, these connection requests haveforged source addresses that specify nonexistent or unreachable hoststhat cannot be contacted. Thus, there is also no way to trace theconnections back. ... There is little you can do in these situations. ...any finite limit can be exceeded.”

—Practical UNIX and Internet Security, Garfinkel and Spafford (1996)

Network Security – Security aspects of TCP/IP 11

Page 49: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN cookies

I Better idea (Bernstein, Schenk, 1996): SYN cookies

I Reason for allocating resources after receiving SYN: need toremember properties of the connection

I Idea: Securely encode this information in the server’s initial sequencenumber (ISN) of SYN/ACK

I Reconstruct information when ACK from client is receivedI Compute ISN as the client’s ISN plus offset of

I top 5 bits: t mod 32, where t is a 32-bit time counter that increasesevery 64 seconds

I next 3 bits: an encoding of a maximal segment size (MSS) selectedby the server in response to the client’s MSS

I bottom 24 bits: a server-selected secret function of the client IPaddress and port number, the server IP address and port number,and t.

Network Security – Security aspects of TCP/IP 12

Page 50: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN cookies

I Better idea (Bernstein, Schenk, 1996): SYN cookiesI Reason for allocating resources after receiving SYN: need to

remember properties of the connectionI Idea: Securely encode this information in the server’s initial sequence

number (ISN) of SYN/ACKI Reconstruct information when ACK from client is received

I Compute ISN as the client’s ISN plus offset ofI top 5 bits: t mod 32, where t is a 32-bit time counter that increases

every 64 secondsI next 3 bits: an encoding of a maximal segment size (MSS) selected

by the server in response to the client’s MSSI bottom 24 bits: a server-selected secret function of the client IP

address and port number, the server IP address and port number,and t.

Network Security – Security aspects of TCP/IP 12

Page 51: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN cookies

I Better idea (Bernstein, Schenk, 1996): SYN cookiesI Reason for allocating resources after receiving SYN: need to

remember properties of the connectionI Idea: Securely encode this information in the server’s initial sequence

number (ISN) of SYN/ACKI Reconstruct information when ACK from client is receivedI Compute ISN as the client’s ISN plus offset of

I top 5 bits: t mod 32, where t is a 32-bit time counter that increasesevery 64 seconds

I next 3 bits: an encoding of a maximal segment size (MSS) selectedby the server in response to the client’s MSS

I bottom 24 bits: a server-selected secret function of the client IPaddress and port number, the server IP address and port number,and t.

Network Security – Security aspects of TCP/IP 12

Page 52: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN cookies ctd.

I When receiving an ACK,I check that the ACK number −1 corresponds to value of the secret

function for a recent tI reconstruct the entry in the SYN queueI continue as usual

I SYN cookies have some limitations (in particular TCP options), soonly use them after the SYN queue is full

I Enable SYN cookies under Linux:echo 1 > /proc/sys/net/ipv4/tcp_syncookies

Network Security – Security aspects of TCP/IP 13

Page 53: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN cookies ctd.

I When receiving an ACK,I check that the ACK number −1 corresponds to value of the secret

function for a recent tI reconstruct the entry in the SYN queueI continue as usual

I SYN cookies have some limitations (in particular TCP options), soonly use them after the SYN queue is full

I Enable SYN cookies under Linux:echo 1 > /proc/sys/net/ipv4/tcp_syncookies

Network Security – Security aspects of TCP/IP 13

Page 54: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN cookies ctd.

I When receiving an ACK,I check that the ACK number −1 corresponds to value of the secret

function for a recent tI reconstruct the entry in the SYN queueI continue as usual

I SYN cookies have some limitations (in particular TCP options), soonly use them after the SYN queue is full

I Enable SYN cookies under Linux:echo 1 > /proc/sys/net/ipv4/tcp_syncookies

Network Security – Security aspects of TCP/IP 13

Page 55: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Ping of deathI DOS attack sometimes also possible by malformed packetsI Idea: target does not know how to handle packet and crashes

I Classical famous example: ping of deathI Idea is the following:

I IP packets are limited to a length of 65535 bytesI IP packets get “chopped” into fragments for transportation through,

e.g., EthernetI IP header has a fragment offsetI Fragment offset + packet size must not exceed 65535

I . . . but it canI With fragmentation, it is possible to send IP packets of size > 65535I Receiving host will assemble the fragments into a buffer of size 65535I Overlong IP packet will overflow this buffer

I This bug was present in UNIX, Linux, Windows, Mac, routers,printers . . .

I Trivially easy to exploit with some implementations of ping:ping -s 65510 target

Network Security – Security aspects of TCP/IP 14

Page 56: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Ping of deathI DOS attack sometimes also possible by malformed packetsI Idea: target does not know how to handle packet and crashesI Classical famous example: ping of deathI Idea is the following:

I IP packets are limited to a length of 65535 bytesI IP packets get “chopped” into fragments for transportation through,

e.g., EthernetI IP header has a fragment offsetI Fragment offset + packet size must not exceed 65535

I . . . but it canI With fragmentation, it is possible to send IP packets of size > 65535I Receiving host will assemble the fragments into a buffer of size 65535I Overlong IP packet will overflow this buffer

I This bug was present in UNIX, Linux, Windows, Mac, routers,printers . . .

I Trivially easy to exploit with some implementations of ping:ping -s 65510 target

Network Security – Security aspects of TCP/IP 14

Page 57: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Ping of deathI DOS attack sometimes also possible by malformed packetsI Idea: target does not know how to handle packet and crashesI Classical famous example: ping of deathI Idea is the following:

I IP packets are limited to a length of 65535 bytesI IP packets get “chopped” into fragments for transportation through,

e.g., EthernetI IP header has a fragment offsetI Fragment offset + packet size must not exceed 65535I . . . but it canI With fragmentation, it is possible to send IP packets of size > 65535

I Receiving host will assemble the fragments into a buffer of size 65535I Overlong IP packet will overflow this buffer

I This bug was present in UNIX, Linux, Windows, Mac, routers,printers . . .

I Trivially easy to exploit with some implementations of ping:ping -s 65510 target

Network Security – Security aspects of TCP/IP 14

Page 58: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Ping of deathI DOS attack sometimes also possible by malformed packetsI Idea: target does not know how to handle packet and crashesI Classical famous example: ping of deathI Idea is the following:

I IP packets are limited to a length of 65535 bytesI IP packets get “chopped” into fragments for transportation through,

e.g., EthernetI IP header has a fragment offsetI Fragment offset + packet size must not exceed 65535I . . . but it canI With fragmentation, it is possible to send IP packets of size > 65535I Receiving host will assemble the fragments into a buffer of size 65535

I Overlong IP packet will overflow this bufferI This bug was present in UNIX, Linux, Windows, Mac, routers,

printers . . .I Trivially easy to exploit with some implementations of ping:

ping -s 65510 target

Network Security – Security aspects of TCP/IP 14

Page 59: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Ping of deathI DOS attack sometimes also possible by malformed packetsI Idea: target does not know how to handle packet and crashesI Classical famous example: ping of deathI Idea is the following:

I IP packets are limited to a length of 65535 bytesI IP packets get “chopped” into fragments for transportation through,

e.g., EthernetI IP header has a fragment offsetI Fragment offset + packet size must not exceed 65535I . . . but it canI With fragmentation, it is possible to send IP packets of size > 65535I Receiving host will assemble the fragments into a buffer of size 65535I Overlong IP packet will overflow this buffer

I This bug was present in UNIX, Linux, Windows, Mac, routers,printers . . .

I Trivially easy to exploit with some implementations of ping:ping -s 65510 target

Network Security – Security aspects of TCP/IP 14

Page 60: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Ping of deathI DOS attack sometimes also possible by malformed packetsI Idea: target does not know how to handle packet and crashesI Classical famous example: ping of deathI Idea is the following:

I IP packets are limited to a length of 65535 bytesI IP packets get “chopped” into fragments for transportation through,

e.g., EthernetI IP header has a fragment offsetI Fragment offset + packet size must not exceed 65535I . . . but it canI With fragmentation, it is possible to send IP packets of size > 65535I Receiving host will assemble the fragments into a buffer of size 65535I Overlong IP packet will overflow this buffer

I This bug was present in UNIX, Linux, Windows, Mac, routers,printers . . .

I Trivially easy to exploit with some implementations of ping:ping -s 65510 target

Network Security – Security aspects of TCP/IP 14

Page 61: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

The return of the ping of death

I CVE-2013-3183: IPv6 ping of death against Windows Vista SP2,Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows8, Windows Server 2012, and Windows RT

I CVE-2016-1409: IPv6 ping of death against Cisco’s IOS, IOS XR,IOS XE, and NX-OS software

Network Security – Security aspects of TCP/IP 15

Page 62: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

The return of the ping of death

I CVE-2013-3183: IPv6 ping of death against Windows Vista SP2,Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows8, Windows Server 2012, and Windows RT

I CVE-2016-1409: IPv6 ping of death against Cisco’s IOS, IOS XR,IOS XE, and NX-OS software

Network Security – Security aspects of TCP/IP 15

Page 63: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

ISN guessing

I Can we do more with IP spoofing than DOS?

I Problem without MitM (off-path attack):I TCP handshake SYN/ACK packet won’t arrive at attackerI Attacker needs to generate valid ACK to establish connectionI Valid ACK means: correct ACK number (server’s ISN plus 1)I Can knock out the “real” receiver with DOS

I Attack the transport layer as wellI Can an attacker guess the server’s ISN?

Network Security – Security aspects of TCP/IP 16

Page 64: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

ISN guessing

I Can we do more with IP spoofing than DOS?I Problem without MitM (off-path attack):

I TCP handshake SYN/ACK packet won’t arrive at attackerI Attacker needs to generate valid ACK to establish connectionI Valid ACK means: correct ACK number (server’s ISN plus 1)I Can knock out the “real” receiver with DOS

I Attack the transport layer as wellI Can an attacker guess the server’s ISN?

Network Security – Security aspects of TCP/IP 16

Page 65: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

ISN guessing

I Can we do more with IP spoofing than DOS?I Problem without MitM (off-path attack):

I TCP handshake SYN/ACK packet won’t arrive at attackerI Attacker needs to generate valid ACK to establish connectionI Valid ACK means: correct ACK number (server’s ISN plus 1)I Can knock out the “real” receiver with DOS

I Attack the transport layer as well

I Can an attacker guess the server’s ISN?

Network Security – Security aspects of TCP/IP 16

Page 66: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

ISN guessing

I Can we do more with IP spoofing than DOS?I Problem without MitM (off-path attack):

I TCP handshake SYN/ACK packet won’t arrive at attackerI Attacker needs to generate valid ACK to establish connectionI Valid ACK means: correct ACK number (server’s ISN plus 1)I Can knock out the “real” receiver with DOS

I Attack the transport layer as wellI Can an attacker guess the server’s ISN?

Network Security – Security aspects of TCP/IP 16

Page 67: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

When new connections are created, an initial sequence number (ISN)generator is employed which selects a new 32 bit ISN. The generator isbound to a (possibly fictitious) 32 bit clock whose low order bit isincremented roughly every 4 microseconds. Thus, the ISN cyclesapproximately every 4.55 hours. Since we assume that segments will stayin the network no more than the Maximum Segment Lifetime (MSL) andthat the MSL is less than 4.55 hours we can reasonably assume thatISN’s will be unique.” —RFC 793 (September 1981)

Network Security – Security aspects of TCP/IP 16

Page 68: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP SHOULD generate its Initial Sequence Numbers with the expression:ISN = M + F(localip, localport, remoteip, remoteport, secretkey)where M is the 4 microsecond timer, and F() is a pseudorandom function(PRF) of the connection-id. F() MUST NOT be computable from theoutside, or an attacker could still guess at sequence numbers from theISN used for some other connection. The PRF could be implemented asa cryptographic hash of the concatenation of the connection-id and somesecret data; MD5 [RFC1321] would be a good choice for the hashfunction.” —RFC 6528 (February 2012)

Network Security – Security aspects of TCP/IP 16

Page 69: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

. . . in the Linux kernel (4.11)

u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr,__be16 sport, __be16 dport, u32 *tsoff)

{u64 hash;net_secret_init();hash = siphash_3u32((__force u32)saddr, (__force u32)daddr,

(__force u32)sport << 16 | (__force u32)dport,&net_secret);

*tsoff = secure_tcp_ts_off(saddr, daddr);return seq_scale(hash);

}

Network Security – Security aspects of TCP/IP 16

Page 70: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

ISN guessing

I Can we do more with IP spoofing than DOS?I An man-in-the-middle attacker does not really need IP spoofingI Problem without MitM (off-path attack):

I TCP handshake SYN/ACK packet won’t arrive at attackerI Attacker needs to generate valid ACK to establish connectionI Valid ACK means: correct ACK number (server’s ISN plus 1)

I Can an attacker guess the server’s ISN?I Probably not easily (anymore)I Keep in mind: No exact guess needed, attacker can try many

sequence numbers!

Network Security – Security aspects of TCP/IP 17

Page 71: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Good sequence numbers are not a replacement for cryptographicauthentication, such as that provided by IPsec [RFC4301] or the TCPAuthentication Option (TCP-AO) [RFC5925]. At best, they’re apalliative measure.” —RFC 6528 (February 2012)

Network Security – Security aspects of TCP/IP 17

Page 72: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP session hijacking

I Let’s put all of this together, assume an off-track attackerI Attack works as follows:

I Attacker launches DOS attack against AI Attacker sends SYN packet to server B with source IP of AI Server sends SYN/ACK to A, but A does not reply (DOS)I Attacker sends ACK to B, guessing B’s ISNI Now B believes to have an established connection with AI Attacker can now send packets through connection (but won’t

receive any)I One-directional communication is enough to execute commands

(e.g., passwd)I Attacker can also take over existing, legitimate connection between

A and B

I This became known as the “Mitnick attack”

Network Security – Security aspects of TCP/IP 18

Page 73: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP session hijacking

I Let’s put all of this together, assume an off-track attackerI Attack works as follows:

I Attacker launches DOS attack against A

I Attacker sends SYN packet to server B with source IP of AI Server sends SYN/ACK to A, but A does not reply (DOS)I Attacker sends ACK to B, guessing B’s ISNI Now B believes to have an established connection with AI Attacker can now send packets through connection (but won’t

receive any)I One-directional communication is enough to execute commands

(e.g., passwd)I Attacker can also take over existing, legitimate connection between

A and B

I This became known as the “Mitnick attack”

Network Security – Security aspects of TCP/IP 18

Page 74: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP session hijacking

I Let’s put all of this together, assume an off-track attackerI Attack works as follows:

I Attacker launches DOS attack against AI Attacker sends SYN packet to server B with source IP of A

I Server sends SYN/ACK to A, but A does not reply (DOS)I Attacker sends ACK to B, guessing B’s ISNI Now B believes to have an established connection with AI Attacker can now send packets through connection (but won’t

receive any)I One-directional communication is enough to execute commands

(e.g., passwd)I Attacker can also take over existing, legitimate connection between

A and B

I This became known as the “Mitnick attack”

Network Security – Security aspects of TCP/IP 18

Page 75: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP session hijacking

I Let’s put all of this together, assume an off-track attackerI Attack works as follows:

I Attacker launches DOS attack against AI Attacker sends SYN packet to server B with source IP of AI Server sends SYN/ACK to A, but A does not reply (DOS)

I Attacker sends ACK to B, guessing B’s ISNI Now B believes to have an established connection with AI Attacker can now send packets through connection (but won’t

receive any)I One-directional communication is enough to execute commands

(e.g., passwd)I Attacker can also take over existing, legitimate connection between

A and B

I This became known as the “Mitnick attack”

Network Security – Security aspects of TCP/IP 18

Page 76: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP session hijacking

I Let’s put all of this together, assume an off-track attackerI Attack works as follows:

I Attacker launches DOS attack against AI Attacker sends SYN packet to server B with source IP of AI Server sends SYN/ACK to A, but A does not reply (DOS)I Attacker sends ACK to B, guessing B’s ISN

I Now B believes to have an established connection with AI Attacker can now send packets through connection (but won’t

receive any)I One-directional communication is enough to execute commands

(e.g., passwd)I Attacker can also take over existing, legitimate connection between

A and B

I This became known as the “Mitnick attack”

Network Security – Security aspects of TCP/IP 18

Page 77: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP session hijacking

I Let’s put all of this together, assume an off-track attackerI Attack works as follows:

I Attacker launches DOS attack against AI Attacker sends SYN packet to server B with source IP of AI Server sends SYN/ACK to A, but A does not reply (DOS)I Attacker sends ACK to B, guessing B’s ISNI Now B believes to have an established connection with A

I Attacker can now send packets through connection (but won’treceive any)

I One-directional communication is enough to execute commands(e.g., passwd)

I Attacker can also take over existing, legitimate connection betweenA and B

I This became known as the “Mitnick attack”

Network Security – Security aspects of TCP/IP 18

Page 78: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP session hijacking

I Let’s put all of this together, assume an off-track attackerI Attack works as follows:

I Attacker launches DOS attack against AI Attacker sends SYN packet to server B with source IP of AI Server sends SYN/ACK to A, but A does not reply (DOS)I Attacker sends ACK to B, guessing B’s ISNI Now B believes to have an established connection with AI Attacker can now send packets through connection (but won’t

receive any)

I One-directional communication is enough to execute commands(e.g., passwd)

I Attacker can also take over existing, legitimate connection betweenA and B

I This became known as the “Mitnick attack”

Network Security – Security aspects of TCP/IP 18

Page 79: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP session hijacking

I Let’s put all of this together, assume an off-track attackerI Attack works as follows:

I Attacker launches DOS attack against AI Attacker sends SYN packet to server B with source IP of AI Server sends SYN/ACK to A, but A does not reply (DOS)I Attacker sends ACK to B, guessing B’s ISNI Now B believes to have an established connection with AI Attacker can now send packets through connection (but won’t

receive any)I One-directional communication is enough to execute commands

(e.g., passwd)

I Attacker can also take over existing, legitimate connection betweenA and B

I This became known as the “Mitnick attack”

Network Security – Security aspects of TCP/IP 18

Page 80: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP session hijacking

I Let’s put all of this together, assume an off-track attackerI Attack works as follows:

I Attacker launches DOS attack against AI Attacker sends SYN packet to server B with source IP of AI Server sends SYN/ACK to A, but A does not reply (DOS)I Attacker sends ACK to B, guessing B’s ISNI Now B believes to have an established connection with AI Attacker can now send packets through connection (but won’t

receive any)I One-directional communication is enough to execute commands

(e.g., passwd)I Attacker can also take over existing, legitimate connection between

A and B

I This became known as the “Mitnick attack”

Network Security – Security aspects of TCP/IP 18

Page 81: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP session hijacking

I Let’s put all of this together, assume an off-track attackerI Attack works as follows:

I Attacker launches DOS attack against AI Attacker sends SYN packet to server B with source IP of AI Server sends SYN/ACK to A, but A does not reply (DOS)I Attacker sends ACK to B, guessing B’s ISNI Now B believes to have an established connection with AI Attacker can now send packets through connection (but won’t

receive any)I One-directional communication is enough to execute commands

(e.g., passwd)I Attacker can also take over existing, legitimate connection between

A and B

I This became known as the “Mitnick attack”

Network Security – Security aspects of TCP/IP 18

Page 82: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP hijacking bites again

I ISNs today are hard to predictI Classical TCP hijacking attack does not work anymore

I Cao, Qian, Wang, Dao, Krishnamurthy, Marvel, 2016: Obtain TCPsequence numbers in Linux ≥ 3.6

I Exploit against implementation of RFC 5961I Idea of RFC 5961: protection against blind session terminationI Use “challenge ACK” packetsI Limit challenge ACKs per secondI Linux: use global counter for number of challenge ACKSI This creates a side channel between connectionsI Results:

I 10 seconds to infer whether any two hosts are communicatingI Another 10 seconds to infer TCP sequence numbers

I Details: http://www.cs.ucr.edu/~zhiyunq/pub/sec16_TCP_pure_offpath.pdf

Network Security – Security aspects of TCP/IP 19

Page 83: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP hijacking bites again

I ISNs today are hard to predictI Classical TCP hijacking attack does not work anymoreI Cao, Qian, Wang, Dao, Krishnamurthy, Marvel, 2016: Obtain TCP

sequence numbers in Linux ≥ 3.6

I Exploit against implementation of RFC 5961

I Idea of RFC 5961: protection against blind session terminationI Use “challenge ACK” packetsI Limit challenge ACKs per secondI Linux: use global counter for number of challenge ACKSI This creates a side channel between connectionsI Results:

I 10 seconds to infer whether any two hosts are communicatingI Another 10 seconds to infer TCP sequence numbers

I Details: http://www.cs.ucr.edu/~zhiyunq/pub/sec16_TCP_pure_offpath.pdf

Network Security – Security aspects of TCP/IP 19

Page 84: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP hijacking bites again

I ISNs today are hard to predictI Classical TCP hijacking attack does not work anymoreI Cao, Qian, Wang, Dao, Krishnamurthy, Marvel, 2016: Obtain TCP

sequence numbers in Linux ≥ 3.6

I Exploit against implementation of RFC 5961I Idea of RFC 5961: protection against blind session terminationI Use “challenge ACK” packets

I Limit challenge ACKs per secondI Linux: use global counter for number of challenge ACKSI This creates a side channel between connectionsI Results:

I 10 seconds to infer whether any two hosts are communicatingI Another 10 seconds to infer TCP sequence numbers

I Details: http://www.cs.ucr.edu/~zhiyunq/pub/sec16_TCP_pure_offpath.pdf

Network Security – Security aspects of TCP/IP 19

Page 85: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP hijacking bites again

I ISNs today are hard to predictI Classical TCP hijacking attack does not work anymoreI Cao, Qian, Wang, Dao, Krishnamurthy, Marvel, 2016: Obtain TCP

sequence numbers in Linux ≥ 3.6

I Exploit against implementation of RFC 5961I Idea of RFC 5961: protection against blind session terminationI Use “challenge ACK” packetsI Limit challenge ACKs per secondI Linux: use global counter for number of challenge ACKSI This creates a side channel between connections

I Results:I 10 seconds to infer whether any two hosts are communicatingI Another 10 seconds to infer TCP sequence numbers

I Details: http://www.cs.ucr.edu/~zhiyunq/pub/sec16_TCP_pure_offpath.pdf

Network Security – Security aspects of TCP/IP 19

Page 86: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP hijacking bites again

I ISNs today are hard to predictI Classical TCP hijacking attack does not work anymoreI Cao, Qian, Wang, Dao, Krishnamurthy, Marvel, 2016: Obtain TCP

sequence numbers in Linux ≥ 3.6

I Exploit against implementation of RFC 5961I Idea of RFC 5961: protection against blind session terminationI Use “challenge ACK” packetsI Limit challenge ACKs per secondI Linux: use global counter for number of challenge ACKSI This creates a side channel between connectionsI Results:

I 10 seconds to infer whether any two hosts are communicatingI Another 10 seconds to infer TCP sequence numbers

I Details: http://www.cs.ucr.edu/~zhiyunq/pub/sec16_TCP_pure_offpath.pdf

Network Security – Security aspects of TCP/IP 19

Page 87: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP hijacking bites again

I ISNs today are hard to predictI Classical TCP hijacking attack does not work anymoreI Cao, Qian, Wang, Dao, Krishnamurthy, Marvel, 2016: Obtain TCP

sequence numbers in Linux ≥ 3.6

I Exploit against implementation of RFC 5961I Idea of RFC 5961: protection against blind session terminationI Use “challenge ACK” packetsI Limit challenge ACKs per secondI Linux: use global counter for number of challenge ACKSI This creates a side channel between connectionsI Results:

I 10 seconds to infer whether any two hosts are communicatingI Another 10 seconds to infer TCP sequence numbers

I Details: http://www.cs.ucr.edu/~zhiyunq/pub/sec16_TCP_pure_offpath.pdf

Network Security – Security aspects of TCP/IP 19

Page 88: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Ports and Services

I TCP/IP communication first needs a server to open a portI “Speaking” to the service on the other side needs knowledge about

the higher-level protocol

I Some services announce what they are through a “banner”I Internet Assigned Numbers Authority (IANA) defines list of known

ports and servicesI Same port for UDP and TCP (but service is not necessarily listening

on both)I List in file /etc/servicesI It is of course not mandatory to use these ports, but it’s what clients

assume

Network Security – Security aspects of TCP/IP 20

Page 89: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Ports and Services

I TCP/IP communication first needs a server to open a portI “Speaking” to the service on the other side needs knowledge about

the higher-level protocolI Some services announce what they are through a “banner”

I Internet Assigned Numbers Authority (IANA) defines list of knownports and services

I Same port for UDP and TCP (but service is not necessarily listeningon both)

I List in file /etc/servicesI It is of course not mandatory to use these ports, but it’s what clients

assume

Network Security – Security aspects of TCP/IP 20

Page 90: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Ports and Services

I TCP/IP communication first needs a server to open a portI “Speaking” to the service on the other side needs knowledge about

the higher-level protocolI Some services announce what they are through a “banner”I Internet Assigned Numbers Authority (IANA) defines list of known

ports and servicesI Same port for UDP and TCP (but service is not necessarily listening

on both)I List in file /etc/servicesI It is of course not mandatory to use these ports, but it’s what clients

assume

Network Security – Security aspects of TCP/IP 20

Page 91: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Common services and their ports

TCP/UDP port Service21 File Transfer Protocol (FTP)22 Secure Shell (SSH)25 Simple Mail Transfer Protocol (SMTP)53 Domain Name Server80 Hypertext Transfer Protocol (HTTP)110 Post Office Protocol (POP3)143 Interim Mail Access Protocol (IMAP)443 HTTP over SSL/TLS (HTTPS)465 SMTP over SSL/TLS (SMTPS)993 IMAP over SSL/TLS (IMAPS)995 POP3 over SSL/TLS (POP3S)

Network Security – Security aspects of TCP/IP 21

Page 92: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

netstat

I Very important to know and understand: local listeningprograms/ports

I Various examples:I netstat -tl: All listening TCP portsI netstat -ul: All listening UDP portsI netstat -al: All listening ports (also UNIX ports)

I The --program option also shows which process opened theconnection

I Run as root to see all --program information

Network Security – Security aspects of TCP/IP 22

Page 93: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

telnet, netcat, and openssl

I Can use netcat to connect to any port:netcat www.google.com 80

I Alternative: telnet, for exampletelnet www.google.com 80

I Originally made to provide command-line interface to remote hostI Telnet server’s standard port is 23 (insecure and obsolete today)I Can also be used to connect to any other port, behaves much like

netcat (with small differences for line endings etc.)I netcat and telnet don’t work with SSL connectionsI Use OpenSSL’s s_client instead, e.g.:

openssl s_client -connect encrypted.google.com:443

Network Security – Security aspects of TCP/IP 23

Page 94: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

telnet, netcat, and openssl

I Can use netcat to connect to any port:netcat www.google.com 80

I Alternative: telnet, for exampletelnet www.google.com 80

I Originally made to provide command-line interface to remote hostI Telnet server’s standard port is 23 (insecure and obsolete today)I Can also be used to connect to any other port, behaves much like

netcat (with small differences for line endings etc.)

I netcat and telnet don’t work with SSL connectionsI Use OpenSSL’s s_client instead, e.g.:

openssl s_client -connect encrypted.google.com:443

Network Security – Security aspects of TCP/IP 23

Page 95: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

telnet, netcat, and openssl

I Can use netcat to connect to any port:netcat www.google.com 80

I Alternative: telnet, for exampletelnet www.google.com 80

I Originally made to provide command-line interface to remote hostI Telnet server’s standard port is 23 (insecure and obsolete today)I Can also be used to connect to any other port, behaves much like

netcat (with small differences for line endings etc.)I netcat and telnet don’t work with SSL connectionsI Use OpenSSL’s s_client instead, e.g.:

openssl s_client -connect encrypted.google.com:443

Network Security – Security aspects of TCP/IP 23

Page 96: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Port scanning – nmap

I Typical thing to first figure out about a remote, unknown computer:list of open ports

I Port scanning means “trying all ports”

I Widely used tool for port scans: nmapI A simple nmap arya will scan 1000 ports on aryaI Default scan method for non-privileged user: connect() scan:

I Use the OS’s connect() system call to connect to a remote portI connect() succeeds: port is openI connect() fails: port is closedI Immediately close connection after successful connect()I This scanning method does not need root privileges

I “Filtered” means that a firewall blocks access (more later in thislecture)

I Scan all ports (including high ports) through

nmap -p 1-65535 arya

Network Security – Security aspects of TCP/IP 24

Page 97: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Port scanning – nmap

I Typical thing to first figure out about a remote, unknown computer:list of open ports

I Port scanning means “trying all ports”I Widely used tool for port scans: nmapI A simple nmap arya will scan 1000 ports on arya

I Default scan method for non-privileged user: connect() scan:I Use the OS’s connect() system call to connect to a remote portI connect() succeeds: port is openI connect() fails: port is closedI Immediately close connection after successful connect()I This scanning method does not need root privileges

I “Filtered” means that a firewall blocks access (more later in thislecture)

I Scan all ports (including high ports) through

nmap -p 1-65535 arya

Network Security – Security aspects of TCP/IP 24

Page 98: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Port scanning – nmap

I Typical thing to first figure out about a remote, unknown computer:list of open ports

I Port scanning means “trying all ports”I Widely used tool for port scans: nmapI A simple nmap arya will scan 1000 ports on aryaI Default scan method for non-privileged user: connect() scan:

I Use the OS’s connect() system call to connect to a remote portI connect() succeeds: port is openI connect() fails: port is closedI Immediately close connection after successful connect()I This scanning method does not need root privileges

I “Filtered” means that a firewall blocks access (more later in thislecture)

I Scan all ports (including high ports) through

nmap -p 1-65535 arya

Network Security – Security aspects of TCP/IP 24

Page 99: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Port scanning – nmap

I Typical thing to first figure out about a remote, unknown computer:list of open ports

I Port scanning means “trying all ports”I Widely used tool for port scans: nmapI A simple nmap arya will scan 1000 ports on aryaI Default scan method for non-privileged user: connect() scan:

I Use the OS’s connect() system call to connect to a remote portI connect() succeeds: port is openI connect() fails: port is closedI Immediately close connection after successful connect()I This scanning method does not need root privileges

I “Filtered” means that a firewall blocks access (more later in thislecture)

I Scan all ports (including high ports) through

nmap -p 1-65535 arya

Network Security – Security aspects of TCP/IP 24

Page 100: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Port scanning – nmap

I Typical thing to first figure out about a remote, unknown computer:list of open ports

I Port scanning means “trying all ports”I Widely used tool for port scans: nmapI A simple nmap arya will scan 1000 ports on aryaI Default scan method for non-privileged user: connect() scan:

I Use the OS’s connect() system call to connect to a remote portI connect() succeeds: port is openI connect() fails: port is closedI Immediately close connection after successful connect()I This scanning method does not need root privileges

I “Filtered” means that a firewall blocks access (more later in thislecture)

I Scan all ports (including high ports) through

nmap -p 1-65535 arya

Network Security – Security aspects of TCP/IP 24

Page 101: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN, Null, FIN and Xmas scans

I connect() scans appear in the servers’ log filesI Sometimes a more “stealthy” scan is desiredI Only need a “distinguisher” between open and closed ports

Network Security – Security aspects of TCP/IP 25

Page 102: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN, Null, FIN and Xmas scans

SYN scanI Send SYN packetI Receiving SYN/ACK: port is openI Receiving RST: port is closedI Send an RST when receiving SYN/ACK to “hang up”I Connection is never completed (service does not log it)I Default in nmap with root privileges (or use -sS)

Network Security – Security aspects of TCP/IP 25

Page 103: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN, Null, FIN and Xmas scansNull, FIN, and Xmas scans

I RFC 793 states in Section 3.9:I “If the port state is CLOSED . . . An incoming segment not

containing a RST causes a RST to be sent in response.”

I “If the state is LISTEN . . . Any other control or text-bearingsegment (not containing SYN) must have an ACK and thus wouldbe discarded by the ACK processing. An incoming RST segmentcould not be valid, since it could not have been sent in response toanything sent by this incarnation of the connection. So you areunlikely to get here, but if you do, drop the segment, and return.”

I Any packet without SYN,ACK, or RST can serve as distinguisherI Null scan: no flags set (-sN)I FIN scan: FIN flag set (-sF)I Xmas scan: FIN,PSH, and URG flag set (-sX)I Problem: Not all operating systems behave according to RFC 793I For example, Windows will always send RST (making all ports look

closed)

Network Security – Security aspects of TCP/IP 25

Page 104: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN, Null, FIN and Xmas scansNull, FIN, and Xmas scans

I RFC 793 states in Section 3.9:I “If the port state is CLOSED . . . An incoming segment not

containing a RST causes a RST to be sent in response.”I “If the state is LISTEN . . . Any other control or text-bearing

segment (not containing SYN) must have an ACK and thus wouldbe discarded by the ACK processing. An incoming RST segmentcould not be valid, since it could not have been sent in response toanything sent by this incarnation of the connection. So you areunlikely to get here, but if you do, drop the segment, and return.”

I Any packet without SYN,ACK, or RST can serve as distinguisherI Null scan: no flags set (-sN)I FIN scan: FIN flag set (-sF)I Xmas scan: FIN,PSH, and URG flag set (-sX)I Problem: Not all operating systems behave according to RFC 793I For example, Windows will always send RST (making all ports look

closed)

Network Security – Security aspects of TCP/IP 25

Page 105: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN, Null, FIN and Xmas scansNull, FIN, and Xmas scans

I RFC 793 states in Section 3.9:I “If the port state is CLOSED . . . An incoming segment not

containing a RST causes a RST to be sent in response.”I “If the state is LISTEN . . . Any other control or text-bearing

segment (not containing SYN) must have an ACK and thus wouldbe discarded by the ACK processing. An incoming RST segmentcould not be valid, since it could not have been sent in response toanything sent by this incarnation of the connection. So you areunlikely to get here, but if you do, drop the segment, and return.”

I Any packet without SYN,ACK, or RST can serve as distinguisherI Null scan: no flags set (-sN)I FIN scan: FIN flag set (-sF)I Xmas scan: FIN,PSH, and URG flag set (-sX)

I Problem: Not all operating systems behave according to RFC 793I For example, Windows will always send RST (making all ports look

closed)

Network Security – Security aspects of TCP/IP 25

Page 106: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

SYN, Null, FIN and Xmas scansNull, FIN, and Xmas scans

I RFC 793 states in Section 3.9:I “If the port state is CLOSED . . . An incoming segment not

containing a RST causes a RST to be sent in response.”I “If the state is LISTEN . . . Any other control or text-bearing

segment (not containing SYN) must have an ACK and thus wouldbe discarded by the ACK processing. An incoming RST segmentcould not be valid, since it could not have been sent in response toanything sent by this incarnation of the connection. So you areunlikely to get here, but if you do, drop the segment, and return.”

I Any packet without SYN,ACK, or RST can serve as distinguisherI Null scan: no flags set (-sN)I FIN scan: FIN flag set (-sF)I Xmas scan: FIN,PSH, and URG flag set (-sX)I Problem: Not all operating systems behave according to RFC 793I For example, Windows will always send RST (making all ports look

closed)Network Security – Security aspects of TCP/IP 25

Page 107: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Idle scansI With TCP SYN and FIN scans there is still bidirectional

communication between scanning and scanned hostI More “stealthy”: idle scan using a zombie host

I Idle scans use the following features:I A SYN will be answered by SYN/ACK (open) or RST (closed)I An unsolicited SYN/ACK is answered by RSTI An unsolicited RST is dropped

I IP packets contain the fragment identification number (IPID)I Many OS increase the IPID by one for every packet sent

I A zombie host is an idle machine on the networkI Idle scan proceeds as follows:

I Probe the zombie’s IPID and record it, let’s say IPID= XI Forge SYN packet from the zombie to the target host and portI Probe the zombie’s IPID again, let say IPID= YI Y = X + 1: port is closedI Y = X + 2: port is open

I Can use, for example, a printer as zombieI Idle scan with nmap: nmap -sI zombie

Network Security – Security aspects of TCP/IP 26

Page 108: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Idle scansI With TCP SYN and FIN scans there is still bidirectional

communication between scanning and scanned hostI More “stealthy”: idle scan using a zombie hostI Idle scans use the following features:

I A SYN will be answered by SYN/ACK (open) or RST (closed)I An unsolicited SYN/ACK is answered by RSTI An unsolicited RST is dropped

I IP packets contain the fragment identification number (IPID)I Many OS increase the IPID by one for every packet sent

I A zombie host is an idle machine on the networkI Idle scan proceeds as follows:

I Probe the zombie’s IPID and record it, let’s say IPID= XI Forge SYN packet from the zombie to the target host and portI Probe the zombie’s IPID again, let say IPID= YI Y = X + 1: port is closedI Y = X + 2: port is open

I Can use, for example, a printer as zombieI Idle scan with nmap: nmap -sI zombie

Network Security – Security aspects of TCP/IP 26

Page 109: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Idle scansI With TCP SYN and FIN scans there is still bidirectional

communication between scanning and scanned hostI More “stealthy”: idle scan using a zombie hostI Idle scans use the following features:

I A SYN will be answered by SYN/ACK (open) or RST (closed)I An unsolicited SYN/ACK is answered by RSTI An unsolicited RST is droppedI IP packets contain the fragment identification number (IPID)I Many OS increase the IPID by one for every packet sent

I A zombie host is an idle machine on the networkI Idle scan proceeds as follows:

I Probe the zombie’s IPID and record it, let’s say IPID= XI Forge SYN packet from the zombie to the target host and portI Probe the zombie’s IPID again, let say IPID= YI Y = X + 1: port is closedI Y = X + 2: port is open

I Can use, for example, a printer as zombieI Idle scan with nmap: nmap -sI zombie

Network Security – Security aspects of TCP/IP 26

Page 110: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Idle scansI With TCP SYN and FIN scans there is still bidirectional

communication between scanning and scanned hostI More “stealthy”: idle scan using a zombie hostI Idle scans use the following features:

I A SYN will be answered by SYN/ACK (open) or RST (closed)I An unsolicited SYN/ACK is answered by RSTI An unsolicited RST is droppedI IP packets contain the fragment identification number (IPID)I Many OS increase the IPID by one for every packet sent

I A zombie host is an idle machine on the networkI Idle scan proceeds as follows:

I Probe the zombie’s IPID and record it, let’s say IPID= XI Forge SYN packet from the zombie to the target host and portI Probe the zombie’s IPID again, let say IPID= YI Y = X + 1: port is closedI Y = X + 2: port is open

I Can use, for example, a printer as zombieI Idle scan with nmap: nmap -sI zombie

Network Security – Security aspects of TCP/IP 26

Page 111: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Idle scansI With TCP SYN and FIN scans there is still bidirectional

communication between scanning and scanned hostI More “stealthy”: idle scan using a zombie hostI Idle scans use the following features:

I A SYN will be answered by SYN/ACK (open) or RST (closed)I An unsolicited SYN/ACK is answered by RSTI An unsolicited RST is droppedI IP packets contain the fragment identification number (IPID)I Many OS increase the IPID by one for every packet sent

I A zombie host is an idle machine on the networkI Idle scan proceeds as follows:

I Probe the zombie’s IPID and record it, let’s say IPID= XI Forge SYN packet from the zombie to the target host and portI Probe the zombie’s IPID again, let say IPID= YI Y = X + 1: port is closedI Y = X + 2: port is open

I Can use, for example, a printer as zombie

I Idle scan with nmap: nmap -sI zombie

Network Security – Security aspects of TCP/IP 26

Page 112: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Idle scansI With TCP SYN and FIN scans there is still bidirectional

communication between scanning and scanned hostI More “stealthy”: idle scan using a zombie hostI Idle scans use the following features:

I A SYN will be answered by SYN/ACK (open) or RST (closed)I An unsolicited SYN/ACK is answered by RSTI An unsolicited RST is droppedI IP packets contain the fragment identification number (IPID)I Many OS increase the IPID by one for every packet sent

I A zombie host is an idle machine on the networkI Idle scan proceeds as follows:

I Probe the zombie’s IPID and record it, let’s say IPID= XI Forge SYN packet from the zombie to the target host and portI Probe the zombie’s IPID again, let say IPID= YI Y = X + 1: port is closedI Y = X + 2: port is open

I Can use, for example, a printer as zombieI Idle scan with nmap: nmap -sI zombie

Network Security – Security aspects of TCP/IP 26

Page 113: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How about UDP?

I UDP is stateless, how do you scan UDP ports?

I First option: Use ICMP port unreachable:I No response means: port is open (or filtered)I ICMP port unreachable means: port is closed

I Problem: rate limitation for ICMP port unreachableI Second option: Use specific services, for example:

I DNS uses UDP on port 53I Send DNS request to UDP port 53I Getting a DNS reply back means that there is a DNS server

I UDP scans in nmap: nmap -sU

Network Security – Security aspects of TCP/IP 27

Page 114: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How about UDP?

I UDP is stateless, how do you scan UDP ports?I First option: Use ICMP port unreachable:

I No response means: port is open (or filtered)I ICMP port unreachable means: port is closed

I Problem: rate limitation for ICMP port unreachableI Second option: Use specific services, for example:

I DNS uses UDP on port 53I Send DNS request to UDP port 53I Getting a DNS reply back means that there is a DNS server

I UDP scans in nmap: nmap -sU

Network Security – Security aspects of TCP/IP 27

Page 115: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How about UDP?

I UDP is stateless, how do you scan UDP ports?I First option: Use ICMP port unreachable:

I No response means: port is open (or filtered)I ICMP port unreachable means: port is closed

I Problem: rate limitation for ICMP port unreachable

I Second option: Use specific services, for example:I DNS uses UDP on port 53I Send DNS request to UDP port 53I Getting a DNS reply back means that there is a DNS server

I UDP scans in nmap: nmap -sU

Network Security – Security aspects of TCP/IP 27

Page 116: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How about UDP?

I UDP is stateless, how do you scan UDP ports?I First option: Use ICMP port unreachable:

I No response means: port is open (or filtered)I ICMP port unreachable means: port is closed

I Problem: rate limitation for ICMP port unreachableI Second option: Use specific services, for example:

I DNS uses UDP on port 53I Send DNS request to UDP port 53I Getting a DNS reply back means that there is a DNS server

I UDP scans in nmap: nmap -sU

Network Security – Security aspects of TCP/IP 27

Page 117: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

How about UDP?

I UDP is stateless, how do you scan UDP ports?I First option: Use ICMP port unreachable:

I No response means: port is open (or filtered)I ICMP port unreachable means: port is closed

I Problem: rate limitation for ICMP port unreachableI Second option: Use specific services, for example:

I DNS uses UDP on port 53I Send DNS request to UDP port 53I Getting a DNS reply back means that there is a DNS server

I UDP scans in nmap: nmap -sU

Network Security – Security aspects of TCP/IP 27

Page 118: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

OS fingerprinting

I Important information about target host/network: OSI TCP/IP leaves details of various parameters to the implementationI Different operating systems use different parametersI Investigating those parameters gives information about OSI TCP/IP fingerprinting with nmap: nmap -O

I Another way to detect OS: “talk” to open portsI Many services reveal details (e.g., banner information)I Knowing that Microsoft IIS runs on port 80 say a lot about the OSI Run nmap -sV for version detectionI Convenient shortcut: nmap -A (-O -sV -sC --traceroute)

Network Security – Security aspects of TCP/IP 28

Page 119: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

OS fingerprinting

I Important information about target host/network: OSI TCP/IP leaves details of various parameters to the implementationI Different operating systems use different parametersI Investigating those parameters gives information about OSI TCP/IP fingerprinting with nmap: nmap -OI Another way to detect OS: “talk” to open portsI Many services reveal details (e.g., banner information)I Knowing that Microsoft IIS runs on port 80 say a lot about the OSI Run nmap -sV for version detection

I Convenient shortcut: nmap -A (-O -sV -sC --traceroute)

Network Security – Security aspects of TCP/IP 28

Page 120: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

OS fingerprinting

I Important information about target host/network: OSI TCP/IP leaves details of various parameters to the implementationI Different operating systems use different parametersI Investigating those parameters gives information about OSI TCP/IP fingerprinting with nmap: nmap -OI Another way to detect OS: “talk” to open portsI Many services reveal details (e.g., banner information)I Knowing that Microsoft IIS runs on port 80 say a lot about the OSI Run nmap -sV for version detectionI Convenient shortcut: nmap -A (-O -sV -sC --traceroute)

Network Security – Security aspects of TCP/IP 28

Page 121: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Portscans – attack or not?Port scans: no attack

I You only look for offered servicesI If you don’t want a service to be found, don’t offer that serviceI Port scans are important tools for administrators to verify security

policiesI Blocking port-scans through firewalls can easily break other

functionality

Port scans – (part of) an attack

I Why would I want to reveal more about my system than I have to?I Port scans are a typical first step of an attackI “If I want you to know about an open service, I’ll tell you”I nmap manpage gives a few hints. . . :

peter@tyrion: $ man nmap | grep -o attack | wc -l18

Network Security – Security aspects of TCP/IP 29

Page 122: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Portscans – attack or not?Port scans: no attack

I You only look for offered servicesI If you don’t want a service to be found, don’t offer that serviceI Port scans are important tools for administrators to verify security

policiesI Blocking port-scans through firewalls can easily break other

functionality

Port scans – (part of) an attack

I Why would I want to reveal more about my system than I have to?I Port scans are a typical first step of an attackI “If I want you to know about an open service, I’ll tell you”I nmap manpage gives a few hints. . . :

peter@tyrion: $ man nmap | grep -o attack | wc -l18

Network Security – Security aspects of TCP/IP 29

Page 123: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

NSA/GCHQ Project Hacienda

I August 2014: Leak about the NSA/GCHQ Hacienda program

I Port scan entire nations (27 completed, 5 partially completed) usingnmap

I Port scanning (reconnaissance) first step of a 4-step process:

I ReconnaissanceI InfectionI Command and ControlI Exfiltration

I Automate the process of analyzing nmap data (project OLYMPIA)I Take control over vulnerable hosts and turn them into Operational

Relay Boxes (ORBs)I For more details, see

http://www.heise.de/ct/artikel/NSA-GCHQ-The-HACIENDA-Program-for-Internet-Colonization-2292681.html

Network Security – Security aspects of TCP/IP 30

Page 124: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

NSA/GCHQ Project Hacienda

I August 2014: Leak about the NSA/GCHQ Hacienda programI Port scan entire nations (27 completed, 5 partially completed) using

nmap

I Port scanning (reconnaissance) first step of a 4-step process:

I ReconnaissanceI InfectionI Command and ControlI Exfiltration

I Automate the process of analyzing nmap data (project OLYMPIA)I Take control over vulnerable hosts and turn them into Operational

Relay Boxes (ORBs)I For more details, see

http://www.heise.de/ct/artikel/NSA-GCHQ-The-HACIENDA-Program-for-Internet-Colonization-2292681.html

Network Security – Security aspects of TCP/IP 30

Page 125: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

NSA/GCHQ Project Hacienda

I August 2014: Leak about the NSA/GCHQ Hacienda programI Port scan entire nations (27 completed, 5 partially completed) using

nmapI Port scanning (reconnaissance) first step of a 4-step process:

I ReconnaissanceI InfectionI Command and ControlI Exfiltration

I Automate the process of analyzing nmap data (project OLYMPIA)I Take control over vulnerable hosts and turn them into Operational

Relay Boxes (ORBs)I For more details, see

http://www.heise.de/ct/artikel/NSA-GCHQ-The-HACIENDA-Program-for-Internet-Colonization-2292681.html

Network Security – Security aspects of TCP/IP 30

Page 126: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

NSA/GCHQ Project Hacienda

I August 2014: Leak about the NSA/GCHQ Hacienda programI Port scan entire nations (27 completed, 5 partially completed) using

nmapI Port scanning (reconnaissance) first step of a 4-step process:

I Reconnaissance

I InfectionI Command and ControlI Exfiltration

I Automate the process of analyzing nmap data (project OLYMPIA)I Take control over vulnerable hosts and turn them into Operational

Relay Boxes (ORBs)I For more details, see

http://www.heise.de/ct/artikel/NSA-GCHQ-The-HACIENDA-Program-for-Internet-Colonization-2292681.html

Network Security – Security aspects of TCP/IP 30

Page 127: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

NSA/GCHQ Project Hacienda

I August 2014: Leak about the NSA/GCHQ Hacienda programI Port scan entire nations (27 completed, 5 partially completed) using

nmapI Port scanning (reconnaissance) first step of a 4-step process:

I ReconnaissanceI InfectionI Command and ControlI Exfiltration

I Automate the process of analyzing nmap data (project OLYMPIA)I Take control over vulnerable hosts and turn them into Operational

Relay Boxes (ORBs)I For more details, see

http://www.heise.de/ct/artikel/NSA-GCHQ-The-HACIENDA-Program-for-Internet-Colonization-2292681.html

Network Security – Security aspects of TCP/IP 30

Page 128: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

NSA/GCHQ Project Hacienda

I August 2014: Leak about the NSA/GCHQ Hacienda programI Port scan entire nations (27 completed, 5 partially completed) using

nmapI Port scanning (reconnaissance) first step of a 4-step process:

I ReconnaissanceI InfectionI Command and ControlI Exfiltration

I Automate the process of analyzing nmap data (project OLYMPIA)

I Take control over vulnerable hosts and turn them into OperationalRelay Boxes (ORBs)

I For more details, seehttp://www.heise.de/ct/artikel/NSA-GCHQ-The-HACIENDA-Program-for-Internet-Colonization-2292681.html

Network Security – Security aspects of TCP/IP 30

Page 129: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

NSA/GCHQ Project Hacienda

I August 2014: Leak about the NSA/GCHQ Hacienda programI Port scan entire nations (27 completed, 5 partially completed) using

nmapI Port scanning (reconnaissance) first step of a 4-step process:

I ReconnaissanceI InfectionI Command and ControlI Exfiltration

I Automate the process of analyzing nmap data (project OLYMPIA)I Take control over vulnerable hosts and turn them into Operational

Relay Boxes (ORBs)

I For more details, seehttp://www.heise.de/ct/artikel/NSA-GCHQ-The-HACIENDA-Program-for-Internet-Colonization-2292681.html

Network Security – Security aspects of TCP/IP 30

Page 130: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

NSA/GCHQ Project Hacienda

I August 2014: Leak about the NSA/GCHQ Hacienda programI Port scan entire nations (27 completed, 5 partially completed) using

nmapI Port scanning (reconnaissance) first step of a 4-step process:

I ReconnaissanceI InfectionI Command and ControlI Exfiltration

I Automate the process of analyzing nmap data (project OLYMPIA)I Take control over vulnerable hosts and turn them into Operational

Relay Boxes (ORBs)I For more details, see

http://www.heise.de/ct/artikel/NSA-GCHQ-The-HACIENDA-Program-for-Internet-Colonization-2292681.html

Network Security – Security aspects of TCP/IP 30

Page 131: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Efficient port scanning

I By the way, if you’re going to scan the entire internet...

On a typical desktop computer with a gigabit Ethernet connection, ZMapis capable scanning the entire public IPv4 address space in under 45minutes. With a 10gigE connection and PF_RING, ZMap can scan theIPv4 address space in under 5 minutes.”

—https://github.com/zmap/zmap / https://zmap.ioI But we’re not responsible if you do.

Network Security – Security aspects of TCP/IP 31

Page 132: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Efficient port scanning

I By the way, if you’re going to scan the entire internet...

On a typical desktop computer with a gigabit Ethernet connection, ZMapis capable scanning the entire public IPv4 address space in under 45minutes. With a 10gigE connection and PF_RING, ZMap can scan theIPv4 address space in under 5 minutes.”

—https://github.com/zmap/zmap / https://zmap.io

I But we’re not responsible if you do.

Network Security – Security aspects of TCP/IP 31

Page 133: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Efficient port scanning

I By the way, if you’re going to scan the entire internet...

On a typical desktop computer with a gigabit Ethernet connection, ZMapis capable scanning the entire public IPv4 address space in under 45minutes. With a 10gigE connection and PF_RING, ZMap can scan theIPv4 address space in under 5 minutes.”

—https://github.com/zmap/zmap / https://zmap.ioI But we’re not responsible if you do.

Network Security – Security aspects of TCP/IP 31

Page 134: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Portknocking

I Some services are meant to be public, e.g., HTTP(S), SMTP(S)I Other services are (often) only meant for one or very few users, e.g.,

SSHI Can run those service on non-standard ports (e.g., 51966): security

by obscurity

I Idea: “Hide” those services, only open them for intended userI Wait for certain packets to arrive, then open port (or firewall rule)I This concept is called port knockingI Sequence of special packets is called knocking sequenceI Simple example:

I Send UDP packets to ports 42, 53, 4000, 666 from IP 1.2.3.4I This opens port 22 (SSH) for connections from IP 1.2.3.4

I Port scanners won’t see port 22 as openI Can still use SSH from anywhere (if you know the knocking

sequence)

Network Security – Security aspects of TCP/IP 32

Page 135: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Portknocking

I Some services are meant to be public, e.g., HTTP(S), SMTP(S)I Other services are (often) only meant for one or very few users, e.g.,

SSHI Can run those service on non-standard ports (e.g., 51966): security

by obscurityI Idea: “Hide” those services, only open them for intended user

I Wait for certain packets to arrive, then open port (or firewall rule)I This concept is called port knockingI Sequence of special packets is called knocking sequenceI Simple example:

I Send UDP packets to ports 42, 53, 4000, 666 from IP 1.2.3.4I This opens port 22 (SSH) for connections from IP 1.2.3.4

I Port scanners won’t see port 22 as openI Can still use SSH from anywhere (if you know the knocking

sequence)

Network Security – Security aspects of TCP/IP 32

Page 136: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Portknocking

I Some services are meant to be public, e.g., HTTP(S), SMTP(S)I Other services are (often) only meant for one or very few users, e.g.,

SSHI Can run those service on non-standard ports (e.g., 51966): security

by obscurityI Idea: “Hide” those services, only open them for intended userI Wait for certain packets to arrive, then open port (or firewall rule)I This concept is called port knockingI Sequence of special packets is called knocking sequence

I Simple example:I Send UDP packets to ports 42, 53, 4000, 666 from IP 1.2.3.4I This opens port 22 (SSH) for connections from IP 1.2.3.4

I Port scanners won’t see port 22 as openI Can still use SSH from anywhere (if you know the knocking

sequence)

Network Security – Security aspects of TCP/IP 32

Page 137: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Portknocking

I Some services are meant to be public, e.g., HTTP(S), SMTP(S)I Other services are (often) only meant for one or very few users, e.g.,

SSHI Can run those service on non-standard ports (e.g., 51966): security

by obscurityI Idea: “Hide” those services, only open them for intended userI Wait for certain packets to arrive, then open port (or firewall rule)I This concept is called port knockingI Sequence of special packets is called knocking sequenceI Simple example:

I Send UDP packets to ports 42, 53, 4000, 666 from IP 1.2.3.4I This opens port 22 (SSH) for connections from IP 1.2.3.4

I Port scanners won’t see port 22 as openI Can still use SSH from anywhere (if you know the knocking

sequence)

Network Security – Security aspects of TCP/IP 32

Page 138: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

Portknocking

I Some services are meant to be public, e.g., HTTP(S), SMTP(S)I Other services are (often) only meant for one or very few users, e.g.,

SSHI Can run those service on non-standard ports (e.g., 51966): security

by obscurityI Idea: “Hide” those services, only open them for intended userI Wait for certain packets to arrive, then open port (or firewall rule)I This concept is called port knockingI Sequence of special packets is called knocking sequenceI Simple example:

I Send UDP packets to ports 42, 53, 4000, 666 from IP 1.2.3.4I This opens port 22 (SSH) for connections from IP 1.2.3.4

I Port scanners won’t see port 22 as openI Can still use SSH from anywhere (if you know the knocking

sequence)

Network Security – Security aspects of TCP/IP 32

Page 139: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

More portknocking

I Various ways to implement port knocking:I Kernel space vs. user spaceI TCP vs. UDPI Inspecting every packet with libpcap vs. lightweight methods (e.g.,

logfiles)I Multi-packet vs. single-packet (Single Packet Authorization (SPA))I Protection against replay attacksI Cryptographic protection and authentication

I Nice summary of the reason for port knocking: “Because you arerunning network services with security vulnerabilities in them. Again,you are running network services with security vulnerabilities inthem. If you’re running a server, this is almost universally true.Most software is complex. It changes rapidly, and innovation tendsto make it more complex. It is going to be, forever, hopelessly,insecure.” —Moxie Marlinspike

Network Security – Security aspects of TCP/IP 33

Page 140: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

More portknocking

I Various ways to implement port knocking:I Kernel space vs. user spaceI TCP vs. UDPI Inspecting every packet with libpcap vs. lightweight methods (e.g.,

logfiles)I Multi-packet vs. single-packet (Single Packet Authorization (SPA))I Protection against replay attacksI Cryptographic protection and authentication

I Nice summary of the reason for port knocking: “Because you arerunning network services with security vulnerabilities in them. Again,you are running network services with security vulnerabilities inthem. If you’re running a server, this is almost universally true.Most software is complex. It changes rapidly, and innovation tendsto make it more complex. It is going to be, forever, hopelessly,insecure.” —Moxie Marlinspike

Network Security – Security aspects of TCP/IP 33

Page 141: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP Stealth

I Recent proposal by Kirsch and Grothoff (August 2014): TCP StealthI No additional packets for port knockingI Idea: Include authentication in client’s ISN

I TCP traffic indistiguishable from “normal” traffic for passive attackerI Relatively low cryptographic security (232)I Integrity protection of first TCP segmentI Idea: if this segment contains public-key material, shut out a MitMI Compatible with SYN cookiesI Implemented for Linux kernelI Submitted as an IETF draft: https://datatracker.ietf.org/

doc/draft-kirsch-ietf-tcp-stealth/I For more details, see https://gnunet.org/kirsch2014knock

Network Security – Security aspects of TCP/IP 34

Page 142: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP Stealth

I Recent proposal by Kirsch and Grothoff (August 2014): TCP StealthI No additional packets for port knockingI Idea: Include authentication in client’s ISNI TCP traffic indistiguishable from “normal” traffic for passive attackerI Relatively low cryptographic security (232)

I Integrity protection of first TCP segmentI Idea: if this segment contains public-key material, shut out a MitMI Compatible with SYN cookiesI Implemented for Linux kernelI Submitted as an IETF draft: https://datatracker.ietf.org/

doc/draft-kirsch-ietf-tcp-stealth/I For more details, see https://gnunet.org/kirsch2014knock

Network Security – Security aspects of TCP/IP 34

Page 143: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP Stealth

I Recent proposal by Kirsch and Grothoff (August 2014): TCP StealthI No additional packets for port knockingI Idea: Include authentication in client’s ISNI TCP traffic indistiguishable from “normal” traffic for passive attackerI Relatively low cryptographic security (232)I Integrity protection of first TCP segmentI Idea: if this segment contains public-key material, shut out a MitM

I Compatible with SYN cookiesI Implemented for Linux kernelI Submitted as an IETF draft: https://datatracker.ietf.org/

doc/draft-kirsch-ietf-tcp-stealth/I For more details, see https://gnunet.org/kirsch2014knock

Network Security – Security aspects of TCP/IP 34

Page 144: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP Stealth

I Recent proposal by Kirsch and Grothoff (August 2014): TCP StealthI No additional packets for port knockingI Idea: Include authentication in client’s ISNI TCP traffic indistiguishable from “normal” traffic for passive attackerI Relatively low cryptographic security (232)I Integrity protection of first TCP segmentI Idea: if this segment contains public-key material, shut out a MitMI Compatible with SYN cookies

I Implemented for Linux kernelI Submitted as an IETF draft: https://datatracker.ietf.org/

doc/draft-kirsch-ietf-tcp-stealth/I For more details, see https://gnunet.org/kirsch2014knock

Network Security – Security aspects of TCP/IP 34

Page 145: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP Stealth

I Recent proposal by Kirsch and Grothoff (August 2014): TCP StealthI No additional packets for port knockingI Idea: Include authentication in client’s ISNI TCP traffic indistiguishable from “normal” traffic for passive attackerI Relatively low cryptographic security (232)I Integrity protection of first TCP segmentI Idea: if this segment contains public-key material, shut out a MitMI Compatible with SYN cookiesI Implemented for Linux kernelI Submitted as an IETF draft: https://datatracker.ietf.org/

doc/draft-kirsch-ietf-tcp-stealth/

I For more details, see https://gnunet.org/kirsch2014knock

Network Security – Security aspects of TCP/IP 34

Page 146: NetworkSecurity · Ashortrecap I Withinthesamesubnet,it’sfairlyeasytosnifftraffic I Hubsdistributedatatoeveryone(butarelargelyobsolete) I UseARPcachepoisoningonswitchedEthernet

TCP Stealth

I Recent proposal by Kirsch and Grothoff (August 2014): TCP StealthI No additional packets for port knockingI Idea: Include authentication in client’s ISNI TCP traffic indistiguishable from “normal” traffic for passive attackerI Relatively low cryptographic security (232)I Integrity protection of first TCP segmentI Idea: if this segment contains public-key material, shut out a MitMI Compatible with SYN cookiesI Implemented for Linux kernelI Submitted as an IETF draft: https://datatracker.ietf.org/

doc/draft-kirsch-ietf-tcp-stealth/I For more details, see https://gnunet.org/kirsch2014knock

Network Security – Security aspects of TCP/IP 34