<?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 : application security</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/application+security/default.aspx</link><description>Tags: application security</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><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>Web Application Security - Vital in Academia</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2009/01/20/web-application-security-vital-in-academia.aspx</link><pubDate>Tue, 20 Jan 2009 03:05:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:87545</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=87545</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2009/01/20/web-application-security-vital-in-academia.aspx#comments</comments><description>&lt;p&gt;&lt;font size="2"&gt;&lt;b&gt;&amp;quot;Police: School data hacked, grades altered&amp;quot;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.republicanherald.com/articles/2009/01/15/news/local_news/pr_republican.20090115.a.pg1.pr15hacker_s1.2230498_top4.txt" title="Police: School data hacked, grades altered" target="_blank"&gt;http://www.republicanherald.com/articles/2009/01/15/news/local_news/pr_republican.20090115.a.pg1.pr15hacker_s1.2230498_top4.txt &lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;&amp;nbsp;Every once in a while, we get a great example of why web application security is vital no matter where in the world you operate.&amp;nbsp; Even though academia often feels like they are the exception due to lack of funding, chaotic environments and a cornucopia of other reasons we occasionally read a news nugget that proves they are just as needy as the rest of the business world of good web application security.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; An article in the Pottsville, PA Republican Herald, posted last Thursday January 15th, 2009 identified an incident that caused a bit of a ruckus.&lt;/p&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp;&amp;quot;&lt;span&gt;Pottsville police anticipate filing charges against one or more
computer hackers who unlawfully made changes to an online grading
system used by Pottsville Area School District.&lt;br /&gt;&lt;br /&gt;“You had some
people who hacked into a school-functioned, online site and found ways
to change data that was put in there,” Pottsville police Capt. Ronald
J. Moser said Wednesday&lt;br /&gt;&lt;br /&gt;“In this case, someone figured out a
teacher’s login and password. It is still a federal offense,” said
Monica Langenberg, Shawnee, Okla., director of business development for
&lt;a href="http://classroll.com/"&gt;Classroll.com&lt;/a&gt;.&amp;quot;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp; There are several things we can gleam just from that critical quote... let&amp;#39;s address:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;First, this incident highlights the dangers of having publicly accessible grading systems and school-tied information available on the public Internet.&amp;nbsp; Perhaps the school system should evaluate the sanity of having such critical information for its students protected by a simple username/password system available to the whole of the Internet?&lt;/li&gt;&lt;li&gt;&amp;nbsp;Unless I misunderstand the content of this article... no one &amp;quot;hacked into&amp;quot; anything... the students simply guessed the login credentials of a teacher, who, coincidentally should be held accountable as well for having easily guessable credentials to such a system&lt;/li&gt;&lt;li&gt;A &amp;quot;federal offense&amp;quot;? That&amp;#39;s fascinating...&lt;/li&gt;&lt;li&gt;The student demonstrated lack of malicious intent in my view, simply by making the types of changes that would get them caught... it very well could have been done silently over time to really cause some damage&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp; What does this teach you, if you&amp;#39;ve in academia and evaluating or building an online system like this?&amp;nbsp; Secure it.&amp;nbsp; Base-level login/password authentication from 1999 isn&amp;#39;t going to work... Also because of COPPA (Child Online Privacy Protection Act) there is some much greater accountability for academic environments when it comes to protecting children and their information. &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=87545" width="1" height="1"&gt;</description><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/hacking/default.aspx">hacking</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/breach/default.aspx">breach</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/academic+hack/default.aspx">academic hack</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/student+hacker/default.aspx">student hacker</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/school+hack/default.aspx">school hack</category></item><item><title>Harsh Reality - Life in InfoSec</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/12/08/harsh-reality-life-in-infosec.aspx</link><pubDate>Mon, 08 Dec 2008 20:13:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:86982</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=86982</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/12/08/harsh-reality-life-in-infosec.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp; It&amp;#39;s Monday again, and it&amp;#39;s absolutely brain-numbingly cold here in Chicago... but I wanted to get these thoughts down before they fell out of my brain to make room for new stuff.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; Last week I had the pleasure of meeting with a group of guys that are running the Information Security practice within one of the largest and most respected retailers to the &amp;quot;hip&amp;quot; crowd... these folks live sales volume and press... good or bad.&amp;nbsp; I think they&amp;#39;ve got some extremely unique challenges so I wanted to present the angle I proposed in case it&amp;#39;s useful to anyone else.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; First off, they have a very small &amp;quot;security&amp;quot; team, mainly consistent of compliance activities and common &amp;quot;operational security&amp;quot; tasks such as identity provisioning, anti-virus, firewall, you get the picture.&amp;nbsp; They also have a relatively well-established QA team which is critical to the success of their online retail component - so the established value of that team is there.&amp;nbsp; This is unlike the value of the security team - which unfortunately doesn&amp;#39;t have a good foot-hold... not for lack of trying from what I heard.&amp;nbsp; Their problem?&amp;nbsp; No one cares about security.&amp;nbsp; (Sound familiar yet?)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; To overcome some of these challenges we focused on what was important to the business from an IT perspective - Software Quality.&amp;nbsp; More specifically the quality of the online application(s) was important to this customer.&amp;nbsp; Having their eCommerce site(s) up, and available for business is top-priority.&amp;nbsp; Given that information we can quickly re-tool our approach and make *security* a component of the overall quality cycle.&amp;nbsp; I know, some of you security purists are probably mad at me right now, but this is the harsh reality of life in a downturn.&amp;nbsp; Why not though, use the business-critical areas to get the job done?&amp;nbsp; The Security guys know they need tighter security but maybe the business doesn&amp;#39;t care so much - except to check the box of compliance (PCI-DSS) - so I think taking a modified approach is the only way to fly in cases like this.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; Making security a sub-component of overall software quality works like this.&amp;nbsp; Security, amongst other things, aims to keep a site/application &amp;quot;up and running&amp;quot; and resistant to hacking.&amp;nbsp; Now, hacking often-times causes Denial-of-Service conditions so there we have link #1 to quality and uptime.&amp;nbsp; The second link comes in a little more vague.&amp;nbsp; Hacking an application means loss of data, potentially - and that can lead to downtime and disrupt the consumer&amp;#39;s ability to purchase or buy - basically data corruption.&amp;nbsp; I know these aren&amp;#39;t ideal links, and you&amp;#39;ll like the PCI &amp;quot;compliance&amp;quot; link even less I&amp;#39;m sure - but there you have it.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; Those 3 links into application quality may be the difference between *&lt;strong&gt;zero&lt;/strong&gt;* security budget and getting *some* security budget.&amp;nbsp; Now, the question of &lt;strong&gt;TTH&lt;/strong&gt; (from Jeremiah Grossman, Time-To-Hack) may come into play again... we have to ask ourselves if what we&amp;#39;re doing makes any difference in the time that it takes to take the app down, and steal the data.&amp;nbsp; Maybe yes, maybe no right?&amp;nbsp; The main point here for these guys is to demonstrate due-dilligence for PCI comliance.&amp;nbsp; While this is a bit of a sad commentary on the way of the world and how much security *&lt;strong&gt;really&lt;/strong&gt;* matters... at least they&amp;#39;re doing something.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp; Keep pushing guys, you&amp;#39;re on the right track!&lt;/em&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=86982" width="1" height="1"&gt;</description><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/PCI+DSS/default.aspx">PCI DSS</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/PCI+Compliance/default.aspx">PCI Compliance</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/software+quality/default.aspx">software quality</category></item><item><title>ViViT - Madison, Wisconsin</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/12/02/vivit-madison-wisconsin.aspx</link><pubDate>Tue, 02 Dec 2008 22:02:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:86857</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=86857</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/12/02/vivit-madison-wisconsin.aspx#comments</comments><description>&lt;p&gt;Those of you in or around Madison, WI ... come see me talk about Application Security Governance on Thursday, December 4th.&amp;nbsp; If you need more information, contact me directly and I will send you the event invitation.&lt;/p&gt;
&lt;p&gt;This should be a great event and a chance for a lot of informal conversation and panel-type discussion.&amp;nbsp; See you there!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.communities.hp.com/securitysoftware/aggbug.aspx?PostID=86857" width="1" height="1"&gt;</description><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/ViViT/default.aspx">ViViT</category></item><item><title>Obstacles to Building a Successful Security Program [part 1]</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/09/04/obstacles-to-building-a-successful-security-program.aspx</link><pubDate>Thu, 04 Sep 2008 03:04:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:84596</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=84596</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/09/04/obstacles-to-building-a-successful-security-program.aspx#comments</comments><description>&lt;p&gt;Since February, I&amp;#39;ve been traveling and meeting with IT Security leaders, CISOs, Program Managers and other folks in charge of application security for their business and a few themes have recurred. I&amp;#39;m fascinated by the differing scenarios and situations that security leaders are placed in but it&amp;#39;s even more interesting to know that many of you are in the same boat.&lt;/p&gt;
&lt;p&gt;It&amp;#39;s clearly *not* that security leaders don&amp;#39;t want to build well-integrated, holistic application security programs, that much is certain. The problem is no one that these security leaders report to *cares*. It&amp;#39;s just baffling how many of you are faced with a compliance exercise, client requirement, or some internal need for &amp;quot;proof that application security is done&amp;quot; but have so little power to actually do anything more than the bare minimum.&lt;/p&gt;
&lt;p&gt;I&amp;nbsp;guess it&amp;#39;s telling of the times we live in, and perhaps also indicative of the state of the world economy when we are asked to forgo the &amp;quot;strategic&amp;quot; and chase the &amp;quot;tactical&amp;quot; solutions. None of you will argue that the tactical solutions [one-time code reviews, single point-solution tools, etc] is a good idea but this is what you&amp;#39;re required to execute on, and then move on to the next fire-drill item. It&amp;#39;s enough to drive a person mad.&lt;/p&gt;
&lt;p&gt;Well... I know of at least a few of you [and hats off to you, you know who you are] that are finding ways of making the long-term, strategic and holistic programs work in your business. It clearly takes some creativity and guts - but you&amp;#39;re doing it. I&amp;#39;m going to, over the course of the coming days, document some of your endeavors, the struggles, the failures and successes - names will be left out to protect the innocent, of course. Now would be a good time to pay attention folks... there are some real lessons to be learned here, and maybe you can use something and take it back to your business or career and build off these stories. Until next time...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.communities.hp.com/securitysoftware/aggbug.aspx?PostID=84596" width="1" height="1"&gt;</description><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/application+security+program+challenges/default.aspx">application security program challenges</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/application+security+program/default.aspx">application security program</category></item><item><title>Building a Web Application Security Program Without a Budget</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/07/29/building-a-web-application-security-program-without-a-budget.aspx</link><pubDate>Tue, 29 Jul 2008 20:12:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:84061</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=84061</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/07/29/building-a-web-application-security-program-without-a-budget.aspx#comments</comments><description>&lt;p&gt;As promised, I&amp;#39;m writing up the first segment of implementing a web application security program without having to spend (or add spend to) your own budget.&amp;nbsp; The current economic conditions are stiffling technology investments and security programs aren&amp;#39;t much better off than they were this time last year.&amp;nbsp; In fact... security&amp;#39;s budgets have shrunk.&amp;nbsp; I know, no one reading this is shocked.&lt;/p&gt;
&lt;p&gt;What I am going to give you some support no here in this first piece is gathering the information you need not to have to spend anything.&amp;nbsp; This is quite simple, but rarely done I assure you.&lt;/p&gt;
&lt;p&gt;First thing you should do is infiltrate the opposition.&amp;nbsp; In case you haven&amp;#39;t noticed, critical business functions rarely get their budgets cut so in order to get the same type of treatment you have to learn what they&amp;#39;re doing differently than you.&amp;nbsp; Follow these simple steps, and you&amp;#39;ll be one step closer to program success.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;Identify the heads of each of the following departments within your organization:&lt;/div&gt;&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;Fraud&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Risk&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Legal&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Compliance&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;li&gt;
&lt;div&gt;Ask them for their list of initiatives for next year and beyond&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Ask them to identify which of those initiatives have a &amp;quot;Web application&amp;quot; component&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Sit with them in their office at least once to understand their priorities, and reasoning behind those priorities&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Provide feedback for each web application-related component to identify &amp;quot;security needs&amp;quot;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Confer with the owner/sponsor (person whom you sat with) to ensure those needs are &amp;quot;baked into&amp;quot; their budget estimates&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Add each of those projects identified in #6 to *your budget* with a dollar-amount of zero (insert reference to #6 above for clarity)&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Alright.&amp;nbsp; There you have it.&amp;nbsp; These are the steps that I&amp;#39;ve personally successfully used in the past, and I know that this works a good majority of the time across a wide range of companies and industries.&lt;/p&gt;
&lt;p&gt;Now that you&amp;#39;ve got this gameplan ahead of you... you may need some coaching on how to position your requirements to the various department heads for step #6 in the process.&amp;nbsp; I&amp;#39;ll detail some of those tricks next.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.communities.hp.com/securitysoftware/aggbug.aspx?PostID=84061" width="1" height="1"&gt;</description><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/budget/default.aspx">budget</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/securitycurity+program/default.aspx">securitycurity program</category></item><item><title>Input Validation Strategy - Black vs. White -listing</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/06/26/blacklisting-an-arms-race-we-can-t-win.aspx</link><pubDate>Thu, 26 Jun 2008 17:00:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:83450</guid><dc:creator>RafalLos</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.communities.hp.com/securitysoftware/blogs/rafal/rsscomments.aspx?PostID=83450</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/06/26/blacklisting-an-arms-race-we-can-t-win.aspx#comments</comments><description>&lt;p class="MsoNormal" style="MARGIN:5pt 0in;LINE-HEIGHT:normal;mso-pagination:none;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;span style="mso-tab-count:1;"&gt;&lt;em&gt;[This post is a little lengthy, but necessarily so.&amp;nbsp;&amp;nbsp;Get a&amp;nbsp;beverage, sit back, and&amp;nbsp;learn something]&lt;/em&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;I&amp;#39;ve recently spent some time in front of a group of development-oriented professionals and the talk I gave broke down at a certain point, and I felt like I needed to write this one up. What happened was not entirely unexpected but I was a little surprised at the tenacity of the group in their arguments. At one point I felt like I was going to be chased into the windmill by the villagers and burned... The good news is these developers were willing to listen which is all I ask for.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;The debate over whether to default-deny or default-allow is one that extends well beyond the web application security world. In fact, this is a principle that&amp;#39;s applied to the real-world all over the place. Night clubs, airport [in]security (*chuckle*), and many other examples of this type of methodology abound. Perhaps the quintessential example of default-deny (white-listing) is the operation of 99% of the world&amp;#39;s firewalls. When we all started building networks we would block the bad stuff and allow everything. Over time (and quite quickly) we security folks realized we were getting beaten, badly, as the bad guys could come up with attacks faster than we could close off ports, so we changed our approach. The new approach was to default-deny everything and only allow what we knew was OK or supposedly semi-trusted. Over time this became the standard and now I feel it&amp;#39;s time for the Web Application Development comunity to start thinking of this or face the harsh lessons (or continue to face those harsh lessons) like we firewall jockeys did back in the day.&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Let&amp;#39;s first address the concepts, just to make sure everyone has the same baseline.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The two main concepts at odds are white vs. black-listing for input validation and sanitization.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;A quick explanation of the two works like this:&lt;/font&gt;&lt;/span&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:5pt 0in;LINE-HEIGHT:normal;mso-pagination:none;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;Black-listing: Allow anything, and create a list (blacklist) of disallowed characters, or character combinations (typically done through a Regular Expression RegExpr)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:5pt 0in;LINE-HEIGHT:normal;mso-pagination:none;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;White-listing: Disallow everything except for specifically identified character sets and combinations (typically done through a Regular Expression RegExpr)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Now that you have the basics down let’s cover the question of which is appropriate.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Of course, everyone has their personal take on this topic but I honestly do feel like there is a right answer here.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;I’ll present the facts and will reserve my personal comment and recommendation for the end.&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Since most web applications are built with maximum user operability and compatibility in mind, blacklisting generally sounds like the immediate better idea.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Immediately when validation is brought up to developers the question of complexity rears its ugly head.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Why not just allow everything and have some “security device” (software, hardware, whatever) do the security checking?&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The simple answer to that question is this – if you rely on a 3&lt;sup&gt;rd&lt;/sup&gt; party “bandaid” device you’re in trouble from the start.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Security must be done at the heart, in the belly of the beast, inside the application – where else does full knowledge of application content and context live?&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Having addressed complexity, and taking it as a given (some complexity addition is inherently necessary) we have to address the requirements of the application to figure out which method of validation is feasible.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;At the end of the day there is no one-size-fits-all solution to this problem.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Each individual application must be analyzed and addressed page by page, form by form, field by field.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The general rules still govern the task of validation though – simplicity is preferred.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Always remember the KISS (Keep It Simple Stupid) principle when coding… or building anything for that matter.&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;There are issues here which very realistically can make either option viable such as the need to input free-form text fields where a tolerance needs to be added (requires the characters &amp;lt; and &amp;gt; which are known to be used in XSS or Cross-Site Scripting) and when a name field will be accommodating Seamus O’Malley (the ‘ is a great SQL injection attack staple) comes up.&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; But think of it this way – pretend you own a night club (work with me here).&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;You, the owner, hire a bouncer and tell him to monitor carefully who gets into your club.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;You start by saying no one in shorts and a T-shirt only to later find people on your dance floor wearing ball caps.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;You then add ball caps to the disallowed list only to notice sandal-clad patrons.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;You then add sandals to find cut-off jeans… and on and on.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Finally you get annoyed and create a new policy, only people wearing formal dress-clothes are allowed in, everyone else stays out… this is a much healthier approach than trying to continually keep up with what the next unwanted trend is.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This is identical in the development of web applications.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;You don’t want to spend your days and weeks into eternity trying to continually update your “blacklist file” with all the things that are disallowed, and building regular expressions to disallow them.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;You’re never going to be done, and there will always be some permutation of an attack that will slip past you.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;By now the benefits of white-listing should be apparent – but what if you run into cases where a simple white-list isn’t appropriate?&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;What if you &lt;i style="mso-bidi-font-style:normal;"&gt;do&lt;/i&gt; have to allow most-characters in the English character set?&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Are there cases where the only real and viable approach is to build black-lists?&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The answer to this last question is an emphatic yes.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Just doing one or the other often either entirely fails, or becomes very difficult to work with.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;For example, if you have to include the greater-than (&amp;gt;) and less-than (&amp;lt;) characters – you should write regular expressions to make sure that those characters aren’t part of a script tag … right?&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;My point is this – you’re never going to win trying to keep up with the hackers by building a black-list.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;I can personally guarantee you this.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;If you’re extremely lucky – and very good at security/programming – you may be able to hit a 30% effectiveness with black-listing.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;That’s still overwhelmingly poor… I would hope you understand that.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;But… in conjunction with a white-list that is well defined this could make your application not only safe today – but also future-proof your code.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;If Cross-Site Scripting (XSS) is what you’re worried about… then you can feel pretty safe is your server-side validator throws out any non numeric characters [0-9].&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;You can build code that is resilient to future attacks (not 100% future-proof, mind you).&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font face="times new roman,times"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;So there you have it…the low-down on validation based on white/black-listing.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Which is appropriate for your application?&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Only you and your security team will be able to determine that based on specification, functional requirements, and security need.&lt;/font&gt;&lt;/span&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.communities.hp.com/securitysoftware/aggbug.aspx?PostID=83450" width="1" height="1"&gt;</description><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/input+validation/default.aspx">input validation</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/blacklist/default.aspx">blacklist</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/application+development/default.aspx">application development</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/whitelist/default.aspx">whitelist</category></item><item><title>Wrong Message, Wrong Audience</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/06/17/wrong-message-wrong-audience.aspx</link><pubDate>Tue, 17 Jun 2008 03:26:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:83273</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=83273</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/06/17/wrong-message-wrong-audience.aspx#comments</comments><description>&lt;p&gt;You&amp;#39;re delivering the wrong message, to the wrong audience.&lt;/p&gt;&lt;p&gt;&amp;nbsp; Don&amp;#39;t believe me?&amp;nbsp; Let&amp;#39;s look at the attendance of workshops and conferences - now look at the message that&amp;#39;s being delivered.&amp;nbsp; I&amp;#39;m speaking of course specifically on web application security here.&amp;nbsp; A recent article on &lt;a href="http://jeremiahgrossman.blogspot.com/2008/06/developers-dont-go-to-security.html" title="Jeremiah Grossman&amp;#39;s Blog" target="_blank"&gt;Jeremiah Grossman&amp;#39;s blog&lt;/a&gt; made me think, what do we (as security professionals, and industry &amp;quot;experts&amp;quot;, do?)&amp;nbsp; I feel like it&amp;#39;s our responsibility to educate and bring the correct message to the people who will really benefit.&amp;nbsp; Interestingly enough, I feel like we&amp;#39;re failing to do this to any beneficial degree.&lt;/p&gt;&lt;p&gt;&amp;nbsp; It&amp;#39;s one thing to want to deliver software security as a message but an entirely different thing to deliver it to the right people who will actually benefit from the message.&amp;nbsp; I honestly feel like I can&amp;#39;t stress this enough. &lt;/p&gt;&lt;p&gt;&amp;nbsp; I think it&amp;#39;s wonderful that security is being preached at conferences all over the place, from quality to engineering of software to process management - but the real shortcoming is in who is hearing specifically which message.&amp;nbsp; As a speaker I can tell you that if I deliver the same message to every audience it will be lost more often than it is understood.&amp;nbsp; Tailoring the message is so important.&amp;nbsp; &amp;quot;The message&amp;quot; can be what ever you&amp;#39;re delivering on - for me it&amp;#39;s mostly how to build better web-based applications resilient to subversion (otherwise known as &amp;quot;hacking&amp;quot;) but again - this can be whatever you specifically are trying to convey.&lt;/p&gt;&lt;p&gt;&amp;nbsp; In order to understand how better to deliver a talk with some punch the key is to understand the audience... I&amp;#39;ve taken my notes from the past several months of conference speaking and will deconstruct the audience for your benefit here...&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Management &lt;/b&gt;- Of course managers to go conferences, workshops, and talks because every once in a while they feel the need to stay relevant.&amp;nbsp; I can say this without reserve because I was there, and I know for a fact that most managers are so busy trying to make sure their teams are delivering that they often have very little time to do much else - and by the time they look up from their desks technology has passed them by and they are relics.&amp;nbsp; The answer to this is to hit a conference every once in a while and hear what the topics of the day are - a wise choice indeed.&amp;nbsp; The manager as a target audience is very complex but can be simply deconstructed as follows:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Goals: Understand the high-level message being delivered, the current topic and how it applies to their daily life as a steward of the business &lt;/li&gt;&lt;li&gt;Challenges: Unfortunately, being that few managers are really current on technical speak it&amp;#39;s very easy to lose a mangement audience in the details, while they want to hear your message don&amp;#39;t over-complicate it&lt;/li&gt;&lt;li&gt;Win-Win: Present the topic in a way that can both delivers your point without losing meaning while at the same time making it relevant to the manager&amp;#39;s everyday work-life... a tricky thing, I know!&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Developers &lt;/b&gt;- Developers are a rare gem at conferences where security professionals are speaking, sadly.&amp;nbsp; Developers are keen on making stuff run faster, better, and making their lives less complicated.&amp;nbsp; Notice that I didn&amp;#39;t necessarily mention security in the stuff developers are keen on - it&amp;#39;s our job as security folks to get them excited about writing secure code and getting them to come to conferences and workshops is a great start but the issue then becomes the way in which we deliver the message.&amp;nbsp; I&amp;#39;ll deconstruct developers here:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Goals: Learn the hot new &amp;quot;hacks&amp;quot; and cool code ninja skills which make them more marketable and give them greater ability to innovate and build something truly incredible with their code skills.&amp;nbsp; Developers want to be able to write cool code, faster, and with less effort, period.&lt;/li&gt;&lt;li&gt;Challenges: As I&amp;#39;ve already pointed out, security doesn&amp;#39;t often factor into the mind of a developer.&amp;nbsp; We&amp;#39;ve been trying for years to change that and to some degree it&amp;#39;s working but the percentage of security-conscious developers is still very, very low.&lt;/li&gt;&lt;li&gt;Win-Win: Developers aren&amp;#39;t necessarily purposefully ignorant of security, just call it...agnostic.&amp;nbsp; If we can find a way to make writing secure code less painful, and more... developer-centric they&amp;#39;ll adopt our principles and everyone wins.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Security Professionals&lt;/b&gt; - Preaching to the choir, althoughit&amp;#39;s often the choir which hasn&amp;#39;t heard the message.&amp;nbsp; I can&amp;#39;t tell you how many times I&amp;#39;ve been in front of a security-oriented group presenting and they&amp;#39;re looking at me like I&amp;#39;m a talking Polar Bear... seriously.&amp;nbsp; Security professionals have a hard time keeping up with the technologies they support - it goes with the job - and so hearing something that&amp;#39;s a niche piece is often intriguing but we have to find a way to make the message stick!&amp;nbsp; Let&amp;#39;s deconstruct a security audience...&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Goals: Hear the message, learn the &amp;quot;cool hack&amp;quot; they can take back to their team/manager to feel like they&amp;#39;re abreast of security.&amp;nbsp; In security it&amp;#39;s all about staying relevant and up-to-date and niche presentations attract security people like flies to honey.&lt;/li&gt;&lt;li&gt;Challenges: Quite simply put - the challenge with preaching to your own audience is that they see things in black and white.&amp;nbsp; Security peers tend to see web application security in a binary fashion; secure or not.&amp;nbsp; This creates a problem some of the time as if we deliver a strong message, say on a new AJAX vulnerabiltiy, the security staff can miss the forest (in this case the &amp;#39;big picture&amp;#39; of security) for the trees (the specific new &amp;quot;hack&amp;quot;) and actually do some reputational damage to themselves within the realm of corporate IT&lt;/li&gt;&lt;li&gt;Win-Win: IF we can provide the right amount of guidance with relevant knowledge we can spur security professionals to make better policies and serve their business better.&amp;nbsp; The goal for us as speakers is to blend technology with intelligence to help mold the perfect security professional - one that is business savvy and security smart&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&amp;quot;&lt;b&gt;Engineers&lt;/b&gt;&amp;quot; - This is the catch-all category, as far as I&amp;#39;m concerned.&amp;nbsp; These are the other people who don&amp;#39;t necessarily fit into the stack above.&amp;nbsp; You&amp;#39;ve got a mixed bag with this, and it&amp;#39;s a challange to make it work, but I&amp;#39;ll deconstruct this audience type thus:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Goals: Learn something, take it back and apply it to work - maybe, if it&amp;#39;s relevant and applicable.&amp;nbsp; (The secret is since we&amp;#39;re talking security it&amp;#39;s &lt;i&gt;always applicable&lt;/i&gt;)&lt;/li&gt;&lt;li&gt;Challenges: Making security a relevant topic.&amp;nbsp; How do you make web application security relevant to a generic group of IT people?&amp;nbsp; Blend the right amount of technology (so as not to go over anyone&amp;#39;s head) with the aspects of IT that make it important to just about everyone - make security &amp;quot;real&amp;quot; with examples from all different sources&lt;/li&gt;&lt;li&gt;Win-Win: The best-case scenario here is to make an impression on someone so that the next time someone says security - they flash back to your talk and recall the message you gave, and as a bonus attempt to apply that (or at least know where to get more information, and point someone there).&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp; There you have it.&amp;nbsp; I hope this has been helpful - so that the next time you&amp;#39;re standing there in front of your audience you&amp;#39;ve got the right mindset and the right goals, challenges, and winning strategy.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Good luck!&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.communities.hp.com/securitysoftware/aggbug.aspx?PostID=83273" width="1" height="1"&gt;</description><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/educating+developers/default.aspx">educating developers</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/education/default.aspx">education</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/audience/default.aspx">audience</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/speaking/default.aspx">speaking</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/conferences/default.aspx">conferences</category></item></channel></rss>