<?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: apis]]></title>
    <link>http://www.securityratty.com/tag/apis</link>
    <description></description>
    <pubDate>Wed, 28 May 2008 19:05:20 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[OAuth for Secure Mashups]]></title>
      <link>http://www.securityratty.com/article/f0ebee1b88f03cd2b1ad9ff61f4608ac</link>
      <guid>http://www.securityratty.com/article/f0ebee1b88f03cd2b1ad9ff61f4608ac</guid>
      <description><![CDATA[Posted by Eric Sachs, Senior Product Manager, Google Security

A year ago, a number of large and small websites announced a new open standard called OAuth . This standard is designed to provide a...]]></description>
      <content:encoded><![CDATA[<span class="byline-author">Posted by Eric Sachs, Senior Product Manager, Google Security</span><br /><br />A year ago, a number of large and small websites announced a new open standard called <a href="http://oauth.net/" id="hz33" title="OAuth">OAuth</a>. This standard is designed to provide a secure and privacy-preserving technique for enabling specific private data on one site to be accessed by another site.  One popular reason for that type of cross-site access is data portability in areas such as personal health records (such as Google Health or Microsoft Healthvault), as well as social networks (such as OpenSocial enabled sites). I originally became involved in this space in the summer of 2005, when Google started developing a feature called <a href="http://code.google.com/apis/accounts/docs/AuthSub.html" id="e3yh" title="AuthSub">AuthSub</a>, which was one of the pre-cursors of OAuth. That was a proprietary protocol, but one that has been used by hundreds of websites to provide add-on services to Google Account users by getting permission from users to access data in their Google Accounts.  In fact, that was the key feature that a few of us used to start the Google Health portability effort back when it was only a prototype project with a few dedicated Googlers.  <div id="zq.s" style="margin-top: 0px; margin-bottom: 0px;"><br /></div>  <div id="zq.s1" style="margin-top: 0px; margin-bottom: 0px;"> However, with the development of a common Internet standard in OAuth, we see much greater potential for data portability and secure mash-ups. Today we <a href="http://igoogledeveloper.blogspot.com/2008/11/sign-in-to-myspace-aol-mail-and-google.html">announced</a> that the gadget platform now supports OAuth, and the interoperability of this standard was demonstrated by new iGoogle gadgets that AOL and MySpace both built to enable users to see their respective AOL or MySpace mailboxes (and other information) while on iGoogle. However, to ensure the user's privacy, this only works after the user has authorized AOL or MySpace to make their data available to the gadget running on iGoogle.  We also previously <a href="http://googledataapis.blogspot.com/2008/10/whats-that-google-data-gadgets.html" id="w6.8" title="announced">announced</a> that third-party developers can build their own iGoogle gadgets that access the OAuth-enabled APIs for Google applications such as Calendar, Picasa, and Docs. In fact, since both the gadget platform and OAuth technology are open standards, we are working to help other companies who run services similar to iGoogle to enhance them with support for these standards. Once that is in place, these new OAuth-powered gadgets that are available on iGoogle will also work on those other sites, including many of the gadgets that Google offers for its own applications. This provides a platform for some interesting mash-ups.  For example, a third-party developer could create a single gadget that uses OAuth to access both Google OAuth-enabled APIs (such as a Gmail user's <a href="http://code.google.com/apis/contacts/" id="v05v" title="address book">address book</a>) and <a href="http://developer.myspace.com/community/myspace/dataavailability.aspx" id="lewp" title="MySpace OAuth enabled APIs">MySpace OAuth-enabled APIs</a> (such as a user's friend list) and display a mashup of the combination.  </div>  <div id="d23k" style="margin-top: 0px; margin-bottom: 0px;"><br /></div>  <div id="ivuk" style="margin-top: 0px; margin-bottom: 0px;"> While the combination of OAuth with gadgets is an exciting new use of the technology, most of the use of OAuth is between websites, such as to enable a user of Google Health to allow a clinical trial matching site to access his or her health profile.  I previously mentioned that one privacy control provided by OAuth is that it defines a standard way for users to authorize one website to make their data accessible to another website. In addition, OAuth provides a way to do this without the first site needing to reveal the identity of the user -- it simply provides a different opaque security token to each additional website the user wants to share his or her data with.  It would allow a mutual fund, for example, to provide an iGoogle gadget to their customers that would run on iGoogle and show the user the value of his or her mutual fund, but without giving Google any unique information about the user, such as a social security number or account number.  In the future, maybe we will even see industries like banks use standards such as OAuth to allow their customers to authorize utility companies to perform direct debit from the user's bank account without that person having to actually share his or her bank account number with the utility vendor. </div>  <div id="pvsw" style="margin-top: 0px; margin-bottom: 0px;"><br /></div>  <div id="odub" style="margin-top: 0px; margin-bottom: 0px;"> The OAuth community is continuing to enhance this standard and is very interested in having more companies engaged with its development. The <a href="http://oauth.net/" id="q6e4" title="OAuth">OAuth.net</a> website has more details about the current standard, and I maintain a <a href="http://sites.google.com/site/oauthgoog/" id="uw8z" title="website">website</a> with advanced information about Google's use of OAuth, including work on integrating OAuth with desktop apps, and integrating with federation standards such as OpenID and SAML.  If you're interested in engaging with the OAuth community, please get in touch with us. </div><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/GoogleOnlineSecurityBlog?a=LcHtN"><img src="http://feeds.feedburner.com/~f/GoogleOnlineSecurityBlog?i=LcHtN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GoogleOnlineSecurityBlog?a=7jAKn"><img src="http://feeds.feedburner.com/~f/GoogleOnlineSecurityBlog?i=7jAKn" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GoogleOnlineSecurityBlog/~4/458667878" height="1" width="1"/>]]></content:encoded>
      <pubDate>Tue, 18 Nov 2008 14:41:00 +0000</pubDate>
      <category domain="http://www.securityratty.com/tag/oauth">oauth</category>
      <category domain="http://www.securityratty.com/tag/oauth community">oauth community</category>
      <category domain="http://www.securityratty.com/tag/google">google</category>
      <category domain="http://www.securityratty.com/tag/google accounts">google accounts</category>
      <category domain="http://www.securityratty.com/tag/oauth technology">oauth technology</category>
      <category domain="http://www.securityratty.com/tag/google security">google security</category>
      <category domain="http://www.securityratty.com/tag/account">account</category>
      <category domain="http://www.securityratty.com/tag/bank account">bank account</category>
      <category domain="http://www.securityratty.com/tag/gadget">gadget</category>
      <source url="http://feeds.feedburner.com/~r/GoogleOnlineSecurityBlog/~3/458667878/oauth-for-secure-mashups.html">OAuth for Secure Mashups</source>
    </item>
    <item>
      <title><![CDATA[OAuth for Secure Mashups]]></title>
      <link>http://www.securityratty.com/article/dce22eb7ff2c1aceec169c6236231696</link>
      <guid>http://www.securityratty.com/article/dce22eb7ff2c1aceec169c6236231696</guid>
      <description><![CDATA[Posted by Eric Sachs, Senior Product Manager, Google Security

A year ago, a number of large and small websites announced a new open standard called OAuth . This standard is designed to provide a...]]></description>
      <content:encoded><![CDATA[<span class="byline-author">Posted by Eric Sachs, Senior Product Manager, Google Security</span><br /><br />A year ago, a number of large and small websites announced a new open standard called <a href="http://oauth.net/" id="hz33" title="OAuth">OAuth</a>. This standard is designed to provide a secure and privacy-preserving technique for enabling specific private data on one site to be accessed by another site.  One popular reason for that type of cross-site access is data portability in areas such as personal health records (such as Google Health or Microsoft Healthvault), as well as social networks (such as OpenSocial enabled sites). I originally became involved in this space in the summer of 2005, when Google started developing a feature called <a href="http://code.google.com/apis/accounts/docs/AuthSub.html" id="e3yh" title="AuthSub">AuthSub</a>, which was one of the pre-cursors of OAuth. That was a proprietary protocol, but one that has been used by hundreds of websites to provide add-on services to Google Account users by getting permission from users to access data in their Google Accounts.  In fact, that was the key feature that a few of us used to start the Google Health portability effort back when it was only a prototype project with a few dedicated Googlers.  <div id="zq.s" style="margin-top: 0px; margin-bottom: 0px;"><br /></div>  <div id="zq.s1" style="margin-top: 0px; margin-bottom: 0px;"> However, with the development of a common Internet standard in OAuth, we see much greater potential for data portability and secure mash-ups. Today we <a href="http://igoogledeveloper.blogspot.com/2008/11/sign-in-to-myspace-aol-mail-and-google.html">announced</a> that the gadget platform now supports OAuth, and the interoperability of this standard was demonstrated by new iGoogle gadgets that AOL and MySpace both built to enable users to see their respective AOL or MySpace mailboxes (and other information) while on iGoogle. However, to ensure the user's privacy, this only works after the user has authorized AOL or MySpace to make their data available to the gadget running on iGoogle.  We also previously <a href="http://googledataapis.blogspot.com/2008/10/whats-that-google-data-gadgets.html" id="w6.8" title="announced">announced</a> that third-party developers can build their own iGoogle gadgets that access the OAuth-enabled APIs for Google applications such as Calendar, Picasa, and Docs. In fact, since both the gadget platform and OAuth technology are open standards, we are working to help other companies who run services similar to iGoogle to enhance them with support for these standards. Once that is in place, these new OAuth-powered gadgets that are available on iGoogle will also work on those other sites, including many of the gadgets that Google offers for its own applications. This provides a platform for some interesting mash-ups.  For example, a third-party developer could create a single gadget that uses OAuth to access both Google OAuth-enabled APIs (such as a Gmail user's <a href="http://code.google.com/apis/contacts/" id="v05v" title="address book">address book</a>) and <a href="http://developer.myspace.com/community/myspace/dataavailability.aspx" id="lewp" title="MySpace OAuth enabled APIs">MySpace OAuth-enabled APIs</a> (such as a user's friend list) and display a mashup of the combination.  </div>  <div id="d23k" style="margin-top: 0px; margin-bottom: 0px;"><br /></div>  <div id="ivuk" style="margin-top: 0px; margin-bottom: 0px;"> While the combination of OAuth with gadgets is an exciting new use of the technology, most of the use of OAuth is between websites, such as to enable a user of Google Health to allow a clinical trial matching site to access his or her health profile.  I previously mentioned that one privacy control provided by OAuth is that it defines a standard way for users to authorize one website to make their data accessible to another website. In addition, OAuth provides a way to do this without the first site needing to reveal the identity of the user -- it simply provides a different opaque security token to each additional website the user wants to share his or her data with.  It would allow a mutual fund, for example, to provide an iGoogle gadget to their customers that would run on iGoogle and show the user the value of his or her mutual fund, but without giving Google any unique information about the user, such as a social security number or account number.  In the future, maybe we will even see industries like banks use standards such as OAuth to allow their customers to authorize utility companies to perform direct debit from the user's bank account without that person having to actually share his or her bank account number with the utility vendor. </div>  <div id="pvsw" style="margin-top: 0px; margin-bottom: 0px;"><br /></div>  <div id="odub" style="margin-top: 0px; margin-bottom: 0px;"> The OAuth community is continuing to enhance this standard and is very interested in having more companies engaged with its development. The <a href="http://oauth.net/" id="q6e4" title="OAuth">OAuth.net</a> website has more details about the current standard, and I maintain a <a href="http://sites.google.com/site/oauthgoog/" id="uw8z" title="website">website</a> with advanced information about Google's use of OAuth, including work on integrating OAuth with desktop apps, and integrating with federation standards such as OpenID and SAML.  If you're interested in engaging with the OAuth community, please get in touch with us. </div><div class="feedflare">
<a href="http://feedproxy.google.com/~f/GoogleOnlineSecurityBlog?a=RbYKY1QI"><img src="http://feedproxy.google.com/~f/GoogleOnlineSecurityBlog?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/GoogleOnlineSecurityBlog?a=livMlZFo"><img src="http://feedproxy.google.com/~f/GoogleOnlineSecurityBlog?i=livMlZFo" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/GoogleOnlineSecurityBlog/~4/bEpTg1dntxU" height="1" width="1"/>]]></content:encoded>
      <pubDate>Tue, 18 Nov 2008 14:41:00 +0000</pubDate>
      <category domain="http://www.securityratty.com/tag/oauth">oauth</category>
      <category domain="http://www.securityratty.com/tag/oauth community">oauth community</category>
      <category domain="http://www.securityratty.com/tag/google">google</category>
      <category domain="http://www.securityratty.com/tag/google accounts">google accounts</category>
      <category domain="http://www.securityratty.com/tag/oauth technology">oauth technology</category>
      <category domain="http://www.securityratty.com/tag/google security">google security</category>
      <category domain="http://www.securityratty.com/tag/account">account</category>
      <category domain="http://www.securityratty.com/tag/bank account">bank account</category>
      <category domain="http://www.securityratty.com/tag/gadget">gadget</category>
      <source url="http://feedproxy.google.com/~r/GoogleOnlineSecurityBlog/~3/bEpTg1dntxU/oauth-for-secure-mashups.html">OAuth for Secure Mashups</source>
    </item>
    <item>
      <title><![CDATA[Good hygiene and Banned APIs]]></title>
      <link>http://www.securityratty.com/article/76a6df21c84c03ac4f35261fb88bd645</link>
      <guid>http://www.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://www.securityratty.com/tag/header file">header file</category>
      <category domain="http://www.securityratty.com/tag/header">header</category>
      <category domain="http://www.securityratty.com/tag/code">code</category>
      <category domain="http://www.securityratty.com/tag/code reviews">code reviews</category>
      <category domain="http://www.securityratty.com/tag/runtime functions">runtime functions</category>
      <category domain="http://www.securityratty.com/tag/functions">functions</category>
      <category domain="http://www.securityratty.com/tag/apis">apis</category>
      <category domain="http://www.securityratty.com/tag/w4-c4996 warnings">w4-c4996 warnings</category>
      <category domain="http://www.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[Interop NY: Cloud Language: The Taxonomy of On-Demand Computing]]></title>
      <link>http://www.securityratty.com/article/69fa97ea284dec188b278c522ed18fd8</link>
      <guid>http://www.securityratty.com/article/69fa97ea284dec188b278c522ed18fd8</guid>
      <description><![CDATA[This session on cloud computing was presented by Peter Laird of Oracle Corporation. Peter is a lead architect for the WebCenter product family. He previously worked with BEA as an architect for SaaS...]]></description>
      <content:encoded><![CDATA[<p>This <a href="http://www.interop.com/newyork/conference/all-by-day.php?tag=Cloud+Computing" target="_blank">session on cloud computing</a> was presented by Peter Laird of Oracle Corporation. Peter is a lead architect for the WebCenter product family. He previously worked with BEA as an architect for SaaS efforts. He also blogs at <a href="http://peterlaird.blogspot.com/" target="_blank">Laird On Demand</a>.</p>
<p><strong>Defining Cloud Computing</strong></p>
<p>Cloud computing is a very active community. The <a href="http://groups.google.com/group/cloud-computing" target="_blank">Google Group</a> gets 600 posts per month and many bloggers are covering the space. However, &#8220;cloud computing&#8221; is impossible to define in a way that satisfies everyone (or even most). Cloud computing is not alone in this controversy, consider the definition and meaning of &#8220;Web 2.0&#8243;, &#8220;mashups&#8221; or &#8220;RESTful architecture&#8221;. All of these terms are relatively recent. According to Google Trends, these terms became popular to the general public sometime between 2005 and 2007:</p>
<ul>
<li>Web 2.0 - often confused with RIA, AKA Social Computing, Long-Tail Apps, Crowdware (2005 by O&#8217;Reilly Media)</li>
<li>Mashup - made popular by Google Maps, AKA Composite/Situational Apps. (2005)</li>
<li>REST - Has a strict definition, but many don&#8217;t understand it and abuse the term. (2006 by R. Fielding)</li>
<li>Cloud computing - collides with many other terms, such as SaaS, Grid, Utility, PaaS, etc. (2007)</li>
</ul>
<p>The definition of cloud computing is in progress:</p>
<blockquote><p>There&#8217;s a Darwinian evolution of the exact definition of cloud computing running around. We&#8217;re about a country mile away from &#8220;knowing when I see it&#8221;, which is excellent progress. The cloud to everyone&#8217;s silver-lining has enough material to write a 3 volume desktop reference at this point. - Michael Cote, June 2008</p></blockquote>
<p><strong>Definition #1</strong> - &#8220;Cloud computing is the realisation of Internet (&#8221;Cloud&#8221;) based development and use of computer technology (&#8221;Computing&#8221;) delivered by an ecosystem of providers. - Sam Johnston, July 2008</p>
<p><strong>Definition #2</strong> - &#8220;Cloud computing = network computing. I love the idea of cloud computing, the next evolution of the most network intensive architecture possible, but one that if it works well, is transparent. It&#8217;s all about the transparency.&#8221; - Douglas Gourlay, Cisco, May 2008</p>
<p><strong>Definition #3</strong> - &#8220;There seems to be a group myopia around so-called &#8220;cloud computing&#8221; and its definitions. What we&#8217;re really talking about are &#8220;cloud services&#8221; of which, &#8220;computing&#8221; is only a subset&#8230;Cloud services are not SaaS. They are far more akin to web services&#8230;&#8221; - Randy Bias, neoTactics, May 2008</p>
<p><strong>(Anti-)Definition #4</strong> - &#8220;Note that I refer to cloud services, not to the could. I am not interested in defining cloud as a term, because I don&#8217;t think it&#8217;s very useful. For those of us in the distributed computing&#8217;s pace</p>
<p><strong>The Working Definition (Winner!):</strong></p>
<p>&#8220;&#8230;the notion of providing easily accessible compute and storage resources on a pay-as-you-go, on-demand basis, from a virtually infinite infrastructure managed by someone else. As a customer, you don&#8217;t know where the resources are, and for the most part, you don&#8217;t care. What&#8217;s really important is the capability to access your application anywhere, move it freely and easily, and inexpensively add resources for instant scalability.&#8221; - Mitchell Crandell, Rightscale, June 2008</p>
<p><strong>Taxonomies of the Cloud Space</strong></p>
<p>Taxonomies are useful to provide insight into a market. It classifies a multitude of players into a smaller bucket.</p>
<p><em>Andreessen&#8217;s Platforms - September 2007</em></p>
<p>Provided an early taxonomy model for emerging cloud platforms</p>
<p>Platform being a system that can be programmed</p>
<ul>
<li>Access API - platform that provides web service endpoints</li>
<li>Plug-In API - platform invokes your code, that you have deployed remotely</li>
<li>Runtime Environment - your code runs inside the platform&#8217;s process space.</li>
</ul>
<p><em>Mehta 11 Layer Stack, April 2008</em></p>
<ol>
<li>Facilities (space, power, cooling)</li>
<li>Network</li>
<li>Hardware (e.g. servers Amazon EC2 runs)</li>
<li>Hardware virtualization (e.g. Xen for EC2) - optional</li>
<li>O/S (e.g. Linux)</li>
<li>Systems Management (e.g., tools to manage EC2 instances)</li>
<li>Application Middleware (e.g., MySQL on EC2)</li>
<li>Application Code</li>
<li>Application APIs / Web Services</li>
<li>GUI for Application</li>
<li>GUI for Application Development / Customization</li>
</ol>
<p><em>Croll Cloud Stack, June 2008</em></p>
<p>7 layer stack within Turnkey app and Generic Platform.</p>
<p><em>Turnkey app</em></p>
<ul>
<li>SaaS</li>
<li>Extensible app</li>
<li>Generic IDE</li>
<li>Constrained APIs</li>
<li>App Cluster</li>
<li>Virtual Data Center</li>
<li>Virtual Servers</li>
</ul>
<p><em>Generic Platform</em></p>
<p>The bottom of Alistair&#8217;s stack includes &#8220;root access &#8220;style compute clouds.</p>
<p><em>Robert Anderson, July 2008</em></p>
<p>3 layer stack</p>
<ul>
<li>Software (SaaS)</li>
<li>Platform (PaaS)</li>
<li>Infrastructure (IaaS)</li>
</ul>
<p>This is the model taxonomy for this session.</p>
<p><strong>Related Concepts and Terms</strong></p>
<ul>
<li>Infrastructure as a Service (IaaS), Hardware as a Service (HaaS) are synonyms to cloud infrastructure.</li>
<li>Virtualization</li>
<li>Hosting</li>
<li>Autonomic computing</li>
<li>Distributed computing</li>
<li>Grid computing</li>
</ul>
<p>Cloud Applications</p>
<ul>
<li>SaaS</li>
<li>S+S (Software+Services)</li>
<li>Managed Service Provider (MSP)</li>
</ul>
]]></content:encoded>
      <pubDate>Wed, 17 Sep 2008 14:25:32 +0000</pubDate>
      <category domain="http://www.securityratty.com/tag/cloud">cloud</category>
      <category domain="http://www.securityratty.com/tag/cloud applications">cloud applications</category>
      <category domain="http://www.securityratty.com/tag/croll cloud stack">croll cloud stack</category>
      <category domain="http://www.securityratty.com/tag/cloud infrastructure">cloud infrastructure</category>
      <category domain="http://www.securityratty.com/tag/platforms process space">platforms process space</category>
      <category domain="http://www.securityratty.com/tag/space">space</category>
      <category domain="http://www.securityratty.com/tag/cloud space">cloud space</category>
      <category domain="http://www.securityratty.com/tag/cloud platforms">cloud platforms</category>
      <category domain="http://www.securityratty.com/tag/cloud services">cloud services</category>
      <source url="http://blog.sciencelogic.com/interop-ny-cloud-language-the-taxonomy-of-on-demand-computing/09/2008">Interop NY: Cloud Language: The Taxonomy of On-Demand Computing</source>
    </item>
    <item>
      <title><![CDATA[Interop NY Keynotes: Cisco]]></title>
      <link>http://www.securityratty.com/article/c55a3293fe594f4363a5830f6da4d48c</link>
      <guid>http://www.securityratty.com/article/c55a3293fe594f4363a5830f6da4d48c</guid>
      <description><![CDATA[After some rousing introduction music, Marie Hatter , Vice President, Network Systems and Security Solutions Marketing / CMO of Cisco began her presentation on virtualization
Introduction...]]></description>
      <content:encoded><![CDATA[<p>After some rousing introduction music, <a href="http://blogs.cisco.com/authors/bio/83" target="_blank">Marie Hatter</a>, Vice President, Network Systems and Security Solutions Marketing / CMO of Cisco began her presentation on virtualization.</p>
<p><strong>Introduction</strong></p>
<p>Virtualization is a word used by consumers and also by IT. But, do we all mean the same thing?</p>
<p>A very cool video from Cisco provided answers to &#8220;what is virtualization&#8221; from an  engineering perspective, data center perspective, IT perspective and the user perspective (virtual world).</p>
<p>Virtualization is about breaking the bonds between applications and server hardware, nodes and networks, applications and operating systems.</p>
<p>Why is this interesting? Virtualization holds the promise to transform the way we work, live, learn and play.</p>
<p><strong>Why virtualize?</strong></p>
<p>The real estate boom over the last 30 years has driven people to the suburbs. People didn&#8217;t mind commuting for an hour with lower gas prices. Today, we have a weak economy and gas prices are high. Something has to change.</p>
<p>Many are opting to stay at home. Businesses are trying out telecommuting, some (like Cisco) are even offering telepresence. This helps by reducing carbon footprint. Corporations are breaking free from physical requirements. The global workforce is also having an impact on the network. These changes are having a huge impact on the network.</p>
<p>We are on the cusp of transitioning from virtualization to VIRTUALIZATION.</p>
<p><strong>&#8220;One to many&#8230;.many to one.&#8221;</strong></p>
<p>This is Cisco&#8217;s idea of virtualization.</p>
<p>Consider the different roles we play in life - one to many. Spouse, executive, friend, parent, gym rat. This would be &#8220;one to many&#8221;. This is exactly what virtualization does. It allows you to partition resources off that you can use on the fly.</p>
<p><strong>Where do I start?</strong></p>
<p>Virtualization starts with server and storage. But, it&#8217;s the network that touches everything - it spans the physical, the virtual, and the cloud. This provides the connectivity to all these resources. The network brings transparency to the picture. It allows you to better monitor performance and better implement security - great benefits!</p>
<p><strong>Why do I need this?</strong></p>
<p>At Cisco, we saw that we were only using 20% of our storage utilization. We wanted to virtualize our datacenters. When we did that, we were able to get 68% storage utilization. For each year that we were able to defer buildup, we saved $40 million.</p>
<p>From a business standpoint, virtualization helps you differentiate and work faster. Provisioning in minutes, improved productivity and competitive differentiation, using less power (environmental impact), and up the ante of business continuity. If VMWare fails? It&#8217;s OK. You can reprovision it on the fly.</p>
<p><strong>Is it for everyone?</strong></p>
<p>IT organizations tend to be siloed. You have the IT side and the Operations side. Each has responsibility. For virtualization to work, these walls have to come down. The concept of virtualization depends on shared resources.</p>
<p><strong><a href="http://en.wikipedia.org/wiki/Metcalfe%27s_law" target="_blank">Metcalfe&#8217;s Law of the Network</a> Effect</strong></p>
<p>Everytime you add a node to the network, you increase the value. This is what happens with virtualization. Every device you virtualize increases the power of each device. More control of environment and more efficiency.</p>
<p>This leads to&#8230;</p>
<p><strong>Cloud computing.</strong></p>
<p>Wow, show of hands from the audience when Marie asked &#8220;how many are using cloud computing?&#8221; and &#8220;how many are using your own clouds?&#8221; - not a lot of hands were raised. Interesting considering the coverage cloud computing has and the focus of it.</p>
<p>Cloud computing has three possibilities at Cisco:</p>
<ul>
<li>Flexible infrastructure (hosting)</li>
<li>Abstract services (APIs)</li>
<li>Application services (SaaS)</li>
</ul>
<p>Automation is going to be key, and will need to integrate virtualization-aware elements.</p>
<p>Can you imagine if you wanted interoperability in the cloud? People haven&#8217;t even begun thinking about it.</p>
<p><strong>Conclusion</strong></p>
<p>As you virtualize, your role will change. You will think more about strategy. But keep in mind these &#8220;minefields&#8221; of virtualization:</p>
<ul>
<li>Insufficient planning</li>
<li>Lack of standards</li>
<li>Weak security</li>
</ul>
<p>Security cannot be an afterthought. It has to be planned. We&#8217;ve seen new forms of malware, hypervisor attacks, and root kit infections.</p>
<p>As higher expectations from end users evolve, we&#8217;re becoming not server oriented, but SERVICE oriented.</p>
<p><strong>Tips:</strong></p>
<ul>
<li>Think holistically</li>
<li>Consider IT culture - equipment and people</li>
</ul>
]]></content:encoded>
      <pubDate>Wed, 17 Sep 2008 10:11:05 +0000</pubDate>
      <category domain="http://www.securityratty.com/tag/virtualization">virtualization</category>
      <category domain="http://www.securityratty.com/tag/virtualization starts">virtualization starts</category>
      <category domain="http://www.securityratty.com/tag/virtualization helps">virtualization helps</category>
      <category domain="http://www.securityratty.com/tag/helps">helps</category>
      <category domain="http://www.securityratty.com/tag/virtualization depends">virtualization depends</category>
      <category domain="http://www.securityratty.com/tag/virtualization holds">virtualization holds</category>
      <category domain="http://www.securityratty.com/tag/network">network</category>
      <category domain="http://www.securityratty.com/tag/network brings transparency">network brings transparency</category>
      <category domain="http://www.securityratty.com/tag/cisco">cisco</category>
      <source url="http://blog.sciencelogic.com/interop-ny-keynotes-cisco/09/2008">Interop NY Keynotes: Cisco</source>
    </item>
    <item>
      <title><![CDATA[The Commoditization of Anti Debugging Features in RATs]]></title>
      <link>http://www.securityratty.com/article/d357b72fd1cde8f737f42b6043955d6b</link>
      <guid>http://www.securityratty.com/article/d357b72fd1cde8f737f42b6043955d6b</guid>
      <description><![CDATA[Is it a Remote Administration Tool (RAT) or is it malware ? That's the rhetorical question , since RATs are not supposed to have built-in Virustotal submission for the newly generated server,...]]></description>
      <content:encoded><![CDATA[<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://3.bp.blogspot.com/_wICHhTiQmrA/SL1nh-1oqdI/AAAAAAAACJc/FJtmUCHs730/s1600-h/anti_debugging_rat_malware.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/_wICHhTiQmrA/SL1nh-1oqdI/AAAAAAAACJc/m8B4yux3_5I/s200-R/anti_debugging_rat_malware.png" /></a>Is it a <a href="http://ddanchev.blogspot.com/2007/07/shark2-rat-or-malware.html">Remote Administration Tool</a> (RAT) or is it <a href="http://ddanchev.blogspot.com/2007/08/rats-or-malware.html">malware</a>? That's the <a href="http://ddanchev.blogspot.com/2007/08/shark-2-diy-malware.html">rhetorical question</a>, since <a href="http://ddanchev.blogspot.com/2007/12/shark-malware-new-versions-coming.html">RATs are not supposed</a> to have built-in Virustotal submission for the newly generated server, antivirus software "killing" and <a href="http://ddanchev.blogspot.com/2007/10/multiple-firewalls-bypassing.html">firewall bypassing capabilities</a>.<br />
<br />
Taking a peek into some of commodity features aiming to make it harder to analyze the malware found in pretty much all the average DIY malware builders available at the disposal at the average script kiddies, one of the latest releases pitched as RAT while it's malware clearly indicates the commoditization and availability of such modules :<br />
<br />
" <i>- FWB (DLL Injection, The DLL is Never Written to Disk)<br />
&nbsp;- Decent Strong Traffic Encryption<br />
&nbsp;- Try to Unhook UserMode APIs<br />
&nbsp;- No Plugins/3rd Party Applications<br />
&nbsp;- 4 Startup Methods (Shell, Policies, ActiveX, UserInIt)<br />
&nbsp;- Set Maximum Connections<br />
&nbsp;- Built In File Binder<br />
&nbsp;- Multi Threaded Transfers<br />
&nbsp;- Anti Debugging (Anti VMware, Anti Sandboxie, Anti Norman Sandbox, Anti VirtualPC, Anti Anubis Sandbox, Anti CW Sandbox)</i>"<br />
<br />
<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://1.bp.blogspot.com/_wICHhTiQmrA/SL6CyJQUdnI/AAAAAAAACJk/b4Erkx13fpg/s1600-h/anti_debugging_rat_malware_stats.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/_wICHhTiQmrA/SL6CyJQUdnI/AAAAAAAACJk/Lum7M48FdSQ/s200-R/anti_debugging_rat_malware_stats.png" /></a>Malware coders or "malware modulators"? With the currently emerging <a href="http://ddanchev.blogspot.com/2007/08/malware-as-web-service.html">malware as a web service</a> toolkits porting common malware tools to the web, drag and drop web interfaces for malware building are <a href="http://ddanchev.blogspot.com/2008/07/coding-spyware-and-malware-for-hire.html">definitely in the works</a>.<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=2qWlBL"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=2qWlBL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=BQjJaL"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=BQjJaL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=6b1sjl"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=6b1sjl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=CVEqWl"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=CVEqWl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=BzubfL"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=BzubfL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=7ZXFYL"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=7ZXFYL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=LhD8dl"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=LhD8dl" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanchoDanchevOnSecurityAndNewMedia/~4/382311481" height="1" width="1"/>]]></content:encoded>
      <pubDate>Wed, 03 Sep 2008 03:46:00 +0000</pubDate>
      <category domain="http://www.securityratty.com/tag/anti">anti</category>
      <category domain="http://www.securityratty.com/tag/anti vmware">anti vmware</category>
      <category domain="http://www.securityratty.com/tag/anti norman sandbox">anti norman sandbox</category>
      <category domain="http://www.securityratty.com/tag/common malware tools">common malware tools</category>
      <category domain="http://www.securityratty.com/tag/malware">malware</category>
      <category domain="http://www.securityratty.com/tag/anti virtualpc">anti virtualpc</category>
      <category domain="http://www.securityratty.com/tag/malware coders">malware coders</category>
      <category domain="http://www.securityratty.com/tag/anti anubis sandbox">anti anubis sandbox</category>
      <category domain="http://www.securityratty.com/tag/malware modulators">malware modulators</category>
      <source url="http://feeds.feedburner.com/~r/DanchoDanchevOnSecurityAndNewMedia/~3/382311481/commoditization-of-anti-debugging.html">The Commoditization of Anti Debugging Features in RATs</source>
    </item>
    <item>
      <title><![CDATA[SDL and the XSS Filter]]></title>
      <link>http://www.securityratty.com/article/ce479edf032699e552a4cb52750d1f63</link>
      <guid>http://www.securityratty.com/article/ce479edf032699e552a4cb52750d1f63</guid>
      <description><![CDATA[Steve Lipner here. When the Internet Explorer team posted the announcement about the XSS Filter feature in IE8 I asked some other members of the SDL blog team why arent we talking about the new XSS...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>Steve Lipner here.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>When the Internet Explorer team posted the announcement about the </FONT><A href="http://blogs.msdn.com/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx"><FONT face=Calibri color=#0000ff size=3>XSS Filter feature in IE8</FONT></A><FONT size=3><FONT face=Calibri> <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>I asked some other members of the SDL blog team “why aren’t we talking about the new XSS Filter feature on the SDL blog?” &nbsp;Bryan and Jeremy said something like “that’s a mitigation that only applies to specific clients and a subset of attacks”.&nbsp; So we didn’t cross-reference IE’s XSS Filter post on the SDL blog at the time.&nbsp; Instead, I agreed to write a subsequent post about the relationship of XSS Filter to the SDL and to the ways that our SDL and security science teams think about improving product security.<?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 0pt"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>For those of you who aren’t familiar with XSS Filter, a brief summary is that it is a client-side defense against reflected cross-site scripting (XSS) attacks.&nbsp; It works by recognizing that reflected XSS attacks inject script into the string that the browser sends to the targeted web server.&nbsp; If the server doesn’t neuter or strip out the injected script, it gets sent back to the browser and executed in the context of the target web page.&nbsp; Bad things then happen.&nbsp; At a high level, XSS Filter remembers the string that the browser sent to the server, and looks at the server’s response to see if any of the script was actually in that string.&nbsp; If it was, then XSS Filter decides that it got there because it was injected by an XSS attack and blocks the script from executing.&nbsp; The rest of the web page renders as usual.&nbsp; This is a vastly oversimplified sketch of XSS Filter – for details, see the post by David Ross, inventor of XSS Filter on the </FONT><A href="http://blogs.technet.com/swi/archive/2008/08/19/ie-8-xss-filter-architecture-implementation.aspx"><FONT face=Calibri color=#0000ff size=3>Security Vulnerability Research and Defense blog</FONT></A><FONT size=3><FONT face=Calibri>.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face=Calibri>So what does XSS Filter have to do with the SDL?&nbsp; Well, for almost nine years, since XSS was first discovered at Microsoft, we’ve been trying to figure out effective ways to reduce vulnerability to XSS attacks.&nbsp; Our focus has been on improving the ways that web page developers code their pages, and we’ve developed a lot of tools and techniques for making web content safer from XSS attacks and for detecting XSS vulnerabilities in live pages.&nbsp; The SDL requires the use of many of these tools and techniques, and we’re sure we’ve prevented a lot of XSS vulnerabilities from being introduced into Microsoft web pages as a result.&nbsp; <o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face=Calibri>But while we identify (and the SDL requires) measures that allow developers to avoid classes of vulnerabilities, we also look to identify more sweeping solutions that can either 1) eliminate classes of vulnerabilities, 2) reduce their severity, or 3) reduce the likelihood of attacks being successful.&nbsp; The process usually starts from deep understanding of a class of vulnerabilities and attacks, and then we broaden defenses from there.&nbsp; In the case of XSS Filter, David’s years of work researching XSS led him to come up with an approach that blocks many of the most common vulnerabilities to reflected attacks found on the web today.&nbsp; The solution is compatible with existing web pages (doesn’t “break the web”) and thus we were able to enable it by default for users of Internet Explorer 8.&nbsp; Because it’s a client-side mitigation, it will help protect users from attacks even though the sites they visit may be vulnerable to XSS.&nbsp; <o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>Our work on buffer overrun defenses follows a somewhat similar pattern – we started by prescribing coding techniques, banning the use of some APIs, and building tools that detect coding constructs that look like buffer overruns.&nbsp; As we gained a deeper understanding of how buffer overruns can be exploited, we enhanced the </FONT><A href="http://msdn.microsoft.com/en-us/library/8dbf701c(VS.80).aspx"><FONT face=Calibri size=3>/GS compiler flag</FONT></A><FONT face=Calibri size=3> and added </FONT><A href="http://blogs.msdn.com/michael_howard/archive/2006/05/26/address-space-layout-randomization-in-windows-vista.aspx"><FONT face=Calibri color=#0000ff size=3>ASLR</FONT></A><FONT size=3><FONT face=Calibri> in a quest to cause classes of exploits to fail even if a buffer overrun remains.&nbsp; We’re not yet close to eliminating the SDL requirements for use of tools and coding techniques, but the SDL also requires the use of the mitigations to reduce the severity of vulnerabilities that slip past.&nbsp; Will we ever get to the point where the mitigating technologies are so strong that we can relax the coding requirements?&nbsp; Maybe not, but we will continue to introduce technologies that reduce the chances of a successful attack.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>Similarly, in the case of XSS, even after IE8 ships, the SDL will continue to require the use of safe web site coding practices and tools such as the </FONT><A href="http://msdn.microsoft.com/en-us/library/aa973813.aspx"><FONT face=Calibri color=#0000ff size=3>Anti-XSS library</FONT></A><FONT size=3><FONT face=Calibri> both to protect users of browsers other than IE8 and to provide protection in recognition of the fact that XSS Filter is a mitigation or defense in depth rather than a complete solution.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>But we’ll also be keeping our eyes open (and doing active research) in the quest for an even more effective defense – whether client or server side – that eliminates XSS for good.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>This post is a little far afield from the normal content of the SDL blog, but I thought it was important to provide a picture of the role of security science and security research in defining SDL requirements and in making major improvements in software security.&nbsp; You can read more about our work in security science in the </FONT><A href="http://blogs.technet.com/swi/default.aspx"><FONT face=Calibri color=#0000ff size=3>Security Vulnerability Research and Defense blog</FONT></A><FONT size=3><FONT face=Calibri>.</FONT></FONT></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8900490" width="1" height="1">]]></content:encoded>
      <pubDate>Wed, 27 Aug 2008 11:35:00 +0000</pubDate>
      <category domain="http://www.securityratty.com/tag/xss">xss</category>
      <category domain="http://www.securityratty.com/tag/xss filter">xss filter</category>
      <category domain="http://www.securityratty.com/tag/xss vulnerabilities">xss vulnerabilities</category>
      <category domain="http://www.securityratty.com/tag/xss led">xss led</category>
      <category domain="http://www.securityratty.com/tag/anti-xss library">anti-xss library</category>
      <category domain="http://www.securityratty.com/tag/xss attack">xss attack</category>
      <category domain="http://www.securityratty.com/tag/xss attacks">xss attacks</category>
      <category domain="http://www.securityratty.com/tag/attacks">attacks</category>
      <category domain="http://www.securityratty.com/tag/xss filter remembers">xss filter remembers</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/08/27/sdl-and-the-xss-filter.aspx">SDL and the XSS Filter</source>
    </item>
    <item>
      <title><![CDATA[Improve Security with "A Layer of Hurt"]]></title>
      <link>http://www.securityratty.com/article/8863df5f439aabcb64e3fc7d0777f2bf</link>
      <guid>http://www.securityratty.com/article/8863df5f439aabcb64e3fc7d0777f2bf</guid>
      <description><![CDATA[Hello, Michael here
I got a lot of interesting comments from my TechEd 2008 presentation entitled, &quot;How To Review Your Code And Test For Security Bugs,&quot; but the most comments and questions were...]]></description>
      <content:encoded><![CDATA[Hello, Michael here. 
<P>I got a lot of interesting comments from my <A href="http://blogs.msdn.com/sdl/archive/2008/06/26/security-thoughts-from-teched-2008.aspx" mce_href="http://blogs.msdn.com/sdl/archive/2008/06/26/security-thoughts-from-teched-2008.aspx">TechEd 2008 presentation</A> entitled, "How To Review Your Code And Test For Security Bugs," but the most comments and questions were reserved for fuzz testing; I was blown away by the number of people who thought fuzz testing was hard, or that you only left fuzz testing to ‘leet hackers.</P>
<P>During the presentation I mentioned in some depth how to perform fuzz testing, and what parts of an application should be fuzz testing targets. I also introduced an idea (that's not new) to help people who have never performed fuzz testing begin fuzz testing with very little cost and friction. The idea is to add a small layer of code to an application to automatically mutate untrusted data as it comes into an application; I called that code layer "a layer of hurt."</P>
<P>Before I continue, I want to point out that fuzzing is an SDL requirement, but the idea in this blog post is not an SDL requirement, it's just another way to help meet SDL fuzzing requirements.</P>
<P>Adding a layer of hurt, as shown in the picture below, is pretty simple as it involves adding code to an application to tweak data as it comes into an application. You can work out where to place the fuzzing code by looking at your threat models to see where data crosses trust boundaries. You could also simply grep the code looking for APIs that read data, for example:</P>
<UL>
<LI>Read from files: fread, ReadFile</LI>
<LI>Reading from sockets: recv, recvfrom</LI>
<LI>For .NET code, any stream.Read</LI></UL>
<P>You get the picture.</P>
<P>The fuzzing code should appear right after the API that reads that data.</P>
<P mce_keep="true">For example, C or C++ code that reads from a UDP socket and then fuzzes the data before it's consumed by the rest of the application might look like this:</P><FONT size=1 face=Courier>
<P>char RecvBuf[1024];<BR>int&nbsp; BufLen = sizeof(RecvBuf);</P>
<P mce_keep="true">int result = recvfrom(<BR>&nbsp;&nbsp; RecvSocket, <BR>&nbsp;&nbsp; RecvBuf, <BR>&nbsp;&nbsp; BufLen, <BR>&nbsp;&nbsp; 0, <BR>&nbsp;&nbsp; (SOCKADDR *)&amp;SenderAddr, <BR>&nbsp;&nbsp; &amp;SenderAddrSize);</P></FONT><FONT size=1 face=Courier>
<P>#ifdef _FUZZ<BR>&nbsp;&nbsp; Fuzz(RecvBuf,&amp;BufLen);<BR>#endif</P></FONT>
<P>Or, in C#, code that reads from an untrusted file:</P><FONT size=1 face=Courier>
<P>FileStream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read);<BR>uint len = (uint)(fileStream.Length);<BR>byte[] fileData = new byte[fileStream.Length];<BR>fileStream.Read(fileData, 0, (int)len);<BR>fileStream.Close();</P></FONT><FONT size=1 face=Courier>
<P mce_keep="true">#if _FUZZ_<BR>&nbsp; Malform pain = new Malform();<BR>&nbsp; fileData = pain.Fuzz(fileData);<BR>#endif</P></FONT>
<P>In both code examples, Fuzz() mutates the incoming data. In the C++ case, the fuzzing code looks like this:</P><FONT size=1 face=Courier>
<P>void Fuzz(_Inout_bytecap_(*pcbBuf) char *pBuf, <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _Inout_ size_t *pcbBuf) {<BR><BR>&nbsp; if (!pcbBuf || !pBuf || !*pcbBuff || *pBuf) return;<BR>&nbsp; if ((rand() % 100) &gt; 5) return; // fuzz about 5% of Buffers</P>
<P>&nbsp; size_t cLoop = 1 + (rand() % 4);</P>
<P>&nbsp; for (size_t j = 0; j &lt; cLoop; j++) {</P>
<P>&nbsp;&nbsp;&nbsp; size_t i=0,&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iLow = rand() % *pcbBuf,&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iHigh = 1+rand() % *pcbBuf,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iIter = 1+rand() % 8;<BR><BR>&nbsp;&nbsp;&nbsp; if (iLow &gt; iHigh)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {size_t t=iHigh; iHigh=iLow; iLow=t;}</P>
<P>&nbsp;&nbsp;&nbsp; char ch=0;<BR>&nbsp;&nbsp;&nbsp; switch(rand() % 9) {</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 0 : // reset upper bits<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=iLow; i &lt; iHigh; i++)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pBuf[i] &amp;= 0x7F;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 1 : // set upper bits<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=iLow; i &lt; iHigh; i++)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pBuf[i] |= 0x80;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 2 : // toggle all bits<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=iLow; i &lt; iHigh; i++)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pBuf[i] ^= 0xFF;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 3 : // set to random chars<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=iLow; i &lt; iHigh; i++)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pBuf[i] = (char)(rand() % 256);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 4 : // set NULL chars to (possibly) non-NULL<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=iLow; i &lt; iHigh; i++)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!pBuf[i])&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pBuf[i] = (char)(rand() % 256);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 5 : // swap adjacent bytes<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=iLow; i &lt; __max(iHigh-1,iLow); i+= iIter)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {char t=pBuf[i]; pBuf[i] = pBuf[i+1]; pBuf[i+1]=t;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 6 : // set to random chars every n-bytes<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=iLow; i &lt; __max(iHigh-1,iLow); i+= iIter)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pBuf[i] = (char)(rand()%256);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 7 : // set bytes to one random char<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ch=(char)(rand() % 256);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=iLow; i &lt; iHigh; i++)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pBuf[i] = ch;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default: // truncate stream<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *pcbBuf = iHigh;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; }<BR>}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P></FONT>
<P>The sample C# and C++ fuzzing code is available as a ZIP file at the end of this post.</P>
<P>This code is an example of dumb-fuzzing, which is fuzzing with little or no regard for the data structure being manipulated. If you've never performed any kind of fuzz testing in the past, then you will probably find bugs with this simple fuzzing technique. Once you have weeded out the low-hanging bugs, you may need to turn your attention to smarter fuzzers. For example, in theory, this code would find few if any bugs in a PNG parser, because PNG files have a built in check-sum, so if you fuzz a PNG file, you'd have to recalculate the checksum to get decent code coverage.</P>
<P>When I showed this code during my presentation, I urged people to add it to their applications today if they currently don't do fuzz testing, and simply run their applications through their normal testing processes. Within three days of my presentation I received emails from people saying they had found bugs. I have no doubt others did too.</P>
<P>One of the comments I made during the session was,"If you can't spend the time on great fuzzing, fuzz anyway" and adding a "layer of hurt" is a reasonable start.</P>
<P>Please feel free to sound off if you have ideas to help improve the code and let us know what you think, either through email or comments to this post.</P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8794487" width="1" height="1">]]></content:encoded>
      <pubDate>Thu, 31 Jul 2008 15:13:00 +0000</pubDate>
      <category domain="http://www.securityratty.com/tag/layer">layer</category>
      <category domain="http://www.securityratty.com/tag/code layer">code layer</category>
      <category domain="http://www.securityratty.com/tag/code">code</category>
      <category domain="http://www.securityratty.com/tag/decent code coverage">decent code coverage</category>
      <category domain="http://www.securityratty.com/tag/fuzz">fuzz</category>
      <category domain="http://www.securityratty.com/tag/void fuzz">void fuzz</category>
      <category domain="http://www.securityratty.com/tag/ifdef fuzz">ifdef fuzz</category>
      <category domain="http://www.securityratty.com/tag/code examples">code examples</category>
      <category domain="http://www.securityratty.com/tag/perform fuzz">perform fuzz</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/07/31/improve-security-with-a-layer-of-hurt.aspx">Improve Security with "A Layer of Hurt"</source>
    </item>
    <item>
      <title><![CDATA[ Walking with the SDL Part 2]]></title>
      <link>http://www.securityratty.com/article/6fd946e1231f0fb50a945c379295e319</link>
      <guid>http://www.securityratty.com/article/6fd946e1231f0fb50a945c379295e319</guid>
      <description><![CDATA[Jeremy Dallman here with Part Two in my series on Walking with the SDL. In Part One , I provided a snapshot of Crawling and discussed getting management approval. In Part Two, I will cover a couple...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Jeremy Dallman here with Part Two in my series on “Walking” with the SDL. In </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 One</FONT></A><FONT size=3><FONT face=Calibri>, I provided a snapshot of “Crawling” and discussed getting management approval. In Part Two, I will cover a couple more “Walk” components: expanding security training and formalizing requirements. <?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><FONT size=3><FONT face=Calibri>This blog gives us a place to talk about our experiences from using the SDL here at Microsoft and hopefully provide useful information that will help you implement it more effectively at your company.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>So, I would encourage you to use the Comments section at the bottom of each post to ask questions, give us feedback, or request other topics for us to cover.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Some quick definitions before we dive in. I’ve been using the imagery of learning to “crawl, walk and run” as a way to provide some basic starting points that would move your organization toward implementing the Security Development Lifecycle (SDL). <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>“Walking” is the point where your security development practices become a lifecycle – a repeatable, reusable process that makes security a part of your development culture. To relate the analogy to SDL a bit more closely, think of <I style="mso-bidi-font-style: normal"><U>crawling</U></I> as the “SD” in SDL. For this post, we’ll continue to talk about <I style="mso-bidi-font-style: normal"><U>walking</U></I> – or adding the “L” in SDL. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Let’s jump into another component for adopting the Microsoft SDL to expand your own Security Development Lifecycle.<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>Expand Security Training<o:p></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Once you have management approval, it is necessary to gain grassroots acceptance of the changes – at the developer, QA/test, and PM levels. If you have been “crawling”, you have probably already implemented some sort of discipline-specific training around things like threat modeling, using compiler defenses, and fuzz testing. Now that you are building a lifecycle, your goal for security training should expand. Security training should be about creating an environment where writing secure software is everyone’s mission. While security training should be undertaken with the goal of understanding security issues and how to address them, good training (and instructors) will also explain why solving security problems is in their best interests and create an environment where they know voicing security concerns is encouraged. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>Training has been one of the earliest and most important elements of the SDL at Microsoft. From our experience, we learned that the most effective approach is to divide your training into two tracks: <I style="mso-bidi-font-style: normal">general security principles</I> and <I style="mso-bidi-font-style: normal">role-specific security practices.</I> Before I jump into the details, I want to encourage you to also read Shawn Hernan’s </FONT><A href="http://blogs.msdn.com/sdl/archive/2008/05/29/sdl-training.aspx"><FONT color=#0000ff size=3 face=Calibri>very good post about SDL training</FONT></A><FONT size=3><FONT face=Calibri> that highlights some of the ways to make security training effective.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>The general security principles should explain why security is important, how you define security requirements, the process you will use for writing and validating secure code, and how security relates to each phase of the lifecycle or unique roles contributing to the development process. A key factor for building a development lifecycle is educating your individual contributors on the value of investing in security. Of course </FONT><A href="http://blogs.msdn.com/sdl/archive/2007/05/31/oil-change-or-culture-change.aspx"><FONT color=#0000ff size=3 face=Calibri>changing culture</FONT></A><FONT size=3><FONT face=Calibri> takes time, but using the opportunity of structured training to explain your principles will be one of your most effective platforms for influencing change.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>At this point in your organizational maturity, you are also beginning to expand your security thinking by focusing on each role in the development process. Discipline-specific security training is where you dig into the details of implementing a Security Development Lifecycle. <o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" 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>The developer needs to understand the practical details of how to write code securely, how to set compiler flags, what a security code review means, how to avoid using banned APIs, and what tools are available for them to perform security analysis before checking in their code. <o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" 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 QA/tester needs to know how to set security rules in test tools, how to perform penetration testing, and what the security quality criteria is for your product, or how to file a security bug. <o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" 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 PM needs to understand how to define measurable goals or how security policies can be factored into feature design. <o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo1" 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 business decision maker of your organization should understand how to track security metrics alongside other product measurements or how security policy plays a critical role in the overall quality and value of your product. <o:p></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l1 level1 lfo1" class=MsoListParagraphCxSpLast><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>Finally, it is critical for the employees occupying all job roles to understand the value of threat modeling – both as a tool for understanding threats early in the design phase and throughout the development process as a key barometer to the security pulse of your product. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Discipline-specific training will be the place to address these issues for your organization. In case you were wondering, <I style="mso-bidi-font-style: normal">all job roles should b</I>e required to attend both types of security training <B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">before</I></B> wo<I style="mso-bidi-font-style: normal">rking<B style="mso-bidi-font-weight: normal"> </B></I>on your product.<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 face=Calibri>Our new SDL website [</FONT><A href="http://www.microsoft.com/sdl"><FONT color=#0000ff size=3 face=Calibri>http://www.microsoft.com/sdl</FONT></A><FONT size=3 face=Calibri>] will be a very good place to watch for future training materials. The </FONT><A href="http://msdn.microsoft.com/en-us/security/cc448120.aspx"><FONT color=#0000ff size=3 face=Calibri>SDL Training and Resources</FONT></A><FONT size=3><FONT face=Calibri> page has some useful material up now and more will be coming in the future. <o:p></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>That’s Part Two. In Part Three, I will discuss the important “walk” components of formalizing security requirements and reusing threat models and attack surface reviews. Then we will close with the discussions on conducting final security reviews, and managing post-release documentation. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><U><FONT size=3><FONT face=Calibri>I’d like to hear if anyone is using the concept of “crawling” and “walking” to implement SDL in your company. <o:p></o:p></FONT></FONT></U></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo2" class=MsoNoSpacing><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; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Do you provide security training to your employees today?<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=MsoNoSpacing><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; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Do these additional training topics make sense in your organization? <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=MsoNoSpacing><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; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>What would you add to this that is unique to your application or company? <o:p></o:p></FONT></FONT></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8762037" width="1" height="1">]]></content:encoded>
      <pubDate>Mon, 21 Jul 2008 12:56:00 +0000</pubDate>
      <category domain="http://www.securityratty.com/tag/define security requirements">define security requirements</category>
      <category domain="http://www.securityratty.com/tag/security requirements">security requirements</category>
      <category domain="http://www.securityratty.com/tag/requirements">requirements</category>
      <category domain="http://www.securityratty.com/tag/security">security</category>
      <category domain="http://www.securityratty.com/tag/security development lifecycle">security development lifecycle</category>
      <category domain="http://www.securityratty.com/tag/development lifecycle">development lifecycle</category>
      <category domain="http://www.securityratty.com/tag/security pulse">security pulse</category>
      <category domain="http://www.securityratty.com/tag/perform security analysis">perform security analysis</category>
      <category domain="http://www.securityratty.com/tag/principles">principles</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/07/21/walking-with-the-sdl-part-2.aspx"> Walking with the SDL Part 2</source>
    </item>
    <item>
      <title><![CDATA[Does VMware want to own the virtual ecosystem?]]></title>
      <link>http://www.securityratty.com/article/1c0322cd283dd99569d562dfa565e131</link>
      <guid>http://www.securityratty.com/article/1c0322cd283dd99569d562dfa565e131</guid>
      <description><![CDATA[VMware has obviously staked out the clear dominant position in the virtual machine market. However, owning the hypervisor alone may not be enough. VMware announced the acquisition of B-hive Networks,...]]></description>
      <content:encoded><![CDATA[<p>VMware has obviously staked out the clear dominant position in the virtual machine market. However, owning the hypervisor alone may not be enough. VMware announced the acquisition of B-hive Networks, a California and Israeli based company that developed application performance management for virtual applications. According to <a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;articleId=9090378&amp;source=rss_news10">this article in ComputerWorld</a>, the news is comes as bad news for several start ups that were were trying to establish themselves. With VMware themselves including virtual application performance management, a 3rd party competitor is going to be at an extreme disadvantage to the built in VMware solution. It clearly signals a move by VMware that they want not only to provide the environment for virtual machines, but many of the <br><br>This is in contrast to VMware's VMsafe program where they have made available APIs to allow security companies have access to secure the virtual environments. That would seem to indicate that VMware is willing and looking for 3rd party security companies to secure the virtual environment. Is this only a temporary condition and will VMware eventually seek to security the virtual environment themselves? Clearly it <a href="http://www.stillsecureafteralltheseyears.com/ashimmy/2008/05/render-unto-cea.html">appears that Citrix</a> will look to 3rd parties to secure their virtual environments. <br><br>At the end of the day does VMware take a page out of the Microsoft playbook and use their dominance in the virtual environment space to eventually also control and monetize the entire virtual environment? If so does that present opportunity to Citrix and Microsoft to form a consortium to take VMware on? I guess we will have to wait and see how this shakes out.</p>
<p><a href="http://feeds.feedburner.com/~a/StillsecureAfterAllTheseYears?a=X8zWxN"><img src="http://feeds.feedburner.com/~a/StillsecureAfterAllTheseYears?i=X8zWxN" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?a=t8VhNH"><img src="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?i=t8VhNH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?a=lIV1UH"><img src="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?i=lIV1UH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?a=AUEtRH"><img src="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?i=AUEtRH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?a=MQEUcH"><img src="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?i=MQEUcH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?a=PIQfMh"><img src="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?i=PIQfMh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?a=gzi2uh"><img src="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?i=gzi2uh" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/StillsecureAfterAllTheseYears/~4/300281392" height="1" width="1"/>]]></content:encoded>
      <pubDate>Wed, 28 May 2008 19:05:20 +0000</pubDate>
      <category domain="http://www.securityratty.com/tag/virtual environment space">virtual environment space</category>
      <category domain="http://www.securityratty.com/tag/environment">environment</category>
      <category domain="http://www.securityratty.com/tag/vmware">vmware</category>
      <category domain="http://www.securityratty.com/tag/virtual environment">virtual environment</category>
      <category domain="http://www.securityratty.com/tag/vmware solution">vmware solution</category>
      <category domain="http://www.securityratty.com/tag/entire virtual environment">entire virtual environment</category>
      <category domain="http://www.securityratty.com/tag/virtual environments">virtual environments</category>
      <category domain="http://www.securityratty.com/tag/secure">secure</category>
      <category domain="http://www.securityratty.com/tag/israeli based company">israeli based company</category>
      <source url="http://feeds.feedburner.com/~r/StillsecureAfterAllTheseYears/~3/300281392/does-vmware-wan.html">Does VMware want to own the virtual ecosystem?</source>
    </item>
  </channel>
</rss>
