<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: edowadohu</title>
    <description>The latest articles on DEV Community by edowadohu (@edowadohu).</description>
    <link>https://dev.to/edowadohu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F215390%2F55beea05-a1ad-4d14-b537-cbd10894dc18.png</url>
      <title>DEV Community: edowadohu</title>
      <link>https://dev.to/edowadohu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/edowadohu"/>
    <language>en</language>
    <item>
      <title>Beyond disaster recovery: 4 major considerations for your website</title>
      <dc:creator>edowadohu</dc:creator>
      <pubDate>Thu, 03 Oct 2019 03:30:49 +0000</pubDate>
      <link>https://dev.to/edowadohu/beyond-disaster-recovery-4-major-considerations-for-your-website-3am2</link>
      <guid>https://dev.to/edowadohu/beyond-disaster-recovery-4-major-considerations-for-your-website-3am2</guid>
      <description>&lt;p&gt;Disaster recovery should be at the core of every organization’s IT strategy. Any tactics implemented to keep a company online in the event of a catastrophe should account for natural and manmade disasters. Both threats have the ability to stop an organization in its tracks. The threat posed to business websites by bad actors looking to hijack functionality requires additional considerations beyond standard disaster recovery protocols. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://smallbiztrends.com/2019/05/2019-small-business-cyber-attack-statistics.html" rel="noopener noreferrer"&gt;Forty-three percent&lt;/a&gt; of cyber-attacks launched in 2018 targeted small businesses. That can be eye-opening for organizations with less than 250 employees.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmlytics.com%2Fwp-content%2Fuploads%2F2019%2F08%2Ftarget-settlement.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmlytics.com%2Fwp-content%2Fuploads%2F2019%2F08%2Ftarget-settlement.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While the likes of Target tend to be the ones who draw the big headlines and seemingly larger payouts, they often get to them by going through a smaller vendor or associate company. The target itself got hacked because bad actors gained access through the system of an HVAC company they used in the past.&lt;/p&gt;

&lt;h2&gt;
  
  
  The true cost of disaster recovery
&lt;/h2&gt;

&lt;p&gt;Many small and medium-sized businesses (SMBs) cite cost as a reason why they don’t go further with protection measures. They rely on the false confidence that hackers will go after bigger fish. That mistake can end up crippling an SMB’s operations and potentially put them out of business. &lt;/p&gt;

&lt;p&gt;We have previously discussed the &lt;a href="https://mlytics.com/blog/why-small-business-need-ddos-protection-more-than-ever/" rel="noopener noreferrer"&gt;increase in DDoS attacks against SMBs&lt;/a&gt;. Many of them simply cannot withstand the business disruption and loss of revenue that comes from having their business sites knocked offline for an extended period. &lt;/p&gt;

&lt;p&gt;The Ponemon Institute estimates that &lt;a href="https://securityintelligence.com/ponemon-cost-of-a-data-breach-2018/" rel="noopener noreferrer"&gt;cyber-attacks end up costing SMBs around $3.86 million dollars&lt;/a&gt; on average. Even a single hour of downtime can bring a price tag of over $100,000. What goes into the build-up of such large numbers?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cleanup costs&lt;/li&gt;
&lt;li&gt;Lost revenue from business disruption&lt;/li&gt;
&lt;li&gt;Remediation costs in highly regulated industries like finance or healthcare&lt;/li&gt;
&lt;li&gt;Regulatory fines that arise from compliance violations&lt;/li&gt;
&lt;li&gt;Processing customer refunds and covering costs they incurred as a result of a breach&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Suspending operations after a cyber-attack is a path from which many SMBs do not come back. Covering expenses like rent, payroll, insurance, and operational costs with no revenue coming in takes a toll. &lt;a href="https://www.denverpost.com/2016/10/23/small-companies-cyber-attack-out-of-business/" rel="noopener noreferrer"&gt;Sixty percent of SMBs that suffer a cyber-attack&lt;/a&gt; end up going under after six months. &lt;/p&gt;

&lt;h2&gt;
  
  
  Five additional considerations for keeping your site online
&lt;/h2&gt;

