<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.codesecurely.info/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>codesecurely.org : Operating System Security</title><link>http://www.codesecurely.info/archive/tags/Operating+System+Security/default.aspx</link><description>Tags: Operating System Security</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Mirror, mirror on the wall which is the securest of them all? Part Deux</title><link>http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx</link><pubDate>Wed, 21 Feb 2007 08:04:05 GMT</pubDate><guid isPermaLink="false">39ae98e9-4854-4bce-87c0-4727b915c95c:21</guid><dc:creator>rudolph</dc:creator><slash:comments>0</slash:comments><comments>http://www.codesecurely.info/comments/21.aspx</comments><wfw:commentRss>http://www.codesecurely.info/commentrss.aspx?PostID=21</wfw:commentRss><wfw:comment>http://www.codesecurely.info/rsscomments.aspx?PostID=21</wfw:comment><description>&lt;p&gt;&lt;a href="http://www.codesecurely.org/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx"&gt;The story so far …&lt;/a&gt;  And now for more of the adventures of Jack Bauer! ;).
&lt;/p&gt;&lt;p&gt;So since I posted the first of this series I have to come to realize a number of key things:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;There's seemingly people that agree with me at least partly that if nothing else "Securability" must be a first class player
&lt;/li&gt;&lt;li&gt;All this who is more secure than who doesn't always make sense
&lt;/li&gt;&lt;li&gt;The word securability is actually and surprisingly so not a word! (&lt;a href="http://www3.merriam-webster.com/opendictionary/guide.php"&gt;not if I have anything to do with it though&lt;/a&gt;
			&lt;span style="font-family:Wingdings;"&gt;J&lt;/span&gt;)
