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

<channel>
	<title>System of Systems</title>
	<atom:link href="http://systemofsystems.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://systemofsystems.wordpress.com</link>
	<description>The Official Web Log of Security Objectives Corporation</description>
	<pubDate>Thu, 24 Jul 2008 09:47:24 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>en</language>
			<item>
		<title>Updating the Updater</title>
		<link>http://systemofsystems.wordpress.com/2008/05/25/updating-the-updater/</link>
		<comments>http://systemofsystems.wordpress.com/2008/05/25/updating-the-updater/#comments</comments>
		<pubDate>Sun, 25 May 2008 15:29:14 +0000</pubDate>
		<dc:creator>Derek Callaway</dc:creator>
		
		<category><![CDATA[Author: Derek Callaway]]></category>

		<category><![CDATA[Digital Security]]></category>

		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[attacks]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[anti-virus]]></category>

		<category><![CDATA[updates]]></category>

		<category><![CDATA[hp]]></category>

		<category><![CDATA[dec]]></category>

		<category><![CDATA[2600]]></category>

		<category><![CDATA[hope]]></category>

		<category><![CDATA[mitnick]]></category>

		<category><![CDATA[tcp]]></category>

		<category><![CDATA[hijacking]]></category>

		<category><![CDATA[ssl]]></category>

		<category><![CDATA[wi-fi]]></category>

		<category><![CDATA[dns]]></category>

		<category><![CDATA[arp]]></category>

		<category><![CDATA[spoofing]]></category>

		<category><![CDATA[plaintext]]></category>

		<category><![CDATA[http]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[updater]]></category>

		<category><![CDATA[vulnerabilities]]></category>

		<guid isPermaLink="false">http://systemofsystems.wordpress.com/?p=30</guid>
		<description><![CDATA[
Attacks against security components have been fairly common on server operating systems for decades; on PC&#8217;s this wasn&#8217;t always necessary because of security models that resembled swiss cheese. Since the beginning of the 21st century, Microsoft has been working diligently to close obvious holes (for the most part.) As a result, researchers have shifted their [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="alignleft" style="float:left;border:2px solid black;margin:4px 8px;" src="http://systemofsystems.files.wordpress.com/2008/04/simpsons-updates.gif?w=192&h=176" alt="Professor John Frink Updates" width="192" height="176" /></p>
<p>Attacks against security components have been fairly common on server operating systems for decades; on PC&#8217;s this wasn&#8217;t always necessary because of security models that resembled swiss cheese. Since the beginning of the 21st century, Microsoft has been working diligently to close obvious holes (for the most part.) As a result, researchers have shifted their focus to the attack surface of security-centric code on PC&#8217;s. Case in point; in the past several years we&#8217;ve seen loads of advisories released for <a href="http://www.digitalbond.com/index.php/2008/01/07/anti-virus-rife-with-vulnerabilities/" target="_blank">vulnerabilities in anti-virus software</a>. Read the Yankee Group&#8217;s <a href="http://www.netfast.com/xq/asp/id.1164/p.5-6-1/qx/PressRelease_view.htm" target="_blank">&#8220;Fear and Loathing in Las Vegas: The Hackers Turn Pro&#8221;</a> for a more in-depth analysis of this trend. One area in particular where I feel PC protection is lacking is automated software security update mechanisms; there is a <em>lot</em> of room for improvement.</p>
<p><a href="http://h71000.www7.hp.com/openvms/30th/index.html" target="_blank">According to Hewlett-Packard</a>, Digital Equipment Corporation was the first in the industry to perform patch delivery in 1983. Prior to this, updates were commonly delivered on tape by private courier. At one of 2600&#8217;s <a href="http://www.hope.net" target="_blank">HOPE</a> conferences, <a href="http://www.kevinmitnick.com" target="_blank">Kevin Mitnick</a> spoke about an analog attack he had used to compromise this process during the social engineering panel. The gist of it was that he wore a UPS uniform (procured from a costume store) and delivered the &#8220;update&#8221; tape to his mark with a login trojan on it. Later, Mitnick became known for using SYN floods and TCP hijacking against <a href="http://www.takedown.com/bio/tsutomu.html" target="_blank">Tsutomo Shimomura</a>. Some sources even refer to this sort of digital man-in-the-middle as &#8220;<a href="http://safari.oreilly.com/0735708681/ch01lev1sec1" target="_blank">The Mitnick Attack</a>.&#8221;<span style="font-family:Arial,Helvetica,sans-serif;"><span style="font-size:x-small;"> </span></span></p>
<p>Many software update components don&#8217;t use <a href="http://en.wikipedia.org/wiki/Public_key_infrastructure">public key infrastructure</a> to cryptographically verify the validity of the update server (i.e. SSL) or the updated package (i.e. digital signature.) This is a problem. Impersonating the software update server is usually trivial. Wi-Fi access point impersonation, DNS cache poisoning, ARP spoofing, session hijacking, and compromising the legitimate update server are all possibilities.</p>
<p>Some applications&#8211;I&#8217;m not going to name any names&#8211;rely on HTTP (note that I didn&#8217;t say HTTPS) for downloading packages after checking for updates instead of using a separate file transfer manager program or internal update component. This is much easier to reverse engineer than a custom update solution. Sometimes the attacker can allow the real update server to carry out most of the process and simply shoehorn their malcode into the update session(s) after initial preconditions are met.</p>
<p>SSL won&#8217;t save the day either unless it&#8217;s implemented properly. I&#8217;ve seen plaintext updaters with digital signatures that are safer than some HTTPS updaters. Apple Software Update is a good example of an effective plaintext digital signature approach. See <a href="http://www.security-objectives.com/advisories/SECOBJADV-2008-01.txt" target="_blank">SECOBJADV-2008-01</a> (CVE-2008-3249) for a description of a software updater with an erroneous SSL implementation.</p>
<p>The issue is further complicated because software updaters themselves need to be updated in order to resolve such vulnerabilities. Typically this requires a major architectural modification. What&#8217;s worse is that breaking the updater would force users to manually update. Hoyvin-Glayvin!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/systemofsystems.wordpress.com/30/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/systemofsystems.wordpress.com/30/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/systemofsystems.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/systemofsystems.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/systemofsystems.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/systemofsystems.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/systemofsystems.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/systemofsystems.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/systemofsystems.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/systemofsystems.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/systemofsystems.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/systemofsystems.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=systemofsystems.wordpress.com&blog=1852581&post=30&subd=systemofsystems&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://systemofsystems.wordpress.com/2008/05/25/updating-the-updater/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/systemofsystems-128.jpg" medium="image">
			<media:title type="html">Derek Callaway</media:title>
		</media:content>

		<media:content url="http://systemofsystems.files.wordpress.com/2008/04/simpsons-updates.gif" medium="image">
			<media:title type="html">Professor John Frink Updates</media:title>
		</media:content>
	</item>
		<item>
		<title>Ignorance is Bliss</title>
		<link>http://systemofsystems.wordpress.com/2008/04/03/ignorance-is-bliss/</link>
		<comments>http://systemofsystems.wordpress.com/2008/04/03/ignorance-is-bliss/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 04:14:29 +0000</pubDate>
		<dc:creator>Derek Callaway</dc:creator>
		
		<category><![CDATA[Author: Derek Callaway]]></category>

		<category><![CDATA[Digital Security]]></category>

		<category><![CDATA[Exploits]]></category>

		<category><![CDATA[Security Industry]]></category>

		<category><![CDATA[Software Assurance]]></category>

		<category><![CDATA[patches]]></category>

		<category><![CDATA[cansecwest]]></category>

		<category><![CDATA[pwn2own]]></category>

		<category><![CDATA[0day]]></category>

		<category><![CDATA[vista]]></category>

		<category><![CDATA[sp1]]></category>

		<category><![CDATA[bugs]]></category>

		<category><![CDATA[time]]></category>

		<category><![CDATA[information]]></category>

		<category><![CDATA[april]]></category>

		<category><![CDATA[laptop]]></category>

		<category><![CDATA[fearwall]]></category>

		<category><![CDATA[autograph]]></category>

		<category><![CDATA[auction]]></category>

		<category><![CDATA[broker]]></category>

		<category><![CDATA[service]]></category>

		<category><![CDATA[underground]]></category>

		<category><![CDATA[stock]]></category>

		<category><![CDATA[disclosure]]></category>

		<guid isPermaLink="false">http://systemofsystems.wordpress.com/?p=28</guid>
		<description><![CDATA[ When you think about it, time really is all we have. It&#8217;s what you have at your disposal, to do anything and everything. It seems that we&#8217;re better off not knowing when it comes to security&#8211;for our own good. Can it really be so utilitarian?
To anybody out there writing exploits: make sure you&#8217;re doing [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="Ignorance is Bliss" rel="attachment wp-att-29" href="http://systemofsystems.wordpress.com/2008/04/03/ignorance-is-bliss/ignorance-is-bliss/"><img src="http://systemofsystems.files.wordpress.com/2008/04/ignoranceisbliss.jpg?w=168&h=144" border="2" alt="Ignorance is Bliss" hspace="8" vspace="4" width="168" height="144" align="left" /></a> When you think about it, time really is all we have. It&#8217;s what you have at your disposal, to do anything and everything. It seems that we&#8217;re better off not knowing when it comes to security&#8211;for our own good. Can it really be so utilitarian?</p>
<p><strong>To anybody out there writing exploits:</strong> make sure you&#8217;re doing it just for fun. Currently, there are no outlets for any financial gain that will accurately measure your time investment or fairly compensate your hard work.</p>
<p>Security Objectives&#8217; own Shane Macaulay <a href="http://www.theregister.co.uk/2008/03/29/ubuntu_left_standing/" target="_blank">&#8220;owned&#8221;</a> Vista SP1 in the PWN2OWN contest at <a href="http://www.cansecwest.com" target="_blank">CanSecWest</a> 2008 by exploiting a bug in Adobe Flash. As a result of the contest&#8217;s categorization of the bug as third-party, the exploit was grossly under-appraised (especially when considering cross-platform targets and the fact that it would work well into the future with Vista&#8217;s new Service Pack.) Sure, it technically was a bug in a third-party application, but this particular third-party application happens to be installed on just about every Internet-enabled PC. <a href="http://www.adobe.com/products/player_census/flashplayer/" target="_blank">According to Adobe,</a> &#8220;Adobe® Flash® Player is the world&#8217;s most pervasive software platform, used by over 2 million professionals and reaching over 98% of Internet-enabled desktops in mature markets as well as a wide range of devices.&#8221;</p>
<p>Even if Shane was unfairly compensated, <em>it doesn&#8217;t matter</em> because at least he used &#8220;responsible disclosure&#8221; &#8212; <em>or does it</em>? I highly doubt that the people in charge of the companies writing buggy software and brokering bug information have any idea about the amount of work and skill that goes into discovering an exploitable bug, let alone writing a proof-of-concept for it. As it stands, software companies are setting themselves up for a black market in digital weapons trading of unprecedented proportions.</p>
<p>Here&#8217;s something else to think about.. I expect Adobe to patch this one rather quickly given all the publicity. How long does it take for a vendor to fix a given vulnerability when it is reported to them directly? Even some of the brokered <a href="http://zerodayinitiative.com/advisories/upcoming/" target="_blank">&#8220;upcoming advisories&#8221;</a> on 3Com&#8217;s ZDI site are many months or even years stale. This &#8220;patchtile dysfunction&#8221; will increase the value of a 0-day exploit exponentially.</p>
<p>Time is money and to make up for lost time, Mr. Macaulay <a href="http://www.infoworld.com/article/08/04/02/Why-the-Vista-hacker-turned-to-eBay_1.html" target="_blank">decided to sell the laptop he had won on eBay</a>. An innocent bystander at the contest dubbed this decision &#8220;from pwn to pawn.&#8221; So why not? Laptops get sold on <a href="http://www.ebay.com" target="_blank">eBay</a> everyday&#8211;but not this one. It wasn&#8217;t long before eBay pulled Mr. Macaulay&#8217;s item from auction on the first of April, ostensibly as an April Fool&#8217;s shenanigan. This came as a surprise to me. Things to consider here:</p>
<ul>
<li>The laptop may or may not have had forensic evidence of the controlled attack that occurred during the contest.</li>
<li>Even so, Mr. Macaulay is a responsible discloser and would not have shipped the laptop until the bug was patched.</li>
<li><a href="http://www.linkedin.com/in/shanemacaulay" target="_blank">Mr. Macaulay&#8217;s</a> and <a href="http://www.linkedin.com/in/asotirov" target="_blank">Mr. Sotirov&#8217;s</a> autographs should have increased the laptop value, regardless.</li>
</ul>
<p>This incident, in a way, reminded me of <a href="http://www.theregister.co.uk/2005/12/10/ebay_pulls_excel_vulnerability_auction/" target="_blank">eBay&#8217;s great fearwall debacle</a> from a few years ago (<a href="http://nvd.nist.gov/nvd.cfm?cvename=CVE-2005-4131" target="_blank">CVE-2005-4131</a>.) In that case, there were several key differences: an information broker such as ZDI was not involved, a pseudonym was being used, the code statements where the memory corruption occurred were disclosed, and no computer hardware was for sale. Nevertheless, I respect eBay&#8217;s decision to discontinue the auction as this is obviously a very controversial issue.</p>
<p>Brokering information? How can you do it? From experience, the idea of using an escrow service and 3rd party verification is largely ineffective. It would appear that <a href="http://www.zerodayinitiative.com" target="_blank">ZDI</a> is the only show in town. Of course there&#8217;s <a href="http://www.wslabi.com" target="_blank">that auction service</a>, but you have to send them your exploit first so how does that work? It appears that they&#8217;re still trying to do business by the way, despite alleged legal troubles. I&#8217;m subscribed to their mailing list and they send out an e-mail every time new information goes up for auction; they put up a dozen or so new exploits last week but it would appear that few if any were sold. Where do we go from here? Is brokering information even possible?</p>
<p>Imagine for a moment a scenario where a dozen or so exploits of critical severity related to a single software company are posted to <a href="http://www.grok.org.uk/full-disclosure/" target="_blank">Full Disclosure</a> with rumors of many more circulating in the underground and exploits actively being carried out in the wild. Now imagine shareholders shorting that company&#8217;s stock. I suppose that the vulnerability information might be more realistically valued in a situation such as this. Anyone have any other ideas?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/systemofsystems.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/systemofsystems.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/systemofsystems.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/systemofsystems.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/systemofsystems.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/systemofsystems.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/systemofsystems.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/systemofsystems.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/systemofsystems.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/systemofsystems.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/systemofsystems.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/systemofsystems.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=systemofsystems.wordpress.com&blog=1852581&post=28&subd=systemofsystems&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://systemofsystems.wordpress.com/2008/04/03/ignorance-is-bliss/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/systemofsystems-128.jpg" medium="image">
			<media:title type="html">Derek Callaway</media:title>
		</media:content>

		<media:content url="http://systemofsystems.files.wordpress.com/2008/04/ignoranceisbliss.jpg" medium="image">
			<media:title type="html">Ignorance is Bliss</media:title>
		</media:content>
	</item>
		<item>
		<title>Good grief!</title>
		<link>http://systemofsystems.wordpress.com/2008/03/18/good-grief/</link>
		<comments>http://systemofsystems.wordpress.com/2008/03/18/good-grief/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 11:27:57 +0000</pubDate>
		<dc:creator>shanemacaulay</dc:creator>
		
		<category><![CDATA[Author: Shane Macaulay]]></category>

		<category><![CDATA[Digital Security]]></category>

		<category><![CDATA[Exploits]]></category>

		<category><![CDATA[Misceallaneous]]></category>

		<category><![CDATA[Philosophy]]></category>

		<category><![CDATA[Reverse Engineering]]></category>

		<category><![CDATA[Software Assurance]]></category>

		<category><![CDATA[boston]]></category>

		<category><![CDATA[china]]></category>

		<category><![CDATA[diff]]></category>

		<category><![CDATA[malware]]></category>

		<category><![CDATA[signature]]></category>

		<category><![CDATA[sophistication]]></category>

		<category><![CDATA[source]]></category>

		<category><![CDATA[virii]]></category>

		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://systemofsystems.wordpress.com/?p=24</guid>
		<description><![CDATA[Having just caught up on some of the conference &#8220;Source Boston&#8221;, I can&#8217;t help but call out some of the musings of Andrew Jaquith. Something of a more technical abstract can be read at the code project&#8217;s article by Jeffrey Walton (pay special attention to Robin Hood and Friar Tuck).  If anybody doubt&#8217;s the [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="good-grief-charlie-brown1.jpg" href="http://systemofsystems.files.wordpress.com/2008/03/good-grief-charlie-brown1.jpg"><img src="http://systemofsystems.files.wordpress.com/2008/03/good-grief-charlie-brown1.jpg?w=200&h=173" border="2" alt="Charlie Brown Good Grief" hspace="8" vspace="4" width="200" height="173" align="left" /></a>Having just caught up on some of the conference &#8220;Source Boston&#8221;, I can&#8217;t help but call out some of the musings of Andrew Jaquith. Something of a more technical abstract can be read at the code project&#8217;s article by Jeffrey Walton (pay special attention to <span style="color:black;">Robin Hood and Friar Tuck</span>).  If anybody doubt&#8217;s the current trend of sophistication in malware, I&#8217;m sure it is somebody who is currently penetrated. I&#8217;ve had the opportunity to devote specific analysis on occasion over the years to MAL code and its impact on the enterprise. I know FOR SURE the level of sophistication is on the rise.  One thing I had to deal with recently, the extent of capability afforded by most desktop OS&#8217;s being so advanced, the majority of functionality desired by MAL code is pre-deployed. Unfortunately paving the way for configuration viruses and their ability to remain undetected in that all they are is an elaborate set of configuration settings.  You can imagine, a configuration virus has the entire ability of your OS at its disposal, any VPN/IPSEC, self-(UN) healing, remote administration, etc… The issue is then, how do you determine if that configuration is of MAL intent, it&#8217;s surely there for a reason and valid in many deployments. The harm is only when connected to a larger entity/botnet that harm begins to affect a host.  Some random points to add hard learned through experience;</p>
<ul>
<li>
<div>Use a native execution environment</div>
<ul>
<li>
<div>VMWare, prevents the load or typical operation of many MAL code variants</div>
<ul>
<li>
<div>I guess VM vendors have a big win here for a while, until the majority of targets are VM hosts.</div>
</li>
</ul>
</li>
</ul>
</li>
<li>
<div>Have an easily duplicated disk strategy</div>
<ul>
<li>MAC systems are great for forensics, target disk mode and ubiquitous fire-wire allows for live memory dumps and ease of off-line disk analysis (without a drive carrier).</li>
<li>
<div>I&#8217;m planning a hash-tree based system to provision arbitrarily sized block checksums of clean/good files, useful of diff&#8217;ing out the noise for arbitrary medium (memory, disk, flash).</div>
</li>
</ul>
</li>
<li>
<div>Install a Chinese translator locally</div>
<ul>
<li>
<div>As you browse Chinese hack sites, (I think all Russian site&#8217;s are so quiet these days due to the fact that they are financially driven, while Chinese are currently motivated by nationalistic motivators), you need to translate locally. Using a .com translation service is detected and false content is rendered, translate locally to avoid that problem.</div>
<ul>
<li>Also, keep notes on lingo.. there are no translation-hack dictionaries yet. (I guess code pigeon is referring to a homing pigeon, naturally horse/wood code is a Trojan).</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Unfortunately part of the attacker advantage is the relatively un-coordinated fashion defenders operate, not being able to trust or vet your allies to compare notes can be a real pain.  One interesting aspect of a MAL system recently analyzed was the fact that that it had no persistent signature. It&#8217;s net force mobility so complete, that the totality of its functionality could shift boot-to-boot, so long as it compromised a boot-up driver it would rise again.  The exalted C. Brown put it best, &#8220;Good grief!&#8221;  <a href="http://www.codeproject.com/KB/cpp/VirusProtect.aspx" target="_blank">http://www.codeproject.com/KB/cpp/VirusProtect.aspx</a> <a href="http://www.sourceboston.com/blog/?p=25" target="_blank">http://www.sourceboston.com/blog/?p=25</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/systemofsystems.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/systemofsystems.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/systemofsystems.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/systemofsystems.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/systemofsystems.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/systemofsystems.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/systemofsystems.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/systemofsystems.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/systemofsystems.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/systemofsystems.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/systemofsystems.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/systemofsystems.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=systemofsystems.wordpress.com&blog=1852581&post=24&subd=systemofsystems&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://systemofsystems.wordpress.com/2008/03/18/good-grief/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/shanemacaulay-128.jpg" medium="image">
			<media:title type="html">shanemacaulay</media:title>
		</media:content>

		<media:content url="http://systemofsystems.files.wordpress.com/2008/03/good-grief-charlie-brown1.jpg" medium="image">
			<media:title type="html">Charlie Brown Good Grief</media:title>
		</media:content>
	</item>
		<item>
		<title>Dimes</title>
		<link>http://systemofsystems.wordpress.com/2008/02/12/dime%e2%80%99s/</link>
		<comments>http://systemofsystems.wordpress.com/2008/02/12/dime%e2%80%99s/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 21:40:37 +0000</pubDate>
		<dc:creator>shanemacaulay</dc:creator>
		
		<category><![CDATA[Author: Shane Macaulay]]></category>

		<category><![CDATA[Exploits]]></category>

		<category><![CDATA[Security Industry]]></category>

		<category><![CDATA[Software Assurance]]></category>

		<category><![CDATA[Visualizations]]></category>

		<category><![CDATA[architecture]]></category>

		<category><![CDATA[assessment]]></category>

		<category><![CDATA[automated]]></category>

		<category><![CDATA[binary]]></category>

		<category><![CDATA[dime]]></category>

		<category><![CDATA[exploit]]></category>

		<category><![CDATA[metasploit]]></category>

		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[regression]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[vendors]]></category>

		<guid isPermaLink="false">http://systemofsystems.wordpress.com/?p=22</guid>
		<description><![CDATA[Microsoft Security Bulletin
MS08-010 – Critical CVE-2008-0076
None of the flaws I&#8217;ve ever found on Microsoft platforms have ever been public (that is, they have all been derived from internal projects) and it&#8217;s nice to see at least in this round of fixes that my bug scored a perfect 10.0 (a dime) on the bulletin.  I [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h2><a title="2005_dime.jpg" href="http://systemofsystems.files.wordpress.com/2008/02/2005_dime.jpg"><img src="http://systemofsystems.files.wordpress.com/2008/02/2005_dime.thumbnail.jpg" border="2" alt="2005_dime.jpg" hspace="8" vspace="4" align="left" /></a>Microsoft Security Bulletin</h2>
<h3>MS08-010 – Critical CVE-2008-0076</h3>
<p>None of the flaws I&#8217;ve ever found on Microsoft platforms have ever been public (that is, they have all been derived from internal projects) and it&#8217;s nice to see at least in this round of fixes that my bug scored a perfect 10.0 (a dime) on the bulletin.  I actually did not test as many platforms and configurations as Microsoft. For those of you that are unaware, bug regression and the overall triage process can become quite intensive.  I knew that this vulnerability/flaw/bug/exploit/whatever had wide reaching appeal, fairly easy to see from the fact that all architectures and versions as far back as possible are marked critical.</p>
<p>As with all doings in the security space, walking a line between disclosure and tight-lipped mums, the word practice is not easy.  So, what can be said here?  Nothing? Something?  I guess I have to write something, the marketoid&#8217;s wouldn&#8217;t be happy if I did not.</p>
<p>Before I digress into any technical discussion, I will take this opportunity to say something about the exploit sales &#8220;industry?&#8221;.  In this world, everything and everybody has their place, that said, any individual that thinks exploits are worth any money, has another thing coming.  Look at it this way, if you&#8217;re in the business of purchasing information (exploits), by definition you are unaware of the value of that information thereby inherently you are in a position to devalue the time and emotional investment into the derivation of that work.  So this means, you&#8217;re never going to get back enough cash to make up for your time, EVER!!  Where I do see some value in exploit brokers, is exclusively in the capacity of having them take the burden of dealing with uninformed software vendors (the Microsoft/IBM/others process is fairly straight forward).</p>
<p>Now that that&#8217;s all done with, I don&#8217;t really want to talk about the exploit, at least until some poorly constructed version winds up in metasploit.  I will say though that the bulletin is correct in its description and synopsis.</p>
<p>The fact that there are no mitigating factors or workarounds possible, gives me some incentive and reassurance that the tools and methodologies that we&#8217;re building into our product offering works.</p>
<p>We&#8217;re ramping up development for a big push this quarter and will be uploading some more screenshots and related minutia in the coming months.</p>
<p>Our product in brief is an automated tool for native application flaw finding.  It can assess, at runtime in a dynamic way, the integrity of a given binary application.  This process then produces test cases and reproductions of what is necessary to trigger the flaw for a developer (this way, reducing regression rates due to bug fixes as it&#8217;s much easier to fix something when you can interact with it as opposed to a simple warning message).</p>
<p>We&#8217;re working on a management interface (on top of the technical one), that will also enable the lay person to identify architectural problems in arbitrary software also.  This is actually quite simple (with the support of our engine), in essence, a landscape or tomography view is laid out before the user, with associated peaks and valleys, this then changes over time (4D), and represents the surface area of your application binary&#8217;s response to input.  That is, a dynamic environment that is rooted by a system of systems methodology.  What becomes apparent is that (if you are in the capacity to fix these issues yourself), as time goes on, and you assign various resources (people) to fix the peaks and turn them into valley&#8217;s.  The rate at which you push down the peaks (bugs), across the application is not constant, some issues are harder to fix than others and persist.  This way, a self-relative understanding of where problem area of code exist poignantly reveal themselves as architectural flaws and appropriate steps can be taken to drive the business case that will support a rewrite.</p>
<p>Whew, that&#8217;s a mouthful.  Needless to say, we&#8217;re working to create the best platform around for software sovereignty.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/systemofsystems.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/systemofsystems.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/systemofsystems.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/systemofsystems.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/systemofsystems.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/systemofsystems.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/systemofsystems.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/systemofsystems.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/systemofsystems.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/systemofsystems.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/systemofsystems.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/systemofsystems.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=systemofsystems.wordpress.com&blog=1852581&post=22&subd=systemofsystems&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://systemofsystems.wordpress.com/2008/02/12/dime%e2%80%99s/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/shanemacaulay-128.jpg" medium="image">
			<media:title type="html">shanemacaulay</media:title>
		</media:content>

		<media:content url="http://systemofsystems.files.wordpress.com/2008/02/2005_dime.thumbnail.jpg" medium="image">
			<media:title type="html">2005_dime.jpg</media:title>
		</media:content>
	</item>
		<item>
		<title>Reducing the Cost of Software Regression</title>
		<link>http://systemofsystems.wordpress.com/2008/01/24/reducing-the-cost-of-software-regression/</link>
		<comments>http://systemofsystems.wordpress.com/2008/01/24/reducing-the-cost-of-software-regression/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 18:57:53 +0000</pubDate>
		<dc:creator>Derek Callaway</dc:creator>
		
		<category><![CDATA[Author: Derek Callaway]]></category>

		<category><![CDATA[Digital Security]]></category>

		<category><![CDATA[Misceallaneous]]></category>

		<category><![CDATA[Software Assurance]]></category>

		<category><![CDATA[Systems Theory]]></category>

		<category><![CDATA[buggy software]]></category>

		<category><![CDATA[patches]]></category>

		<category><![CDATA[productivity]]></category>

		<category><![CDATA[project management]]></category>

		<category><![CDATA[Rational Rose]]></category>

		<category><![CDATA[regression testing]]></category>

		<category><![CDATA[threat modeling]]></category>

		<category><![CDATA[UML]]></category>

		<category><![CDATA[unified process]]></category>

		<guid isPermaLink="false">http://systemofsystems.wordpress.com/2008/01/24/reducing-the-cost-of-software-regression/</guid>
		<description><![CDATA[A widely held notion among computer scientists is that 80% of a programmer&#8217;s time is occupied maintaining code while the other 20% is spent actually writing the software. This inefficient allocation of effort was the subject of a master&#8217;s thesis at the Lund Institute of Technology called &#8220;Formalizing Use Cases with Message Sequence Charts.&#8221; According [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://systemofsystems.files.wordpress.com/2008/01/timemachine.thumbnail.jpg" border="2" alt="H.G. Wells Time Machine" hspace="8" vspace="4" align="left" />A widely held notion among computer scientists is that 80% of a programmer&#8217;s time is occupied maintaining code while the other 20% is spent actually writing the software. This inefficient allocation of effort was the subject of a master&#8217;s thesis at the <a href="http://www.es.lth.se" target="_blank">Lund Institute of Technology</a> called &#8220;Formalizing Use Cases with Message Sequence Charts.&#8221; According to a 2002 <a href="http://www.nist.gov" target="_blank">NIST</a> study entitled  &#8220;<a href="http://www.nist.gov/director/prog-ofc/report02-3.pdf" target="_blank">The Economic Impacts of Inadequate Infrastructure for Software Testing</a>&#8220;, the annual cost of testing and fixing buggy software in the U.S. is estimated to be between $22.2 and $59.5 billion. What are the root causes of this costly inefficiency?</p>
<p>Unfortunately, corporate culture is naturally a contributing factor for this problem. Companies that produce commercial software are in business to make a profit first and foremost. Release schedules are expedited so the program can be released to market quickly and copies are sold sooner rather than later&#8211;making code work as expected for baseline use cases takes priority over <a href="http://en.wikipedia.org/wiki/Regression_testing" target="_blank">regression testing</a>. Any aspect of the software development process that does not appear to be fully in-line with company interests is considered a waste. Usually, far too much emphasis is put on project progress. The overall progress is only perceived progress because unforeseen problems will inevitably pop-up later on. In the long run, bugs end up costing much more to fix down the road and the entire business apparatus pays the cost of maintenance. Some secondary losses are customer support costs, internal communications and a negative impact on the company&#8217;s public image all of which can be preempted by proper preliminary work.</p>
<p>Since there&#8217;s so much emphasis on speedy release code writing starts as soon as possible, often with disregard to planning ahead beforehand and ensuring quality afterwards. Furthermore, programmers tend to implement items that they are most familiar with first because it seems like the easy way to do things. In most cases, the most difficult parts of a task are best handled first, not last. Handling the difficult items first allows more time and attention to the important stuff; it also allows the developer to recognize how the simpler pieces will fit into the grand scheme of things.</p>
<p>Planning ahead is an essential during the inception phase of a software project. Appropriately analyzing the problem and carefully designing the solutions will minimize the accumulation of technical hardships in the future. In fact, by taking advantage of the popular <a href="http://en.wikipedia.org/wiki/Unified_Process" target="_blank">Unified Process</a> for software development and diagramming specifications in <a href="http://www.uml.org/" target="_blank">UML</a> the need for writing code almost disappears. UML CASE tools such as IBM&#8217;s <a href="http://www-306.ibm.com/software/awdtools/developer/rose/" target="_blank">Rational Rose</a> will translate UML diagrams into program source code (typically an object-oriented language such as C++ or Java.) Of course creating detailed requirements and specifications is still extremely helpful even if UML is not practical for the task at hand. Writing code early on gives the illusion that progress is being made but in reality it is a recipe for disaster. No code should be written until all implementation issues have been resolved.</p>
<p>Threat modeling and secure design principles need to be key focal points during the initial phases of a software project. After the code has been written security issues will also comprise a large chunk of ongoing maintenance work. When software developers handle security fixes they have to stop what they&#8217;re doing, modify or maybe even rewrite the offending code, test the new code, report their progress, etc. Since developers are rarely security specialists, they tend to write fixes in such a way that the security hole is not closed completely. As a result, the vulnerability persists and leads to more code rewriting. This cycle of stopping, rewriting, and continuing severely detracts from productivity in programming. The majority of a developer&#8217;s time should be spent doing what they do best&#8211;adding new features to software.</p>
<p>Removing developers from the patch creation process significantly increases their utilization. Dedicated security experts are most fit to create patches and conduct regression testing. A <a href="http://en.wikipedia.org/wiki/Dynamic_program_analysis" target="_blank">dynamic program analysis</a> tool accelerates the regression testing process. Building security in by default from the ground-up will minimize software bugs along with subsequent patching and testing. In conclusion, proper planning, resource allocation, and testing procedures can greatly reduce the costs associated with software regression.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/systemofsystems.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/systemofsystems.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/systemofsystems.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/systemofsystems.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/systemofsystems.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/systemofsystems.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/systemofsystems.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/systemofsystems.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/systemofsystems.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/systemofsystems.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/systemofsystems.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/systemofsystems.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=systemofsystems.wordpress.com&blog=1852581&post=19&subd=systemofsystems&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://systemofsystems.wordpress.com/2008/01/24/reducing-the-cost-of-software-regression/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/systemofsystems-128.jpg" medium="image">
			<media:title type="html">Derek Callaway</media:title>
		</media:content>

		<media:content url="http://systemofsystems.files.wordpress.com/2008/01/timemachine.thumbnail.jpg" medium="image">
			<media:title type="html">H.G. Wells Time Machine</media:title>
		</media:content>
	</item>
		<item>
		<title>Combinatoric Input Set Generation</title>
		<link>http://systemofsystems.wordpress.com/2007/12/07/combinatoric-input-set-generation/</link>
		<comments>http://systemofsystems.wordpress.com/2007/12/07/combinatoric-input-set-generation/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 06:50:38 +0000</pubDate>
		<dc:creator>Derek Callaway</dc:creator>
		
		<category><![CDATA[Author: Derek Callaway]]></category>

		<category><![CDATA[Digital Security]]></category>

		<category><![CDATA[Discrete Mathematics]]></category>

		<category><![CDATA[Philosophy]]></category>

		<category><![CDATA[Software Assurance]]></category>

		<category><![CDATA[Systems Theory]]></category>

		<category><![CDATA[analytic geometry]]></category>

		<category><![CDATA[attack strings]]></category>

		<category><![CDATA[cardinalities]]></category>

		<category><![CDATA[combinatorial]]></category>

		<category><![CDATA[complexity]]></category>

		<category><![CDATA[determinism]]></category>

		<category><![CDATA[DNA computing]]></category>

		<category><![CDATA[generating test cases]]></category>

		<category><![CDATA[input values]]></category>

		<category><![CDATA[permutation]]></category>

		<category><![CDATA[set theory]]></category>

		<guid isPermaLink="false">http://systemofsystems.wordpress.com/2007/12/07/combinatoric-input-set-generation/</guid>
		<description><![CDATA[I&#8217;ve been studying combinatoric methods of generating test cases for quite some time now. Most publicly available fuzz testing packages implement fairly crude techniques for passing input values to applications&#8211;although recent research is becoming more creative in attacking the issue because of insufficient path coverage metrics by orthodox methods. Generating input sets combinatorially is a [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://systemofsystems.files.wordpress.com/2007/11/generator.jpg?w=172&h=132" border="2" alt="Generator" hspace="8" vspace="4" width="172" height="132" align="left" />I&#8217;ve been studying combinatoric methods of generating test cases for quite some time now. Most publicly available fuzz testing packages implement fairly crude techniques for passing input values to applications&#8211;although recent research is becoming more creative in attacking the issue because of insufficient path coverage metrics by orthodox methods. Generating input sets combinatorially is a much more holistic approach to the black-box software testing paradigm.</p>
<p>In this article, I&#8217;ll be providing a brief overview of how set operations taken from the field of discrete mathematics can be applied to fuzz testing. Explicit definitions of set operations can be found elsewhere and links to Wikipedia are provided where appropriate. Brief explanations on set theory will be given here but I will mainly be focusing on how it relates to software testing.</p>
<p>Let&#8217;s start off with<a href="http://en.wikipedia.org/wiki/Permutations"> permutations</a>; just about any computer science bachelor is familiar with these. They&#8217;re the possible orderings of a <a href="http://en.wikipedia.org/wiki/Sequence">sequence.</a> A &#8220;sequence&#8221; may consist of members that are non-unique (which is in contrast to a <a href="http://en.wikipedia.org/wiki/Set">&#8220;set&#8221;</a> whose members are unordered and unique.) For example, the permutations of sequence <em><strong>{1,2,3}</strong></em> are:</p>
<p><em><strong>{{1,2,3},{1,3,2}, {2,1,3},{2,3,1},{3,1,2},{3,2,1}}</strong></em></p>
<p>Easy enough. Permutations can be used when testing protocols where the order of commands is significant. For example, if testing the FTP protocol with a sequence of <em><strong>{&#8221;STAT .&#8221;,&#8221;CWD ..&#8221;,&#8221;MKD foo&#8221;} </strong>- </em>depending on the order in which the commands are executed, the client could be retrieving the status for <span style="text-decoration:underline;">and/or</span> making the &#8220;foo&#8221; directory in the parent/child directories.</p>
<p>Sets of subsets (also known as <a href="http://en.wikipedia.org/wiki/Combinations">combinations</a>) are also quite useful and are expressed using what&#8217;s called <a href="http://en.wikipedia.org/wiki/Choose">&#8220;n-choose-r&#8221;</a> notation because r elements are being chosen from a set that has n elements in total (the set is said to have <a href="http://en.wikipedia.org/wiki/Cardinality">cardinality</a> n.)  Combinations can be utilized to enumerate command-line argument possibilities since the order of argv values is usually irrelevant. Say an executable has the command line flags &#8220;-n&#8221;, &#8220;-i&#8221;, &#8220;-q&#8221;, and &#8220;-v&#8221;. We want to generate all subsets of cardinality 2 (4-choose-2.) The answer is:</p>
<p><em><strong>{{&#8221;-n&#8221;,&#8221;-i&#8221;},{&#8221;-n&#8221;,&#8221;-q&#8221;},{&#8221;-n&#8221;,&#8221;-v&#8221;},{&#8221;-i&#8221;,&#8221;-q&#8221;},</strong></em></p>
<p><em><strong>{&#8221;-i&#8221;,&#8221;-v&#8221;},{&#8221;-q&#8221;,&#8221;-v&#8221;}}</strong></em></p>
<p>r-permutations are similar to subsets in that a given amount of objects are chosen from the list but since permutations are represented as sequences the order of  the elements matters. Using the same baseline sequence as the previously described n-permutations, the 2-permutations of <em><strong>{1,2,3} </strong></em>are as follows:</p>
<p><strong><em> {{1,2},{2,1},{1,3},{3,1},{2,3},{3,2}}</em></strong></p>
<p>Again, observe how these permutations would affect the logic of network protocol commands processed by a server daemon..</p>
<p>Moving on, a <a href="http://en.wikipedia.org/wiki/Power_set">power set</a> is the set of all subsets including the empty set. Using the example above, the power set of <em><strong>{&#8221;-n&#8221;,&#8221;-i&#8221;,&#8221;-q&#8221;,&#8221;-v&#8221;}</strong></em> looks like this:</p>
<p><strong><em>{{},{&#8221;-n&#8221;},{&#8221;-i&#8221;},{&#8221;-q&#8221;},{&#8221;-v&#8221;},{&#8221;-n&#8221;,&#8221;-i&#8221;},{&#8221;-n&#8221;,&#8221;-q&#8221;},</em></strong></p>
<p><strong><em>{&#8221;-n&#8221;,&#8221;-v&#8221;},{&#8221;-i&#8221;,&#8221;-q&#8221;}{&#8221;-i&#8221;,&#8221;-v&#8221;},{&#8221;-q&#8221;,&#8221;-v&#8221;},</em></strong></p>
<p><strong><em>{&#8221;-n&#8221;,&#8221;-i&#8221;,&#8221;-q&#8221;},{&#8221;-n&#8221;,&#8221;-q&#8221;,&#8221;-v&#8221;},{&#8221;-n&#8221;,&#8221;-i&#8221;,&#8221;-v&#8221;},</em></strong></p>
<p><strong><em>{&#8221;-i&#8221;,&#8221;-q&#8221;,&#8221;-v&#8221;},{&#8221;-n&#8221;,&#8221;-i&#8221;,&#8221;-q&#8221;,&#8221;-v&#8221;}}</em></strong></p>
<p>The accuracy of the power set calculation can be checked because power sets have a cardinality of 2**n. In this case, 2**4=16. Other set operations can be checked with similar formulas.</p>
<p>Taking it another step further, consider giving that executable whose command line flags are being generated environment variable input as well. Suppose that the power set for the command line options is:</p>
<p><strong><em>{{},{&#8221;-n&#8221;},{&#8221;-i&#8221;},{&#8221;-n&#8221;,&#8221;-i&#8221;}}</em></strong></p>
<p>and  the power set for the environment variable values is:</p>
<p><strong><em> {{},{&#8221;TERM=vt100&#8243;},{&#8221;TERM=%n%n%n&#8221;}},{&#8221;LOGIN=root&#8221;},</em></strong></p>
<p><strong><em>{&#8221;LOGIN=%n%n%n&#8221;},{&#8221;TERM=vt100&#8243;,&#8221;LOGIN=root&#8221;},</em></strong></p>
<p><strong><em>{&#8221;TERM=%n%n%n&#8221;,&#8221;LOGIN=root&#8221;},</em></strong></p>
<p><strong><em>{&#8221;TERM=%n%n%n&#8221;,&#8221;LOGIN=%n%n%n&#8221;}}</em></strong></p>
<p>The environment variable names and values were paired up using a set operation known as the <a href="http://en.wikipedia.org/wiki/Cartesian_product">Cartesian product</a>. i.e. the Cartesian product of the sets <strong><em>{{&#8221;TERM&#8221;}} </em></strong>and <strong><em>{&#8221;vt100&#8243;,&#8221;%n%n%n&#8221;}</em></strong> is:</p>
<p><strong><em>{{&#8221;TERM&#8221;,&#8221;vt100&#8243;},{&#8221;TERM&#8221;,&#8221;%n%n%n&#8221;}}</em></strong></p>
<p>Taking further advantage of Cartesian products, all possible pairings of command line flags and environment values are generated. I won&#8217;t be typing the whole thing out here as it is excruciatingly long but it would start out something like this:</p>
<p><strong><em> {{{},{}},{{},&#8221;TERM=vt100&#8243;},{{},&#8221;TERM=%n%n%n&#8221;}},</em></strong></p>
<p><strong><em>{{},&#8221;LOGIN=root&#8221;}, &#8230; , {{&#8221;-n&#8221;,&#8221;-i&#8221;},</em></strong><strong><em>{&#8221;TERM=%n%n%n&#8221;,&#8221;LOGIN=root&#8221;}</em></strong><strong><em>},</em></strong></p>
<p><strong><em>{{&#8221;-n&#8221;,&#8221;-i&#8221;},{</em></strong><strong><em>{&#8221;TERM=%n%n%n&#8221;,&#8221;LOGIN=%n%n%n&#8221;}}}</em></strong></p>
<p>I put the ellipsis in there because, well, you get the idea! This continues on until all possible subsets of command line flags have been paired with all possible subsets of pairings of environment variable names and values. The final Cartesian product for two power sets of equal size can be represented visually by <a href="http://en.wikipedia.org/wiki/Pascals_triangle">Pascal&#8217;s triangle</a>.</p>
<p>The aforementioned set operations can be used to systematically prove the correctness of simple computer programs via <a href="http://en.wikipedia.org/wiki/Deterministic">deterministic</a> testing. Modern computer programs are so complex that attempting to calculate all possible input scenarios would be infeasible with a silicon-based machine. In the future, I expect that it will be commonplace for quantum molecular systems or perhaps even <a href="http://en.wikipedia.org/wiki/Dna_computer">DNA computers</a> to solve software assurance problems (and many others) in <a href="http://en.wikipedia.org/wiki/Constant_time">constant time</a> or <a href="http://en.wikipedia.org/wiki/Big_O_notation">O(1),</a> but I digress.</p>
<p>Since silicon will be prevalent for the foreseeable future, the input space used for a real-world software test has to be reduced. The goal is to minimize test executions while maximizing path coverage so disparate input sets must be chosen. This is where &#8220;pseudo exhaustive&#8221;, &#8220;n-way&#8221;, or more recently &#8220;6-way&#8221; testing comes into practice. More information about input space reduction and pseudo exhaustive testing is in <a href="http://csrc.nist.gov/staff/rolodex/kuhn_rick.html">Rick Kuhn&#8217;s research</a> at <a href="http://www.nist.gov">NIST</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/systemofsystems.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/systemofsystems.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/systemofsystems.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/systemofsystems.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/systemofsystems.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/systemofsystems.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/systemofsystems.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/systemofsystems.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/systemofsystems.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/systemofsystems.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/systemofsystems.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/systemofsystems.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=systemofsystems.wordpress.com&blog=1852581&post=16&subd=systemofsystems&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://systemofsystems.wordpress.com/2007/12/07/combinatoric-input-set-generation/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/systemofsystems-128.jpg" medium="image">
			<media:title type="html">Derek Callaway</media:title>
		</media:content>

		<media:content url="http://systemofsystems.files.wordpress.com/2007/11/generator.jpg" medium="image">
			<media:title type="html">Generator</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Dynamic Program Analysis is Superior.. Part Three: Path Coverage</title>
		<link>http://systemofsystems.wordpress.com/2007/11/07/why-dynamic-program-analysis-is-superior-part-three-path-coverage/</link>
		<comments>http://systemofsystems.wordpress.com/2007/11/07/why-dynamic-program-analysis-is-superior-part-three-path-coverage/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 05:17:47 +0000</pubDate>
		<dc:creator>Derek Callaway</dc:creator>
		
		<category><![CDATA[Author: Derek Callaway]]></category>

		<category><![CDATA[Digital Security]]></category>

		<category><![CDATA[Software Assurance]]></category>

		<category><![CDATA[code coverage]]></category>

		<category><![CDATA[coders]]></category>

		<category><![CDATA[DHS]]></category>

		<category><![CDATA[DoD]]></category>

		<category><![CDATA[fuzzing]]></category>

		<category><![CDATA[hackers]]></category>

		<category><![CDATA[pseudo-exhaustive testing]]></category>

		<category><![CDATA[Software Development Lifecycle]]></category>

		<category><![CDATA[SwA]]></category>

		<guid isPermaLink="false">http://systemofsystems.wordpress.com/2007/11/07/why-dynamic-program-analysis-is-superior-part-three-path-coverage/</guid>
		<description><![CDATA[Last month, I attended the U.S. Department of Homeland Security (DHS)/Department of Defense (DoD) Software Assurance (SwA) Forum at the Hilton in McLean, Virginia. One of the presenters, Rick Kuhn of NIST, outlined a technique for maximizing path coverage with dynamic analysis dubbed &#8220;6-way interactions&#8221;. Naturally, I was skeptical because &#8220;fuzzing&#8221;, as they sometimes call [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://systemofsystems.files.wordpress.com/2007/11/path-to-hahn.jpg?w=232&h=164" border="2" alt="Path" hspace="8" vspace="4" width="232" height="164" align="left" />Last month, I attended the <a href="https://buildsecurityin.us-cert.gov/daisy/bsi/875.html?branch=1&amp;language=1" target="_blank">U.S. Department of Homeland Security (DHS)/Department of Defense (DoD) Software Assurance (SwA) Forum</a> at the Hilton in McLean, Virginia. One of the presenters, Rick Kuhn of NIST, outlined a technique for maximizing path coverage with dynamic analysis dubbed &#8220;6-way interactions&#8221;. Naturally, I was skeptical because &#8220;fuzzing&#8221;, as they sometimes call it in the security industry isn&#8217;t well-known for path coverage metrics. After dinner that night I printed and read Rick&#8217;s paper, &#8220;<a href="http://csrc.nist.gov/acts/PID258305.pdf" target="_blank">Pseudo-Exhaustive Testing for Software</a>.&#8221; &#8220;<em>Pseudo-exhaustive</em>&#8221; because the combinatorics involved are concerned with optimizing the size of the input space to make the solution to the software assurance problem feasible using the dynamic analysis approach. The input set size required for the exhaustive dynamic test of a piece of modern software would be so large that the testing process would never complete. Keep in mind that there can be a many-to-one ratio between inputs and execution paths. Rick&#8217;s paper extended earlier research on pairwise (or, &#8220;2-way&#8221;) input set generation algorithms. It was shown that six inputs increases path coverage while still keeping a manageable computational complexity for the dynamic analyzer.</p>
<p>It seems that the the latest research on dynamic analysis is putting it ahead of the static paradigm in terms of &#8220;coverage&#8221;. Static analysis lacks execution context&#8211;it covers code but not runtime execution paths and I feel that path coverage is more assuring than code coverage. Furthermore, static analysis slows the SDL (software/systems/security development lifecycle.)</p>
<p>Static analyzers are often run by trusted insiders since companies are so paranoid about who gets to see their precious source code&#8211;Why have an outside group perform a code review when you can have a static analyzer do the legwork on the inside? This may help managers and executives sleep at night with thoughts of source code safety but it&#8217;s also helping to perpetuate bad practices. Insiders have a very narrow view of the code they write themselves. I think Dave G put it best in his <a href="http://www.matasano.com/log/968/the-merits-of-threat-modeling/" target="_blank">Merits of Threat Modeling</a> post to Matasano&#8217;s Chargen: “My code is perfectly secure until someone reports a vulnerability in it, at which point I will fix it and my code will be secure again.” My other favorite is &#8220;We have a policy that we won&#8217;t get hacked.&#8221; Coders and testers <em>must </em>have conflicting interests. They&#8217;re two different mindsets; hackers don&#8217;t follow policies.</p>
<p>Productivity is greatly reduced when developers test their own code. They could be writing more code instead of improperly testing code they&#8217;ve already written. Over time, there will be a tendency to introduce non-obvious back-doors into the product&#8217;s source code since developers are writing code such that it doesn&#8217;t cause a static analysis tool to produce warnings.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/systemofsystems.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/systemofsystems.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/systemofsystems.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/systemofsystems.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/systemofsystems.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/systemofsystems.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/systemofsystems.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/systemofsystems.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/systemofsystems.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/systemofsystems.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/systemofsystems.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/systemofsystems.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=systemofsystems.wordpress.com&blog=1852581&post=8&subd=systemofsystems&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://systemofsystems.wordpress.com/2007/11/07/why-dynamic-program-analysis-is-superior-part-three-path-coverage/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/systemofsystems-128.jpg" medium="image">
			<media:title type="html">Derek Callaway</media:title>
		</media:content>

		<media:content url="http://systemofsystems.files.wordpress.com/2007/11/path-to-hahn.jpg" medium="image">
			<media:title type="html">Path</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Dynamic Program Analysis is Superior.. Part Two: False Positives</title>
		<link>http://systemofsystems.wordpress.com/2007/10/16/why-dynamic-program-analysis-is-superior-part-two-false-positives/</link>
		<comments>http://systemofsystems.wordpress.com/2007/10/16/why-dynamic-program-analysis-is-superior-part-two-false-positives/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 07:56:31 +0000</pubDate>
		<dc:creator>Derek Callaway</dc:creator>
		
		<category><![CDATA[Author: Derek Callaway]]></category>

		<category><![CDATA[Digital Security]]></category>

		<category><![CDATA[Software Assurance]]></category>

		<category><![CDATA[Systems Theory]]></category>

		<category><![CDATA[dynamic analysis]]></category>

		<category><![CDATA[emulation]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[RATS]]></category>

		<category><![CDATA[source code]]></category>

		<category><![CDATA[vulnerability]]></category>

		<guid isPermaLink="false">http://systemofsystems.wordpress.com/2007/10/16/why-dynamic-program-analysis-is-superior-part-two-false-positives/</guid>
		<description><![CDATA[A few years ago I was making a living as a dedicated employee of a security consultancy whose name I won&#8217;t mention. For those of you who know me, I&#8217;ll give you three guesses and the last two don&#8217;t count. In any case, one day I was working at a (unnamed) client site and I [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://systemofsystems.files.wordpress.com/2007/10/fools-gold-2.JPG" border="2" alt="Fool's Gold" hspace="8" vspace="4" align="left" />A few years ago I was making a living as a dedicated employee of a security consultancy whose name I won&#8217;t mention. For those of you who know me, I&#8217;ll give you three guesses and the last two don&#8217;t count. In any case, one day I was working at a (unnamed) client site and I noticed one of my fellow consultants running RATS, an antiquated static analysis tool for auditing source code. RATS stands for Rough Auditing Tool for Security and &#8220;rough&#8221; is a suitable description of it. Similar to another tool named flawfinder, RATS greps through source code for calls to functions that are considered unsafe. It prints out the source file and line number where the function call that is considered unsafe occurs. The person using RATS still has to review the programming language statements themselves to confirm that the alert displayed by RATS wasn&#8217;t a false positive.</p>
<p>So now I wonder.. Why even use such tools at all? Why not do a manual review of the code yourself since you&#8217;re going to have to look at the code anyway? I have no doubt that the tool can grep faster than the human eye, but the trained eye can pick up things that the source code scanner can&#8217;t. Furthermore, a dynamic analyzer can detect things that both the static analyzer and the human won&#8217;t see. I don&#8217;t want anyone to think that I&#8217;m trying to malign my old co-worker&#8217;s noble effort to get his job done&#8211;that&#8217;s not my intention at all. I am simply looking towards the future and wondering how these tasks will be accomplished five or even ten years from now.</p>
<p>Software assurance suites that take advantage of the dynamic code analysis paradigm have the ability to feature a zero false positive rating. Static analyzers tend to ask the question: &#8220;What appears be wrong with this code that I&#8217;m analyzing?&#8221; whereas dynamic analyzers phrase the question as: &#8220;Which input sets will yield unexpected and/or unintended program output?&#8221;</p>
<p>As a result of executing software directly (either natively or through emulation), the dynamic analysis approach to assuring software quality is much better poised to discover bugs without presenting a conundrum of false positives. A static analysis tool may appear to detect what is believed to be a critical security vulnerability. However, since the tool is not actually executing the program in question, what appears to be an insecurity can turn out to manifest itself as a safe operation. Conversely, what <em>appears </em>to be a safe operation can in actuality be another vulnerability.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/systemofsystems.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/systemofsystems.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/systemofsystems.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/systemofsystems.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/systemofsystems.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/systemofsystems.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/systemofsystems.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/systemofsystems.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/systemofsystems.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/systemofsystems.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/systemofsystems.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/systemofsystems.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=systemofsystems.wordpress.com&blog=1852581&post=5&subd=systemofsystems&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://systemofsystems.wordpress.com/2007/10/16/why-dynamic-program-analysis-is-superior-part-two-false-positives/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/systemofsystems-128.jpg" medium="image">
			<media:title type="html">Derek Callaway</media:title>
		</media:content>

		<media:content url="http://systemofsystems.files.wordpress.com/2007/10/fools-gold-2.JPG" medium="image">
			<media:title type="html">Fool's Gold</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Dynamic Program Analysis is Superior.. Part One: In a Nutshell</title>
		<link>http://systemofsystems.wordpress.com/2007/10/10/why-dynamic-program-analysis-is-superior-part-one-in-a-nutshell/</link>
		<comments>http://systemofsystems.wordpress.com/2007/10/10/why-dynamic-program-analysis-is-superior-part-one-in-a-nutshell/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 10:18:30 +0000</pubDate>
		<dc:creator>Derek Callaway</dc:creator>
		
		<category><![CDATA[Author: Derek Callaway]]></category>

		<category><![CDATA[Digital Security]]></category>

		<category><![CDATA[Software Assurance]]></category>

		<category><![CDATA[DefCon]]></category>

		<category><![CDATA[fuzz testing]]></category>

		<category><![CDATA[path coverage]]></category>

		<category><![CDATA[static analysis]]></category>

		<guid isPermaLink="false">http://systemofsystems.wordpress.com/2007/10/10/why-dynamic-program-analysis-is-superior-part-one-in-a-nutshell/</guid>
		<description><![CDATA[A few weeks ago while I was on vacation in the Outer Banks of North Carolina I was browsing through the media archives for DEF CON 15 since I missed the conference this year (I did make it out to Las Vegas, but not until September for the SANS Institute&#8217;s Network Security event.) While I [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="oats.jpg" href="http://systemofsystems.files.wordpress.com/2007/11/oats.jpg"><img src="http://systemofsystems.files.wordpress.com/2007/11/oats.jpg?w=180&h=180" border="2" alt="Oats" hspace="8" vspace="4" width="180" height="180" align="left" /></a>A few weeks ago while I was on vacation in the Outer Banks of North Carolina I was browsing through the media archives for <a href="http://www.defcon.org" target="_blank">DEF CON 15</a> since I missed the conference this year (I did make it out to Las Vegas, but not until September for the SANS Institute&#8217;s Network Security event.) While I was paging through the PDF-formatted slides for the presentations that I missed, one in particular immediately caught my eye; it was entitled <a href="https://www.defcon.org/images/defcon-15/dc15-presentations/dc-15-west.pdf">&#8220;How I Learned to Stop Fuzzing and Find More Bugs.&#8221;</a> Essentially, the presenter (Jacob West of Fortify Software)  was playing on the fact that most (if not all) publicly available fuzzing utilities exhibit severely inadequate path coverage benchmarks. Personally, I agree with that assertion.  I also believe that Jacob&#8217;s claims were somewhat slanted based on his employment at a software company that offers a static analysis product. Although I have not yet seen a practical solution for it, I do believe that it is possible to attain an optimal level of path coverage while utilizing dynamic analysis techniques.</p>
<p>The qualm I have with static analysis is its nature by definition. It doesn&#8217;t execute the program being scrutinized. Okay, fine. Static analyzers have their place. Maybe the tester is caught in a situation where he or she doesn&#8217;t have permission to execute the program. Regardless, I feel such a predicament is rare and if the tester is capable of executing the program, then why not do so? Why not explore all avenues of possibility? In addition to code execution, dynamic analysis can reap all the benefits of static analysis as well. Static analysis is restricted to read-only access; this is what makes static code analysis an inferior approach to software assurance. Dynamic analyzers can get the best of both worlds.. They have their cake and eat it, too!</p>
<p align="center">What&#8217;s in a nutshell? The kernel of course.. but you won&#8217;t get inside the <em>kernel</em> if you just stare at the<em> shell</em>..</p>
<p>Not just a cliche&#8211;an analogy that sums up the dynamic versus static debate.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/systemofsystems.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/systemofsystems.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/systemofsystems.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/systemofsystems.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/systemofsystems.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/systemofsystems.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/systemofsystems.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/systemofsystems.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/systemofsystems.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/systemofsystems.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/systemofsystems.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/systemofsystems.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=systemofsystems.wordpress.com&blog=1852581&post=4&subd=systemofsystems&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://systemofsystems.wordpress.com/2007/10/10/why-dynamic-program-analysis-is-superior-part-one-in-a-nutshell/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/systemofsystems-128.jpg" medium="image">
			<media:title type="html">Derek Callaway</media:title>
		</media:content>

		<media:content url="http://systemofsystems.files.wordpress.com/2007/11/oats.jpg" medium="image">
			<media:title type="html">Oats</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello, World!</title>
		<link>http://systemofsystems.wordpress.com/2007/10/08/welcome/</link>
		<comments>http://systemofsystems.wordpress.com/2007/10/08/welcome/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 01:06:15 +0000</pubDate>
		<dc:creator>Derek Callaway</dc:creator>
		
		<category><![CDATA[Author: Derek Callaway]]></category>

		<category><![CDATA[Misceallaneous]]></category>

		<category><![CDATA[blog]]></category>

		<category><![CDATA[Security Objectives]]></category>

		<category><![CDATA[System of Systems]]></category>

		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://systemofsystems.wordpress.com/2007/10/08/welcome/</guid>
		<description><![CDATA[Welcome to Security Objectives&#8217; new web log site at WordPress! Here you will find regularly updated musings related to System of Systems Engineering (SoSE), computer programming, software assurance and testing, digital security, philosophy, systems theory, reverse engineering, and discrete mathematics among other technical topics. News and press releases concerning Security Objectives&#8217; itself is of course [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Welcome to Security Objectives&#8217; new web log site at WordPress! Here you will find regularly updated musings related to System of Systems Engineering (SoSE), computer programming, software assurance and testing, digital security, philosophy, systems theory, reverse engineering, and discrete mathematics among other technical topics. News and press releases concerning Security Objectives&#8217; itself is of course also fair game. Be sure to check back often for a healthy dose of fascinating technical research.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/systemofsystems.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/systemofsystems.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/systemofsystems.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/systemofsystems.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/systemofsystems.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/systemofsystems.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/systemofsystems.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/systemofsystems.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/systemofsystems.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/systemofsystems.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/systemofsystems.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/systemofsystems.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=systemofsystems.wordpress.com&blog=1852581&post=3&subd=systemofsystems&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://systemofsystems.wordpress.com/2007/10/08/welcome/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/systemofsystems-128.jpg" medium="image">
			<media:title type="html">Derek Callaway</media:title>
		</media:content>
	</item>
	</channel>
</rss>