&lt;p&gt;Disaster recovery is an essential aspect of avoiding downtime during catastrophic events. Companies should ensure they look out for other vital elements of their IT infrastructure when it comes to maintaining high availability of their website and company systems. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DNS accessibility&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your Domain Name System (DNS) is how readable domain names get converted into IP addresses for connection. That is why we can enter “www.google.com” into our web browser instead of strings of numbers. DNS support services form the backbone for resolving internet domain names. &lt;/p&gt;

&lt;p&gt;Distributed denial-of-service (DDoS) attacks disrupt your domain’s DNS resolution attempts. Doing so prevents users from accessing the website. The attack also compromises your website’s responses to legitimate traffic. It can be hard to separate a DDoS attack from heavy traffic because they mimic them by using a variety of unique locations and look for actual existing records available on the domain. &lt;/p&gt;

&lt;p&gt;A system of round-robin load balancing can keep your site from being taken offline. You should list the IP addresses of two load balancers, or reverse proxies, that are each set to balance traffic loads between your CDNs. If one becomes unreachable, a client web browser can continue to the next DNS server and attempt to locate the website. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CDN availability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Content delivery networks (CDNs) can improve website performance and reliability by caching content at the edge of the network. Using CDNs over traditional hosting solutions also prevents service interruptions, improve redundancy, and provide added security. They have a higher capacity to withstand hardware failure while conducting a higher level of traffic. Bandwidth costs also go down since your site does not have to transport as much data. &lt;/p&gt;

&lt;p&gt;CDNs can still go down for other reasons outside of cyber-attacks. &lt;a href="https://mlytics.com/blog/lesson-learned-from-the-cloudflare-massive-outage/" rel="noopener noreferrer"&gt;A Cloudflare outage occurred in July 2019&lt;/a&gt; because of a software deployment gone wrong.  It pays to have multiple CDNs available to decrease the chances of downtime for your website. You do not want your business experiencing a Cloudflare scenario because you balked at the cost of obtaining more CDNs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Server availability&lt;/strong&gt;&lt;br&gt;
Many companies try to ensure high availability of their servers by having a load balancer on the front. Two additional servers are then connected as a backup in case one of them goes down. Incoming traffic goes through the load balancer and is given access to the designated server. &lt;/p&gt;

&lt;p&gt;Having automated server failover can ensure that a standby server is accessed if one of the others fails or becomes compromised. The practice can keep your organization from losing critical data. Automated server failover automatically directs your requests off-site for handling, keeping your operations seamless.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Database accessibility&lt;/strong&gt;&lt;br&gt;
You want to make sure your organization always has access to your onsite and cloud data stores in an emergency. Most companies have a single database router and multiple redundant databases. They implement a “master-slave” architecture where the “slave” servers continuously duplicate content from the central “master” database. You can help ensure high availability for your data storage solutions by having the process automated.&lt;/p&gt;

</description>
      <category>webperf</category>
      <category>devops</category>
    </item>
    <item>
      <title>How mlytics patched Cloudflare WAF bypass vulnerability (on our end)</title>
      <dc:creator>edowadohu</dc:creator>
      <pubDate>Tue, 20 Aug 2019 09:38:48 +0000</pubDate>
      <link>https://dev.to/edowadohu/how-mlytics-patched-cloudflare-waf-bypass-vulnerability-on-our-end-4g0</link>
      <guid>https://dev.to/edowadohu/how-mlytics-patched-cloudflare-waf-bypass-vulnerability-on-our-end-4g0</guid>
      <description>&lt;p&gt;On Oct 25, 2018, a researcher from ODS (Open Data Security) named &lt;a href="https://opendatasecurity.io/author/daniel-farina/"&gt;Daniel Fariña&lt;/a&gt; released a &lt;a href="https://opendatasecurity.io/cloudflare-vulnerability-allows-waf-be-disabled/"&gt;blog post&lt;/a&gt; sharing his findings about a vulnerability in the case of Nginx on Cloudflare, which could disable the WAF leaving the companies vulnerable to cyber attacks. There’s even a &lt;a href="https://www.youtube.com/watch?v=MlkUAfJETzI&amp;amp;feature=youtu.be"&gt;video&lt;/a&gt; providing a very detailed explanation and demonstration of this issue.&lt;/p&gt;

