<?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'><id>tag:blogger.com,1999:blog-20619634</id><updated>2009-02-21T01:45:56.093-08:00</updated><title type='text'>Determina Security Blog</title><subtitle type='html'>Security blog by the researchers at Determina</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://determina.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-20619634.post-3585268538585091288</id><published>2007-06-29T15:06:00.000-07:00</published><updated>2007-06-29T15:17:53.023-07:00</updated><title type='text'>Determina Personal Edition and SPF</title><content type='html'>As some people know, we've been in the process of making our 'lights-out' security solution available for the consumer market over the last couple of months.  While we're not ready to release it to the general public, we have been posting new betas at www.determina.com/consumer recently, and the latest rev is significant.&lt;br /&gt;&lt;br /&gt;For one thing, we have changed the GUI so that it is catchy and 'consumer-friendly'.  Our enterpriese products have a great interface, but they are oriented toward somebody who is a security administrator at a Fortune 1000 company.  It's assumed that they know alot about security events, are managing 1000's of machines, etc.  You can't and don't want to do that in the consumer marketplace. Hence we've introduced a new GUI that allows a minimum amount of control, and only the essential features.&lt;br /&gt;&lt;br /&gt;Second, and the reason for this post is something called SPF or System Protection Factor. One of the biggest problems that normal folks (me included) have is keeping up with patches from multiple ISV's. Microsoft does an okay job with auto-update, but even there if your PC is a year or so old, you may not be getting all of the latest patches and you won't know it.  Worse yet, there are a bunch of other ISV's who put out patches, and you may not have them installed either. Lastly, there are always the 0-days to worry about that don't have patches.&lt;br /&gt;&lt;br /&gt;SPF computes a single number to indicate how vulnerable you are. First, it tries to figure out which known vulnerabilities are still active on your machine.  Second, it shows how much Determina's VPS protection would help if it is installed and activated.&lt;br /&gt;&lt;br /&gt;When put together SPF and VPS protection give you extra knowledge and provide you with great protection against vulnerabilites in the software on your desktop that hackers might exploit without your knowledge.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-3585268538585091288?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/3585268538585091288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=3585268538585091288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/3585268538585091288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/3585268538585091288'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2007/06/determina-personal-edition-and-spf.html' title='Determina Personal Edition and SPF'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-1493852211691748476</id><published>2007-05-30T12:57:00.000-07:00</published><updated>2007-05-30T13:02:48.686-07:00</updated><title type='text'>Driveby downloads</title><content type='html'>The folks over at Google have posted a &lt;a href="http://www.usenix.org/events/hotbots07/tech/full_papers/provos/provos.pdf"&gt;paper &lt;/a&gt;where they have searched their web cache for drive-by attacks that take advantage of vulnerabilities that transparently allow malware to be downloaded.  It's significantly more data walked than others papers that I've seen. The paper also characterizes the mechanisms that hackers use to infect third-party sites dynamically.&lt;br /&gt;&lt;br /&gt;Of course, with VPS installed you shouldn't be vulnerable to most of these kinds of attacks :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-1493852211691748476?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/1493852211691748476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=1493852211691748476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/1493852211691748476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/1493852211691748476'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2007/05/driveby-downloads.html' title='Driveby downloads'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-7569965904751520181</id><published>2007-05-22T16:30:00.000-07:00</published><updated>2007-05-22T16:33:34.946-07:00</updated><title type='text'>Google Talk</title><content type='html'>Alex was over at Google yesterday to give a talk about exploiting vulnerabilities and some of the techniques that hackers use.  It gives a number of examples of current techniques which show why products like Determina VPS are important for mitigating risk against vulnerabilities.&lt;br /&gt;&lt;br /&gt;Here's a pointer to the &lt;a href="http://video.google.com/videoplay?docid=-7185841369679533904"&gt;video &lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-7569965904751520181?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/7569965904751520181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=7569965904751520181' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/7569965904751520181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/7569965904751520181'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2007/05/google-talk.html' title='Google Talk'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-6409052009778932918</id><published>2007-04-05T16:35:00.000-07:00</published><updated>2007-04-05T16:51:39.315-07:00</updated><title type='text'>Heap Feng Shui</title><content type='html'>With all of the hubbub over the ANI vulnerability over the last week, we neglected to mention a recent paper and preso that Alex gave at &lt;a href="http://www.blackhat.com"&gt;BlackHat Europe&lt;/a&gt; last week.  There are three parts to any memory-based exploit:&lt;br /&gt;&lt;br /&gt;1. the software vulnerability that allows memory to be overwritten&lt;br /&gt;2. setting up the processes memory to contain information that you want it to contain.&lt;br /&gt;3. the structure of the actual shellcode.&lt;br /&gt;&lt;br /&gt;For recent browser-based vulnerabilities, it has been known how to use &lt;a href="http://www.edup.tudelft.nl/%7Ebjwever/advisory_iframe.html.php"&gt;heap-spraying&lt;/a&gt; to put the shellcode into the process for awhile.  However, it has become more difficult to actually overwrite a location that causes one to branch into that shellcode.  Alex's paper describes how to use Javascript to force the heap into a particular configuration that the hacker desires to take advantage of a vulnerability.  To get there, you have to take a reverse engineering trip through several layers of abstraction in the software.  Very elegant!&lt;br /&gt;&lt;br /&gt;Enjoy the read &lt;a href="http://www.determina.com/security.research/presentations/bh-eu07/bh-eu07-sotirov.pdf"&gt;pointer&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-6409052009778932918?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/6409052009778932918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=6409052009778932918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/6409052009778932918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/6409052009778932918'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2007/04/heap-feng-shui.html' title='Heap Feng Shui'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-4808142515760847985</id><published>2007-04-02T17:10:00.000-07:00</published><updated>2007-04-02T17:49:15.020-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='0-day'/><category scheme='http://www.blogger.com/atom/ns#' term='exploit'/><title type='text'>Exploiting Vista with ANI</title><content type='html'>This is a short flash video of exploiting the ANI vulnerability on Windows Vista. The exploit works against both Internet Explorer 7 and Mozilla Firefox 2.0.&lt;br /&gt;&lt;br /&gt;Click on the image to play:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.determina.com/security.research/flash/ani.html"&gt;&lt;br /&gt;&lt;img style="cursor: pointer; border: 2px solid black;" src="http://www.determina.com/security.research/flash/ani.png" alt="Play Video" height="495" width="530" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-4808142515760847985?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/4808142515760847985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=4808142515760847985' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/4808142515760847985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/4808142515760847985'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2007/04/exploiting-vista-with-ani.html' title='Exploiting Vista with ANI'/><author><name>Alexander Sotirov</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12339814691213459333'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-6932058993053570552</id><published>2007-02-12T16:36:00.000-08:00</published><updated>2007-02-12T18:41:00.816-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='0-day'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>1994 called, it wants its bug back!</title><content type='html'>Sometimes I wonder why we bother with all these impossibly hard to exploit heap corruption vulnerabilities when there are still remote code execution bugs that can be exploited with nothing more than a simple command.&lt;br /&gt;&lt;br /&gt;This weekend there was a &lt;a href="http://seclists.org/fulldisclosure/2007/Feb/0217.html"&gt;post&lt;/a&gt; on the Full-Disclosure mailing list describing a mindblowingly simple remote root vulnerability in Solaris:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;telnet -l -f&lt;i&gt;username&lt;/i&gt; &lt;i&gt;hostname&lt;/i&gt;&lt;/pre&gt;&lt;br /&gt;The telnet command above will log you in on any Solaris box with any username, without authentication. All you have to do is put '-f' before the username. On some system the root login is disabled, but you can log in as user bin and easily escalate your privileges to root.&lt;br /&gt;&lt;br /&gt;Amusingly, it turns out that this is a ancient bug, first reported in 1994 on AIX. You can read its entry in &lt;a href="http://osvdb.org/displayvuln.php?osvdb_id=1007"&gt;OSVDB&lt;/a&gt;, including a link to the original discussion on Bugtraq.&lt;br /&gt;&lt;br /&gt;The cause of the vulnerability is the -f option of /usr/sbin/login. This option tells login that the user is pre-authenticated and should be allowed to log in with the username specified after the option. As a security mechanism, login allows the use of the -f option only when it is invoked with root permissions. The relevant Solaris code in &lt;a href="http://src.opensolaris.org/source/xref/netvirt/usr/src/cmd/login/login.c"&gt;login.c&lt;/a&gt; is given below:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;1399    &lt;b&gt;case&lt;/b&gt; &lt;span style="color:green;"&gt;'f'&lt;/span&gt;:&lt;br /&gt;1400            &lt;span style="color: rgb(102, 102, 102);"&gt;/*&lt;br /&gt;1401             * Must be root to bypass authentication&lt;br /&gt;1402             * otherwise we exit() as punishment for trying.&lt;br /&gt;1403             */&lt;/span&gt;&lt;br /&gt;1404            &lt;b&gt;if&lt;/b&gt; (getuid() != &lt;span style="color:brown;"&gt;0&lt;/span&gt; || geteuid() != &lt;span style="color:brown;"&gt;0&lt;/span&gt;) {&lt;br /&gt;1405                    &lt;span style="color: rgb(153, 0, 153);"&gt;audit_error&lt;/span&gt; = ADT_FAIL_VALUE_AUTH_BYPASS;&lt;br /&gt;1406&lt;br /&gt;1407                    &lt;span style="color: rgb(153, 0, 153);"&gt;login_exit&lt;/span&gt;(&lt;span style="color:brown;"&gt;1&lt;/span&gt;); &lt;span style="color: rgb(102, 102, 102);"&gt;/* sigh */&lt;/span&gt;&lt;br /&gt;1408                    &lt;span style="color: rgb(102, 102, 102);"&gt;/*NOTREACHED*/&lt;/span&gt;&lt;br /&gt;1409            }&lt;br /&gt;1410            &lt;span style="color: rgb(102, 102, 102);"&gt;/* save fflag user name for future use */&lt;/span&gt;&lt;br /&gt;1411            &lt;span style="color: rgb(153, 0, 153);"&gt;SCPYL&lt;/span&gt;(&lt;span style="color: rgb(153, 0, 153);"&gt;user_name&lt;/span&gt;, optarg);&lt;br /&gt;1412            &lt;span style="color: rgb(153, 0, 153);"&gt;fflag&lt;/span&gt; = B_TRUE;&lt;br /&gt;1413            &lt;b&gt;break&lt;/b&gt;;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If the fflag variable is set by the code above, the authentication step is skipped:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;528    &lt;span style="color: rgb(102, 102, 102);"&gt;/* we are already authenticated. fill in what we must, then continue */&lt;/span&gt;&lt;br /&gt;529    &lt;b&gt;if&lt;/b&gt; (&lt;span style="color: rgb(153, 0, 153);"&gt;fflag&lt;/span&gt;) {&lt;br /&gt;530&lt;br /&gt;531            &lt;b&gt;if&lt;/b&gt; ((&lt;span style="color: rgb(153, 0, 153);"&gt;pwd&lt;/span&gt; = getpwnam(&lt;span style="color: rgb(153, 0, 153);"&gt;user_name&lt;/span&gt;)) == NULL) {&lt;br /&gt;532                    &lt;span style="color: rgb(153, 0, 153);"&gt;audit_error&lt;/span&gt; = ADT_FAIL_VALUE_USERNAME;&lt;br /&gt;533&lt;br /&gt;534                    &lt;span style="color: rgb(153, 0, 153);"&gt;log_bad_attempts&lt;/span&gt;();&lt;br /&gt;535                    (&lt;b&gt;void&lt;/b&gt;) printf(&lt;span style="color:green;"&gt;"Login failed: unknown user '%s'.\n"&lt;/span&gt;,&lt;br /&gt;536                        &lt;span style="color: rgb(153, 0, 153);"&gt;user_name&lt;/span&gt;);&lt;br /&gt;537                    &lt;span style="color: rgb(153, 0, 153);"&gt;login_exit&lt;/span&gt;(&lt;span style="color:brown;"&gt;1&lt;/span&gt;);&lt;br /&gt;538            }&lt;br /&gt;539&lt;br /&gt;540    } &lt;b&gt;else&lt;/b&gt; {&lt;br /&gt;541            &lt;span style="color: rgb(102, 102, 102);"&gt;/*&lt;br /&gt;542             * Perform the primary login authentication activity.&lt;br /&gt;543             */&lt;/span&gt;&lt;br /&gt;544            &lt;span style="color: rgb(153, 0, 153);"&gt;login_authenticate&lt;/span&gt;();&lt;br /&gt;545    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As long as untrusted users are not allowed to specify the -f option to login,&lt;br /&gt;this code will be safe. Unfortunately, the in.telnetd daemon does not sanitize&lt;br /&gt;the username before it passes it to /usr/sbin/login. Look at the code in&lt;br /&gt;&lt;a href="http://src.opensolaris.org/source/xref/netvirt/usr/src/cmd/cmd-inet/usr.sbin/in.telnetd.c"&gt;in.telnetd.c&lt;/a&gt;:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;3199    } &lt;b&gt;else&lt;/b&gt; &lt;span style="color: rgb(102, 102, 102);"&gt;/* default, no auth. info available, login does it all */&lt;/span&gt; {&lt;br /&gt;3200            (&lt;b&gt;void&lt;/b&gt;) execl(&lt;span style="color: rgb(153, 0, 153);"&gt;LOGIN_PROGRAM&lt;/span&gt;, &lt;span style="color:green;"&gt;"login"&lt;/span&gt;,&lt;br /&gt;3201                        &lt;span style="color:green;"&gt;"-p"&lt;/span&gt;, &lt;span style="color:green;"&gt;"-h"&lt;/span&gt;, host, &lt;span style="color:green;"&gt;"-d"&lt;/span&gt;, slavename,&lt;br /&gt;3202                        getenv(&lt;span style="color:green;"&gt;"USER"&lt;/span&gt;), &lt;span style="color:brown;"&gt;0&lt;/span&gt;);&lt;br /&gt;3203    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If the username passed by the telnet client starts with '-f', login will interpret it as a command line option and the user will be logged it without any authentication.&lt;br /&gt;&lt;br /&gt;If you still have telnetd enabled on your servers, now is a good time to turn it off.&lt;br /&gt;&lt;br /&gt;UPDATE: The fix for this bug is available in the OpenSolaris &lt;a href="http://cvs.opensolaris.org/source/diff/onnv/onnv-gate/usr/src/cmd/cmd-inet/usr.sbin/in.telnetd.c?r2=3629&amp;amp;r1=2923"&gt;CVS&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-6932058993053570552?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/6932058993053570552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=6932058993053570552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/6932058993053570552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/6932058993053570552'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2007/02/1994-called-it-wants-its-bug-back.html' title='1994 called, it wants its bug back!'/><author><name>Alexander Sotirov</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12339814691213459333'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-8219552308654330736</id><published>2007-01-27T13:06:00.000-08:00</published><updated>2007-01-27T13:44:41.973-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobb'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><title type='text'>Fuzzing shouldn't work!</title><content type='html'>After the Month of Browser Bugs ended in August 2006, I imagined that browser fuzzing will be over soon. The widespread awareness of this technique and the release of multiple HTML and ActiveX fuzzers were going to help eradicate all easily-found bugs. Vendors were going to incorporate fuzzing in their QA process, and I expected that running a fuzzer in 2007 would be pointless.&lt;br /&gt;&lt;br /&gt;It turns out that I was wrong. After the release of Vista, I ran a very simple ActiveX fuzzer against it and only a few minutes later I hit a NULL pointer dereference bug in Internet Explorer. You can read the full &lt;a href="http://www.determina.com/security.research/vulnerabilities/activex-bgcolor.html"&gt;advisory&lt;/a&gt; at our security research site.&lt;br /&gt;&lt;br /&gt;The ActiveX fuzzer I used was extremely simple - it instantiated each available ActiveX control and accessed all its properties. It didn't even have to send any malformed data or long strings, just accessing the ActiveX object was enough to crash the browser. Something this simple isn't supposed to work!&lt;br /&gt;&lt;br /&gt;I agree with Microsoft's assessment of the bug as something that's probably not worth fixing in a security update, but the fact stands: this is a bug that should have been found and fixed very early in the development cycle. Maybe next time they'll do better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-8219552308654330736?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/8219552308654330736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=8219552308654330736' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/8219552308654330736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/8219552308654330736'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2007/01/fuzzing-shouldnt-work.html' title='Fuzzing shouldn&apos;t work!'/><author><name>Alexander Sotirov</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12339814691213459333'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-2970288387178689793</id><published>2007-01-24T01:03:00.000-08:00</published><updated>2007-01-25T20:11:01.291-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='full disclosure'/><category scheme='http://www.blogger.com/atom/ns#' term='mobb'/><category scheme='http://www.blogger.com/atom/ns#' term='moab'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Vendor acknowledgement policies</title><content type='html'>In a recent &lt;a href="http://www.matasano.com/log/679/quicktime-security-update-for-moab-01-01-2007/"&gt;post&lt;/a&gt; on the Matasano blog, Dave G. asks whether acknowledging &lt;a href="http://projects.info-pull.com/moab/"&gt;MOAB&lt;/a&gt; in their latest QuickTime security update was a wise decision on Apple’s part. I believe that it was, and I recommend that other vendors follow this practice as well.&lt;br /&gt;&lt;br /&gt;Microsoft has a stated &lt;a href="http://www.microsoft.com/technet/security/bulletin/policy.mspx"&gt;policy&lt;/a&gt; against acknowledging the work of researchers that do not follow their "responsible" disclosure guidelines. This policy has been successful in encouraging the security industry to play by Microsoft's rules, but their definition of "responsible disclosure" is still far from universally accepted. A quick look at milw0rm or bugtraq shows there are many independent researchers who disclose vulnerabilities and publish exploits with no regard for any policies other than full disclosure.&lt;br /&gt;&lt;br /&gt;What is the best way for a vendor to handle a publicly disclosed vulnerability? Releasing a workaround or a patch should have the highest priority, but the vendor's responsibilities do not end there. Many advisories are needlessly vague in describing the vulnerabilities, even though the vendor admits that the information is already public. This makes it harder for security teams to evaluate both patched and unpatched bugs and to realistically assess their exposure.&lt;br /&gt;&lt;br /&gt;If you don't believe me, take the following challenge:&lt;br /&gt;&lt;blockquote&gt;Without installing any security updates or running any PoC code, find out which of the &lt;a href="http://browserfun.blogspot.com/"&gt;MoBB&lt;/a&gt; vulnerabilities have been patched, and list the corresponding Microsoft security bulletins.&lt;br /&gt;&lt;/blockquote&gt;The vendors are in the best position to provide this information. It is not as important that they they credit the researchers, but they need to provide links to all publicly available information about all vulnerabilities addressed in each patch. This is exactly what Apple did by acknowledging MOAB in their latest QuickTime security update, and I commend them for it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-2970288387178689793?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/2970288387178689793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=2970288387178689793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/2970288387178689793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/2970288387178689793'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2007/01/vendor-acknowledgement-policies.html' title='Vendor acknowledgement policies'/><author><name>Alexander Sotirov</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12339814691213459333'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-116848495913520915</id><published>2007-01-10T17:46:00.000-08:00</published><updated>2007-01-25T20:14:24.738-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='0-day'/><category scheme='http://www.blogger.com/atom/ns#' term='wmf'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>What's wrong with WMF?</title><content type='html'>As a kid I was fascinated by the Indiana Jones movies and their portrayal of the brave explorer searching for artifacts in ancient tombs and ruins. These days my job as a security researcher involves a certain amount of software archeology. Many software vulnerabilities are a result of old and long forgotten code, often interacting in unexpected ways with new systems.&lt;br /&gt;&lt;br /&gt;A great example for this is the WMF file format, a source of &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=WMF+site%3Ahttp%3A%2F%2Fwww.microsoft.com%2Ftechnet%2Fsecurity%2FBulletin%2F"&gt;multiple&lt;/a&gt; vulnerabilities over the last two years. This format was based on a wrong design decision which has come to haunt Microsoft ever since. In this post I will describe the fundamental design flaws in the WMF format and analyze a new attack that was disclosed publicly today.&lt;br /&gt;&lt;br /&gt;WMF is different from typical bitmap graphics file formats. It contains a sequence of processing instructions that are interpreted by the display system and used to draw an image. In this the format is similar to PostScript. Unlike PostScript however, the WMF file format is not based on an abstract graphics language, but instead maps directly into Windows API calls. Each record in the file contains the arguments for a single Windows API function. An advantage of this design is the ability to open a WMF file and record a series of Windows API calls into it. When the file is viewed later, the API calls will be replayed and will draw the image. Unfortunately, this design violates one of the main requirements for secure system - a clear separation of trusted and untrusted data.&lt;br /&gt;&lt;br /&gt;The Windows API makes the fundamental assumption that the program issuing API calls is trusted. If the program passes invalid arguments to an API function, it will crash, and the programmer will have to fix it. Unlike the syscall interface to the kernel, the Windows API functions are running at the same privilege level as the program that calls them. This makes it possible to omit a lot of parameter validation.&lt;br /&gt;&lt;br /&gt;When we introduce WMF files into this system, the basic assumption breaks. WMF files downloaded from the Internet are untrusted, and so are the parameters that they pass to the Windows API functions. If an untrusted parameter is passed without validation, the WMF file will be able to crash or exploit the program that displays it.&lt;br /&gt;&lt;br /&gt;An example of this kind of attack was posted on &lt;a href="http://www.milw0rm.com/exploits/3111"&gt;milw0rm&lt;/a&gt; earlier today. The WMF file created by the exploit calls the &lt;a href="http://msdn.microsoft.com/library/en-us/gdi/brushes_3lpw.asp"&gt;CreateBrushIndirect&lt;/a&gt; function and passes it a LOGBRUSH structure from the file without validating any of its contents. According to the MSDN documentation, the lbHatch field in the structure is a constant specifying the hatch style of the brush. However, when the lbStyle field is BS_DIBPATTERNPT, the lbHatch parameter is used as a pointer to a device-independent bitmap structure in memory.&lt;br /&gt;&lt;br /&gt;The PoC code on milw0rm sets the lbStyle field to BS_DIBPATTERNPT and passes an invalid pointer value in lbHatch. This value is dereferenced inside GDI32.DLL. Since this address is invalid, the memory access causes an unhandled exception and the program displaying the WMF file crashes. The impact of the vulnerability is limited and does not allow remote code execution, but it is still a good illustration of the fundamental problem with the WMF format.&lt;br /&gt;&lt;br /&gt;Solving this problem is not easy, but it can be done. Writing a formal specification for the WMF format and implementing a validating parser would be a good first step. The mapping between each WMF record and Windows API function must be audited for unexpected interactions and issues such as the one described above. Only then can we be reasonably sure that the WMF format is reasonably safe to use for untrusted Internet content.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-116848495913520915?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/116848495913520915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=116848495913520915' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/116848495913520915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/116848495913520915'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2007/01/whats-wrong-with-wmf.html' title='What&apos;s wrong with WMF?'/><author><name>Alexander Sotirov</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12339814691213459333'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-116844214481903650</id><published>2007-01-10T06:58:00.000-08:00</published><updated>2007-01-25T20:15:06.233-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='0-day'/><title type='text'>Vulns in Vista, no way?</title><content type='html'>I certainly applaud the efforts that Microsoft has made in improving the security in Windows.  I don't know the other vendors well, but they're ahead of most other ISVs.&lt;br /&gt;&lt;br /&gt;However, to think that means there won't be vulnerabilities in Vista is sort of silly.  Simply stated, new or changed code means that there will be new vulnerabilities given the state of art of application security testing today.&lt;br /&gt;&lt;br /&gt;For example, we just started a new initiative on our website today with a &lt;a href="http://www.determina.com/security_center/zero_day.asp"&gt;zero-day page&lt;/a&gt; where we record significant zero-day vulnerabilities that may be of interest to our customer base.  We recently reported 5 such vulnerabilities to Microsoft in Vista.&lt;br /&gt;&lt;br /&gt;I wonder what 2007 will bring. 2006 saw a significant increase in 0-days with IE being openly vulnerable for 284 days during the year as documented by &lt;a href="http://blog.washingtonpost.com/securityfix/2007/01/internet_explorer_unsafe_for_2.html"&gt;Brian Krebs&lt;/a&gt;, and lots of Office 0-days that seemed timed to come just after 'Patch Tuesdays'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-116844214481903650?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/116844214481903650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=116844214481903650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/116844214481903650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/116844214481903650'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2007/01/vulns-in-vista-no-way.html' title='Vulns in Vista, no way?'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-116777698648695816</id><published>2007-01-02T14:23:00.000-08:00</published><updated>2007-01-25T20:15:30.459-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='0-day'/><title type='text'>Vista notices</title><content type='html'>Recently, there has been the start of some discussion around vulnerabilities on Vista.  The &lt;a href="http://www.nytimes.com/2006/12/25/technology/25vista.html"&gt;NYT &lt;/a&gt;and &lt;a href="http://www.cnbc.com/id/15840232?video=158248263"&gt;CNBC &lt;/a&gt;were interested in what we've done in that area recently. See our research &lt;a href="http://www.determina.com/security.research/vulnerabilities/csrss-harderror.html"&gt;page&lt;/a&gt; for some more details...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-116777698648695816?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/116777698648695816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=116777698648695816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/116777698648695816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/116777698648695816'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2007/01/vista-notices.html' title='Vista notices'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-114358643789035555</id><published>2006-03-28T14:51:00.000-08:00</published><updated>2006-12-17T13:04:55.626-08:00</updated><title type='text'>Links</title><content type='html'>Nice description of our patch from &lt;a href="http://www.hexblog.com/2006/03/ie6_vulnerabilty_patch.html"&gt;hexblog&lt;/a&gt;. Bing!&lt;br /&gt;&lt;br /&gt;There are lots of other links off our &lt;a href="http://www.determina.com/news/default.asp"&gt;news page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-114358643789035555?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/114358643789035555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=114358643789035555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/114358643789035555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/114358643789035555'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2006/03/links.html' title='Links'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-114355590233285527</id><published>2006-03-28T05:57:00.000-08:00</published><updated>2006-12-17T13:07:04.333-08:00</updated><title type='text'>Fix for IE</title><content type='html'>When there is a 0-day situation because of a vulnerability that hasn't been patched, it's even more trouble than when the vendor has patched the problem and disclosed it. On Friday, we started noticing that there were a number of PoC's that exploited &lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1359"&gt;CVE-2006-1359&lt;/a&gt;. Even though our Memory Firewall technology protects against this vulnerability out of the box, we're not widely deployed on desktop systems (yet).&lt;br /&gt;&lt;br /&gt;Back in December &lt;a href="http://www.hexblog.com/"&gt;Ilfak&lt;/a&gt; decided to do something similar for the WMF vulnerability and we took note because he did a one-off of the thing that we do for a living around here. We thought it was very cool because it solved the problem and a lot of people downloaded his patch as a temporary workaround. Hats off to Ilfak for inspiring us.&lt;br /&gt;&lt;br /&gt;So we decided Friday afternoon that it would be a public service to the community if we created a one-off 'fix' that employed elements of our LiveShield technology to have a quick downloadable exe that would repair the problem once and for all. By Saturday afternoon, Alex had produced the fix and Monday was spent packaging and testing the fix . Our fix literally changes only one byte of code in the executable and addresses the root vulnerability.&lt;br /&gt;&lt;br /&gt;We released it last evening, complete with the source so that independent parties could decide whether or not it is a fix. Here are some relevant links.&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.determina.com/security_center/security_advisories/securityadvisory_march272006_1.asp"&gt;Our Security Advisory&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.informationweek.com/news/showArticle.jhtml?articleID=184400292"&gt;Websense artical on websites that are using the vulnerability to install bad stuff&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/technet/security/advisory/917077.mspx"&gt;Microsoft's advisory which recomends disabling scripting.&lt;br /&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;Now, this disclosure was important enough that the guys at &lt;a href="http://www.eeye.com"&gt;eEye&lt;/a&gt; also tried to address the issue. Of course, I like our fix better because when the Microsoft patch comes out, you don't have to take any action, you just get the vendor's patch. I haven't done much analysis of their fix, but I think you have to go through an uninstall procedure with theirs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-114355590233285527?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/114355590233285527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=114355590233285527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/114355590233285527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/114355590233285527'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2006/03/fix-for-ie.html' title='Fix for IE'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-114002425376580110</id><published>2006-02-15T09:23:00.000-08:00</published><updated>2006-02-15T09:24:13.780-08:00</updated><title type='text'>RSA Conference</title><content type='html'>Come by the Determina booth at the RSA conference. Out 'address' there is booth 1942. We're also in the innovation station.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-114002425376580110?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/114002425376580110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=114002425376580110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/114002425376580110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/114002425376580110'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2006/02/rsa-conference.html' title='RSA Conference'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-113813347035456542</id><published>2006-01-24T12:06:00.000-08:00</published><updated>2006-12-17T13:08:57.866-08:00</updated><title type='text'>What does Determina do?</title><content type='html'>If you want to know what we do, see the &lt;a href="http://whohastimeforthis.blogspot.com/2006/01/practicing-art-of-pitchcraft.html"&gt;post&lt;/a&gt; of one of our investors, David Cowan. I couldn't have said it better myself. It's cool when the people that you work with really get it...&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;"If It Ain’t Broke Don’t Fix It, but worms and other hacks have raised the dreadful prospect that every important computer system in the world needs to be fixed on a weekly basis. That’s why Determina has developed a memory firewall to protect software on computer servers and clients alike so that they no longer need security patches. Unlike other Intrusion Prevention Systems, Determina never generates a false-positive alert, and stops even new attacks without requiring data streams of new signatures, so Determina can scale to the largest networks without human supervision."&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-113813347035456542?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/113813347035456542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=113813347035456542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113813347035456542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113813347035456542'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2006/01/what-does-determina-do.html' title='What does Determina do?'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-113753611958146321</id><published>2006-01-17T14:10:00.000-08:00</published><updated>2006-12-17T13:09:22.633-08:00</updated><title type='text'>What do you do with a vulnerability?</title><content type='html'>This &lt;a href="http://news.findlaw.com/hdocs/docs/cyberlaw/usanchetaind.pdf"&gt;indictment&lt;/a&gt; got a lot of press a few days ago.  It goes into gory detail about how vulnerabilities might be used to establish and control 'botnets'.  There are lots of stories out there, but this actually gets closer to the real truth of it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-113753611958146321?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/113753611958146321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=113753611958146321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113753611958146321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113753611958146321'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2006/01/what-do-you-do-with-vulnerability.html' title='What do you do with a vulnerability?'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-113722440842312001</id><published>2006-01-13T22:09:00.000-08:00</published><updated>2006-01-13T23:46:42.550-08:00</updated><title type='text'>MS06-001 vs MS05-053</title><content type='html'>As part of my work on &lt;a href="http://www.determina.com/solutions/liveshield.html"&gt;LiveShield&lt;/a&gt;, I get to analyze a lot of vulnerabilities, both new and old. The purpose is not only to make sure that our product protects against them, but also to get more experience with the kinds of code and bugs that we are likely to see again in the future. Most vulnerabilities follow identifiable patterns, and recognizing those is very valuable when you have to analyze a 0-day that is actively exploited in the wild.&lt;br /&gt;&lt;br /&gt;In the best case scenario, the new vulnerability will be in a piece of code that you are already familiar with. When the first WMF vulnerability was announced in November of last year, Jim and I spent a significant amount of time analyzing the vulnerable code. In the end, we had a pretty good understanding of the WMF file format, the functions responsible for processing those files, and their general weaknesses. When the WMF 0-day hit on December 27-th, it took me less than 15 minutes to trace through the code and figure out what was going on. I was disappointed that I had missed this vulnerability back in November, even though I had been looking at the same function in GDI32.DLL. My only excuse is that I was looking for bugs in the code, not for features that shouldn't have been there in first place.&lt;br /&gt;&lt;br /&gt;Our response time on this bug would have been much longer if we had to start analyzing the WMF parser from scratch on the 27-th. I hope that as we gain more experience, we will be able to react this quickly to a wide range of vulnerabilities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-113722440842312001?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/113722440842312001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=113722440842312001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113722440842312001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113722440842312001'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2006/01/ms06-001-vs-ms05-053.html' title='MS06-001 vs MS05-053'/><author><name>Alexander Sotirov</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12339814691213459333'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-113717946868539276</id><published>2006-01-13T10:29:00.000-08:00</published><updated>2006-01-17T13:58:03.603-08:00</updated><title type='text'>Good vs. Bad: Hook behavior</title><content type='html'>This &lt;a href="http://blog.ziffdavis.com/seltzer/archive/2006/01/13/39884.aspx"&gt;entry&lt;/a&gt;  notes that there are a bunch of products that use 'rootkit' behavior.&lt;br /&gt;&lt;br /&gt;Sony DRM was an egregious example of a software provider changing the behavior of the system in unusual ways. The dirty little secret of Windows programming is that lots of vendors change the behavior of other programs on a Windows system in ways that make it difficult to distinguish between good and malicious activity.&lt;br /&gt;&lt;br /&gt;Back in the good old days of Windows 3.1, it was easy for other programs to modify another program. Of course, you aren't supposed to do that in modern operating systems such as NT, 2000, or 2003. Processes are supposed to be separate entities so that incorrect behavior by one program doesn't crash or hang the whole system.&lt;br /&gt;&lt;br /&gt;The only problem with that is that folks like Jeff Richter and others have documented all of the ways for a program to violate this normal constraint, and IT HAPPENS ALL THE TIME.&lt;br /&gt;&lt;br /&gt;I was reminded of this a couple of times in the last few weeks. First, Google Toolbar hooks a number of functions in Internet Explorer. There are a number of reasons why they might do it, but they do it in a way that is similar to what a hacker might do: namely they allocate some memory to perform the hook and then sometime later they change the permissions on the memory to be executable. At least they mark it as executable at some point. BUT the problem is that suppose that a hacker is trying to get some injected code to run, they may do exactly the same time: namely they find some memory that has been allocated before and they mark the area as being executable.&lt;br /&gt;&lt;br /&gt;Stuff like this makes it more difficult to tell good from bad behavior in-memory. It would be nice if the platform vendor established a protocol for making inserting these kinds of hooks that was difficult for hackers to emulate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-113717946868539276?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/113717946868539276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=113717946868539276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113717946868539276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113717946868539276'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2006/01/good-vs-bad-hook-behavior.html' title='Good vs. Bad: Hook behavior'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-113685752806444155</id><published>2006-01-09T17:37:00.000-08:00</published><updated>2006-12-17T13:12:01.613-08:00</updated><title type='text'>Is WMF a trend?</title><content type='html'>Microsoft was indicating that the wmf vulnerability from last week was something new because it took advantage of a particular 'feature' of the format and wasn't a bug per se.&lt;br /&gt;&lt;br /&gt;That's true, but it isn't the end of the story. Although the particular vulnerability in this case was unusual, Internet Explorer and other applications, such IM, iTunes, or anything that accesses the Internet can become an easy vector for this kind of attack. The defect may be unusual, but the mechanism for attacking could be replicated. There are a couple of trends going on here that make this easier than before. First of all, adware and spyware makers have set up fake websites, etc. to distribution their wares. Normally, they might use phishing attacks or email to convince unsuspecting users to download their spyware. With these kinds of code vulnerabilities, they can bypass the need for user interaction. Given this infrastructure exists, all they are waiting for is the next vulnerability and resulting exploit to surface in IE or other Internet facing applications to take control of thousands of systems or distribute bots and/or spyware.&lt;br /&gt;&lt;br /&gt;Microsoft may fix up IE (and all its plug-ins???), but there are lots of other inet applications for an enterprising hacker to compromise for profit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-113685752806444155?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/113685752806444155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=113685752806444155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113685752806444155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113685752806444155'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2006/01/is-wmf-trend.html' title='Is WMF a trend?'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-113656042004510221</id><published>2006-01-06T07:01:00.000-08:00</published><updated>2006-12-17T13:13:00.943-08:00</updated><title type='text'>WMF patches and Liveshield</title><content type='html'>One of the most interesting aspects of the recent wmf drive-by attacks is that an 'unofficial' &lt;a href="http://www.f-secure.com/weblog/archives/archive-012006.html#00000767"&gt;patch&lt;/a&gt; was created for the vulnerability as well as some workarounds by &lt;a href="http://www.microsoft.com/technet/security/advisory/912840.mspx"&gt;Microsoft&lt;/a&gt;. The unoffical patch is a one-off example of a capability that we have in Deteremina's VPS, called &lt;a href="http://www.determina.com/solutions/liveshield.html"&gt;'LiveShield'&lt;/a&gt;. For some vulnerabilities (didn't need it in this case), we generate a similar out of band patch that goes after the root cause of the vulnerability.&lt;br /&gt;&lt;br /&gt;There are several critical differences in what was done by &lt;a href="http://www.hexblog.com/"&gt;Ilfak&lt;/a&gt; and what LiveShield does on a regular basis:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;We've got a delivery mechanism that gets this out on all of your machines in secure fashion&lt;/li&gt;&lt;li&gt;It's not a one-off event&lt;/li&gt;&lt;li&gt;It doesn't require extra configuration or a reboot of your computer to take effect. This is really important for servers.&lt;/li&gt;&lt;li&gt;It doesn't have to be undone when you get the patch from the vendor. Here's an example of a message sent out by a patch management vendor last night:&lt;/li&gt;&lt;/ol&gt;&lt;blockquote style="font-style: italic;"&gt;"If you have un-registered the shimgvw.dll files as a temporary workaround for this vulnerability, or you’ve installed a third-party patch to address the WMF vulnerability, xxx recommends deploying the Microsoft MS06-001 patch, reboot, then re-register the .dll files and/or uninstall the third-party patch."&lt;br /&gt;&lt;/blockquote&gt;With our LiveShields, you wouldn't have to do any of this to deploy the patch. It just happens automatically based upon our core matching technology.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-113656042004510221?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/113656042004510221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=113656042004510221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113656042004510221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113656042004510221'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2006/01/wmf-patches-and-liveshield.html' title='WMF patches and Liveshield'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20619634.post-113655964789586035</id><published>2006-01-06T06:48:00.000-08:00</published><updated>2006-01-06T07:00:47.903-08:00</updated><title type='text'>HD Moore and WMF disclosure</title><content type='html'>The WMF defect that has been all over the news media recently had one component that was just foolish. Once 'hacker' exploits had been discovered by the community, H.D. Moore very quickly created an &lt;a href="http://metasploit.com/projects/Framework/exploits.html#ie_xp_pfv_metafile"&gt;exploit&lt;/a&gt; that demonstrated how the vulnerability works. Some people are claiming that this kind of public disclosure is irresponsible and there are even &lt;a href="http://isc.sans.org/poll.php?pollid=81&amp;amp;results=Y"&gt;polls&lt;/a&gt; denouncing HD.&lt;br /&gt;&lt;br /&gt;Nothing could be further from the truth. The bad guys already had exploits and were set up to succeed. He saved a lot time for the security community. For example, using his exploit, we could very quickly verify that our Memory Firewall technology just protected against any of the exploits out there with no loss of functionality. It would have taken us extra time to verify that without the existence of an exploit. We were able to build on that to find other indepth facts about the various bugs in the wmf parser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20619634-113655964789586035?l=determina.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://determina.blogspot.com/feeds/113655964789586035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=20619634&amp;postID=113655964789586035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113655964789586035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20619634/posts/default/113655964789586035'/><link rel='alternate' type='text/html' href='http://determina.blogspot.com/2006/01/hd-moore-and-wmf-disclosure.html' title='HD Moore and WMF disclosure'/><author><name>Sandy Wilbourn</name><uri>http://www.blogger.com/profile/00481958274984319705</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06014676450961661792'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>