<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title><![CDATA[[SecurityRatty] tag: uncover]]></title>
    <link>http://securityratty.com/tag/uncover</link>
    <description></description>
    <pubDate>Mon, 02 Jul 2007 16:46:32 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[Extradition appeal for British hacker dismissed]]></title>
      <link>http://securityratty.com/article/9e56b2bb7cbde6fe390cbff6b7c2741f</link>
      <guid>http://securityratty.com/article/9e56b2bb7cbde6fe390cbff6b7c2741f</guid>
      <description><![CDATA[A British hacker who admitted breaking into U.S. military computers hoping to uncover evidence of UFOs looks...]]></description>
      <content:encoded><![CDATA[<p>A British hacker who admitted breaking into U.S. military computers hoping to uncover evidence of UFOs looks se...
<p><a href="http://feeds.computerworld.com/~a/Computerworld/Security/News?a=WYOuQo"><img src="http://feeds.computerworld.com/~a/Computerworld/Security/News?i=WYOuQo" border="0"></img></a></p><img src="http://feeds.computerworld.com/~r/Computerworld/Security/News/~4/350445335" height="1" width="1"/>]]></content:encoded>
      <pubDate>Wed, 30 Jul 2008 09:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/british hacker">british hacker</category>
      <category domain="http://securityratty.com/tag/uncover evidence">uncover evidence</category>
      <category domain="http://securityratty.com/tag/military computers">military computers</category>
      <category domain="http://securityratty.com/tag/ufos">ufos</category>
      <source url="http://feeds.computerworld.com/~r/Computerworld/Security/News/~3/350445335/article.do">Extradition appeal for British hacker dismissed</source>
    </item>
    <item>
      <title><![CDATA[Extradition appeal for British hacker dismissed]]></title>
      <link>http://securityratty.com/article/6cc2c40ac1e835d88cfc6697408ed5e3</link>
      <guid>http://securityratty.com/article/6cc2c40ac1e835d88cfc6697408ed5e3</guid>
      <description><![CDATA[A British hacker who admitted breaking into U.S. military computers hoping to uncover evidence of UFOs looks set to head here for...]]></description>
      <content:encoded><![CDATA[A British hacker who admitted breaking into U.S. military computers hoping to uncover evidence of UFOs looks set to head here for trial.
<p><a href="http://feeds.computerworld.com/~a/Computerworld/Security/News?a=kU0G1v"><img src="http://feeds.computerworld.com/~a/Computerworld/Security/News?i=kU0G1v" border="0"></img></a></p><img src="http://feeds.computerworld.com/~r/Computerworld/Security/News/~4/350401773" height="1" width="1"/>]]></content:encoded>
      <pubDate>Wed, 30 Jul 2008 09:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/british hacker">british hacker</category>
      <category domain="http://securityratty.com/tag/uncover evidence">uncover evidence</category>
      <category domain="http://securityratty.com/tag/military computers">military computers</category>
      <category domain="http://securityratty.com/tag/trial">trial</category>
      <category domain="http://securityratty.com/tag/head">head</category>
      <category domain="http://securityratty.com/tag/ufos">ufos</category>
      <category domain="http://securityratty.com/tag/set">set</category>
      <source url="http://feeds.computerworld.com/~r/Computerworld/Security/News/~3/350401773/article.do">Extradition appeal for British hacker dismissed</source>
    </item>
    <item>
      <title><![CDATA[Extradition appeal for British hacker dismissed]]></title>
      <link>http://securityratty.com/article/29c53bf2e32f99e9cacb54ee997bb36f</link>
      <guid>http://securityratty.com/article/29c53bf2e32f99e9cacb54ee997bb36f</guid>
      <description><![CDATA[A British hacker who admitted breaking into U.S. military computers hoping to uncover evidence of UFOs looks set to be extradited to the U.S. after the highest British court dismissed his appeal...]]></description>
      <content:encoded><![CDATA[A British hacker who admitted breaking into U.S. military computers hoping to uncover evidence of UFOs looks set to be extradited to the U.S. after the highest British court dismissed his appeal against the extradition on Wednesday.]]></content:encoded>
      <pubDate>Tue, 29 Jul 2008 20:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/british hacker">british hacker</category>
      <category domain="http://securityratty.com/tag/appeal">appeal</category>
      <category domain="http://securityratty.com/tag/military computers">military computers</category>
      <category domain="http://securityratty.com/tag/extradition">extradition</category>
      <category domain="http://securityratty.com/tag/british court">british court</category>
      <category domain="http://securityratty.com/tag/uncover evidence">uncover evidence</category>
      <category domain="http://securityratty.com/tag/ufos">ufos</category>
      <category domain="http://securityratty.com/tag/wednesday">wednesday</category>
      <category domain="http://securityratty.com/tag/set">set</category>
      <source url="http://www.networkworld.com/news/2008/073008-extradition-appeal-for-british-hacker.html?fsrc=rss-security">Extradition appeal for British hacker dismissed</source>
    </item>
    <item>
      <title><![CDATA[How to spot - and stop - a spy]]></title>
      <link>http://securityratty.com/article/a137a7a1a81e0aa7520137d9050566aa</link>
      <guid>http://securityratty.com/article/a137a7a1a81e0aa7520137d9050566aa</guid>
      <description><![CDATA[Corporations are woefully unprepared to counter attempts at corporate espionage, say experts who perform vulnerability assessments designed to uncover security weaknesses. U.S. corporations lose as...]]></description>
      <content:encoded><![CDATA[Corporations are woefully unprepared to counter attempts at corporate espionage, say experts who perform vulnerability assessments designed to uncover security weaknesses. U.S. corporations lose as much as $300 billion a year to hacking, cracking, physical security breaches and other criminal activity, according to Ira Winkler, author of Spies Among Us (Wiley, 2005) and president of the Internet Security Advisors Group, which performs espionage simulations and provides other services.]]></content:encoded>
      <pubDate>Wed, 16 Apr 2008 20:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/performs espionage simulations">performs espionage simulations</category>
      <category domain="http://securityratty.com/tag/espionage">espionage</category>
      <category domain="http://securityratty.com/tag/uncover security weaknesses">uncover security weaknesses</category>
      <category domain="http://securityratty.com/tag/perform vulnerability assessments">perform vulnerability assessments</category>
      <category domain="http://securityratty.com/tag/physical security breaches">physical security breaches</category>
      <category domain="http://securityratty.com/tag/internet security advisors">internet security advisors</category>
      <category domain="http://securityratty.com/tag/counter attempts">counter attempts</category>
      <category domain="http://securityratty.com/tag/criminal activity">criminal activity</category>
      <category domain="http://securityratty.com/tag/ira winkler">ira winkler</category>
      <source url="http://www.networkworld.com/news/2008/041508-how-to-spot--and.html?fsrc=rss-security">How to spot - and stop - a spy</source>
    </item>
    <item>
      <title><![CDATA[Students breach Williamsville Central School District security]]></title>
      <link>http://securityratty.com/article/469e27140de7cb1c2b33167d99e0f5c4</link>
      <guid>http://securityratty.com/article/469e27140de7cb1c2b33167d99e0f5c4</guid>
      <description><![CDATA[Technorati Tag: Security Breach

Date Reported
4/12/08

Organization
Williamsville Central School District

the largest suburban school district in Western New York, Williamsville Central encompasses...]]></description>
      <content:encoded><![CDATA[Technorati Tag: <a href="http://technorati.com/tag/security+breach" rel="tag">Security Breach</a><br><br>
<img src="http://breachblog.com/images/95781-88451/williamsville.jpg" align="right" height="42" width="174"><font size="2"><span style="font-weight: bold;">Date Reported: </span><br>4/12/08<br><br><span style="font-weight: bold;">Organization: </span><br><a href="http://www.williamsvillek12.org/index.cfm">Williamsville Central School District</a>* <br><br><font size="1">*"the largest suburban school district in Western New York, Williamsville Central encompasses 40 square miles including portions of the towns of Amherst, Clarence and Cheektowaga."<br></font><br><span style="font-weight: bold;">Contractor/Consultant/Branch:</span><br><a href="http://www.williamsvillek12.org/north_high.cfm">Williamsville North High School</a> <br><br><span style="font-weight: bold;">Victims:</span><br>Employees<br><br><span style="font-weight: bold;">Number Affected:</span><br>1,800<br><br><span style="font-weight: bold;">Types of Data:</span><br>"personal information and Social Security numbers"<br><br><span style="font-weight: bold;">Breach Description:</span><br>"Several current and former Williamsville North High School students are believed to have broken into the school district’s computer system last month and copied secure files that included the personal information and Social Security numbers of school employees"<br><br><span style="font-weight: bold;">Reference URL:</span><br><a href="http://www.buffalonews.com/home/story/321395.html">The Buffalo News</a> <br><a href="http://www.wcax.com/Global/story.asp?S=8157556&amp;nav=menu183_11_6_2">WCAX-TV News</a> <br><br><span style="font-weight: bold;">Report Credit:</span><br>The Buffalo News and the Associated Press (AP)<br><br><span style="font-weight: bold;">Response:</span><br>From the online sources cited above:<br><br>WILLIAMSVILLE, N.Y. (AP) - Authorities say several current and former students broke into a school district’s computer system in western New York last month and copied secure files that included the personal information of employees.<br><br>This computer breach marks the third time in the past month that students have gained unauthorized access to sensitive information in area school districts.<br><span style="font-style: italic;">[Evan] What did the school district do after the first two in an attempt to prevent a third?</span><br><br>"From talking with staff and from talking with students involved, we know these students gained access to personal information regarding employees of the school district," Amherst Police Chief John Askey said.<br><br>The students, Askey said, overrode the security defenses of a classroom computer at Williamsville North and went trolling for information.<br><span style="font-style: italic;">[Evan] I can only imagine what the "security defenses" entailed.&nbsp; A student (or "hacker") can do a lot of damage if they are granted physical access to a computer.&nbsp; Obviously the students need to access classroom computers.&nbsp; Having said this, doesn't it then become critical that they be closely supervised.</span><br><br>"They actively attacked the system " subverted those security procedures and precautions," he said.<br><br>He added that several of the hackers are considered "very bright kids" and good students with no lengthy disciplinary records.<br><br>The extent of the security breach remains unknown because police are required to have computer evidence extracted by the Western New York Regional Computer Forensics Laboratory, Askey said, which might take several weeks.<br><br>This prompted Superintendent Howard S. Smith to send a letter this week to the district’s 1,800 employees, asking them to notify Amherst police if they uncover any suspicious credit card or banking activity.<br><br>So far, however, police and school officials say they have no evidence that any of the accessed data has been distributed or used to commit crimes.<br><br>Employees or students who suspect their private information might have been used improperly should call the police at 689-1311.<br><br>District computer technicians noticed some unusual activity during routine monitoring of its network on March 26, Smith said.<br><br>"Immediately upon getting the information, we began our investigation and involved the police," he said, "and they have been working with us ever since."<br><br>Two school computers, four personal student computers and one portable flash drive have been confiscated as part of the investigation, Askey said.<br><br>At least three individuals are suspected in the breach, he said, and several more knew about it. Those involved have told police they simply were interested in how far they could get into the system.<br><span style="font-style: italic;">[Evan] I remember the day when being "interested in how far" we "could get into the system" was commonplace.&nbsp; We were curious and we wanted a challenge, but things are much different today.</span><br><br>Smith said the district has begun disciplinary action against one student and expects to take further action as the police wind up their investigation. He added that the district also has taken steps to improve security.<br><span style="font-style: italic;">[Evan] We don't have all the facts, but assuming that the information security practices at the school are less than adequate, how about some disciplinary action against the people that did not secure the information in the first place?</span><br><br>"There are several charges, mostly misdemeanors, that could result," Askey said.<br><span style="font-style: italic;">[Evan] This is in reference to the students.&nbsp; Should charges be considered for those who collected the personal information and likely did not secure it properly?&nbsp; I think that the finger could be pointed in either direction.</span><br><br><span style="font-weight: bold;">Commentary:</span><br>Kids are kids.&nbsp; On one hand, I think it's important for them to push the boundaries, explore and challenge themselves.&nbsp; On the other hand, their actions in this case led to potential victims.&nbsp; These students should be punished, but I think that the school could come up with some creative solutions (after they secure personal information better).&nbsp; If students are interesting in "hacking", why not teach it.&nbsp; Teach it in a way that clearly communicates the law, but at the same time challenges students to explore and learn.&nbsp; Maybe we can make good information security professionals out of them.&nbsp; My blog, my $.02 <img src="http://breachblog.com/emoticons/smile.png" border="0">&nbsp; <br><br>Whatever the school district has been doing isn't working.&nbsp; Otherwise, this wouldn't be the third occurrence in the past month. <br><br><span style="font-weight: bold;">Past Breaches:</span><br>Unknown</font><br><br>
<script src="http://feeds.feedburner.com/%7Es/breachblog?i=http://breachblog.com/2008/04/15/williamsville.aspx" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
      <pubDate>Tue, 15 Apr 2008 11:12:32 +0000</pubDate>
      <category domain="http://securityratty.com/tag/district">district</category>
      <category domain="http://securityratty.com/tag/students">students</category>
      <category domain="http://securityratty.com/tag/school">school</category>
      <category domain="http://securityratty.com/tag/suburban school district">suburban school district</category>
      <category domain="http://securityratty.com/tag/school students">school students</category>
      <category domain="http://securityratty.com/tag/secure personal information">secure personal information</category>
      <category domain="http://securityratty.com/tag/personal information">personal information</category>
      <category domain="http://securityratty.com/tag/school district">school district</category>
      <category domain="http://securityratty.com/tag/information">information</category>
      <source url="http://breachblog.com/2008/04/15/williamsville.aspx">Students breach Williamsville Central School District security</source>
    </item>
    <item>
      <title><![CDATA[Researchers map Internet's 'black holes']]></title>
      <link>http://securityratty.com/article/18b1e34296b960b825ceff841cb2ba60</link>
      <guid>http://securityratty.com/article/18b1e34296b960b825ceff841cb2ba60</guid>
      <description><![CDATA[A University of Washington team has created an Internet monitoring system to uncover the Internet's weak points and mysterious black holes, where traffic simply disappears into the ether. The bad...]]></description>
      <content:encoded><![CDATA[A University of Washington team has created an Internet monitoring system to uncover the Internet's weak points and mysterious black holes, where traffic simply disappears into the ether. The bad news: There are more of them than anyone thought.]]></content:encoded>
      <pubDate>Wed, 09 Apr 2008 20:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/internet">internet</category>
      <category domain="http://securityratty.com/tag/traffic simply disappears">traffic simply disappears</category>
      <category domain="http://securityratty.com/tag/mysterious black holes">mysterious black holes</category>
      <category domain="http://securityratty.com/tag/bad news">bad news</category>
      <category domain="http://securityratty.com/tag/washington team">washington team</category>
      <category domain="http://securityratty.com/tag/university">university</category>
      <category domain="http://securityratty.com/tag/ether">ether</category>
      <category domain="http://securityratty.com/tag/weak">weak</category>
      <category domain="http://securityratty.com/tag/system">system</category>
      <source url="http://www.networkworld.com/news/2008/041008-internet-black-holes.html?fsrc=rss-security">Researchers map Internet's 'black holes'</source>
    </item>
    <item>
      <title><![CDATA["Crawling" Toward SDL]]></title>
      <link>http://securityratty.com/article/6340a9b5d612b714ea8fad65d3999ed0</link>
      <guid>http://securityratty.com/article/6340a9b5d612b714ea8fad65d3999ed0</guid>
      <description><![CDATA[Hey everyone, Jeremy Dallman here

One of the phrases I often hear during vision and strategy planning meetings at Microsoft is &quot;What is the crawl, walk, run?&quot; We use this phrase to differentiate the...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Hey everyone, Jeremy Dallman here. <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>One of the phrases I often hear during vision and strategy planning meetings at Microsoft is "What is the crawl, walk, run?" We use this phrase to differentiate the initial activities that will get us quickly moving toward our larger goals and then supplement them with other activities that may require longer preparation or planning. As I help non-Microsoft companies implement SDL into their development lifecycles, this "crawl" phase toward full adoption of SDL is very important. Usually some person in an organization picks up on the principles of SDL and is ready to roll them out immediately. However, that person usually is faced with competing interests that complicate full adoption: the team is mid-stream in development, short on budget, or management wants to see clear evidence before investing in the changes to support full SDL adoption. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Since we usually focus on how to roll out the full Lifecycle, I want to take a shot at defining what it means to start “crawling” toward SDL. One very important note before I start. What I describe below is not Microsoft’s SDL process. It matches some of the tools and principles, but does not encompass the holistic application security solution provided by SDL. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>&nbsp;<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>In my mind, to start crawling toward SDL, you need to execute on some of the core principles. They obviously need to be low-cost and effective. So, I want to summarize these into three components. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>&nbsp;<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2" class=MsoListParagraph><SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Detailed awareness of your architecture and its </FONT><A href="http://msdn2.microsoft.com/en-us/magazine/cc163882.aspx" mce_href="http://msdn2.microsoft.com/en-us/magazine/cc163882.aspx"><FONT size=3 face=Calibri>attack surface</FONT></A><FONT size=3><FONT face=Calibri>.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2" class=MsoListParagraph><SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Tools that will perform security analysis on your application.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2" class=MsoListParagraph><SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>3.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Results that show how the analysis resulted in improved security.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>&nbsp;<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>The good news is that you can attain these components with tools that are already available. The one consistent minimum requirement is that your code compiles/builds within Visual Studio 2005 SP1. The SP1 piece of this is important because some of the important defenses I discuss below were first made available in that version. Let’s look at some of the tools you can use to get “crawling” toward SDL today:<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>&nbsp;<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 14pt; COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT face=Calibri>Detailed awareness of your architecture and its attack surface<o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><A href="http://msdn.microsoft.com/msdnmag/issues/06/11/ThreatModeling/default.aspx" mce_href="http://msdn.microsoft.com/msdnmag/issues/06/11/ThreatModeling/default.aspx"><FONT color=#0000ff size=3 face=Calibri>Threat Modeling</FONT></A><o:p></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Even if you are past the design phase, assign someone to do a retrospective model (perhaps as part of a pre-release review). This will likely give you a better understanding of your overall architecture and uncover holes in places you may have inadvertently overlooked. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>&nbsp;<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 14pt; COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT face=Calibri>Tools that will perform security analysis on your application<o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>This is probably one of the most often discussed topics around SDL, so I’ll spend some time providing more detail. Let’s break this down into how it impacts differing parts of your team or organization: developers, testers, and operation. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal">Developers</B></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>You should start by strengthening your compiler defenses. Depending on whether you are writing native or managed code, these will differ. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>For C and C++ code:<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><I style="mso-bidi-font-style: normal"><U><FONT size=3><FONT face=Calibri>Strengthen your compiler defenses<o:p></o:p></FONT></FONT></U></I></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo3" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Use the latest compiler and linker because important defenses are added by the tools<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo3" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>If using Visual C++, <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>use Visual Studio 2005 SP1 or later<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo3" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Compile with appropriate compiler flags<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo3" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Compile clean at the highest possible warning level<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo3" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Compile with –GS to detect stack-based buffer overruns<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo3" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Link with appropriate linker flags: /NXCompat to get NX defenses, /DynamicBase to get ASLR,<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>and /SafeSEH to get exception handler protections<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><I style="mso-bidi-font-style: normal"><U><FONT size=3><FONT face=Calibri>Do not use banned APIs in new code<o:p></o:p></FONT></FONT></U></I></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo4" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Use #include “banned.h” header file to find banned C/C++ functions in your code quickly. This header file is included in the companion disk in the </FONT><A href="http://www.microsoft.com/mspress/books/8753.aspx" mce_href="http://www.microsoft.com/mspress/books/8753.aspx"><FONT size=3 face=Calibri>Security Development Lifecycle book</FONT></A><FONT size=3><FONT face=Calibri>.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo4" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Compile regularly with /W4 and fix all C4996 (banned C Runtime function) warnings<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>For all Languages:<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><I style="mso-bidi-font-style: normal"><U><FONT size=3><FONT face=Calibri>Strengthen your compiler defenses<o:p></o:p></FONT></FONT></U></I></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo5" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Use the latest compiler, linker and libraries because defenses are added by the tools and code<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo5" class=MsoListParagraph><SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"><SPAN style="mso-list: Ignore"><FONT size=3>o</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>If using C#, use&nbsp; C# v2.0 or later and if using VB.Net use 8.0 or later<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo5" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Use .NET Framework 2.0 or later<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo5" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Do not use weak crypto in new code<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo5" class=MsoListParagraph><SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"><SPAN style="mso-list: Ignore"><FONT size=3>o</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Use only AES, RSA and SHA-256 (or better)<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo5" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Prevent XSS vulnerabilities by using </FONT><A href="http://msdn2.microsoft.com/en-us/security/aa973814.aspx" mce_href="http://msdn2.microsoft.com/en-us/security/aa973814.aspx"><FONT color=#0000ff size=3 face=Calibri>filtering and escaping</FONT></A><FONT size=3><FONT face=Calibri> libraries around all Web output<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo5" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>Secure your SQL script by only using </FONT><A href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.aspx"><FONT color=#0000ff size=3 face=Calibri>prepared SQL statements</FONT></A><FONT size=3><FONT face=Calibri> - no string concatenation or string replacement<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><I style="mso-bidi-font-style: normal"><U><FONT size=3><FONT face=Calibri>Run these tools habitually<o:p></o:p></FONT></FONT></U></I></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo1" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><A href="http://msdn2.microsoft.com/en-us/library/ms933794.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms933794.aspx"><FONT color=#0000ff size=3 face=Calibri>PREfast</FONT></A><FONT size=3><FONT face=Calibri> (in Visual Studio 2005, use the /analyze compiler option) – a static analysis tool that identifies defects in C/C++ programs and enables you to perform quick desktop error detection on small code bases<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol"><FONT size=3>·</FONT></SPAN><SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: 'Times New Roman','serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><A href="http://msdn2.microsoft.com/en-us/library/bb429476(vs.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb429476(vs.80).aspx"><FONT color=#0000ff size=3 face=Calibri>FxCop</FONT></A><FONT size=3><FONT face=Calibri> – an application that analyzes managed code assemblies (code that targets the .NET Framework common language runtime) and reports information about the assemblies<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol"><FONT size=3>·</FONT></SPAN><SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: 'Times New Roman','serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><A href="http://msdn2.microsoft.com/en-us/library/aa480483.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa480483.aspx"><FONT color=#0000ff size=3 face=Calibri>Application Verifier</FONT></A><FONT size=3><FONT face=Calibri> (AppVerif) – detect and help debug memory corruptions, critical security vulnerabilities, and limited user account privilege issues.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><FONT size=3><FONT face=Calibri>Testers</FONT></FONT></B></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri>James Whittaker has covered </FONT><A href="http://blogs.msdn.com/sdl/archive/2007/05/24/testing-in-the-sdl.aspx" mce_href="http://blogs.msdn.com/sdl/archive/2007/05/24/testing-in-the-sdl.aspx"><FONT size=3 face=Calibri>testing in the SDL</FONT></A><FONT size=3 face=Calibri> on this blog in the past. In a “crawl” scenario, you need to keep it simple while maximizing the value of output. I would recommend focusing on fuzz testing. This is likely something you will need to invest some time creating.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Scott Lambert’s article on </FONT><A href="http://blogs.msdn.com/sdl/archive/2007/09/20/fuzz-testing-at-microsoft-and-the-triage-process.aspx" mce_href="http://blogs.msdn.com/sdl/archive/2007/09/20/fuzz-testing-at-microsoft-and-the-triage-process.aspx"><FONT color=#0000ff size=3 face=Calibri>Fuzz Testing at Microsoft and the Triage Process</FONT></A><FONT size=3><FONT face=Calibri> provides some good guidance on how to think through what type(s) of fuzzing to exercise against your application. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri>If you choose to expand beyond fuzz testing, I would point you back to James’ article on the broader topic of </FONT><A href="http://blogs.msdn.com/sdl/archive/2007/05/24/testing-in-the-sdl.aspx" mce_href="http://blogs.msdn.com/sdl/archive/2007/05/24/testing-in-the-sdl.aspx"><FONT size=3 face=Calibri>Testing in SDL</FONT></A><FONT size=3><FONT face=Calibri>. You may come to the conclusion that expanded security testing<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>may come later in your “walk” or “run” phases, but I would take some time to think through testing even while “crawling” to ensure you are getting broad enough coverage for your application. James’ article highlights the three-pronged approach to security testing we use at Microsoft. You should use these three approaches to ensure your own fuzz testing is comprehensive. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo6" class=MsoListParagraph><SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Attacks against the application’s environment.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo6" class=MsoListParagraph><SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Direct attacks against the application itself.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo6" class=MsoListParagraph><SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>3.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Indirect attacks against the application’s functionality.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="BACKGROUND: silver; mso-highlight: silver"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 14pt; COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT face=Calibri>Results that show how the analysis resulted in improved security<o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal">Response planning</B></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri>Protecting your customers is the entire reason for focusing energy on application security.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If there are holes in your code that you don’t uncover, someone else will. It is absolutely critical that you are prepared to respond rapidly and protect your customers. It is equally important that you construct your<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>response plan to serve as a front-line barometer for detecting the resilience of your security design<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>and what pieces of your applications security should be proactively bolstered to<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>address externally reported vulnerabilities. <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>The knowledge you harvest from these security incidents (typically through root cause analysis) is the primary way to improve your code and security tooling for the future.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Do everything you can to learn lessons from the vulnerabilities others find. If you don’t have a response plan in place, you need to get one in place as soon as possible. If you don’t know where to start, take a look at how our own </FONT><A href="http://www.microsoft.com/security/msrc/incident_response.mspx" mce_href="http://www.microsoft.com/security/msrc/incident_response.mspx"><FONT size=3 face=Calibri>Microsoft Security Response Center</FONT></A><FONT size=3 face=Calibri> does it and fit to your scale or pick up the </FONT><A href="http://www.microsoft.com/mspress/books/8753.aspx" mce_href="http://www.microsoft.com/mspress/books/8753.aspx"><FONT size=3 face=Calibri>Security Development Lifecycle book</FONT></A><FONT size=3><FONT face=Calibri> and dig into the four-step process outlined.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt 0.25in" class=MsoNormal><FONT size=3><FONT face=Calibri>The four steps of the emergency response process:<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo7" class=MsoListParagraph><SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Watch<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo7" class=MsoListParagraph><SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Alert and Mobilize<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo7" class=MsoListParagraph><SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>3.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Assess and Stabilize<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo7" class=MsoListParagraph><SPAN style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>4.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>Resolve<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal">Bugs, Bugs, Bugs</B></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Gathering evidence that clearly shows your work has improved the security of your application is always a challenge. Trying to keep it lightweight adds to that challenge. The most effective way to create traceable and practical evidence without a lot of overhead is detailed management of security issues in your bug database.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The key here is that your bug database is configurable and able to be queried in a variety of ways to pull out this data. From the time you set out to implement this plan, be strict in tracking every discovery from threat modeling, the mitigations to those threats, and every bug you expose in tool analysis. This library of security bugs will give you an easy way to go back and gather evidence that shows the quantity of issues you discovered, the mitigations you used, and the impact the changes had on your application.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>I have provided a fairly detailed view of these components. As I indicated, many of these defenses are available for you in Visual Studio 2005 SP1 or various linked resources above. If you are unsure whether you are taking advantage of all available defenses in your development tools, take the time to check. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>It is my hope that some of you can use this scaled back entry into the principles of SDL to get moving toward improved security assurance. In the non-Microsoft SDL engagements I have been involved in, we have seen these steps&nbsp;effectively establish a baseline architectural understanding of your application security and identify critical weaknesses while providing solid evidence to support the decision to “run” forward into full SDL adoption. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri>[I want to thank Michael Howard for providing some of the key data for the Developer pieces in&nbsp;this article.]<o:p></o:p></FONT></FONT></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8081069" width="1" height="1">]]></content:encoded>
      <pubDate>Thu, 06 Mar 2008 19:13:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/sdl">sdl</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/perform security analysis">perform security analysis</category>
      <category domain="http://securityratty.com/tag/application security">application security</category>
      <category domain="http://securityratty.com/tag/application">application</category>
      <category domain="http://securityratty.com/tag/applications security">applications security</category>
      <category domain="http://securityratty.com/tag/security issues">security issues</category>
      <category domain="http://securityratty.com/tag/issues">issues</category>
      <category domain="http://securityratty.com/tag/non-microsoft sdl engagements">non-microsoft sdl engagements</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/03/06/crawling-toward-sdl.aspx">"Crawling" Toward SDL</source>
    </item>
    <item>
      <title><![CDATA[Ten Tips for Delivering Managed Service to On-Site Systems]]></title>
      <link>http://securityratty.com/article/fb8dc44d1deb5f1bdb8a0c546e5b20d2</link>
      <guid>http://securityratty.com/article/fb8dc44d1deb5f1bdb8a0c546e5b20d2</guid>
      <description><![CDATA[Source: Webex) This new Report examines the 2004/2005 survey by DB Kay &amp; Associates to uncover the best practices for deploying Virtual Support Networks and discusses how Virtual Support Networks like...]]></description>
      <content:encoded><![CDATA[<b>(Source: Webex)</b>  This new Report examines the 2004/2005 survey by DB Kay & Associates to uncover the best practices for deploying Virtual Support Networks and discusses how Virtual Support Networks like WebEx SMARTtech allow service providers to securely and cost-effectively manage distributed installations around the world.
<p><a href="http://feeds.computerworld.com/~a/Computerworld/Security/News?a=4YygDJ"><img src="http://feeds.computerworld.com/~a/Computerworld/Security/News?i=4YygDJ" border="0"></img></a></p><img src="http://feeds.computerworld.com/~r/Computerworld/Security/News/~4/183695004" height="1" width="1"/>]]></content:encoded>
      <pubDate>Thu, 28 Feb 2008 11:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/virtual support networks">virtual support networks</category>
      <category domain="http://securityratty.com/tag/webex">webex</category>
      <category domain="http://securityratty.com/tag/webex smarttech">webex smarttech</category>
      <category domain="http://securityratty.com/tag/service providers">service providers</category>
      <category domain="http://securityratty.com/tag/report examines">report examines</category>
      <category domain="http://securityratty.com/tag/source">source</category>
      <category domain="http://securityratty.com/tag/world">world</category>
      <category domain="http://securityratty.com/tag/securely">securely</category>
      <category domain="http://securityratty.com/tag/uncover">uncover</category>
      <source url="http://feeds.computerworld.com/~r/Computerworld/Security/News/~3/183695004/whitepapers.do">Ten Tips for Delivering Managed Service to On-Site Systems</source>
    </item>
    <item>
      <title><![CDATA[More trustworthy election systems via SDL?]]></title>
      <link>http://securityratty.com/article/866587460674cd492103d30bf6cdbe4f</link>
      <guid>http://securityratty.com/article/866587460674cd492103d30bf6cdbe4f</guid>
      <description><![CDATA[Hi folks, Eric Bidstrup here
We interrupt our regular schedule of blog postings to offer this special post for Super Tuesday given the subject matter. Hope you enjoy
This year is a presidential...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Hi folks, Eric Bidstrup here.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>We interrupt our regular schedule of blog postings to offer this special post for “</FONT><A href="http://en.wikipedia.org/wiki/Super_Tuesday" mce_href="http://en.wikipedia.org/wiki/Super_Tuesday"><FONT face=Calibri size=3>Super Tuesday</FONT></A><FONT size=3><FONT face=Calibri>” given the subject matter. Hope you enjoy…<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>This year is a presidential election year in the United States. Selecting a new president is perhaps the ultimate example of the importance of having a trustworthy election process. There have been some well chronicled examples of elections with extremely close results, where the winner’s margin of victory was perhaps smaller than the election system’s margin of error. The term “</FONT><A href="http://en.wikipedia.org/wiki/Hanging_chad" mce_href="http://en.wikipedia.org/wiki/Hanging_chad"><FONT face=Calibri size=3>Hanging Chads</FONT></A><FONT face=Calibri size=3>,” from the </FONT><A href="http://en.wikipedia.org/wiki/United_States_presidential_election%2C_2000" mce_href="http://en.wikipedia.org/wiki/United_States_presidential_election%2C_2000"><FONT face=Calibri size=3>2000 U.S Presidential election</FONT></A><FONT face=Calibri size=3>, is now part of the American vocabulary, and locally here in Washington State our </FONT><A href="http://en.wikipedia.org/wiki/Washington_gubernatorial_election%2C_2004" mce_href="http://en.wikipedia.org/wiki/Washington_gubernatorial_election%2C_2004"><FONT face=Calibri size=3>last gubernatorial election in 2004</FONT></A><FONT size=3><FONT face=Calibri> required 3 recounts with the final winner being determined by a margin of only 129 votes, or 0.0045% of the popular vote. <o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>The populace demands confidence that, even in close elections, the election result accurately reflects the voters’ intent. In theory, such precision can be improved by using computers and technology. <o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>However, it seems that every recent election season brings stories in the media about security concerns regarding voting machine (and their software) security. A recent </FONT><A href="http://www.nytimes.com/2008/01/06/magazine/06Vote-t.html?_r=2&amp;oref=slogin&amp;oref=slogin" mce_href="http://www.nytimes.com/2008/01/06/magazine/06Vote-t.html?_r=2&amp;oref=slogin&amp;oref=slogin"><FONT face=Calibri size=3>New York Times article</FONT></A><FONT face=Calibri size=3> provides a good overview of voting machine security concerns; and academic studies on voting systems last year in </FONT><A href="http://www.sos.ca.gov/elections/elections_vsr.htm" mce_href="http://www.sos.ca.gov/elections/elections_vsr.htm"><FONT face=Calibri size=3>California</FONT></A><FONT face=Calibri size=3>, </FONT><A href="http://voter.engr.uconn.edu/voter/Reports.html" mce_href="http://voter.engr.uconn.edu/voter/Reports.html"><FONT face=Calibri size=3>Connecticut</FONT></A><FONT face=Calibri size=3>, </FONT><A href="http://www.sait.fsu.edu/news/2007-03-05-essr.shtml" mce_href="http://www.sait.fsu.edu/news/2007-03-05-essr.shtml"><FONT face=Calibri size=3>Florida</FONT></A><FONT face=Calibri size=3>, and </FONT><A href="http://www.crypto.com/blog/ohio_voting/" mce_href="http://www.crypto.com/blog/ohio_voting/"><FONT face=Calibri size=3>Ohio</FONT></A><FONT size=3><FONT face=Calibri> <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>provide some interesting insights about security concerns and vulnerabilities in voting systems from several vendors. <o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>These analyses are fascinating to us, because they offer an opportunity to see how a set of experts look at products other than ours.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Applied security researchers often analyze our products, and often share their processes and tools with us, but it’s rare to see a top-to-bottom product review released.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In California, there was both white and black box testing done by different teams, and we’ve studied these reports to see the perceptions of development practices from other vendors and results of a different type of review process.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Something my colleagues and I find very interesting is that many of the vulnerabilities noted in these reports could have been prevented by following the requirements in Microsoft’s Security Development Lifecycle. The studies performed in California (prepared at UC Berkeley but created by teams of academics from across the United States) included detailed source code analysis. I’ll select out a few examples from those studies and describe them here. (Note: I’m deliberately picking a few examples from each vendor assessed in the study. I am not attempting to criticize any specific vendor, but rather am trying to illustrate examples of areas where application of the SDL could help contribute towards society’s need for trustworthy computing in a very visible and important application.) <o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Let’s start with the </FONT><A href="http://www.sos.ca.gov/elections/voting_systems/ttbr/sequoia-source-public-jul26.pdf" mce_href="http://www.sos.ca.gov/elections/voting_systems/ttbr/sequoia-source-public-jul26.pdf"><FONT face=Calibri size=3>Source Code Review of the Sequoia Voting System</FONT></A><FONT size=3><FONT face=Calibri>. Two examples from the executive summary are interesting:<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%">“<I style="mso-bidi-font-style: normal">Cryptography</I></SPAN></B><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%">. …Many cryptographic functions are implemented incorrectly, based on weak algorithms with known flaws, or used in an ineffective or insecure manner. Of particular concern is the fact that virtually all cryptographic key material is permanently hardcoded in the system (and is apparently identical in all Sequoia hardware shipped to different jurisdictions)…<o:p></o:p></SPAN></I></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%">Software Engineering</SPAN></I></B><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%">. …The software suffers from numerous programming errors, many of which have a high potential to introduce or exacerbate security weaknesses. These include buffer overflows, format string vulnerabilities, and type mismatch errors….</SPAN></I><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%">”<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>A deeper reading of the cryptographic concerns (page 29 in report) notes concerns (amongst others) over the use of a flawed implementation of the SHA hash algorithm and use of the Data Encryption Standard (DES) algorithm. The SDL has specific policies outlining appropriate selection of cryptographic algorithms. <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>For example, DES is prohibited except for backwards compatibility. SDL also requires that applications use operating system cryptographic functions and libraries. The cryptography team in the operating systems group is supported by world-class cryptographers who carefully scrutinize the implementation of crypto algorithms, and additionally these operating system functions are formally reviewed and certified by the </FONT><A href="http://csrc.nist.gov/groups/STM/cmvp/" mce_href="http://csrc.nist.gov/groups/STM/cmvp/"><FONT face=Calibri size=3>National Institute of Standards and Technology (NIST) Cryptographic Module Validation Program (CMVP) who validates cryptographic modules meet Federal Information Processing Standards (FIPS)</FONT></A><FONT size=3><FONT face=Calibri>. Most application developers are not cryptographers and hence are unlikely to encode crypto algorithms correctly. The SDL requires the use of standard crypto functions and outlines requirements on algorithm selection, key length and key management. <o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Moving to the software engineering concerns; while several common coding and design concerns are noted (e.g. input validation) I want to select one with a bit more subtlety: running code from USB sticks (page 37 in report). From the report, it appears the code present on the USB sticks is used to program a component (HAAT) of their client (WinEDS) to prepare for a specific election.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The valid concern noted by the study is that USB sticks used by WinEDS to configure the HAAT are implicitly trusted to have appropriate authorization to program the voting devices for an election, and that a formal authorization framework didn’t appear to be present. The implication being (as stated in the report): “<I style="mso-bidi-font-style: normal">If such a stick is used in a HAAT that has been compromised by an attacker, or an attacker can provide a maliciously modified USB stick in place of a legitimate one, the attacker could surreptitiously take complete control over the WinEDS client</I>”. Basically, this is a potential “</FONT><A href="http://en.wikipedia.org/wiki/Rootkit" mce_href="http://en.wikipedia.org/wiki/Rootkit"><FONT face=Calibri size=3>rootkit</FONT></A><FONT size=3><FONT face=Calibri>” for election systems. A threat model, a fundamental design requirement of the SDL, could help uncover such design issues and illustrate the need for mitigations. <o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Now, let’s turn to the </FONT><A href="http://www.sos.ca.gov/elections/voting_systems/ttbr/Hart-source-public.pdf" mce_href="http://www.sos.ca.gov/elections/voting_systems/ttbr/Hart-source-public.pdf"><FONT face=Calibri color=#0000ff size=3>Source Code Review of the Hart InterCivic Voting System</FONT></A><FONT size=3><FONT face=Calibri>. I’ll try to keep my commentary balanced by selecting two examples here as well:<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>From the executive summary:<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal; mso-layout-grid-align: none"><FONT face=Calibri><B><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: URWPalladioL-Bold">“Unsecured network interfaces …</SPAN></I></B><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: URWPalladioL-Roma"> Voters can connect to unsecured network links in a polling place to subvert eSlates, as well as to eavesdrop on cast votes and to inject new votes. Poll workers can connect to JBCs or eScans over the management interfaces and perform back-office functions such as modifying the device software. The impact of this is that a malicious voter could potentially take over one or more eSlates in a precinct and a malicious poll worker could potentially take over all the devices in a precinct. …<o:p></o:p></SPAN></I></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal; mso-layout-grid-align: none"><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: URWPalladioL-Roma"><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></SPAN></I></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal; mso-layout-grid-align: none"><FONT face=Calibri><B><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: URWPalladioL-Bold">Failure to protect ballot secrecy </SPAN></I></B><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: URWPalladioL-Roma">Hart’s system fails to adequately protect ballot secrecy...”<o:p></o:p></SPAN></I></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>The concerns about unsecured network interfaces are discussed in the context of authentication and least privilege (pages 24-25). While that is certainly a reasonable perspective, with the SDL we take a broader view and require all teams to threat model the attack surface of the software being developed. Attack surface is the enumeration of all possible entry points that an attacker could use to compromise software (code listening to network interfaces, code that accepts data from external sources, etc). The SDL requires development teams to both minimize attack surface in the software they are building and to consider attacks from each entry point on the attack surface to ensure that mitigations are present. It would appear that these examples show that the development teams didn’t adopt such a systematic approach, or failed to think about mitigations of each possible attack if they did.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Ballot secrecy is an example where security and privacy concerns intersect. Many people confuse security and privacy, and both are fundamental to trust. Privacy addresses a wide variety of concerns about many types of data (such as Personally Identifiable Data (PII), ballot data, etc.), how it’s handled (gathered, transmitted, stored, and disposed of) and what rights and expectations different stakeholders may have regarding that data. (Tina Knutson gave a great overview on these issues in a previous blog posting “</FONT><A href="http://blogs.msdn.com/sdl/archive/2007/05/10/privacy-is-not-just-about-data-security.aspx" mce_href="http://blogs.msdn.com/sdl/archive/2007/05/10/privacy-is-not-just-about-data-security.aspx"><FONT face=Calibri size=3>Privacy is not just about data security</FONT></A><FONT size=3><FONT face=Calibri>“). Security provides the mechanisms, policies, and practices to enforce privacy requirements. Given the intertwined nature of these issues, both are addressed in the SDL. <o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>The concerns about vote storage (section 6.8, page 58 of report) review some classic challenges in software security and privacy with weak random number generation. Randomization is important here since it controls how votes are stored in memory, and weak randomization enables someone to reverse engineer how individual voters voted by examining the aggregate tally of votes (which can be found on the Mobile Ballot Boxes “MBB”) in conjunction with the audit log. The MBB has mitigations in place to protect integrity (tampering) of votes, but doesn’t appear to protect against information disclosure. The SDL cryptographic policies also cover correct random number generation. The challenge of <B style="mso-bidi-font-weight: normal">fully</B> considering <B style="mso-bidi-font-weight: normal">all</B> ways in which data can be reverse engineered, contextualized (order of log entries providing information that can be linked to individuals’ choices), and correlated with other data sources is a growing challenge. In the SDL privacy policies, we call attention to these issues, but it’s still a challenge.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Next, let’s look at the </FONT><A href="http://www.sos.ca.gov/elections/voting_systems/ttbr/diebold-source-public-jul29.pdf" mce_href="http://www.sos.ca.gov/elections/voting_systems/ttbr/diebold-source-public-jul29.pdf"><FONT face=Calibri color=#0000ff size=3>Source Code Review of the Diebold Voting System</FONT></A><FONT size=3><FONT face=Calibri>. Again, I’ll pick two subjects.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal; mso-layout-grid-align: none"><FONT face=Calibri><B><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: URWPalladioL-Bold">“Vulnerability to malicious software: </SPAN></I></B><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: URWPalladioL-Roma">The Diebold software contains vulnerabilities that could allow an attacker to install malicious software on voting machines or on the election management system…<o:p></o:p></SPAN></I></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal; mso-layout-grid-align: none"><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: CMSY10"><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></SPAN></I></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal; mso-layout-grid-align: none"><FONT face=Calibri><B><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: URWPalladioL-Bold">Vulnerability to malicious insiders: </SPAN></I></B><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: URWPalladioL-Roma">The Diebold system lacks adequate controls to ensure that county workers with access to the GEMS central election management system do not exceed their authority….”<o:p></o:p></SPAN></I></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Let’s look at the “Malicious Software” first: While there’s a lot of discussion of general concerns with viruses and malicious payloads, I’d like to drill down on a specific case noted in section 4.2.3 (page 29). The typical concerns around string handling in C/C++ and buffer overflows are mentioned. What is interesting is that in many places this system uses the Microsoft Foundation Classes (MFC) CString class to help mitigate such concerns. The problem noted is that this practice is not consistently followed, and in fact there is a case of one specific function making calls to both CString *and* a standard C string library, <I style="mso-bidi-font-style: normal">in the same function</I>. So here it appears the engineering team had the right idea by trying to remove calls to potentially risky C string library functions (just as required in SDL), but they just weren’t able to consistently and completely apply it.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Regarding the executive summary concern about malicious insiders, I’m inclined to attribute it to what’s described in section 4.3 on page 30: “<I style="mso-bidi-font-style: normal">No formal threat model or security plan</I>” and “<I style="mso-bidi-font-style: normal">No formal security training</I>”. Both of these are pivotal elements in the SDL. Several comments are offered to the effect that “<I style="mso-bidi-font-style: normal">security measures that are in place appeared to be ad hoc</I>”, and “<I style="mso-bidi-font-style: normal">When new developers arrive at the company, they do not receive any kind of security training</I>”. We’ve blogged here in the past about the importance of both areas, so I won’t repeat that again. (See Adam’s Threat Modeling series and Dave’s “</FONT><A href="http://blogs.msdn.com/sdl/archive/2007/05/02/security-education-v-security-training.aspx" mce_href="http://blogs.msdn.com/sdl/archive/2007/05/02/security-education-v-security-training.aspx"><FONT face=Calibri size=3>Security Education v. Security Training</FONT></A><FONT size=3><FONT face=Calibri>” posts respectively for more info).<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><B style="mso-bidi-font-weight: normal"><FONT size=3><FONT face=Calibri>Is the SDL enough to ensure trustworthy voting systems?<o:p></o:p></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>When I offered this blog post for the review of my colleagues, it generated some very interesting discussion. Some of my colleagues were worried that I would misrepresent the SDL as a panacea for creating perfectly trustworthy voting systems. Let me be clear: this is absolutely NOT the case. While the SDL could help mitigate repeating many of the problems identified in these studies, it’s worth noting that election systems have a number of unusual and unique requirements. For example, voters cannot review their voting records as they would their banking records to ensure that no fraud has been committed – since the ability to do so would typically enable vote-selling and coercion.&nbsp; Alternate techniques are therefore required to allow voters to verify that their votes have been properly counted. Such requirements force the adoption of “extraordinary” techniques that go beyond those of secure software engineering.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Furthermore, the expectations of society on the trustworthiness of voting systems are much greater as compared to other types of software (for example: the latest XBOX game title). I’ll further explore differences in how different people think about “degrees of trustworthiness” (aka “assurance” or “robustness”) in a future posting. <o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><B style="mso-bidi-font-weight: normal"><FONT size=3><FONT face=Calibri>Summary<o:p></o:p></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Let me wrap by saying this, building secure software is difficult. Prior to the advent of Trustworthy Computing and the Security Development Lifecycle here at Microsoft, I’d bet that many of the issues noted in these reports would have applied to earlier Microsoft products too. Some might think I’m throwing stones while living in a glass house, but that is not my intent. While Microsoft products are not vulnerability free, we continue to systematically analyze the sources of vulnerabilities in our software. We continue to modify our engineering practices and tools to better identify potential vulnerabilities and mitigate them before software is released. With increasing awareness and concerns over the trustworthiness of computers in general, the entire industry needs to improve. Given the importance of how we choose to organize ourselves as a society and elect representatives to govern us, voting systems are a great place to step up both in the context of the computing industry, and to better serve society.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>I believe many of the issues found in these voting systems would not have entered the system if the SDL was used to design and build the voting systems.<o:p></o:p></FONT></FONT></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=7450582" width="1" height="1">]]></content:encoded>
      <pubDate>Mon, 04 Feb 2008 20:34:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/machine security concerns">machine security concerns</category>
      <category domain="http://securityratty.com/tag/security concerns">security concerns</category>
      <category domain="http://securityratty.com/tag/election systems">election systems</category>
      <category domain="http://securityratty.com/tag/election">election</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/security researchers">security researchers</category>
      <category domain="http://securityratty.com/tag/election systems margin">election systems margin</category>
      <category domain="http://securityratty.com/tag/margin">margin</category>
      <category domain="http://securityratty.com/tag/election management system">election management system</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/02/04/more-trustworthy-election-systems-via-sdl.aspx">More trustworthy election systems via SDL?</source>
    </item>
    <item>
      <title><![CDATA[Protect your data: everything else is just plumbing]]></title>
      <link>http://securityratty.com/article/f556529774c5a21fccd00fcd80e31364</link>
      <guid>http://securityratty.com/article/f556529774c5a21fccd00fcd80e31364</guid>
      <description><![CDATA[Take a few moments and indulge in a thought exercise with me. Consider your companys complete collection of information processing assetsall the computers, the networks theyre connected to, the...]]></description>
      <content:encoded><![CDATA[<p>Take a few moments and indulge in a thought exercise with me. Consider your company’s complete collection of information processing assets—all the computers, the networks they’re connected to, the applications you use, and the data and information you manipulate. Which of those is the most valuable? Which—if it suddenly and tragically disappeared tomorrow—would jeopardize your company’s ability to remain in business?  <p>That’s right, it’s your data. Any of the other elements could easily be replaced. But if your data vanishes, well then, you might as well close up shop and take residence on some forsaken island in the middle of the ocean. It’s your data that gives you your competitive edge, your data that constitutes a large part of your business, and your data that is most attractive to attackers.  <p>Why, then, is there still so much emphasis on protecting all the plumbing that moves the data around, but little interest in protecting the data itself? My guess: old habits die hard. For most of the history of information security, emphasis on security has roughly followed this model:  <p><a href="http://blogs.technet.com/blogfiles/steriley/WindowsLiveWriter/Protectyourdataeverythingelseisjustplumb_C064/june07vp01_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="157" alt="june07vp01" src="http://blogs.technet.com/blogfiles/steriley/WindowsLiveWriter/Protectyourdataeverythingelseisjustplumb_C064/june07vp01_thumb.jpg" width="244" border="0"></a>  <p>Historical approaches to security have placed most emphasis on the network, with decreasing consideration of individual computers and the applications they run, and the least amount of consideration for the security of the data. (I’ve purposefully placed the physical layer outside the triangle, partly as a joke and partly for real—when I visit data centers I routinely discover physical security problems!) Once upon a time, this was the correct approach: computers and applications weren’t designed with much regard for security, and the only way to protect the data was to protect the network. And indeed, because it was generally the network that the bad guys were after, this approach worked.  <p>The old model is no longer appropriate today. The bad guys really don’t care about your network anymore: they’re going after your data. Attackers were once motivated by <i>pride</i>: Mafiaboy was notorious for bragging about bringing down large parts of the Internet in February 2000 (and his bragging became his undoing). But these days, attackers are motivated by profit: they’re out to make money. The economics of the game have changed, and along with that so have the bad guys’ skills and the capabilities of their tools. Let me repeat: they want your data. They’ll steal it and sell it to your competitors, they’ll damage it and put you out of business. The network and your computers exist only as a means to get to your data. So we, as defenders of information assets, must change our tactics to react to—and possibly get in front of—the tactics of the bad guys. We’ve got to invert the traditional thinking and now emphasize security by following this new model:  <p><a href="http://blogs.technet.com/blogfiles/steriley/WindowsLiveWriter/Protectyourdataeverythingelseisjustplumb_C064/june07vp02_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="149" alt="june07vp02" src="http://blogs.technet.com/blogfiles/steriley/WindowsLiveWriter/Protectyourdataeverythingelseisjustplumb_C064/june07vp02_thumb.jpg" width="244" border="0"></a>  <p>Because protecting your data is now paramount, data protection deserves the bulk of your attention. Application security—developing applications with a mind toward security and how they might be purposefully abused by an attacker—is similarly critical. Good host security will remain important in this world as well, especially the security of mobile computers of all kinds. Because people use computers to run applications that process data, it’s these layers that are crucial. If you apply this model, the network can return to doing its only true job: moving bits around as fast as possible.  <p>&nbsp; <p> <h2>Traveling to the new world</h2> <p>So how do you get from there to here? One word: cool technology (OK, two words).</p> <h3>Full drive encryption</h3> <p>For some time, I’ve been advocating that using host-based firewalls isn’t an option: it’s <i>required</i>. Ordinarily, you have no control over the traffic that appears at your Ethernet port. A host firewall gives you control. I now have a second requirement: full drive encryption, especially on portable computers. According to the 2006 Australian Computer Crime and Security Survey, for four years in a row, laptop theft is the most expensive attack weathered by the organizations who responded. The exposure (and expense) isn’t the hardware—it’s the data stored on the computers. This tells me that good-quality full drive encryption is probably one of the best investments you can make to help save your company money! So go ahead and upgrade those laptops to Windows Vista (Enterprise or Ultimate editions) right now, to take advantage of BitLocker full volume encryption, because the cost of the upgrade is most certainly less than the cost of losing your data (and your reputation).</p> <p>Learn more about BitLocker: <a href="http://technet2.microsoft.com/WindowsVista/en/library/ba1a3800-ce29-4f09-89ef-65bce923cdb51033.mspx">http://technet2.microsoft.com/WindowsVista/en/library/ba1a3800-ce29-4f09-89ef-65bce923cdb51033.mspx</a>  <h3>Document protection</h3> <p>When Alice creates a file and wants to give Bob read/write access, give Phil read access, and deny everyone else, the traditional approach involves a lot of work on the part of someone else. Alice has to beg, cajole, and bribe the network admin to create a file share, create two security groups, add Bob to one and Phil to the other, and create access control entries on the share’s access control list. That’s a lot of work for someone who really doesn’t care about Alice’s problems. And it’s incomplete: sure, Eve can’t touch the file on the share, but she can certainly convince Phil to give her a copy—read access also permits copying. If Phil were particularly malicious, he could modify his copy of the document first. You see, network-based access control works only so long as the protected object remains within the network. As soon as someone opens the file, the local copy in the computer’s memory obeys no restrictions.  <p>Windows Rights Management Services (RMS) and Microsoft Office Information Rights Management (IRM) give you an alternate form of access control that persists on the documents themselves regardless of where they live. When Alice assigns read/write access to Bob and read-only access to Phil, she doesn’t need to involve the network admin at all. The access she assigns is stored right in the document and enforced by IRM. When Bob opens the document, Word first checks Bob’s permissions and then disables functionality so that Bob can’t do anything more than what he’s allowed. In Bob’s case, Word will refuse to do anything other than display the content in the window.  <p>In addition to enforcing policy through IRM, RMS protects documents by encrypting them. RMS-protected documents remain encrypted in storage and in transit. They’re decrypted only after an authorized user has been authenticated and his or her permissions have been enforced. If someone outside the RMS’s domain attempts to open a file, it’ll just appear as nonsense. Unless your computer is enrolled in RMS and you’re on the list of authorized users, this document is useless to you. It’s also useless to the friends you’ve given copies to on those ubiquitous USB drives littering the basement of your desk.  <p>Learn more about Rights Management Services: <a href="http://www.microsoft.com/rms">http://www.microsoft.com/rms</a>  <h3>Data security</h3> <p>One definition of news is “something that happens rarely.” Data breaches must no longer be news, then, because they seem to happen with increasing regularity. The best way to avoid a breach is not to store data you don’t need—after you process that credit card number, delete it, don’t retain it. Other sensitive data you do need to retain in some database as part of your business. The best way to keep this data secure is to encrypt it in the database. Microsoft SQL Server 2005 includes some great features to help you here—field-level encryption of data in storage, encryption of data in transit, and enterprise-level key management. An important project that you should soon consider is to evaluate all instances where your company is storing private or confidential information (especially about your customers) and add data encryption where appropriate.  <p>Learn more about SQL Server encryption: <a href="http://download.microsoft.com/download/4/7/a/47a548b9-249e-484c-abd7-29f31282b04d/SQLEncryption.doc">http://download.microsoft.com/download/4/7/a/47a548b9-249e-484c-abd7-29f31282b04d/SQLEncryption.doc</a>  <p>Of course, there’s more to data security than just the physical storage. Equally important are policies and processes for classifying data. There’s an entire body of knowledge—too much to absorb, really—on this topic. Rather than send you off on some endless forage through your favorite search engine, I’ll share with you a classification scheme I discovered recently. It’s simple and elegant—which means it’s something you can actually use.  <p>First, think about confidentiality classifications. These are important because they help guide your response in case of a breach. Four classifications should be sufficient: public, internal, confidential, and private.  <p>Next, consider retention classifications. If you should ever be hauled into court for some reason, the discovery process will uncover a whole lot of your data. You could face major penalties if new information is discovered after a trial starts. Therefore, it’s necessary to follow a policy that routinely purges e-mails and file shares after a period of time. These three retention classifications are good enough for most cases: regulated data for seven years, historical business data for three years, and temporary data (like e-mail) for one year.  <p>Finally, consider recovery classifications. How quickly, in the event of a disaster, will you need to recover certain kinds of data? Are employees allowed to store mission-critical information on home computers or portable devices? Here’s a sample recovery classification: for mission-critical data, immediate recovery; for urgent data, recovery within 72 hours; for non-urgent data, recovery within 30 days.  <p>&nbsp; <p> <h2>Security for the modern age</h2> <p>Attackers constantly improve their tactics as their motives become more sinister. By adjusting your tactics as well, you can be certain that you’re doing your part to keep your information secure.</p><img src="http://blogs.technet.com/aggbug.aspx?PostID=1424911" width="1" height="1">]]></content:encoded>
      <pubDate>Mon, 02 Jul 2007 16:46:32 +0000</pubDate>
      <category domain="http://securityratty.com/tag/data security">data security</category>
      <category domain="http://securityratty.com/tag/comrms data security">comrms data security</category>
      <category domain="http://securityratty.com/tag/data">data</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/confidential information">confidential information</category>
      <category domain="http://securityratty.com/tag/information">information</category>
      <category domain="http://securityratty.com/tag/information security">information security</category>
      <category domain="http://securityratty.com/tag/temporary data">temporary data</category>
      <category domain="http://securityratty.com/tag/data vanishes">data vanishes</category>
      <source url="http://blogs.technet.com/steriley/archive/2007/07/02/protect-your-data-everything-else-is-just-plumbing.aspx">Protect your data: everything else is just plumbing</source>
    </item>
  </channel>
</rss>