&lt;p&gt;This finding has caught our attention as we are also using Nginx to develop our own WAF (see article: &lt;a href="https://mlytics.com/blog/why-and-how-mlytics-built-its-own-web-application-firewall/"&gt;Why and How mlytics Built Its Own Web Application Firewall&lt;/a&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  What happened exactly?
&lt;/h2&gt;

&lt;p&gt;We noticed that Lua in Nginx has a limitation in terms of accessibility to all the information of one request, and it can be summarized as follow :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“… a maximum of 100 request arguments are parsed by default (including those with the same name) and that additional request arguments are silently discarded to guard against potential denial of service attacks”.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Meaning which, any WAF developed on top of Nginx in this scenario will be left vulnerable if one request is using this as a loophole to keep everything undetected. If the parameters that contain threats are not being supported within the scope, it will be totally unusable.&lt;/p&gt;

&lt;h2&gt;
  
  
  So why do we have to patch anything?
&lt;/h2&gt;

&lt;p&gt;At mlytics, we give our users the liberty to choose what CDN platforms to use, while keeping them protected via our proprietary WAF to safeguard and unify security policy across platforms. Since some of our users have enabled Cloudflare via mlytics’s &lt;a href="https://mlytics.com/features/multi-cdn/"&gt;Multi CDN&lt;/a&gt;, thus making them vulnerable to this issue.&lt;/p&gt;

&lt;p&gt;We didn’t wait long for Cloudflare to patch the hole. We can intercept malicious requests that bypass Cloudflare’s Lua-Nginx vulnerability via a patch to the mlytics platform to keep our users protected.&lt;/p&gt;

&lt;h2&gt;
  
  
  It works!
&lt;/h2&gt;

&lt;p&gt;We did a couple of before and after tests, here are the results:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before patch&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Test scenario:&lt;/strong&gt; with one parameter&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;code&gt;curl -i ‘127.0.0.1/?txtSearch=&amp;lt;%21–%23cmd’ -H “Host: demo.1testfire.net”&lt;br&gt;
**HTTP/1.1 403 Forbidden**&lt;br&gt;
Server: nginx&lt;br&gt;
Date: Thu, 13 Dec 2018 07:08:05 GMT&lt;br&gt;
Content-Type: text/html&lt;br&gt;
Transfer-Encoding: chunked&lt;br&gt;
Connection: keep-alive&lt;br&gt;
Cache-Control: no-cache&lt;br&gt;
&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html lang=”en”&amp;gt;&amp;lt;head&amp;gt;&amp;lt;meta charset=”UTF-8″&amp;gt;&amp;lt;title&amp;gt;Error Page&amp;lt;/title&amp;gt;&amp;lt;link rel=”stylesheet” type=”text/css” href=”__assets/css/style.css”&amp;gt;&amp;lt;link href=”https://fonts.googleapis.com/css?family=Raleway” rel=”stylesheet”&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;lt;div class=”wrapper”&amp;gt;&amp;lt;h1&amp;gt;ACCESS DENIED&amp;lt;span&amp;gt;Your request to access demo.1testfire.net was denied&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&amp;lt;p class=”error_info”&amp;gt;&amp;lt;span&amp;gt;Incident ID &amp;lt;/span&amp;gt;31c75a46e100079d1449f5e4db85d6de&amp;lt;/p&amp;gt;&amp;lt;p class=”error_info”&amp;gt;&amp;lt;span&amp;gt;Your IP &amp;lt;/span&amp;gt;127.0.0.1&amp;lt;/p&amp;gt;&amp;lt;img src=”__assets/img/process_img.png”&amp;gt;&amp;lt;div class=”next_Step”&amp;gt;&amp;lt;p&amp;gt;&amp;lt;span&amp;gt;What happened ?&amp;lt;/span&amp;gt;The website you are trying to access is protected against cyber attacks. Your recent action or behavior was flagged as suspicious. Further access to the web server has been denied.&amp;lt;/p&amp;gt; &amp;lt;p&amp;gt;&amp;lt;span&amp;gt;What can I do ?&amp;lt;/span&amp;gt;Please try again in a few minutes. Or, you can directly contact the site owner within Event ID indicated and a description of what you were doing before you were denied access.&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;span clas=”copyright”&amp;gt;Powered by mlytics.com&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;“&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Test scenario:&lt;/strong&gt; with a0-a9, 10*10, a total of 100 parameters, and then add the 101st parameters to the command injection payload&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;code&gt;curl -i ‘127.0.0.1/?a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;&amp;lt;%21–%23cmd’ -H “Host: demo.1testfire.net”&lt;br&gt;
**HTTP/1.1 200 OK**&lt;br&gt;
Server: nginx&lt;br&gt;
Date: Thu, 13 Dec 2018 07:20:29 GMT&lt;br&gt;
Content-Type: text/html; charset=utf-8&lt;br&gt;
Transfer-Encoding: chunked&lt;br&gt;
Connection: keep-alive&lt;br&gt;
Cache-Control: no-cache&lt;br&gt;
Pragma: no-cache&lt;br&gt;
Expires: -1&lt;br&gt;
X-AspNet-Version: 2.0.50727&lt;br&gt;
Set-Cookie: ASP.NET_SessionId=2vb4y5453apg1cvpakfjigip; path=/; HttpOnly&lt;br&gt;
Set-Cookie: amSessionId=6207394219; path=/&lt;br&gt;
X-Powered-By: ASP.NET&lt;br&gt;
&amp;lt;!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”&amp;gt;&lt;br&gt;
&amp;lt;html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en” &amp;gt;&lt;br&gt;
&amp;lt;head id=”_ctl0__ctl0_head”&amp;gt;&amp;lt;title&amp;gt;……………….“&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As you can tell before our patch, a request within 100 parameters can be easily blocked by the Cloudflare WAF. But once it goes above 100 and hit its 101st parameters, Cloudflare WAF became inactive and let it pass.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After patch&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Test scenario:&lt;/strong&gt; with one parameter&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;code&gt;curl -i ‘127.0.0.1/?txtSearch=&amp;lt;%21–%23cmd’ -H “Host: demo.1testfire.net”&lt;br&gt;
**HTTP/1.1 403 Forbidden**&lt;br&gt;
Server: nginx&lt;br&gt;
Date: Thu, 13 Dec 2018 07:08:05 GMT&lt;br&gt;
Content-Type: text/html&lt;br&gt;
Transfer-Encoding: chunked&lt;br&gt;
Connection: keep-alive&lt;br&gt;
Cache-Control: no-cache&lt;br&gt;
&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html lang=”en”&amp;gt;&amp;lt;head&amp;gt;&amp;lt;meta charset=”UTF-8″&amp;gt;&amp;lt;title&amp;gt;Error Page&amp;lt;/title&amp;gt;&amp;lt;link rel=”stylesheet” type=”text/css” href=”__assets/css/style.css”&amp;gt;&amp;lt;link href=”https://fonts.googleapis.com/css?family=Raleway” rel=”stylesheet”&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;lt;div class=”wrapper”&amp;gt;&amp;lt;h1&amp;gt;ACCESS DENIED&amp;lt;span&amp;gt;Your request to access demo.1testfire.net was denied&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&amp;lt;p class=”error_info”&amp;gt;&amp;lt;span&amp;gt;Incident ID &amp;lt;/span&amp;gt;31c75a46e100079d1449f5e4db85d6de&amp;lt;/p&amp;gt;&amp;lt;p class=”error_info”&amp;gt;&amp;lt;span&amp;gt;Your IP &amp;lt;/span&amp;gt;127.0.0.1&amp;lt;/p&amp;gt;&amp;lt;img src=”__assets/img/process_img.png”&amp;gt;&amp;lt;div class=”next_Step”&amp;gt;&amp;lt;p&amp;gt;&amp;lt;span&amp;gt;What happened ?&amp;lt;/span&amp;gt;The website you are trying to access is protected against cyber attacks. Your recent action or behavior was flagged as suspicious. Further access to the web server has been denied.&amp;lt;/p&amp;gt; &amp;lt;p&amp;gt;&amp;lt;span&amp;gt;What can I do ?&amp;lt;/span&amp;gt;Please try again in a few minutes. Or, you can directly contact the site owner within Event ID indicated and a description of what you were doing before you were denied access.&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;span class=”copyright”&amp;gt;Powered by mlytics.com&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;“&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Test scenario:&lt;/strong&gt; with a0-a9, 10*10, a total of 100 parameters, and then add the 101st parameters to the command injection Payload&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;code&gt;curl -i ‘127.0.0.1/?a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a0=0&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a1=1&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a2=2&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a3=3&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a4=4&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a5=5&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a6=6&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a7=7&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a8=8&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;a9=9&amp;amp;&amp;lt;%21–%23cmd’ -H “Host: demo.1testfire.net”&lt;br&gt;
HTTP/1.1 403 Forbidden&lt;br&gt;
Server: nginx&lt;br&gt;
Date: Thu, 13 Dec 2018 07:18:51 GMT&lt;br&gt;
Content-Type: text/html&lt;br&gt;
Transfer-Encoding: chunked&lt;br&gt;
Connection: keep-alive&lt;br&gt;
Cache-Control: no-cache&lt;br&gt;
&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html lang=”en”&amp;gt;&amp;lt;head&amp;gt;&amp;lt;meta charset=”UTF-8″&amp;gt;&amp;lt;title&amp;gt;Error Page&amp;lt;/title&amp;gt;&amp;lt;link rel=”stylesheet” type=”text/css” href=”__assets/css/style.css”&amp;gt;&amp;lt;link href=”https://fonts.googleapis.com/css?family=Raleway” rel=”stylesheet”&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;lt;div class=”wrapper”&amp;gt;&amp;lt;h1&amp;gt;ACCESS DENIED&amp;lt;span&amp;gt;Your request to access demo.1testfire.net was denied&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&amp;lt;p class=”error_info”&amp;gt;&amp;lt;span&amp;gt;Incident ID &amp;lt;/span&amp;gt;-&amp;lt;/p&amp;gt;&amp;lt;p class=”error_info”&amp;gt;&amp;lt;span&amp;gt;Your IP &amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;img src=”__assets/img/process_img.png”&amp;gt;&amp;lt;div class=”next_Step”&amp;gt;&amp;lt;p&amp;gt;&amp;lt;span&amp;gt;What happened ?&amp;lt;/span&amp;gt;The website you are trying to access is protected against cyber attacks. Your recent action or behavior was flagged as suspicious. Further access to the web server has been denied.&amp;lt;/p&amp;gt; &amp;lt;p&amp;gt;&amp;lt;span&amp;gt;What can I do ?&amp;lt;/span&amp;gt;Please try again in a few minutes. Or, you can directly contact the site owner within Event ID indicated and a description of what you were doing before you were denied access.&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;span class=”copyright”&amp;gt;Powered by mlytics.com&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;“&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With mlytics patch to the platform, the same request got rejected by our platform despite nothing has changed on Cloudflare’s end.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>security</category>
      <category>devops</category>
    </item>
    <item>
      <title>How we mitigated one of the largest CC (DDoS) attacks</title>
      <dc:creator>edowadohu</dc:creator>
      <pubDate>Tue, 20 Aug 2019 09:19:46 +0000</pubDate>
      <link>https://dev.to/edowadohu/how-we-mitigated-one-of-the-largest-cc-ddos-attacks-313e</link>
      <guid>https://dev.to/edowadohu/how-we-mitigated-one-of-the-largest-cc-ddos-attacks-313e</guid>
      <description>&lt;p&gt;In the first quarter of 2019, one of our customers came to us with a problem: their website was under attack.&lt;/p&gt;

&lt;p&gt;No matter what they tried to get around the problem, their site kept crashing. The kind of attack being used on this particular client is known as a distributed denial of service (DDoS) attack, specifically a challenge collapsar (CC) attack.&lt;/p&gt;

&lt;p&gt;In this case study, we’ll go into what a DDoS attack is in more detail, define the specific type of DDoS attack being sued here (CC attack) and explain how we were able to help our client mitigate the problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a CC attack?
&lt;/h2&gt;

&lt;p&gt;There are many types of DDoS attacks in the wild, and a CC attack is classified as a DDoS application layer attack. When a CC attack occurs, multiple HTTP requests are sent simultaneously to overload the server, since the Uniform Resource Identifiers (URIs) has to undertake complicated algorithms or database operations to exhaust the resources of the targeted web server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YtB019d4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/700/0%2ACCpIakredycRvXRd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YtB019d4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/700/0%2ACCpIakredycRvXRd.jpg" alt="Imagine multiple missile trucks firing at your website"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Imagine multiple missile trucks firing at your website&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The attacker simulates a scenario where a large number of users are accessing pages all the time. Because the accessed pages require a lot of data operations (consuming many CPU resources), the CPU usage is kept at the 100% level until normal access requests are blocked.&lt;/p&gt;

&lt;p&gt;See all types of DDoS attacks &lt;a href="https://learning.mlytics.com/security/types-of-ddos-attacks/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fun fact:&lt;/strong&gt; CC attacks got the name “Challenge Collapsar” attacks in 2004 when a Chinese hacker who went by the monicker Kiki invented a hacking tool called Collapsar capable of blitzing a server with HTTP requests.&lt;/p&gt;

&lt;h2&gt;
  
  
  One of the largest CC (DDoS) attacks we’ve seen in a while
&lt;/h2&gt;

&lt;p&gt;Our customer tried everything they could think of to mitigate the attack: they tried to solve the problem via in-house DDoS mitigation and used content delivery network (CDN) services and providers who claimed they could help mitigate DDoS attacks. But each attempt failed, and their site would go down after just a few minutes when relaunched.&lt;/p&gt;

&lt;p&gt;When the customer came to us to help solve their problem, we immediately took action to mitigate the attack. Upon investigation, we were surprised at the massive scale of this DDoS attack: 300 million requests were being sent to our customer’s server every minute, and the hacker was utilizing “user mimicking,” a practice which masks the attack traffic as normal user traffic distributed across multiple IP addresses.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IL1SK99h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/700/0%2AmSObO1cH5XR6E4-R.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IL1SK99h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/700/0%2AmSObO1cH5XR6E4-R.png" alt="Approximately 1.3 Tbps of network attack"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Approximately 1.3 Tbps of network attack&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fjV-jhkn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/700/1%2A0-10IUElKZj_mVWs3Vjlpw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fjV-jhkn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/700/1%2A0-10IUElKZj_mVWs3Vjlpw.png" alt="Approximately 300M QPM of application attack"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Approximately 300M QPM of application attack&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We were able to mitigate the attack and get our customer’s site up and running again, even during such a brute-force CC attack.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we mitigated the attack
&lt;/h2&gt;

&lt;p&gt;We used a two-pronged method of DDoS protection to mitigate this particular CC attack:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Geo-restriction:&lt;/strong&gt; We were able to restrict incoming traffic to specific regions by securing traffic from the main user base’s countries and regions, as well as preventing incoming traffic from known “attack regions” like Russia, Ukraine, and India.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enabling browser-based challenge:&lt;/strong&gt; Our web application firewall (WAF) lets us use challenge-based algorithms to filter out CC attack bots. Built on global public cloud infrastructure, we can leverage that computing power via Multi CDN to autoscale our defenses proportionate to the attack. It’s that power that let us fend off a 300-million request per minute CC attack.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In order to implement this strategy, we needed a solid, powerful infrastructure. mlytics uses &lt;a href="https://mlytics.com/features/multi-cdn/"&gt;Multi CDN&lt;/a&gt; which combine the power of over 2,300 PoPs to give us a 2,600 Tbps capacity. That gives us a &lt;a href="https://mlytics.com/solutions/ddos-protection/"&gt;global network with the power of multi terabit-per-second capacity&lt;/a&gt; with which to fend off DDoS attacks.&lt;/p&gt;

&lt;p&gt;By combining effective filtering with the power of our network, we were able to help our customer absorb even that powerful CC attack and get their site back up and running.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>security</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
