<?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: written-about]]></title>
    <link>http://securityratty.com/tag/written-about</link>
    <description></description>
    <pubDate>Fri, 03 Oct 2008 07:05:04 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[Stampede Death at Wal-Mart]]></title>
      <link>http://securityratty.com/article/a5436ad4dbabae1cfd63a3bda7bfbafd</link>
      <guid>http://securityratty.com/article/a5436ad4dbabae1cfd63a3bda7bfbafd</guid>
      <description><![CDATA[The death of a Wal-Mart employee on Black Friday in New York should never have been allowed to happen

The Police are said to be reviewing tapes to see if they can identify who was responsible for...]]></description>
      <content:encoded><![CDATA[The death of a Wal-Mart employee on Black Friday in New York should never have been allowed to happen.<br /><span id="fullpost"><br />The Police are said to be reviewing tapes to see if they can identify who was responsible for trampling the poor man to death.  What will that achieve?  Obviously it was not done on purpose.  The findings are bound to result in an "accidental death" determination. <br /></span><br />Getting back to; who is responsible?  I think that is quite clear.  Wal-Mart has to accept responsibility.  UNLESS...they really did hire an outside security company and the employees of that company did such a poor job organizing that mob of "door busters", that they lost control of the situation.<br /><br />One thing is a given.  The family of the employee who lost his life is bound to bring a civil law suit against Wal-Mart.  If I were them, the first thing I would look to find out would be who(if anyone)was providing security on Thanksgiving night outside of the front door?  <br /><br />Unfortunately, many clients do not take the function of security very seriously and they delegate the responsibility to those with no security training or experience.  We have consulted for clients at arenas and found that ordinary ushers will be given a fluorescent vest or jacket with "SECURITY" written on the back and asked to provide security.  This is a libility claim waiting to be filed.<br /><br />If Wal-Mart did in fact outsource their security to an outside company, was the company allowed to provide an adequate number of officers to ensure that shoppers lined up in an orderly fashion?  One security officer to a couple of hundred people is another liability suit waiting to be filed.<br /><br />Next, they should be looking at the training that the security officers (Wal-Mart better hope that shelve stockers were not given the task)receieved.  Because it was Thanksgiving night, there is the possibility that the company couldn't get anybody else to work and used untrained and inexperienced personnel.  If that turns out to be the case, hopefully the company was legal and had adequate insurance coverage.<br /><br />Whatever happens regarding a civil law suit, one thing will remain unchanged.  A man lost his life in an incident that should have been prevented.  It is obvious that not everything was done to ensure the safety of the shoppers who traditonally lined up to get the best bargains when the store opened on "Black Friday".<br /><br />Whether it was Wal-Mart or the security company who may have been hired to prevent this very incident from happening - somebody failed to do their job. Whichever one it was, they should step up to the plate and apologize to the grieving family for letting them down.<div class="blogger-post-footer">Visit Sexton Executive Security at www.sextonsecurity.com</div>]]></content:encoded>
      <pubDate>Mon, 01 Dec 2008 01:12:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/provide">provide</category>
      <category domain="http://securityratty.com/tag/provide security">provide security</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/security company">security company</category>
      <category domain="http://securityratty.com/tag/wal-mart">wal-mart</category>
      <category domain="http://securityratty.com/tag/company">company</category>
      <category domain="http://securityratty.com/tag/security officers">security officers</category>
      <category domain="http://securityratty.com/tag/wal-mart employee">wal-mart employee</category>
      <category domain="http://securityratty.com/tag/death">death</category>
      <source url="http://www.thebulletproofblog.com/2008/11/stampede-death-at-walmart.html">Stampede Death at Wal-Mart</source>
    </item>
    <item>
      <title><![CDATA[A Successful CIO: More Leadership, Less Technical Jargon]]></title>
      <link>http://securityratty.com/article/de3ca541e19993743aa79e19eb82d612</link>
      <guid>http://securityratty.com/article/de3ca541e19993743aa79e19eb82d612</guid>
      <description><![CDATA[This paper, written by Nicholas Purcell, examines the role of the CIO and the challenges they face, as well as the officers themselves moving beyond their chosen role in order to help better relate to...]]></description>
      <content:encoded><![CDATA[This paper, written by Nicholas Purcell, examines the role of the CIO and the challenges they face, as well as the officers themselves moving beyond their chosen role in order to help better relate to their employees.]]></content:encoded>
      <pubDate>Thu, 20 Nov 2008 21:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/nicholas purcell">nicholas purcell</category>
      <category domain="http://securityratty.com/tag/cio">cio</category>
      <category domain="http://securityratty.com/tag/role">role</category>
      <category domain="http://securityratty.com/tag/challenges">challenges</category>
      <category domain="http://securityratty.com/tag/employees">employees</category>
      <category domain="http://securityratty.com/tag/examines">examines</category>
      <category domain="http://securityratty.com/tag/officers">officers</category>
      <category domain="http://securityratty.com/tag/paper">paper</category>
      <source url="http://www.infosecwriters.com/texts.php?op=display&amp;id=638">A Successful CIO: More Leadership, Less Technical Jargon</source>
    </item>
    <item>
      <title><![CDATA[U.S. Court Rules that Hashing = Searching]]></title>
      <link>http://securityratty.com/article/7ac2f8f38d5a22965aa52dc5f5dd9471</link>
      <guid>http://securityratty.com/article/7ac2f8f38d5a22965aa52dc5f5dd9471</guid>
      <description><![CDATA[Really interesting post by Orin Kerr on whether, by taking hash values of someone's hard drive, the police conducted a &quot;search&quot;: District Court Holds that Running Hash Values on Computer Is A Search:...]]></description>
      <content:encoded><![CDATA[<p><a href="http://volokh.com/archives/archive_2008_10_26-2008_11_01.shtml#1225159904">Really interesting post</a> by Orin Kerr on whether, by taking hash values of someone's hard drive, the police conducted a "search":</p>

<blockquote><b>District Court Holds that Running Hash Values on Computer Is A Search:</b>   The case is <a href="http://volokh.com/files/USA_v._Crist,_order-1.pdf"><i>United States v. Crist</i>, 2008 WL 4682806 (M.D.Pa. October 22 2008) (Kane, C.J.)</a>.  It's a child pornography case involving a warrantless search that raises a very interesting and important question of first impression: Is running a hash a Fourth Amendment search? (For background on what a "hash" is and why it matters, see <a href="http://www.harvardlawreview.org/forum/issues/119/dec05/salgado.pdf">here</a>). 

<p>First, the facts.  Crist is behind on his rent payments, and his landlord starts to evict him by hiring Sell to remove Crist's belongings and throw them away.  Sell comes a cross Crist's computer, and he hands over the computer to his friend Hipple who he knows is looking for a computer.  Hipple starts to look through the files, and he comes across child pornography: Hipple freaks out and calls the police.  The police then conduct a warrantless forensic examination of the computer: </p>

<blockquote>In the forensic examination, Agent Buckwash used the following procedure. First, Agent Buckwash created an "MD5 hash value" of Crist's hard drive. An MD5 hash value is a unique alphanumeric representation of the data, a sort of "fingerprint" or "digital DNA." When creating the hash value, Agent Buckwash used a "software write protect" in order to ensure that "nothing can be written to that hard drive." Supp. Tr. 88. Next, he ran a virus scan, during which he identified three relatively innocuous viruses. After that, he created an "image," or exact copy, of all the data on Crist's hard drive.

<p>Agent Buckwash then opened up the image (not the actual hard drive) in a software program called EnCase, which is the principal tool in the analysis. He explained that EnCase does not access the hard drive in the traditional manner, i.e., through the computer's operating system. Rather, EnCase "reads the hard drive itself." Supp. Tr. 102. In other words, it reads every file-bit by bit, cluster by cluster-and creates a index of the files contained on the hard drive. EnCase can, therefore, bypass user-defined passwords, "break down complex file structures for examination," and recover "deleted" files as long as those files have not been written over. Supp. Tr. 102-03.</p>

<p>Once in EnCase, Agent Buckwash ran a "hash value and signature analysis on all of the files on the hard drive." Supp. Tr. 89. In doing so, he was able to "ingerprint" each file in the computer. Once he generated hash values of the files, he compared those hash values to the hash values of files that are known or suspected to contain child pornography. Agent Buckwash discovered five videos containing known child pornography. Attachment 5. He discovered 171 videos containing suspected child pornography.</blockquote></p>

<p>One of the interesting questions here is whether the search that resulted was within the scope of Hipple's private search; different courts have approached this question differently.  But for now the most interesting question is whether running the hash was a Fourth Amendment search.  The Court concluded that it was, and that the evidence of child pornography discovered had to be suppressed:</p>

<blockquote>The Government argues that no search occurred in running the EnCase program because the agents "didn't look at any files, they simply accessed the computer." 2d Supp. Tr. 16. The Court rejects this view and finds that the "running of hash values" is a search protected by the Fourth Amendment.

<p>Computers are composed of many compartments, among them a "hard drive," which in turn is composed of many "platters," or disks.  To derive the hash values of Crist's computer, the Government physically removed the hard drive from the computer, created a duplicate image of the hard drive without physically invading it, and applied the EnCase program to each compartment, disk, file, folder, and bit.2d Supp. Tr. 18-19. By subjecting the entire computer to a hash value analysis-every file, internet history, picture, and "buddy list" became available for Government review. Such examination constitutes a search.</blockquote></p>

<p>I think this is generally a correct result: See my article <i><a href="http://www.harvardlawreview.org/issues/119/Dec05/Kerr.pdf">Searches and Seizures in a Digital World</i>, 119 Harv. L. Rev. 531 (2005)</a>, for the details.  Still, given the lack of analysis here it's somewhat hard to know what to make of the decision. Which stage was the search &mdash; the creating the duplicate?  The running of the hash? It's not really clear. I don't think it matters very much to this case, because the agent who got the positive hit on the hashes didn't then get a warrant.  Instead, he immediately switched over to the EnCase "gallery view" function to see the images, which seems to be to be undoudtedly a search. Still, it's a really interesting question.</blockquote></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=QHRfN"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=QHRfN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=N1NAN"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=N1NAN" border="0"></img></a>
</div>]]></content:encoded>
      <pubDate>Wed, 05 Nov 2008 05:28:17 +0000</pubDate>
      <category domain="http://securityratty.com/tag/actual hard drive">actual hard drive</category>
      <category domain="http://securityratty.com/tag/hard drive">hard drive</category>
      <category domain="http://securityratty.com/tag/hard">hard</category>
      <category domain="http://securityratty.com/tag/md5 hash">md5 hash</category>
      <category domain="http://securityratty.com/tag/hash">hash</category>
      <category domain="http://securityratty.com/tag/hash values">hash values</category>
      <category domain="http://securityratty.com/tag/warrantless forensic examination">warrantless forensic examination</category>
      <category domain="http://securityratty.com/tag/agent">agent</category>
      <category domain="http://securityratty.com/tag/forensic examination">forensic examination</category>
      <source url="http://www.schneier.com/blog/archives/2008/11/us_court_rules.html">U.S. Court Rules that Hashing = Searching</source>
    </item>
    <item>
      <title><![CDATA[Many employees will be terminated in '09]]></title>
      <link>http://securityratty.com/article/2d864d1198683b11d979046fc5272af3</link>
      <guid>http://securityratty.com/article/2d864d1198683b11d979046fc5272af3</guid>
      <description><![CDATA[We all know the economy is bad, but it really sinks home when you hear those big numbers

I was watching CNN yesterday and was quite surprised to learn that 25% of all U.S. employers are planning to...]]></description>
      <content:encoded><![CDATA[We all know the economy is bad, but it really sinks home when you hear those big numbers.<br /><span id="fullpost"><br />I was watching CNN yesterday and was quite surprised to learn that 25% of all U.S. employers are planning to lay-off employees in the New Year.  That is a lot of workers who will be out of work in the coming months.  <br />   <br /></span><br />Companies like American Express are not even waiting until the New Year.  They announced today that they are laying-off 7,000 employees - 10% of their workforce.  Executive Protection companies like ours will be in high demand in the coming months (and maybe years)due to fears of workplace violence.  We are already planning on adding additional training classes just to meet demands from clients for corporate bodyguards to protect their managers.  <br /><br />Our E.P. training class in Los Angeles next month will go into workplace violence in greater detail than ever before.  Fortunately, not everyone will react violently to getting laid off.  For those who will need to find a new job or even change careers, <a href="http://msn.careerbuilder.com/Article/MSN-1691-Job-Search-Unconventional-Places-to-Expand-your-Network/?sc_extcmp=JS_1691_advice&catid=JS&SiteId=cbmsn41691&ArticleID=1691&GT1=23000&cbRecursionCnt=1&cbsid=d513dda4a8a54aa5a274dc0ff3ba9cd9-278701106-JW-5">Rachel Zupek from Careerbuilders.com</a> has written a very useful article on how carefully planned networking can increase your chances of finding that next position.<div class="blogger-post-footer">Visit Sexton Executive Security at www.sextonsecurity.com</div>]]></content:encoded>
      <pubDate>Thu, 30 Oct 2008 18:13:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/employees">employees</category>
      <category domain="http://securityratty.com/tag/workplace violence">workplace violence</category>
      <category domain="http://securityratty.com/tag/executive protection companies">executive protection companies</category>
      <category domain="http://securityratty.com/tag/companies">companies</category>
      <category domain="http://securityratty.com/tag/lay-off employees">lay-off employees</category>
      <category domain="http://securityratty.com/tag/change careers">change careers</category>
      <category domain="http://securityratty.com/tag/american express">american express</category>
      <category domain="http://securityratty.com/tag/react violently">react violently</category>
      <category domain="http://securityratty.com/tag/months">months</category>
      <source url="http://www.thebulletproofblog.com/2008/10/many-employees-will-be-terminated-in-09.html">Many employees will be terminated in '09</source>
    </item>
    <item>
      <title><![CDATA[Securing Home Office]]></title>
      <link>http://securityratty.com/article/7930a3438844ea5e3997375506f2ad0c</link>
      <guid>http://securityratty.com/article/7930a3438844ea5e3997375506f2ad0c</guid>
      <description><![CDATA[The goal of this paper, written by Matt Moberg, is to address the common vulnerabilities of the average home office and to suggest methods to safely secure...]]></description>
      <content:encoded><![CDATA[The goal of this paper, written by Matt Moberg, is to address the common vulnerabilities of the average home office and to suggest methods to safely secure it.]]></content:encoded>
      <pubDate>Mon, 27 Oct 2008 21:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/average home office">average home office</category>
      <category domain="http://securityratty.com/tag/matt moberg">matt moberg</category>
      <category domain="http://securityratty.com/tag/common vulnerabilities">common vulnerabilities</category>
      <category domain="http://securityratty.com/tag/safely secure">safely secure</category>
      <category domain="http://securityratty.com/tag/goal">goal</category>
      <category domain="http://securityratty.com/tag/methods">methods</category>
      <category domain="http://securityratty.com/tag/address">address</category>
      <category domain="http://securityratty.com/tag/paper">paper</category>
      <source url="http://www.infosecwriters.com/texts.php?op=display&amp;id=637">Securing Home Office</source>
    </item>
    <item>
      <title><![CDATA[Applying SDL Principles to Legacy Code]]></title>
      <link>http://securityratty.com/article/92d969d155d0bac3cdff2f17709cb618</link>
      <guid>http://securityratty.com/article/92d969d155d0bac3cdff2f17709cb618</guid>
      <description><![CDATA[Hello, this is Scott Stender from iSEC Partners, one of the SDL Pro Network partners. As security consultants, we at iSEC work with a variety of companies to drive security throughout their...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Hello, this is Scott Stender from iSEC Partners, one of the SDL Pro Network partners.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>As security consultants, we at iSEC work with a variety of companies to drive security throughout their development cycle. <SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Clients with mature security processes ask that we help carry out parts of their process, from requirements analysis to penetration testing.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Other clients need help defining their security processes, and we help define and kickoff a program based on the Microsoft SDL, other defined processes, or variations thereof, depending on the client’s needs and abilities.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Whether participating in an existing process or helping define one, I personally have been lucky enough to have seen my fair share of successes and failures, and it is this perspective that I hope to share in this guest post.<?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 size=3><FONT face=Calibri>I find that legacy code poses a unique challenge for organizations rolling out a new security process.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Often, the resources dedicated to maintaining older code are a small fraction of those devoted to new features or products.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Furthermore, the original developers for such features have often moved on, leaving no subject matter experts to drive reviews.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The astute reader will ask “How do I apply the principles of the Microsoft SDL to legacy code when I have no development resources and nobody knows how it works?”<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>The answer is “Start small, and build expertise over time.”<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>A Rising Tide Lifts All Boats<o:p></o:p></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>The best thing a security engineering team can do to improve security in the short term is to drive code quality, and the first step in this process is to define and enforce a secure coding standard.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This helps on two fronts:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></P>
<P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><SPAN style="mso-list: Ignore"><FONT face=Calibri size=3>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>It will improve code quality and reduce implementation flaws across the entire code base.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Unlike other security processes, driving a secure coding standard is <I style="mso-bidi-font-style: normal">relatively</I> easy to accomplish across an entire code base, regardless of the code’s age, by a focused security team.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>That is not to say that it is easy without qualification – a large batch of spaghetti code will require a lot of work to untangle!<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Such an effort can only be called “easy” when compared to, say, comprehensive identification and remediation of design flaws across legacy features.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Even so, improving code quality through the use of secure coding standards offers a unique combination of high impact, applicability to features, and ability to be carried out by a core team that makes it a sensible first step.<o:p></o:p></FONT></FONT></P>
<P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><SPAN style="mso-list: Ignore"><FONT face=Calibri size=3>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3><FONT face=Calibri>The security team might notice that some sections of code have more standards violations or outright flaws than others.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This is an instance of vulnerability clustering, a concept that has been used to predict vulnerability rates and improve quality in the functional realm.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The evidence is anecdotal, but it stands to reason that portions of code that consistently violate secure coding standards are good places to start looking for other classes of security flaw.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>These are security hotspots, and should be high on the prioritized list for further review.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Security testing may also be applied to legacy code, but initial activities should be considered on a case-by-case basis based on the expected return on investment.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Such testing ranges from using inexpensive off-the-shelf tools to exercise common interfaces to rather expensive custom testing and formal analysis.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is worthwhile to begin with off-the-shelf tools, such as those that target file parsers or web applications, and tools created as part of your greater secure development efforts.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>These can help identify easily-found flaws and suggest improvements to the coding standards.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Comprehensive security testing, on the other hand, is best tackled after the Legacy Security Push.<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>The Legacy Security Push<o:p></o:p></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Coding standards and basic testing provide bang for the buck, but formal security processes seek to provide security assurance.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The challenge for legacy code is that it needs to play catch-up.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Security processes that occur early in the development cycle, such as requirements analysis, design review, and threat modeling, are particularly difficult to achieve years after the fact.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The main goal of the Legacy Security Push is to create the deliverables from these efforts, the most important of which are security requirements and a full risk analysis.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>It may sound trivial, but security requirements are essential.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Not only do they define proper operation for the system in question, they also define assumptions that are suitable for relying systems.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>It is very common to find security flaws in legacy systems that arise from well-intentioned but incorrect assumptions such as “I assume that the <I style="mso-bidi-font-style: normal">Foo</I> authenticates server <I style="mso-bidi-font-style: normal">Bar</I> when initiating a bank transfer.”<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It stands to reason that <I style="mso-bidi-font-style: normal">Foo</I> would do so for such an important activity, but this assumption must be validated.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is very common for older features to have been deployed in and written for different environments where the security assumptions that are "obvious" today just didn't apply at the time.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>When reviewing legacy systems, the first step is to identify such requirements.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If the original architects, developers or managers are available, they can provide valuable insight at this stage.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>More often than not this is not the case, and analysis must instead rely on what documentation is present and interaction between the software and its consumers.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The goal is the same as in requirements analysis during project inception, except that in this case one must turn the process on its head and reverse engineer requirements from system behavior.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>At the conclusion of this effort, requirements can be theorized – “<I style="mso-bidi-font-style: normal">Foo</I> must authenticate its server <I style="mso-bidi-font-style: normal">Bar</I> before initiating a bank transfer.”<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Risk analysis can be performed once a plausible set of requirements have been identified.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Threat modeling is a more structured means of performing such an analysis, with the eventual goal of identifying means by which requirements can be violated by an attacker.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>As with requirements analysis, original developers would be a valuable resource to consult.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>With or without such help, the first step is to identify how the software works.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In many cases, help is not available and performing this task requires a great deal of effort.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>For features of moderate size, this author has spent upwards of a month reading code, using process profiling tools, and walking through the software with a debugger to identify program flow and security-sensitive functionality. <o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Once completed, actual system behavior should be documented and compared against the requirements theorized.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>It might be that the requirements should be re-evaluated (New requirement:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Do not assume that <I style="mso-bidi-font-style: normal">Foo</I> requires server authentication) or the system may need to be changed (New bug:<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN><I style="mso-bidi-font-style: normal">Foo</I> does not verify the CN for <I style="mso-bidi-font-style: normal">Bar</I>).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>At the end, this information should be sufficient to support a comprehensive threat modeling exercise where security requirements, risks, and their mitigations can be documented.<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>Next Steps<o:p></o:p></FONT></FONT></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Bringing a legacy feature up to par with its newer kin requires a relatively small number of items:<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>improved code quality, clear security requirements, and a thorough threat model.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>As we have seen, performing even these tasks is quite the effort!<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I am sure that it is little comfort to be reminded that accomplishing these tasks has simply laid the foundation, and that the true benefit is that the newly-reviewed legacy feature is able to participate fully in the security processes that remain: reviewing cross-component security requirements and assumptions, comprehensive testing, and incident planning, to name a few.<o:p></o:p></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri>Unfortunately, there is no silver bullet in security assurance.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The soundness of the design and implementation of legacy software is just as important as in newer software, which is why any complete secure software development process will look backwards as well as forwards.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Feature by feature, from higher priority to lower, the overall security of the software improves as legacy code receives the full security treatment it deserves.<o:p></o:p></FONT></FONT></P><SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi">Did you find the silver bullet?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Might you think that defining security requirements is unnecessary?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Perhaps “It is old and has not been attacked yet.” is a valid security strategy!<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Please comment below or email me directly at <A href="mailto:scott@isecpartners.com"><FONT color=#0000ff>scott@isecpartners.com</FONT></A> and share your thoughts.</SPAN><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9018591" width="1" height="1">]]></content:encoded>
      <pubDate>Mon, 27 Oct 2008 14:24:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/legacy code">legacy code</category>
      <category domain="http://securityratty.com/tag/mature security processes">mature security processes</category>
      <category domain="http://securityratty.com/tag/security processes">security processes</category>
      <category domain="http://securityratty.com/tag/cross-component security requirements">cross-component security requirements</category>
      <category domain="http://securityratty.com/tag/security requirements">security requirements</category>
      <category domain="http://securityratty.com/tag/processes">processes</category>
      <category domain="http://securityratty.com/tag/code">code</category>
      <category domain="http://securityratty.com/tag/requirements">requirements</category>
      <category domain="http://securityratty.com/tag/legacy code poses">legacy code poses</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/10/27/applying-sdl-principles-to-legacy-code.aspx">Applying SDL Principles to Legacy Code</source>
    </item>
    <item>
      <title><![CDATA[Portable Operating Systems and Information Security Risks]]></title>
      <link>http://securityratty.com/article/a73730dc95b44eba6d360bda541a358f</link>
      <guid>http://securityratty.com/article/a73730dc95b44eba6d360bda541a358f</guid>
      <description><![CDATA[This paper, written by Thomas Hyslip, examines the threat of portable operating systems to computers and computer networks, as well as the security measures available to prevent such...]]></description>
      <content:encoded><![CDATA[This paper, written by Thomas Hyslip, examines the threat of portable operating systems to computers and computer networks, as well as the security measures available to prevent such exploits.]]></content:encoded>
      <pubDate>Tue, 14 Oct 2008 20:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/thomas hyslip">thomas hyslip</category>
      <category domain="http://securityratty.com/tag/portable">portable</category>
      <category domain="http://securityratty.com/tag/systems">systems</category>
      <category domain="http://securityratty.com/tag/security measures">security measures</category>
      <category domain="http://securityratty.com/tag/computer networks">computer networks</category>
      <category domain="http://securityratty.com/tag/exploits">exploits</category>
      <category domain="http://securityratty.com/tag/prevent">prevent</category>
      <category domain="http://securityratty.com/tag/threat">threat</category>
      <category domain="http://securityratty.com/tag/examines">examines</category>
      <source url="http://www.infosecwriters.com/texts.php?op=display&amp;id=634">Portable Operating Systems and Information Security Risks</source>
    </item>
    <item>
      <title><![CDATA["New Attack" Against Encrypted Images]]></title>
      <link>http://securityratty.com/article/d53a9071459b26f731fbd3ec643dbde8</link>
      <guid>http://securityratty.com/article/d53a9071459b26f731fbd3ec643dbde8</guid>
      <description><![CDATA[In a blatant attempt to get some PR : In a new paper, Bernd Roellgen of Munich-based encryption outfit PMC Ciphers, explains how it is possible to compare an encrypted backup image file made with...]]></description>
      <content:encoded><![CDATA[<p>In a blatant attempt to get some <a href="http://www.techworld.com/security/news/index.cfm?newsid=105263">PR</a>:</p>

<blockquote>In a new paper, Bernd Roellgen of Munich-based encryption outfit PMC Ciphers, explains how it is possible to compare an encrypted backup image file made with almost any commercial encryption program or algorithm to an original that has subsequently changed so that small but telling quantities of data 'leaks'.</blockquote>

<p><a href="http://www.turbocrypt.com/vpics/9a8f098c615a425eab6d17c804dd67ae/whitepapers/backup_attack.pdf">Here's</a> the paper.  Turns out that if you use a block cipher in Electronic Codebook Mode, identical plaintexts encrypt to identical ciphertexts.</p>

<p>Yeah, we already knew that.</p>

<p>And -1 point for a security company requiring the use of Javascript, and not failing gracefully for a browser that doesn't have it enabled.</p>

<p>And -- ahem -- what is it with that photograph in the paper?  Couldn't the researchers have found something a little less adolescent?</p>

<p>For the record, I <a href="http://www.schneier.com/crypto-gram-0303.html#4">doghoused</a> PMC Ciphers back in 2003:</p>

<blockquote>PMC Ciphers. The theory description is so filled with pseudo-cryptography that it's funny to read. Hypotheses are presented as conclusions. Current research is misstated or ignored. The first link is a technical paper with four references, three of them written before 1975. Who needs thirty years of cryptographic research when you have polymorphic cipher theory?</blockquote>

<p>EDITED TO ADD (10/9):  I didn't realize it, but last year PMC Ciphers <a href="http://www.ciphers.de/eng/content/Backround-Info/Bruce-Schneiers-comments.html">responded</a> to my doghousing them.  Funny stuff.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=oYuwM"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=oYuwM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=jkURM"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=jkURM" border="0"></img></a>
</div>]]></content:encoded>
      <pubDate>Thu, 09 Oct 2008 02:44:14 +0000</pubDate>
      <category domain="http://securityratty.com/tag/pmc ciphers">pmc ciphers</category>
      <category domain="http://securityratty.com/tag/paper">paper</category>
      <category domain="http://securityratty.com/tag/technical paper">technical paper</category>
      <category domain="http://securityratty.com/tag/commercial encryption program">commercial encryption program</category>
      <category domain="http://securityratty.com/tag/polymorphic cipher theory">polymorphic cipher theory</category>
      <category domain="http://securityratty.com/tag/funny">funny</category>
      <category domain="http://securityratty.com/tag/backup image file">backup image file</category>
      <category domain="http://securityratty.com/tag/identical plaintexts encrypt">identical plaintexts encrypt</category>
      <category domain="http://securityratty.com/tag/funny stuff">funny stuff</category>
      <source url="http://www.schneier.com/blog/archives/2008/10/new_attack_agai.html">"New Attack" Against Encrypted Images</source>
    </item>
    <item>
      <title><![CDATA[Proxy Caches are a Challenging Threat to Internet Security]]></title>
      <link>http://securityratty.com/article/39c5fc50305be98bca63ce241a75ebbd</link>
      <guid>http://securityratty.com/article/39c5fc50305be98bca63ce241a75ebbd</guid>
      <description><![CDATA[Proxy caches, combined with poorly written session management code, can easily leads to serious security flaws similar to what we highlighted in A New Security Breach in Google Docs Revealed
Web...]]></description>
      <content:encoded><![CDATA[<div class="entry-body">
<p>Proxy caches, combined with poorly written session management code, can easily leads to serious security flaws similar to what we highlighted in <a href="http://blog.isc2.org/isc2_blog/2008/09/serious-securit.html">A New Security Breach in Google Docs Revealed</a>.</p>
<p>Web developers have no control over proxy caches in the Internet. However, developers do have control of the code they write and their admin teams have configuration control of their web servers. Developers must assume the worst case Internet scenario with aggressive Internet cache management policies that serve cached data for economic and performance reasons.</p>
<p>As a consequence, this fact-of-life on the Internet sometimes results in multiple web clients being sent the same Set-Cookie HTTP headers, for example.  Caching proxy servers should obtain a fresh cookie for the each new client request. Ideally, proxy caches should not cache session management cookies and distribute cached cookies to multiple clients. However, application developers cannot assume that proxy caches are well behaved, especially for applications where security and privacy are required.</p>
<p>Web developers cannot know whether their content is consumed directly or via a proxy cache. Developers also cannot assume that the HTTP responses will be delivered to the intended browser. Moreover, developers cannot be sure that the intended browser even receives the intended content.  For example, a session ID issued to a client gets used while it is valid or until abandoned and expired. If it is served and delivered in response to an unencrypted HTTP GET request, there’s no guarantee it will be consumed by the intended web browser.</p>
<p>Ideally, SSL should be used on all web transactions that require confidentiality and privacy, including our recent <a href="http://blog.isc2.org/isc2_blog/2008/09/serious-securit.html">Google Docs breach</a>.  On the other hand, even SSL is not foolproof. For example, many web developers do not correctly set the &#8220;Encrypted Sessions Only&#8221; cookie property. These incorrectly configured “secure” servers will send HTTPS cookies in the open, unencrypted.</p>
<p>There be dragons &#8230;</p>
</div>
<hr />Note: Reposted from the <a href="http://blog.isc2.org/isc2_blog/2008/09/proxy-caches-ar.html" target="_blank">(ISC)2 blog</a>.</p>
]]></content:encoded>
      <pubDate>Sun, 05 Oct 2008 06:41:52 +0000</pubDate>
      <category domain="http://securityratty.com/tag/proxy caches">proxy caches</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/web developers">web developers</category>
      <category domain="http://securityratty.com/tag/developers">developers</category>
      <category domain="http://securityratty.com/tag/internet">internet</category>
      <category domain="http://securityratty.com/tag/application developers">application developers</category>
      <category domain="http://securityratty.com/tag/security flaws similar">security flaws similar</category>
      <category domain="http://securityratty.com/tag/session management code">session management code</category>
      <category domain="http://securityratty.com/tag/code">code</category>
      <source url="http://www.thecepblog.com/2008/10/05/proxy-caches-are-a-challenging-threat-to-internet-security/">Proxy Caches are a Challenging Threat to Internet Security</source>
    </item>
    <item>
      <title><![CDATA[OWASP AppSec Asia 2008: Proxy Caches and Web Application Security]]></title>
      <link>http://securityratty.com/article/6d5703cf99293c1caf631a9f5bc73906</link>
      <guid>http://securityratty.com/article/6d5703cf99293c1caf631a9f5bc73906</guid>
      <description><![CDATA[Back to travelling a bit, I have accepted an invitation from Wayne Huang, Chapter Leader, OWASP Taiwan , to give the following presentation at OWASP AppSec Asia 2008, October 27 - 28, 2008, in Taipei...]]></description>
      <content:encoded><![CDATA[<p>Back to travelling a bit, I have accepted an invitation from Wayne Huang, Chapter Leader, <a href="http://www.owasp.org/index.php/Taiwan" target="_blank">OWASP Taiwan</a>,  to give the following presentation at <a href="http://www.owasp.org/index.php/Category:OWASP_AppSec_Conference" target="_blank">OWASP AppSec</a> Asia 2008, October 27 - 28, 2008, in Taipei:</p>
<p><strong>Proxy Caches and Web Application Security</strong></p>
<blockquote><p>Abstract:  <em>Proxy caches, combined with poorly written session management code, can easily lead to serious Internet security breaches. Web application developers cannot know whether their content is consumed directly or via a proxy cache. Developers cannot assume that the HTTP responses will be delivered to the intended browser. Moreover, developers cannot be sure that the intended browser even receives the intented content. Consequently, proxy caches are a serious theat to web application security.  In the presentation, we will discuss the recent <a href="http://www.thecepblog.com/2008/09/15/a-new-security-breach-in-google-docs-revealed/" target="_blank">security breach Tim found in Google Docs </a>and review <a href="http://blog.isc2.org/isc2_blog/2008/09/proxy-caches-ar.html" target="_blank">web application security and session management topics related to proxy caching.</a></em></p></blockquote>
]]></content:encoded>
      <pubDate>Fri, 03 Oct 2008 07:05:04 +0000</pubDate>
      <category domain="http://securityratty.com/tag/proxy caches">proxy caches</category>
      <category domain="http://securityratty.com/tag/proxy">proxy</category>
      <category domain="http://securityratty.com/tag/web application security">web application security</category>
      <category domain="http://securityratty.com/tag/owasp appsec asia">owasp appsec asia</category>
      <category domain="http://securityratty.com/tag/web application developers">web application developers</category>
      <category domain="http://securityratty.com/tag/developers">developers</category>
      <category domain="http://securityratty.com/tag/session management topics">session management topics</category>
      <category domain="http://securityratty.com/tag/session management code">session management code</category>
      <category domain="http://securityratty.com/tag/internet security breaches">internet security breaches</category>
      <source url="http://www.thecepblog.com/2008/10/03/owasp-appsec-asia-2008-proxy-caches-and-web-application-security/">OWASP AppSec Asia 2008: Proxy Caches and Web Application Security</source>
    </item>
  </channel>
</rss>
