<?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: valid]]></title>
    <link>http://securityratty.com/tag/valid</link>
    <description></description>
    <pubDate>Mon, 01 Sep 2008 01:15:41 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[Coupon Hacker Defeats DMCA Suit]]></title>
      <link>http://securityratty.com/article/3061f64e5a5beec4b7590343bc03f4f6</link>
      <guid>http://securityratty.com/article/3061f64e5a5beec4b7590343bc03f4f6</guid>
      <description><![CDATA[A California online coupon generating company is dropping its Digital Millennium Copyright Act lawsuit against a man sued for posting commands allowing users to print an unlimited number of valid...]]></description>
      <content:encoded><![CDATA[A California online coupon generating company is dropping its Digital Millennium Copyright Act lawsuit against a man sued for posting commands allowing users to print an unlimited number of valid coupons.<img src="http://feedproxy.google.com/~r/digg/topic/security/popular/~4/jimvs-ddTXc" height="1" width="1"/>]]></content:encoded>
      <pubDate>Fri, 21 Nov 2008 21:40:02 +0000</pubDate>
      <category domain="http://securityratty.com/tag/california online coupon">california online coupon</category>
      <category domain="http://securityratty.com/tag/valid coupons">valid coupons</category>
      <category domain="http://securityratty.com/tag/sued">sued</category>
      <category domain="http://securityratty.com/tag/commands">commands</category>
      <category domain="http://securityratty.com/tag/users">users</category>
      <category domain="http://securityratty.com/tag/print">print</category>
      <category domain="http://securityratty.com/tag/company">company</category>
      <source url="http://feeds.digg.com/~r/digg/topic/security/popular/~3/jimvs-ddTXc/Coupon_Hacker_Defeats_DMCA_Suit">Coupon Hacker Defeats DMCA Suit</source>
    </item>
    <item>
      <title><![CDATA[Credit Cards Failing Open]]></title>
      <link>http://securityratty.com/article/0d97a3eab73024d98685f3d33f481217</link>
      <guid>http://securityratty.com/article/0d97a3eab73024d98685f3d33f481217</guid>
      <description><![CDATA[Most consumers are aware that when you close a credit card account, its not really closed . For convenience reasons, recurring subscription charges such as your cable bill will continue to be...]]></description>
      <content:encoded><![CDATA[<p>Most consumers are aware that when you close a credit card account, <a href="http://news.bbc.co.uk/2/hi/programmes/moneybox/3227850.stm">it&#8217;s not really closed</a>.  For &#8220;convenience&#8221; reasons, recurring subscription charges such as your cable bill will continue to be approved.  You can kind of see where the credit card companies are coming from, but it&#8217;s a pretty weak argument.  The cable company just needs to notify me that the credit card on file is no longer valid, and I&#8217;ll update my information.  Problem solved.</p>
<p>But that credit card weirdness is nothing compared to the one I&#8217;m about to describe.  </p>
<p>Before we do that, let&#8217;s take a moment to discuss the design principle of <a href="https://buildsecurityin.us-cert.gov/daisy/bsi/articles/knowledge/principles/349-BSI.html">failing securely</a>.  The general idea is that if a security mechanism fails, it should fail closed.  If your firewall crashes, it should block all traffic, not allow all the packets through.  If the power source to your card key system is interrupted, it shouldn&#8217;t unlock all the doors.  If the connection between your application server and your LDAP directory is severed, subsequent authentication requests should be rejected, not approved.  This is not rocket science.</p>
<p>So back to credit cards.  I had a conversation last night with an old friend who related a bizarre situation they had encountered during the QA process for one of their web applications.  One of their tests involved repeatedly attempting a credit card transaction using a canceled/expired American Express card.  Here&#8217;s what they saw in their logs, paraphrased by me:</p>
<pre>
Attempt 1: Denied
Attempt 2: Denied
Attempt 3: Denied
 .
 .
 .
Attempt 49: Denied
Attempt 50: Denied
Attempt 51: Approved
</pre>
<p>What the&#8230;?  Approved?  That can&#8217;t be right.  So they ran the test again.  Every time, after multiple consecutive rejected attempts, the transaction would inexplicably go through.  The threshold wasn&#8217;t always 50, but the general pattern was consistent &#8212; keep trying and eventually it&#8217;ll work.  Clearly, this had to be a bug in the code, but a deep-dive into the guts of the application turned up nothing. The application security group got American Express on the phone to see if they had any insight on this odd behavior.  The answer?  They didn&#8217;t concede the failure was on their end, despite log data showing the successful authorization codes.  </p>
<p>My gut instinct would be that the application requesting the transactions wasn&#8217;t failing securely (e.g. network connection to AmEx timed out, so just approve the transaction).  But that explanation wouldn&#8217;t account for authorization codes coming back.</p>
<p>So what in the world is going on here?  Why would the system behave this way?  Is it by design?  I can&#8217;t think of a single legitimate use case for failing open like this.  If this is actually a design decision by the credit card companies, I have no doubt that someone in our audience knows the rest of the story.</p>
]]></content:encoded>
      <pubDate>Thu, 30 Oct 2008 16:35:34 +0000</pubDate>
      <category domain="http://securityratty.com/tag/credit card transaction">credit card transaction</category>
      <category domain="http://securityratty.com/tag/transaction">transaction</category>
      <category domain="http://securityratty.com/tag/credit card">credit card</category>
      <category domain="http://securityratty.com/tag/credit card companies">credit card companies</category>
      <category domain="http://securityratty.com/tag/credit card weirdness">credit card weirdness</category>
      <category domain="http://securityratty.com/tag/credit card account">credit card account</category>
      <category domain="http://securityratty.com/tag/attempt">attempt</category>
      <category domain="http://securityratty.com/tag/application server">application server</category>
      <category domain="http://securityratty.com/tag/application">application</category>
      <source url="http://www.veracode.com/blog/2008/10/credit-cards-failing-open/">Credit Cards Failing Open</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[on HITB 2008 Conference]]></title>
      <link>http://securityratty.com/article/7182dd4ae495366352b2abc23339e496</link>
      <guid>http://securityratty.com/article/7182dd4ae495366352b2abc23339e496</guid>
      <description><![CDATA[Not to pretend to steal Halvar Flake's glory , but I just got my own &quot;fun&quot; international travel story, which also spells bad news to those who wanted to hear my fun keynote at Hack In The Box 2008 in...]]></description>
      <content:encoded><![CDATA[Not to pretend to <a href="http://it.slashdot.org/it/07/07/29/2057243.shtml">steal Halvar Flake's glory</a>, but I just got my own "fun" international travel story, which also spells bad news to those who wanted to hear <a href="http://conference.hackinthebox.org/hitbsecconf2008kl/?page_id=59">my fun keynote at Hack In The Box 2008</a> in Kuala Lumpur, Malaysia.<br /><br />To make the short story ... even shorter :-), I got kicked off my flight since my passport is only valid 5.5 months in the future and Malaysia requires that visitors' passports are valid for 6 months from the date of arrival (not that they make it anywhere near clear on their embassy website or anything :-)). <br /><br />What makes it funnier is that I got so used to US dates of <span style="font-style: italic;">month/day/year </span>that I actually was genuinely shocked when they said "you passport is not valid for 6 months" while it clearly said "Expires on 8/4/2009" ...<br /><br />So much for Kuala Lumpur :-(  Back to work now.<div class="blogger-post-footer">About me: http://www.chuvakin.org</div><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/AntonChuvakinPersonalBlog?a=FdDIM"><img src="http://feeds.feedburner.com/~f/AntonChuvakinPersonalBlog?i=FdDIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AntonChuvakinPersonalBlog?a=VJ6HM"><img src="http://feeds.feedburner.com/~f/AntonChuvakinPersonalBlog?i=VJ6HM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/AntonChuvakinPersonalBlog?a=0BdyM"><img src="http://feeds.feedburner.com/~f/AntonChuvakinPersonalBlog?i=0BdyM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AntonChuvakinPersonalBlog/~4/433838238" height="1" width="1"/>]]></content:encoded>
      <pubDate>Mon, 27 Oct 2008 07:48:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/kuala lumpur">kuala lumpur</category>
      <category domain="http://securityratty.com/tag/malaysia requires">malaysia requires</category>
      <category domain="http://securityratty.com/tag/fun keynote">fun keynote</category>
      <category domain="http://securityratty.com/tag/fun">fun</category>
      <category domain="http://securityratty.com/tag/valid">valid</category>
      <category domain="http://securityratty.com/tag/malaysia">malaysia</category>
      <category domain="http://securityratty.com/tag/international travel story">international travel story</category>
      <category domain="http://securityratty.com/tag/spells bad news">spells bad news</category>
      <category domain="http://securityratty.com/tag/months">months</category>
      <source url="http://feeds.feedburner.com/~r/AntonChuvakinPersonalBlog/~3/433838238/on-hitb-2008-conference.html">on HITB 2008 Conference</source>
    </item>
    <item>
      <title><![CDATA[Do-Not-Call Lists]]></title>
      <link>http://securityratty.com/article/1d97f48fe3acc2f6696968268a3884a0</link>
      <guid>http://securityratty.com/article/1d97f48fe3acc2f6696968268a3884a0</guid>
      <description><![CDATA[Turns out you can add anyone's number -- or remove anyone's number -- to/from the Canadian do-not-call list. You can also add (but not remove) numbers to the U.S. do-not-call list , though only up to...]]></description>
      <content:encoded><![CDATA[<p>Turns out you can <a href="https://www.lnnte-dncl.gc.ca/">add anyone's number</a> -- or remove anyone's number -- to/from the Canadian do-not-call list. You can also add (but not remove) numbers to the <a href="https://www.donotcall.gov/register/reg.aspx">U.S. do-not-call list</a>, though only up to three at a time, and you have to provide a valid e-mail address to confirm the addition.</p>

<p>Here's my idea.  If you're a company, add every one of your customers to the list.  That way, none of your competitors will be able to cold call them.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=czAmM"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=czAmM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=loLhM"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=loLhM" border="0"></img></a>
</div>]]></content:encoded>
      <pubDate>Tue, 07 Oct 2008 11:51:16 +0000</pubDate>
      <category domain="http://securityratty.com/tag/canadian do-not-call list">canadian do-not-call list</category>
      <category domain="http://securityratty.com/tag/list">list</category>
      <category domain="http://securityratty.com/tag/do-not-call list">do-not-call list</category>
      <category domain="http://securityratty.com/tag/valid e-mail address">valid e-mail address</category>
      <category domain="http://securityratty.com/tag/remove">remove</category>
      <category domain="http://securityratty.com/tag/cold call">cold call</category>
      <category domain="http://securityratty.com/tag/time">time</category>
      <category domain="http://securityratty.com/tag/tofrom">tofrom</category>
      <category domain="http://securityratty.com/tag/competitors">competitors</category>
      <source url="http://www.schneier.com/blog/archives/2008/10/the_canadian_do.html">Do-Not-Call Lists</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[CEP, Event Noise and Asymmetric Event Processing]]></title>
      <link>http://securityratty.com/article/2749df765875344a0e16c9acc0faf260</link>
      <guid>http://securityratty.com/article/2749df765875344a0e16c9acc0faf260</guid>
      <description><![CDATA[In The Genesis of Complex Event Processing: Asymmetric Capabilities I introduced the abstract concept of asymmetric processing capabilities to describe the foundations of complex event processing. If...]]></description>
      <content:encoded><![CDATA[<p>In <a title="The Genesis of Complex Event Processing: Asymmetric Capabilities" rel="bookmark" href="../2008/09/29/the-genesis-of-complex-event-processing-asymmetric-capabilites/">The Genesis of Complex Event Processing: Asymmetric Capabilities</a> I introduced the abstract concept of &#8220;asymmetric processing capabilities&#8221; to describe the foundations of complex event processing.   If you take a few moments to review the <a href="http://www.thecepblog.com/2008/07/07/a-blast-from-the-past-cep-at-stanford1998-2003/" target="_blank">first CEP projects</a> from <a href="http://www.stanford.edu" target="_blank">Stanford University</a>, you will see that the application of CEP was toward  solving myriad asymmetric event processing problems in distributed networks.    These applications included challenging problems such as:</p>
<ul>
<li><a href="http://pavg.stanford.edu/cep/netviewer-presentation.ppt">Network Level Monitoring and Management,<br />
</a></li>
<li><a href="http://pavg.stanford.edu/ID/">Cyber Security: Network Intrusion Detection,<br />
</a></li>
<li>Enterprise Monitoring and Management,</li>
<li><a href="http://pavg.stanford.edu/cep/final-version-131102.pdf">Modeling and Simulation of Collaborative Business Processes, </a></li>
<li>Business Policy Monitoring, and</li>
<li>Analysis and Debugging of Distributed Systems.</li>
</ul>
<p>In each of the CEP application examples above, the amount of event information available to software developers can be staggering; however, despite all the available information, the capability to sense-and-respond to threats and opportunities is crude, at best.</p>
<p>Folks who work in network and security management, for example, are bombarded with event information.  However, this deluge of event information is, for the most part, &#8220;noise&#8221; that is difficult to understand.   In network management one of the most difficult things to accomplish is to find the root cause of an outage or performance problem.   This is why researchers at Stanford were funded to focused on research topics such as (above), <em>the Analysis and Debugging of Distributed Systems</em>.</p>
<p>These are the classes of asymmetric event processing problems that define complex event processing, or CEP.   Processing events by mediating events, routing events, or running a rule-set against events and making a processing decision are all perfectly valid event processing applications.   However, the core reason to have &#8220;complex event processing&#8221; is to solve event processing problems where there exists a significant asymmetry between the deluge of &#8220;event noise&#8221;  (Professor Luckham called this phenomena the &#8220;event cloud&#8221;) and detecting business-relevant, actionable complex events in an climate of uncertainty and noise.</p>
<p>In my next post on this topic I will briefly the review motivation behind my 1999 ACM paper, <a title="Intrusion Detection Systems and Multisensor Data Fusion" rel="bookmark" href="../intrusion-detection-systems-and-multisensor-data-fusion/">Intrusion Detection Systems and Multisensor Data Fusion, </a> where we were working on solving complex distributed security challenges based on real-world experiences with the problems of asymmetric processing capabiilities.   I will discuss why we evolved from an early rule-based expert system model to a more advanced inference model that was not dependent solely on rule-based thinking.   I will also explain why other researchers and developers experienced in complex event detection applications have come to the same conclusion.</p>
]]></content:encoded>
      <pubDate>Thu, 02 Oct 2008 01:22:59 +0000</pubDate>
      <category domain="http://securityratty.com/tag/asymmetric event">asymmetric event</category>
      <category domain="http://securityratty.com/tag/complex">complex</category>
      <category domain="http://securityratty.com/tag/define complex event">define complex event</category>
      <category domain="http://securityratty.com/tag/asymmetric">asymmetric</category>
      <category domain="http://securityratty.com/tag/actionable complex events">actionable complex events</category>
      <category domain="http://securityratty.com/tag/myriad asymmetric event">myriad asymmetric event</category>
      <category domain="http://securityratty.com/tag/cep">cep</category>
      <category domain="http://securityratty.com/tag/management">management</category>
      <category domain="http://securityratty.com/tag/security management">security management</category>
      <source url="http://www.thecepblog.com/2008/10/02/cep-event-noise-and-asymmetric-event-processing/">CEP, Event Noise and Asymmetric Event Processing</source>
    </item>
    <item>
      <title><![CDATA[How to Clone and Modify E-Passports]]></title>
      <link>http://securityratty.com/article/d87db1f435de50bdfb362a781b2835de</link>
      <guid>http://securityratty.com/article/d87db1f435de50bdfb362a781b2835de</guid>
      <description><![CDATA[The Hackers Choice has released a tool allowing people to clone and modify electronic passports
The problem is self-signed certificates
A CA is not a great solution: Using a Certification Authority...]]></description>
      <content:encoded><![CDATA[<p>The Hackers Choice has <a href="http://blog.thc.org/index.php?/archives/4-The-Risk-of-ePassports-and-RFID.html">released</a> a tool allowing people to clone and modify electronic passports.</p>

<p>The problem is self-signed certificates.</p>

<p>A CA is not a great solution:</p>

<blockquote>Using a Certification Authority (CA) could solve the attack but at the same time introduces a new set of attack vectors:

<ol><li>The CA becomes a single point of failure. It becomes the juicy/high-value target for the attacker. Single point of failures are not good. Attractive targets are not good.

<p>Any person with access to the CA key can undetectably fake passports. Direct attacks, virus, misplacing the key by accident (the UK government is good at this!) or bribery are just a few ways of getting the CA key.</p>

<p><li>The single CA would need to be trusted by all governments. This is not practical as this means that passports would no longer be a national matter.</p>

<p><li>Multiple CA's would not work either. Any country could use its own CA to create a valid passport of any other country. Read this sentence again: Country A can create a passport data set of Country B and sign it with Country A's CA key. The terminal will validate and display the information as data from Country B.This option also multiplies the number of 'juicy' targets. It makes it also more likely for a CA key to leak.</p>

<p>Revocation lists for certificates only work when a leak/loss is detected. In most cases it will not be detected.</ol></p>

<p>So what's the solution? We know that humans are good at Border Control. In the end they protected us well for the last 120 years. We also know that humans are good at pattern matching and image recognition. Humans also do an excellent job 'assessing' the person and not just the passport. Take the human part away and passport security falls apart.</blockquote></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=UYU6L"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=UYU6L" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=z7bQL"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=z7bQL" border="0"></img></a>
</div>]]></content:encoded>
      <pubDate>Tue, 30 Sep 2008 08:24:51 +0000</pubDate>
      <category domain="http://securityratty.com/tag/passports">passports</category>
      <category domain="http://securityratty.com/tag/passport">passport</category>
      <category domain="http://securityratty.com/tag/passport security falls">passport security falls</category>
      <category domain="http://securityratty.com/tag/passport data set">passport data set</category>
      <category domain="http://securityratty.com/tag/set">set</category>
      <category domain="http://securityratty.com/tag/electronic passports">electronic passports</category>
      <category domain="http://securityratty.com/tag/country">country</category>
      <category domain="http://securityratty.com/tag/key">key</category>
      <category domain="http://securityratty.com/tag/undetectably fake passports">undetectably fake passports</category>
      <source url="http://www.schneier.com/blog/archives/2008/09/how_to_clone_an.html">How to Clone and Modify E-Passports</source>
    </item>
    <item>
      <title><![CDATA[Anti-theft Protocols]]></title>
      <link>http://securityratty.com/article/2a0b13fdcf3d76640c70ce857f0644c4</link>
      <guid>http://securityratty.com/article/2a0b13fdcf3d76640c70ce857f0644c4</guid>
      <description><![CDATA[At last Fridays Security Group meeting, we talked about security protocols that are intended to deter or reduce the consquences of theft, and how they go wrong
Examples include
GSM mobile phones have...]]></description>
      <content:encoded><![CDATA[<p>At last Friday&#8217;s Security Group meeting, we talked about security protocols that are intended to deter or reduce the consquences of theft, and how they go wrong.</p>
<p>Examples include:</p>
<ul>
<li>GSM mobile phones have an identifier for the phone (separate from the identifier for the user) that can be blacklisted when the phone is stolen.</li>
<li>Some car radios will stop working when the battery is disconnected, and only start working again when a numeric code is entered. This is intended to deter theft of the radio.</li>
<li>In Windows Vista, Bitlocker can be used to encrypt files. One of  the intended applications for this is that if someone steals your laptop, it will be difficult for them to gain access to your encrypted files.</li>
</ul>
<p>Ross told a story of what happened when he needed to disconnect the battery on his car: the radio stopped working, and the code he had been given to reactivate it didn&#8217;t work - it was the wrong code.<br />
Ross argues that these reactivation codes are unecessary, because other measures taken by the car manufacturers - such as making radios non-standard sizes, and hence not refittable in other car models - have made them redundant.</p>
<p>I described how the motherboard on a laptop had needed to be replaced recently. The motherboard contains the TPM chip, which contains the encryption keys needed to decrypt files protected with Bitlocker. If you replace the motherboard, the files on your hard disk will become unreadable, even if the disk is physically OK. Domain-joined Vista machines can be configured so that a sysadmin somewhere within your organization is able to recover the keys when this happens.</p>
<p>Both of these situations suffer from classic usability problems: the recovery procedures are invoked rarely (so users may not know what they&#8217;re supposed to do), and, if your system is configured incorrectly, you only find out when it is <i>too late</i>: you key in the code to your radio and it remains a doorstop; the admin you hoped was escrowing your keys turns out not to have the private key corresponding to the public key you were encrypting under (or, more subtly: the person with the authority to ask for your laptop&#8217;s key to be recovered is not you, because the appropriate admin has the <i>wrong name</i> for the laptop&#8217;s owner in their database).</p>
<p>I also described what happens when an XBox 360 is stolen. When you buy XBox downloadable content, you buy <i>two</i> licenses: one that&#8217;s valid on any XBox, as long as you&#8217;re logged in to XBox live; and one that&#8217;s valid on just your XBox, regardless of who&#8217;s logged in. If a burglar steals your Xbox, and you buy a new one, you need to get another license of the <i>second</i> type (for all the other people in your household who make use of it). The software makes this awkward, because it knows that you already have a license of the <i>first</i> type, and assumes that you couldn&#8217;t possibly want to buy it again. The work-around is to get a new email address, a new Microsoft Live Account, and a new Gamer Tag, and use these to repurchase the license. You can&#8217;t just change the gamertag, because XBox live doesn&#8217;t let the same Microsoft Live account have two gamertags. And yes, I know, your buddies in the MMORPG you were playing know you by your gamertag, so you don&#8217;t want to change it.</p>
]]></content:encoded>
      <pubDate>Wed, 03 Sep 2008 12:18:14 +0000</pubDate>
      <category domain="http://securityratty.com/tag/xbox">xbox</category>
      <category domain="http://securityratty.com/tag/xbox downloadable content">xbox downloadable content</category>
      <category domain="http://securityratty.com/tag/wrong code">wrong code</category>
      <category domain="http://securityratty.com/tag/xbox live">xbox live</category>
      <category domain="http://securityratty.com/tag/wrong">wrong</category>
      <category domain="http://securityratty.com/tag/car">car</category>
      <category domain="http://securityratty.com/tag/car radios">car radios</category>
      <category domain="http://securityratty.com/tag/files">files</category>
      <category domain="http://securityratty.com/tag/microsoft live account">microsoft live account</category>
      <source url="http://www.lightbluetouchpaper.org/2008/09/03/anti-theft-protocols/">Anti-theft Protocols</source>
    </item>
    <item>
      <title><![CDATA[My LA Times Op Ed on Photo ID Checks at Airport]]></title>
      <link>http://securityratty.com/article/a6c4e0b6a9a71f79c2c06446ffd85b8a</link>
      <guid>http://securityratty.com/article/a6c4e0b6a9a71f79c2c06446ffd85b8a</guid>
      <description><![CDATA[Opinion
The TSA's useless photo ID rules
No-fly lists and photo IDs are supposed to help protect the flying public from terrorists. Except that they don't work
By Bruce Schneier
August 28, 2008
The...]]></description>
      <content:encoded><![CDATA[<p>Opinion</p>

<p><a href="http://www.latimes.com/news/opinion/la-oe-schneier28-2008aug28,0,3099808.story">The TSA's useless photo ID rules</a></p>

<p>No-fly lists and photo IDs are supposed to help protect the flying public from terrorists. Except that they don't work.</p>

<p>By Bruce Schneier </p>

<p>August 28, 2008</p>

<p>The TSA is tightening its photo ID rules at airport security. Previously, people with expired IDs or who claimed to have lost their IDs were subjected to secondary screening. Then the Transportation Security Administration realized that meant someone on the government's no-fly list -- the list that is supposed to keep our planes safe from terrorists -- could just fly with no ID. </p>

<p>Now, people without ID must also answer personal questions from their credit history to ascertain their identity. The TSA will keep records of who those ID-less people are, too, in case they're trying to probe the system.</p>

<p>This may seem like an improvement, except that the photo ID requirement is a joke. Anyone on the no-fly list can easily fly whenever he wants. Even worse, the whole concept of matching passenger names against a list of bad guys has negligible security value.</p>

<p>How to fly, even if you are on the no-fly list: Buy a ticket in some innocent person's name. At home, before your flight, check in online and print out your boarding pass. Then, save that web page as a PDF and use Adobe Acrobat to change the name on the boarding pass to your own. Print it again. At the airport, use the fake boarding pass and your valid ID to get through security. At the gate, use the real boarding pass in the fake name to board your flight.</p>

<p>The problem is that it is unverified passenger names that get checked against the no-fly list. At security checkpoints, the TSA just matches IDs to whatever is printed on the boarding passes. The airline checks boarding passes against tickets when people board the plane. But because no one checks ticketed names against IDs, the security breaks down.</p>

<p>This vulnerability isn't new. It isn't even subtle. I first wrote about it in 2006. I asked Kip Hawley, who runs the TSA, about it in 2007. Today, any terrorist smart enough to Google "print your own boarding pass" can bypass the no-fly list.</p>

<p>This gaping security hole would bother me more if the very idea of a no-fly list weren't so ineffective. The system is based on the faulty notion that the feds have this master list of terrorists, and all we have to do is keep the people on the list off the planes. </p>

<p>That's just not true. The no-fly list -- a list of people so dangerous they are not allowed to fly yet so innocent we can't arrest them -- and the less dangerous "watch list" contain a combined 1 million names representing the identities and aliases of an estimated 400,000 people. There aren't that many terrorists out there; if there were, we would be feeling their effects. </p>

<p>Almost all of the people stopped by the no-fly list are false positives. It catches innocents such as Ted Kennedy, whose name is similar to someone's on the list, and Islam Yusuf (formerly Cat Stevens), who was on the list but no one knew why.</p>

<p>The no-fly list is a Kafkaesque nightmare for the thousands of innocent Americans who are harassed and detained every time they fly. Put on the list by unidentified government officials, they can't get off. They can't challenge the TSA about their status or prove their innocence. (The U.S. 9th Circuit Court of Appeals decided this month that no-fly passengers can sue the FBI, but that strategy hasn't been tried yet.) </p>

<p>But even if these lists were complete and accurate, they wouldn't work. Timothy McVeigh, the Unabomber, the D.C. snipers, the London subway bombers and most of the 9/11 terrorists weren't on any list before they committed their terrorist acts. And if a terrorist wants to know if he's on a list, the TSA has approved a convenient, $100 service that allows him to figure it out: the Clear program, which issues IDs to "trusted travelers" to speed them through security lines. Just apply for a Clear card; if you get one, you're not on the list.</p>

<p>In the end, the photo ID requirement is based on the myth that we can somehow correlate identity with intent. We can't. And instead of wasting money trying, we would be far safer as a nation if we invested in intelligence, investigation and emergency response -- security measures that aren't based on a guess about a terrorist target or tactic.</p>

<p>That's the TSA: Not doing the right things. Not even doing right the things it does.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=0Nd83L"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=0Nd83L" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=Uz4JRL"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=Uz4JRL" border="0"></img></a>
</div>]]></content:encoded>
      <pubDate>Mon, 01 Sep 2008 01:15:41 +0000</pubDate>
      <category domain="http://securityratty.com/tag/list">list</category>
      <category domain="http://securityratty.com/tag/no-fly list">no-fly list</category>
      <category domain="http://securityratty.com/tag/airport">airport</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/security hole">security hole</category>
      <category domain="http://securityratty.com/tag/transportation security administration">transportation security administration</category>
      <category domain="http://securityratty.com/tag/photo">photo</category>
      <category domain="http://securityratty.com/tag/ids">ids</category>
      <category domain="http://securityratty.com/tag/matches ids">matches ids</category>
      <source url="http://www.schneier.com/blog/archives/2008/09/my_la_times_op.html">My LA Times Op Ed on Photo ID Checks at Airport</source>
    </item>
  </channel>
</rss>
