DNS - ITEN Wired
Transcription
DNS - ITEN Wired
DNS – The Unsung Hero In Network Security Jim Nitterauer Senior Systems Administrator A Bit About Me • Senior Systems Administrator at AppRiver, LLC since 2006 • Is Responsible for global network deployment & security in 10 datacenters • Manages SecureTide global infrastructure • Filtering for more than 850,000 mailboxes • 600 plus servers • Manages SecureSurf global DNS infrastructure • Anycast DNS Security • 100 Plus servers providing DNS service for 10,000 plus users globally • • • • Founded Creative Data Concepts Limited, Inc. in 1994 & GridSouth Networks, LLC in 2006 President of Gulf Breeze Area Chamber of Commerce 2003 & 2004 B.S Biology 1985 Ursinus College M.S. Microbiology 1989 University of Alabama (Roll Tide!) • Regular Black Hat and DEFCON attendee • Completed Sans 560 – Network Penetration Testing and Ethical Hacking Goals for Today • Quick Recap of DNS basics – Types (Caching vs. Authoritative) – Common Records – Common DNS Server Software • Explore some common DNS misconfigurations • Investigate how DNS is used to Exploit Networks – Direct attack – Botnet C&C • Review some simple tools for analyzing DNS traffic logs Goals for Today (continued) • Examine some examples of compromise – Inbound exploitation – Outbound compromise • Discuss strategies for securing DNS – Server configuration – Monitoring – Preprocessing Rules • Mention new directions in DNS – EDNS0 Client subnet – Anycast DNS • Q&A DNS Basics • What is DNS? – Domain Name Service – A service that simply converts recognizable names into IP Addresses • IPv4 • IPv6 – Records for a given domain name advertised by two or more authoritative name servers – Domain registrar tells the root servers which authoritative name servers should be queried for answers – Root servers for the Top Level Domain (TLD) tell recursive servers to look to the authoritative name servers for answers DNS Basics • Authoritative DNS Server – Provides authoritative answers for domains that have the server listed as a nameserver with the registrar – Is returned by the root domain servers as part of domain lookup chain – Should answer for anyone that asks for domains it hosts – Does not do recursion – bad idea! • Recursive or Caching DNS – Provides domain lookup services for a specific network – Caches answers to speed up local DNS response times – Usually locked down to specific network DNS Basics Typical DNS Request DNS Basics • Common DNS Record Types – A Record – Defines an IPv4 address for a host name – CNAME Record – Defines an alias for a host name record. • Should point to a valid A record host name • Not to another CNAME! – NS Record – Defines the host names of the authoritative DNS servers for the domain (zone) • Must match the listings at the registrar • Must have a valid A record for each – SOA Record – Defines the start of authority for the domain (zone) • Must contain at least 1 valid name server and • Manages the default TTLs and the serial number (version) for the zone and • An email contact for the domain (zone) DNS Basics • Common DNS Record Types – AAAA Record – Defines an IPv6 address for a host name – PTR Record – Used to resolve IP addresses to host names (reverse DNS lookups) • Must be expressed in correct format • May be required in DNS for some services to function – MX Records – Define the server(s) responsible for mail relay for the zone • Must be FQDN (Fully Qualified Domain Name) that points to a valid A record • IP addresses are NOT allowed by RFC (Request for Comment) – TXT Records – Optional records used to send human-readable info via DNS DNS Basics • Common DNS Record Types – DNSSEC Related: • • • • DNSKEY – Public Key record DS – Delegation Signer NSEC / NSEC3 – Next Secure Record RRSIG – Signature for DNSSEC-Secured record set • Basic DNS Lookup – Use dig • Free from ISC.ORG • Windows (BIND for Windows) or Linux (bind-utils) – More on this later DNS Basics • Common DNS Server Software – BIND (Berkley Internet Name Daemon) (https://www.isc.org/downloads/) • Version 9 or 10 • Bloated when used for caching server – Unbound (http://www.unbound.net/) • Version 5.4 • Caching or forwarding only • Has pre-emptive cache loading so very fast – Microsoft DNS • AD usage • Supports forwarding • DO NOT USE FOR Internet Facing Authoritative DNS – you have been warned! DNS Basics • Simple DNS Plus (http://www.simpledns.com/) – Windows – Very good for Windows Authoritative DNS – Very secure when configured properly • Dnsmasq – Included in most Linux distributions – Limited functionality – Built into many home Wi-Fi routers Common DNS Misconfigurations • Test Your DNS at DNS Stuff (http://www.dnsstuff.com/) – Ex: Common DNS Misconfigurations • Stealth Name Servers – The name servers (NS records) listed in DNS don’t fully match the nameservers listed with the registrar – Can cause issues with some DNS lookups • NS Records point to unreachable IPs (No Glue) – 192.168.0.10 – Private IP unreachable via Internet • NS Records have no A record in DNS – NS IN ns1.mydomain.com – No ns1.mydomain.com IN A 200.200.200.10 – So nobody can get to name server Common DNS Misconfigurations • No Valid SOA Record – Causes unpredictable record propagation – Makes it difficult for other DNS servers to determine Primary NS – Secondary servers sync improperly w/o serial number • Improper TTLs – TTL = Time To Live – Too short – too many DNS refreshes – Too Long – difficult to change records in a timely manner • Lame Nameserver Delegation – One or more listed nameservers have no information about domain – No aa flag in the response Common DNS Misconfigurations • Allows Zone Transfers to anyone – May expose more info than you wish to make public! – Lock down transfers to known hosts • CNAME pointing to NS Record – Results in lame delegation – Against RFC • Great Reference - https://www.howtoforge.com/troubleshootingcommon-dns-misconfiguration-errors DNS As An Attack Vector • DNS Hijacking – MITM attacks intercept DNS requests, redirect them to a malicious DNS server and direct users to bogus sites • DNS Cache Poisoning – Similar to MITM. Requires luck to return spoofed DNS data to DNS cache on port that is expecting response. Easier if no port range randomization • DNS Amplification – Small incoming query w/ spoofed source IP requesting large data (ANY, RRSIG) – Bad guy hits hundreds or thousands of open resolvers – Results in target (spoofed IP) receiving a large number of unrequested packets (DDoS) DNS As An Attack Vector • DNS Lockup – Resolvers set up to deliberately initiate TCP connections – Requesting resolver receives garbage from malicious resolver – Resources eventually exhausted on requesting resolver • DNS Tunneling – Malware uses DNS (UDP 53) to export data from a compromised network – May also be used as a full remote control channel to a compromised host • Nice Summary Reference – http://securitymiddleeast.com/2015/02/04/increasing-importance-dnsattack-vector/ DNS As An Attack Vector • Domain Bit Flipping – – – – – Ex: google.com flip 4th bit goofle.com Bit flipping happens with regularity in RAM Increases at higher temps Can occur BEFORE data is written to disk https://www.youtube.com/watch?v=ZPbyDSvGasw • Domain Generation Algorithms (DGAs) – Also known as Domain Fluxing – https://www.damballa.com/domain-generation-algorithms-dga-in-stealthymalware/ – Can transmit lifted data in DNS packets DNS Analysis Tools DNS Analysis Tools DNS Analysis Tools • Dig Installation – Windows • Download Bind for Windows - https://www.isc.org/downloads/file/bind-9-10-2p4/?version=win-64-bit • Create a folder on the target drive – Ex. C:\dig • Unzip the archive into the folder • Add the folder to your Windows PATH statement – Linux • sudo apt-get install bind-utils • sudo yum install bind-utils DNS Analysis Tools • Dig Examples – dig @x.x.x.x domain.com –t NS • Returns the Nameserver records for domain.com as reported by x.x.x.x – Many useful options • • • • • • dig –h or man dig for instruction +trace – shows all the DNS queries in the chain from the root +subnet to allow checking for EDNS 0 Client Subnet responses +dnssec +sigchase to validate DNSSEC entire path -f filename.txt allows parsing of a text file with one domain per line (load testing, etc) -t RecordType allows retrieval of specific record types – Much better than nslookup DNS Analysis Tools • Wireshark – – – – – – – www.wireshark.org Use simple filters to capture traffic on Ethernet interfaces Allows for analysis of pcap files collected on your Linux DNS servers Tcpdump is used on Linux servers to grab and filter pcap data Download pcap with WinSCP to Windows and use Wireshark Filter example: dns Allows for very granular packet capture and analysis DNS Analysis Tools DNS Analysis Tools • Elasticsearch – https://www.elastic.co/products/elasticsearch – Distributed, scalable data collection and indexing platform – Integrates with • • • • Graylog Kibana Logstash NXLog – Basis for many useful data presentation platforms – We will look at a few examples DNS Analysis Tools • Graylog (https://www.graylog.org/) – – – – Extremely powerful logging platform for just about any type log Works with Elasticsearch back end Supports many formats GELF – Graylog Extended Log Format • Allows for granular field definitions and easy searchability • Common format for many log shippers – NXLog, Logstash, etc – Dashboard Support – Open source – Data can be accessed with other tools, ex. Kibana DNS Analysis Tools • Nxlog (http://nxlog.org/products/nxlog-community-edition) – – – – Log shipper for Linux and Windows Multiple formats Includes GELF support Useful in shipping Windows logs to Graylog / Elasticsearch • Kibana (https://www.elastic.co/products/kibana) – Connects to Elasticsearch indexes – Allows for the creation of versatile dashboards – Supports alerting • Logstash (https://www.elastic.co/products/logstash) – Pipeline to help process logs & send to Elasticsearch DNS Analysis Tools DNS Analysis Tools DNS Analysis Demos • Demos – Graylog showing AD DNS Requests • Allow very simple isolation of requests from client IP • Correlate with our CTN (Critical Threat Notification) generated by SecureSurf • Isolate an infected workstation within minutes – Graylog show DNS Amplification Dashboard • We monitor numbers of A and ANY queries hitting our public resolvers • If we see a new domain used in an attack, we can immediately block that domain at all edge connections – Graylog show Example of Compromise • DNS Amplification Attacks (Inbound) • Domain Generation Algorithm (DGA) traffic (Outbound) Securing DNS • Secure The Server! – Disable recursion on Authoritative Servers • Lock down by allowed IP • Or disable completely – Lock Down Zone Transfers • Only to allowed IPs • Secure with TSIG – Do NOT mix Authoritative & Caching Servers • OK For AD (No choice) • No Public Zones on AD DNS Servers – Limit Number and Types of Requests Allowed • By Source IP • By Record Type Request Securing DNS – – – – Secure Cache Against Pollution Enable & Enforce DNSSEC if Possible Force ANY Queries to Resend on TCP Enable DNS Query Logging • Ship logs to log analysis tool like Graylog • Know what’s normal – Recursive servers forward to root or known good servers! • Define DNS Preprocessing Rules – Ex. F5 iRules • Applied to VIP in front of DNS servers • Allows for very granular control – Log UDP / DNS Traffic On the Edge Securing DNS • Deploy Firewall / IPS Rules on the Edge – – – – Only allow vetted traffic Drop all traffic from Bogons at Edge Drop malformed DNS Force large UDP requests to re-ask on TCP • Disperse Authoritative Servers – Use Anycast if possible – Or Multiple ISPs to limit SPOF Securing DNS • Incorporate Blacklists – Link to cache server to return IP for blocked content page – Many sources that update regularly – Easy to include in Unbound or BIND • Use a DNS Filtering Service – SecureSurf – Others • Outsource Primary DNS – AppRiver DNS Plus – Akamai New DNS Directions • EDNS 0 Client Subnet – AKA draft-ietf-dnsop-edns-client-subnet – https://tools.ietf.org/html/draft-ietf-dnsop-edns-client-subnet-00 – Allows for authoritative servers to return different IP data based upon client WAN subnet – Think CDN via DNS – Not widely adopted yet – Limited cache server options • Anycast DNS – Same IP announced via BGP from multiple locations – Failover – Works well with UDP traffic since stateless Wrap-up • Questions & Answers • Contact Info – – – – jnitterauer@appriver.com @jnitterauer https://www.linkedin.com/in/GridSouth 850-932-5338 ext. 6468