<?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: function]]></title>
    <link>http://securityratty.com/tag/function</link>
    <description></description>
    <pubDate>Tue, 21 Oct 2008 12:18:48 +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[America's Next Top Hash Function Begins]]></title>
      <link>http://securityratty.com/article/782d55dd167bb0c5193cd7724d7e2313</link>
      <guid>http://securityratty.com/article/782d55dd167bb0c5193cd7724d7e2313</guid>
      <description><![CDATA[You might not have realized it, but the next great battle of cryptography began this month. It's not a political battle over export laws or key escrow or NSA eavesdropping, but an academic battle over...]]></description>
      <content:encoded><![CDATA[<p>You might not have realized it, but the next great battle of cryptography began this month. It's not a political battle over export laws or key escrow or NSA eavesdropping, but an academic battle over who gets to be the creator of the next hash standard.</p>

<p>Hash functions are the most commonly used cryptographic primitive, and the most poorly understood. You can think of them as fingerprint functions: They take an arbitrary long data stream and return a fixed length, and effectively unique, string. The security comes from the fact that while it's easy to generate the fingerprint from a file, it's infeasible to go the other way and generate a file given a fingerprint. </p>

<p>Originally created to make digital signatures more efficient, hashes are now used to secure the very fundamentals of our information infrastructure: in password logins, secure web connections, encryption key management, virus and malware scanning, and almost every cryptographic protocol in current use. Without cryptographic hash functions, the internet would simply not work. At the same time, there isn't a good theory of hash functions. Unlike encryption algorithms, there are no secret keys involved; this makes it harder to mathematically define exactly what hash functions are.
</p>

<p>
The National Institute of Standards and Technology, NIST, is <a href="http://csrc.nist.gov/groups/ST/hash/sha-3/index.html">holding a competition</a> to replace the SHA family of hash functions. "SHA" stands for "Secure Hash Algorithm." It was developed by the NSA in 1993 to replace the commercial MD4 and MD5 algorithms, and has been updated several times since then. All the SHA algorithms are very similar, and have been <a href="http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html">increasingly under attack</a>, so NIST <a href="http://www.schneier.com/blog/archives/2005/10/nist_hash_works_1.html">wants to replace them</a>.</p>

<p>The competition is important because, unlike other technological standards, committee design &#151; balancing the interests of diverse constituents &#151; isn't conducive to good security. Security is best when it's designed by expert teams and then subjected to public review. And cryptography is best when it's chosen by competition.</p>

<p>In 1997, NIST held a <a href="http://en.wikipedia.org/wiki/Advanced_Encryption_Standard_process">competition</a> for a <a href="http://csrc.nist.gov/archive/aes/index.html">block cipher</a> to replace DES. Fifteen candidates and three-and-a-half years later, Rijndael became the new Advanced Encryption Standard &#151; AES. NIST is doing the same thing for what it's calling SHA-3 (not, for some unexplained reason, the Advanced Hash Standard or AHS).</p>

<p>The deadline was October 31, and NIST received 64 submissions. This isn't surprising &#151; I <a href="http://www.schneier.com/blog/archives/2008/10/the_skein_hash.html">predicted</a> 80 &#151; as most of the 15 AES submitters were professors, whose students at the time have become professors themselves, with their own students. (If NIST does a stream cipher competition in another ten years, they should expect about 256 submissions.) These submissions came from academia, from industry, and from hobbyists. <cite><a href="http://www.cio.com/article/461164/Amateurs_and_Pros_Vie_to_Build_New_Crypto_Standard">CIO magazine</a></cite> recently interviewed one of the submitters, who is 15. Twenty-eight submissions have been made <a href="http://ehash.iaik.tugraz.at/wiki/The_SHA-3_Zoo">public</a> by the submitters, and six of those have been broken.  </p>

<p>NIST is going through all the submissions right now, making sure they are complete and proper. Their goal is to publish all accepted submissions by the end of November, in advance of the <a href="http://csrc.nist.gov/groups/ST/hash/timeline.html">First Hash Function Candidate Conference</a>, to be held in Belgium right after the <a href="https://www.cosic.esat.kuleuven.be/fse2009/index.shtml">Fast Software Encryption workshop</a> in February.  </p>

<p>The group expects to quickly make a first cut of algorithms &#151; hopefully to about a dozen &#151; and give the community a year of cryptanalysis before making a second cut in 2010. After another year of cryptanalysis, NIST will choose a winner in 2011. Expect a final standard by 2012.</p>

<p>My advice for software developers is to let the process run its course. While it's tempting to use the new cool algorithms in your designs, it's far too soon to trust any of them. This process is likely to result in all sorts of new research results in hash function security, and some real cryptanalytic surprises.  Give the community a few years to figure out which ones are good and which aren't.</p>

<p>I've previously called this sort of thing a cryptographic demolition derby: The last one left standing wins. But that's only partially true. Certainly all the groups will spend the next few years trying to cryptanalyze each other, but in the end there will be a bunch of unbroken algorithms. NIST will select one based on performance and features.</p>

<p>NIST has stated that the goal of this process is not to choose the best standard but to choose a good standard. I think that's smart; in this process, the best is the enemy of the good. While there's no rush to choose a new standard &#151; the SHA-2 algorithms will remain secure for the foreseeable future &#151; we don't want to analyze the candidates forever.</p>

<p>Personally, I was part of a group of eight cryptographers that submitted <a href="http://www.schneier.com/skein.html">Skein</a> to the competition. A decade ago, writing <a href="http://www.schneier.com/twofish.html">Twofish</a> and participating in the AES process was the most fun I had ever had in cryptography. These next few years promise to be even more fun.</p>

<p>---</p>

<p><i>Bruce Schneier is chief security technology officer of BT. His new book is </i>Schneier on Security<i>.</i></p><br style="clear: both;"/>
  <img alt="" style="border: 0; height:1px; width:1px;" border="0" src="http://www.pheedo.com/img.phdo?i=3fb55453a3600c210940457d550e67ec" height="1" width="1"/>
<img src="http://www.pheedo.com/feeds/tracker.php?i=3fb55453a3600c210940457d550e67ec" style="display: none;" border="0" height="1" width="1" alt=""/><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/wired/politics/privacy?a=AfuoN"><img src="http://feeds.feedburner.com/~f/wired/politics/privacy?i=AfuoN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/wired/politics/privacy?a=1WcCn"><img src="http://feeds.feedburner.com/~f/wired/politics/privacy?i=1WcCn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/wired/politics/privacy?a=dcuSn"><img src="http://feeds.feedburner.com/~f/wired/politics/privacy?i=dcuSn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/wired/politics/privacy?a=6jt5N"><img src="http://feeds.feedburner.com/~f/wired/politics/privacy?i=6jt5N" border="0"></img></a>
 <a href="http://feeds.wired.com/~f/wired/politics/security?a=yYWDN"><img src="http://feeds.wired.com/~f/wired/politics/security?i=yYWDN" border="0"></img></a> <a href="http://feeds.wired.com/~f/wired/politics/security?a=yrdIn"><img src="http://feeds.wired.com/~f/wired/politics/security?i=yrdIn" border="0"></img></a> <a href="http://feeds.wired.com/~f/wired/politics/security?a=CF0Rn"><img src="http://feeds.wired.com/~f/wired/politics/security?i=CF0Rn" border="0"></img></a> <a href="http://feeds.wired.com/~f/wired/politics/security?a=l83kN"><img src="http://feeds.wired.com/~f/wired/politics/security?i=l83kN" border="0"></img></a> </div><img src="http://feeds.feedburner.com/~r/wired/politics/privacy/~4/459059854" height="1" width="1"/><img src="http://feeds.wired.com/~r/wired/politics/security/~4/459059855" height="1" width="1"/>]]></content:encoded>
      <pubDate>Wed, 19 Nov 2008 23:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/hash function">hash function</category>
      <category domain="http://securityratty.com/tag/sha">sha</category>
      <category domain="http://securityratty.com/tag/sha-3">sha-3</category>
      <category domain="http://securityratty.com/tag/algorithms">algorithms</category>
      <category domain="http://securityratty.com/tag/cool algorithms">cool algorithms</category>
      <category domain="http://securityratty.com/tag/sha family">sha family</category>
      <category domain="http://securityratty.com/tag/nist held">nist held</category>
      <category domain="http://securityratty.com/tag/unlike encryption algorithms">unlike encryption algorithms</category>
      <category domain="http://securityratty.com/tag/nist">nist</category>
      <source url="http://feeds.wired.com/~r/wired/politics/security/~3/459059855/securitymatters_1120">America's Next Top Hash Function Begins</source>
    </item>
    <item>
      <title><![CDATA[Schneier for TSA Administrator]]></title>
      <link>http://securityratty.com/article/5e368a8d3abaf29420cf0da59287f1d2</link>
      <guid>http://securityratty.com/article/5e368a8d3abaf29420cf0da59287f1d2</guid>
      <description><![CDATA[It's been suggested . For the record, I don't want the job. Since the election, the newspapers and Internet have been flooded with unsolicited advice for President-elect Barack Obama. I'll go ahead...]]></description>
      <content:encoded><![CDATA[<p>It's been <a href="http://www.foxnews.com/story/0,2933,453093,00.html">suggested</a>. For the record, I don't want the job.</p>

<blockquote>Since the election, the newspapers and Internet have been flooded with unsolicited advice for President-elect Barack Obama. I'll go ahead and add mine.

<p>[...]</p>

<p>And by "revamp," I mean "start over." Most security experts agree that the rigmarole we go through at the airport is mere security theater, designed not to make us safer, but to make us feel safer by making it increasingly inconvenient to fly. TSA's approach to security is too reactionary -- too set on preventing attacks and attempted attacks that have already happened. And please, whatever you do, resist the temptation to let TSA workers unionize. Security from terror attacks should be a federal jobs program. You need the authority to fire underperforming screeners quickly and effortlessly. Three game-changing possibilities to head up TSA: security guru Bruce Schneier, Cato Institute security and technology scholar Jim Harper, or Ohio State University's John Mueller.</blockquote></p>

<p>Although I'd be happy to see either Jim or John with it.</p>

<p>I don't want it because it's too narrow.  I think the right thing for the government to do is to give the TSA a lot less money.  I'd rather they defend against the broad threat of terrorism than focus on the narrow threat of airplane terrorism, and I'd rather they defend against the myriad of threats that face our society than focus on the singular threat of terrorism.  But the head of the TSA can't have those opinions; he has to take the money he's given and perform the specific function he's assigned to perform.  Not very much fun, really.</p>

<p>But I'd be happy to advise whoever Obama choses to head the TSA.</p>

<p>The job of the nation's CTO would be more interesting, but I don't think I <a href="http://weblog.infoworld.com/robertxcringely/archives/2008/11/the_once_and_fu.html">want</a> <a href="http://blogs.computerworld.com/obama_cto">it</a>, either.  (Have you seen the <a href="http://www.nytimes.com/2008/11/13/us/politics/13apply.html">screening process</a>?)</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=lxRoN"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=lxRoN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=doEjN"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=doEjN" border="0"></img></a>
</div>]]></content:encoded>
      <pubDate>Tue, 18 Nov 2008 10:46:24 +0000</pubDate>
      <category domain="http://securityratty.com/tag/tsa">tsa</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/mere security theater">mere security theater</category>
      <category domain="http://securityratty.com/tag/cato institute security">cato institute security</category>
      <category domain="http://securityratty.com/tag/tsa workers">tsa workers</category>
      <category domain="http://securityratty.com/tag/security experts agree">security experts agree</category>
      <category domain="http://securityratty.com/tag/attacks">attacks</category>
      <category domain="http://securityratty.com/tag/terror attacks">terror attacks</category>
      <category domain="http://securityratty.com/tag/terrorism">terrorism</category>
      <source url="http://www.schneier.com/blog/archives/2008/11/schneier_for_ts.html">Schneier for TSA Administrator</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[Modified Zeus Crimeware Kit Gets a Performance Boost]]></title>
      <link>http://securityratty.com/article/206d70045cec21b7f158d2fdc041b855</link>
      <guid>http://securityratty.com/article/206d70045cec21b7f158d2fdc041b855</guid>
      <description><![CDATA[Oops, they did it again - modifying an open source crimeware kit like Zeus in order to improve its performance, fix previously known bugs, and release the improved administration script for free at...]]></description>
      <content:encoded><![CDATA[<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://3.bp.blogspot.com/_wICHhTiQmrA/SQ8K2EKd8NI/AAAAAAAACaE/UGYKyEUZBKs/s1600-h/modified_zeus_performance_admin.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/_wICHhTiQmrA/SQ8K2EKd8NI/AAAAAAAACaE/_DEokn56Kdo/s200-R/modified_zeus_performance_admin.png" /></a>Oops, they did it again - <a href="http://ddanchev.blogspot.com/2008/09/modified-zeus-crimeware-kit-comes-with.html">modifying an open source crimeware kit like Zeus</a> in order to improve its performance, fix previously known bugs, and release the improved administration script for free at the end of October.<br />
<br />
It's important to point out that both of these modifications haven't been released by <a href="http://www.usatoday.com/tech/news/computersecurity/2008-08-04-hacker-cybercrime-zeus-identity-theft_N.htm">the original author of Zeus</a>, but by third parties filling in the gaps he has left open. The very nature of open source web based malware exploitation kits is one of the key factors for the ongoing <a href="http://ddanchev.blogspot.com/2008/08/web-based-botnet-command-and-control.html">convergence of traffic management, exploits serving, ddos, and cybercrime as a service</a> features into a simplified cybercrime platform available on demand.<br />
<br />
Following the discovery of <a href="http://ddanchev.blogspot.com/2008/06/zeus-crimeware-kit-vulnerable-to.html">a remotely exploitable flaw within Zeus in June</a> -- a <a href="http://ddanchev.blogspot.com/2008/08/pinch-vulnerable-to-remotely.html">flaw affecting Pinch</a> leaked out two months later -- allowing cyberciminals to inject their own credentials and hijack the botnet of other cybercriminals, this modified version claims to have fixed three vulnerabilities within the original Zeus release, namely, a remote file inclusion flaw and two SQL injections within the administration panel. Here's the new CHANGELOG :<br />
<br />
"<i>- code improvements and optimizations<br />
- internal data checkings added<br />
- exit() function instead of die()<br />
- echo() function instead of print()<br />
- mysql_affected_rows () changed to mysql_num_rows () everywhere<br />
- all queries are fixed in system or mod .php files<br />
- no text password in the database and clear text password in $_SESSION, cookies authentication is gone and md5 hashes are everywhere<br />
- Geo IP support has been added <br />
- umask () bug fixed, the file has been created (chmoded) with different permissions<br />
- language improvements and pre-installation checks<br />
- checking for php version/safe_mod/open_basedir as you're required to run php 5.1.0 or higher to run it successfully<br />
<b>- fixed sql injection in credentials checking </b><br />
<b>- GetUserData () function has been rewritten - possible sql injection fixed</b><br />
<b>- possible remote file inclusion fixed</b><br />
- socket error definition changed<br />
- gcnt () function has been rewritten so you can use geolication - GeoIP which is free and GeoIPCity which is paid<br />
- ip address checking improved through validIP() function improvement<br />
- all queries are now fixed, input data has been sanitized<br />
- fs () function has been fixed in order to improve the quality of the log names<br />
- formatFilePath () function has been added for file upload purposes<br />
- arbitrary file upload bug has been fixed so that you can now upload only images with original names <br />
- the Log2SQL () function has been changed and stricter data checking/sanitizing is added<br />
- internal file sorting mechanism is improved so that files/dirs are sorted by file modification time</i>"<br />
<br />
As it's becoming increasingly clear that what once used to be a proprietary crimeware kits whose business model got undermined by their open source nature and the fact that they've started leaking for average cybercriminals and script kiddies to take advantage of, are today's "open source projects" - and therefore maintaining static lists of exploits and features included within a particular kit is getting even more irrelevant these days. In the long term, the quality assurance processes applied within crimeware kits courtesy of third party cybercriminals, is prone to shift from performance to <a href="http://ddanchev.blogspot.com/2008/10/quality-and-assurance-in-malware.html">improving the infection rates</a>.<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=sKCIN"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=sKCIN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=tB0JN"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=tB0JN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=1XIkn"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=1XIkn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=1XWUn"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=1XWUn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=xmgXN"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=xmgXN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=QpufN"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=QpufN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=i4Nun"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=i4Nun" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanchoDanchevOnSecurityAndNewMedia/~4/441336309" height="1" width="1"/>]]></content:encoded>
      <pubDate>Mon, 03 Nov 2008 11:12:30 +0000</pubDate>
      <category domain="http://securityratty.com/tag/fixed">fixed</category>
      <category domain="http://securityratty.com/tag/sql injection fixed">sql injection fixed</category>
      <category domain="http://securityratty.com/tag/zeus">zeus</category>
      <category domain="http://securityratty.com/tag/fixed sql injection">fixed sql injection</category>
      <category domain="http://securityratty.com/tag/upload">upload</category>
      <category domain="http://securityratty.com/tag/file upload purposes">file upload purposes</category>
      <category domain="http://securityratty.com/tag/file">file</category>
      <category domain="http://securityratty.com/tag/function improvement">function improvement</category>
      <category domain="http://securityratty.com/tag/function">function</category>
      <source url="http://feeds.feedburner.com/~r/DanchoDanchevOnSecurityAndNewMedia/~3/441336309/modified-zeus-crimeware-kit-gets.html">Modified Zeus Crimeware Kit Gets a Performance Boost</source>
    </item>
    <item>
      <title><![CDATA[Microsoft Begins the MS08-067 Post-Mortem]]></title>
      <link>http://securityratty.com/article/8b1a636e03c8882d65a7f324bcded81f</link>
      <guid>http://securityratty.com/article/8b1a636e03c8882d65a7f324bcded81f</guid>
      <description><![CDATA[It's finger-pointing time. Who let the infamous MS08-067 RPC bug through? Did the vaunted Microsoft Security Development Lifecycle fail? Did people approve the code when they shouldn't have? Microsoft...]]></description>
      <content:encoded><![CDATA[It's finger-pointing time.

Who let the infamous MS08-067 RPC bug through? Did the vaunted Microsoft Security Development Lifecycle fail? Did people approve the code when they shouldn't have?

<a href="http://www.webbuyersguide.com/company/66/Microsoft&kc=eweekarticle110308&src=eweekarticle110308">Microsoft</a> has already begun examining these questions in <a href="http://blogs.msdn.com/sdl/archive/2008/10/22/ms08-067.aspx" target="_blank">an entry on the SDL blog.</a> The problem, the blog seems to conclude, is the complexity of the code. It's just really hard to find bugs of this nature. To have found it would have been lucky. Michael Howard, the SDL guru and blogger, isn't really pointing fingers, although commenters on the blog are.

It's a prime example of what I wrote about not long ago when I said <a href="http://www.eweek.com/c/a/Security/Still-Overflowing-After-All-These-Years/">buffer overflows would never go away.</a> The examples we all see of what overflows are and how to stop them are fairly simple things: Allocate a buffer of size b, read 2*b bytes into it. In this case, there were two problems making the problem significantly more complex: The overflow happens inside a loop, during which pointer arithmetic is done. This alone makes it harder to identify for humans to identify the bug and perhaps impossible for tools to identify it without incurring a large incidence of false positives. Stack-checking also failed in this instance.

Howard called the code in question "reasonably complex" and said at a later date he would publish source code from the function. He said Microsoft's automated tools wouldn't find this bug in this type of code. Some comments on the blog asked him whether this complexity is, in and of itself, a problem. Perhaps manual code reviews should have rejected it. Howard didn't go this far, but I sense, in between the lines, that maybe he feels the same.

As a programmer I've seen this sort of code plenty of times and written it myself. The code may have seemed particularly efficient or just plain cool to the programmer, but complex loops with pointer arithmetic sound inherently like asking for trouble. I've written before that Microsoft has a long-term way of writing for the next generation of hardware, and CPU processing power is becoming absurdly cheap. Perhaps an implementation that is slower than necessary, but clear in its operation, is the better choice. Then leave the optimizing to compilers. It's actually an old argument.

Another thing Howard remarks on is the failure of Microsoft's fuzzing tools in this instance. All he says is they didn't find it and they'll work on that, and they are always working on their fuzzing tools. Fuzzing is cool and this episode shows how there's always more work to do in it. <a href="http://blogs.securiteam.com/index.php/archives/1151" target="_blank">Aviram on the SecuriTeam blog relates </a>how over two years ago famous researcher Dave Aitel said his fuzzer found no more bugs in the MS RPC code, so there must not be any. This was probably tongue-in-cheek, but even so, Aitel's probably biting his tongue now.

Even though many levels of tools and procedures put in place to prevent such vulnerabilities failed to do so, it would be a mistake to say the system failed altogether. This vulnerability, just about the worst class of bug we ever get, comes with significant mitigating factors, and is probably, as a practical matter, not exploitable on Windows Vista and Server 2008. Not everything failed.
<p><a href="http://feedads.googleadservices.com/~a/TOAsgjkEp3a_sBJoijuoWeC3U0s/a"><img src="http://feedads.googleadservices.com/~a/TOAsgjkEp3a_sBJoijuoWeC3U0s/i" border="0" ismap="true"></img></a></p><img src="http://feedproxy.google.com/~r/RSS/cheap_hack/~4/yYUo7KKMw0Q" height="1" width="1"/>]]></content:encoded>
      <pubDate>Mon, 03 Nov 2008 10:41:51 +0000</pubDate>
      <category domain="http://securityratty.com/tag/code">code</category>
      <category domain="http://securityratty.com/tag/code plenty">code plenty</category>
      <category domain="http://securityratty.com/tag/publish source code">publish source code</category>
      <category domain="http://securityratty.com/tag/manual code reviews">manual code reviews</category>
      <category domain="http://securityratty.com/tag/microsoft">microsoft</category>
      <category domain="http://securityratty.com/tag/rpc code">rpc code</category>
      <category domain="http://securityratty.com/tag/securiteam blog">securiteam blog</category>
      <category domain="http://securityratty.com/tag/blog">blog</category>
      <category domain="http://securityratty.com/tag/howard remarks">howard remarks</category>
      <source url="http://feeds.ziffdavisenterprise.com/~r/RSS/cheap_hack/~3/yYUo7KKMw0Q/microsoft_begins_the_ms08-067_post-mortem.html">Microsoft Begins the MS08-067 Post-Mortem</source>
    </item>
    <item>
      <title><![CDATA[The Skein Hash Function]]></title>
      <link>http://securityratty.com/article/c65ce3834e7790e113fa9e1fd1504568</link>
      <guid>http://securityratty.com/article/c65ce3834e7790e113fa9e1fd1504568</guid>
      <description><![CDATA[NIST is holding a competition to replace the SHA family of hash functions, which have been increasingly under attack . (I wrote about an early NIST hash workshop here
Skein is our submission (myself...]]></description>
      <content:encoded><![CDATA[<p>NIST is <a href="http://csrc.nist.gov/groups/ST/hash/sha-3/index.html">holding a competition</a> to replace the SHA family of hash functions, which have been <a href="http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html">increasingly under attack</a>.  (I wrote about an early NIST hash workshop <a href="http://www.schneier.com/blog/archives/2005/10/nist_hash_works_1.html">here</a>.)</p>

<p>Skein is our submission (myself and seven others: <a href="http://en.wikipedia.org/wiki/Niels_Ferguson">Niels Ferguson</a>, <a href="http://th.informatik.uni-mannheim.de/People/Lucks/">Stefan Lucks</a>, <a href="http://www.hifn.com/executiveTeam.aspx?id=182">Doug Whiting</a>, <a href="http://www-cse.ucsd.edu/~mihir/">Mihir Bellare</a>, <a href="http://www.cs.washington.edu/homes/yoshi/">Tadayoshi Kohno</a>, <a href="http://www.pgp.com/about_pgp_corporation/management.html">Jon Callas</a>, and Jesse Walker).  <a href="http://www.schneier.com/skein.pdf">Here's</a> the paper:</p>

<blockquote><strong>Executive Summary</strong>

<p>Skein is a new family of cryptographic hash functions.  Its design combines speed, security, simplicity, and a great deal of flexibility in a modular package that is easy to analyze.</p>

<p>Skein is fast.  Skein-512 -- our primary proposal -- hashes data at 6.1 clock cycles per byte on a 64-bit CPU.  This means that on a 3.1 GHz x64 Core 2 Duo CPU, Skein hashes data at 500 MBytes/second per core -- almost twice as fast as SHA-512 and three times faster than SHA-256.  An optional hash-tree mode speeds up parallelizable implementations even more.  Skein is fast for short messages, too; Skein-512 hashes short messages in about 1000 clock cycles.</p>

<p>Skein is secure.  Its conservative design is based on the Threefish block cipher.  Our current best attack on Threefish-512 is on 25 of 72 rounds, for a safety factor of 2.9. For comparison, at a similar stage in the standardization process, the AES encryption algorithm had an attack on 6 of 10 rounds, for a safety factor of only 1.7.  Additionally, Skein has a number of provably secure properties, greatly increasing confidence in the algorithm.</p>

<p>Skein is simple.  Using only three primitive operations, the Skein compression function can be easily understood and remembered.  The rest of the algorithm is a straightforward iteration of this function.</p>

<p>Skein is flexible.  Skein is defined for three different internal state sizes -- 256 bits, 512 bits, and 1024 bits -- and any output size.  This allows Skein to be a drop-in replacement for the entire SHA family of hash functions.  A completely optional and extendable argument system makes Skein an efficient tool to use for a very large number of functions: a PRNG, a stream cipher, a key derivation function, authentication without the overhead of HMAC, and a personalization capability.  All these features can be implemented with very low overhead.  Together with the Threefish large-block cipher at Skein core, this design provides a full set of symmetric cryptographic primitives suitable for most modern applications.</p>

<p>Skein is efficient on a variety of platforms, both hardware and software.  Skein-512 can be implemented in about 200 bytes of state.  Small devices, such as 8-bit smart cards, can implement Skein-256 using about 100 bytes of memory.  Larger devices can implement the larger versions of Skein to achieve faster speeds.</p>

<p>Skein was designed by a team of highly experienced cryptographic experts from academia and industry, with expertise in cryptography, security analysis, software, chip design, and implementation of real-world cryptographic systems.  This breadth of knowledge allowed them to create a balanced design that works well in all environments.</blockquote></p>

<p><a href="http://www.schneier.com/code/skein_NIST_CD_101308.zip">Here's</a> source code, text vectors, and the like for Skein.  Watch the <a href="http://www.schneier.com/skein.html">Skein website</a> for any updates -- new code, new results, new implementations, the proofs.</p>

<p>NIST's deadline is Friday.  It seems as if everyone -- including many amateurs -- is working on a hash function, and I predict that NIST will receive at least 80 submissions.  (Compare this to the 21 submissions NIST received -- five were rejected as not being complete --  for the AES competition in 1998.)  I expect people to start posting their submissions over the weekend.  (Ron Rivest already <a href="http://people.csail.mit.edu/rivest/Rivest-TheMD6HashFunction.ppt">presented</a> MD6 at Crypto in August.)  Probably the best place to watch for new hash functions is <a href="http://planeta.terra.com.br/informatica/paulobarreto/hflounge.html">here</a>; I'll try to keep a listing of the submissions myself.</p>

<p>The selection process will take around four years.  I've previously called this sort of thing a cryptographic demolition derby -- last one left standing wins -- but that's only half true.  Certainly all the groups will spend the next couple of years trying to cryptanalyze each other, but in the end there will be a bunch of unbroken algorithms; NIST will select one based on performance and features.</p>

<p>NIST has stated that the goal of this process is not to choose the best standard but to choose a good standard.  I think that's smart of them; in this process, "best" is the enemy of "good."  My advice is this: immediately sort them based on performance and features.  Ask the cryptographic community to focus its attention on the top dozen, rather than spread its attention across all 80 -- although I also expect that most of the amateur submissions will be rejected by NIST for not being "complete and proper."  Otherwise, people will break the easy ones and the better ones will go unanalyzed.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=RsFiM"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=RsFiM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=VuObM"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=VuObM" border="0"></img></a>
</div>]]></content:encoded>
      <pubDate>Wed, 29 Oct 2008 01:35:29 +0000</pubDate>
      <category domain="http://securityratty.com/tag/skein">skein</category>
      <category domain="http://securityratty.com/tag/hash function">hash function</category>
      <category domain="http://securityratty.com/tag/function">function</category>
      <category domain="http://securityratty.com/tag/implement skein-256">implement skein-256</category>
      <category domain="http://securityratty.com/tag/implement">implement</category>
      <category domain="http://securityratty.com/tag/skein hashes data">skein hashes data</category>
      <category domain="http://securityratty.com/tag/skein website">skein website</category>
      <category domain="http://securityratty.com/tag/hashes data">hashes data</category>
      <category domain="http://securityratty.com/tag/key derivation function">key derivation function</category>
      <source url="http://www.schneier.com/blog/archives/2008/10/the_skein_hash.html">The Skein Hash Function</source>
    </item>
    <item>
      <title><![CDATA[MS08-067 and the SDL]]></title>
      <link>http://securityratty.com/article/df5eba2c21ebdf631d2dd9fbe82532ab</link>
      <guid>http://securityratty.com/article/df5eba2c21ebdf631d2dd9fbe82532ab</guid>
      <description><![CDATA[Hi, Michael here
No doubt you are aware of the out-of-band security bulletin issued by the Microsoft Security Response Center today, and like all security vulnerabilities, this is a vulnerability we...]]></description>
      <content:encoded><![CDATA[<P mce_keep="true">Hi, Michael here.</P>
<P>No doubt you are aware of the out-of-band security bulletin issued by the <A href="http://www.microsoft.com/technet/security/Bulletin/MS08-067.mspx" mce_href="http://www.microsoft.com/technet/security/Bulletin/MS08-067.mspx">Microsoft Security Response Center</A> today, and like all security vulnerabilities, this is a vulnerability we can learn from and, if necessary, can use to shape future versions of the Security Development Lifecycle (SDL).</P>
<P>Before I get into some of the details, it's important to understand that the SDL is designed as a multi-pronged security process to help systemically reduce security vulnerabilities. In theory, if one facet of the SDL process fails to prevent or catch a bug, then some other facet should prevent or catch the bug. The SDL also mandates the use of security defenses, because we know full well that the SDL process will never catch all security bugs. As we have said many times, the goal of the SDL is to "Reduce vulnerabilities, and reduce the severity of what's missed."</P>
<P>In this post, I want to focus on the SDL-required code analysis, code review, fuzzing and compiler and operating system defenses and how they fared.</P>
<H3>Code Analysis and Review</H3>
<P>I want to start by analyzing the code to understand why we did not find this bug through manual code review nor through the use of our static analysis tools. First, the code in question is reasonably complex code to canonicalize path names; for example, strip out ‘..' characters and such to arrive at the simplest possible directory name. The bug is a stack-based buffer overflow inside a loop; finding buffer overruns in loops, especially complex loops, is difficult to detect with a high degree of probability without producing many false positives. At a later date I will publish more of the source code for the function. </P>
<P>The loop inside the function walks along an incoming string to determine if a character in the path might be a dot, dot-dot, slash or backslash and if it is then applies canonicalization algorithms.</P>
<P>The irony of the bug is it occurs while calling a bounded function call:</P>
<BLOCKQUOTE>
<P>_tcscpy_s(previousLastSlash, pBufferEnd - previousLastSlash, ptr + 2);</P></BLOCKQUOTE>
<P>This function is a macro that expands to <A href="http://msdn.microsoft.com/en-us/library/td1esda9(VS.80).aspx" mce_href="http://msdn.microsoft.com/en-us/library/td1esda9(VS.80).aspx">wcscpy_s</A>(dest, len, source); technically, the bug is not in the call to wcscpy_s, but it's in the way the arguments are calculated. As I alluded to, all three arguments are highly dynamic and constantly updated within the while() loop. There is a great deal of pointer arithmetic in this loop. Without going into all the gory attack details, given a specific path, and after the while() loop has been passed through a few times, the pointer, previousLastSlash, gets clobbered. </P>
<P>In my opinion, hand reviewing this code and successfully finding this bug would require a great deal of skill and luck. So what about tools?&nbsp; It's very difficult to design an algorithm which can analyze C or C++ code for these sorts of errors.&nbsp; The possible variable states grows very, very quickly.&nbsp; It's even more difficult to take such algorithms and scale them to non-trivial code bases. This is made more complex as the function accepts a highly variable argument, it's not like the argument is the value 1, 2 or 3! Our present toolset does not catch this bug. </P>
<P>Ok, now I'm really going out on a limb with this next section.</P>
<P>Over the last year or so I've noticed that the security vulnerabilities across Microsoft, but most noticeably in Windows have become bugs of a class I call "onesey - twosies" in other words, one-off bugs. There is a good side and a bad side to this. First the good news; I think perhaps we have removed a good number of the low-hanging security vulnerabilities from many of our products, especially the newer code. The bad news is, we'll continue to have vulnerabilities because you cannot train a developer to hunt for unique bugs, and creating tools to find such bugs is also hard to do without incurring an incredible volume of false positives. With all that said, I will add detail about one-off bugs to our internal education; I think it's important to make people aware that even with great tools and great security-savvy engineers, there are still bugs that are very hard to find.</P>
<H3>Fuzz Testing</H3>
<P>I'll be blunt; our fuzz tests did not catch this and they should have. So we are going back to our fuzzing algorithms and libraries to update them accordingly. For what it's worth, we constantly update our fuzz testing heuristics and rules, so this bug is not unique.</P>
<H3>Defenses</H3>
<P>If you want the full details of the defenses, and how they come into play on Windows Vista and Windows Server 2008, I urge you to read teh SVRD team's in-depth <A href="http://blogs.technet.com/swi/" mce_href="http://blogs.technet.com/swi/">analysis</A>&nbsp;once it is posted.</P>
<P>A big focus of the SDL is to define and require defenses because we have no allusions about finding or preventing all security vulnerabilities by attempting to get the code right all the time, because no-one can do that. No one. &nbsp;See my comment above about one-off bugs! </P>
<P>Let's look at each SDL mandated requirement and how they fared in light of this vulnerability.</P>
<H4>-GS</H4>
<P>The -GS story is not so simple. A lot of code is executed before a cookie check is made and the attacker can control the overflow because the overflow starts at an offset before the stack buffer, rather than at the stack buffer itself. So the attacker can overwrite other frames on the call stack, corresponding to functions that return before a cookie check is made. That's a long way of saying that -GS was not meant to prevent this type of scenarios.</P>
<H4>ASLR and NX</H4>
<P>The code fully complies with the SDL, and is linked with /DYNAMICBASE and /NXCOMPAT on Windows Vista and Windows Server 2008. There are great defenses when used together, and reduce the chance of a successful attack substantially. Also, the stack offset is randomized too, making a deterministic attack even more unlikely.</P>
<H4>Service Restart Policy</H4>
<P>By default the affected service is marked to restart only twice after a crash on Windows Vista and Windows Server 2008, which means the attacker has only two attempts to get the attack right. Prior to Windows Vista, the attacker has unlimited attempts because the service restarts indefinitely. </P>
<H4>Authentication</H4>
<P>Thanks to mandatory integrity control (MIC) settings (which comes courtesy of UAC) the networking endpoint that leads to the vulnerable code requires authentication on Windows Vista and Windows Server 2008 by default. Prior to Windows Vista, the end point is always anonymous, so anyone can attack it, so long as the attacker can traverse the firewall. This is a great example of SDL's focus on attack surface reduction; requiring authentication means the number of attackers that can access the entry point is dramatically reduced.</P>
<H4>Firewall</H4>
<P>We enabled the firewall by default in Windows XP SP2 and later, this was a direct learning from the Blaster worm. By default, ports 139 and 445 are not opened to the Internet on Windows XP SP2, Windows Vista and Windows Server 2008. </P>
<H3>Summary</H3>
<P>The $64,000 question we ask ourselves when we issue any bulletin is "did SDL fail?" and the answer in this case is categorically "No!" No because as I said earlier the goal of the SDL is "Reduce vulnerabilities, and reduce the severity of what you miss." Windows Vista and Windows Server 2008 customers are protected by the defenses in the operating system that have been crafted in part by the SDL. The development team who built the affected component compiled and linked with the appropriate settings as described in "<A href="http://msdn.microsoft.com/en-us/library/bb430720.aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb430720.aspx">Windows Vista ISV Security</A>" and <A href="http://www.microsoft.com/mspress/books/10723.aspx" mce_href="http://www.microsoft.com/mspress/books/10723.aspx">Writing Secure Code for Windows Vista</A> so that their service is protected by the operating system. </P>
<P>The team did not poke holes through the firewall unnecessarily, in accordance with the SDL.</P>
<P>The team reduced their attack surface, in accordance with the SDL, by requiring authenticated connections rather than anonymous connections by default.</P>
<P>We know that the SDL-mandated -GS has very strict heuristics so some functions are not protected by a stack cookie, but in this case, there is no buffer on the stack, so there will be no cookie. We know this. There are no plans to remedy this in the short term. </P>
<P>Fuzzing missed the bug, so we will update our fuzz testing heuristics, but we continually update our fuzzing heuristics anyway. </P>
<P>In short, based on what we know right now, Windows Vista and Windows Server 2008 customers are protected because of the SDL-mandated defenses in the operating system, and because the development team adhered to the letter of the SDL to take advantage of those defenses.</P>
<P>Chalk one up for Windows Vista and later and the SDL!</P>
<P>As usual, questions and comments are very welcome.</P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9012073" width="1" height="1">]]></content:encoded>
      <pubDate>Wed, 22 Oct 2008 21:09:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/manual code review">manual code review</category>
      <category domain="http://securityratty.com/tag/code review">code review</category>
      <category domain="http://securityratty.com/tag/vulnerabilities">vulnerabilities</category>
      <category domain="http://securityratty.com/tag/reduce security vulnerabilities">reduce security vulnerabilities</category>
      <category domain="http://securityratty.com/tag/sdl">sdl</category>
      <category domain="http://securityratty.com/tag/windows">windows</category>
      <category domain="http://securityratty.com/tag/windows server">windows server</category>
      <category domain="http://securityratty.com/tag/sdl process fails">sdl process fails</category>
      <category domain="http://securityratty.com/tag/sdl process">sdl process</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/10/22/ms08-067.aspx">MS08-067 and the SDL</source>
    </item>
    <item>
      <title><![CDATA[Good hygiene and Banned APIs]]></title>
      <link>http://securityratty.com/article/76a6df21c84c03ac4f35261fb88bd645</link>
      <guid>http://securityratty.com/article/76a6df21c84c03ac4f35261fb88bd645</guid>
      <description><![CDATA[Jeremy Dallman here with a quick note about a code sanitizing tool we are making available to support one of the SDL requirements Remove all Banned APIs from your code
This requirement was put in...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Jeremy Dallman here with a quick note about&nbsp;a code sanitizing tool we are making available to support one of the SDL requirements – Remove all Banned APIs from your code. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>This requirement was put in place to prevent use of certain older C runtime functions that lead to buffer overrun flaws and have been deprecated. In the Security Development Lifecycle book, an entire chapter is dedicated to the topic of banned function calls. In the book, we also provide a copy of the banned.h header file on the companion CD. This header file allows you to locate any banned functions in your code.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>On MSDN, we have document the </FONT><A href="http://msdn.microsoft.com/en-us/library/bb288454.aspx"><FONT face=Calibri size=3>SDL list of Banned Function Calls</FONT></A><FONT face=Calibri size=3>, but the header file has not been publicly available outside the SDL book until now. Today, we are providing the banned.h header on the Microsoft Download Center. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><A href="http://download.microsoft.com/download/2/e/b/2ebac853-63b7-49b4-b66f-9fd85f37c0f5/banned.h"><FONT face=Calibri size=3>Find the banned.h header here</FONT></A></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>By including this header file, then using #include “banned.h”; you will be able to locate any banned functions in your code. The full list of banned APIs is also included in the header file.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Alternately, if you are using the compiler in Visual Studio 2005 or later, you have a built-in way to check for these banned functions. To catch banned C runtime functions, you can compile with /W4 and then triage all C4996 warnings. In code reviews, you should always remove any code that disables the C4996 warnings&nbsp;- e.g.: #pragma warning(disable:4996). This is one simple way to ensure your code is released without banned functions.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Sanitizing your code to remove potentially insecure APIs is a vital protection. Whether you include the banned.h header file or leverage the /W4-C4996 warnings in the Visual Studio 2005 compiler, you now have two ways to check your code and meet another SDL requirement in your development phase.</FONT></P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9011814" width="1" height="1">]]></content:encoded>
      <pubDate>Wed, 22 Oct 2008 18:08:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/header file">header file</category>
      <category domain="http://securityratty.com/tag/header">header</category>
      <category domain="http://securityratty.com/tag/code">code</category>
      <category domain="http://securityratty.com/tag/code reviews">code reviews</category>
      <category domain="http://securityratty.com/tag/runtime functions">runtime functions</category>
      <category domain="http://securityratty.com/tag/functions">functions</category>
      <category domain="http://securityratty.com/tag/apis">apis</category>
      <category domain="http://securityratty.com/tag/w4-c4996 warnings">w4-c4996 warnings</category>
      <category domain="http://securityratty.com/tag/c4996 warnings">c4996 warnings</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/10/22/good-hygiene-and-banned-apis.aspx">Good hygiene and Banned APIs</source>
    </item>
    <item>
      <title><![CDATA[Massive SQL Injection Attacks - the Chinese Way]]></title>
      <link>http://securityratty.com/article/42e493c2424af4f8ef6cc5dd581317bf</link>
      <guid>http://securityratty.com/article/42e493c2424af4f8ef6cc5dd581317bf</guid>
      <description><![CDATA[From copycats and &quot;localizers&quot; of Russian web malware exploitation kits , to suppliers of original hacking tools, the Chinese IT underground has been closely following the emerging threats and the...]]></description>
      <content:encoded><![CDATA[<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://2.bp.blogspot.com/_wICHhTiQmrA/SP46U3HSQHI/AAAAAAAACUY/QH40puDsgXY/s1600-h/security_company_hacking_tools.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/_wICHhTiQmrA/SP46U3HSQHI/AAAAAAAACUY/QO3L0OWKJcY/s200-R/security_company_hacking_tools.JPG" /></a>From <a href="http://ddanchev.blogspot.com/2008/05/firepack-exploitation-kit-localized-to.html">copycats</a> and <a href="http://ddanchev.blogspot.com/2007/10/mpack-and-icepack-localized-to-chinese.html">"localizers" of Russian web malware exploitation kits</a>, to suppliers of original hacking tools, the Chinese IT underground has been closely following the emerging threats and the obvious insecurities on a large scale, and so is either filling the niches left open by other international communities, or coming up with tools setting new benchmarks for massive SQL injection attacks, like the case with this one :<br />
<br />
<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://3.bp.blogspot.com/_wICHhTiQmrA/SP5DX0GzAtI/AAAAAAAACUg/3GOnK2TsSRk/s1600-h/search_engines_mass_SQL_injection.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/_wICHhTiQmrA/SP5DX0GzAtI/AAAAAAAACUg/pdCwjwri7LM/s200-R/search_engines_mass_SQL_injection.JPG" /></a>"<i>A professional web site vulnerability scanning, use of tools, SQL injection is a new generation of tools to help Web developers and site of the station quickly find vulnerabilities in order to be able to effectively prepare Security work. At the same time, the tool to Web developers to demonstrate the ways in which hackers are using these vulnerabilities, hackers, as well as through the loopholes to do things, can effectively raise the safety awareness of relevant personnel.</i>"<br />
<br />
<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://2.bp.blogspot.com/_wICHhTiQmrA/SP5DkEEtbqI/AAAAAAAACUo/Mm7pCwd7LT4/s1600-h/search_engines_mass_SQL_injection2.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/_wICHhTiQmrA/SP5DkEEtbqI/AAAAAAAACUo/qMaY93_QOvY/s200-R/search_engines_mass_SQL_injection2.JPG" /></a>Nothing's wrong with the marketing pitch at the first place, but going through the features, the "massive SQL injections through search engine reconnaissance" and automatic page rank verification which you can see in the attached screenshots, ruin the "security auditing" marketing pitch. The tool not only allows easy integration of potentially vulnerable sites obtained through <a href="http://ddanchev.blogspot.com/2007/07/sql-injection-through-search-engines.html">search engines reconnaissance</a>, but also, is prioritizing the results based on the probability for successful injection, next to the page rank of the domains in question. A simple demonstration offered by the company is also, directly enticing its users to "localize" the search engine reconnaissance, by filtering the search results for a particupar country, in this case they used French sites for one of the demos. Here are some excerpts from its CHANGE log speaking for themselves :<br />
<br />
"<i><b>2008.7.15 release version 1.3 </b><br />
&nbsp;</i><br />
<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://2.bp.blogspot.com/_wICHhTiQmrA/SP5DyBXVu7I/AAAAAAAACUw/37LsW8yh_AE/s1600-h/chinese_SQL_injector.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/_wICHhTiQmrA/SP5DyBXVu7I/AAAAAAAACUw/ub8OVgeWC6Y/s200-R/chinese_SQL_injector.png" /></a><i>- New powerful "automatic machine cycle" feature&nbsp;</i><br />
<i>- Automatic machine cycle is to provide assistance to the advanced user manual into the use of a very&nbsp;</i><br />
<i>- powerful and flexible module, the main sites used for some special filtering into the hand, is almost a&nbsp;</i><br />
<i>- universal tool, you can achieve the following: <br />
&nbsp;</i><br />
<a href="http://4.bp.blogspot.com/_wICHhTiQmrA/SP5D-g3FyAI/AAAAAAAACU4/xYACViJuVn4/s1600-h/chinese_SQL_injector2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/_wICHhTiQmrA/SP5D-g3FyAI/AAAAAAAACU4/oPVCur3PMgI/s200-R/chinese_SQL_injector2.png" /></a><i>1. In support of GET / POST / COOKIES in a variety of ways, such as the injection.&nbsp;</i><br />
<i>2. Scan the key to the page (background, upload, WebShell, databases, backup files, etc.).&nbsp;</i><br />
<i>3. According to the dictionary to violence landing back-guess solution WebShell password and password (required to verify that the code can not guess solution).&nbsp;</i><br />
<i>4. Page language does not limit the types and databases (to provide specific statements into the database).&nbsp;</i><br />
<i>5. At the same time, support for the circulation of the two variables and two dictionaries, fast running and violent content of the database solution to guess a password.</i>"<br />
<br />
It gets even more interesting in terms of the massive SQL injection attacks mentality which is pretty evident on all fronts :<br />
<br />
<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://3.bp.blogspot.com/_wICHhTiQmrA/SP5ELiLoBiI/AAAAAAAACVA/0fb6Epapby0/s1600-h/chinese_SQL_injector3.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/_wICHhTiQmrA/SP5ELiLoBiI/AAAAAAAACVA/nmrC87TeCxo/s200-R/chinese_SQL_injector3.png" /></a>"<i>- The use of the three search engine sites scans to invade the side to complete<br />
- in scanning probe into the Web site ranking points<br />
- added, "VBS upload to download", "upload directory Web site viewer," "FTP upload to download configuration file" function to make it more convenient for the sa rights to use the site. <br />
- New "sequence document scanners" <br />
- What is the sequence document scanners role? Upload to find loopholes, some of the procedures to upload the file after the upload will be renamed, rename the way the system is usually based on time or incremental increase in the number prefix code for the upload process, if not to return after the file name, Upload files to know the url is usually very difficult to sequence the use of paper scanner can be scanned out</i><br />
<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://3.bp.blogspot.com/_wICHhTiQmrA/SP5FUvl0FhI/AAAAAAAACVY/Y5mM2l7Q6K4/s1600-h/chinese_SQL_injector4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/_wICHhTiQmrA/SP5FUvl0FhI/AAAAAAAACVY/DU7feV1pnjU/s200-R/chinese_SQL_injector4.png" /></a><i><br />
- The best reverse domain name query engine, and quasi-wide <br />
- in scanning the database of basic information, an increase of the database of information related to the process, the link has information on the database server user login (sa need permission) <br />
- control of the interface had a big adjustment, the interface process easier to understand and operate. <br />
- based on a significant site of the wrong mode of access to a comprehensive code optimization and more accurate access to the content, accuracy and access to show progress. <br />
- added, "VBS upload to download", "upload directory Web site viewer," "FTP upload to download configuration file" function to make it more convenient for the sa rights to use the site.&nbsp;</i><br />
<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://2.bp.blogspot.com/_wICHhTiQmrA/SP5FgfdkSbI/AAAAAAAACVg/R77obP_vxig/s1600-h/chinese_SQL_injector5.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/_wICHhTiQmrA/SP5FgfdkSbI/AAAAAAAACVg/ORo853Aicy4/s200-R/chinese_SQL_injector5.png" /></a><i><br />
- point into the types of improved detection order to improve the efficiency of detection. <br />
- improved automatic keyword detection, automatic keyword detection more accurate. <br />
- probe into the points the way to improve and increase the use of automatic detection of the keyword detection. <br />
- type of database to improve the detection, the use of the contents of the length of the failure to detect the type of database automatically switch to the probe through the keyword. <br />
- automatically save and load solution has been to guess the tree structure of the database, guess Solutions has been the content and structure of the database will automatically save and open the next time the injection point will be automatically made available, the solutions do not have to guess again, the continuity of work Greatly increased.&nbsp;</i><br />
<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://2.bp.blogspot.com/_wICHhTiQmrA/SP5FrcWctII/AAAAAAAACVo/DcQNU5crc5k/s1600-h/chinese_SQL_injector6.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="131" src="http://2.bp.blogspot.com/_wICHhTiQmrA/SP5FrcWctII/AAAAAAAACVo/9zGp4bsPB2U/s200-R/chinese_SQL_injector6.png" width="200" /></a><i><br />
- solved from the database to read large amounts of data (on hundreds of thousands or millions of records), the half-way card program will die. <br />
- increased significantly on the wrong model of ASP.NET and SQL Server2005 significant mode of dealing with mistakes, error messages can be extracted from a Web directory! <br />
- significant amendments to the wrong mode, some of the injected one by one point in the field or access to the contents of the issue can not be successful (error code in hand); for increased access to specific points table and into the field.&nbsp;</i><br />
<i><br />
- amendments to the text of a significant error patterns to detect and correct use of loopholes in the system can be used more to expand. (Text significantly in the wrong mode in version 1.1 already supported, but in the version 1.2 upgrade in the process of scanning to improve the performance of the Gaodiao careless. -_-#) <br />
- on a variety of encoded text can be significantly wrong in the right-compatible, able to correctly handle the ASP.NET page of the text marked wrong. Through custom error keyword, truly compatible with any language, any coding error message. <br />
- crack anti-improvement and enhancement. <br />
- An increase of auto-detection feature keywords.&nbsp;</i><br />
<i><br />
- Mssql database specifically for significant points into the wrong mode of detection and the use of up and down the hard work, and many other software can not detect the point of injection can also be used. <br />
- Automatic save and load access to the database, to allow manual known to add tables and fields for solutions to guess. <br />
- Can be used to amend the degree of accuracy; optimize the code to reduce memory footprint; enhance the stability of multi-threading. <br />
- Significant amendments to the wrong mode solution guess the contents of the database must be checked first field defects.</i>"<br />
<br />
The public version of the tool has been in the while for over an year, with a VIP version available to customers only.<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=PsITM"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=PsITM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=JBO9M"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=JBO9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=owYAm"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=owYAm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=LTzNm"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=LTzNm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=LaPQM"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=LaPQM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=go5fM"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=go5fM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=rYJ9m"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=rYJ9m" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanchoDanchevOnSecurityAndNewMedia/~4/427878843" height="1" width="1"/>]]></content:encoded>
      <pubDate>Tue, 21 Oct 2008 12:18:48 +0000</pubDate>
      <category domain="http://securityratty.com/tag/keyword detection">keyword detection</category>
      <category domain="http://securityratty.com/tag/detection">detection</category>
      <category domain="http://securityratty.com/tag/database">database</category>
      <category domain="http://securityratty.com/tag/database solution">database solution</category>
      <category domain="http://securityratty.com/tag/solution">solution</category>
      <category domain="http://securityratty.com/tag/process">process</category>
      <category domain="http://securityratty.com/tag/upload process">upload process</category>
      <category domain="http://securityratty.com/tag/text">text</category>
      <category domain="http://securityratty.com/tag/load solution">load solution</category>
      <source url="http://feeds.feedburner.com/~r/DanchoDanchevOnSecurityAndNewMedia/~3/427878843/massive-sql-injection-attacks-chinese.html">Massive SQL Injection Attacks - the Chinese Way</source>
    </item>
  </channel>
</rss>
