<?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 : quality</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/quality/default.aspx</link><description>Tags: quality</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>StarWest - Where QA and Security Will Collide</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2009/07/06/starwest-where-qa-and-security-will-collide.aspx</link><pubDate>Mon, 06 Jul 2009 18:15:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:92305</guid><dc:creator>RafalLos</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.communities.hp.com/securitysoftware/blogs/rafal/rsscomments.aspx?PostID=92305</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2009/07/06/starwest-where-qa-and-security-will-collide.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size:medium;"&gt;Is &lt;i&gt;site security&lt;/i&gt; QA&amp;#39;s problem too?!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Hi everyone, I can&amp;#39;t wait for fall and the StarWest testing conference in Anaheim!&amp;nbsp; I&amp;#39;m so psyched to be presenting &amp;quot;&lt;b&gt;&lt;span style="font-size:11pt;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;QA Techniques for Identifying Workflow-Based
Security Defects&lt;/span&gt;&lt;/b&gt;&amp;quot; in what will hopefully be one of the better talks of the week.&amp;nbsp; I&amp;#39;ve been promising many of you an explanation of why QA and IT Security cannot live without each other, as it pertains to web app security, and I aim to deliver.&lt;/p&gt;
&lt;p&gt;This talk will be heavily focused on the reasons why IT Security still fails in many instances to find serious web application security defects - and what the Quality Teams can do about it.&amp;nbsp; How about that... identifying security as more than just &amp;quot;security&amp;#39;s problem&amp;quot; - it&amp;#39;s an enterprise-wide problem that bleeds very much over into the QA testing organization.&amp;nbsp; The days of the security teams doing &amp;quot;scans&amp;quot; and pitching the results over the cubicle wall to the developers are long, long over (were they ever really here?) and the days of collaborative defect mitigation throughout the application lifecycle are here.&amp;nbsp; Come listen and learn some of the techniques that the QA testing teams can use to identify security-based defects in the web applications; and understand why it&amp;#39;s not just security&amp;#39;s problem anymore.&lt;/p&gt;
&lt;p&gt;But wait!&amp;nbsp; there&amp;#39;s more!&amp;nbsp; Just in case you&amp;#39;re thinking to yourself... sure I&amp;#39;d love to go but I don&amp;#39;t think I have the travel budget - &lt;span style="color:#ff0000;"&gt;&lt;i&gt;there&amp;#39;s a discount code yours truly has gotten made up just for you, my readers!&lt;/i&gt;&lt;/span&gt;&amp;nbsp; Simply follow the instructions below - and I&amp;#39;ll see you in Anaheim at StarWest.&lt;/p&gt;
&lt;p&gt;Simply click this link: ( &lt;a target="_blank" title="Special Registration Link!" href="http://www.sqe.com/go?SW09Rafal"&gt;&lt;span style="font-size:11pt;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;http://www.sqe.com/go?SW09Rafal&lt;/span&gt;&lt;/a&gt; ) and enter the code &lt;b&gt;SWRL &lt;/b&gt;to get your discount...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="font-size:medium;"&gt;Here&amp;#39;s the abstract - just to get you psyched up too!&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;quot;Workflow-based web application security defects are
especially difficult on enterprises, because they evade traditional, simple,
point-and-scan vulnerability detection techniques.&amp;nbsp; Understanding these defects, and how/why
black-box scanners typically miss them is the key to creating a testing
strategy for successful detection and mitigation.&amp;nbsp; Rafal Los describes the critical role that
application testers play in assessing application workflows and how business
process based testing techniques uncover these flaws.&amp;nbsp; Rafal demystifies the two main types of
workflow based application vulnerabilities: business process/logic
vulnerabilities and parameter-based vulnerabilities. As the complexity of web
applications continues to increase, learn how to adjust your testing strategy
to make sure you don&amp;rsquo;t miss these unique types of defects.&amp;quot;

&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.communities.hp.com/securitysoftware/aggbug.aspx?PostID=92305" width="1" height="1"&gt;</description><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/quality/default.aspx">quality</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/security+defects/default.aspx">security defects</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/workflow+vulnerability/default.aspx">workflow vulnerability</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/StarWest/default.aspx">StarWest</category></item><item><title>Quality Engineers &amp; Testers - StarWest is Coming Up!</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2009/07/02/quality-engineers-amp-testers-starwest-is-coming-up.aspx</link><pubDate>Thu, 02 Jul 2009 20:45:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:91110</guid><dc:creator>RafalLos</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.communities.hp.com/securitysoftware/blogs/rafal/rsscomments.aspx?PostID=91110</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2009/07/02/quality-engineers-amp-testers-starwest-is-coming-up.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-family:arial,helvetica,sans-serif;"&gt;&lt;span style="font-size:small;"&gt;I&amp;#39;m thrilled to announce that I have been selected to speak at the StarWest 2009 Quality Conference (SQE) October 5-9th 2009, hosted at the DisneyLand Hotel in Annaheim, CA!&amp;nbsp; Link to the conference website is here (&lt;a target="_blank" title="SQE StarWest Conference" href="http://www.sqe.com/starwest/Schedule/Default.aspx"&gt;http://www.sqe.com/starwest/Schedule/Default.aspx&lt;/a&gt;)&lt;span style="line-height:115%;"&gt; and there are a number of awesome speakers as well!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:arial,helvetica,sans-serif;"&gt;&lt;span style="font-size:small;"&gt;The StarEast conference was chock-full of great speakers, vendors and of course yours-truly... speaking on Security topics and why the quality assurance teams are so crucial to the web application security process.&amp;nbsp; That&amp;#39;s right, I&amp;#39;ve been talking about Q/A engineering and testing teams and why they&amp;#39;re so crucial to the success of any enterprise web application security program - but now for the first time you&amp;#39;ll get the truth that the IT Security guys probably won&amp;#39;t tell you - &lt;b&gt;YOU&lt;/b&gt; are the key!&amp;nbsp; My talk on this topic promises to be riveting and will certainly have an impact on formal testing and security organizations...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:arial,helvetica,sans-serif;"&gt;&lt;span style="font-size:small;"&gt;As an added bonus - if you sign up you&amp;#39;ll get money OFF the price of your admission!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;








 
  Normal
  0
  
  
  
  
  false
  false
  false
  
  EN-US
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
   
   
  

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 





&lt;p class="MsoNormal"&gt;&lt;span style="font-family:arial,helvetica,sans-serif;"&gt;&lt;span style="font-size:small;"&gt;&lt;span class="blacktext1"&gt;&lt;span style="line-height:115%;"&gt;Register using special promo code &lt;/span&gt;&lt;/span&gt;&lt;i&gt;SKWS&lt;/i&gt; and save up to
$300! Register by September 4&lt;sup&gt;th&lt;/sup&gt; to add the Early Bird Discount for
up to $600 in total savings! Call the client support group at 888.268.8770 or
register online at: &lt;a href="https://www.sqe.com/starwest/Register/SelectConference.aspx"&gt;https://www.sqe.com/starwest/Register/SelectConference.aspx&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="color:#ff0000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:arial,helvetica,sans-serif;"&gt;I&amp;#39;ll see you all there!&lt;/span&gt;&lt;/span&gt;&lt;/span&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=91110" width="1" height="1"&gt;</description><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/quality/default.aspx">quality</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/QA/default.aspx">QA</category></item><item><title>Defining Security as a Business Requirement</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2009/02/05/defining-security-as-a-business-requirement.aspx</link><pubDate>Thu, 05 Feb 2009 04:53:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:87792</guid><dc:creator>RafalLos</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.communities.hp.com/securitysoftware/blogs/rafal/rsscomments.aspx?PostID=87792</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2009/02/05/defining-security-as-a-business-requirement.aspx#comments</comments><description>&lt;p&gt;This post is a follow-up to the previous one on QA: Defect vs. Vulnerability.&amp;nbsp; All the highly-intelligent responses I received got me thinking further, and so here I present my additional thoughts.&lt;/p&gt;&lt;p&gt;This may not be revolutionary - but given the response I received regarding the terminology difference between defect and vulnerability I think the only logical conclusion we can reach is that &lt;b&gt;if security is not a foundational business requirement, we&amp;#39;re sunk&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;To expand on this point a little more I think it&amp;#39;s important to follow non-technical critical-thinking here.&amp;nbsp; Anything that does not make it into the functional specification of an application [web or otherwise] is an afterthought.&amp;nbsp; It has been conclusively [and repeatedly] proven that anything that is not &amp;quot;baked in&amp;quot; as a requirement is nearly impossible to &lt;i&gt;fix&lt;/i&gt; later on, as an after-thought.&amp;nbsp; So we&amp;#39;re presented with a puzzler.&amp;nbsp; &lt;i&gt;Security&lt;/i&gt; must be a business-level requirement.&amp;nbsp; So how then does one translate vulnerabilities into a business requirement, sanely?&amp;nbsp; Simply stating &amp;quot;... the application shall be free of unintended design flaws and security vulnerabilities&amp;quot; is like asking an architect to build a structure that will withstand every known (and unknown) possible attack - it&amp;#39;s simply illogical.&lt;/p&gt;&lt;p&gt;Strangely, program leads that manage these large-scale web applications at the heart of nearly every major breach want concise, identified things to &lt;i&gt;not put into the code&lt;/i&gt;... but since that list is a moving target the security team gets penalized for the nature of security itself.&amp;nbsp; This is the reason why black-listing input is a losing proposition... you&amp;#39;re always going to be in an arms race with the &lt;i&gt;bad guys&lt;/i&gt;... and you&amp;#39;ll never win.&lt;/p&gt;&lt;p&gt;I&amp;#39;ve heard some recent conversations hit the wire around using the CWE Top 25 or some other list as a definitive list of &lt;i&gt;coding errors to avoid in web applications&lt;/i&gt; but I&amp;#39;m not sure if that will actually solve the problem.&amp;nbsp; The problem with this approach is and will be that these lists are exclusionary measures.&amp;nbsp; These lists illustrate what we must &lt;i&gt;exclude&lt;/i&gt; to be [more] secure.&amp;nbsp; Turning it around and making statements like &lt;i&gt;validate all input&lt;/i&gt; makes little more sense, especially given that &lt;i&gt;input validation&lt;/i&gt; must be defined in the context of the situation, and there is never a one-size-fits-all answer.&amp;nbsp; To illustrate the point further - input validation may mean excluding certain character sets/patterns &lt;i&gt;and&lt;/i&gt; pre-defining acceptable input options ... but this does not account for things like free-form input or other use-case specific examples.&lt;/p&gt;&lt;p&gt;In the end, the crux of the problem lies in the nature of security vulnerabilities.&amp;nbsp; Security vulnerabilities are a moving target and although they can be loosely defined and lumpted into Top 7/10/25 lists it is not logical to consider these lists complete or even functional for designing software.&amp;nbsp; Will a web application be &lt;i&gt;secure&lt;/i&gt; if it follows the CWE Top 25 and addresses those issues?&amp;nbsp; What about the OWASP Top 10?&amp;nbsp; I don&amp;#39;t think anyone has that answer, or at least is willing to stake their reputation on it.&lt;/p&gt;&lt;p&gt;So back to defining &lt;i&gt;security&lt;/i&gt; as a &lt;i&gt;business-level requirement&lt;/i&gt;... can it be done?&amp;nbsp; Can one clearly articulate requirements to secure data/transactions/processes/whatever *before* the technologists get involved; meaning, before the means to execution are defined?&amp;nbsp; I will leave that up for debate. &lt;br /&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=87792" width="1" height="1"&gt;</description><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/functional+specification/default.aspx">functional specification</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/quality/default.aspx">quality</category><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/application+security/default.aspx">application security</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/web+application+security+business+case/default.aspx">web application security business case</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/software+quality/default.aspx">software quality</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/software+security/default.aspx">software security</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/QA/default.aspx">QA</category></item><item><title>"Security Vulnerability" != "Defect"  ; why?</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/04/01/Security-vulnerabilities-as-quality-defects_3F00_.aspx</link><pubDate>Tue, 01 Apr 2008 11:18:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:75801</guid><dc:creator>Rafal Los</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.communities.hp.com/securitysoftware/blogs/rafal/rsscomments.aspx?PostID=75801</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/04/01/Security-vulnerabilities-as-quality-defects_3F00_.aspx#comments</comments><description>&lt;p&gt;It&amp;#39;s one of those obvious things.&amp;nbsp; A defect is a defect, right?&amp;nbsp; Whether the airbag is faulty, or the gas cap doesn&amp;#39;t hold pressure... a defect is a defect.&amp;nbsp; The strange thing is - it hasn&amp;#39;t been that way, and still isn&amp;#39;t that way, in most of the IT shops I&amp;#39;ve been in.&amp;nbsp; Why?&lt;/p&gt;&lt;p&gt;The reason is simple.&amp;nbsp; Historically, &lt;em&gt;security vulnerabilities&lt;/em&gt;&lt;strong&gt; &lt;/strong&gt;have been in a class all their own.&amp;nbsp; In an attempt to put some urgency to the matter, security professionals have labeled defects in the security of their projects (in this case I&amp;#39;m talking about web applications) as an entirely different thing than a functional defect.&amp;nbsp; What we didn&amp;#39;t realize is that we were actually doing a dis-service to ourselves and the security cause.&amp;nbsp; You may not agree with me right now - but I&amp;#39;ll explain this more clearly, and I think you&amp;#39;ll be on board with my thought process.&lt;/p&gt;&lt;p&gt;Let&amp;#39;s talk about defects, in general and then apply it to the matter at hand.&amp;nbsp; First, let&amp;#39;s identify what a defect is...&amp;nbsp; A defect is, in the dictionary sense (cut from &lt;a href="http://dictionary.reference.com/browse/defect" target="_blank"&gt;dictionary.com)&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;&lt;span class="me"&gt;&lt;strong&gt;de&amp;middot;fect&lt;/strong&gt;&lt;/span&gt; &lt;span class="pronset"&gt;&lt;font color="#116699"&gt;&amp;nbsp;&lt;img border="0" height="15" src="http://cache.lexico.com/g/d/premium.gif" width="16" /&gt;&amp;nbsp; &lt;img border="0" class="luna-Img" height="4" src="http://cache.lexico.com/dictionary/graphics/luna/thinsp.png" width="2" /&gt;&lt;/font&gt;&lt;a href="https://secure.reference.com/premium/login.html?rd=2&amp;amp;u=http%3A%2F%2Fdictionary.reference.com%2Fbrowse%2Fdefect"&gt;&lt;font color="#116699"&gt;&lt;img border="0" height="18" src="http://cache.lexico.com/g/d/speaker.gif" width="17" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#116699"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;span class="show_ipapr" style="display:none;"&gt;&lt;span class="prondelim"&gt;&lt;font color="#880000" face="Arial Unicode MS"&gt;/&lt;/font&gt;&lt;/span&gt;&lt;span class="pg"&gt;&lt;em&gt;&lt;font color="#558811"&gt;n. &lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font color="#880000"&gt;&lt;span class="pron"&gt;ˈdi&lt;img border="0" class="luna-Img" height="4" src="http://cache.lexico.com/dictionary/graphics/luna/thinsp.png" width="2" /&gt;fɛkt, &lt;/span&gt;&lt;span class="pron"&gt;dɪˈfɛkt; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span class="pg"&gt;&lt;em&gt;&lt;font color="#558811"&gt;v. &lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;font color="#880000"&gt;&lt;span class="pron"&gt;dɪˈfɛkt&lt;/span&gt;&lt;span class="prondelim"&gt;&lt;font face="Arial Unicode MS"&gt;/&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#116699"&gt; &lt;/font&gt;&lt;a class="pronlink" title="Click for pronunciation key"&gt;&lt;u&gt;&lt;font color="#116699"&gt;Pronunciation Key&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;span class="pron_toggle" style="display:inline;"&gt;&lt;span class="prondelim"&gt;&lt;font color="#880000" face="Arial Unicode MS"&gt; - &lt;/font&gt;&lt;/span&gt;&lt;a class="pronlink" title="Click to show spelled pronunciation"&gt;&lt;u&gt;&lt;font color="#116699"&gt;Show Spelled Pronunciation&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="show_spellpr" style="display:inline;"&gt;&lt;span class="prondelim"&gt;&lt;font color="#880000" face="Arial Unicode MS"&gt;[&lt;/font&gt;&lt;/span&gt;&lt;span class="pg"&gt;&lt;em&gt;&lt;font color="#558811"&gt;n. &lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;font color="#880000"&gt;&lt;font face="Verdana"&gt;&lt;span class="pron"&gt;&lt;strong&gt;dee&lt;/strong&gt;-fekt, &lt;/span&gt;&lt;span class="pron"&gt;di-&lt;strong&gt;fekt&lt;/strong&gt;; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span class="pg"&gt;&lt;em&gt;&lt;font color="#558811"&gt;v. &lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;font color="#880000"&gt;&lt;span class="pron"&gt;&lt;font face="Verdana"&gt;di-&lt;strong&gt;fekt&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span class="prondelim"&gt;&lt;font face="Arial Unicode MS"&gt;]&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font color="#116699"&gt; &lt;/font&gt;&lt;a class="pronlink" title="Click for pronunciation key"&gt;&lt;u&gt;&lt;font color="#116699"&gt;Pronunciation Key&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;span class="pron_toggle" style="display:inline;"&gt;&lt;span class="prondelim"&gt;&lt;font color="#880000" face="Arial Unicode MS"&gt; - &lt;/font&gt;&lt;/span&gt;&lt;a class="pronlink" title="Click to show IPA pronunciation"&gt;&lt;u&gt;&lt;font color="#116699"&gt;Show IPA Pronunciation&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;font color="#116699"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="body"&gt;&lt;span class="pg"&gt;&lt;em&gt;&lt;font color="#558811"&gt;&amp;ndash;noun &lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;table class="luna-Ent"&gt;&lt;tr&gt;&lt;td class="dn"&gt;1.&lt;/td&gt;&lt;td&gt;a shortcoming, fault, or imperfection: &lt;span class="ital-inline"&gt;&lt;em&gt;a defect in an argument; a defect in a machine. &lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table class="luna-Ent"&gt;&lt;tr&gt;&lt;td class="dn"&gt;2.&lt;/td&gt;&lt;td&gt;lack or want, esp. of something essential to perfection or completeness; deficiency: &lt;span class="ital-inline"&gt;&lt;em&gt;a defect in hearing. &lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;OK, easy enough right?&amp;nbsp; So the first meaning is clear; a defect is a shortcoming, fault, or imperfection.&amp;nbsp; It is reasoned that a defect in a web-based application results when functionality X doesn&amp;#39;t work as required.&amp;nbsp; Say you have a button, and the &lt;em&gt;functional specification&lt;/em&gt; (we&amp;#39;ll get back to this gem in a minute) calls for the button to perform some action, A.&amp;nbsp; During the testing phase of the application, before release to production, a tester or tool is utilized to test the functionality of that button, but instead of action A happening, some other action B happens.&amp;nbsp; This is a defect.&amp;nbsp; There is no doubt in anyone&amp;#39;s mind that this immediately gets classified as a defect, put into the defect tracking system and sent back to the developer for remediation.&amp;nbsp; The defect is classified as a higher-priority defect if the function happens to be one that is showcased, or important to the overall functionality of the application.&amp;nbsp; Those of you that already use the HP Quality Center tools know exactly what I&amp;#39;m talking about, and know how this process works.&amp;nbsp; Here&amp;#39;s the strange twist though - why is quality testing only done with &lt;em&gt;good data&lt;/em&gt;?&amp;nbsp; I understand that you want to make sure that the test cases work properly - but why are the testing options limited?&amp;nbsp; The issue at hand here is a very narrow view of defects, and defect testing.&lt;/p&gt;&lt;p&gt;Back in college, I took very basic programming class and had to write a program that was a calculator.&amp;nbsp; It would ask for two inputs of numbers, and then give you an option to perform either an addition, subtraction, multiplication or division of the inputs.&amp;nbsp; Generally, it was assumed that these would be numbers, but what if they weren&amp;#39;t numbers?&amp;nbsp; Most of the students in the class, myself included, never thought about ... &amp;quot;What if someone enters a letter or some other unexpected input?&amp;quot;&amp;nbsp; Well, luckily, the professor chose my application, put it up on the screen for the whole class to see, and promptly entered a and b for the two inputs and tried to add them.&amp;nbsp; When my application core dumped, he explained to the class why I had gotten my first F on a project.&amp;nbsp; I learned a very valuable lesson that day - developers must brace their applications for unexpected input.&amp;nbsp; &amp;quot;Why would anyone want to enter something other than numbers?&amp;quot; wasn&amp;#39;t a good enough answer to explain why my application failed.&amp;nbsp; Let&amp;#39;s apply this lesson I learned back in college to today&amp;#39;s application programmers and functional testers.&lt;/p&gt;&lt;p&gt;Here are the reasons why I think security &lt;em&gt;vulnerabilities&lt;/em&gt; aren&amp;#39;t seen as &amp;quot;defects&amp;quot; in general...&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Security professionals have insisted that a vulnerability is its own separate category&lt;/strong&gt; - While it is true, some security vulnerabilities are a whole new level of &amp;quot;bad&amp;quot; they should be considered just like any other defect in the application for the sake of tracking and remediation.&amp;nbsp; Web platform managers are generally concerned with meeting the demands of their customers and producing code that is defect-free - and it&amp;#39;s our own fault that &amp;quot;vulnerabilities&amp;quot; of the security variety have become some ethereal, magical issue for security nerds to worry about.&amp;nbsp; This matter can only be fixed by changing the naming back... a vulnerability is a defect, period.&amp;nbsp; &lt;em&gt;Security vulnerabilities must be explained as &amp;quot;high-criticality defects&amp;quot; to developers, managers and customers otherwise this situation will never change.&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Functional specifications rarely, if ever - call for for security validation&lt;/strong&gt; - Functional specifications aren&amp;#39;t written by security professionals, generally.&amp;nbsp; At best, security professionals have a chance to review the functional specification way too late into the process, while the code is being written and readied for production.&amp;nbsp; This is, once again, our own fault most of the time.&amp;nbsp; The answer to this dilemma is a two-pronged attack.&amp;nbsp; &lt;em&gt;We as security professionals must educate those that write functional specifications, and enlighten them to the need for security features.&amp;nbsp; At the same time, we must work hard to have an active input in the writing and release of functional specification documents.&amp;nbsp;&lt;/em&gt; These two vectors are critical to getting secure code as an end-product.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Programmers don&amp;#39;t typically think about malicious users&lt;/strong&gt; - While it would be great to think that one day all developers will inherently write secure code because they will have &amp;quot;learned&amp;quot; what security is, and how important it is to the application - the fact is that it&amp;#39;s a pipe dream.&amp;nbsp; Developers care about one thing... meeting functional specifications in the least amount of time possible, and moving on to the next project.&amp;nbsp; Developers like to write optimized code that accomplishes the required tasks in as little time as possible.&amp;nbsp; Solving #2 above will also partly solve this problem.&amp;nbsp; In addition, &lt;em&gt;developers must be given the tools (such as static and dynamic code analysis tools as plug-ins to their IDEs) to make their jobs easier&lt;/em&gt;.&amp;nbsp; It is not reasonable to expect developers to be security experts in all aspects, so we must arm them with the tools to be experts, without having to do too much extra work or they won&amp;#39;t use those tools.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;So what have we learned today?&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Security vulnerabilities must be re-classified as easily-understandable &amp;quot;functional defects&amp;quot;&lt;/li&gt;&lt;li&gt;Funcitonal specifications must be written to include provisions for security validation&lt;/li&gt;&lt;li&gt;Quality professionals must be given the tools to test for &amp;quot;security defects&amp;quot; in web applications to close the loop in the lifecycle&lt;/li&gt;&lt;li&gt;Developers must be educated and also given the tools to write more secure code with minimal additional effort&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;-- I welcome your comments!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.communities.hp.com/securitysoftware/aggbug.aspx?PostID=75801" width="1" height="1"&gt;</description><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/defects/default.aspx">defects</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/vulnerabilities/default.aspx">vulnerabilities</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/security/default.aspx">security</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/functional+specification/default.aspx">functional specification</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/quality/default.aspx">quality</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/testing/default.aspx">testing</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/development/default.aspx">development</category></item></channel></rss>