10 firewalls

Download Report

Transcript 10 firewalls

Network Security:
Firewalls
Tuomas Aura
T-110.5241 Network security
Aalto University, Nov-Dec 2013
Firewalls:
Stateless packet filter
2
Firewall
Perimeter defence:
Divide the world into the good/safe inside (intranet) and
bad/dangerous outside (Internet)
Prevent anything bad from entering the inside
Block communication that is evil, risky or just
unnecessary
Intranet
1.2.3.0/24
Internet
3
IPv4 and TCP headers
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
IPv4 Header
20 bytes
IHL
Type of Service
Total Length
Identification
Flags
Fragment Offset
Time to Live
Protocol
Header Checksum
Source Address
Destination Address
Source Port
Destination Port
Sequence Number
Acknowledgment Number
Reserved
Flags
Window
Checksum
Urgent Pointer
20 bytes
TCP Header
Version
Data
(TCP flags: CWR ECE URG ACK PSH RST SYN)
Which field should a firewall use for filtering?
4
Stateless packet filter
Allow or block IP packets based on their IP header fields
and TCP/UDP port numbers
Fields with static locations in most IP packets: protocol
(TCP/UDP/ICMP), source and destination IP address, source and
destination port, TCP flags, ICMP type and code
Packet filter is defined as a rule table
Linear list of rules
Each rule consist of conditions and an action
For each packet, the first matching rule is found
Two possible actions:
allow (=accept, permit, bypass) or block (=drop, deny, discard),
maybe also allow and log or block and log
5
Packet filter example (1)
Example rule table: inbound email to our SMTP server 1.2.3.10
Protocol
Src IP
Src port
Dst IP
Dst port
Action
Comment
TCP
4.5.6.7
*
1.2.3.10
25
Block
Stop this spammer
TCP
*
*
1.2.3.10
25
Allow
Inbound SMTP
TCP
1.2.3.10
25
*
*
Allow
SMTP responses
*
*
*
*
*
Block
Default rule
Note: The examples in this lecture are an abstraction and don’t
directly correspond to the way real firewalls are configured
6
Packet filter example (2)
Allow web access from our subnet… not quite right!
Protocol
Src IP
Src port
Dst IP
Dst port
Action
Comment
TCP
1.2.3.0/24
*
*
80
Allow
Outbound HTTP requests
TCP
*
80
1.2.3.0/24
*
Allow
HTTP responses
*
*
*
*
*
Block
Default rule
Slightly more restrictive but not perfect:
Protocol
Src IP
Src port
Dst IP
Dst port
Action
Comment
TCP
1.2.3.0/24
≥1024
*
80
Allow
Outbound HTTP requests
TCP
*
80
1.2.3.0/24
≥1024
Allow
HTTP responses
*
*
*
*
*
Block
Default rule
7
Packet filter example (3)
Allow only outbound connections:
Protocol
Src IP
Src port
Dst IP
Dst port
TCP
1.2.3.0/24
*
*
80
TCP
*
80
1.2.3.0/24
*
*
*
*
*
*
Flags
ACK
Action
Comment
Allow
Outbound HTTP requests
Allow
HTTP responses
Block
Default rule
All TCP packets, except the first SYN packet, have ACK flag set
 stateless way to prevent inbound connections
