<?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: threads]]></title>
    <link>http://securityratty.com/tag/threads</link>
    <description></description>
    <pubDate>Thu, 20 Sep 2007 14:52:00 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[Distributed Memory in Blackboard Systems]]></title>
      <link>http://securityratty.com/article/c8294d6fcd37560ac3558a8a3914fdaa</link>
      <guid>http://securityratty.com/article/c8294d6fcd37560ac3558a8a3914fdaa</guid>
      <description><![CDATA[Paul Vincent, ex-colleague at TIBCO, kindly responds to A Brief Introduction to Blackboard Architectures with Blackboards for Complex Event Processing . Paul correctly mentions that TIBCOs...]]></description>
      <content:encoded><![CDATA[<p>Paul Vincent, ex-colleague at TIBCO, kindly responds to <a href="http://www.thecepblog.com/2008/07/20/a-brief-introduction-to-blackboard-architectures/" target="_blank">A Brief Introduction to Blackboard Architectures</a> with <a title="Permalink" href="http://tibcoblogs.com/cep/2008/07/25/blackboards-for-complex-event-processing/">Blackboards for Complex Event Processing</a>.   Paul correctly mentions that TIBCO&#8217;s BusinessEvents software is an excellent scheduling component in a blackboard systems architecture.</p>
<p>However, I should briefly clarify Paul&#8217;s note that &#8220;<em>blackboard systems historically used a single memory model (i.e. multiple threads or processes using a single machine’s memory model)</em>&#8220;.</p>
<p>In fact, there were many blackboard systems, some more than a decade old, that used a distributed memory data-model.   What I think Paul meant to say, and my apologies to Paul for being so literal, is that &#8220;<em>blackboard systems <strong>originally </strong>used a single memory model (i.e. multiple threads or processes using a single machine’s memory model)</em>&#8221;</p>
<p>John McManus, <a href="http://www.nasa.gov/offices/ocio/about/j_mcmanus_bio.html" target="_blank">former CTO of NASA</a>, wrote an excellent PhD dissertation in 1992,  <a href="http://www.thecepblog.com/tb/pdf/mcmanus_thesis_blackboard.pdf" target="_blank">Design and Analysis Techniques for Concurrent Blackboard Systems</a>.    John&#8217;s thesis, now more than 16 years old, examined many details of concurrent blackboards where memory is distributed.  For example, refer to<em> Figure 2.3. Distributed Blackboard System with Distributed Blackboard Data Structure, </em> page 36 of John&#8217;s dissertation.</p>
<p>Quoting directly from page 37 of John&#8217;s disseration;</p>
<blockquote><p>Rice, Aiello and Nii [20] present several options for gaining speedups in a distributed blackboard system.</p>
<ul>
<li>1) Eliminate the centralized scheduling mechanism</li>
<li>2) Optimize system design for a distributed memory, message-passing hardware</li>
<li>3) Distribute the data across the blackboard to reduce hotspots</li>
</ul>
</blockquote>
<p>Quoting further from the same page;</p>
<blockquote><p>Poligon [21] is based on a distributed memory hardware model when each processor is viewed as a blackboard node. They define a blackboard node as follows: <em>“a blackboard node is a process on a processor, surrounded by a collection of processors able to service its requests to execute rules.” </em>[22] The implicit assumption in this definition is that all knowledge sources are rule–based systems. This assumption may severely limit the performance of systems implemented using Poligon, and limits the types of problems it is suited to address.</p></blockquote>
<p>In <a title="Permalink" href="http://tibcoblogs.com/cep/2008/07/25/blackboards-for-complex-event-processing/">Blackboards for Complex Event Processing</a>, Paul concludes, <em></em></p>
<blockquote><p><em>&#8220;One suspects the blackboard systems domain and terminology is overdue some updates thanks to developments in the Complex Event Processing space.&#8221;</em></p></blockquote>
<p>If you look at the historical literature, I would say that the following restatement is more accurate:</p>
<blockquote><p><em>&#8220;The CEP domain and terminology is overdue some updates because folks working in CEP did not reference or incorporate the advanced event processing prior art in a number of very important areas, blackboard systems being only one.&#8221;</em></p></blockquote>
<p>On the other hand,  commercial off-the-shelf rule-processing technology such as TIBCO&#8217;s BusinessEvents (BE), advances the ability to economically implement myriad complex problems that blackboard systems are designed to address.</p>
]]></content:encoded>
      <pubDate>Sat, 26 Jul 2008 03:01:30 +0000</pubDate>
      <category domain="http://securityratty.com/tag/systems">systems</category>
      <category domain="http://securityratty.com/tag/blackboard systems architecture">blackboard systems architecture</category>
      <category domain="http://securityratty.com/tag/blackboard">blackboard</category>
      <category domain="http://securityratty.com/tag/concurrent blackboard systems">concurrent blackboard systems</category>
      <category domain="http://securityratty.com/tag/blackboard architectures">blackboard architectures</category>
      <category domain="http://securityratty.com/tag/blackboard system">blackboard system</category>
      <category domain="http://securityratty.com/tag/memory">memory</category>
      <category domain="http://securityratty.com/tag/blackboard systems domain">blackboard systems domain</category>
      <category domain="http://securityratty.com/tag/blackboard systems">blackboard systems</category>
      <source url="http://www.thecepblog.com/2008/07/26/distributed-memory-in-blackboard-systems/">Distributed Memory in Blackboard Systems</source>
    </item>
    <item>
      <title><![CDATA[A Blast from the Past: CEP at Stanford,1998-2003]]></title>
      <link>http://securityratty.com/article/ecd27eebd62b2df7d9e99b1fcf7ac96f</link>
      <guid>http://securityratty.com/article/ecd27eebd62b2df7d9e99b1fcf7ac96f</guid>
      <description><![CDATA[Courtesy of Complex Event Processing at Stanford
Complex event processing (CEP) is a new technology. It can be applied to extracting and analyzing information from any kind of distributed...]]></description>
      <content:encoded><![CDATA[<p>Courtesy of <a href="http://pavg.stanford.edu/cep/" target="_blank">Complex Event Processing at Stanford</a></p>
<p>Complex event processing (CEP) is a new technology. It can be applied to extracting and analyzing information from any kind of distributed message-based system. It is developed from the Rapide concepts of (1) causal event modeling, (2) event patterns and pattern matching, and (3) event pattern maps and constraints. Complex event processing can be applied to a wide variety of Enterprise monitoring and management problems, from low level network management to high level enterprise intelligence gathering.</p>
<h2>Applications of Complex Event Processing:</h2>
<ul>
<li><strong><a href="http://pavg.stanford.edu/cep/enterprise-viewing.html">Instant Insight</a></strong>  - hierarchical event viewing applied to the Enterprise IT layer. (coming soon)
<ul>
<li><a href="http://pavg.stanford.edu/cep/instantinsightpaper.pdf">Analysing business processes</a> (paper in pdf format)</li>
</ul>
</li>
<li><a href="http://pavg.stanford.edu/cep/netviewer-presentation.ppt">Network Level Monitoring and Management (Powerpoint presentation)</a></li>
<li><a href="http://pavg.stanford.edu/ID/">Cyber Security: Network Intrusion Detection</a></li>
<li>Enterprise Monitoring and Management (coming soon)</li>
<li><a href="http://pavg.stanford.edu/cep/final-version-131102.pdf">Modeling and Simulation of Collaborative Business Processes </a></li>
<li>Business Policy Monitoring. (coming soon)</li>
<li>Analysis and Debugging of Distributed Systems (coming soon)</li>
</ul>
<h2>Presentations:</h2>
<ul>
<li><a href="http://pavg.stanford.edu/cep/ee380abstract.html">&#8220;Complex Event Processing: An Essential Technology for Instant Insight into the Operation of Enterprise Information Systems,&#8221; </a>lecture at the Stanford University Computer Systems Laborary EE380 Colloquium series. <a href="http://stanford-online.stanford.edu/courses/ee380/030115-ee380-100.asx">Video of the lecture (duration: 60 minutes). </a></li>
</ul>
<h2>Publications:</h2>
<ul>
<li><em><a href="http://pavg.stanford.edu/cep/fabline.ps">Complex Event Processing in Distributed Systems.</a></em> David C. Luckham and Brian Frasca, Stanford University Technical Report CSL-TR-98-754, March 1998, 28 pages.<em>Abstract:</em> Complex event processing is a new technology for extracting information from distributed message-based systems. This technology allows users of a system to specify the information that is of interest to them. It can be low level network processing data or high level enterprise management intelligence, depending upon the role and viewpoint of individual users. And it can be changed from moment to moment while the target system is in operation. This paper presents an overview of Complex Event Processing applied to a particular example of a distributed message-based system, a fabrication process management system. The concepts of causal event histories, event patterns, event filtering, and event aggregation are introduced and their application to the process management system is illustrated by simple examples. This paper gives the reader an overview of Complex Event Processing concepts and illustrates how they can be applied using the Rapide toolset to one specific kind of system.<br />
 </li>
<li><em><a href="http://pavg.stanford.edu/cep/99pakdd.ps">Event Mining with Event Processing Networks.</a></em> Louis Perrochon and Walter Mann and Stephane Kasriel and David C. Luckham, The Third Pacific-Asia Conference on Knowledge Discovery and Data Mining. April 26-28, 1999. Beijing, China, 5 pages.<em>Abstract:</em> Event Mining discovers and delivers information and knowledge in a real-time stream of data, or events. We show that the process of delivering knowledge by searching patterns in data and subsequent abstraction of found patterns can be applied in real-time to a complex, asynchronous system. Our event processing engine consists of a network of event processing agents (EPAs) running in parallel that interact using a dedicated event processing infrastructure. The agents can be configured at run-time using a formal pattern language. The underlying infrastructure (1) provides an abstract communication mechanism and thus allows dynamic reconfiguration of the communication topology between agents at run-time and (2) provides transparent, location-independent access to all data. These features allow dynamic allocation of EPAs to different threads and processes on different machines at run time.<br />
 </li>
<li><em><a href="http://pavg.stanford.edu/people/santoro/distrib/ejava.ps">eJava - Extending Java with Causality</a></em>. Alexandre Santoro and Walter Mann and Neel Madhav and David Luckham, Proceedings of the 10th International Conference on Software Engineering and Knowledge Engineering, June 1998, 10 pages.<em>Abstract:</em> Programming languages like Java provide designers with a variety of classes that simplify the process of program development. Some of these classes allow one to easily build multithreaded programs. Though useful, especially in the creation of reactive systems, multithreaded programs present challenging problems such as race conditions and synchronization issues. Validating these programs against a specification is not trivial since Java does not clearly indicate thread interaction. These problems can be solved by modifying Java so that it produces computations, collections of events with both causal and temporal ordering relations defined for them. Specifically, the causal ordering is ideal for identifying thread interaction. This paper presents eJava, an extension to Java that is both event based and causally aware, and shows how it simplifies the process of understanding and debugging multithreaded programs.<br />
 </li>
<li><a href="http://pavg.stanford.edu/cep/99wicsa1.ps.gz">Event-Based Execution Architectures for Dynamic Software Systems</a>. James Vera, Louis Perrochon, David C. Luckham.<br />
Proceedings of the First Working IFIP Conf. on Software Architecture. 1999. San Antonio, Texas.<em>Abstract:</em> Distributed systems&#8217; runtime behavior can be difficult to understand. Concurrent, distributed activity make notions of global state difficult to grasp. We focus on the runtime structure of a system, its execution architecture, and propose representing its evolution as a partially ordered set of predefined architectural event types. This representation allows a system&#8217;s topology to be visualized, analyzed and con-strained. The use of a predefined event types allows the execution architectures of different systems to be readily compared.<br />
 </li>
<li><em><a href="http://pavg.stanford.edu/cep/cidf.ps.gz">Using Context-Based Correlation in Network Operations and Management</a></em>. Louis Perrochon (work in progress, mail author for newest version)<em>Abstract:</em> Network operation consists to a large degree of reaction to activities happening in the network. Better knowledge of the network at any time allows more appropriate reactions. On the example of intrusion detection, we show how context-based correlation of such activities can provide a more detailed view of the network in shorter time. We first present how we model context and then describe the architecture of the Stanford University CEP context-based correlator. Correlation is specified as event patterns in a declarative language that allows us to specify what needs to be detected, instead of specifying how it should be detected. CEP introduces the concept of causal context to intrusion detection. The correlator is able to process events on-line, as they are generated and it can be reconfigured at dynamically. We then show how it increases detection rate, reduce false alarms, and detect large-scale attack patterns at an early stage.</li>
</ul>
]]></content:encoded>
      <pubDate>Mon, 07 Jul 2008 15:20:21 +0000</pubDate>
      <category domain="http://securityratty.com/tag/architectural event types">architectural event types</category>
      <category domain="http://securityratty.com/tag/event">event</category>
      <category domain="http://securityratty.com/tag/event pattern maps">event pattern maps</category>
      <category domain="http://securityratty.com/tag/event types">event types</category>
      <category domain="http://securityratty.com/tag/event aggregation">event aggregation</category>
      <category domain="http://securityratty.com/tag/event patterns">event patterns</category>
      <category domain="http://securityratty.com/tag/complex event">complex event</category>
      <category domain="http://securityratty.com/tag/event based">event based</category>
      <category domain="http://securityratty.com/tag/hierarchical event">hierarchical event</category>
      <source url="http://www.thecepblog.com/2008/07/07/a-blast-from-the-past-cep-at-stanford1998-2003/">A Blast from the Past: CEP at Stanford,1998-2003</source>
    </item>
    <item>
      <title><![CDATA[Xobni and LinkedIn - perfect together]]></title>
      <link>http://securityratty.com/article/3764355b51b16eb61f35699b43628aa7</link>
      <guid>http://securityratty.com/article/3764355b51b16eb61f35699b43628aa7</guid>
      <description><![CDATA[A while back I wrote about how much I liked the Xobni email add on for Outlook . A short time later I heard rumors that Microsoft was buying them , but that appears not to be true at this point,...]]></description>
      <content:encoded><![CDATA[
<div xmlns="http://www.w3.org/1999/xhtml"><p><img title="Xobnilinkedin" alt="Xobnilinkedin" src="http://www.stillsecureafteralltheseyears.com/photos/uncategorized/2008/06/30/xobnilinkedin.png" border="0" style="FLOAT: right; MARGIN: 0px 0px 5px 5px" />A while back<a href="http://www.stillsecureafteralltheseyears.com/ashimmy/2008/02/xobni-but-can-i.html"> I wrote about</a> how much I liked the <a class="zem_slink" title="Xobni" href="http://www.xobni.com/" rel="homepage">Xobni</a> email add on for <a class="zem_slink" title="Microsoft Outlook" href="http://www.microsoft.com/outlook" rel="homepage">Outlook</a>. A short time later <a href="http://www.stillsecureafteralltheseyears.com/ashimmy/2008/04/microsoft-buys.html">I heard rumors that Microsoft was buying them</a>, but that appears not to be true at this point, though I still think it makes a lot of sense.&nbsp; In the meantime, I have continued to use and be impressed with Xobni.&nbsp; I have come to rely on its ultra fast search and the way it organizes threads of conversations and groups of people, as well as attached files. </p>

<p>An interesting thing though about Xobni. As I was given invitations, I would send them out to people I know.&nbsp; Though many of them liked the functionality of the product, they said that it slowed their Outlook to a crawl and just did not think the performance hit was worth it.&nbsp; Maybe I got used to the slowness or I am just not seeing it, but I did not see what they saw. In any event, many people were not using the product.</p>

<p>Well the Xobni folks <a href="http://http//www.xobni.com/blog/2008/06/26/out-is-in-xobni-linkedin-job-titles-employer-and-pictures/">just released a new version</a> of the product that promises improved performance. I hope that helps those people who were complaining about this. It also offers several other new features, the biggest being LinkedIn integration.&nbsp; I really like this <a class="zem_slink" title="LinkedIn" href="http://www.linkedin.com/" rel="homepage">LinkedIn</a> integration as it gives you yet another layer of information on the people writing to you. All in all, I think this just makes the product more indispensable than it is already.&nbsp; It is now available to the public, so I would encourage you to check it out for yourself!</p>

<fieldset class="zemanta-related"><legend>Related articles</legend><ul class="zemanta-article-ul"><li class="zemanta-article-ul-li"><a title="Open in new window" href="http://www.somewhatfrank.com/2008/05/xobni-finally-o.html">Xobni Social Mail Plugin Finally Goes Public</a> [via Zemanta] </li>

<li class="zemanta-article-ul-li"><a title="Open in new window" href="http://www.techcrunch.com/2008/06/25/xobni-gets-even-better-with-linkedin-data-for-your-contacts/">Xobni Gets Even Better With LinkedIn Data For Your Contacts</a> [via Zemanta] </li>

<li class="zemanta-article-ul-li"><a title="Open in new window" href="http://www.techcrunch.com/2008/02/29/microsoft-may-buy-email-startup-xobni/">Microsoft May Buy Email Startup Xobni</a> [via Zemanta]</li></ul>

<p class="zemanta-article-ul-li"></p></fieldset> <div class="zemanta-pixie" style="MARGIN-TOP: 10px; HEIGHT: 15px"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/0c8bdcd3-c6f4-4c80-8bfc-e023d3e63b46/"><img class="zemanta-pixie-img" alt="Zemanta Pixie" src="http://img.zemanta.com/reblog_a.png?x-id=0c8bdcd3-c6f4-4c80-8bfc-e023d3e63b46" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; FLOAT: right; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" /></a></div></div>
]]></content:encoded>
      <pubDate>Tue, 01 Jul 2008 03:53:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/xobni">xobni</category>
      <category domain="http://securityratty.com/tag/xobni email">xobni email</category>
      <category domain="http://securityratty.com/tag/email startup xobni">email startup xobni</category>
      <category domain="http://securityratty.com/tag/xobni folks">xobni folks</category>
      <category domain="http://securityratty.com/tag/people">people</category>
      <category domain="http://securityratty.com/tag/linkedin integration">linkedin integration</category>
      <category domain="http://securityratty.com/tag/product">product</category>
      <category domain="http://securityratty.com/tag/zemanta">zemanta</category>
      <category domain="http://securityratty.com/tag/performance hit">performance hit</category>
      <source url="http://www.stillsecureafteralltheseyears.com/ashimmy/2008/07/xobni-and-linke.html">Xobni and LinkedIn - perfect together</source>
    </item>
    <item>
      <title><![CDATA[Xobni and LinkedIn - perfect together]]></title>
      <link>http://securityratty.com/article/e4cea3a673516c2866741b04b7254509</link>
      <guid>http://securityratty.com/article/e4cea3a673516c2866741b04b7254509</guid>
      <description><![CDATA[A while back I wrote about how much I liked the Xobni email add on for Outlook . A short time later I heard rumors that Microsoft was buying them , but that appears not to be true at this point,...]]></description>
      <content:encoded><![CDATA[
<div xmlns="http://www.w3.org/1999/xhtml"><p><img title="Xobnilinkedin" alt="Xobnilinkedin" src="http://www.stillsecureafteralltheseyears.com/photos/uncategorized/2008/06/30/xobnilinkedin.png" border="0" style="FLOAT: right; MARGIN: 0px 0px 5px 5px" />A while back<a href="http://www.stillsecureafteralltheseyears.com/ashimmy/2008/02/xobni-but-can-i.html"> I wrote about</a> how much I liked the <a class="zem_slink" title="Xobni" href="http://www.xobni.com/" rel="homepage">Xobni</a> email add on for <a class="zem_slink" title="Microsoft Outlook" href="http://www.microsoft.com/outlook" rel="homepage">Outlook</a>. A short time later <a href="http://www.stillsecureafteralltheseyears.com/ashimmy/2008/04/microsoft-buys.html">I heard rumors that Microsoft was buying them</a>, but that appears not to be true at this point, though I still think it makes a lot of sense.&nbsp; In the meantime, I have continued to use and be impressed with Xobni.&nbsp; I have come to rely on its ultra fast search and the way it organizes threads of conversations and groups of people, as well as attached files. </p>

<p>An interesting thing though about Xobni. As I was given invitations, I would send them out to people I know.&nbsp; Though many of them liked the functionality of the product, they said that it slowed their Outlook to a crawl and just did not think the performance hit was worth it.&nbsp; Maybe I got used to the slowness or I am just not seeing it, but I did not see what they saw. In any event, many people were not using the product.</p>

<p>Well the Xobni folks <a href="http://http//www.xobni.com/blog/2008/06/26/out-is-in-xobni-linkedin-job-titles-employer-and-pictures/">just released a new version</a> of the product that promises improved performance. I hope that helps those people who were complaining about this. It also offers several other new features, the biggest being LinkedIn integration.&nbsp; I really like this <a class="zem_slink" title="LinkedIn" href="http://www.linkedin.com/" rel="homepage">LinkedIn</a> integration as it gives you yet another layer of information on the people writing to you. All in all, I think this just makes the product more indispensable than it is already.&nbsp; It is now available to the public, so I would encourage you to check it out for yourself!</p>

<fieldset class="zemanta-related"><legend>Related articles</legend><ul class="zemanta-article-ul"><li class="zemanta-article-ul-li"><a title="Open in new window" href="http://www.somewhatfrank.com/2008/05/xobni-finally-o.html">Xobni Social Mail Plugin Finally Goes Public</a> [via Zemanta] </li>

<li class="zemanta-article-ul-li"><a title="Open in new window" href="http://www.techcrunch.com/2008/06/25/xobni-gets-even-better-with-linkedin-data-for-your-contacts/">Xobni Gets Even Better With LinkedIn Data For Your Contacts</a> [via Zemanta] </li>

<li class="zemanta-article-ul-li"><a title="Open in new window" href="http://www.techcrunch.com/2008/02/29/microsoft-may-buy-email-startup-xobni/">Microsoft May Buy Email Startup Xobni</a> [via Zemanta]</li></ul>

<p class="zemanta-article-ul-li"></p></fieldset> <div class="zemanta-pixie" style="MARGIN-TOP: 10px; HEIGHT: 15px"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/0c8bdcd3-c6f4-4c80-8bfc-e023d3e63b46/"><img class="zemanta-pixie-img" alt="Zemanta Pixie" src="http://img.zemanta.com/reblog_a.png?x-id=0c8bdcd3-c6f4-4c80-8bfc-e023d3e63b46" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; FLOAT: right; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" /></a></div></div>

<p><a href="http://feeds.feedburner.com/~a/StillsecureAfterAllTheseYears?a=fcGJoZ"><img src="http://feeds.feedburner.com/~a/StillsecureAfterAllTheseYears?i=fcGJoZ" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?a=covlZJ"><img src="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?i=covlZJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?a=1T6uwJ"><img src="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?i=1T6uwJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?a=1VelkJ"><img src="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?i=1VelkJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?a=9immOJ"><img src="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?i=9immOJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?a=Lb4fxj"><img src="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?i=Lb4fxj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?a=SVJJRj"><img src="http://feeds.feedburner.com/~f/StillsecureAfterAllTheseYears?i=SVJJRj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/StillsecureAfterAllTheseYears/~4/323989772" height="1" width="1"/>]]></content:encoded>
      <pubDate>Tue, 01 Jul 2008 02:53:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/xobni">xobni</category>
      <category domain="http://securityratty.com/tag/xobni email">xobni email</category>
      <category domain="http://securityratty.com/tag/email startup xobni">email startup xobni</category>
      <category domain="http://securityratty.com/tag/xobni folks">xobni folks</category>
      <category domain="http://securityratty.com/tag/people">people</category>
      <category domain="http://securityratty.com/tag/linkedin integration">linkedin integration</category>
      <category domain="http://securityratty.com/tag/product">product</category>
      <category domain="http://securityratty.com/tag/zemanta">zemanta</category>
      <category domain="http://securityratty.com/tag/performance hit">performance hit</category>
      <source url="http://feeds.feedburner.com/~r/StillsecureAfterAllTheseYears/~3/323989772/xobni-and-linke.html">Xobni and LinkedIn - perfect together</source>
    </item>
    <item>
      <title><![CDATA[Carnival of the Security Catalyst Community - April 22, 2008]]></title>
      <link>http://securityratty.com/article/bd93c85e6a6cddab35a851bbfcd52201</link>
      <guid>http://securityratty.com/article/bd93c85e6a6cddab35a851bbfcd52201</guid>
      <description><![CDATA[Well, today its my turn to host the Carnival of the Security Catalyst Community. The SCC Forum was launched by Michael Santarcangelo, the Security Catalyst. The forum itself can be found at...]]></description>
      <content:encoded><![CDATA[Well, today it’s my turn to host the Carnival of the Security Catalyst Community. The SCC Forum was launched by Michael Santarcangelo, the &#8220;Security Catalyst&#8221;. The forum itself can be found at http://www.securitycatalyst.org/forums (click HERE) and requires you to register for most of the threads posted by members. Most members are active security professionals, either [...]]]></content:encoded>
      <pubDate>Tue, 22 Apr 2008 10:31:21 +0000</pubDate>
      <category domain="http://securityratty.com/tag/security catalyst community">security catalyst community</category>
      <category domain="http://securityratty.com/tag/security catalyst">security catalyst</category>
      <category domain="http://securityratty.com/tag/forum">forum</category>
      <category domain="http://securityratty.com/tag/scc forum">scc forum</category>
      <category domain="http://securityratty.com/tag/active security professionals">active security professionals</category>
      <category domain="http://securityratty.com/tag/carnival">carnival</category>
      <category domain="http://securityratty.com/tag/michael santarcangelo">michael santarcangelo</category>
      <category domain="http://securityratty.com/tag/threads">threads</category>
      <category domain="http://securityratty.com/tag/orgforums">orgforums</category>
      <source url="http://securityviews.com/blog/2008/04/22/carnival-of-the-security-catalyst-community-april-22-2008/">Carnival of the Security Catalyst Community - April 22, 2008</source>
    </item>
    <item>
      <title><![CDATA[Dead, Dead, Dead: Cities Accept Muni-Fi's Absence]]></title>
      <link>http://securityratty.com/article/d4178d08b336bbde0662163e19ee4979</link>
      <guid>http://securityratty.com/article/d4178d08b336bbde0662163e19ee4979</guid>
      <description><![CDATA[Local paper taunts Tempe's failed muni-Fi effort: Symbolically, a display celebrating the kickoff the city-wide Wi-Fi network built by NeoReach-cum-Kite-cum-Gobility is falling apart in front of the...]]></description>
      <content:encoded><![CDATA[<p><img src="http://wifinetnews.com/images/muni_icon.jpg" align="right" hspace="5" height="80" width="80" border="0" /><strong><a href="http://www.eastvalleytribune.com/story/114300">Local paper taunts Tempe's failed muni-Fi effort:</a></strong> Symbolically, a display celebrating the kickoff the city-wide Wi-Fi network built by NeoReach-cum-Kite-cum-Gobility is falling apart in front of the mayor's office, the reporter notes. I have to add "stucco" to the list of quotidian problems that tripped up metro-scale Wi-Fi. In many parts of the U.S., <strong><a href="http://en.wikipedia.org/wiki/Stucco">stucco</a></strong> isn't in a homeowner's vocabulary. But in large swaths of sunny states, especially the southwest and southern California, homes are finished by slapping plaster on chicken wire and calling it good--it's got good insulation. Where wallboard over balloon wood frames doesn't really obstruct Wi-Fi, the chicken wire coupled with the density of the plaster is as effective as the water always present in brickwork in keeping signals out. I had this conversation recently about plaster with Rio Rancho's city manager, too.</p>

<p>The reporter notes other common threads of problems with metro-scale networks: lowballed budgets, which turned out to underestimate infrastructure costs (nodes, real-estate rights, utility pole issues), low demand, and weak signals inside homes. Tempe apparently had 1,000 subscribers at one point, in a city of 166,000 (2005 census estimate).</p>

<p>The articles states, "The upside is Tempe and other Valley cities didn't spend taxpayer dollars." Of course, as I've noted before, the idea with a wireless network should be to both conserve expenses and reduce them. "Taxpayer dollars" is a shibboleth of those who believe government can solve <em>no</em> ills. Those who believe that are typically also fine with government overspending by paying large companies as private contractors rather than working in a public/private partnership that reduces expenses and yet puts most dollars into the private sector--just in smaller firms.</p>

<p><strong><a href="http://www.azcentral.com/community/gilbert/articles/2008/04/19/20080419gr-wifi0419-ON.html">Gilbert, Ariz., one of several Arizona cities that was contracted with Kite, reaches fifth stage of mourning, acceptance:</a></strong> Gobility, Kite's ostensibly current owner, hasn't communicated with the city in two months, and its elusive head wouldn't comment for this article in local paper. The city isn't too depressed.</p>

<p><strong><a href="http://newsok.com/article/3229885/1208648366">Oklahoma City is OK with lack of Wi-Fi network for public access:</a></strong> They're pretty pleased with their large mesh network for emergency services.</p>]]></content:encoded>
      <pubDate>Sun, 20 Apr 2008 08:54:28 +0000</pubDate>
      <category domain="http://securityratty.com/tag/wi-fi network">wi-fi network</category>
      <category domain="http://securityratty.com/tag/city-wide wi-fi network">city-wide wi-fi network</category>
      <category domain="http://securityratty.com/tag/city">city</category>
      <category domain="http://securityratty.com/tag/oklahoma city">oklahoma city</category>
      <category domain="http://securityratty.com/tag/dollars">dollars</category>
      <category domain="http://securityratty.com/tag/city manager">city manager</category>
      <category domain="http://securityratty.com/tag/taxpayer dollars">taxpayer dollars</category>
      <category domain="http://securityratty.com/tag/reporter notes">reporter notes</category>
      <category domain="http://securityratty.com/tag/balloon wood frames">balloon wood frames</category>
      <source url="http://wifinetnews.com/archives/008283.html">Dead, Dead, Dead: Cities Accept Muni-Fi's Absence</source>
    </item>
    <item>
      <title><![CDATA[SDL and "End to End Trust"]]></title>
      <link>http://securityratty.com/article/2fb98c15599b5184193eb059c454b654</link>
      <guid>http://securityratty.com/article/2fb98c15599b5184193eb059c454b654</guid>
      <description><![CDATA[Hi folks, Eric Bidstrup here
Last week at RSA, Microsoft Chief Research and Strategy Officer Craig Mundie spoke and outlined a proposed vision for End to End Trust. Much has and will be written on...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Hi folks, Eric Bidstrup here.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Last week at RSA, Microsoft Chief Research and Strategy Officer Craig Mundie spoke and outlined a proposed vision for “End to End Trust.” Much has and will be written on that, and additional information and discussions can be found at the End to End Trust portal </FONT><A href="http://www.microsoft.com/endtoendtrust"><FONT face=Calibri size=3>http://www.microsoft.com/endtoendtrust</FONT></A><FONT face=Calibri size=3>. In many ways, Craig’s talk was very unusual for Microsoft’s presence at RSA in that it wasn’t a big new product announcement, nor was it evangelizing a new technology or platform to innovate upon. Rather, it was a aimed at kicking off a dialogue by describing some of the current challenges and barriers we see to achieving a more trusted and privacy enhanced Internet, and some of our ideas on how both industry and society might be able to start a productive dialog about collaborating toward that end. <SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>Make no mistake: this is tough stuff. This needs to be an industry-wide, long-term effort, and it’s about more than just technology. Enabling true End to End Trust will require that we continue to build on technology progress while aligning those innovations more closely with social, economic and political forces. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Along those lines, I wanted to take a few moments and comment on how SDL factors into that broader discussion on <I style="mso-bidi-font-style: normal">trust</I>. Allow me to draw some analogies with some of my prior work… </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>In the late 1990’s, I was not yet working on computer security but on </FONT><A href="http://www.microsoft.com/speech"><FONT face=Calibri color=#0000ff size=3>computer speech recognition and speech synthesis</FONT></A><FONT face=Calibri size=3> for Microsoft. Having an engineering background, I was (and still am) very interested in the opportunities and possibilities enabled by freeing people from computer keyboards and mice and allowing them to interact with computers in one of the same ways we interact with each other – by voice. Speech recognition was, and still is, largely assessed by a key metric of “what percentage of words spoken by a person did the computer correctly understand?” Nirvana for speech recognition is 100 percent accuracy (defined as “the computer correctly understood <B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">all</I></B> of the words spoken”) with any audio stream (even with a microphone far away from a person in a noisy room) with an unlimited vocabulary (regardless if I am discussing sports using slang or detailed technical terminology) in any spoken language/dialect. State of the art of speech recognition technology today is not 100 percent accurate within the parameters I described, but let’s pretend for a minute that it is – then what? If you start thinking more deeply on this subject, you can quickly see that many other pieces of the puzzle are needed to realize the goal of “allowing people to interact with computers in one of the same ways we interact with each other – by voice. </FONT><A href="http://research.microsoft.com/nlp/"><FONT face=Calibri size=3>Natural Language Processing</FONT></A><FONT face=Calibri size=3> and designing an effective </FONT><A href="http://en.wikipedia.org/wiki/Voice_User_Interface"><FONT face=Calibri size=3>Voice User Interface</FONT></A><FONT face=Calibri size=3> (VUI) are two of the first major challenges encountered when trying to realize the broader vision of enabling people to interact with computers via voice. These are hard problems that I hope to see significant progress on in my lifetime. However, analyzing an audio stream and converting into some format (words or otherwise) is a fundamental requirement necessary for speech recognition. Yet, it’s also insufficient to realize the broader vision.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Some of you reading may be thinking “But wait Eric, this is a security blog so why are you rambling on about your former roles working on speech recognition?” Well, there is an analogy I’m trying to draw. The point I’ve been leading up to is that the <B style="mso-bidi-font-weight: normal">SDL plays a similar role in the context of realizing the broader “End to End Trust” vision</B>. Having software that operates securely without exposing systems or data to unnecessary risk is a fundamental requirement in order for people to trust their computers and software. Yet, that alone is insufficient to enable confidence and trust. As Scott Charney noted in the “</FONT><A href="http://download.microsoft.com/download/7/2/3/723a663c-652a-47ef-a2f5-91842417cab6/Establishing_End_to_End_Trust.pdf"><FONT face=Calibri size=3>End to End Trust Paper</FONT></A><FONT face=Calibri size=3>:”</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"><I style="mso-bidi-font-style: normal"><FONT size=3><FONT face=Calibri>“There remained, however, other more specific threats not well addressed by SD3 or Defense-in-Depth. For example, spam does not normally exploit vulnerabilities, nor would one turn off mail by default. There is also very little a specific user or enterprise can do to prevent a distributed denial-of service attack from a botnet. As a result, Microsoft started working on threat mitigations for specific issues. With regard to phishing and spam, for example, it engaged in broad consumer education campaigns and worked on developing technological solutions such as phishing filters and SenderID. For both phishing and botnets, Microsoft began working more extensively with law enforcement to identify phishers and botnet herders in an attempt to create deterrent to such activity, even though the deterrent effect is limited by the current environment because it is hard to find offenders, and criminal penalties may be applied without sufficient force.”<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></I></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>In the non-computing world, even if I keep my house, car, and other valuables under lock and key, I still am at risk of being victimized by criminal activity through no fault of my own. However, a broader set of societal constructs help offer improved assurances that if I don’t live careless or recklessly I will largely remain safe and secure. Note I said “improved.” Society is still not perfect; crime still exists and it always will! The online world is no different. The online world has not yet been around quite as long as human society, it too needs help in developing improved assurances – assurances that ensure I will largely remain safe and secure given I don’t live carelessly or recklessly. These assurances can’t be provided by any single vendor. They require collaboration from all of industry, and indeed society. Craig Mundie’s talk aimed to start a dialogue about how to evolve our online society to be a safer place, where devices and software enable people to make more effective trust decisions and take control over whom and what they trust online. </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>The creation of a more trustworthy Internet will benefit all of society, and an open dialogue among its members is critical component of achieving this. Feel free to go to </FONT><A href="http://forums.community.microsoft.com/en-US/EndToEndTrust/threads/"><FONT face=Calibri size=3>http://forums.community.microsoft.com/en-US/EndToEndTrust/threads/</FONT></A><FONT face=Calibri size=3> and chime in with your thoughts. As Scott Charney noted “"… if we want the internet to reach its full potential, we need a safer, more trusted online environment."</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8399990" width="1" height="1">]]></content:encoded>
      <pubDate>Wed, 16 Apr 2008 20:15:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/trust">trust</category>
      <category domain="http://securityratty.com/tag/broader">broader</category>
      <category domain="http://securityratty.com/tag/broader discussion">broader discussion</category>
      <category domain="http://securityratty.com/tag/trust portal">trust portal</category>
      <category domain="http://securityratty.com/tag/technology">technology</category>
      <category domain="http://securityratty.com/tag/technology progress">technology progress</category>
      <category domain="http://securityratty.com/tag/broader vision">broader vision</category>
      <category domain="http://securityratty.com/tag/speech recognition">speech recognition</category>
      <category domain="http://securityratty.com/tag/computer speech recognition">computer speech recognition</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/04/16/sdl-and-end-to-end-trust.aspx">SDL and "End to End Trust"</source>
    </item>
    <item>
      <title><![CDATA[Fuzz Testing at Microsoft and the Triage Process]]></title>
      <link>http://securityratty.com/article/9ef13cf9fa3328944d25b8d603d02a06</link>
      <guid>http://securityratty.com/article/9ef13cf9fa3328944d25b8d603d02a06</guid>
      <description><![CDATA[Scott Lambert here. I work on the Security Engineering Tools team where we're responsible for researching, developing and publishing tools to internal product and service teams. These include fuzzing,...]]></description>
      <content:encoded><![CDATA[<P mce_keep="true">Scott Lambert here.&nbsp; I work on the&nbsp;Security Engineering&nbsp;Tools team where we're responsible for researching, developing and publishing tools to internal product and service teams. &nbsp;These include fuzzing, binary analysis and attack surface analysis tools.</P>
<P>Previously, James Whittaker posted a blog entry on <A href="http://blogs.msdn.com/sdl/archive/2007/05/24/testing-in-the-sdl.aspx">Testing in the SDL</A> in which he mentioned that many folks equate fuzz testing with security testing.&nbsp; While fuzz testing doesn't come close to describing how security testing is done at Microsoft it does happen to be one of our most scalable testing approaches to detecting program failures that may have security implications.&nbsp; </P>
<P>As Michael Howard has pointed out <A href="http://blogs.msdn.com/sdl/archive/2007/04/26/lessons-learned-from-the-animated-cursor-security-bug.aspx">before</A>, we do our best to ensure that the SDL incorporates lessons learned from vulnerabilities that required us to release security updates.&nbsp; It turns out that the animated cursor bug patched in <A href="http://www.microsoft.com/technet/security/bulletin/ms07-017.mspx">MS07-017</A> had a positive impact on the automatic triaging our fuzz testing tools perform. &nbsp;In this post, I'd like to shed some light on how we monitor for program failures when fuzzing parsers and how the recent animated cursor bug, <A href="http://www.microsoft.com/technet/security/bulletin/ms07-017.mspx">MS07-017</A> caused us to revisit and ultimately improve our fuzzing tools.</P>
<P><B>Background</B><B></B></P>
<P>For our purposes, fuzz testing is a method for finding program failures (code errors) by supplying malformed input data to program interfaces (entry points) that parse and consume this data (e.g. file, network, registry, shared memory parsers).&nbsp; At Microsoft, we view fuzz testing as six distinct stages in which the output of each stage can impact or influence both the current and next iteration through the stages (e.g. after completing analysis work in stage 5 you could decide to change how you malform and deliver fuzzed data [stage 2 and 3], which exceptions get logged [stage 4], which tests you re-run [stage 6] and even which parsers you might decide to go after next [stage 1], etc).&nbsp; Below is a brief listing of each stage and its associated tasks.</P>
<P>Stage 1: Prerequisites</P>
<UL>
<LI>Identifying the targets (program interfaces to fuzz)</LI>
<LI>Prioritizing your efforts (test planning)</LI>
<LI>Setting Bug Bar</LI></UL>
<P>Stage 2: Creation of fuzzed data (malformed data)</P>
<UL>
<LI>Will we be format-aware (e.g. most files follow a format)? Context-aware (e.g. order and/or timing of data may be important)?</LI>
<LI>Will we use existing data (mutation) or generate it from scratch (generation)?</LI>
<LI>Will the malformations we apply be based on type? Use interesting patterns? Over how many bits/bytes?</LI>
<LI>Will we apply malformations with or without restriction? Are we going to be deterministic or random or both? How many times in a single iteration do we apply any given malformation?</LI></UL>
<P>Stage 3: Delivery of fuzzed data to the application under test</P>
<UL>
<LI>Determining the best method to get the application under test to consume the fuzzed data (e.g. load path from cmd-line or GUI; API hooking; MITM proxies; DLL redirection; in-memory start-stop-rewind, etc)</LI>
<LI>Implementing the appropriate delivery mechanism and conducting the test</LI></UL>
<P>Stage 4: Monitoring of application under test for signs of failure</P>
<UL>
<LI>What should we look for?</LI>
<LI>What do we do when we see it?</LI></UL>
<P>Stage 5: Triaging Results</P>
<UL>
<LI>How can we classify and analyze issues found?</LI></UL>
<P>Stage 6: Identify root cause, fix bugs, rerun failures, analyze coverage data (rinse and repeat)</P>
<P><B>How we do file fuzzing</B><B></B></P>
<P>There are a number of approaches taken by product teams to meet the SDL file fuzzing requirements.&nbsp; They often include the use of generation and mutation-based fuzzers as well as a combination of multiple internal and externally available fuzzing tools and/or frameworks.&nbsp; </P>
<P>When fuzzing file parsers, we monitor for both handled and unhandled exceptions in the application under test.&nbsp; Exceptions are events that typically represent error conditions encountered during the execution of an application.&nbsp; They can be generated both by the hardware (initiated by the CPU) and/or software (initiated by the executing program or the OS).&nbsp; To monitor for these exceptions, we created a mini-debugger using the <A href="http://msdn2.microsoft.com/en-us/library/ms679300.aspx">Win32 Debugging APIs</A> (For an example of how to integrate a debugger into your fuzz testing tool, check out Michael Howard and Steve Lipner's SDL Book at <A href="http://www.microsoft.com/MSPress/books/8753.asp" target=_blank>http://www.microsoft.com/MSPress/books/8753.asp</A>).&nbsp; The mini-debugger launches the application under test and monitors the parent and all subsequent child processes and associated threads.&nbsp; When an exception occurred, the first version of this tool simply logged the file that caused the exception along with associated details such as the timestamp, exception code, exception address, stack trace and dump file.&nbsp; More recent versions have included the ability to monitor for CPU and memory spikes as well as enabling <A href="http://msdn2.microsoft.com/en-us/library/ms220938(VS.80).aspx">full page heap</A> settings on all processes launched from the mini-debugger.</P>
<P>As a general rule, <B>all</B> exceptions must be triaged (reviewed) by the tester to determine if a bug needs to be filed.&nbsp; When fuzzing over a period of time however, we might generate hundreds of exceptions and it becomes a very labor-intensive process to sift through all of them.&nbsp; What we needed was a way to ease the burden placed on the tester.</P>
<P>To that extent, the mini-debugger was extended to enable the automatic "bucketization" of logged exceptions to reduce the chance of having to look at duplicates during the triaging process.&nbsp; This was accomplished by creating unique bucket ids calculated from the stack trace using both symbols and offset when the information is available.&nbsp; The bucket id was used to name a folder that was created in the file system to refer to a unique application exception.&nbsp; When an exception occurred, we calculated a hash (bucket id) of the stack trace and determined if we had already seen this exception.&nbsp; If so, we logged the associated details in a sub-directory under the bucket id folder to which the exception belonged.&nbsp; The sub-directory name was created from the name of the fuzzed file that caused the exception.&nbsp; Thus, we were able to reduce the number of potential exceptions that a tester would have to look at during the triage process.&nbsp; It is often the case that certain exceptions are noisy and/or expected so we also added the ability for the tester to dampen exceptions by exception code.&nbsp; Dampening ensured that those exceptions were not logged (recorded) for triage during a fuzz run.&nbsp; Nonetheless, despite our best efforts it is still possible for two different stack traces to have the same underlying root cause.</P>
<P>Even with all of this automated assistance, the tester might still have several hundred cases to triage.&nbsp; In an effort to prioritize which cases should be triaged first, we introduced the notion of classifying exceptions.&nbsp; Again, we extended the mini-debugger to perform classification on the exception code and relevant details.&nbsp; In particular, we added an extra hierarchy over the automatically generated directory structure described above.&nbsp; To do this we introduced the following categories of exceptions:</P>
<UL type=disc>
<LI>Must Fix</LI>
<LI>Further Investigation necessary</LI>
<LI>Usually not exploitable</LI></UL>
<P>I know what you're thinking, but remember that this classification doesn't exclude a tester from the requirement of having to triage <B>all </B>exceptions.&nbsp; The "Must Fix" category was composed of write access violations, read access violations on EIP, /GS and NX related access violations and read access violations where any one of the following was true*:&nbsp; </P>
<UL type=disc>
<LI>The access violation happens on a rep assembly instruction (on an Intel processor) where the count register (ecx) is large.&nbsp; </LI>
<LI>The access violation happens on a mov instruction where the result is used as the destination of a call in the instructions immediately after the mov.</LI>
<LI>The access violation happens on a mov instruction where the result is later used in a rep instruction as the source (esi), destination (edi) or count (ecx).</LI></UL>
<P>*<I>Fully automating the classification of these cases is complex and almost always requires an entire execution trace.&nbsp;&nbsp; As such, teams are also provided with guidance to assist them during their analysis when our tool is unable to classify beyond "read and write access violations".</I></P>
<P>The "Further Investigation necessary" category was composed of read access violations that didn't meet the criteria above as well as other specific cases.&nbsp; Finally, the "Usually not exploitable" category was composed of other exceptions such as divide-by-zero, C++ exceptions and the like.&nbsp; Another thing to keep in mind is that the interpretation of "Usually not exploitable" is different for server-based components.&nbsp; In other words, a divide-by-zero exception in a server product is probably more than just a robustness issue...it might be a denial of service!</P>
<P>Remember that regardless of this classification the tester is still required to triage <B>all </B>exceptions and file bugs accordingly.&nbsp; I'll defer more details on the subject of exploitability of program failures to the upcoming annual security issue of MSDN Magazine in November.</P>
<P>To recap, we had a debugging plug-in (mini-debugger) that not only monitored for exceptions but also reduced the number of exceptions to triage after a fuzzing session was completed.&nbsp; This also included monitoring for CPU and memory spikes as well as the use of page heap to capture heap corruptions that might not manifest themselves as an application crash (exception) during the fuzz session.&nbsp; What could go wrong?&nbsp; Enter <A href="http://www.microsoft.com/technet/security/bulletin/ms07-017.mspx">MS07-017</A>.&nbsp; The software responsible for invoking the vulnerable code [to parse animated cursors] made use of an exception handler to recover from pretty much any exception that could be generated and continue operating as if nothing had occurred (Read more about it at <A href="http://blogs.msdn.com/sdl/archive/2007/04/26/lessons-learned-from-the-animated-cursor-security-bug.aspx">http://blogs.msdn.com/sdl/archive/2007/04/26/lessons-learned-from-the-animated-cursor-security-bug.aspx</A>).</P>
<P>The Animated Cursor bug caused us to revisit our mini-debugger.&nbsp; Why?&nbsp; Put simply, we hadn't introduced the "bucketization" and classification mechanisms for first-chance exceptions.&nbsp; Naturally, this meant the tester was back to square one in terms of having no assistance on the labor-intensive triaging process. To deal with the "recover from anything" exception handling code we introduced the concept of classifying and bucketing "dangerous" first chance exceptions to help reduce the number of first chance cases the tester would need to triage.&nbsp; This means we look for both write access violations and read access violations on EIP.&nbsp; Additionally, we added support to continue after a first chance exception, allowing exception handlers to be called and continue and possibly proceed on to other more interesting crashes.</P>
<P>As you can see fuzz testing scales pretty well, but simplifying and scaling the triage process is not an easy task.&nbsp; Even more challenging is the integration of technology into an effective lifecycle. We're constantly working with teams within Microsoft to further advance our tools, you can learn more by viewing <A class="" href="http://research.microsoft.com/research/pubs/view.aspx?id=1333&amp;type=Technical+Report" mce_href="http://research.microsoft.com/research/pubs/view.aspx?id=1333&amp;type=Technical+Report">http://research.microsoft.com/research/pubs/view.aspx?id=1333&amp;type=Technical+Report</A> and <A class="" href="http://research.microsoft.com/Pex" mce_href="http://research.microsoft.com/Pex">http://research.microsoft.com/Pex</A>/.&nbsp; </P>
<P mce_keep="true">-Scott Lambert</P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=5016384" width="1" height="1">]]></content:encoded>
      <pubDate>Thu, 20 Sep 2007 14:52:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/chance exceptions">chance exceptions</category>
      <category domain="http://securityratty.com/tag/exceptions">exceptions</category>
      <category domain="http://securityratty.com/tag/exception handler">exception handler</category>
      <category domain="http://securityratty.com/tag/exception">exception</category>
      <category domain="http://securityratty.com/tag/divide-by-zero exception">divide-by-zero exception</category>
      <category domain="http://securityratty.com/tag/exception code">exception code</category>
      <category domain="http://securityratty.com/tag/triage process">triage process</category>
      <category domain="http://securityratty.com/tag/process">process</category>
      <category domain="http://securityratty.com/tag/first-chance exceptions">first-chance exceptions</category>
      <source url="http://blogs.msdn.com/sdl/archive/2007/09/20/fuzz-testing-at-microsoft-and-the-triage-process.aspx">Fuzz Testing at Microsoft and the Triage Process</source>
    </item>
  </channel>
</rss>
