<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title><![CDATA[[SecurityRatty] tag: sdl-like]]></title>
    <link>http://securityratty.com/tag/sdl-like</link>
    <description></description>
    <pubDate>Wed, 25 Jun 2008 17:45:45 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[MSDN Security Issue Articles]]></title>
      <link>http://securityratty.com/article/1074b3008b822d4dbf799e92676f81a1</link>
      <guid>http://securityratty.com/article/1074b3008b822d4dbf799e92676f81a1</guid>
      <description><![CDATA[Bryan here. The SDL team is well represented in the annual security issue of MSDN magazine we have three articles that might be interesting to you, given that you read the SDL Blog
First up is a code...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Bryan here. The SDL team is well represented in the annual security issue of MSDN magazine – we have three articles that might be interesting to you, given that you read the SDL Blog!</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>First up is a code review quiz, “</FONT><A href="http://msdn.microsoft.com/en-us/magazine/cc982154.aspx"><FONT face=Calibri size=3>Test Your Security IQ</FONT></A><FONT face=Calibri size=3>”. Put your C/C++/C# security skills to the challenge by reviewing ten tricky code snippets that Michael and I devised. As an added incentive, I’ll post public congratulations here in the SDL blog to the first person who reverses the insecure hash found somewhere in the exam (not to give too much of a hint).</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Next up, we have “</FONT><A href="http://msdn.microsoft.com/en-us/magazine/dd153756.aspx"><FONT face=Calibri size=3>Agile SDL: Streamline Security Practices for Agile Development</FONT></A><FONT face=Calibri size=3>”. I’ve been talking about web application security issues in the SDL blog (and in the </FONT><A href="http://msdn.microsoft.com/en-us/magazine/cc794277.aspx"><FONT face=Calibri size=3>September</FONT></A><FONT face=Calibri size=3> issue of MSDN magazine, if you missed it). However, while it’s essential to make sure that web-specific issues are covered in the SDL, it’s equally important to make sure that web development teams – and other Agile development teams – can use the SDL effectively, and the classic, phased SDL approach is not always a good fit for these teams. This MSDN article is the first public look at the new SDL/Agile methodology that we’ve been working on for the last year. This process is currently in beta with some internal Microsoft product teams and online services. We’d love to get some external feedback on it before we release it to the entire company, so please send us your thoughts.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Finally, be sure to check out Michael’s Security Briefs column “</FONT><A href="http://msdn.microsoft.com/en-us/magazine/dd148644.aspx"><FONT face=Calibri size=3>Threat Models Improve Your Security Process</FONT></A><FONT face=Calibri size=3>”. Regular readers of this blog know how important threat modeling is to secure development. This article describes methods of using threat modeling not just to identify security vulnerabilities outright, but how to use it to make other SDL activities such as fuzzing and reducing attack surface more effective.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Three articles are more than enough for one team for one month! But be on the lookout for more articles from the usual SDL suspects in the near future. As always, keep watching this space for details.</FONT></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9067921" width="1" height="1">]]></content:encoded>
      <pubDate>Thu, 13 Nov 2008 20:58:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/sdl">sdl</category>
      <category domain="http://securityratty.com/tag/usual sdl suspects">usual sdl suspects</category>
      <category domain="http://securityratty.com/tag/sdl approach">sdl approach</category>
      <category domain="http://securityratty.com/tag/annual security issue">annual security issue</category>
      <category domain="http://securityratty.com/tag/agile sdl">agile sdl</category>
      <category domain="http://securityratty.com/tag/sdl activities">sdl activities</category>
      <category domain="http://securityratty.com/tag/security process">security process</category>
      <category domain="http://securityratty.com/tag/sdl team">sdl team</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/11/13/msdn-security-issue-articles.aspx">MSDN Security Issue Articles</source>
    </item>
    <item>
      <title><![CDATA[Secure the Heritage]]></title>
      <link>http://securityratty.com/article/8668f879b50766c462698a5a80513650</link>
      <guid>http://securityratty.com/article/8668f879b50766c462698a5a80513650</guid>
      <description><![CDATA[Good post by Scott Stender on using the SDL on legacy code (ht Andy ), it is always refreshing to see security pros talk about real world tradeoffs. I would also add the following

1. What most people...]]></description>
      <content:encoded><![CDATA[<p>Good <a href="http://blogs.msdn.com/sdl/archive/2008/10/27/applying-sdl-principles-to-legacy-code.aspx">post</a> by Scott Stender on using the SDL on legacy code (ht <a href="http://securityretentive.blogspot.com/">Andy</a>), it is always refreshing to see security pros talk about real world tradeoffs. I would also add the following:</p><br /><div>1. What most people call &quot;legacy&quot; systems should be called &quot;heritage&quot; systems. Legacy has a negative connotation. Most places I go, the &quot;legacy&quot; is the reason why people get paid and what actually runs the business. I think its more respectful to call them heritage systems a la <a href="http://www.amazon.com/Enterprise-SOA-Service-Oriented-Architecture-Practices/dp/0131465759">Krafzig, Banke, and Slama.</a></div><div><span style="line-height: normal; font-size: 13px; font-family: &#39;Trebuchet MS&#39;; "><br />2. Most heritage systems have almost no security mechanisms whatsoever. They were designed for benign environments. Most mainframes have no encryption. You talk to a mainframe over MQ Series, yet MQ Series literally has no access control. This is the transactional backbone of 499 of the fortune 500 we are talking about. You still with me? Good. So writing security requirements is important, but you are not going to have anywhere near the security architecture capabilities that you are used to.<br /><br />3. So one *big* thing to consider with heritage is - don&#39;t connect your heritage to hostile environments at all, use an ESB to connect indirectly and/or replicate out to data caches. So the heritage publishes data and subscribes to data, but is not in any way connected to a world it was never designed to deal with. Of course this doesn&#39;t always work either, but it is something to consider. The starting point should not be - &quot;how do I connect the heritage to the web?&quot; the starting point should be &quot;how do I share resources and functionality on my heritage with the web&quot;, again, often you do have to connect but sometimes not.</span><br /><div>&#0160;</div><div>Whenever I read something from iSec it is generally thought provoking because they have worked on a lot of interesting stuff. How do we get these folks to blog more?</div></div>]]></content:encoded>
      <pubDate>Mon, 27 Oct 2008 18:26:08 +0000</pubDate>
      <category domain="http://securityratty.com/tag/heritage">heritage</category>
      <category domain="http://securityratty.com/tag/heritage systems">heritage systems</category>
      <category domain="http://securityratty.com/tag/heritage publishes data">heritage publishes data</category>
      <category domain="http://securityratty.com/tag/systems">systems</category>
      <category domain="http://securityratty.com/tag/data">data</category>
      <category domain="http://securityratty.com/tag/connect indirectly andor">connect indirectly andor</category>
      <category domain="http://securityratty.com/tag/connect">connect</category>
      <category domain="http://securityratty.com/tag/legacy">legacy</category>
      <category domain="http://securityratty.com/tag/legacy code">legacy code</category>
      <source url="http://1raindrop.typepad.com/1_raindrop/2008/10/secure-the-heritage.html">Secure the Heritage</source>
    </item>
    <item>
      <title><![CDATA[Applying SDL Principles to Legacy Code]]></title>
      <link>http://securityratty.com/article/92d969d155d0bac3cdff2f17709cb618</link>
      <guid>http://securityratty.com/article/92d969d155d0bac3cdff2f17709cb618</guid>
      <description><![CDATA[Hello, this is Scott Stender from iSEC Partners, one of the SDL Pro Network partners. As security consultants, we at iSEC work with a variety of companies to drive security throughout their...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Hello, this is Scott Stender from iSEC Partners, one of the SDL Pro Network partners.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>As security consultants, we at iSEC work with a variety of companies to drive security throughout their development cycle. <SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Clients with mature security processes ask that we help carry out parts of their process, from requirements analysis to penetration testing.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Other clients need help defining their security processes, and we help define and kickoff a program based on the Microsoft SDL, other defined processes, or variations thereof, depending on the client’s needs and abilities.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Whether participating in an existing process or helping define one, I personally have been lucky enough to have seen my fair share of successes and failures, and it is this perspective that I hope to share in this guest post.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>I find that legacy code poses a unique challenge for organizations rolling out a new security process.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Often, the resources dedicated to maintaining older code are a small fraction of those devoted to new features or products.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Furthermore, the original developers for such features have often moved on, leaving no subject matter experts to drive reviews.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The astute reader will ask “How do I apply the principles of the Microsoft SDL to legacy code when I have no development resources and nobody knows how it works?”<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>The answer is “Start small, and build expertise over time.”<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><B style="mso-bidi-font-weight: normal"><FONT size=3><FONT face=Calibri>A Rising Tide Lifts All Boats<o:p></o:p></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>The best thing a security engineering team can do to improve security in the short term is to drive code quality, and the first step in this process is to define and enforce a secure coding standard.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This helps on two fronts:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></P>
<P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><SPAN style="mso-list: Ignore"><FONT face=Calibri size=3>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>It will improve code quality and reduce implementation flaws across the entire code base.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Unlike other security processes, driving a secure coding standard is <I style="mso-bidi-font-style: normal">relatively</I> easy to accomplish across an entire code base, regardless of the code’s age, by a focused security team.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>That is not to say that it is easy without qualification – a large batch of spaghetti code will require a lot of work to untangle!<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Such an effort can only be called “easy” when compared to, say, comprehensive identification and remediation of design flaws across legacy features.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Even so, improving code quality through the use of secure coding standards offers a unique combination of high impact, applicability to features, and ability to be carried out by a core team that makes it a sensible first step.<o:p></o:p></FONT></FONT></P>
<P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><SPAN style="mso-list: Ignore"><FONT face=Calibri size=3>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>The security team might notice that some sections of code have more standards violations or outright flaws than others.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This is an instance of vulnerability clustering, a concept that has been used to predict vulnerability rates and improve quality in the functional realm.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The evidence is anecdotal, but it stands to reason that portions of code that consistently violate secure coding standards are good places to start looking for other classes of security flaw.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>These are security hotspots, and should be high on the prioritized list for further review.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Security testing may also be applied to legacy code, but initial activities should be considered on a case-by-case basis based on the expected return on investment.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Such testing ranges from using inexpensive off-the-shelf tools to exercise common interfaces to rather expensive custom testing and formal analysis.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is worthwhile to begin with off-the-shelf tools, such as those that target file parsers or web applications, and tools created as part of your greater secure development efforts.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>These can help identify easily-found flaws and suggest improvements to the coding standards.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Comprehensive security testing, on the other hand, is best tackled after the Legacy Security Push.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><B style="mso-bidi-font-weight: normal"><FONT size=3><FONT face=Calibri>The Legacy Security Push<o:p></o:p></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Coding standards and basic testing provide bang for the buck, but formal security processes seek to provide security assurance.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The challenge for legacy code is that it needs to play catch-up.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Security processes that occur early in the development cycle, such as requirements analysis, design review, and threat modeling, are particularly difficult to achieve years after the fact.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The main goal of the Legacy Security Push is to create the deliverables from these efforts, the most important of which are security requirements and a full risk analysis.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>It may sound trivial, but security requirements are essential.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Not only do they define proper operation for the system in question, they also define assumptions that are suitable for relying systems.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>It is very common to find security flaws in legacy systems that arise from well-intentioned but incorrect assumptions such as “I assume that the <I style="mso-bidi-font-style: normal">Foo</I> authenticates server <I style="mso-bidi-font-style: normal">Bar</I> when initiating a bank transfer.”<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It stands to reason that <I style="mso-bidi-font-style: normal">Foo</I> would do so for such an important activity, but this assumption must be validated.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is very common for older features to have been deployed in and written for different environments where the security assumptions that are "obvious" today just didn't apply at the time.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>When reviewing legacy systems, the first step is to identify such requirements.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If the original architects, developers or managers are available, they can provide valuable insight at this stage.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>More often than not this is not the case, and analysis must instead rely on what documentation is present and interaction between the software and its consumers.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The goal is the same as in requirements analysis during project inception, except that in this case one must turn the process on its head and reverse engineer requirements from system behavior.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>At the conclusion of this effort, requirements can be theorized – “<I style="mso-bidi-font-style: normal">Foo</I> must authenticate its server <I style="mso-bidi-font-style: normal">Bar</I> before initiating a bank transfer.”<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Risk analysis can be performed once a plausible set of requirements have been identified.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Threat modeling is a more structured means of performing such an analysis, with the eventual goal of identifying means by which requirements can be violated by an attacker.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>As with requirements analysis, original developers would be a valuable resource to consult.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>With or without such help, the first step is to identify how the software works.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In many cases, help is not available and performing this task requires a great deal of effort.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>For features of moderate size, this author has spent upwards of a month reading code, using process profiling tools, and walking through the software with a debugger to identify program flow and security-sensitive functionality. <o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Once completed, actual system behavior should be documented and compared against the requirements theorized.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>It might be that the requirements should be re-evaluated (New requirement:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Do not assume that <I style="mso-bidi-font-style: normal">Foo</I> requires server authentication) or the system may need to be changed (New bug:<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN><I style="mso-bidi-font-style: normal">Foo</I> does not verify the CN for <I style="mso-bidi-font-style: normal">Bar</I>).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>At the end, this information should be sufficient to support a comprehensive threat modeling exercise where security requirements, risks, and their mitigations can be documented.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><B style="mso-bidi-font-weight: normal"><FONT size=3><FONT face=Calibri>Next Steps<o:p></o:p></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Bringing a legacy feature up to par with its newer kin requires a relatively small number of items:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>improved code quality, clear security requirements, and a thorough threat model.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>As we have seen, performing even these tasks is quite the effort!<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I am sure that it is little comfort to be reminded that accomplishing these tasks has simply laid the foundation, and that the true benefit is that the newly-reviewed legacy feature is able to participate fully in the security processes that remain: reviewing cross-component security requirements and assumptions, comprehensive testing, and incident planning, to name a few.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Unfortunately, there is no silver bullet in security assurance.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The soundness of the design and implementation of legacy software is just as important as in newer software, which is why any complete secure software development process will look backwards as well as forwards.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Feature by feature, from higher priority to lower, the overall security of the software improves as legacy code receives the full security treatment it deserves.<o:p></o:p></FONT></FONT></P><SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi">Did you find the silver bullet?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Might you think that defining security requirements is unnecessary?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Perhaps “It is old and has not been attacked yet.” is a valid security strategy!<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Please comment below or email me directly at <A href="mailto:scott@isecpartners.com"><FONT color=#0000ff>scott@isecpartners.com</FONT></A> and share your thoughts.</SPAN><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9018591" width="1" height="1">]]></content:encoded>
      <pubDate>Mon, 27 Oct 2008 14:24:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/legacy code">legacy code</category>
      <category domain="http://securityratty.com/tag/mature security processes">mature security processes</category>
      <category domain="http://securityratty.com/tag/security processes">security processes</category>
      <category domain="http://securityratty.com/tag/cross-component security requirements">cross-component security requirements</category>
      <category domain="http://securityratty.com/tag/security requirements">security requirements</category>
      <category domain="http://securityratty.com/tag/processes">processes</category>
      <category domain="http://securityratty.com/tag/code">code</category>
      <category domain="http://securityratty.com/tag/requirements">requirements</category>
      <category domain="http://securityratty.com/tag/legacy code poses">legacy code poses</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/10/27/applying-sdl-principles-to-legacy-code.aspx">Applying SDL Principles to Legacy Code</source>
    </item>
    <item>
      <title><![CDATA[Good hygiene and Banned APIs]]></title>
      <link>http://securityratty.com/article/76a6df21c84c03ac4f35261fb88bd645</link>
      <guid>http://securityratty.com/article/76a6df21c84c03ac4f35261fb88bd645</guid>
      <description><![CDATA[Jeremy Dallman here with a quick note about a code sanitizing tool we are making available to support one of the SDL requirements Remove all Banned APIs from your code
This requirement was put in...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Jeremy Dallman here with a quick note about&nbsp;a code sanitizing tool we are making available to support one of the SDL requirements – Remove all Banned APIs from your code. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>This requirement was put in place to prevent use of certain older C runtime functions that lead to buffer overrun flaws and have been deprecated. In the Security Development Lifecycle book, an entire chapter is dedicated to the topic of banned function calls. In the book, we also provide a copy of the banned.h header file on the companion CD. This header file allows you to locate any banned functions in your code.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>On MSDN, we have document the </FONT><A href="http://msdn.microsoft.com/en-us/library/bb288454.aspx"><FONT face=Calibri size=3>SDL list of Banned Function Calls</FONT></A><FONT face=Calibri size=3>, but the header file has not been publicly available outside the SDL book until now. Today, we are providing the banned.h header on the Microsoft Download Center. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><A href="http://download.microsoft.com/download/2/e/b/2ebac853-63b7-49b4-b66f-9fd85f37c0f5/banned.h"><FONT face=Calibri size=3>Find the banned.h header here</FONT></A></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>By including this header file, then using #include “banned.h”; you will be able to locate any banned functions in your code. The full list of banned APIs is also included in the header file.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Alternately, if you are using the compiler in Visual Studio 2005 or later, you have a built-in way to check for these banned functions. To catch banned C runtime functions, you can compile with /W4 and then triage all C4996 warnings. In code reviews, you should always remove any code that disables the C4996 warnings&nbsp;- e.g.: #pragma warning(disable:4996). This is one simple way to ensure your code is released without banned functions.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Sanitizing your code to remove potentially insecure APIs is a vital protection. Whether you include the banned.h header file or leverage the /W4-C4996 warnings in the Visual Studio 2005 compiler, you now have two ways to check your code and meet another SDL requirement in your development phase.</FONT></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9011814" width="1" height="1">]]></content:encoded>
      <pubDate>Wed, 22 Oct 2008 18:08:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/header file">header file</category>
      <category domain="http://securityratty.com/tag/header">header</category>
      <category domain="http://securityratty.com/tag/code">code</category>
      <category domain="http://securityratty.com/tag/code reviews">code reviews</category>
      <category domain="http://securityratty.com/tag/runtime functions">runtime functions</category>
      <category domain="http://securityratty.com/tag/functions">functions</category>
      <category domain="http://securityratty.com/tag/apis">apis</category>
      <category domain="http://securityratty.com/tag/w4-c4996 warnings">w4-c4996 warnings</category>
      <category domain="http://securityratty.com/tag/c4996 warnings">c4996 warnings</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/10/22/good-hygiene-and-banned-apis.aspx">Good hygiene and Banned APIs</source>
    </item>
    <item>
      <title><![CDATA[About the SDL Pro Network]]></title>
      <link>http://securityratty.com/article/dc28bc3dae82ee1f5322434291949577</link>
      <guid>http://securityratty.com/article/dc28bc3dae82ee1f5322434291949577</guid>
      <description><![CDATA[Hello all, Dave here
I expect that a number of you have seen the announcement and various press articles or Steve Lipner's Tuesday post about our launch of the SDL Threat Modeling Tool 3.0, the SDL...]]></description>
      <content:encoded><![CDATA[Hello all, Dave here... 
<P>I expect that a number of you have seen the <A href="http://www.microsoft.com/presspass/features/2008/sep08/09-16lipnersdl.mspx" mce_href="http://www.microsoft.com/presspass/features/2008/sep08/09-16lipnersdl.mspx">announcement</A> and various press articles or <A href="http://blogs.msdn.com/sdl/archive/2008/09/16/sdl-press-tour-announcements.aspx" mce_href="http://blogs.msdn.com/sdl/archive/2008/09/16/sdl-press-tour-announcements.aspx">Steve Lipner's Tuesday post</A> about our launch of the SDL Threat Modeling Tool 3.0, the SDL Optimization Model and the <A href="http://download.microsoft.com/download/0/E/9/0E9AC448-30B2-4451-9E23-46244AFABB7F/Microsoft%20SDL%20Pro%20Network%20_Fact%20Sheet.pdf" mce_href="http://download.microsoft.com/download/0/E/9/0E9AC448-30B2-4451-9E23-46244AFABB7F/Microsoft%20SDL%20Pro%20Network%20_Fact%20Sheet.pdf">SDL Pro Network</A>.&nbsp; Since I was intimately involved with the creation of the SDL Pro Network, I thought I'd write a few words about our objectives and chat a bit about the thinking behind our partner choices for the pilot phase.</P>
<P>So, what are we hoping to gain by creating a network of security consulting and training experts to work with customers who want to implement the SDL?&nbsp; Generally speaking, this question has a two-part answer:&nbsp; First, Microsoft is, and always will be a partner-driven company - we rely on the skills and capabilities of our partners to provide specialized services and broad geographic coverage for Microsoft products and services.&nbsp; Second, even though there are talented folks in the <A href="http://www.microsoft.com/services/microsoftservices/default.mspx" mce_href="http://www.microsoft.com/services/microsoftservices/default.mspx">Microsoft Services</A> organization, it's clear that we will need help from our partners to scale to meet the demand.&nbsp; I can't tell you how many times the folks on the SDL team have been approached by people - after an executive briefing, or a session at TechEd - asking for guidance in implementing SDL in their own organizations.&nbsp; When we look at the demand and pair it with the geographic diversity of our customer base, it's clear that a partner approach is the right answer.</P>
<P>Now a few words about the partners who will be participating in the pilot phase...</P>
<P>After the decision was made to work with partners on SDL delivery, we had two primary criteria that we had to address; partner quality, and manageability of the SDL Pro Network pilot. We have all seen instances where individuals or consulting organizations have represented themselves to the IT community as having security expertise when in reality the "experts for hire" were simply reading a page or two ahead of the customer in whatever security tome was "in vogue" at the time.&nbsp; </P>
<P>Based on those observations, it was clear that partner "quality" was a critical criterion. &nbsp;Fortunately for us, we didn't have to look far to satisfy our quality bar - many of the companies in the SDL Pro Network pilot have direct experience with executing portions of the SDL on <I>our</I> products, or have delivered services to Microsoft in a security context. Design reviews, code reviews, penetration testing, training&nbsp;and other tasks critical to SDL implementation were (and are) common fare for these folks.</P>
<P>Despite the customer demand for SDL that I alluded to above, starting with a small pilot was the right thing to do; a small group of trusted consultancies supports our imperative for quality and it allows us to pragmatically grow the SDL Pro Network as the market matures. &nbsp;As we continue to evolve and innovate with the SDL, we'll have a strong core of partners to help drive the software security message. </P>
<P>Will we grow the SDL Pro Network?&nbsp; The qualified answer is: "When the market demands it..." - there are a number of talented potential partners who meet the quality bar - and clearly, the need for security in software development will grow to demand additional talented specialists. However, it's our plan to begin with a small set of partners of known expertise, and then respond to growing demand as it materializes.</P>
<P>So there you have it - the nuanced beginning and bright future of the SDL Pro Network...&nbsp; I invite your comments, and encourage you to check in at the <A href="http://www.microsoft.com/sdl" mce_href="http://www.microsoft.com/sdl">SDL Portal</A> as we continue to build out the program</P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8958114" width="1" height="1">]]></content:encoded>
      <pubDate>Thu, 18 Sep 2008 23:12:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/sdl">sdl</category>
      <category domain="http://securityratty.com/tag/sdl pro network">sdl pro network</category>
      <category domain="http://securityratty.com/tag/sdl implementation">sdl implementation</category>
      <category domain="http://securityratty.com/tag/network">network</category>
      <category domain="http://securityratty.com/tag/sdl delivery">sdl delivery</category>
      <category domain="http://securityratty.com/tag/sdl optimization model">sdl optimization model</category>
      <category domain="http://securityratty.com/tag/quality">quality</category>
      <category domain="http://securityratty.com/tag/partner quality">partner quality</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/09/18/about-the-sdl-pro-network.aspx">About the SDL Pro Network</source>
    </item>
    <item>
      <title><![CDATA[SDL Press Tour Announcements]]></title>
      <link>http://securityratty.com/article/a59f58bb44b7c02ada643ca33c630f24</link>
      <guid>http://securityratty.com/article/a59f58bb44b7c02ada643ca33c630f24</guid>
      <description><![CDATA[Steve Lipner here

Last week I participated in a press tour talking to press and analysts about the evolution of the SDL. Most of our past discussions with press and analysts have centered on folks...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><FONT color=#002060 size=3 face=Calibri>Steve Lipner here.</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p><FONT color=#002060 size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><FONT size=3><FONT color=#002060><FONT face=Calibri>Last week I participated in a “press tour” talking to press and analysts about the evolution of the SDL. Most of our past discussions with press and analysts have centered on folks who follow security, but this time we also spoke with publications and analysts who write for software development organizations.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I was struck by the extent to which the folks who focus on development have been grappling with many of the issues about developing secure software that we’ve focused on here at Microsoft.<SPAN style="COLOR: red"><o:p></o:p></SPAN></FONT></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><o:p><FONT color=#002060 size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><FONT size=3><FONT color=#002060><FONT face=Calibri>Security beat reporters, whom we have been working with for years, have been exposed to a regular stream of news on the latest bugs, worms and viruses, and Microsoft’s ability to react quickly to customers affected by those attacks with patches has been the industry story for many years.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Last week, I had an opportunity to get out and tell the other side of the story – what we are doing proactively as a major software vendor and platform provider to help eliminate vulnerabilities during the development process.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Based on feedback from reporters and analysts who know this space, our work to take Microsoft’s SDL best practices and share them externally has clearly been a need in the industry for a long time.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><o:p><FONT color=#002060 size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><FONT color=#002060 size=3 face=Calibri>The specific occasion that motivated me to spend a week in conference rooms, airplanes and hotel rooms was today’s announcement of new initiatives in sharing aspects of the SDL with the development community.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>These initiatives don’t make secure development a “cut and dried” process, but I believe they will take things one step further toward enabling developers to build more secure software.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I’d encourage you to look at our </FONT><A href="http://msdn.microsoft.com/en-us/security/cc967276.aspx"><FONT size=3 face=Calibri>announcements</FONT></A><FONT color=#002060 size=3 face=Calibri>.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I’m really excited that we’re taking these new steps to share more of our secure development practices and tools with developers who need them.</FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><o:p><FONT color=#002060 size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoNormal><FONT color=#002060 size=3 face=Calibri>As always, we’d welcome your feedback about these new programs and what we should do next.</FONT></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8954076" width="1" height="1">]]></content:encoded>
      <pubDate>Tue, 16 Sep 2008 12:04:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/development">development</category>
      <category domain="http://securityratty.com/tag/secure development practices">secure development practices</category>
      <category domain="http://securityratty.com/tag/software development organizations">software development organizations</category>
      <category domain="http://securityratty.com/tag/development process">development process</category>
      <category domain="http://securityratty.com/tag/press">press</category>
      <category domain="http://securityratty.com/tag/secure development">secure development</category>
      <category domain="http://securityratty.com/tag/press tour">press tour</category>
      <category domain="http://securityratty.com/tag/sdl">sdl</category>
      <category domain="http://securityratty.com/tag/practices">practices</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/09/16/sdl-press-tour-announcements.aspx">SDL Press Tour Announcements</source>
    </item>
    <item>
      <title><![CDATA[Security is bigger than finding and fixing bugs]]></title>
      <link>http://securityratty.com/article/9c8ebf47be004fc532a7e7de3eceed48</link>
      <guid>http://securityratty.com/article/9c8ebf47be004fc532a7e7de3eceed48</guid>
      <description><![CDATA[Ive been catching up on various security-related articles that Ive been meaning to read, and the following article was on the list...]]></description>
      <content:encoded><![CDATA[<P>I’ve been catching up on various security-related articles that I’ve been meaning to read, and the following article was on the list <A href="http://www.itnews.com.au/News/73635,google-shares-its-security-secrets.aspx">http://www.itnews.com.au/News/73635,google-shares-its-security-secrets.aspx</A> about Google’s “security secrets.” <BR>&nbsp;<BR>Quoting from the article: </P>
<BLOCKQUOTE>
<P>“In order to keep its products safe, Google has adopted a philosophy of 'security as a cultural value'. The programme includes mandatory security training for developers, a set of in-house security libraries, and code reviews both by Google developers and outside security researchers."</P></BLOCKQUOTE>
<P>I think it is great that Google has a security program they are willing to talk about and I could not agree more with the ‘security as a cultural value’ philosophy. But isn’t there something really fundamental missing here? Design? There is a lot more to software engineering other than coding and testing. <BR>&nbsp;<BR>The SDL has a very large set of implementation-related requirements, but there are many design-related requirements also.</P>
<P>Computer security experts have known since the early 1970s that you have to get the design right; and our experiences with the SDL over the last 5 years have taught us that you need to consider security and privacy (but remember, you have to ship too!) very early in the design phase and have a consistent end-to-end process if you truly hope to reduce vulnerabilities and create more secure software. This is how the SDL is helping to create ‘security as a cultural value’ at Microsoft. </P>
<P>We’ve seen a general trend downward in security vulnerabilities in Microsoft products, and the IBM X-Force 2008 mid-year <A href="http://www-935.ibm.com/services/us/iss/xforce/midyearreport/xforce-midyear-report-2008.pdf" mce_href="http://www-935.ibm.com/services/us/iss/xforce/midyearreport/xforce-midyear-report-2008.pdf">report</A> backs the assertion that we’re making progress; according to the report Microsoft’s share of total vulnerabilities decreased from 3.7% in 2007 (1st place) to 2.5% (that’s 2.5% for <STRONG><U>all</U></STRONG> Microsoft products; a more appropriate comparison might be Windows vs Linux vs Mac OSX, or SQL Server vs Oracle vs DB2) in the first 6 months of 2008 (3rd place.) This is an encouraging signal that the SDL is working on a large scale… of course, it might also show that vulnerability researchers are moving to easier targets, which, to me shows the SDL is working too.<BR>&nbsp;<BR>What do you think?<BR></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8867829" width="1" height="1">]]></content:encoded>
      <pubDate>Thu, 14 Aug 2008 16:09:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/security researchers">security researchers</category>
      <category domain="http://securityratty.com/tag/security vulnerabilities">security vulnerabilities</category>
      <category domain="http://securityratty.com/tag/computer security experts">computer security experts</category>
      <category domain="http://securityratty.com/tag/googles security secrets">googles security secrets</category>
      <category domain="http://securityratty.com/tag/in-house security libraries">in-house security libraries</category>
      <category domain="http://securityratty.com/tag/security program">security program</category>
      <category domain="http://securityratty.com/tag/microsoft products">microsoft products</category>
      <category domain="http://securityratty.com/tag/sdl">sdl</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/08/14/security-is-bigger-than-finding-and-fixing-bugs.aspx">Security is bigger than finding and fixing bugs</source>
    </item>
    <item>
      <title><![CDATA["Walking" with the SDL - Part 4]]></title>
      <link>http://securityratty.com/article/ce96a44cff02b1bc67ce9b397efe89a4</link>
      <guid>http://securityratty.com/article/ce96a44cff02b1bc67ce9b397efe89a4</guid>
      <description><![CDATA[Jeremy Dallman here with the final piece of my multi-part series on Walking with the Security Development Lifecycle (SDL) [ Part 1 , Part 2 , Part 3 ]. So far I have discussed getting management...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Jeremy Dallman here with the final piece of my multi-part series on “Walking” with the Security Development Lifecycle (SDL) [</FONT><A href="http://blogs.msdn.com/sdl/archive/2008/07/18/walking-with-the-sdl-part-1.aspx"><FONT size=3 face=Calibri>Part 1</FONT></A><FONT size=3 face=Calibri>, </FONT><A href="http://blogs.msdn.com/sdl/archive/2008/07/21/walking-with-the-sdl-part-2.aspx"><FONT size=3 face=Calibri>Part 2</FONT></A><FONT size=3 face=Calibri>, </FONT><A href="http://blogs.msdn.com/sdl/archive/2008/07/23/walking-with-the-sdl-part-3.aspx"><FONT size=3 face=Calibri>Part 3</FONT></A><FONT size=3><FONT face=Calibri>]. So far I have discussed getting management approval, expanding security training, formalizing security requirements and effective ways to reuse your threat model or attack surface review data. <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>In this post, I will wrap up with a look into setting up final security reviews and managing post-release documentation.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT size=3><FONT face=Calibri>Formalize your Final Security Review (FSR) Process<o:p></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>A Final Security Review is your final security audit to ensure your software is secure enough to deliver to your customers. I will assume the idea of an FSR is a new concept and try to provide some FAQ-style detail on this topic.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"><U>Who is the FSR team?</U></I></B> An FSR Team usually consists of a non-product-team security expert (for impartial perspective), a security representative from the product team, and individual representatives from the separate disciplines. However, that size team may not scale to your company. If that is the case, at a minimum, you should have an impartial “outsider” separate from the product team who understands the security requirements as well as the measurements used to validate them. This person along with a project manager can probably perform the bulk of the FSR with development or test leadership providing input as needed.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"><U>What is needed to do an FSR?</U></I></B> All threat models should be revised to reflect the final product, the code should be complete, and all security-related testing should be completed and documented. In addition, everyone involved in the FSR should have full access to the bug database to review status or exceptions to security bugs.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"><U><FONT size=3><FONT face=Calibri>What does an FSR team do? <o:p></o:p></FONT></FONT></U></I></B></P>
<OL style="MARGIN-TOP: 0in" type=1>
<LI style="MARGIN: 0in 0in 10pt; mso-list: l1 level1 lfo1" class=MsoNormal><FONT size=3><FONT face=Calibri>Re-review threat models to verify all mitigations identified in those exercises were fixed or went through an exception process. <o:p></o:p></FONT></FONT></LI>
<LI style="MARGIN: 0in 0in 10pt; mso-list: l1 level1 lfo1" class=MsoNormal><FONT size=3><FONT face=Calibri>Verify that all security issues uncovered during the development process were fixed or granted exceptions by the appropriate people. This is where you verify whether the state of your security bugs meets the “bug bar” requirements you have defined for your products.<o:p></o:p></FONT></FONT></LI>
<LI style="MARGIN: 0in 0in 10pt; mso-list: l1 level1 lfo1" class=MsoNormal><FONT size=3><FONT face=Calibri>If there is any output from security tools that you have used to define requirements, the FSR team would verify that the results of the tools meet the security requirements.<o:p></o:p></FONT></FONT></LI>
<LI style="MARGIN: 0in 0in 10pt; mso-list: l1 level1 lfo1" class=MsoNormal><FONT size=3><FONT face=Calibri>Review all exceptions to verify that they approve these decisions in the context of the final product. If they identify risks associated with the exceptions, they should communicate those to the business ownership for a final decision before signoff. Any decisions related to known risks should also be reflected in the response plan for future reference.<o:p></o:p></FONT></FONT></LI>
<LI style="MARGIN: 0in 0in 10pt; mso-list: l1 level1 lfo1" class=MsoNormal><FONT size=3><FONT face=Calibri>Finally, there should be a final signoff exercise where all security people and project leadership jointly approve the decision of the Final Security Review.<o:p></o:p></FONT></FONT></LI></OL>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"><U>How long does an FSR take?</U></I></B> If done correctly, the FSR will likely take some time. You should schedule this review well in advance of your release date to give your FSR team some time to complete the review, push issues back to the product team, and respond to any serious issues that may be discovered.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Final security reviews are a crucial piece to your Security Development Lifecycle. It would be easy to encourage secure development in your team, but as you expand your process to include formal security requirements and begin enforcing those requirements, it is necessary to perform a final audit of your product before it is released. Your customers will thank you for taking the time to add this layer of quality control to your operations and you will likely save yourself some security embarrassment down the road by adding a FSR to the end of your product cycle.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT size=3><FONT face=Calibri>Document security work for reference<o:p></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>After the FSR is complete, there is still work for the security team. The final FSR documentation should be archived along with the symbols and code that represents the finished project. This becomes the time-stamped “snapshot” of your product. Your post-release process should include archiving the following documents in an easily accessible location:<o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>All final threat models for future reference. <o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Bug bars, tool settings, and test results related to your project and the supporting tools used to validate. These will be referenced and reused in the next product cycle. <o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>All documented security bug exceptions. These need to be rolled into your next product cycle to ensure they are addressed. <o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>The final symbols that reflect the product shipped should be archived.<o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>The Final Security Report and project signoffs to validate your security audit activity <o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Your </FONT><A href="http://www.microsoft.com/security/msrc/incident_response.mspx"><FONT size=3 face=Calibri>Incident Response Plan</FONT></A><FONT size=3><FONT face=Calibri> (discussed in the Crawl post). This must be accessible for quick reference if security incidents occur.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.25in; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 10pt; mso-add-space: auto" class=MsoListParagraphCxSpLast><FONT size=3><FONT face=Calibri>Archiving this evidence serves a few critical purposes: it shows historic evidence of the work you did to ensure a secure product, allows you to postmortem the results and improves your process each time, and reduces the amount of time your team will have to spend next time around by making the existing resources reusable.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT size=3><FONT face=Calibri>In closing…<o:p></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>I hope this long series has provided some practical steps you can take to move your Security Development Lifecycle practices to the next level. At Microsoft, creating a lifecycle to match security development practices has faced a fair share of challenges. However, the investment and time has resulted in more secure products. We’ll continue refining how we execute the Security Development Lifecycle and hope to share those ideas with you along the way. We welcome your thoughts and questions as you start “Walking” with the SDL in your own company and look forward to seeing more secure products and customers as a result. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>I’ve created a unique tag on the SDL Blog to cover this series. To get a full list of the related posts, click the “Crawl Walk Run” tag on the left column. I’ll post a Word document version of the full “Walk” series sometime in the next week.<o:p></o:p></FONT></FONT></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8772987" width="1" height="1">]]></content:encoded>
      <pubDate>Fri, 25 Jul 2008 16:49:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/team">team</category>
      <category domain="http://securityratty.com/tag/product team">product team</category>
      <category domain="http://securityratty.com/tag/requirements">requirements</category>
      <category domain="http://securityratty.com/tag/define requirements">define requirements</category>
      <category domain="http://securityratty.com/tag/security requirements">security requirements</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/final security report">final security report</category>
      <category domain="http://securityratty.com/tag/threat models">threat models</category>
      <category domain="http://securityratty.com/tag/re-review threat models">re-review threat models</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/07/25/walking-with-the-sdl-part-4.aspx">"Walking" with the SDL - Part 4</source>
    </item>
    <item>
      <title><![CDATA[New SDL Website]]></title>
      <link>http://securityratty.com/article/0ac129425f76ea795015d9b0bf55a6a0</link>
      <guid>http://securityratty.com/article/0ac129425f76ea795015d9b0bf55a6a0</guid>
      <description><![CDATA[Hi all, Dave here
Im pleased to announce the availability of new resources for the Microsoft Security Development Lifecycle (SDL
We have recently launched a dedicated SDL website at...]]></description>
      <content:encoded><![CDATA[<P><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">Hi all, Dave here…</SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">I’m pleased to announce the availability of new resources for the Microsoft Security Development Lifecycle (SDL).&nbsp; </SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">We have recently launched a dedicated SDL website at <A href="http://www.microsoft.com/sdl">www.microsoft.com/sdl</A>. This website will serve as the main online presence for all SDL related communications and resources from Microsoft. </SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">For several years now the SDL has been at the heart of Microsoft’s strategy for making security and privacy an integral part of the software development culture at Microsoft. As a result of the SDL, we have seen significant security improvements across many flagship Microsoft products including Windows, SQL Server and others. These security improvements have been widely recognized by security analysts, researchers and other experts. However, despite the significant improvements and recognition, we believe that our connections to our broad technical audiences (developers and IT Pros) are not equating the SDL to the progress we have made with our technologies and services.</SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">Given that, our goal is to help illustrate SDL processes and tooling in a structured and consistent manner – by providing <EM>actionable</EM> guidance for the different job roles within a development organization.</SPAN></P>
<P><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">We welcome your feedback – on the site, and on other information you’d find useful in evaluating the SDL. </SPAN></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8718816" width="1" height="1">]]></content:encoded>
      <pubDate>Thu, 10 Jul 2008 17:47:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/sdl">sdl</category>
      <category domain="http://securityratty.com/tag/sdl website">sdl website</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/security analysts">security analysts</category>
      <category domain="http://securityratty.com/tag/significant security improvements">significant security improvements</category>
      <category domain="http://securityratty.com/tag/sdl processes">sdl processes</category>
      <category domain="http://securityratty.com/tag/website">website</category>
      <category domain="http://securityratty.com/tag/security improvements">security improvements</category>
      <category domain="http://securityratty.com/tag/microsoft">microsoft</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/07/10/new-sdl-website.aspx">New SDL Website</source>
    </item>
    <item>
      <title><![CDATA[New Security Tools for IIS and SQL]]></title>
      <link>http://securityratty.com/article/b3892fbd49dab930356750501023c0df</link>
      <guid>http://securityratty.com/article/b3892fbd49dab930356750501023c0df</guid>
      <description><![CDATA[In cast you didn't see it, the Microsoft Security Response Center (MSRC) team just announced the release of three tools to help customers fend off SQL injection attacks
UrlScan 3.0 Beta ( see Wade...]]></description>
      <content:encoded><![CDATA[<p>In cast you didn't see it, the Microsoft Security Response Center (MSRC) team just <a href="SQL Injection Attacks Exploiting Unverified User Data Input" target="_blank">announced</a> the release of three tools to help customers fend off SQL injection attacks: <ul> <li>UrlScan 3.0 Beta (<a href="http://blogs.iis.net/wadeh/archive/2008/06/24/urlscan-v3-0-beta-release.aspx" target="_blank">see Wade Hilmo's blog for more</a>), a security tool that restricts the types of HTTP requests that Internet Information Services (IIS) will process. By blocking specific HTTP requests, the UrlScan helps prevent potentially harmful requests.</li> <li>Microsoft Source Code Analyzer for SQL Injection (MSCASI) CTP (<a href="http://blogs.msdn.com/sqlsecurity/archive/2008/06/24/microsoft-source-code-analyzer-for-sql-injection-june-2008-ctp.aspx" target="_blank">see the SQL Security blog for more</a>), a tool that can be used to detect ASP code susceptible to SQL injection attacks. </li> <li>Scrawlr (<a href="http://www.communities.hp.com/securitysoftware/blogs/spilabs/archive/2008/06/23/finding-sql-injection-with-scrawlr.aspx" target="_blank">see HP's security blog for more</a>), a free scanner, developed by HP Web Security Research Group in conjunction with Microsoft, which will allow customers to identify whether their Web sites might be susceptible to SQL injection.</li></ul> <p>There are already a lot of resources out there available already for these tools.&nbsp; Let me point you to a few of them: <ul> <li>The new Microsoft <a href="http://www.microsoft.com/technet/security/advisory/954462.mspx">Security Advisory 954462</a> announcing the tools, with guidance</li> <ul> <li><a href="http://www.communities.hp.com/securitysoftware/blogs/spilabs/archive/2008/06/23/finding-sql-injection-with-scrawlr.aspx">Finding SQL Injection with Scrawlr</a> at the <a href="http://www.communities.hp.com/securitysoftware/">HP Security Center</a></li> <li><a href="http://learn.iis.net/page.aspx/473/using-urlscan">URLScan Tool 3.0 Beta</a> page, including download links &amp; docs</li> <li>MSCASI download and reference kb: <a href="http://support.microsoft.com/kb/954476">Microsoft Knowledge Base Article 954476</a></li></ul> <li>A good <a href="http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx" target="_blank">discussion of Injection Attacks by Michael Howard</a> on the SDL Blog</li> <li><a href="http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx">Security Vulnerability Research &amp; Defense Blog on SQL Injection Attack</a></li> <li>SDL blog post on the new tools: <a href="http://blogs.msdn.com/sdl/archive/2008/06/24/sql-injection-defense-tools.aspx">SQL Injection Defense Tools</a>&nbsp;</li></ul> <p>and some best practice guidance for developers:</p> <ul> <li><a href="http://msdn.microsoft.com/en-us/library/ms998271.aspx">How To: Protect from SQL Injection in ASP.NET</a></li> <li><a href="http://msdn.microsoft.com/en-us/library/cc676512.aspx" target="_blank">Preventing SQL Injections in ASP</a>, by Bala Neerumalla </li> <li><a href="http://forums.asp.net/t/1254125.aspx">Coding Techniques for protecting against SQL Injection in ASP.NET</a></li> <li><a href="http://blogs.iis.net/nazim/archive/2008/04/28/filtering-sql-injection-from-classic-asp.aspx">Filtering SQL Injection from Classic ASP</a></li></ul> <p>Best regards ~ Jeff</p><img src="http://blogs.technet.com/aggbug.aspx?PostID=3078096" width="1" height="1">]]></content:encoded>
      <pubDate>Wed, 25 Jun 2008 17:45:45 +0000</pubDate>
      <category domain="http://securityratty.com/tag/sdl blog post">sdl blog post</category>
      <category domain="http://securityratty.com/tag/blog">blog</category>
      <category domain="http://securityratty.com/tag/sql injection">sql injection</category>
      <category domain="http://securityratty.com/tag/sql injection attack">sql injection attack</category>
      <category domain="http://securityratty.com/tag/injection attacks">injection attacks</category>
      <category domain="http://securityratty.com/tag/sql injection attacks">sql injection attacks</category>
      <category domain="http://securityratty.com/tag/security blog">security blog</category>
      <category domain="http://securityratty.com/tag/defense blog">defense blog</category>
      <category domain="http://securityratty.com/tag/sdl blog">sdl blog</category>
      <source url="http://blogs.technet.com/security/archive/2008/06/25/new-security-tools-for-iis-and-sql.aspx">New Security Tools for IIS and SQL</source>
    </item>
  </channel>
</rss>