8
Packet filter example (3)
University lab network 1.2.3.0/24 (address 1.2.3.0, netmask 255.255.255.0)
HTTP/Mail/DNS server 1.2.3.10
Protocol
Src IP
Src port
Dst IP
Dst port
UDP
*
*
*
UDP
*
53
TCP
5.4.3.2
TCP
Flags
Action
Comment
53
Allow
DNS queries in and out
*
*
Allow
DNS responses
*
1.2.3.10
53
Allow
DNS zone transfer
*
*
1.2.3.10
25
Allow
Inbound SMTP
TCP
*
*
1.2.3.10
80
Allow
Inbound HTTP
TCP
1.2.3.121
*
*
*
Block
Bob’s test machine
TCP
*
*
1.2.3.121
*
Block
Bob’s test machine
TCP
*
*
1.2.3.0/24
22
Allow
Inbound SSH
TCP
1.2.3.0/24
*
*
*
Allow
All outbound TCP
TCP
*
*
1.2.3.4/24
*
Allow
All TCP responses
*
*
*
*
*
Block
Default rule
ACK
Is this correct? Could we limit inbound DNS queries to the server?
9
Router as packet filter
Firewall rule table is similar to a routing table, with
the option of dropping some packets
Most routers can be used as a packet filter
Choice of filters may affect router throughput
interface1
1.2.3.1
Intranet
1.2.3.0/24
interface2
5.6.7.8
Internet
10
10
Anti-spoofing filter example
Filter based on input interface (only part of the policy shown):
Input interface
Protocol
Src IP
Port
Dst IP
Port
2
*
1.2.3.0/24
*
*
2
*
5.6.7.8
*
1
*
1.2.3.1
1
*
1
*
Action
Comment
*
Block
Ingress filter
*
*
Block
Router address
*
*
*
Block
Router address
1.2.3.0/24
*
*
*
Allow
Egress filter
*
*
*
*
Block
Default rule (If1)
…
Flags
…
interface1
1.2.3.1
Intranet
1.2.3.0/24
interface2
5.6.7.8
Internet
12
Dynamic packet filter
Dynamic firewall
Stateful filter: change filtering rules based on
previously seen packets
Outbound TCP or UDP packet creates a pinhole for
inbound packets of the same connection
Unlike stateless packet filter, can support UDP connections
TCP pinhole closed with connection, UDP after eg. 30 min
May also allow inbound ICMP messages that match
outbound traffic
Support for special protocols:
FTP: firewall may sniff PORT command in FTP to open port
for the inbound connections
X Windows: user workstation is the X server
14
Typical network topology
Services accessible from the Internet are isolated to a
demilitarized zone (DMZ), i.e. in a separate subnetwork
Public server
(web, email, DNS)
Note: This topology
is becoming less
common as the
servers move to the
cloud.
1.2.4.10
interface3
1.2.4.1
Intranet
1.2.3.0/24
Internet
interface1
1.2.3.1
interface2
5.6.7.8
15
15
15
Input Prot
Src IP
Port
Dst IP
Port
Other
Action
Comment
2
*
1.2.3.0/24
*
*
*
Block
Anti-spoofing
3
*
1.2.3.0/24
*
*
*
Block
Anti-spoofing
2
*
1.2.4.0/24
*
*
*
Block
Anti-spoofing
1
*
*
*
*
Block
Anti-spoofing
*
*
*
Block
Anti-spoofing (router addr)
2
1.2.4.0/24
* {1.2.3.1,1.2.4.1,
5.6.7.8}
TCP
*
*
1.2.4.10
80
Allow
Access to server (HTTP)
2
TCP
*
*
1.2.4.10
443
Allow
Access to server (HTTPS)
2
TCP
*
*
1.2.4.10
25
Allow
Access to server (SMTP)
2
UDP
*
*
1.2.4.10
53
Allow
DNS query in and out
3
UDP
1.2.4.10
*
*
53
DNS query in and out
1
TCP
1.2.3.0/24
*
1.2.4.10
*
3
TCP
1.2.4.10
*
1.2.3.0/24
*
1
UDP
1.2.3.0/24
≥1024
1.2.4.10
53
3
UDP
1.2.4.10
53
1.2.3.0/24
Allow
Allow,
create state
Allow
Allow,
create state
Allow
1
*
1.2.3.0/24
*
1.2.4.0/24
*
Block
Unnecessary traffic with DMZ
3
*
1.2.4.0/24
*
1.2.3.0/24
*
Unnecessary traffic with DMZ
1
*
1.2.3.0/24
*
*
*
2
*
*
*
*
1
TCP
80
80
*
{1.2.3.1,1.2.4.1,
5.6.7.8}
1.2.3.0/24
Block
Allow,
create state
Allow
Allow,
create state
Allow
*
*
*
*
*
1.2.3.0/24
TCP {1.2.3.1,1.2.4.1,
5.6.7.8}
*
*
*
State
≥1024 State
*
State
State
Block
Server access from intranet
Responses
DNS query
DNS response
Outbound to Internet
Responses from Internet
Router management
Router management
Default rule
16
NAT
IPv4 addresses are in short supply
Network address translator (NAT) is a mechanisms for
sharing one IPv4 address between multiple hosts
Hosts behind NAT can only act as TCP or UDP clients
src=192.168.1.101
src port = 3344
...
Gateway
Router /
NAT
192.168.1.101
192.168.1.1
src=157.58.56.78
src port = 4567
...
157.58.56.78
Internet
192.168.1.102
192.168.1.103
Internal addr
Port
192.168.1.101
3344 157.58.56.78
4567
…
…
…
Internal IP addresses
External addr
157.58.56.78
Port
Internet addresses
18
NAT
IPv4 addresses are in short supply
Native address translator (NAT) is a mechanisms for sharing
one IPv4 address between multiple hosts
Hosts behind NAT can only act as TCP or UDP clients
dest=192.168.1.101
dest port = 3344
...
192.168.1.101
dest=157.58.56.78
dest port = 4567
...
Gateway
Router /
NAT
192.168.1.1
157.58.56.78
Internet
192.168.1.102
192.168.1.103
Internal addr
Port
192.168.1.101
3344 157.58.56.78
4567
…
…
…
Internal IP addresses
External addr
157.58.56.78
Port
Internet addresses
19
NAT as a firewall
NAT maps internal <private IP addr, port> pairs to
external <public IP addr, port> pairs and back
NAT creates the mapping after seeing an outbound
packet → a node on the intranet must initiate the
connection→ NAT acts as a dynamic firewall
NAT reference types (not real NATs):
Full cone NAT: NAT doesn’t remember peer addresses
Port-restricted cone NAT: NAT remembers peer IP address and
port and filters inbound packets
Symmetric NAT: different external port (and even address)
depending the peer address and port
Port-restricted and symmetric NATs provide some
firewall-like security
Real NATs combine the above and firewall functions;
there are hundreds of different NAT variations
20
Transport and applicationlayer firewalls
Circuit-level proxy
Transport-layer proxy as a firewall
When an intranet client needs to connect to a server outside, it
connects to the proxy instead
Proxy terminates TCP and UDP connections. Creates a second
connection to the server on the Internet
Proxy is simpler than a host, easier to harden against attacks
Proxy can filter and normalizes connections
SOCKS management protocol between client and
firewall
Client requests new connections from firewall
Authentication and authorization of client requests, e.g.
Kerberos with GSSAPI
Error messages to client
SOCKS is supported by most web browsers
23
Application-level firewall
Application-level firewall filters application data
E.g. email gateway, intercepting web proxy
Need to implement the entire application protocol
Telephone call blocking and barring vs. wiretapping
Encrypted data cannot be filtered → what to do?
Are the latest applications and features supported?
24
Firewall issues
25
Why filter outbound connections
Security:
Prevent people from accessing untrusted services or dangerous
web content
Prevent compromised machines from spreading viruses to the
Internet, phishing etc.
Cost:
Businesses and other organizations are charged by megabyte
→ block access to P2P, VoIP
Productivity:
How do employees spend their time?
Liability:
Does free Internet access by employees or visitors expose the
company to legal risks?
26
Firewall traversal
Network admins prefer to block traffic by default
→ new applications and protocols will not work
New applications will not become popular if an
administrative decision is needed at each site
→ application developers (and users) do their best
to circumvent firewalls
Web services over port 80, everything over port 443
Skype, Bittorrent etc.
Question: Should all new network applications be
standardized and get a port number from IANA, so
that they can be filtered by the firewall?
Big debate in the 90s, now everything uses port 80
27
Firewall limitations
May prevent people from doing their work
Try to convince a network admin to open a port for your server!
Network admins are often reluctant to change firewall policies in case
something breaks
Makes network diagnostics harder
Firewall configuration errors are common
Only coarse-grained filtering for efficient routing and administration
Perimeter defence is ineffective in large networks
There are always some compromised nodes inside
Potential unfiltered ingress routes that circumvent firewalls:
Historical threat: dial-up modem connections in and out
Unauthorized wireless access points
Laptops move in and out of the intranet, “bring your own device” culture
Laptops have both cellular data and intranet connections
Apps installed from the web may be Trojan horses
Security of home gateways and other network devices is questionable
Most applications now use TCP port 80 or 443, or use other clever tricks
to traverse firewalls
29
Related reading
William Stallings. Network security essentials:
applications and standards, 3rd ed.: chapter 11
William Stallings. Cryptography and Network
Security, 4th ed.: chapter 20
Kaufmann, Perlman, Speciner. Network security,
2nd ed.: chapter 23
Ross Anderson. Security Engineering, 2nd ed.:
chapter 21.4.2
Dieter Gollmann. Computer Security, 2nd ed.:
chapter 13.6
30
Exercises
Why cannot ingress filtering ever stop all IP spoofing attacks?
Do you find any mistakes or shortcomings in the firewall policy examples of
this lecture? Can they be improved?
Find out what kind of firewall capabilities your home gateway router/NAT
has.
Find the firewall configuration of a small network. Try to understand each
line of the policy. Have compromises on security been made to achieve
better performance, to make management easier, or because of limitations
in the firewall platform?
Extend the firewall policy example to support a bastion host (it its own
network segment).
Stateless firewall typically allows all inbound TCP packets with the ACK flag
set. On a 1 GB/s network, how difficult is it for external attackers to spoof
some TCP packets (e.g. RST) that match the sequence numbers of an intranet
TCP connection?
Translate the examples in these slides to policies for iptables or a commercial
firewall product.
31