<?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: tradeoffs]]></title>
    <link>http://securityratty.com/tag/tradeoffs</link>
    <description></description>
    <pubDate>Tue, 25 Sep 2007 13:53:47 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[Links for 2008-10-30 [del.icio.us]]]></title>
      <link>http://securityratty.com/article/032dbe48621db25011dd7dc8dacaf084</link>
      <guid>http://securityratty.com/article/032dbe48621db25011dd7dc8dacaf084</guid>
      <description><![CDATA[Log4j Best Practices Log4j Best Practices Julius Davies, June 9th, 2008 Before You Do Anything Else Take a look at this logging checklist by Anton Chuvakin
HOSTED SERVICES: Security Reaches For the...]]></description>
      <content:encoded><![CDATA[<ul>
<li><a href="http://juliusdavies.ca/logging.html">Log4j Best Practices</a><br/>
Log4j Best Practices

Julius Davies, June 9th, 2008
Before You Do Anything Else

Take a look at this logging checklist by Anton Chuvakin.</li>
<li><a href="http://www.americanbanker.com/btn_article.html?id=20080828ORGW0SBZ">HOSTED SERVICES: Security Reaches For the Clouds - 09..2008 - Bank Technology News Article</a></li>
<li><a href="http://techbuddha.wordpress.com/2008/10/26/cloud-computing-the-good-the-bad-and-the-cloudy/">Cloud Computing - The Good, The Bad, and the Cloudy &laquo; Amrit Williams Blog</a></li>
<li><a href="http://riskmanagementinsight.com/riskanalysis/?p=496">CLOUD COMPUTING - STORMY WEATHER? | RiskAnalys.is</a></li>
<li><a href="http://www.emergentchaos.com/archives/2008/10/ctos_product_management_a.html">Emergent Chaos: CTOs, Product Management and Program Management</a><br/>
The role of a good CTO is to understand the market and customer pain, shape consensus around what a solution looks like, spec that solution, then drive implementation and the inevitable tradeoffs and ship a solution which makes customers happy. There&#039;s also a responsibility to be a company leader, hiring, shaping the culture, and participating in the executive decisions the company makes. Sometimes, there&#039;s a need to step in and build. But a large part of the CTO role is that of the program manager. I think this is why I&#039;m able to succeed as a program manager—I&#039;ve been at it for a while.</li>
<li><a href="http://layer8.itsecuritygeek.com/layer8/why-security-privacy-and-compliance-dont-mix/">Layer 8 - Why Security, Privacy and Compliance don&rsquo;t mix</a></li>
<li><a href="http://www.darkreading.com/security/perimeter/showArticle.jhtml?articleID=211600785">ANSI Launches Guide to Help Calculate Cyber Security Risk - Security/Perimeter - DarkReading</a></li>
<li><a href="http://www.bloginfosec.com/2008/10/29/the-difference-between-quantitative-and-qualitative-risk-analysis-and-why-it-matters-part-2/">The Difference between Quantitative and Qualitative Risk Analysis and Why It Matters (Part 2) | BlogInfoSec.com</a></li>
</ul><img src="http://feeds.feedburner.com/~r/AntonChuvakinPersonalBlog/~4/437680203" height="1" width="1"/>]]></content:encoded>
      <pubDate>Thu, 30 Oct 2008 21:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/cyber security risk">cyber security risk</category>
      <category domain="http://securityratty.com/tag/role">role</category>
      <category domain="http://securityratty.com/tag/cto role">cto role</category>
      <category domain="http://securityratty.com/tag/security reaches">security reaches</category>
      <category domain="http://securityratty.com/tag/company leader">company leader</category>
      <category domain="http://securityratty.com/tag/cto">cto</category>
      <category domain="http://securityratty.com/tag/solution">solution</category>
      <category domain="http://securityratty.com/tag/qualitative risk analysis">qualitative risk analysis</category>
      <source url="http://feeds.feedburner.com/~r/AntonChuvakinPersonalBlog/~3/437680203/anton18">Links for 2008-10-30 [del.icio.us]</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[SANS Webcast: Security for Web Services and SOA ]]></title>
      <link>http://securityratty.com/article/7d633c7f6436def5b58166479fa3a99c</link>
      <guid>http://securityratty.com/article/7d633c7f6436def5b58166479fa3a99c</guid>
      <description><![CDATA[Last week I did a SANS webcast with Jacob West from Fortify on Web Services and SOA Security issues. I also did another SANS Webcast on Web services security way back in 2005. I went back and looked...]]></description>
      <content:encoded><![CDATA[<p>Last week I did a <a href="https://www.sans.org/webcasts/show.php?webcastid=91958">SANS webcast</a> with Jacob West from Fortify on Web Services and SOA Security issues. I also did another SANS Webcast on Web services security way back in 2005. I went back and looked at the 2005 slides and its really scary how the issues are still there. Again we see developers making hellacious progress and security treading water (in a moving stream). From 2005:</p><div><blockquote>
	<div>Many (most?) classic Information Security mechanisms are not as relevant in securing Web Services:</div><br><div><ul>
	<li>Firewalls:SSL</li>
	<li><span>SSL </span> </li>
	<li>Session based access control</li>
	<li>Policies &amp; mechanism domains are blurred by integration and decoupling</li>
	<li>Lack of end to end visibility </li>
	</ul>
	</div>
</blockquote></div><p>

I realize that security is a system level issue and it takes a long time to change things at that level, but what's more concerning to me is that the typical infosec mindset remains the same. Should we be surprised by rampant phishing and fraud? I am frankly surprised the numbers are so low given the opportunities that the attackers have via the glacial pace of security improvements. Its been three years since that list and I could write the same exact one today for SOAP, REST, SOA, Web 2.0 whatever.

Maybe the main reason, beyond failure of imagination, why infosec is so far behind developers is that infosec lacks tools. Developers automate everything possible. Security doesn't. The most promising thing about static analysis is not the ability to find everything, its the ability to find many important things in an automated way. Infosec needs to stop giving people fish and teaching people to fish.

Look at Fortify's vulncat site which has a <a href="http://www.fortify.com/vulncat/en/vulncat/index.html">Taxonomy of Coding Errors</a>. Fortify's Seven (plus one) pernicious kingdoms are:</p><div><ul>
<li>Input Validation and Representation
</li>
<li>API Abuse
</li>
<li>Security Features
</li>
<li>Time and State
</li>
<li>Errors
</li>
<li>Code Quality
</li>
<li>Encapsulation
</li>
<li>*. Environment

</li>
</ul>

These vulns are then integrated to find security bugs in a variety of frameworks - Axis, Axis2, Websphere and .Net. The tools give security people a richer understanding about the actual state of security in their web services, the ability to communicate and debate design improvement tradeoffs with developers, and cogent advice on how to address the issues. </div><br><div>It would be fantastic if the list of security issues in 2011 is different from the one 2005 that we are still stuck with.</div>]]></content:encoded>
      <pubDate>Mon, 04 Aug 2008 07:29:54 +0000</pubDate>
      <category domain="http://securityratty.com/tag/web services">web services</category>
      <category domain="http://securityratty.com/tag/web">web</category>
      <category domain="http://securityratty.com/tag/security issues">security issues</category>
      <category domain="http://securityratty.com/tag/issues">issues</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/web services security">web services security</category>
      <category domain="http://securityratty.com/tag/soa security issues">soa security issues</category>
      <category domain="http://securityratty.com/tag/soa">soa</category>
      <category domain="http://securityratty.com/tag/security improvements">security improvements</category>
      <source url="http://1raindrop.typepad.com/1_raindrop/2008/08/sans-webcast-security-for-web-services-and-soa.html">SANS Webcast: Security for Web Services and SOA </source>
    </item>
    <item>
      <title><![CDATA[Homeland Security Cost-Benefit Analysis]]></title>
      <link>http://securityratty.com/article/6b0e37e67b2f5aeb085b3f59c8223674</link>
      <guid>http://securityratty.com/article/6b0e37e67b2f5aeb085b3f59c8223674</guid>
      <description><![CDATA[This is an excellent paper by Ohio State political science professor John Mueller. Titled &quot;The Quixotic Quest for Invulnerability: Assessing the Costs, Benefits, and Probabilities of Protecting the...]]></description>
      <content:encoded><![CDATA[<a href="http://psweb.sbs.ohio-state.edu/faculty/jmueller/ISA2008.pdf">This</a> is an excellent paper by Ohio State political science professor John Mueller.  Titled "The Quixotic Quest for Invulnerability: Assessing the Costs, Benefits, and Probabilities of Protecting the Homeland," it lays out some common send premises and policy implications.

The premises:

<blockquote>1. The number of potential terrorist targets is essentially infinite. 

2. The probability that any individual target will be attacked is essentially zero.

3. If one potential target happens to enjoy a degree of protection, the agile terrorist usually can readily move on to another one.

4. Most targets are "vulnerable" in that it is not very difficult to damage them, but invulnerable in that they can be rebuilt in fairly short order and at tolerable expense.

5. It is essentially impossible to make a very wide variety of potential terrorist targets invulnerable except by completely closing them down.</blockquote>

The policy implications:

<blockquote>1. Any protective policy should be compared to a "null case": do nothing, and use the money saved to rebuild and to compensate any victims.

2. Abandon any effort to imagine a terrorist target list.

3. Consider negative effects of protection measures: not only direct cost, but inconvenience, enhancement of fear, negative economic impacts, reduction of liberties.

4. Consider the opportunity costs, the tradeoffs, of protection measures.</blockquote>

Here's the abstract:

<blockquote>This paper attempts to set out some general parameters for coming to grips with a central homeland security concern: the effort to make potential targets invulnerable, or at least notably less vulnerable, to terrorist attack. It argues that protection makes sense only when protection is feasible for an entire class of potential targets and when the destruction of something in that target set would have quite large physical, economic, psychological, and/or political consequences. There are a very large number of potential targets where protection is essentially a waste of resources and a much more limited one where it may be effective.</blockquote>

The whole paper is worth reading.<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=wqEb6J"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=wqEb6J" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=MgOPQJ"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=MgOPQJ" border="0"></img></a>
</div>]]></content:encoded>
      <pubDate>Thu, 17 Jul 2008 02:43:25 +0000</pubDate>
      <category domain="http://securityratty.com/tag/potential targets invulnerable">potential targets invulnerable</category>
      <category domain="http://securityratty.com/tag/potential targets">potential targets</category>
      <category domain="http://securityratty.com/tag/targets">targets</category>
      <category domain="http://securityratty.com/tag/protection">protection</category>
      <category domain="http://securityratty.com/tag/invulnerable">invulnerable</category>
      <category domain="http://securityratty.com/tag/protection measures">protection measures</category>
      <category domain="http://securityratty.com/tag/paper">paper</category>
      <category domain="http://securityratty.com/tag/paper attempts">paper attempts</category>
      <category domain="http://securityratty.com/tag/potential terrorist targets">potential terrorist targets</category>
      <source url="http://www.schneier.com/blog/archives/2008/07/homeland_securi_2.html">Homeland Security Cost-Benefit Analysis</source>
    </item>
    <item>
      <title><![CDATA[Minimizing the Attack Surface, Part 1]]></title>
      <link>http://securityratty.com/article/4cc07bb9b410d28285eec3f2156fa1e6</link>
      <guid>http://securityratty.com/article/4cc07bb9b410d28285eec3f2156fa1e6</guid>
      <description><![CDATA[What was the first thing you learned about network security? Theres a good chance it had something to do with port scanning. After scanning a few boxes, you realized that modern operating systems have...]]></description>
      <content:encoded><![CDATA[<p>What was the first thing you learned about network security?  There&#8217;s a good chance it had something to do with port scanning.  After scanning a few boxes, you realized that modern operating systems have a lot of open ports by default, meaning a lot of services.  Some had an obvious purpose, like telnet on tcp/23 or ftp fon tcp/21.  Others left you wondering, what the heck is listening on tcp/515 or tcp/7100?  And remember, you couldn&#8217;t ask Google because it didn&#8217;t exist (well, maybe it did depending on when you got into security).</p>
<p>Your first real lesson about locking down a host was how to reduce its attack surface.  You learned how to disable services using /etc/inetd.conf.  Then you learned about rc.d and how to prevent unnecessary services from being launched at startup.  Next, maybe you configured the Xserver to disallow remote connections or moved on to removing setuid permissions from files.  As you worked, you&#8217;d periodically re-scan the box to gauge progress, asking yourself &#8220;have I removed everything I don&#8217;t need?&#8221;  The underlying motivation, of course, is that an attacker can&#8217;t hack something that isn&#8217;t there.</p>
<p>You learned how to extend those concepts to the network &#8212; configuring firewall rules, router ACLs, VLANs, etc.  Segmenting the network.  Creating a DMZ.  No need to dwell on this, you get the idea.</p>
<p>Eventually, people realized that applications had an attack surface too.  Web servers and application servers got a lot of attention, followed closely by custom web applications.  &#8220;What do you mean you can execute SQL queries against my database?  That&#8217;s impossible, I have a firewall!&#8221;</p>
<p>Some companies, the ones who could afford it anyway, started to build security into their development cycle.  Doing threat modeling during the design phase made sense, because hey, it&#8217;s much cheaper to fix security holes in a whiteboard drawing than it is to rewrite your authorization module from scratch after it&#8217;s in production.</p>
<p>Let&#8217;s talk strictly about custom web applications now.  What I&#8217;ve observed is that most development groups, even the ones who actively engage in threat modeling, do not understand their web application&#8217;s attack surface.  The lead architect can whiteboard a high-level diagram of all the major components and how they interact.  Individual developers can go a bit deeper, telling you which files they touch, what database permissions they need, or how various pieces of data are encrypted in storage.  At the end of this exercise you have a complete picture of the processes, data flows, protocols, privilege boundaries, external entities, and so on, and you&#8217;re well on your way to understanding all of the potential attack vectors.</p>
<p>Or are you?</p>
<p>What often gets overlooked or glossed over is the impact of external libraries or packages.  Nobody writes everything from scratch. A typical list of third-party libraries for a Java-based Web 2.0 application might include DWR, GWT, Axis, and Dojo, plus about 30 other libraries to do everything from logging to parsing to image manipulation.  Nine out of ten times, the libraries will be installed in full, using the default configuration from page one of the README file.</p>
<p>Why is this relevant? Because just as those old Unix boxes exposed unnecessary services, libraries expose unnecessary code.  Let&#8217;s say you installed Dojo to simplify the process of creating an HTML table with rows and columns that can be sorted on demand.  Did you remember to remove all the .js files you didn&#8217;t need?  Or maybe you installed Axis or DWR or anything else that has its own Servlet(s) for processing requests.  Have you compared what that Servlet <i>can do</i> against what you <i>need it to do</i>?  </p>
<p>A fictitious example may help illustrate further.  Imagine you just downloaded a new library called WhizBang.  You follow the installation instructions to define and map two servlets in your web.xml file, WhizServlet and BangServlet, and you configure it to integrate with your web app.  After a bit of trial and error, it&#8217;s functional. Yay!  This is where most developers stop.  </p>
<p>Nobody asks, &#8220;how much of this do I actually need?&#8221;  Case in point, what if your application only uses WhizServlet?  BangServlet is still exposed, and you don&#8217;t even use it!  Similarly, what if WhizServlet takes an &#8220;action&#8221; parameter which can be either &#8220;view&#8221;, &#8220;edit&#8221;, or &#8220;delete&#8221;, and your application only uses &#8220;view&#8221;?  You&#8217;re still exposing the other actions to anybody who knows the URL syntax (pretty trivial if it&#8217;s open source).  You wouldn&#8217;t expose large chunks of your own code that you weren&#8217;t using, so why should it be any different with libraries?</p>
<p>This post is getting kind of long so I&#8217;m going to split it up.  In the next post, I&#8217;ll continue the discussion of attack surface minimization, as well as some of the tradeoffs that go along with this approach.</p>
]]></content:encoded>
      <pubDate>Tue, 24 Jun 2008 15:09:34 +0000</pubDate>
      <category domain="http://securityratty.com/tag/attack surface">attack surface</category>
      <category domain="http://securityratty.com/tag/custom web applications">custom web applications</category>
      <category domain="http://securityratty.com/tag/web">web</category>
      <category domain="http://securityratty.com/tag/services">services</category>
      <category domain="http://securityratty.com/tag/prevent unnecessary services">prevent unnecessary services</category>
      <category domain="http://securityratty.com/tag/unnecessary services">unnecessary services</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/third-party libraries">third-party libraries</category>
      <category domain="http://securityratty.com/tag/fix security holes">fix security holes</category>
      <source url="http://www.veracode.com/blog/?p=111">Minimizing the Attack Surface, Part 1</source>
    </item>
    <item>
      <title><![CDATA[A Comparison of VNC Connection Methods]]></title>
      <link>http://securityratty.com/article/b32ab50750f83bc4b0907f20d2791ed3</link>
      <guid>http://securityratty.com/article/b32ab50750f83bc4b0907f20d2791ed3</guid>
      <description><![CDATA[This paper, written by Frank Isaacs, discusses different methods of deploying VNC with an emphasis on the security considerations of each method, and the tradeoffs associated with the convenience of...]]></description>
      <content:encoded><![CDATA[This paper, written by Frank Isaacs, discusses different methods of deploying VNC with an emphasis on the security considerations of each method, and the tradeoffs associated with the convenience of each method.]]></content:encoded>
      <pubDate>Tue, 29 Apr 2008 20:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/security considerations">security considerations</category>
      <category domain="http://securityratty.com/tag/vnc">vnc</category>
      <category domain="http://securityratty.com/tag/frank isaacs">frank isaacs</category>
      <category domain="http://securityratty.com/tag/methods">methods</category>
      <category domain="http://securityratty.com/tag/method">method</category>
      <category domain="http://securityratty.com/tag/emphasis">emphasis</category>
      <category domain="http://securityratty.com/tag/discusses">discusses</category>
      <category domain="http://securityratty.com/tag/tradeoffs">tradeoffs</category>
      <category domain="http://securityratty.com/tag/convenience">convenience</category>
      <source url="http://www.infosecwriters.com/texts.php?op=display&amp;id=617">A Comparison of VNC Connection Methods</source>
    </item>
    <item>
      <title><![CDATA[The Other Side of Life]]></title>
      <link>http://securityratty.com/article/2b1b28c7f0189c1242e34f70694152db</link>
      <guid>http://securityratty.com/article/2b1b28c7f0189c1242e34f70694152db</guid>
      <description><![CDATA[Hello everyone, Shawn Hernan here. I used to work on the SDL team, and I might have been a regular contributor to this space, but instead I joined the SQL Server security team. Ralph Hood, Microsoft...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>Hello everyone, Shawn Hernan here. I used to work on the SDL team, and I might have been a regular contributor to this space, but instead I joined the SQL Server security team. Ralph Hood, Microsoft SDL guru, asked me if I would contribute a post about “Life on the other side,” talking to what I’ve learned about the SDL from this new perspective -- sort of the reverse of </FONT></SPAN><A href="http://blogs.msdn.com/sdl/archive/2008/03/13/sdl-and-filtering.aspx"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>his recent post</FONT></SPAN></A><FONT face=Calibri><FONT size=3>.</FONT><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"> I couldn’t turn down the opportunity. <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>First, let me say what I knew about the SDL going in: no policy can anticipate every situation; you have to make tradeoffs; the details matter; the big picture matters; you need tools; you need human insight; you need management support; and we’re never going to be perfect. All of the things you’ve read in this blog are true, and they really shouldn’t be controversial. Since joining SQL, I’ve learned a lot about SQL Server too, and what it means to ship a product - but that’s outside the scope of this blog. So instead, I’ll try to describe three real experiences that illustrate things that shouldn’t be controversial either, but aren’t usually covered under the rubric of security.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>They are crucial nonetheless. <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%">Security is not the <I style="mso-bidi-font-style: normal">point</I>, it’s the needs of the customer. </SPAN></B><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%">It’s easy to believe that security is <I style="mso-bidi-font-style: normal">the point</I> of producing a product. It’s not. We won’t produce an insecure product, but the primary driver for a product team is to produce a <I style="mso-bidi-font-style: normal">valuable, useful product</I>. Yes, security is a big part of that, but security is not a goal in and of itself.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>For example, one of the areas of fierce competition in enterprise database products is performance, and we have to balance security with <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>performance. One of the ways we do that is by verifying data we receive really well, but only when necessary. We define clear trust boundaries, and check the data thoroughly <I style="mso-bidi-font-style: normal">once</I> on the way in, and then work very hard to enforce </SPAN></FONT><A href="http://download.microsoft.com/download/d/e/3/de328032-df7e-48a4-96ba-42ab0fed60ef/SQL%20Server%202005%20Security%20Datasheet.pdf"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri color=#0000ff>those trust boundaries</FONT></SPAN></A><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>. <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>I first encountered this in SQL when I helped review threat models for the database engine. The engine trusts that the data on the disk was written correctly by a trusted entity (with checksums to guard against random errors), and enforce that. Instead of a slavish adherence to the principle of total mediation or defense in depth, which, when taken to its extreme would say to “check everything, every time,” we are hard core about making the right checks, but <I style="mso-bidi-font-style: normal">only</I> the right checks. <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>I will note that it is not an either/or choice between security and performance – it <B style="mso-bidi-font-weight: normal">is</B> possible to </FONT></SPAN><A href="http://www.microsoft.com/sqlserver/2008/en/us/performance-scale.aspx"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri color=#0000ff>do</FONT></SPAN></A><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri> </FONT></SPAN><A href="http://www.microsoft.com/sqlserver/2008/en/us/security.aspx"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri color=#0000ff>both</FONT></SPAN></A><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>. Indeed, I would say that doing one without the other is pointless, but to get both 1) world class performance, and 2) world class security, <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>you have to understand your data flows really well, and make detailed decisions. <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%">Be polite, but don’t be afraid</SPAN></B><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%">: Job interviews at Microsoft can be challenging. When I interviewed for this job, my final interview was with a very senior architect. The subject of integer overflows came up, and he asked me to describe the problems and solutions. So I started writing some code on the whiteboard. After about 10 minutes of describing my approach to integer overflows, he said to me, “What if I were to tell you that’s a really bad solution, and the interview is over?” <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>My heart sank. <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>But instead of rolling over, I said, “well, that’s a bad outcome, tell me why.” He proceeded to attack my solution on several grounds, including being unreadable and unmaintainable, and he proceeded to describe <I style="mso-bidi-font-style: normal">his</I> solution to the problem. Now, this was a very serious, very senior technical architect, and I was in a high pressure, asymmetric situation. So, not willing to be intimidated, but unable to attack back, I pointed out several shortcomings of his solution, politely, but firmly. And we spent the next 40 minutes talking about various aspects of the problem, and me defending my solution, which I think was credible. I don’t know if he agreed with my solution or not, really, but I suspect it might have been a test to see if I would cave. Or maybe he thought it really was a bad solution, I don’t know. But I got the job. <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>As a security professional, you’re always going to be at a technical disadvantage when you’re reviewing another team’s components. They designed and implemented the system. You are an outsider, and it is absolutely impossible to understand the system to the degree as the people who built it. Nonetheless, you’ve got to find a way to ask hard, probing, impolite and sometimes even uninformed questions without being threatening or insulting, or undermining your own credibility. <SPAN style="mso-spacerun: yes">&nbsp;</SPAN><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>Be polite, be firm, put your ego in a box, and ask questions until you understand. <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%">“It should work” is not a good answer: </SPAN></B><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>We take the </SPAN></FONT><A href="http://blogs.msdn.com/sdl/archive/2008/01/04/recent-symantec-and-ibm-vulnerabilities-giblets-banned-apis-and-the-sdl.aspx"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri color=#0000ff>giblets</FONT></SPAN></A><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri> problem very seriously, and managing giblets can be quite difficult at times. And in SQL, we have lots of giblets. We consume things from Windows, and Office, and Visual Studio, and others, and we provide giblets to other teams as well. In fact, we provide components that other teams use to build the giblets they provide to us – we consume our own giblets!<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>And as it happens, one of the components we use was updated recently. Even though it would get serviced through Microsoft Update, we want to ensure we have the latest and greatest version of any component we ship. But to consume the latest and greatest version of this particular component would require some small updates to either our installer or theirs. So we met with the team that owns the giblet in question to try to divvy up the work, and to avoid schedule disruptions on either side. <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>There was a lot of back and forth about various things to try, and we continued to refine a solution until we had reduced the problem to a single issue.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>At this point, there was an air of hope in the room. If the idea actually worked, we had a solution at relatively low cost. But would it work? When the question of “will this work” comes up, all eyes turn towards test managers. <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>Our general manager was looking right at our test manager and she asked, “Will that work?” The test manager looked across the table at the development manager from the other group, and said, “I don’t know. That depends on <I style="mso-bidi-font-style: normal">their </I>level of confidence in the behavior of their component under these conditions.” <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>Now, all eyes were starting at the dev manager, and the room got quiet. A somewhat sheepish look came over his face, because he knew the answer he was about to give would be unsatisfactory. He said, “Well, I’m not a tester, I’m just a developer, but <I style="mso-bidi-font-style: normal">it should work</I>.”<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>At which point the room erupted into hysterical laughter. <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>“It should work” means “I think so, but we have to test it.” And that means the whole battery of tests for each of the affected components, across all of the supported platforms. And <I style="mso-bidi-font-style: normal">that</I> has to be scheduled in test labs. To be clear, this wasn’t a lack of confidence in the developer, quite the contrary, he was laughing along with everyone else. We just know that writing software to satisfy all the scenarios in which our software is deployed requires <I style="mso-bidi-font-style: normal">far</I> more testing than can reasonably be performed on a single desktop system. <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>So the tests were scheduled, the developer was proven correct, and we’re picking up the latest version. Even seemingly simple changes require a lot of testing. <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: justify"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"><FONT face=Calibri>So, that’s what I’ve learned: security isn’t the be-all-end-all,, things are really complex and hard to understand, and you don’t really know if anything works until you test it. None of which should be controversial, but none of the central ideas in the SDL are controversial either. The hard part is putting theory into practice, and recognizing that no venture is risk free, despite the natural inclination of security engineers to avoid any risk whatsoever. In this, I am reminded of one of my favorite books, “<U>To Engineer is Human: The Role of Failure in Successful Design</U>,” by Henry Petroski. He writes, “<I style="mso-bidi-font-style: normal">No one </I>wants<I style="mso-bidi-font-style: normal"> to learn by mistakes, but we cannot learn enough from successes to go beyond the state of the art. Contrary to their popular characterization as intellectual conservatives, engineers are really among the avant-garde. They are constantly seeking to employ new concepts [and are] constantly striving to do more with less. [] The engineer always believes he is trying something without error, but the truth of the matter is the each new structure can be a new trial. [] Such is the nature not only of science and engineering, but of all human endeavors.</I>” </FONT></SPAN></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8329486" width="1" height="1">]]></content:encoded>
      <pubDate>Fri, 21 Mar 2008 13:06: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/engineers">engineers</category>
      <category domain="http://securityratty.com/tag/security engineers">security engineers</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/balance security">balance security</category>
      <category domain="http://securityratty.com/tag/security professional">security professional</category>
      <category domain="http://securityratty.com/tag/test managers">test managers</category>
      <category domain="http://securityratty.com/tag/test">test</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/03/21/the-other-side-of-life.aspx">The Other Side of Life</source>
    </item>
    <item>
      <title><![CDATA[In response to "Soft tokens aren't tokens at all"]]></title>
      <link>http://securityratty.com/article/319f810320b7ec275caea011b1a7b960</link>
      <guid>http://securityratty.com/article/319f810320b7ec275caea011b1a7b960</guid>
      <description><![CDATA[This blog entry is in response to this post in the Securology blog
You raise some interesting points on which I would like to comment. First, RSA believes that there are always tradeoffs between...]]></description>
      <content:encoded><![CDATA[<i>This blog entry is in response to <a href="http://securology.blogspot.com/2007/11/soft-tokens-arent-tokens-at-all.html">this post</a> in the Securology blog.</I>
<P>
You raise some interesting points on which I would like to comment.  First, RSA believes that there are always tradeoffs between strength of security, cost and ease of use.  The key (no pun intended) is matching the right means of authentication to the right level of risk.  This is why we have such a broad range of authentication types and form factors.
<P>
To some of your specific points, RSA SecurID hardware and software authenticators are both forms of multi-factor authentication.  In the case of hardware authenticators, they are based on something you have (the physical authenticator) and something you know (your password or Personal Identification Number).  <strong>Software authenticators work the same way depending on the form factor and can include other factors.</strong>...
]]></content:encoded>
      <pubDate>Mon, 10 Dec 2007 21:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/authentication">authentication</category>
      <category domain="http://securityratty.com/tag/multi-factor authentication">multi-factor authentication</category>
      <category domain="http://securityratty.com/tag/software authenticators">software authenticators</category>
      <category domain="http://securityratty.com/tag/rsa securid hardware">rsa securid hardware</category>
      <category domain="http://securityratty.com/tag/rsa">rsa</category>
      <category domain="http://securityratty.com/tag/form factors">form factors</category>
      <category domain="http://securityratty.com/tag/factors">factors</category>
      <category domain="http://securityratty.com/tag/authentication types">authentication types</category>
      <category domain="http://securityratty.com/tag/blog entry">blog entry</category>
      <source url="http://www.rsa.com/blog/blog_entry.aspx?id=1249">In response to "Soft tokens aren't tokens at all"</source>
    </item>
    <item>
      <title><![CDATA[The New Threat Modeling Process]]></title>
      <link>http://securityratty.com/article/0b2de27ab1ef185846b968c1dd9088d2</link>
      <guid>http://securityratty.com/article/0b2de27ab1ef185846b968c1dd9088d2</guid>
      <description><![CDATA[Adam Shostack here, with the second post in my series on the evolved threat modeling process. To summarize, what Ive tried to achieve in changing the process is to simplify, prescribe, and offer...]]></description>
      <content:encoded><![CDATA[<p>Adam Shostack here, with the second post in my series on the evolved threat modeling process. To summarize, what I&#x2019;ve tried to achieve in changing the process is to simplify, prescribe, and offer self-checks. I&#x2019;ll talk in the next post about why those three elements are so important to me. For now, let me describe the process.</p>  <p>One of the largest changes that we&#x2019;ve made is to a simplified process (and diagram). I like to say that this looks pretty much like every other software process diagram you see today. That&#x2019;s intentional. There&#x2019;s only so much we can expect people to take away from a class, and making this simple and familiar helps ensure there&#x2019;s room for the other important parts.</p>  <p>&#xA0;</p>  <p>First, the &#x201C;<a href="http://www.securitymetrics.org/content/Wiki.jsp?page=Welcome_blogentry_061005_1">process hamster wheel</a>,&#x201D; (with apologies to Yankee Group analyst Andy Jaquith):</p>  <p>&#xA0;</p>  <p><a href="http://blogs.msdn.com/blogfiles/sdl/WindowsLiveWriter/TheNewThreatModelingProcess_100B8/tm-hampster-wheel_2.jpg"><img id="id" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="176" alt="tm-hampster-wheel" src="http://blogs.msdn.com/blogfiles/sdl/WindowsLiveWriter/TheNewThreatModelingProcess_100B8/tm-hampster-wheel_thumb.jpg" width="244" border="0" /></a> </p>  <p>&#xA0;</p>  <p>Now that you&#x2019;ve seen the wheel, I&#x2019;ll briefly describe the steps:</p>  <ol>   <li><strong>Vision</strong>: Consider your security requirements, scenarios and use cases to help frame your threat modeling. What are the security aspects of your scenarios? What do your personas expect or hope doesn&#x2019;t happen? What are the security goals of the system you&#x2019;re building, and how do those interact with the system as it stands? </li>    <li><strong>Model</strong>: The basic idea is to create a diagram of your software, showing all trust boundaries. </li> </ol>  <blockquote>   <p>a. Draw a diagram of your software. We encourage use of the DFD formalisms, which Larry Osterman describes in <a href="http://blogs.msdn.com/larryosterman/archive/2007/08/30/threat-modeling-once-again.aspx">this post</a>.</p>    <p>&#xA0;</p>    <p>Essentially, the elements are</p>    <ol>     <li>External entities (anything outside your control) </li>      <li>Processes (running code) </li>      <li>Data stores (files, registry entries, shared memory, databases) </li>      <li>Data flows (which connect all the other elements) </li>   </ol>    <p>b. Draw trust boundaries between components. You can do this on a whiteboard, in Visio, or in one of the specialized threat modeling tools we&#x2019;ve built. (A trust boundary is anywhere that more than one principal can access an object, such as a file or process.)</p>    <p>c. If your trust boundary crosses something which isn&#x2019;t a data flow, you need to break it into two logical elements, or draw a sub-diagram with more details. (This is different advice: we used to tell people trust boundaries could only cross data flows. People drew them anywhere that felt right. We decided to go with what people were doing&#x2014;there was important information in what they were expressing.)</p>    <p>d. If you need more details to express where trust boundaries are, add an additional diagram.</p>    <p>e. When you don&#x2019;t have any more trust boundaries to draw, you&#x2019;re done.</p>    <p>f. If a diagram doesn&#x2019;t have any trust boundaries, you may have drawn too many details.</p>    <p>3.<strong> Identify Threats</strong> using STRIDE/element</p> </blockquote>  <blockquote>   <p>For each element in your diagram, consider threats of the types indicated in this chart. (We&#x2019;ll come back to the chart&#x2019;s origins in a later post.)</p> </blockquote>  <blockquote>   <p><a href="http://blogs.msdn.com/blogfiles/sdl/WindowsLiveWriter/TheNewThreatModelingProcess_100B8/stride-chart_2.jpg"><img id="id" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="186" alt="stride-chart" src="http://blogs.msdn.com/blogfiles/sdl/WindowsLiveWriter/TheNewThreatModelingProcess_100B8/stride-chart_thumb.jpg" width="244" border="0" /></a> </p>    <p>There&#x2019;s an important mis-conception we often see, which is that STRIDE is appropriate for use as a classification system. It&#x2019;s really hard to use STRIDE to describe attacks&#x2014;the impacts blend together really quickly. The most valuable use of STRIDE is to help people think about how threats have impacted elements of a design in the past. That is, it&#x2019;s a framework for finding threats, not for describing them. &#x201C;What if someone spoofs this host?&#x201D;</p>    <p>&#xA0;</p>    <p>4. <strong>Mitigate</strong> </p>    <p>Here on the SDL strategy team, we love threat modeling. We know that not everyone feels that way, and we ask teams to threat model so that they can find and <b><i>mitigate</i> </b>threats. A threat model document with great diagrams and lots of threats isn&#x2019;t very useful if you don&#x2019;t take the key step of addressing the issues you find. There are four ways to do that:</p>    <ol>     <p>a. Redesign to eliminate threats.</p>      <p>b. Use standard mitigations, such as those provided by OS features, to mitigate threats.</p>      <p>c. Invent new mitigations, understanding that this is a subtle art.</p>      <p>d. Accept risk, when allowed by the SDL</p>   </ol> </blockquote>  <ol>   <p>5.<strong>&#xA0; Validate</strong></p>    <p>There are two levels of validation. The first is within each stage, the second is a validation pass at the end of the process. That end of process validation entails:</p> </ol>  <blockquote>   <p>a. Make sure that the diagrams are up-to-date and accurate</p> </blockquote>  <ol>   <p>b. Ensure that you have STRIDE threats per data flow that crosses a trust boundary, and for each element that such a trust boundary connects to</p>    <p>c. Make sure you&#x2019;re mitigating each threat</p>    <blockquote>     <p>i. You have a bug filed per threat that you want to mitigate. The bug should be of the form &#x201C;attacker can do X. Proposed fix: Y.&#x201D; You might include tradeoffs you&#x2019;re making, and possibly have test plans in the bug, if you include those.</p>   </blockquote>    <blockquote>     <p>ii. You have a valid reason for each non-mitigated threat not being mitigated.</p>   </blockquote>    <blockquote>     <p>iii. All threats are in class i or ii.</p>   </blockquote>    <p>5.a. On change, re-validate</p>    <p>&#xA0;</p> </ol>  <p align="left">This hamster wheel has a very intentional brake on it: the word change, above validate. What that means is you want to go through the process again when you make changes that need to be on the diagram. Checking to see if your diagrams change is a relatively simple check that allows people to track changes against their threat model as their design iterates.</p>  <p>In the next post, I&#x2019;ll talk about the reasoning behind the design, and offer up some process tools that anyone can use to make a process more user-friendly.</p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=5232594" width="1" height="1">]]></content:encoded>
      <pubDate>Mon, 01 Oct 2007 21:15:35 +0000</pubDate>
      <category domain="http://securityratty.com/tag/process">process</category>
      <category domain="http://securityratty.com/tag/threat">threat</category>
      <category domain="http://securityratty.com/tag/process validation entails">process validation entails</category>
      <category domain="http://securityratty.com/tag/threat model">threat model</category>
      <category domain="http://securityratty.com/tag/software process diagram">software process diagram</category>
      <category domain="http://securityratty.com/tag/people">people</category>
      <category domain="http://securityratty.com/tag/people trust boundaries">people trust boundaries</category>
      <category domain="http://securityratty.com/tag/love threat">love threat</category>
      <category domain="http://securityratty.com/tag/hamster wheel">hamster wheel</category>
      <source url="http://blogs.msdn.com/sdl/archive/2007/10/01/the-new-threat-modeling-process.aspx">The New Threat Modeling Process</source>
    </item>
    <item>
      <title><![CDATA[More on the necessity of antivirus software]]></title>
      <link>http://securityratty.com/article/d34aef1c2213ef50a975c36a4e4318fd</link>
      <guid>http://securityratty.com/article/d34aef1c2213ef50a975c36a4e4318fd</guid>
      <description><![CDATA[A few days ago, I wrote a brief post about my non-use of antivirus software on my own computers. A number of people have asked me privately if I am recommending such a stance to other individuals or...]]></description>
      <content:encoded><![CDATA[<p>A few days ago, I wrote a <a href="http://blogs.technet.com/steriley/archive/2007/09/22/antivirus-software-who-needs-it.aspx" target="_blank">brief post about my non-use of antivirus software</a> <em>on my own computers.</em> A number of people have asked me privately if I am recommending such a stance to other individuals or to organizations. Let me be perfectly clear: <strong>absolutely not.</strong> For the vast majority of folks, the <a href="http://www.microsoft.com/protect/computer/default.mspx" target="_blank">four important steps to protect your PC</a> still hold:</p> <ol> <li>Run the Windows Firewall</li> <li>Keep Windows and your applications up-to-date</li> <li>Use current antivirus software</li> <li>Use current antispyware</li></ol> <p>These are good recommendations for organizations, as well.</p> <p>But as I've talked about many times in the past, security decisions always involve tradeoffs. They also (should) involve an intimate understanding of what the users will be doing with their computers. Fact is, most individuals who are not full-time security professionals often make mistakes when trying to decide whether something is legitimate -- witness the ongoing success of phishing and 419 scams. And organizations, unless they run highly locked-down environments, often can't know everything their users are doing.</p> <p>As I said in the previous post, anti-malware is not useless. It is a necessary element in your suite of defensive technologies to help keep the bad guys at bay. In my post I'm simply explaining a personal tradeoff I've made <em>on my own machines at home</em>--that by not running as admin (which I didn't mention before), by using UAC, by relying on the firewall, and by training my family--I have made the decision not to use anti-malware.</p> <p>So should you make the same tradeoff? Well, that depends. If you're asking me about your own use of your own personal computers at home, I can't answer that for you, you need to. Remember what I wrote: "I know what to click and what to skip, what to visit and what to avoid. I have control over what I choose to open, what I choose to load, and what I choose to run." Do you have similar self-control? :)</p> <p>If you're the security administrator for an organization, you should <em>not</em> make this tradeoff. Again, remember what I wrote about my own self-control; I doubt that anyone could make such a statement for everyone in their organization! Antimalware definitely belongs on machines where users can store or transfer files:</p> <ul> <li>client computers</li> <li>email servers</li> <li>file servers</li> <li>SharePoint servers</li></ul> <p>The purpose of my earlier post was to spark a little discussion, to see what other opinions there might be. Some folks are doing the same thing I am, others always run anti-malware on every computer. Neither stance can be declared "right" or "wrong." It's simply a reflection that we all make tradeoffs, every day, when we decide how to manage and use our computers. And as I suspected, different folks make different tradeoffs, based on their own risk tolerance and experience. These are always good conversations to have.</p><img src="http://blogs.technet.com/aggbug.aspx?PostID=2044065" width="1" height="1">]]></content:encoded>
      <pubDate>Tue, 25 Sep 2007 13:53:47 +0000</pubDate>
      <category domain="http://securityratty.com/tag/antivirus software">antivirus software</category>
      <category domain="http://securityratty.com/tag/computers">computers</category>
      <category domain="http://securityratty.com/tag/client computers">client computers</category>
      <category domain="http://securityratty.com/tag/similar self-control">similar self-control</category>
      <category domain="http://securityratty.com/tag/control">control</category>
      <category domain="http://securityratty.com/tag/involve tradeoffs">involve tradeoffs</category>
      <category domain="http://securityratty.com/tag/previous post">previous post</category>
      <category domain="http://securityratty.com/tag/personal computers">personal computers</category>
      <category domain="http://securityratty.com/tag/post">post</category>
      <source url="http://blogs.technet.com/steriley/archive/2007/09/25/more-on-the-necessity-of-antivirus-software.aspx">More on the necessity of antivirus software</source>
    </item>
  </channel>
</rss>
