<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.communities.hp.com/securitysoftware/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Following the White Rabbit Blog : automated testing</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/automated+testing/default.aspx</link><description>Tags: automated testing</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Automated Security Testing - Can't I Just Point-n-Click? (Part 1)</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2009/10/16/security-testing-can-t-i-just-point-n-click.aspx</link><pubDate>Fri, 16 Oct 2009 16:14:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:108409</guid><dc:creator>RafalLos</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I&amp;#39;ve been witness to an interesting phenomena. &amp;nbsp;Several otherwise rational folks- customers, prospective customers, and pundits alike - have posed the question to me now over a the last several months. &amp;nbsp;I&amp;#39;ve been thinking a lot about the topic and have some thoughts I think it&amp;#39;s time I share.&lt;/p&gt;
&lt;p&gt;The question for discussion is this: &amp;quot;&lt;i&gt;&lt;strong&gt;Shouldn&amp;#39;t a security testing tool (Web App security, black-box specifically) be able to just accept a URL and credentials and test my site, providing results without me having to intervene?&lt;/strong&gt;&lt;/i&gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;The answer, quite simply is an unabashed &amp;quot;&lt;strong&gt;No&lt;/strong&gt;&amp;quot;... but I think it needs more of an explanation than that. &amp;nbsp;It&amp;#39;s often all too simple to provide an answer without explanation; or worse with an explanation that not everyone can understand, so I&amp;#39;ll both answer the question, explain it in detail and give some real-life examples of why I&amp;#39;m answering this way. &amp;nbsp;Grab a cup of coffee, get comfortable and let&amp;#39;s think this through rationally together. &amp;nbsp;I&amp;#39;m going to do this as a multi-part blog entry ... I can already see this as taking a few hours to write much less to read and fully comprehend...&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Main Issue&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="padding-left:30px;"&gt;The main issue in question here is not whether computers can replace humans entirely for security testing - which I hope we can all agree on is a solid &lt;i&gt;no&lt;/i&gt;&amp;nbsp;but whether computers and automation has come far enough to begin test automation to a point where a human can provide minimal input and have a test complete. &amp;nbsp;The problem with this request is that we&amp;#39;re asking automation to &lt;i&gt;make decisions&lt;/i&gt;&amp;nbsp;within the process of testing. &amp;nbsp;Decision making, so far in evolution, is best left to the human analytical brain, rather than automation - and the primary rational is here is that humans possess the ability to reason rationally whereas computers ... cannot. &amp;nbsp;At the core of the question is the ability to make decisions or &lt;i&gt;reason&lt;/i&gt;&amp;nbsp;which then either makes or breaks an automated test. &amp;nbsp;Let&amp;#39;s think about this in a different light... let&amp;#39;s look at this from the viewpoint of a mechanic. &amp;nbsp;What we&amp;#39;re really asking here is for a computer to hook up to the vehicle, diagnose the entire system without human input and then provide a solution, testing the effectiveness without a human in the loop. &amp;nbsp;Rationally we can already see where this would break down. &amp;nbsp;A computer can hypothesize a problem, apply a solution successfully without actually solving the problem the driver had in the first place. &amp;nbsp;Diagnosing a problem in a vehicle, as mechanics will tell you, is more than just something you can do from a text-book, or by taking a course. &amp;nbsp;It takes years of experience to understand vehicular cause and effect, and why a rattle in the front of the car may actually be a bad bearing in your rear wheel... computers can&amp;#39;t tell you these things, yet. &amp;nbsp;The other issue here in the mechanical world is that not everything can be connected to a computer system for diagnostic yet - there are still limitations. &amp;nbsp;The problem can be easily extended to the digital world for web applications. &amp;nbsp;Not everything can be analyzed properly and we&amp;#39;ll go into more detail in a minute for why that is.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Bringing this back to the question at hand and whether automation can simply &amp;quot;do the job&amp;quot; of assessing a web application&amp;#39;s security viability ... we have to break the issue down into its bare components to further analyze. &amp;nbsp;First, there&amp;#39;s the identification and site functional analysis ... typically we call this the &amp;quot;crawler phase&amp;quot; or &amp;quot;discovery phase&amp;quot; depending on which tool you&amp;#39;re using. &amp;nbsp;Crawling the site (or application) means clicking buttons, inputting data, and traversing the site all while building a &lt;i&gt;virtual map&lt;/i&gt;&amp;nbsp;of what the site looks like, what the option trees are, and how traversal through the site is done &lt;i&gt;legally&lt;/i&gt;&amp;nbsp;without attempts to subvert the site. &amp;nbsp;The next major step is the pre-attack analysis - whereby the tool attempts to build the attack sequences and tree for how the site will be attacked. &amp;nbsp;This type of phase generally involves a lot of heavy memory and processor usage and building incredibly large and complex data structures (generally in machine memory). &amp;nbsp;Once this is done the attack sequence can begin. &amp;nbsp;Once the tool is confident that all attack patterns and plans have been laid out, the attacks are launched and the tool starts to do the heavy lifting it was built for. &amp;nbsp;Inevitably during the attack process something &lt;i&gt;new&lt;/i&gt;&amp;nbsp;is discovered. &amp;nbsp;Whether at attack pattern triggers some new function, or something breaks in a beautiful way ... the system has to put that newly found functionality back into the control-stack of the application for re-analysis and another pass. &amp;nbsp;The tool will continue making the &lt;strong&gt;start&lt;/strong&gt; -&amp;gt; &lt;strong&gt;discover&amp;nbsp;&lt;/strong&gt;-&amp;gt; &lt;strong&gt;attack-build&lt;/strong&gt;&amp;nbsp;-&amp;gt; &lt;strong&gt;attack&lt;/strong&gt; -&amp;gt; &lt;strong&gt;&lt;i&gt;repeat&lt;/i&gt;&lt;/strong&gt; loop over and over as long as new things are discovered... until there is nothing new left on the discovery stack. &amp;nbsp;Once the tool reaches that state it can be understood that the attack and discovery phases are complete and the tool moves to a final attack-analysis phase. &amp;nbsp;At this point it will have to correlate, verify and validate the findings from throughout the process to make sure that there aren&amp;#39;t any issues with these findings. &amp;nbsp;The last step is to present it to the requester via a report. &amp;nbsp;Whether the report is a dashboard, a PDF, or exposted XML or CSV the reporting piece is usually pretty standard and well understood. &amp;nbsp;Having this process completely self-contained and automated is what some people seem to want - and I&amp;#39;m here to tell you that&amp;#39;s a dangerous thing to ask for.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;So now that we have the problem identified ... let&amp;#39;s go talk about what options we have, why people are required and doing this completely in an automated fashion is a bad, bad idea.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;...&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;There you have it ... the problem is now identified, unmasked, and ready to be discussed in detail. &amp;nbsp;The upcoming post will detail some of the options we have for solving this issue and what technological limitations we are faced with today, and into the future. &amp;nbsp;The last post in this series will go deep into the reasoning for why I continue to say that your brain will always be required. &amp;nbsp;Until next time!&lt;/i&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.communities.hp.com/securitysoftware/aggbug.aspx?PostID=108409" width="1" height="1"&gt;</description><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/automated+testing/default.aspx">automated testing</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/web+application+security+awareness/default.aspx">web application security awareness</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/automation/default.aspx">automation</category></item><item><title>Misunderstanding the Purpose of Automated Tools</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/06/11/misunderstanding-the-purpose-of-automated-tools.aspx</link><pubDate>Wed, 11 Jun 2008 02:29:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:83208</guid><dc:creator>RafalLos</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.communities.hp.com/securitysoftware/blogs/rafal/rsscomments.aspx?PostID=83208</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/06/11/misunderstanding-the-purpose-of-automated-tools.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp; Let&amp;#39;s get this out in the open - &lt;u&gt;there is a misunderstood purpose of automated tools in web application security&lt;/u&gt;.&amp;nbsp; Based on my personal experiences&amp;nbsp;in front of&amp;nbsp;both management and engineering teams in the last few months, I feel this needs to be addressed, and addressed now.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; I know that as a vendor of tools, we would like everyone to use our wares to find and mitigate their web application security vulnerabilities - but no one here is dilusional.&amp;nbsp; No one here in the HP ASC will ever tell you that buying/implementing our tools&amp;nbsp;will give you&amp;nbsp;total security for your web applications.&amp;nbsp; No one here will ever advocate our tools as the sole solution to an enterprise web application security strategy.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; So why do other vendors do it?&amp;nbsp; More to the point - why is it that I am often asked the question... &amp;quot;&lt;em&gt;So can you tell me if we implement (the HP ASC Security Suite, or some subset thereof) we will have secure web applications?&lt;/em&gt;&amp;quot;&amp;nbsp; Still scarrier - why do people get upset at me when I answer them with a stout &amp;quot;&lt;em&gt;No... our tools are but one part of a holistic strategy&lt;/em&gt;&amp;quot;.&amp;nbsp; Before you think that this can&amp;#39;t possibly be anyone you know, or any manager you work for... think again.&amp;nbsp; The list of places and teams that have posed this question starts in government, leads to the education sector and trails into large enterprises just the same.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; I know there is some level of education that has to happen, and to some degree vendors are to blame for trying to sell &amp;quot;Magic Bullet&amp;quot; solutions at times to make the sale but the reality is no one piece of software will fix your web security woes holistically.&amp;nbsp; Let me elaborate, and explain my case.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; First, tools are just one piece of the security pyramid (People -&amp;nbsp;Process -&amp;nbsp;Tools).&amp;nbsp; I&amp;#39;ve had that slide in my presentations as far back as I can remember presenting, and it&amp;#39;s served me well but I do think it&amp;#39;s time to preach that a little more emphatically.&amp;nbsp; People and Process are the other two key factors to a successful web-app-sec strategy - without them the tools are of very little use.&amp;nbsp; It&amp;#39;s like having a 500Hp sports car with a nice manual gearbox and not being able to drive a manual and having no gas in the tank.&amp;nbsp; Building a successful&amp;nbsp;practice takes all 3 pieces of the pyramid to be well-established in order to function.&amp;nbsp; While the *people* are the foundation of the whole pyramid, the processes and tools keep the pyramid from collapsing on itself.&amp;nbsp; Without the other 2, no one piece can stand alone... &lt;/p&gt;
&lt;p&gt;&amp;nbsp; I&amp;#39;m writing a piece on the P-P-T (People/Process/Tools), but in the mean time ... this should give you something to think about.&amp;nbsp; Let&amp;#39;s just be clear one more time... no &amp;quot;tools&amp;quot; can solve the web application security problem holistically... but I will continue to argue that HP&amp;#39;s ASC Suite provides the most comprehensive, most complete lifecycle solution out there, bar-none.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.communities.hp.com/securitysoftware/aggbug.aspx?PostID=83208" width="1" height="1"&gt;</description><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/process/default.aspx">process</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/holistic+security/default.aspx">holistic security</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/web+application+security/default.aspx">web application security</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/automated+tools/default.aspx">automated tools</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/automated+testing/default.aspx">automated testing</category></item></channel></rss>