<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Mark Goodwin&#039;s Blog - malware tag</title>
  <link>http://directwebremoting.org/blog/mark/tags/malware/</link>
  <description>Security, information, miscellanea</description>
  <language>en</language>
  <copyright>Mark Goodwin</copyright>
  <lastBuildDate>Thu, 16 Aug 2007 22:02:00 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>Browser based DDOS</title>
    <link>http://directwebremoting.org/blog/mark/2007/05/17/browser_based_ddos.html</link>
    
      
        <description>
          &lt;p&gt;Everybody is saying that JavaScript is the new malware. There&#039;s an interesting application of this idea that probably hasn&#039;t occurred to many people; we&#039;ve all heard about standard CSRF and using this type of technique to perform sophisticated operations on an attacker&#039;s behalf but what about the simple stuff?&lt;/p&gt;

&lt;p&gt;I&#039;ve been working on a tool which allows you to stress test an application using scripted browser clients (like a stress test version of &lt;a href=&#034;http://www.openqa.org/selenium/&#034;&gt;Selenium&lt;/a&gt;). One of the advantages of this approach over something like, say, the Grinder is that it allows you to get a view of what real traffic from real browsers might look like. You simply set up some virtual machine images with various different browsers, point your virtual machine images at the test tool (via the target site if you want detailed client reporting or the ability to script around CSRF protection), clone your image as many times as is necessary and run them.  The test clients poll a management application to find out what they should be doing and how often and report back when they&#039;re done.&lt;/p&gt;

&lt;p&gt;The scary thing about the possibility of using this against real users is that the user of the browser needn&#039;t necessarily know that their machine has just been conscripted as part of a vast stress-testing army. You could be browsing away minding your own business whilst in the background your browser is making forged requests to DOS a website on an attacker&#039;s behalf. Because it&#039;s JavaScript based your AV won&#039;t alert you and you can patch all you like but this is possible because of a feature of browser design not a vulnerability. Your machine will forget all about it when your browser session ends, but that&#039;s no problem to the attacker if they can attract enough browsers. Jikto was aimed at breaking in - this is similar, but rather more brutal.&lt;/p&gt;

&lt;p&gt;So what&#039;s necessary from the attacker&#039;s perspective? The attacker needs to do the following:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Find some expensive functionality on the target site (preferably available to non authenticated users).&lt;/li&gt;
    &lt;li&gt;Find somewhere to host the scripts and the management application (a simple PHP script and a few lines of JavaScript would suffice for most purposes); sites vulnerable to various PHP remote file include issues are easy to come by for free hosting&lt;/li&gt;
    &lt;li&gt;Once these are in place the attacker gets people infected either by driving traffic to their scripts from a popular site, or inviting people directly (spoof e-mail from a bulk mailer perhaps)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I&#039;ve had a look around and this appears to be easier than I&#039;d initially dared imagine; people are starting to understand the need to protect functionality that makes changes to their systems or data, but I&#039;m not sure people are wise to the possibility of DDOS via CSRF. Given that this is all entirely plausible; do we need to start protecting expensive, publicly accessible functionality in our web applications with some kind of CSRF protection?&lt;/p&gt;

&lt;p&gt;Just a thought.&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/mark/2007/05/17/browser_based_ddos.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/mark/2007/05/17/browser_based_ddos.html</guid>
    <pubDate>Thu, 17 May 2007 19:49:00 GMT</pubDate>
  </item>
  
  </channel>
</rss>