&lt;/li&gt;&lt;li&gt;Lastly but perhaps most importantly I got pointed to a very interesting read by my co-worker Roman Hustad and that's where we will start this post.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The &lt;a href="http://www.laptop.org"&gt;OLPC (One Laptop Per Child)&lt;/a&gt; is an endeavor to provide (every?) child a laptop – each costing about a 100 bucks. Now this is an effort in itself involving hardware engineering to what operating system will run on the machine and so on. One of the things this team has taken up on to itself is &lt;a href="http://wiki.laptop.org/go/Bitfrost"&gt;building security into the system from the ground up&lt;/a&gt;. None of this patch work and design augmentation etc. I believe these guys really get it. While I did post my &lt;a href="http://www.codesecurely.org/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx"&gt;Securabilty&lt;/a&gt; post a week or so before I ran into this I must say I couldn't &lt;a href="http://dev.laptop.org/git.do?p=security;a=blob;hb=HEAD;f=bitfrost.txt"&gt;say it any better&lt;/a&gt;:
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;quote&amp;gt;
&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;To provide an example, consider the Solitaire game shipped with most versions of Microsoft Windows. This program needs: 
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;* no network access whatsoever
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;* no ability to read the user's documents
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;* no ability to utilize the built-in camera or microphone
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;* no ability to look at, or modify, other programs
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;Yet if somehow compromised by an attacker, Solitaire is free to do whatever the attacker wishes, including:
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;* read, corrupt or delete the user's documents, spreadsheets, music, photos and any other files
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;* eavesdrop on the user via the camera or microphone
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;* replace the user's wallpaper
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;* access the user's website passwords
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;* infect other programs on the hard drive with a virus
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;* download files to the user's machine
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;* receive or send e-mail on behalf of the user
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;* play loud or embarrassing sounds on the speakers
&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;The critical observation here is not that Solitaire should never have the ability to do any of the above (which it clearly shouldn't), but that its creators _know_ it should never do any of the above. It follows that if the system implemented a facility for Solitaire to indicate this at installation time, Solitaire could irreversibly shed various privileges the moment it's installed, which severely limits or simply destroys its usefulness to an attacker were it taken over.
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;/quote&amp;gt;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;They go on to describe their threat model and cover how one by one they have attempted to mitigate the threats uncovered as part of this model. They warn you that this does not mean their system is going to be completely infallible – heck they have even considered what would and should happen in the event of failure. In many ways these smart folks stole my thunder – my follow on blog post was meant to be a case study on how to build a securable system folks – but I will gladly give it up since these guys have actually gone much further and built a real world system. Only time will tell if they will be successful but if I were a betting man I wouldn't bet against it.
&lt;/p&gt;&lt;p&gt;So to recap then what are some of the key aspects for you to take away as you consider building securable systems:
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Document your security requirements. Understand what it is that you are trying to protect. What is the attacker persona? Who are you up against? Bring back all of the &lt;a href="http://en.wikipedia.org/wiki/The_Art_of_War"&gt;The Art of War&lt;/a&gt; books you've read.
&lt;/li&gt;&lt;li&gt;Use these security requirements to build a deep and detailed threat model – one that covers the requirements from above but also what the threats are to your system, what countermeasures you have (or will have) in place to prevent those threats from being realized and finally where are you vulnerable – what are those weak spots?
&lt;/li&gt;&lt;li&gt;&lt;div&gt;Use the threat model to govern your system development effort from a security perspective:
&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Do the countermeasures you have or thought you had in place adequately protect you against the threats you thought they were going to protect you against? Have these been tested and exercised?
&lt;/li&gt;&lt;li&gt;How about the vulnerabilities you are left with? Have you made a conscious risk management decision to live with these vulnerabilities. What is the long term plan to deal with them? What happens if one of them get exploited? Do you have an incident management plan in place?
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Plan for failure and hence engage in defensive design and development. One of those vulnerabilities above might come back to bite you or worse still an entire new class of vulnerabilities that we might have never considered before might suddenly be discovered and guess what you are vulnerable as hell – what happens next? This in turn comes down to a number of basic principles which are age old:
&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Do you run with the least privileges needed to execute? Do you implement patterns such as privilege separation and compartmentalization?
&lt;/li&gt;&lt;li&gt;Even with least privileges do you explicitly turn off or refuse those you don't and will never need? Think Solitaire from the example above or iTunes (which should have access to my music folder and perhaps some registry keys at most! – more on that in a future post). If you run within the .NET environment do you run in &lt;a href="http://msdn.microsoft.com/msdnmag/issues/04/04/SecurityBriefs/"&gt;partial trust&lt;/a&gt;, do you use features such as &lt;a href="http://blogs.msdn.com/shawnfa/archive/2005/09/09/462975.aspx"&gt;Security Transparency&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/shawnfa/archive/2004/08/30/222918.aspx"&gt;&lt;span style="font-family:Courier New;"&gt;RequestRefuse&lt;/span&gt;&lt;/a&gt;?, if you run as a Java application have you configured the &lt;a href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityManager.html"&gt;security manager&lt;/a&gt;? If you are running on Unix are you creating a &lt;a href="http://www.onlamp.com/pub/a/bsd/2003/01/23/chroot.html"&gt;&lt;span style="font-family:Courier New;"&gt;chroot&lt;/span&gt; jail&lt;/a&gt;? Are you setting your effective user ID to a low privileged user account and leaving all the high privileged stuff for the parent process?
&lt;/li&gt;&lt;li&gt;Have you tested your implementation and design against your threat model and security requirements? Does the "stuff" really work as expected? Have you looked through code to detect issues? Have you opened bugs for the stuff that doesn't work? Do you have a plan to fix those bugs?
&lt;/li&gt;&lt;li&gt;Will you fail securely if failure is inevitable? Have you even defined what failing securely means?
&lt;/li&gt;&lt;li&gt;Do you have the right amount of auditing and logging? Do you have an incident management and response plan in place? Has this planned been tested and proven to work or will get caught out when failure strikes the first time? Would you know whether to cut the red wire or the black one when something threatens to explode?
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;These last few bullet point is a good segway into the concept of &lt;a href="http://www.cert.org/nav/index_purple.html"&gt;Survivability&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;quote&amp;gt;
&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-left:36pt;"&gt;&lt;span style="color:black;"&gt;Survivability is the ability of a network computing system to provide essential services in the presence of attacks and failures, and recover full services in a timely manner.&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;/quote&amp;gt; 
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;That's where the red and black wires come in – which are your most essential services? What can be turned off and the business will still survive? What does it mean to fail securely?
&lt;/p&gt;&lt;p&gt;Finally, again the reason I believe this is important is because the true threats moving forward are not going to be to the web server running on your machine, they are going to be through the applications you use every day (think your email client, your word processor, your media player, your instant messaging client) to you and your identity, your social security number, your credit card information, your privacy! That's where I believe the &lt;a href="http://wiki.laptop.org/go/Bitfrost"&gt;OLPC&lt;/a&gt; folks have been truly innovative, have grabbed the opportunity and get it!&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx&amp;amp;;subject=Mirror%2c+mirror+on+the+wall+which+is+the+securest+of+them+all%3f+Part+Deux" target="_blank" title = "Post http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx&amp;amp;;title=Mirror%2c+mirror+on+the+wall+which+is+the+securest+of+them+all%3f+Part+Deux" target="_blank" title = "Post http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx&amp;amp;title=Mirror%2c+mirror+on+the+wall+which+is+the+securest+of+them+all%3f+Part+Deux" target="_blank" title = "Post http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx&amp;amp;;title=Mirror%2c+mirror+on+the+wall+which+is+the+securest+of+them+all%3f+Part+Deux" target="_blank" title = "Post http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx&amp;amp;;title=Mirror%2c+mirror+on+the+wall+which+is+the+securest+of+them+all%3f+Part+Deux&amp;amp;;top=1" target="_blank" title = "Post http://www.codesecurely.info/archive/2007/02/21/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all-part-deux.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.codesecurely.info/aggbug.aspx?PostID=21" width="1" height="1"&gt;</description><category domain="http://www.codesecurely.info/archive/tags/Security/default.aspx">Security</category><category domain="http://www.codesecurely.info/archive/tags/Operating+System+Security/default.aspx">Operating System Security</category><category domain="http://www.codesecurely.info/archive/tags/Threat+Modeling/default.aspx">Threat Modeling</category></item><item><title>Mirror, mirror on the wall which is the securest of them all?</title><link>http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx</link><pubDate>Wed, 07 Feb 2007 06:50:30 GMT</pubDate><guid isPermaLink="false">39ae98e9-4854-4bce-87c0-4727b915c95c:18</guid><dc:creator>rudolph</dc:creator><slash:comments>5</slash:comments><comments>http://www.codesecurely.info/comments/18.aspx</comments><wfw:commentRss>http://www.codesecurely.info/commentrss.aspx?PostID=18</wfw:commentRss><wfw:comment>http://www.codesecurely.info/rsscomments.aspx?PostID=18</wfw:comment><description>&lt;p&gt;All too often I get asked questions such as:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Which is more secure Microsoft Windows &amp;lt;Put your version of choice here&amp;gt; or Apple Mac OS &amp;lt;Pick your version here&amp;gt;?
&lt;/li&gt;&lt;li&gt;Which is more secure Internet Explorer or Firefox?
&lt;/li&gt;&lt;li&gt;Are two tier architectures – where my database is accessible from my web server in the DMZ less secure than a three tier architecture where all database access goes through a middle tier?
&lt;/li&gt;&lt;li&gt;…
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Much debate along these lines has been seen recently with the public consumer release of Microsoft's latest OS offering in the form of Vista. The Microsoft bashers will point to the fact that &lt;a href="http://secunia.com/product/13223/?task=advisories"&gt;Vista already has unpatched vulnerabilities&lt;/a&gt; and it has barely been released. On the other side of the spectrum, a lot of Microsoft marketing and a &lt;a href="http://news.com.com/Experts+Dont+buy+Vista+for+the+security/2100-1016_3-6154448.html"&gt;number of security experts&lt;/a&gt; will tell you that security was the number one feature in this release and that is precisely why you should upgrade. I would almost be willing to bet that for all the experts you will find that would be willing to put themselves on a life support system hooked up to a public wireless network and running on Windows Vista, you would just as many that would refuse to do so unless the operating system is Apple Mac OS X. 
&lt;/p&gt;&lt;p&gt;So what is the correct answer? Which "experts" does one as a consumer believe? Well I decided to look at some of the statistics that people like to throw around as backing data for their arguments. &lt;a href="http://www.secunia.com"&gt;Secunia.com&lt;/a&gt; is a wonderful site at times like these – and if I assume (and perhaps wrongly so – but I think we can for argument's sake) that they are the one and only definitive source of vulnerability tracking on the planet, then the numbers below can be trested as absolute.  Before I go further though, I want to extract a promise from you the reader, irrespective of what side of the fence you sit on – don't assume I am on one side or the other at least until you get to the end of this blog post (I promise there is a method to my madness and the wait will be worth it &lt;span style="font-family:Wingdings;"&gt;J&lt;/span&gt;).
&lt;/p&gt;&lt;p&gt;Ok let's talk about pure numbers since numbers don't lie some would say. Consider this:
&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.codesecurely.org/blogs/images/my_blog/020707_0648_Mirrormirro1.png" alt="" /&gt; or perhaps this &lt;img src="http://www.codesecurely.org/blogs/images/my_blog/020707_0648_Mirrormirro2.png" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;From the looks of these statistics it would appear that Microsoft has had 43% more vulnerabilities in their Windows XP Professional offering as compared to Apple Mac OS X. And you can take that number and write article after article and post after post claiming Microsoft is a lot less secure than Apple. But then someone will turn around and say Microsoft has got their act together in recent times and have invested a ton of money into security (which they have) and offer something like the following as evidence:
&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.codesecurely.org/blogs/images/my_blog/020707_0648_Mirrormirro3.png" alt="" /&gt; vs. this &lt;img src="http://www.codesecurely.org/blogs/images/my_blog/020707_0648_Mirrormirro4.png" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;But I wonder if the &lt;a href="http://projects.info-pull.com/moab/"&gt;Month of Apple Bugs&lt;/a&gt; had something to do with this?
&lt;/p&gt;&lt;p&gt;And then off course you have those that say well this isn't even an argument worth getting in to because I run on IBM OS/400 which is by far the most secure operating system on the planet while offering something like this as evidence.
&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.codesecurely.org/blogs/images/my_blog/020707_0648_Mirrormirro5.png" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Well, try telling to that to the one administrator of an AS/400 machine that fell victim to the one vulnerability that was patched in November of 2006.
&lt;/p&gt;&lt;p&gt;Hopefully you see my point now, numbers by themselves are meaningless as are how many patches are released on Patch Tuesday. The reason this is so because each vendor (Microsoft and Apple in this case) has their own risk assessment methodology and patch release process. While Microsoft tends to fix single issues per patch / advisory, Apple on the other hand will tend to bunch up a number of fixes into a single "patch". While one can argue for a more standardized approach, at a high level I don't have too much of a problem with either approach. What I care about is that patches get issued, and vulnerabilities get fixed.
&lt;/p&gt;&lt;p&gt;So that really brings me to the main point of this post which is whether it even makes sense to talk about numbers like these and get into heated debates about whether X is more Y? In my opinion the main problem with numbers is that unless they are taken in context they can be made to say whatever the presenter wants them to say. Hopefully the examples above have provided some evidence of this.
&lt;/p&gt;&lt;p&gt;I think the question we should be really arguing about is which of X or Y is more securable. There is a huge difference in my opinion about someone saying their operating system or application or browser is more secure and saying it is more securable. If you look at the most common types of attacks these days that go after end-consumers if it is things like phishing and identity theft. In light of this what I as a consumer care about is what operating system / application / browser makes it the easiest for me to protect myself and the hardest for me to shoot myself in the foot which I will inevitably do. That is my definition of securability.
&lt;/p&gt;&lt;p&gt;So with that said let's talk about securability – I think Mac OS X and now Vista both have capabilities and features that make them far easier to secure than their predecessors – an example being not running everything as an administrator or user account control (UAC). I think by itself will help alleviate the "I shot myself in the foot" problem to a large extent. Off course I think there will be vulnerabilities and I absolutely do not think that a year from now the graphs for either operating system on Secunia will be empty. The reason for that is it is not an easy task to get rid of every buffer overflow or every format string vulnerability. What you can do is mitigate the risk – compile your code with stack protection, run with least privilege, use default deny and so on. I think to a large extent the major software vendors and certainly from what I can see – both Microsoft and Apple have seen the value in doing this and will continue to do this. But in code bases with that many lines of code (50 -60 million from what I hear but who's counting &lt;span style="font-family:Wingdings;"&gt;J&lt;/span&gt;) there are bound to be mistakes that have been made, oversights and just things done which at the time they were done were completely correct but security research has evolved and will evolve to prove those very things to be huge vulnerabilities. 
&lt;/p&gt;&lt;p&gt;So are we all done then – we cannot get any better? Well not really, I think the next thing to get right is to chop privileges down even further. Sure we have made it harder for malware to install a kernel mode key stroke logger on our machines but how about that phishing site or that JavaScript which runs in the background or that email client which receives an email containing a malicious script that reads my confidential files. I think that is where the next evolution of software security should be going. How can we create true application sandboxes (and I know this word has been used and misused multiple times) which restrict what an application can and cannot do based on only what they need to do. We have attempted to solve the security problem of an attacker damaging the underlying machine and the infrastructure (operating system, applications etc) but how about preventing an attacker from hurting the user him / herself. How about preventing my email client or my browser (even if these are running min my context or heck in the context of the administrator himself) from accessing my Microsoft Money or Quicken files unless I the user explicitly allow that access?
&lt;/p&gt;&lt;p&gt;Well for my thoughts on a more concrete basis – stay tuned. To be continued ….
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Full disclosure: I am a Microsoft Developer Security MVP and receive a number of benefits from Microsoft as a consequence. However, this post has nothing to do with that relationship or the benefits. I would like to think I was and am completely unbiased. I should also mention that I also am an owner of both a Mac and a PC laptop on personal level but do use primarily Windows for work.
&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx&amp;amp;;subject=Mirror%2c+mirror+on+the+wall+which+is+the+securest+of+them+all%3f" target="_blank" title = "Post http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx&amp;amp;;title=Mirror%2c+mirror+on+the+wall+which+is+the+securest+of+them+all%3f" target="_blank" title = "Post http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx&amp;amp;title=Mirror%2c+mirror+on+the+wall+which+is+the+securest+of+them+all%3f" target="_blank" title = "Post http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx&amp;amp;;title=Mirror%2c+mirror+on+the+wall+which+is+the+securest+of+them+all%3f" target="_blank" title = "Post http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx&amp;amp;;title=Mirror%2c+mirror+on+the+wall+which+is+the+securest+of+them+all%3f&amp;amp;;top=1" target="_blank" title = "Post http://www.codesecurely.info/archive/2007/02/07/mirror-mirror-on-the-wall-which-is-the-securest-of-them-all.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.codesecurely.info/aggbug.aspx?PostID=18" width="1" height="1"&gt;</description><category domain="http://www.codesecurely.info/archive/tags/Apple/default.aspx">Apple</category><category domain="http://www.codesecurely.info/archive/tags/Security/default.aspx">Security</category><category domain="http://www.codesecurely.info/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://www.codesecurely.info/archive/tags/Operating+System+Security/default.aspx">Operating System Security</category></item></channel></rss>