<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web Admin Blog &#187; Security</title>
	<atom:link href="http://www.webadminblog.com/index.php/tag/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webadminblog.com</link>
	<description>Real Web Admins.  Real World Experience.</description>
	<lastBuildDate>Wed, 25 May 2011 03:02:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Demanding Secure Developers</title>
		<link>http://www.webadminblog.com/index.php/2011/04/26/demanding-secure-developers/</link>
		<comments>http://www.webadminblog.com/index.php/2011/04/26/demanding-secure-developers/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 21:59:04 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Web Application Security]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[cs]]></category>
		<category><![CDATA[curriculum]]></category>
		<category><![CDATA[demand]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[secure]]></category>
		<category><![CDATA[university]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=490</guid>
		<description><![CDATA[Much like many other companies these days, National Instruments hires many of our developers straight out of school. Many times when engaging with these new hire developers, I will ask them what kind of security they learned at their university. In almost all cases I've found that the answer hasn't changed since I graduated back [...]]]></description>
			<content:encoded><![CDATA[<p>Much like many other companies these days, National Instruments hires many of our developers straight out of school. Many times when engaging with these new hire developers, I will ask them what kind of security they learned at their university. In almost all cases I've found that the answer hasn't changed since I graduated back in 2002. Occassionally I'll get a developer who mentions one particular professor or class where they discussed secure coding practices, but most of the time the answer is "I didn't learn security in school". This absolutely kills me. It's like asking an architect to design a building without them knowing anything about support structures and load distribution. The end result may look awesome on the outside, but the slightest breeze will knock it over. With computers being embedded into literally every aspect of our society, do you really want code that crumbles the moment a user does something other than what was explicitly intended?</p>
<p>This leads me to the conclusion that security should be considered a fundamental part of code development and not an afterthought. We should be teaching security to students at a University level so that when they graduate, corporations don't spend valuable time re-training them on proper development techniques. I've heard rumors of large companies like Oracle actually being able to impact college curriculum by telling universities they simply won't hire developers without security training. Unfortunately, most companies aren't in a position to make demands like that, but it certainly wouldn't hurt to develop relationships with faculty at your local university and tell them what you'd like to see out of their students. I did some poking around on the internet and it seems like some professors are already starting to get the memo. For example, I found a great paper written by three professors at the USAF Academy Dept. of Computer Science called <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.21.6478&amp;rep=rep1&amp;type=pdf">Incorporating Security Issues Throughout The Computer Science Curriculum</a> where they say:</p>
<blockquote><p>While the general public is becoming more aware of security issues, what are our universities doing to produce graduates ready to address our security needs?  Computer science as a discipline has matured to the point that students are regularly in tructed in software engineering principles--they learn the importance of life cycle issues in the development and maintenance of software.  Where are they receiving similar instruction on security concerns in the software life cycle?  The authors propose that security should be taught throughout every computer science curriculum--that security should always be a concern and should be considered in the development of all software just as structured programming and documentation are.</p></blockquote>
<p>Gentlemen, I couldn't agree more.  Security needs to be a foundational piece of every Computer Science program in the country.  Not one class.  Not one professor.  Secure programming techniques need to be a consideration in every CS class in every university.  Universities teach students how to write functions, create object-oriented code, and do proper documentation, but when graduates don't know the basic tenets of input validation, then we have a real problem.  If you agree with me, then I challenge you to write to the Dean of your local CS program and ask them what they are doing to ensure graduates are familiar with secure coding practices.  I'd be very interested in hearing back from you as to what their response was.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2011/04/26/demanding-secure-developers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Physical Security FAIL :-(</title>
		<link>http://www.webadminblog.com/index.php/2010/12/17/physical-security-fail/</link>
		<comments>http://www.webadminblog.com/index.php/2010/12/17/physical-security-fail/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 22:45:08 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Physical]]></category>
		<category><![CDATA[confidential]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[documents]]></category>
		<category><![CDATA[iron]]></category>
		<category><![CDATA[lock]]></category>
		<category><![CDATA[mountain]]></category>
		<category><![CDATA[physical]]></category>
		<category><![CDATA[secure]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[sensitive]]></category>
		<category><![CDATA[shred]]></category>
		<category><![CDATA[shredding]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=484</guid>
		<description><![CDATA[Notice anything wrong with this picture? I was walking by one of the Iron Mountain Secure Shredding bins at work one day several months ago and noticed that the lock wasn't actually locked. Being the security conscious individual that I am, I tried to latch the lock again, but the lock was so rusted that [...]]]></description>
			<content:encoded><![CDATA[<p>Notice anything wrong with this picture?</p>
<p><a href="http://www.webadminblog.com/wp-content/uploads/2010/12/IMAG0040.jpg"><img src="http://www.webadminblog.com/wp-content/uploads/2010/12/IMAG0040-300x179.jpg" alt="Iron mountain lock is unlocked." title="Iron Mountain Lock" width="300" height="179" class="alignleft size-medium wp-image-485" /></a></p>
<p>I was walking by one of the Iron Mountain Secure Shredding bins at work one day several months ago and noticed that the lock wasn't actually locked.  Being the security conscious individual that I am, I tried to latch the lock again, but the lock was so rusted that it wouldn't close as hard as I tried.  I can't just leave it there like that so I call the number on the bin's label and there is an automated message that tells me that they're not taking local calls anymore and gave me a different number to try.  I call that number and they ask me for my company ID number which I had no idea what it was.  She informed me that without that ID number I couldn't submit a support request.  I informed the lady that this bin contained sensitive personal and financial information and that the issue couldn't wait for some random company ID to be found.  Fortunately, she gave in and created the support ticket for me saying that I should hear back from someone within four hours.</p>
<p>One week later, on Friday, Iron Mountain finally calls me back and says that they will come to replace the lock the following Monday before 5 PM.  When the lock hadn't been replaced yet on Monday evening, I called Iron Mountain back up.  Looking at their records, they showed that a new lock had been delivered, but they had no idea where and the signature was illegible.  I work on a three-building campus with 14 floors between them and almost 3,000 people.  If they can't tell me where the lock is, then there's no way for me to track it down.  They said that they would investigate and call me back.</p>
<p>After not hearing back from them again for a couple of days, I called them back.  The woman I spoke with had no real update on the investigation.  She said that she would send another message "downstairs" and escalate to her supervisor.  At this point it had been almost three weeks with sensitive documents sitting in a bin with a malfunctioning lock.  The next day they called me back and said they were never able to track down who the new lock was left with so they would bring us a new one at no charge.  Finally, after a total of 24 days with a unlocked Secure Shredding bin, Iron Mountain was able to replace the lock.  Iron Mountain......FAIL.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2010/12/17/physical-security-fail/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Auditors Just Don&#8217;t Understand Security</title>
		<link>http://www.webadminblog.com/index.php/2010/07/02/auditors-just-dont-understand-security/</link>
		<comments>http://www.webadminblog.com/index.php/2010/07/02/auditors-just-dont-understand-security/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 16:17:07 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[auditors]]></category>
		<category><![CDATA[checklist]]></category>
		<category><![CDATA[clear]]></category>
		<category><![CDATA[cleartext]]></category>
		<category><![CDATA[compliance]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[pgp]]></category>
		<category><![CDATA[secure]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[transfer]]></category>
		<category><![CDATA[understand]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=471</guid>
		<description><![CDATA[Part of my new role as the Information Security Program Owner at NI is taking care of our regulatory compliance concerns which means I spend quite a bit of time dealing with auditors. Now auditors are nice people and I want to preface what I'll say next by saying that I think auditors do perform [...]]]></description>
			<content:encoded><![CDATA[<p>Part of my new role as the Information Security Program Owner at NI is taking care of our regulatory compliance concerns which means I spend quite a bit of time dealing with auditors.  Now auditors are nice people and I want to preface what I'll say next by saying that I think auditors do perform a great service to companies.  I'm sure that most of them are hard-workers and understand compliance requirements probably better than I do, but they just don't understand security.</p>
<p>As a case in point, we're in the middle of our annual audit by one of those "Big Four" audit firms which I won't name here to protect the innocent.  I sent an email checking in with our auditors to make sure that they had everything they needed before we went into our four-day holiday weekend.  They said that they had received everything they needed except for documentation on "privileged users from the current OS and Database environments" as well as "evidence of current password settings from the application servers, OS, and Database".  We go through a round of translation from Auditorese to Techie and figure out that they want exports of some specific user, profile, role, and privilege tables from the database and copies of /etc/passwd, /etc/shadow, and /etc group from the servers.  </p>
<p>So we obtain the requested documentation and I shoot them back an email message to find out their proposed method for transferring the files.  Secure FTP?  No.  PGP encryption?  Nope.  Their response back was astonishing: </p>
<blockquote><p>How large do you think they'll be?  Email should be fine.</p></blockquote>
<p>Seriously?  These are the guys that we're paying to verify that we're properly protecting our systems and they're suggesting that sending our usernames and password hashes via cleartext email is an appropriate method of file transfer.  I respond back:</p>
<blockquote><p>I'm not really concerned about the size of the files, but rather, the data that they contain.  Sending files containing the users, groups, and password hashes for our financial systems via cleartext is probably not a good plan considering the point of this process is protecting that data.</p></blockquote>
<p>And they respond with:</p>
<blockquote><p>Whatever you'd like Josh.  As long as you have the files as of today, we're good.</p></blockquote>
<p>So now I'm convinced that auditors (or at least these auditors) view security as nothing more than a checklist.  The people telling me what I need to do in order to protect my systems really have no clue about the fundamentals of security.  If it's not on their checklist, then it must not be of importance.  In this particular situation it may be easier or more convenient to send the documents via email, but any security professional worth their salt would tell you that's not secure nor appropriate for that data.  Either our auditors hold themselves to a very different standard than the rest of us security professionals or they just don't understand security unless it's on a checklist.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2010/07/02/auditors-just-dont-understand-security/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>The OWASP Security Spending Benchmarks Project</title>
		<link>http://www.webadminblog.com/index.php/2009/11/13/the-owasp-security-spending-benchmarks-project/</link>
		<comments>http://www.webadminblog.com/index.php/2009/11/13/the-owasp-security-spending-benchmarks-project/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 20:05:37 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Metrics]]></category>
		<category><![CDATA[OWASP AppSec DC 2009]]></category>
		<category><![CDATA[benchmarks]]></category>
		<category><![CDATA[owasp]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[spending]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=342</guid>
		<description><![CDATA[This presentation was by Boaz Belboard, the Executive Director of Information Security for Wireless Generation and the Project Leader for the OWASP Security Spending Benchmarks Project.  My notes are below: It does cost more to produce a secure product than an insecure product. Most people will still shop somewhere, go to a hospital, or enroll [...]]]></description>
			<content:encoded><![CDATA[<p>This presentation was by Boaz Belboard, the Executive Director of Information Security for Wireless Generation and the Project Leader for the OWASP Security Spending Benchmarks Project.  My notes are below:</p>
<p>It does cost more to produce a secure product than an insecure product.</p>
<p>Most people will still shop somewhere, go to a hospital, or enroll in a university after they have had a data breach.</p>
<p>Why do we spend on security?  How much should we be spending?</p>
<ul>
<li>Security imposes extra costs on organizations</li>
<li>The "security tax" is relatively well knnown for network and IT security - 5 to 10% (years of Gartner, Forrester, and other studies)</li>
<li>No comparable data for development or web apps</li>
<li>Regualtions and contracts usually require "reasonable measures".  What does that mean?</li>
</ul>
<p><span style="text-decoration: underline;"><strong>OWASP Security Spending Benchmarks Project</strong></span></p>
<ul>
<li>20 partner organizations, many contributors</li>
<li>Open process and participation</li>
<li>Raw data available to community</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Reasons For Investing in Security</strong></span></p>
<ul>
<li>Contractual and Regulatory Compliance</li>
<li>Incident Prevention, Risk Mitigation</li>
<li>Cost of Entry</li>
<li>Competitive Advantage</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Technical and Procedural Principles</strong></span></p>
<ul>
<li>Managed and Documented Systems</li>
<li>Business-need access</li>
<li>Minimization of sensitive data use</li>
<li>Security in Design and Development</li>
<li>Auditing and Monitoring</li>
<li>Defense in Depth</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Specific Activities and Projects</strong></span></p>
<ul>
<li>Security Policy and Training</li>
<li>DLP-Type Systems</li>
<li>Internal Configurations Management</li>
<li>Credential Management</li>
<li>Security in Development</li>
<li>Locking down internal permissions</li>
<li>Secure Data Exchange</li>
<li>Network Security</li>
<li>Application Security Programs</li>
</ul>
<p><span id="more-342"></span></p>
<p><span style="text-decoration: underline;"><strong>The 10000' View For Most Organizations</strong></span></p>
<ul>
<li>Legal and Regulatory Compliance: Because we have to</li>
<li>Incident Prevention, Risk Mitigation and Cost of Entry: Because this is what everyone else does</li>
<li>Competitive Advantage: Really?</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Regs are Not App Sec Friently...</strong></span></p>
<ul>
<li>Regulations, contracts, and RFPs are usually based on the notion of "reasonable effort" - state regulations, HIPAA, FTC, SEC, Red Flags Rule</li>
<li>When regulations do get technical, they focus on old school security fetishes like firewalls, SSL, encryption, biometric passes and server rooms</li>
</ul>
<p><span style="text-decoration: underline;"><strong>A Few Examples</strong></span></p>
<ul>
<li>PCI Prioritized Approach</li>
<li>Massachusetts 201 CMR 17.00</li>
<li>The encryption exemption in state data breach notification laws</li>
<li>HIPAA Notification Form</li>
<li>Recent SEC Action</li>
<li>Most of the contracts/RFPs/Vendor security whitepapers I have seen...</li>
</ul>
<p><span style="text-decoration: underline;"><strong>A Real World Example of Where Your PII Lives...</strong></span></p>
<ul>
<li>Small company with a few dozen employees sells widgets over the Internet</li>
<li>Pay an outsourced team to develop a Joomla/Drupal/whatever site to build a widget-lovers community where users can connect.  All sorts of PII involved in the app</li>
<li>They deploy their site on a shared hosting/VPS model and basically only interact with the App from a web admin interface</li>
<li>They know a bit about the technical details of their app but not much.  Actually, no actual web developers were really involved in the building or deployment of the app</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Here is What Company A Did...</strong></span></p>
<ul>
<li>Asked their developer team in India to develop code securely.  Referenced OWASP Top 10 or similar list.</li>
<li>Told their dev team that services and DB users needed to run with minimum privilege.  Dev team balked.  Company A agreed to pay a bit extra.</li>
<li>...</li>
<li>...</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Here's What Company B Did...</strong></span></p>
<ul>
<li>Installed anti-virus on all employee machines</li>
<li>Bought a firewall for the corporate network</li>
<li>Maybe even got two-factor tokens for network access</li>
<li>Made sure everything is going over SSL everywhere,.</li>
<li>Put a biometric reader in the data center</li>
<li>Encrypt all laptops</li>
</ul>
<p>Company B is more likely to be in compliance with state laws and other regulations.</p>
<p>Company B is also more likely to suffer a data breach.</p>
<p>So the only thing left to finance your application security program is the "reasonable spend" argument...</p>
<p>As a community we need to get some consensus on what constitutes a reasonable spend...</p>
<p><span style="text-decoration: underline;"><strong>About the OWASP Security Spending Benchmarks Project</strong></span></p>
<ul>
<li>First survey focused on general web application spending.</li>
<li>Second survey focused on cloud computing.</li>
<li>Responses currently being gathered for third survey</li>
<li>Approximately 50 companies profiled in each case</li>
<li>We do not collect IP addresses</li>
<li>Most of the partners are security vendors</li>
<li>Relatively small respondent base</li>
<li>Meant to stimulate a discussion on security spending benchmarks</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Percentage of Development Headcount Spent on Security</strong></span></p>
<ul>
<li>41% had less than 2%</li>
<li>20% had 5-10%</li>
<li>18% didn't know</li>
<li>10% had 2-5%</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Percentage IT Budget on Web Application Security</strong></span></p>
<ul>
<li>33% don't know</li>
<li>24% had 5-10%</li>
<li>12% had 1-5%</li>
<li>12% had 10-20%</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Organizational Responsibility for Security Reviews</strong></span></p>
<ul>
<li>67% in IT Security</li>
</ul>
<p>47% of companies surveyed provide developers with security training via internal resources.</p>
<ul>
<li>Organizations that have suffered a public data breach spend more on security in the development process than those that have not.</li>
<li>Web application security spending is expected to either stay flat or increase in nearly two thirds of companies</li>
<li>Half of respondents consider security experience important when hiring developers</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Cloud Summary</strong></span></p>
<ul>
<li>SaaaS is in much greater use than IaaS or PaaS.</li>
<li>Security spending does not change significantly as a result of cloud computing.</li>
<li>Organizations are not doing their homework when it comes to cloud security.</li>
<li>The risk of an undetected data breach is the greatest concern with using cloud computing, closely followed by the risk of a public data breach.</li>
<li>Compliance and standards requirements related to cloud computing are not well understood.</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Future of Project</strong></span></p>
<ul>
<li>Currently collecting responses for the third survey</li>
<li>Partners assist in promoting survey, analyzing results, and providing strategic input</li>
<li>Current status of project can always be found on OWASP website</li>
<li>New partners are always welcome</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/11/13/the-owasp-security-spending-benchmarks-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building an In-House Application Security Assessment Team</title>
		<link>http://www.webadminblog.com/index.php/2009/11/13/building-an-in-house-application-security-assessment-team/</link>
		<comments>http://www.webadminblog.com/index.php/2009/11/13/building-an-in-house-application-security-assessment-team/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 19:05:04 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[OWASP AppSec DC 2009]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[assessment]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[contractor]]></category>
		<category><![CDATA[in-house]]></category>
		<category><![CDATA[team]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=340</guid>
		<description><![CDATA[This presentation was by Keith Turpin from The Boeing Company.   About three years ago, all of Boeing's assessments were coming from outsourced service providers.  They realized that they were unable to have control over the people and process and had difficulties integrating the controls into the SDLC and decided to bring these functions in house.  [...]]]></description>
			<content:encoded><![CDATA[<p>This presentation was by Keith Turpin from The Boeing Company.   About three years ago, all of Boeing's assessments were coming from outsourced service providers.  They realized that they were unable to have control over the people and process and had difficulties integrating the controls into the SDLC and decided to bring these functions in house.  The goal of this presentation is to show some of the issues they ran into and how they addressed those problems.  My notes from the presentation are below:</p>
<p><span style="text-decoration: underline;"><strong>Contraced Services Considerations</strong></span></p>
<ul>
<li>Some Advantages:
<ul>
<li>Highly skilled</li>
<li>Established tools, processes, and standards</li>
<li>Unbiased</li>
<li>Available as needed</li>
</ul>
</li>
<li>Some Disadvantages:
<ul>
<li>Expensive, especially for an extended engagement</li>
<li>Less control and flexibility</li>
<li>Not familiar with company processes and culture</li>
<li>Rotating staff</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Planning</strong></span></p>
<ul>
<li>Considerations for establishing an internal team:
<ul>
<li>Time to staff and train the team</li>
<li>Overlap of external and internal teams</li>
<li>Development of processes and standards</li>
<li>Acquiring necessary tools</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Service Model</strong></span></p>
<ul>
<li>Define the services your team will provide.  This will be greatly influenced by:
<ul>
<li>The team's size and skills</li>
<li>The number of applications you have to support</li>
<li>The tools available</li>
<li>The level of executive support</li>
<li>The funding model
<ul>
<li>Who pays for your services</li>
</ul>
</li>
<li>The team's role
<ul>
<li>Development support, pre-deployment testing or post deployment auditing and pen testing</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><span id="more-340"></span></p>
<p><span style="text-decoration: underline;"><strong>Staffing the Team</strong></span></p>
<ul>
<li>Decide how to staff your team and what skills you need.  Possible candidates include:
<ul>
<li>Experienced Application Testers
<ul>
<li>This is ideal from a skills standpoint, but people in this category may be harder to find, cost more, may not be familiar with your company and or fit its culture.</li>
</ul>
</li>
<li>Experienced Developers
<ul>
<li>Developers will have a good understanding of the technologies, but may not understand security principles.  Their focus is on what an application is intended to do, not what it can be made to do.</li>
</ul>
</li>
<li>Other IT Security Professionals
<ul>
<li>They have a good understanding of security principles, but may lack specific technical skills.  However, some skills may provide a useful overlap, like experienced OS or network testers.</li>
</ul>
</li>
<li>Service and Project Managers
<ul>
<li>Building a new team, defining processes and standards, managing work flow and handling customer relations requires a set of skills as important, but distinct, from technical testing skills.</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Selecting Tools</strong></span></p>
<ul>
<li>There are a lot of options when it comes to tools.  What you choose depends on the services you want to provide, your team's skills and your budget.
<ul>
<li>Commercial vs. Free or Low Cost Tools
<ul>
<li>Commercial tools scale to support enterprise use, utilize a higher degree of automation and come with product support.  They also come with a big price tag.</li>
<li>Open source and low cost tools allow for more customization, and are free or inexpensive, usually have a supportive user community, but often require a higher degree of user knowledge and skill.</li>
</ul>
</li>
<li>Types of Tools
<ul>
<li>Vulnerability Scanners
<ul>
<li>Commercial examples include IBM AppScan, HP WebInspect and Cenzic Hailstorm</li>
</ul>
</li>
<li>Source Code Analysis
<ul>
<li>There are commercial options like Fortify or open source tools like the OWASP Yasca Project</li>
</ul>
</li>
<li>Client Side Web Proxies
<ul>
<li>Options include WebScarab, Burp Suite and Charles Proxy</li>
</ul>
</li>
<li>Other Tools
<ul>
<li>These include password crackers, hex editors, text extractors, browser plug-ins, integrated development environments, network mapping, network traffic analysis, and exploitation tools</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>What to Assess</strong></span></p>
<ul>
<li>Measuring an application's risk:
<ul>
<li>The Types of Users
<ul>
<li>Privileged Users, employees, suppliers, customers or the general public</li>
</ul>
</li>
<li>The Sensitivity of the Data
<ul>
<li>Intellectual Property, PII or other regulatory requirements</li>
</ul>
</li>
<li>Availability and Integrity Requirements
<ul>
<li>The impact to the business if compromised</li>
</ul>
</li>
<li>Technology and Environmental Consideration
<ul>
<li>What technologies are used, where is it deployed,...</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Gather Necessary Information</strong></span></p>
<ul>
<li>Before starting an assessment you will need to gather important information:
<ul>
<li>Application contacts</li>
<li>Server contacts</li>
<li>The process for getting accounts</li>
<li>A description of what the application does</li>
<li>The description or diagram of the system architecture</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Assessment Planning Meeting</strong></span></p>
<ul>
<li>Meet with the application development and support teams:
<ul>
<li>Get a demonstration of the application</li>
<li>Review the information gathered to support the assessment</li>
<li>Discuss the testing process and ground rules
<ul>
<li>No changes to the code during testing</li>
<li>Backups of the application servers and databases</li>
<li>How to address system crashes during testing</li>
<li>Database corruption issues</li>
<li>Emails generated by the application</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Testing Notifications</strong></span></p>
<ul>
<li>You should have a process to notify affected parties before the actual testing begins.
<ul>
<li>Key system contacts</li>
<li>Intrusion detection teams</li>
<li>Other assessors</li>
</ul>
</li>
<li>Information to include in the notification:
<ul>
<li>Source IP addresses</li>
<li>Target IP addresses, URL, system name</li>
<li>Testing schedule</li>
<li>Assessment team contacts</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Conducting the Assessment</strong></span></p>
<ul>
<li>If you are using automated scanning tools, beware of false positives and negatives
<ul>
<li>Pattern recognition has limitations</li>
<li>Combine various testing methods
<ul>
<li>Automated scanning</li>
<li>Code review</li>
<li>Manual testing</li>
</ul>
</li>
<li>Learn what your tools do and do not do well</li>
<li>Validate every finding</li>
<li>Keep detailed notes</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Establish Standards</strong></span></p>
<ul>
<li>Assessments performed by two different people or the same person over time, may result in the same finding being presented very differently
<ul>
<li>This may result in inconsistent descriptions of the vulnerability or different recommendations for remediation</li>
<li>Without standard findings you may also find it difficult to produce meaningful metrics about discovered vulnerabilities</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Standard Findings</strong></span></p>
<ul>
<li>Opinions about how to standardize software vulnerabilities are like noses, everyone has one.</li>
<li>At Boeing we have categorized vulnerabilities into approximately 70 standard findings like:
<ul>
<li>SQL Injection</li>
<li>Path Traversal</li>
<li>Session Fixation</li>
<li>Excessive Authentication Attempts</li>
<li>Forced Browsing</li>
<li>System information Leakage</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Data Elements for Standard Findings</strong></span></p>
<ul>
<li>Each finding is made up of the following data elements:
<ul>
<li>Name</li>
<li>Control Classification</li>
<li>Severity (Likelihood + Impact)</li>
<li>Company Policy References</li>
<li>Industry References</li>
<li>Summary Description (one sentence)</li>
<li>Impact Statement (one sentence)</li>
<li>Detailed Description (basic introduction to vulnerability + detailed description of how it manifests within their application)</li>
<li>Recommendation (standard remediation recommendations tied into SDLC practices)</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Control Classifications</strong></span></p>
<ul>
<li>We group individual vulnerabilities into control classifications.  This helps us determine how effective we are at implementing control types.</li>
<li>Our classifications:
<ul>
<li>Input and output controls</li>
<li>Authentication and password management</li>
<li>Authorization and access management</li>
<li>Sensitive information storage or transmission</li>
<li>System configuration and management</li>
<li>General coding errors</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Reporting Findings</strong></span></p>
<ul>
<li>Developing a standardized reporting template will allow you to deliver a consistent, branded message
<ul>
<li>Cover Page
<ul>
<li>Provides information necessary to identify the assessment, what was assessed and who the key people were</li>
</ul>
</li>
<li>Executive Summary</li>
<li>Findings Summary</li>
<li>Detailed Findings</li>
<li>Conclusion
<ul>
<li>Summary of assessment results, discussion of next steps and links to additional resources</li>
</ul>
</li>
<li>Appendixes
<ul>
<li>Information on how severity ratings are determined, description of control classifications</li>
</ul>
</li>
<li>Attachments
<ul>
<li>Typically raw scan files</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Managing Corrective Actions</strong></span></p>
<ul>
<li>Once a report is issued you need a closed loop process to ensure serious issues are addressed.  Considerations include:
<ul>
<li>Tracking Findings:
<ul>
<li>Critical and high findings should be tracked to resolution</li>
<li>Medium findings are less straight forward</li>
<li>Low or informational findings may not be value added</li>
</ul>
</li>
<li>Customer Responses to Findings:
<ul>
<li>Implement a technical fix to address the finding</li>
<li>Implement a process fix to address the finding</li>
<li>The business formally accepts the risk of not remediating</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>When to Re-Evaluate an Application</strong></span></p>
<ul>
<li>Depending on the number of applications you support and the frequency with which they change you may need to establish re-evaluation guidelines.  Soem criteria to consider include:
<ul>
<li>Fixes to previously accepted risk</li>
<li>User population changes</li>
<li>Data sensitivity changes</li>
<li>Business's dependency on the application has increased</li>
<li>Authentication mechanism has changed</li>
<li>Authorization mechanism has changed</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Application Assessment Process Flow Version</strong></span></p>
<ul>
<li>Create a document that shows the process flow for both requested and targeted assessment (ask for document from presenter?)</li>
<li>Formal closure process</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Conclusion</strong></span></p>
<ul>
<li>Building an assessment team from the ground up takes:
<ul>
<li>Executive Support</li>
<li>A lot of planning</li>
<li>Staffing</li>
<li>The right tools</li>
<li>Training</li>
<li>Standards</li>
<li>Supporting Processes</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/11/13/building-an-in-house-application-security-assessment-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OWASP Top 10 &#8211; 2010</title>
		<link>http://www.webadminblog.com/index.php/2009/11/13/owasp-top-10-2010/</link>
		<comments>http://www.webadminblog.com/index.php/2009/11/13/owasp-top-10-2010/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 16:25:53 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[OWASP AppSec DC 2009]]></category>
		<category><![CDATA[Web Application Security]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[broken]]></category>
		<category><![CDATA[critical]]></category>
		<category><![CDATA[cross]]></category>
		<category><![CDATA[direct]]></category>
		<category><![CDATA[forgery]]></category>
		<category><![CDATA[forwards]]></category>
		<category><![CDATA[injection]]></category>
		<category><![CDATA[insecure]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[misconfiguration]]></category>
		<category><![CDATA[object]]></category>
		<category><![CDATA[owasp]]></category>
		<category><![CDATA[redirects]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[request]]></category>
		<category><![CDATA[risks]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[top 10]]></category>
		<category><![CDATA[unvalidated]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=336</guid>
		<description><![CDATA[This presentation was by Dave WIchers, COO of Aspect Security and an OWASP Board Member.  My notes are below: What's Changed? It's about Risks, not just vulnerabilities New title is: "The Top 10 Most Critical Web Application Security Risks" OWASP Top 10 Risk Rating Methodology Based on the OWASP Risk Rating Methodology, used to prioritize [...]]]></description>
			<content:encoded><![CDATA[<p>This presentation was by Dave WIchers, COO of Aspect Security and an OWASP Board Member.  My notes are below:</p>
<p><span style="text-decoration: underline;"><strong>What's Changed?</strong></span></p>
<ul>
<li>It's about Risks, not just vulnerabilities
<ul>
<li>New title is: "The Top 10 Most Critical Web Application Security Risks"</li>
</ul>
</li>
<li>OWASP Top 10 Risk Rating Methodology
<ul>
<li>Based on the OWASP Risk Rating Methodology, used to prioritize Top 10</li>
</ul>
</li>
<li>2 Risks Added, 2 Dropped
<ul>
<li>Added: A6 - Security Misconfiguration
<ul>
<li>Was A10 in 2004 Top 10: Insecure Configuration Management</li>
</ul>
</li>
<li>Added: A8 - Unvalidated Redirects and Forwards
<ul>
<li>Relatively common and VERY dangerous flaw that is not well know</li>
</ul>
</li>
<li>Removed: A3 - Malicious File Execution
<ul>
<li>Primarily a PHP flaw that is dropping in prevalence</li>
</ul>
</li>
<li>Removed: A6 - Information Leakage and Improper Error Handling
<ul>
<li>A very prevalent flaw, that does not introduce much risk (normally)</li>
</ul>
</li>
</ul>
</li>
</ul>
<ol>
<li><strong>A1- </strong><strong>Injection: </strong>Tricking an application into including unintended commands in the data sent to an interpreter. (http://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet)</li>
<li><strong>A2 - Cross Site Scripting (XSS):</strong> Raw data from attacker is sent to an innocent user's browser.  For large chunks of user supplied HTML, use OWASP's AntiSamy to sanitize this HTML to make it safe.  (http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet)</li>
<li><strong>A3 - Broken Authentication and Session Management:</strong> Means credentials have to go with every request.  Should use SSL for everything requiring authentication.</li>
<li><strong>A4 - Insecure Direct Object Reference:</strong> This is part of enforcing proper "Authorization", along with A7 - Failure to Restrict URL Access.</li>
<li><strong>A5 - Cross Site Request Forgery (CSRF):</strong> An attack where the victim's browser is tricked into issuing a command to a vulnerable web application.  Vulnerability is caused by browsers automatically including user authentication data with each request.  (Check out OWASP CSRFGuard, OWASP CSRFTester, http://www.owasp.org/index.php/CSRF_Prevention_Cheat_Sheet)</li>
<li><strong>A6 - Security Misconfiguration:</strong> All through the network and platform.  Don't forget the development environment.  Think of all the places your source code goes.  All credentials should change in production.</li>
<li><strong>A7 - Failure to Restrict URL Access:</strong> This is part of enforcing proper "authorization", along with A4 - Insecure Direct Object References.</li>
<li><strong>A8 - Unvalidated Redirects and Forwards:</strong> Web application redirects are very common and frequently include user supplied parameters in the destination URL.  If they aren't validated, attacker can send victim to a site of their choice.</li>
<li><strong>A9 - Insecure Cryptographic Storage:</strong> Storing sensitive data insecurely.  Failure to identify all sensitive data.  Failure to identify all the places that this sensitive data gets stored.  Failure to properly protect this data in every location.</li>
<li><strong>A10 - Insufficient Transport Layer Protection</strong></li>
</ol>
<p><span style="text-decoration: underline;"><strong>OWASP Top 10 Risk Rating Methodology</strong></span></p>
<ul>
<li>Attack Vector (How hard for an attacker to use this flaw - 1 (Easy), 2 (Average), 3 (Difficult))</li>
<li>Weakness Prevalence (How often is it found - 1 (Widespread), 2 (Common), 3 (Uncommon))</li>
<li>Weakness Detectability (How hard is it for an attacker to find the flaw - 1 (Easy),  2 (Average), 3 (Difficult))</li>
<li>Technical Impact (1 (Severe), 2 (Moderate), 3 (Minor))</li>
</ul>
<p>This is generic across the internet, not specific to any organization.</p>
<p>Started a new "Prevention Cheatsheet Series" that the Top 10 references (XSS, SQL Injection, Transport Layer Security, CSRF, Direct Object Reference).</p>
<p>What is actually being released is RC1 of the Top 10 and they are encouraging people to provide comments through the end of the year and then use that feedback to post the final Top 10 in January 2010.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/11/13/owasp-top-10-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Application Security Metrics from the Organization on Down to the Vulnerabilities</title>
		<link>http://www.webadminblog.com/index.php/2009/11/13/application-security-metrics-from-the-organization-on-down-to-the-vulnerabilities/</link>
		<comments>http://www.webadminblog.com/index.php/2009/11/13/application-security-metrics-from-the-organization-on-down-to-the-vulnerabilities/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 15:35:08 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Metrics]]></category>
		<category><![CDATA[OWASP AppSec DC 2009]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[attack]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[probability]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[vulnerability]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=334</guid>
		<description><![CDATA[This presentation was by Chris Wysopal, the CTO of Veracode.  My notes are below: "To measure is to know." - James Clerk Maxwell "Measurement motivates." - John Kenneth Galbraith Metrics do Matter Metrics quantify the otherwise unquantifiable Metrics can show trends and trends matter more than measurements do Metrics can show if we are doing [...]]]></description>
			<content:encoded><![CDATA[<p>This presentation was by Chris Wysopal, the CTO of Veracode.  My notes are below:</p>
<p>"To measure is to know." - James Clerk Maxwell</p>
<p>"Measurement motivates." - John Kenneth Galbraith</p>
<p><span style="text-decoration: underline;"><strong>Metrics do Matter</strong></span></p>
<ol>
<li>Metrics quantify the otherwise unquantifiable</li>
<li>Metrics can show trends and trends matter more than measurements do</li>
<li>Metrics can show if we are doing a good job or bad job</li>
<li>Metrics can show if you have no idea where you are</li>
<li>Metrics establish where "You are here" really is</li>
<li>Metrics build bridges to managers</li>
<li>Metrics allow cross sectional comparisons</li>
<li>Metrics set targets</li>
<li>Metrics benchmark yourself against the opposition</li>
<li>Metrics create curiosity</li>
</ol>
<p><span style="text-decoration: underline;"><strong>Metrics Don't Matter (Mike Rothman)<br />
</strong></span></p>
<ul>
<li>It is too easy to count things for no purpose other than to count them</li>
<li>You cannot measure security so stop</li>
<li>This following is all that matters and you can't map security metrics to them:
<ul>
<li>Maintenance of availability</li>
<li>Preservation of wealth</li>
<li>Limitation on corporate liability</li>
<li>Compliance</li>
<li>Shepherding the corporate brand</li>
</ul>
</li>
<li>Cost of measurement not worth the benefit</li>
</ul>
<p>Bad metrics are worse than no metrics</p>
<p><span style="text-decoration: underline;"><strong>Security Metrics Can Drive Executive Decision Making</strong></span></p>
<ul>
<li>How secure am I?</li>
<li>Am I better off than this time last year?</li>
<li>Am I spending the right about of money?</li>
<li>How do I compare to my peers?</li>
<li>What risk transfer options to I have?</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Goals of Application Security Metrics</strong></span></p>
<ul>
<li>Provide quantifiable information to support enterprise risk management and risk-based decision making</li>
<li>Articulate progress towards goals and objectives</li>
<li>Provides a repeatable, quantifiable way to assess, compare, and track improvements in assurance</li>
<li>Focus activities on risk mitigation in order of priority and exploitability</li>
<li>Facilitate adoption and improvement of secure software design and development processes</li>
<li>Provide and objective means of comparing and benchmarking projects, divisions, organizations, and vendor products</li>
</ul>
<p><span id="more-334"></span></p>
<p><span style="text-decoration: underline;"><strong>Use Enumerations</strong></span></p>
<ul>
<li>Enumerations help identify specific software-related items that can be counted, aggregated, evaluated over time</li>
<li>CVE - Common Vulnerabilities and Exposures</li>
<li>CWE - Common Weakness Enumeration</li>
<li>CAPEC - Common Attack Pattern Enumeration and Classification</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Organizational Metrics</strong></span></p>
<ul>
<li>Percentage of application inventory developed with SDLC (which version of SDLC?)</li>
<li>Business criticality of each application in inventory</li>
<li>Percentage of application inventory tested for security (what level of testing?)</li>
<li>Percentage of application inventory remediated and meeting assurance requirements</li>
<li>Roll up of testing results</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Organizational Metrics</strong></span></p>
<ul>
<li>Cost to fix defects at different points in the software lifecycle</li>
<li>Cost of data breaches related to software vulnerabilities</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Testing Metrics</strong></span></p>
<ul>
<li>Number of threats identified in threat model</li>
<li>Size of attack surface identified</li>
<li>Percentage code coverage (static and dynamic)</li>
<li>Coverage of defect categories (CWE)</li>
<li>Coverage of attack pattern categories (CAPEC)</li>
</ul>
<p>SANS Top 25 Mapped to Application Security Methods (CWE, Title, Education?, Manual Process?, Tools?, Threat Model?)</p>
<p>Weakness Class Prevalence based on 2008 CVE data (Mitre?)</p>
<p><span style="text-decoration: underline;"><strong>Basic Metrics: Defect Counts</strong></span></p>
<ul>
<li>Design and implementation defects
<ul>
<li>CWE identifier</li>
<li>CVSS score</li>
<li>Severity</li>
<li>Likelihood of exploit</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Automated Code Analysis Techniques</strong></span></p>
<ul>
<li>Static Analysis (White Box Testing)</li>
<li>Dynamic Analysis (Black Box Testing)</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Manual Analysis</strong></span></p>
<ul>
<li>Manual Penetration Testing</li>
<li>Manual Code Review</li>
<li>Manual Design Review</li>
<li>Threat Modeling</li>
</ul>
<p><span style="text-decoration: underline;"><strong>WASC Web Application Security Statistics Project 2008</strong></span></p>
<ul>
<li>Goals
<ul>
<li>Identify the prevalence and probability of different vulnerability classes</li>
<li>Compare testing methodologies against what types of vulnerabilities they are likely to identify</li>
</ul>
</li>
<li>Summary
<ul>
<li>12186 web applications with 97554 detected vulnerabilities</li>
<li>More than 13% of all reviewed sites can be compromised completely automatically</li>
<li>About 49% of web applications contain vulnerabilities of high risk level detected by scanning</li>
<li>Manual and automated assessment by white box method allows to detect these high risk level vulnerabilities with the probability up to 80-96%</li>
<li>99% of web applications are not compliant with PCI DSS standard</li>
</ul>
</li>
<li>Compare to 2007 WASC Project
<ul>
<li>Number of sites with SQL Injection fell by 13%</li>
<li>Number of sites with Cross-site Scripting fell 20%</li>
<li>Number of sites with different types of Information Leakage rose by 24%</li>
<li>Probability to compromise a host automatically rose from 7 to 13%</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/11/13/application-security-metrics-from-the-organization-on-down-to-the-vulnerabilities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Securing the Core JEE Patterns</title>
		<link>http://www.webadminblog.com/index.php/2009/11/13/securing-the-core-jee-patterns/</link>
		<comments>http://www.webadminblog.com/index.php/2009/11/13/securing-the-core-jee-patterns/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 14:45:24 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[OWASP AppSec DC 2009]]></category>
		<category><![CDATA[Web Application Security]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[best]]></category>
		<category><![CDATA[core]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[j2ee]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[pattern]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[practices]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[secure]]></category>
		<category><![CDATA[securing]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[strategies]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=332</guid>
		<description><![CDATA[This presentation was by Rohit Sethi, the Project Leader for the Secure Pattern Analysis Project at OWASP and he works at Security Compass, a security analysis and training company.  My notes from the session are below: Before anyone starts building complex systems, they need to design. We create threat models on completed designs. What about [...]]]></description>
			<content:encoded><![CDATA[<p>This presentation was by Rohit Sethi, the Project Leader for the Secure Pattern Analysis Project at OWASP and he works at Security Compass, a security analysis and training company.  My notes from the session are below:</p>
<ul>
<li>Before anyone starts building complex systems, they need to design.</li>
<li>We create threat models on completed designs.</li>
<li>What about during design?</li>
<li>Book: "Core J2EE Patterns Best Practices and Design Strategies"</li>
<li>If you use J2EE development, chances are you're using patterns documented here</li>
<li>Core J2EE patterns are used extensively</li>
<li>Patterns are used in JSF, Velocity, Struts, Tapestry, Spring, and Proprietary Frameworks</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Example: Project: Analyze Patterns</strong></span></p>
<p>Use to Implement:</p>
<ul>
<li>Synchronization Tokens as Anti-CSRF Mechanism</li>
<li>Page-level authorizations</li>
</ul>
<p>Avoid:</p>
<ul>
<li>XSLT and Xpath vulnerabilities</li>
<li>XML Denial of Service</li>
<li>Disclosure of information in SOAP faults</li>
<li>Publishing WSDL files</li>
<li>Unhandled commands</li>
<li>Unauthorized commands</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Project Goals</strong></span></p>
<ul>
<li>Analyze patterns for security pitfalls to avoid</li>
<li>Determine how patterns can implement security controls</li>
<li>Provide advice portable to most frameworks</li>
</ul>
<p>A security pattern is not the same as a security analysis of a pattern.</p>
<p><span style="text-decoration: underline;"><strong>Uses</strong></span></p>
<ul>
<li>Designing new web application frameworks (make the next generation of frameworks secure by default)</li>
<li>Designing new apps that use the patterns</li>
<li>Source code review of existing apps</li>
<li>Runtime assessment of existing apps</li>
<li>Integrate with threat modeling of new or existing apps</li>
</ul>
<p><span style="text-decoration: underline;"><strong>You can help:</strong></span></p>
<ul>
<li>Tell developers</li>
<li>Improve the analysis</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Next Steps?</strong></span></p>
<ul>
<li>Add code review and examples to the existing pattern book</li>
<li>Look at other pattern books to see if there are other patterns that we should analyze</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Our Dream</strong></span></p>
<ul>
<li>New web application framework idea + Design-time security analysis = Secure-by-default web application framework</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/11/13/securing-the-core-jee-patterns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development Issues within AJAX Applications: How to Divert Threats</title>
		<link>http://www.webadminblog.com/index.php/2009/11/12/development-issues-within-ajax-applications-how-to-divert-threats/</link>
		<comments>http://www.webadminblog.com/index.php/2009/11/12/development-issues-within-ajax-applications-how-to-divert-threats/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 19:05:00 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[OWASP AppSec DC 2009]]></category>
		<category><![CDATA[Web Application Security]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[asynchronous]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[issues]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[threats]]></category>
		<category><![CDATA[vulnerabilities]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=305</guid>
		<description><![CDATA[This presentation was by Lars Ewe, CTO of Cenzic on AJAX applications and trying to explore the different implications of running AJAX in your environment.  My notes are below: Agenda What is AJAX? AJAX and Web App Security AJAX and Test Automation Vulnerability Examples: XSS, CSRF, &#38; JavaScript Hijacking AJAX Best Security Practices Demo Q&#38;A [...]]]></description>
			<content:encoded><![CDATA[<p>This presentation was by Lars Ewe, CTO of Cenzic on AJAX applications and trying to explore the different implications of running AJAX in your environment.  My notes are below:</p>
<p><span style="text-decoration: underline;"><strong>Agenda</strong></span></p>
<ul>
<li>What is AJAX?</li>
<li>AJAX and Web App Security</li>
<li>AJAX and Test Automation</li>
<li>Vulnerability Examples: XSS, CSRF, &amp; JavaScript Hijacking</li>
<li>AJAX Best Security Practices</li>
<li>Demo</li>
<li>Q&amp;A</li>
</ul>
<p><span style="text-decoration: underline;"><strong>What is AJAX?</strong></span></p>
<ul>
<li>Asynchronous JavaScript And XML</li>
<li>AJAX allows for a new generation of more dynamic, more interactive, faster Web 2.0 applications</li>
<li>AJAX leverages existing technologies, such as DHTML, CSS&lt; DOM, JSON, and the (a)synchronous XMLHTTPRequest (XHR)</li>
<li>Not just a set of technologies, but a new Web application development approach and methodology</li>
<li>XHR allows for (a)synchronous server requests without the need for a full page reload</li>
<li>XHR "downstream" payload can be
<ul>
<li>XML, JSON, HTML/JavaScript snippets, plain text, serialized data, basically pretty much anything...</li>
</ul>
</li>
<li>Responses often get further processed using JavaScript and result in dynamic web page content changes through DOM modifications</li>
</ul>
<p><span style="text-decoration: underline;"><strong>AJAX Code Example</strong></span></p>
<p><code>xhr = new XMLHttprequest();<br />
xhr.open("GET", AJAX_call?foo-bar, true);<br />
xhr.onreadystatechange = processResponse;<br />
xhr.send(null);<br />
function processResponse() {<br />
if (xhr.readyState == 4) {<br />
if (request.status == 200) {<br />
response = xhr.responseText;<br />
...<br />
}<br />
}<br />
}</code></p>
<p><span style="text-decoration: underline;"><strong>XHR and the Same Origin Policy</strong></span></p>
<ul>
<li>Same origin policy is a key browser security mechanism
<ul>
<li>To prevent any cross-domain data leakage, etc</li>
<li>With JavaScript it doesn't allow JavaScript from origin A to access content/data from origin B</li>
<li>Origin refers to the domain name, port, and protocol</li>
</ul>
</li>
<li>In the case of XHR, the same origin policy does not allow for any cross-domain XHR requests
<ul>
<li>Developers often don't like this at all!</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Common Cross Domain Workarounds</strong></span></p>
<p>Cross-domain access is often still implemented by various means, such as:</p>
<ul>
<li>Open / Application (server-based) proxies</li>
<li>Flash &amp; Java Applets (depending on crossdomain.xml)
<ul>
<li>Ex: FlashXMLHttpRequest by Julien Couvreur</li>
</ul>
</li>
<li>RESTful web service with JavaScript callback and JSON response
<ul>
<li>EX: JSONscriptRequest by Jason Levitt</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>AJAX Frameworks</strong></span></p>
<ul>
<li>AJAX frameworks are often categorized as either "Client" or "Proxy/Server" framework</li>
<li>"Proxy/Server" frameworks sometimes result in unintended method/functionality exposure</li>
<li>Beware of any kind of "Debugging mode" (Ex: Direct Web Remoting (DWR) debug=true)</li>
<li>Remember: Attackers can easily "fingerprint" AJAX frameworks</li>
<li>Beware of JavaScript Hijacking
<ul>
<li>Don't use HTTP GET for "upstream"</li>
<li>Prefix "downstream" JavaScript with "while(1);"</li>
</ul>
</li>
</ul>
<p style="padding-left: 30px;"><span style="text-decoration: underline;"><strong>AJAX and Web App Security</strong></span></p>
<ul>
<li>AJAX potentially increases the attack surface
<ul>
<li>More "hidden" calls mean more potential security holes</li>
</ul>
</li>
<li>AJAX developers sometimes pay less attention to security, due to it's "hidden" nature
<ul>
<li>Basically the old mistake of security by obscurity</li>
</ul>
</li>
<li>AJAX developers sometimes tend to rely on client side validation
<ul>
<li>An approach that is just as flawed with or without AJAX</li>
</ul>
</li>
<li>Mash-up calls/functionality are often less secure by design
<ul>
<li>3rd party APIs (Ex: feeds, blogs, search APIs, etc) are often designed with ease of use, not security in mind</li>
<li>Mash-ups often lack clear security boundaries (who validates, who filters, who encodes/decodes, etc)</li>
<li>Mash-ups often result in untrusted cross-domain access workarounds</li>
</ul>
</li>
<li>AJAX sometimes promotes dynamic code (JavaScript) execution of untrusted response data</li>
</ul>
<p><span style="text-decoration: underline;"><strong>AJAX / Web 2.0 and Test Automation</strong></span></p>
<ul>
<li>Spidering is more complex than just processing ANCHOR HREF's; various events need to be simulated (Ex: mouseover, keydown, keyup, onclick, onfocus, onblur, etc)</li>
<li>Timer events and dynamic DOM changes need to be observed</li>
<li>Use of non-standard data formats for both requests and responses make injection and detection hard to automate</li>
<li>Page changes after XHR requests can sometimes be delayed</li>
<li>In short, you need to have browser like behavior (JavaScript engine, DOM &amp; event management, etc)</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Cross-Site Scripting (XSS)</strong></span></p>
<ul>
<li>AJAX is changing the game a little bit since the script tag may already be there, just need to look for JSON or JavaScript snippets to inject yourself into</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Cross-Site Request Forgery (CSRF)</strong></span></p>
<ul>
<li>Want to send a token for AJAX requests as well</li>
</ul>
<p><span style="text-decoration: underline;"><strong>JavaScript Hijacking</strong></span></p>
<ul>
<li>Attacker code (override Array constructor)</li>
<li>Render the JavaScript on the wire useless to anyone who doesn't have access to the code itself</li>
<li>The attacker cannot sanitize the JavaScript since they do not have access to the code</li>
</ul>
<p><span style="text-decoration: underline;"><strong>AJAX Best Security Practices</strong></span></p>
<p>Pretty much all the usual Web app security best practices apply:</p>
<ul>
<li>Analyze and know your security boundaries and attack surfaces</li>
<li>Beware of reliance on client-side security measures</li>
<li>Assume the worst case scenario for all 3rd party interations
<ul>
<li>3rd parties can inherently not be trusted!</li>
</ul>
</li>
<li>Be extremely careful when circumventing same origin policy</li>
<li>Avoid/limit the use of dynamic code/eval()</li>
<li>Beware of JavaScript Hijacking</li>
<li>Implement anti-CSRF defenses</li>
</ul>
<ul>
<li></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/11/12/development-issues-within-ajax-applications-how-to-divert-threats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enterprise Application Security &#8211; GE&#8217;s Approach to Solving Root Cause</title>
		<link>http://www.webadminblog.com/index.php/2009/11/12/enterprise-application-securit/</link>
		<comments>http://www.webadminblog.com/index.php/2009/11/12/enterprise-application-securit/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 16:30:28 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[OWASP AppSec DC 2009]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[ge]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=299</guid>
		<description><![CDATA[The first presentation of the day that I went to  was by GE's Darren Challey and was about GE's application security program and how he took a holistic approach to securing the enterprise.  My notes on this presentation are below: Why is AppSec so hard? AppSec changes rapidly (look at difference between 2004, 2007, and [...]]]></description>
			<content:encoded><![CDATA[<p>The first presentation of the day that I went to  was by GE's Darren Challey and was about GE's application security program and how he took a holistic approach to securing the enterprise.  My notes on this presentation are below:</p>
<p>Why is AppSec so hard?</p>
<ul>
<li>AppSec changes rapidly (look at difference between 2004, 2007, and 2010 Top 10)</li>
<li>Changing landscape
<ul>
<li>Increase skill and talen t pool of technically proficient individuals willing to break the law</li>
<li>Growing volume of financially valuable data online</li>
<li>Development of criminal markets (black markets) to facilitate conversion to money</li>
</ul>
</li>
<li>"Attackers now have effective skills, something to steal, and a place to sell it"</li>
</ul>
<ul>
<li>Application Security is a complete one-sided game</li>
<li>Need to become an enabler (not a barrier)</li>
<li>Must inject application security earlier through Guidance, Education, and Tools</li>
<li>Must understand the development and deployment process and integrate rather than mandate</li>
<li>NIST study on cost to repair defects when found at different stages of software development (http://www.nist.gov/director/prog-ofc/report02-3.pdf)</li>
<li>Solving the problem of the enterprise (Culture Change)</li>
<li>Success factors</li>
<li>Form a mission and strategy</li>
<li>Develop policy (but not corporate "mandate")</li>
<li>Gain executive buy-in (cost / benefit / risk)</li>
<li>Understand the magnitude of problem (metrics)</li>
<li>Asset inventory and vulnerability management</li>
<li>Develop standards (what should I do and when?)</li>
<li>Establish a formal program (strong leadership)</li>
<li>Focus on education and training materials</li>
<li>Develop in-house expertise, services and "COE"</li>
<li>Continuous improvement, measurement, KPI</li>
<li>Communicate!</li>
<li>Drive a culture change (shared need, WIIFM)</li>
<li>Communicate expectations with vendors</li>
<li>Implement incentives (and penalties)</li>
<li>Digitize after the process is solid (tools)</li>
<li>AppSec program mission &amp; structure</li>
<li>AppSec program strategy</li>
<li>Policy (guidance) -&gt; Standards (Guidance) -&gt; Training (Education) -&gt; Metrics (tools) -&gt; Security tools (tools) -&gt; Inventory &amp; tracking (tools) -&gt; Monitor &amp; Improve</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Guidance</strong></span></p>
<ul>
<li>"GE Application Security Working Group" (Talking to the businesses is critical!  Meet every 2 weeks.)</li>
<li>Secure Coding Guidelines</li>
<li>Vulnerability Remediation Guide</li>
<li>Secure Deployment</li>
<li>Quick Reference Card</li>
<li>Contractual Language</li>
<li>Desk Calendars</li>
<li>Metrics: AppSec calendars helped increase visitors to key Guidance materials  (track hits to website docs when certain activities take place)</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Education</strong></span></p>
<ul>
<li>CBT1: Intro to AppSec at GE (60 min for any IT person) - why AppSec is important and what happens when you don't do it</li>
<li>CBT2: GE Best Practices for Secure Coding (90 min)</li>
<li>CBT3: Attack Profiles &amp; Countermeasures (120 min for security people)</li>
<li>Developer Awareness Assessment:
<ul>
<li>100's of internally-developed questions</li>
<li>Randomized questions, timed completion</li>
<li>Vendors track their own resutls</li>
<li>Allows tailoring of training/awareness programs</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Tools</strong></span></p>
<ul>
<li>- COE AppSec assessment services</li>
<li>Vendor framework &amp; Metrics</li>
<li>Compliance handbook</li>
<li>Common objects repository</li>
<li>GE Enterprise Application Security</li>
<li>Scanning and Monitoring tools</li>
<li>Automation is the way to go (but the tools are not quite there yet)</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Metrics</strong></span></p>
<ul>
<li>Measure Vendor AppSec Performance (Avg % Critical/High Vulnerabilities per Assessment vs % Assessments with Zero Critical/High Vulnerabilities)</li>
<li>Is it making a difference (map avg of critical/high vulnerabilities per assessment)</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Forming a Center of Excellence</strong></span></p>
<ul>
<li>Combines the best available people, processes and tools</li>
<li>Formal training &amp; defined roles (Comprehensive training program for all auditors to ensure skills are kept current and that auditors can provide more than one type of service)</li>
<li>COE Team structure (tools, research, operations, stakeholder management, queue management, application security auditors</li>
<li>Application Assessment Types (black/grey box vs white box)</li>
<li>Application assessment process (map of the workflow with "swim lanes" of who does each step)</li>
<li>Measure number of vulnerabilities and severities</li>
<li>Measure customer satisfaction (overall, ease of engagement, responsiveness)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/11/12/enterprise-application-securit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

