<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mike Andrews &#187; Musings</title>
	<atom:link href="http://www.mikeandrews.com/category/musings/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mikeandrews.com</link>
	<description></description>
	<lastBuildDate>Sat, 03 Oct 2009 15:41:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Click-fraud problems</title>
		<link>http://www.mikeandrews.com/2009/06/30/click-fraud-problems/</link>
		<comments>http://www.mikeandrews.com/2009/06/30/click-fraud-problems/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 22:03:19 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://www.mikeandrews.com/2009/06/30/click-fraud-problems/</guid>
		<description><![CDATA[Looks as if Facebook are having a few issues with click-fraud.&#160; No surprises really, every major online advertiser faces the same problems.&#160; Just as spam followed the popularity of email, click-fraud is going to follow advertising budgets onto the web.
What I’ve found interesting in this case is who benefits from click fraud.&#160; In the case [...]]]></description>
			<content:encoded><![CDATA[<p>Looks as if <a href="http://www.techcrunch.com/2009/06/21/facebook-click-fraud-enraging-advertisers/" target="_blank">Facebook are having a few issues with click-fraud</a>.&#160; No surprises really, every major online advertiser faces the same problems.&#160; Just as spam followed the popularity of email, click-fraud is going to follow advertising budgets onto the web.</p>
<p>What I’ve found interesting in this case is who benefits from click fraud.&#160; In the case of Google’s <a href="http://www.google.com/services/adsense_tour/index.html" target="_blank">AdSense</a> or the <a href="http://publisher.yahoo.com/" target="_blank">Yahoo publisher network</a>, or the <a href="http://www.threadwatch.org/node/2854" target="_blank">many different others</a>, when you share the revenue of click-through’s of ads with the people that host them, there’s an incentive to drive clicks either via legitimate (increasing traffic), semi-legitimate (SEO techniques), or illegitimate (click-fraud) means.&#160; More people going though the ads you get served up, the more money you make.&#160; What is interesting on Facebook’s current issues is that they are hosting on their own site, and aren’t sharing revenue (well, they are with application developers, but for brevity I’ll ignore that instance as I believe it’s manageable).&#160; So in that case, who’s doing the click-fraud and for what purpose?&#160; </p>
<p>On TechCrunch there’s an <a href="http://www.techcrunch.com/2009/06/26/facebook-click-fraud-101/" target="_blank">excellent post</a> on how click-fraud may be working against Facebook.&#160; In a nutshell, advertisers are <em>probably</em> click-frauding <em>each other</em> to drive their competitors out of the market by using up their budget and/or spiking the prices. If this is actually what is happening (I’ve seen no hard evidence out there one-way-or-the-other yet from crawling around the web doing some research before putting this post up, but <a href="http://www.techcrunch.com/2009/06/26/facebook-click-fraud-101/#comment-2823514" target="_blank">stealing a link</a> from one of the TC comments there’s a <a href="http://www.getafreelancer.com/projects/search.php?keyword=facebook" target="_blank">lot of freelance work</a> available out there to game the system), then it’s pretty much exactly the <a href="http://en.wikipedia.org/wiki/Prisoners_dilemma" target="_blank">prisoners dilemma</a> playing out in real life – the only winner is Facebook as they are getting revenue, but even then only over the short-term as advertisers can get pissed-off and leave (and are).&#160; All the ad networks take quality of <a href="http://www.marketingterms.com/dictionary/clickthrough_rate/" target="_blank">CTR</a>’s seriously because it’s their bread-and-butter, but what can they do?</p>
<p>So, going into the main topic of my post – how do you combat click-fraud?&#160; For the advertiser there’s advice out there on a <a href="http://news.alibaba.com/article/detail/entrepreneur/100111163-1-6-tips-preventing-click-fraud.html" target="_blank">few things</a> they <a href="http://www.searchenginepromotionhelp.com/m/articles/pay-per-click/anti-click-fraud-tactics-5.php" target="_blank">should do</a>, but for the purposes of web security that I hope will become clear later, let’s just focus on the ad networks themselves in how they can address click-fraud.</p>
<p><strong><u>1.</u></strong> Firstly, the ad delivery network (what I’ll call the “system” from now on) has to keep stats on what was served and clicked for their clients.&#160; Any unusual spikes or patterns in these stats could cause concern (could because their may still be many legitimate reasons) and need to be investigated.&#160; This is no different than security monitoring and historically reviewing log files to look for anomalous behavior.</p>
<p><strong><u>2</u></strong>. Ads are usually targeted at users and are supposed to be in some way randomized so the user doesn’t see the same ad all the time, and multiple clicks on the same ad shouldn&#8217;t be counted if it’s from the same person.&#160; Mostly, targeting is done geographically and/or based on characteristics of the user – age, interests, demographic, etc.&#160; In order to access the ads the fraudsters have to be able to come off as “real” users that match those characteristics (and enough real users so that it doesn’t trigger the abnormal pattern detection, or the “real vs bot” detection that I’ll talk about below) so as to enact the clicks.&#160; The geographic part is pretty easy – there are shared proxies and VPN solutions, public and private, that allow you to look like you are in any country you like (I use such a service sometimes to watch the BBC iPlayer and catch up on shows at home).&#160; Obtaining legitimate users matching a demographic can be achieved either with automated sign-up tools, or simply paying low-cost labor.&#160; This is very much the CAPTCHA arms-race we are going through now, and there’s even systems out there that will “nourish” and “grow” an account, much like a real user would add pictures, wall posts, etc, so it’s not as obvious that it’s an account used just for click-fraud and face being shut-down at some point if it’s discovered.</p>
<p><strong><u>3.</u></strong> To the people gaming the system, the risk/reward ratio currently is very much in their favor, whereas the risk/reward ratio of, say, robbing a back is low – there’s a good chance of getting caught, banks often don’t <a href="http://www.fbi.gov/publications/bcs/bcs2008/bank_crime_2008q4.htm" target="_blank">lose that much money</a> in such an incident, and the punishment if the robber does get caught is high.&#160; In order to re-balance the risk/reward ratio, many companies are <a href="http://www.nytimes.com/2009/06/16/business/media/16adco.html?_r=1" target="_blank">going after the perpetrators click-fraud,</a> much like they have been know to go after <a href="http://www.theregister.co.uk/2006/01/05/spam_fine/" target="_blank">spammers</a> or <a href="http://www.theregister.co.uk/2009/06/30/max_vision_guilty_plea/" target="_blank">hackers</a>.&#160; This is done in the hope that it drives the perpetrators away from the system that is going after them, or the activity in general.</p>
<p><strong><u>4.</u></strong> Lastly, the system has to make a determination of what is a “real” user clicking on an ad vs. some automated program (bot).&#160; There’s various ways this could be done – IP address, speed of viewing/clicking, browser version, referer header, cookies, etc, etc – and the method(s) are kept very close to the chest because they could all be spoofed and gamed, especially if you know what the rules are.&#160; The corollary with webappsec here is that we have very much the same issue with session management and session hijacking – we’ve had to load something on top of HTTP (cookies) to provide state and user identification which may be spoofed so we might not have any idea who the “real” user is.&#160; HTTP by design doesn’t support the level of user identification that would really help and I very much doubt that it ever will (based on the backlash against tracking cookies and <a href="http://www.wired.com/politics/law/news/2000/04/35950" target="_blank">per-machine IDs</a> – client-side certifications would be a similar approach, although like with Intel, there’s big privacy issues to overcome), but it sure would be helpful to identify users uniquely on the web.&#160; </p>
<p>So, I think that click-fraud has many parallels with web security and has some really big shared interests. However, I don’t think advertising click-throughts are ever going to be that reliable and will always have this fraud arms-race going on.&#160; Really, advertisers aren’t interested in their ads being clicked, but what people do after they have seen them, and why <a href="http://en.wikipedia.org/wiki/Cost_Per_Action" target="_blank">Cost Per Action</a> (CPA) is where things are heading.&#160; Sure, there’s going to be fraud attempted there as well, but the economics are a lot more solid when you’re paying for an end-to-end transaction with a user rather than paying them just to visit some webpage.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeandrews.com/2009/06/30/click-fraud-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No &#8220;type=password&#8221; fields?</title>
		<link>http://www.mikeandrews.com/2009/06/25/no-typepassword-fields/</link>
		<comments>http://www.mikeandrews.com/2009/06/25/no-typepassword-fields/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 04:06:20 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.mikeandrews.com/2009/06/25/no-typepassword-fields/</guid>
		<description><![CDATA[Looks like Jakob Nielsen is at it again.  The man certainly knows his usability stuff, and although he’s often controversial, and seldom “wrong”, he does put out some “doosies” every once in a while.  His latest column on web usability calls for people to stop using password masking – effectively not using the “type=password” attribute [...]]]></description>
			<content:encoded><![CDATA[<p>Looks like <a href="http://www.useit.com/jakob/" target="_blank">Jakob Nielsen</a> is at it again.  The man certainly knows his usability stuff, and although he’s often controversial, and seldom “wrong”, he does put out some “doosies” every once in a while.  His latest column on web usability calls for people to <a href="http://www.useit.com/alertbox/passwords.html" target="_blank">stop using password masking</a> – effectively not using the “type=password” attribute on input fields.</p>
<p>Now, he puts out a good argument – there’s certainly times when it’s much easier to enter a password (especially on a mobile device) when you can see the characters you are entering.  Also, knowing you are entering in the right characters probably will mean less errors and people using stronger, more complex, passwords.  There’s also times when you know you want to protect from shoulder-surfing, and a simple checkbox could re-enable password masking on the few occasions it’s really required. All very valid points.</p>
<p>My worry is though that without the “type=password” attribute, browsers won’t know that it’s a password field and won’t protect it accordingly.  All browsers cache data, depending on settings, to “help” users when they have to re-enter information, but certain data should <em>always</em> be discouraged from being cached – it’s just <a href="http://www.blackhat.com/presentations/bh-usa-06/BH-US-06-Benninger.pdf" target="_blank">too easy to dig it back out of the browser</a> [PDF link].</p>
<p>Liberal use of the “autocomplete=off” attribute on these forms (or, non-standard[ly], on the fields themselves) does discourage browsers from caching that data, but in my trawls around the web both as a user and a security tester I see it used very infrequently.</p>
<p>Having the “type=password” is a way of “default denying” as all web developers know to use this field for passwords and the browser just takes care of the rest by not caching these types of fields, and even providing a warning if you are going to send them in clear text over HTTP.  Developers don’t even have to think about it – they know it’s a password, so a password field they use, and leave the browser to provide sensible default protection.</p>
<p>Unless we are going to change the way that browsers render “type=password” fields, and leave the web developers to use them as intended, but with subtly different UI (opt-in of course), I have to say this is a non-starter for me.  I certainly don’t want to see developers “faking it” with JS/AJAX and modifying input box types on-the-fly because once again that can introduce insecure behavior if you’re not really careful.  We have a default “fail closed” state in password fields and modifying it, calling for it to be changed, or just plain removing it I feel will introduce issues because there’s already a built-up expectation of the working-model – developers don’t change their working model or practices all that easily.</p>
<p>Oh, and the other point Jakob makes about reset buttons – I fully agree – kill the <span style="text-decoration: line-through;">buggers </span>buttons.  Thing is though that I rarely see them any more so I guess we <em>are</em> getting a little better (in UI at least).</p>
<p>UPDATE: Looks like this has <a href="http://www.schneier.com/blog/archives/2009/06/the_problem_wit_2.html" target="_blank">hit Schneier&#8217;s site</a>, and as he gets obviosuly gets more viewers that I do, it&#8217;s good to look at the comments.  Most people seem to agree in leaving the password field alone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeandrews.com/2009/06/25/no-typepassword-fields/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The futility of black-box testing (in some instances)?</title>
		<link>http://www.mikeandrews.com/2008/11/25/the-futility-of-black-box-testing-in-some-instances/</link>
		<comments>http://www.mikeandrews.com/2008/11/25/the-futility-of-black-box-testing-in-some-instances/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 03:55:23 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.mikeandrews.com/2008/11/25/the-futility-of-black-box-testing-in-some-instances/</guid>
		<description><![CDATA[Consulting can be a lonely job at times – often we are either on a client site, or working at home (which don&#8217;t get me wrong, has it&#8217;s own benefits) – so having a chat open between all the other people in Foundstone keeps one &#34;connected&#34;.&#160; Although the beer-signal-to-noise-noise ratio is sometimes low, it&#8217;s really [...]]]></description>
			<content:encoded><![CDATA[<p>Consulting can be a lonely job at times – often we are either on a client site, or working at home (which don&#8217;t get me wrong, has it&#8217;s own benefits) – so having a chat open between all the other people in Foundstone keeps one &quot;connected&quot;.&#160; Although the <strike>beer-</strike>signal-to-noise-noise ratio is sometimes low, it&#8217;s really good being able to tap into the &quot;hive mind&quot; occasionally.</p>
<p>On the chat today, one of my colleagues is testing a (traditional client-server) app and it turns out that many of the inputs/output are encoded.&#160; We share our favorite encoding/decoding tools, but a through springs to my mind – what if <em>everything</em>, absolutely everything, inputs, outputs, cookies, etc, etc, were encoded, in an app and not just in some straightforward way like base64.&#160; Perhaps in the programmer&#8217;s own &quot;custom&quot; encoding.&#160; From <em><strong>black-box</strong></em> testing, how easily could this be tested?</p>
<p>Tools would simply fail; unless you owned the tool, or knew it well (enough to tweak it, what can/can&#8217;t work), their &quot;dictionary&quot; of tests just wouldn&#8217;t work – each &quot;attack&quot; would have to be encoded/decoded either in place or on the fly to be understood by the server (/app) or client (/browser).</p>
<p>Manual testers would often just give up – the overhead of figuring everything out, crafting various attacks, running them, modifying them, etc, etc, could just get too large to manage.&#160; Most testing (either pen tests or QA) is time-boxed anyway, so would this &quot;encode everything&quot; route simply run out the clock.&#160; Things that a tester might get round to looking at, or identify as needed to be tested could just get missed. (I appreciate that this is just as importantly a scoping issue for you contract/billable-hours people out there, but just run with this for now ok <img src='http://www.mikeandrews.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>Would attackers have the same problems?&#160; Unless it&#8217;s a big, juicy target (like Google/Microsoft for example), would the investment pay off for the pain? Would they also give up and look for easier targets?&#160; Does, in this case, security by obscurity pay off to some degree?&#160; Remember we are <strong><em>not</em></strong> talking encryption here, <em>encoding</em> <em>only.</em></p>
<p>Now, let&#8217;s consider the same app from a white-box approach.&#160; I posit that it&#8217;s *much* easier to test such an app.&#160; Once data (inputs/outputs) are inside the code, it&#8217;s easier to track how they are being used.&#160; Even if they are kept in their encoded state until the very last minute (or not even decoded at all), it&#8217;s much easier to spot code constructs that are &quot;bad&quot;.&#160; Think, as a simple example, SQL injection – seeing a query being created on-the-fly may not actually be SQL inject-able, but it certainly is a cue to look into it a bit deeper.&#160; Same with many of the other vulnerabilities.</p>
<p>Perhaps I&#8217;m even evil enough to modify one of the <a target="_blank" href="http://www.foundstone.com/us/resources-free-tools.asp">hacme apps</a>, or some of the other code I have lying around, to be such an &quot;encode everything&quot;, and submit it to some people and tools for testing.&#160; Anyone care to guess what the outcome would be?&#160; Perhaps even engage in this little experiment themselves?</p>
<p>I don&#8217;t believe that black-box testing will go away – it&#8217;s too engrained into our industry/culture, and it gives a good bang-for-the-buck if used correctly.&#160; However, I think that this is at least a good argument for grey-box testing.&#160; Having the code available to a tester, even in a non-compileable state, just to look at when necessary, would help immensely in these &quot;what the f is this this app doing&quot; situations, and quickly identify some problem areas to look are more deeply rather than going down the preverbal rabbit-hole.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeandrews.com/2008/11/25/the-futility-of-black-box-testing-in-some-instances/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug reports and methodologies</title>
		<link>http://www.mikeandrews.com/2008/11/19/bug-reports-and-methodologies/</link>
		<comments>http://www.mikeandrews.com/2008/11/19/bug-reports-and-methodologies/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 08:34:39 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.mikeandrews.com/2008/11/19/bug-reports-and-methodologies/</guid>
		<description><![CDATA[I&#8217;m not sure where this link resurfaced from – I saved it to read and got to it the other day – but this post from Joel on Software has two of the things I spend many a day looking at – bug reports and methodologies.
Bug reporting
Everyone knows how to report a bug right?&#160; Repro [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not sure where <a target="_blank" href="http://www.joelonsoftware.com/items/2004/12/06.html">this link</a> resurfaced from – I saved it to read and got to it the other day – but this post from Joel on Software has two of the things I spend many a day looking at – bug reports and methodologies.</p>
<h2>Bug reporting</h2>
<p>Everyone knows how to report a bug right?&#160; Repro steps, symptoms, etc, etc.&#160; Just as everyone knows how to fix them – reproduce, find the root cause, fix it, test the fix.&#160; However, there&#8217;s two parts on both sides of the equation (test/dev) that I&#8217;ve often seen left out.&#160; Testers don&#8217;t show enough evidence so devs know it&#8217;s and issue to fix (so mark as non-repro), and developers don&#8217;t go back into the rest of the code to find/fix similar problems (they just fix the issue they have been provided).</p>
<p>This happens a few time a year with me – I&#8217;ve found some vuln (say XSS) that is systemic in the application, but it&#8217;s pushed back as not an issue or non-repro, or if it does get fixed it&#8217;s only with the specific test case I supplied.&#160; So, here&#8217;s my recommendations in dealing with that.</p>
<p>For <em>every</em> (well, non trivial at least) high-risk vulnerability I discover when doing a pen test, I do a screen recording of it.&#160; That video helps in a number of ways.&#160; Firstly, it specifically details the reproduction steps in a way that can&#8217;t be misconstrued (and I do a voice-over explaining why I&#8217;m doing it), and also it show the issue in a way that it can&#8217;t be dismissed as non-repro – the dev/PM can see it happening on at least my machine, so it&#8217;s valid in at least one situation/environment and worthy of investigation if it&#8217;s not the same in the developers.</p>
<p>I&#8217;ve used <a target="_blank" href="http://www.techsmith.com/camtasia.asp">Techsmith&#8217;s Camtasia</a> product for screen captures from way back when I had a copy at FloridaTech.&#160; It&#8217;s not cheap, and I should really upgrade it now, but even the older version works well enough for me for what I need it to do.&#160; If cost is an issue to you, try Microsoft&#8217;s <a target="_blank" href="http://www.microsoft.com/windows/windowsmedia/howto/articles/screencap.aspx">Windows Media Encoder</a> – it&#8217;s not as simple, but will still get the job done. </p>
<p>Make the decision yourself – would you rather <a target="_blank" href="http://www.mikeandrews.com/misc/SQE.avi">watch a vuln</a> or read a description like the following</p>
<blockquote><p>On the &quot;buy a book&quot; page, the quantity drop down isn&#8217;t validated and can be set to a negative integer.&#160; Doing so, an attacker is able to purchase a negative quantity of books, and therefore obtain a refund on their credit card.</p>
</blockquote>
<p>What is possible with this description is that it&#8217;s lacking reproduction steps – the developer could look at the dropdown and just say that a negative number can&#8217;t be chosen.&#160; Bug closed – no repro.</p>
<p>Although generally it&#8217;s not the testers role, but when Foundstone logs a finding we <em>always</em> provide a detailed recommendation for each issue discovered.&#160; This gives the developer an idea of how to fix it in a way that isn&#8217;t just to patch that one specific occurrence.&#160; That way you encourage &quot;correct&quot; behavior (i.e. centralized validation, consistent access checks, etc), and for the developer to go off looking elsewhere for similar issues.&#160; Doing this for black-box testing is sometimes difficult (you lack the context), but it at least provides the developer somewhere to start.&#160; In saying this however, developers clearly have more insight into the inner workings, know the app better, and might be really experienced in what to do, so the recommendation provided may not be acted upon in the exact way, or perhaps ignored completly for another approach (including doing nothing and just accepting the risk) which leads me nicely on to methodologies.</p>
<h2>Methodologies are not for idiots</h2>
<p>One of the things in Joel&#8217;s post that I didn&#8217;t agree with is that methodologies turn people into compliance monkeys.&#160; At Foundstone we have methodologies for most (not all) of the service lines we deliver, and there&#8217;s a reason for that – without a methodology to &quot;guide&quot; a tester (even an experienced one), it&#8217;s very easy to go &quot;off down rabbit holes&quot; chasing a possibly promising bug, and end up with little time to test all the things we are supposed to look at on an engagement.&#160; Methodologies keep people on track (even if it is looking at &quot;best practices&quot; a post on that little topic soon!), provide a means for a baseline of activities, and (as Joel points out) can be used as to ensure a repeatable process.</p>
<p>However, in saying that, there are some issues with methodologies that are pointed out.&#160; For experienced testers, the last thing they want to do it get caught in the weeds – detailed descriptions of what to look for/do are fine for inexperienced tester where the guidance helps them, but just get in the way of experts, who really just need a checklist of things to do without the &quot;fluff&quot;.&#160; Also, there has to be room (and encouragement) to go off the methodology – no test plan is totally complete/sufficient, so ad-hoc testing in areas that perhaps aren&#8217;t in a methodology in important as well.&#160; When I&#8217;m writing a methodology at Foundstone, my &quot;test cases&quot; (for want of a better term) look like this.</p>
<blockquote><p>Perform TCP sweep on the target server.&#160; Note any extraneous open ports.&#160; Optionally add findings for any open ports other than 80 and 443 if external test.&#160; Be aware of duplicate findings if importing Foundstone Enterprise scan</p>
<p><strong>****************************************************************       <br /></strong><strong>Why:</strong>      <br />Web servers should only communicate on two ports &#8211; 80 and 443.&#160; Any additional ports open to the outside world expose services that may reveal a greater attack surface of the server/application than is necessary (much of the &quot;internal&quot; services a web server may require for maintenance/operation such as SSH, SMTP, etc should be firewalled off).&#160; Most modern web servers also have administrative ports that should not be available remotly, but sometimes due to misconfiguration are &#8211; allowing access to these, even if authentication is required may be considerable risk to the server.</p>
<p><strong>How:</strong>      <br />Run a <em>full</em> TCP port scan with Foundstone Enterprise/NMAP.&#160; Note: this is often not the default behavior for any of these tools. check the settings of the tool you are using. For TCP source port scan, ports 20, 53, 67, 80, and 88 are most likely to give fruitful results.</p>
<p>1. Foundstone Enterprise set the TCP Scanning dropdown in the services settings to &quot;all&quot;     <br />2. nMap use <code>-sT -p1-65535</code> (or <code>-sS -p-</code> if you just want a &quot;quick&quot; scan, but be aware of the limitations)      <br />3. Under some circumstances, changing the source port will allow for connection through a firewall.&#160; Use the <code>-g</code> flag in nMap to do this.</p>
<p>For more info on nMap options, see <a href="http://nmap.org/man/">http://nmap.org/man/</a></p>
</blockquote>
<p>The sections increase in detail so that the tester can get the level of info they need.&#160; An experienced tester just reads the introduction so they can remember what this test is for and they know to stop reading when they see the asterisks.&#160; Perhaps I need refreshing on why I&#8217;m doing this test or what to look for – for this I look at the &quot;why&quot; section.&#160; Finally, if I&#8217;m a novice tester and don&#8217;t know how to perform the test case the &quot;how&quot; section details it in steps (including tool commands/parameters if appropriate, although these are auto-configured in the tool I&#8217;ve written to help guide testing so the user should just be able to hit &quot;play&quot;).&#160; Different sections of the methodology use information gathered from previous tests, or can be used to &quot;confirm&quot; valid results and test completeness.</p>
<p>In any case, I&#8217;m glad that I came across that old post from Joel, and really like reading his insightful material both <a target="_blank" href="http://www.joelonsoftware.com/">online</a>, in <a target="_blank" href="http://www.inc.com/magazine/columns/howhardcoulditbe/">Inc magazine</a>, and the stuff on <a target="_blank" href="http://itc.conversationsnetwork.org/series/stackoverflow.html">StackOverflow</a>, so please add them to your RSS feeds.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeandrews.com/2008/11/19/bug-reports-and-methodologies/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://www.mikeandrews.com/misc/SQE.avi" length="47014280" type="video/x-msvideo" />
		</item>
		<item>
		<title>Software [In]security: Web Applications and Software Security</title>
		<link>http://www.mikeandrews.com/2008/11/17/software-insecurity-web-applications-and-software-security/</link>
		<comments>http://www.mikeandrews.com/2008/11/17/software-insecurity-web-applications-and-software-security/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 07:23:19 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.mikeandrews.com/2008/11/17/software-insecurity-web-applications-and-software-security/</guid>
		<description><![CDATA[Gary McGraw has posted another article in his InformIT column, this time specifically on web applications and software security.
Its a great article, and Gary is spot on, but I had a couple of points I wanted to discuss, so I emailed them off.&#160; Thankfully, Gary is a friend, and is really good at arguing any [...]]]></description>
			<content:encoded><![CDATA[<p>Gary McGraw has posted another article in his InformIT column, this time specifically on <a target="_blank" href="http://www.informit.com/articles/article.aspx?p=1309290">web applications and software security</a>.</p>
<p>Its a great article, and Gary is spot on, but I had a couple of points I wanted to discuss, so I emailed them off.&#160; Thankfully, Gary is a friend, and is really good at arguing any points I might have.&#160; For interest, here&#8217;s some of that email exchange.</p>
<blockquote><p><strong>MA:</strong> CSRF I don&#8217;t really consider to be an interposition attack &#8211; the attacker isn&#8217;t really getting &quot;in between&quot; anything, but causing something to happen (with trust) that otherwise wouldnt. In many ways I think this is more of a replay/reuse attack.       <br /><strong>GM:</strong> I think it is a classic interposition. In this case, the browser is being treated AS the user, which is incorrect and leads to the vuln.       </p>
</blockquote>
<p>I sort of agree in that the browser is being treated as the user in some way, but I still think of this attack as a form of &quot;replay&quot; attack (perhaps even &quot;reflected replay&quot;, as with the SMB vuln patched recently).&#160; Interposition is, according to the <a target="_blank" href="http://www.merriam-webster.com/dictionary/interposition">dictionary</a>, something that is <a target="_blank" href="http://www.merriam-webster.com/dictionary/interposed">interposed</a>, which is defined as &quot;in between&quot; (which CSRF is not – the attack is an initiator. In any case, I think this is just semantics.&#160; Would be interested in what other people think this class of attack is.</p>
<blockquote><p><strong>MA:</strong> CSRF isnt &quot;always&quot; in play when XSS is present &#8211; on .NET for example, the viewstate has a MAC created by the server on each request. If you add random data (for example) the session ID to the viewstate (various ways of doing that) the attacker can&#8217;t create/send the viewstate (as they can&#8217;t hash/re-sign it), and therefore the server discards the request. That&#8217;s on the .NET platform &#8211; I dont think I know of any other platforms/technologies like that, but there might be. There&#8217;s lots of &quot;but if&#8217;s&quot; in there, but that&#8217;s quite a &quot;normal&quot; case.       <br /><strong>GM:</strong> Thanks for this example. Didn&#8217;t know of it prior. I stole the thinking about the one implies the other from Felten (see the link off the SB page)</p>
</blockquote>
<p>It&#8217;s really common that any protection measures put in place against CSRF totally fail when XSS is present.&#160; There&#8217;s one case that I know of though where this isn&#8217;t totally true and that&#8217;s in .NET.&#160; The reason is when the viewstate is used, it&#8217;s value has a MAC, and any tampering of parameters can be detected by the server.&#160; On it&#8217;s own this still doesn&#8217;t protect from CSRF, but if &quot;random&quot; data is added in (preferably with each request), then even if the attacker has XSS on the page and can read the anti-CSRF token (the viewstate), they can&#8217;t reuse it in another request because it&#8217;s a) changed after some interval and b) they can&#8217;t send a valid viewstate (re-created or modified by an attacker) because they can&#8217;t &quot;sign&quot; it (add the checksum) as they don&#8217;t know the server-side secret.&#160; If the viewstate doesn&#8217;t match what the server expects, it throws an error.</p>
<p>It&#8217;s certainly an edge case, but one I hope that other anti-CSRF systems consider.&#160; Alex Smolen (colleague, ASP.NET guru and MSFT MVP) knows much more about this, the issues, and has posted about them <a target="_blank" href="http://keepitlocked.net/archive/2008/05/29/viewstateuserkey-doesn-t-prevent-cross-site-request-forgery.aspx">here</a>.</p>
<blockquote><p><strong>MA:</strong> Web vulns / web security have a lot of attention for a few reasons I think.       <br />&#160; &#8211; it&#8217;s easier than &quot;traditional&quot; security. you can test without have to set a lot of stuff up, and the protocol/tools are very simple to write/use       <br />&#160; &#8211; it&#8217;s not rocket science. Jer/RSnake are certainly pushing the state-of-the-art, but a lot of it is still down to server (input) validation and browser insecurity. I&#8217;ve not seen a &quot;new&quot; attack in the web space for a number of years now       <br />&#160; &#8211; Lots of software is going onto the web. I read somewhere that it was the most dominant dev platform (in terms of number of people programming for it). *All* of that software is in one of the most hostile places to be (accessible remotly, often containing some level of assets), so people focus on it       <br />&#160; &#8211; it&#8217;s a very fertile ground. WebAppPenTesting is still a &quot;fish in a bucket&quot; exercise. Devs are *still* getting basic things like XSS wrong, although I dont like just searching for vulns &#8211; as you mention, you should be looking for architectural issues and the root causes of vulns, as otherwise it&#8217;s just &quot;penetrate and patch&quot; and the client doesn&#8217;t really learn anything</p>
</blockquote>
<p>Lots of acknowledgments between myself and Gary here, so I won&#8217;t bore anyway with the details.&#160; There is the challenge for me to actually find the reference of the web being the most dominant dev platform, which I&#8217;ll have to look for.&#160; Anecdotally though, by far the most software that the security consultancies I know are reviewing/pen-testing is web-based, although that my have a self-selecting bias (because of risk/exposure).&#160; I don&#8217;t have any hard figures, but I (and Gary) would certainly be interested to see them if anyone has them.&#160; Otherwise I&#8217;ll have to rack my brain in where I saw that (and also hope that it wasn&#8217;t just in some marketing literature!)</p>
<p>One thing that Gary did put me straight on was the following</p>
<blockquote><p><strong>MA:</strong> The tools that are out there are just useless. Even more useless than the code review tools are, and we know what it takes to get them running and making an impact. The issue is that each and every webapp is custom, and although there&#8217;s a nice simple protocol, actually recognizing when something went &quot;wrong&quot; (discovered a vuln, got logged out, not discovered all the pages, etc, etc) is actually very hard. Jer is being generous in saying that a tool can only find 50% of the issues. Press a little more, and that is &quot;a tool that is well configured, knows the app well, and has a good idea of the vuln and it&#8217;s external characteristics&quot; &#8211; the stars really do have to align to get even close to that 50%. We really need tools though as this issue it&#8217;s scalable to the number of people we have looking it.       <br /><strong>GM:</strong> I disagree with this one. The tools find lots of &quot;stupid&quot; things you should have known better about. That is a good thing. How much can QA people do as a smoke test?       </p>
</blockquote>
<p>I think that this falls into my last sentence.&#160; I really do believe that we need tools, as otherwise it&#8217;s just not scalable, and as Gary says, how often can QA people look at something to give it &quot;a quick test&quot; for certain issues.&#160; That&#8217;s why I think the &quot;<a target="_blank" href="http://www.cigital.com/justiceleague/2007/03/19/badness-ometers-are-good-do-you-own-one/">badness-ometer</a>&quot; quote is so good and great advice.&#160; In general I would like to see these tools catch up, and for some level of acknowledgement (other than from a few people) in that they will never replace a human for a large part of the testing.&#160; This really has to start to change, and I have thoughts on that (which I&#8217;ve shared with various people), but save them for another post.</p>
<p>My final point was</p>
<blockquote><p><strong>MA: </strong>the final thing about web security (both tools, practitioners, and research) is that it&#8217;s much more often than not done black-box. This &quot;stabbing in the dark&quot; is only going to find so much, and even then only some things. There&#8217;s still this pervasive attitude out there that pen testing, even webapps, is enough. Im amazed that we (still) find as much as we do, which is a sorry state for the webappsec field.</p>
</blockquote>
<p>I&#8217;m certainly guilty of my work being based around black-box techniques, but that seems to be what clients want and are willing to pay for.&#160; There&#8217;s few-and-far-between clients that want to go &quot;deeper&quot;, and often that&#8217;s because (IMHO) they don&#8217;t see a ROI/benefit in going any further.&#160; Black-box is a good place to <em>start</em>, but I&#8217;ve always considered it just one stage in a multi-pronged approach.&#160; However, one has to realize that the majority of companies out there do not make their living of their software – it&#8217;s an &quot;enabler&quot; for them to do business, and therefore it only has to be &quot;good enough&quot; – any more and (in some way) they are wasting their money.&#160; You don&#8217;t have to outrun the bear, you only have to outrun the last person.</p>
<p>In any case, I really like having discussions with Gary (even thought the roles were reversed this time), and can&#8217;t wait until I have another opportunity to sit down by his river, chat, drink, and watch the world (and black hawk helicopters) go by.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeandrews.com/2008/11/17/software-insecurity-web-applications-and-software-security/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Vuln research credit / security tipping point</title>
		<link>http://www.mikeandrews.com/2008/11/16/vuln-research-credit-security-tipping-point/</link>
		<comments>http://www.mikeandrews.com/2008/11/16/vuln-research-credit-security-tipping-point/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 03:24:59 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.mikeandrews.com/2008/11/16/vuln-research-credit-security-tipping-point/</guid>
		<description><![CDATA[Two great posts from the Veracode blog I have to point out if you haven&#8217;t read them already
The first one, Credit for Researchers, I think is very important.&#160; From my academic days, referencing previous work was de-rigeur and you just weren&#8217;t taken seriously if you published or spoke without noting the people that laid the [...]]]></description>
			<content:encoded><![CDATA[<p>Two great posts from the Veracode blog I have to point out if you haven&#8217;t read them already</p>
<p>The first one, <a target="_blank" href="http://www.veracode.com/blog/2008/11/credit-for-researchers/">Credit for Researchers</a>, I think is very important.&#160; From my academic days, referencing previous work was de-rigeur and you just weren&#8217;t taken seriously if you published or spoke without noting the people that laid the ground before you, and other views/options on the subject – basically not referencing was a way of admitting that you hadn&#8217;t looked at what came before, or other ongoing work in the area, which was &quot;bad&quot; (ignorant to be more precise).&#160; </p>
<p>There&#8217;s lots of security research going on out there – independent or part of an organization – and from what I&#8217;ve been seeing for the past few years, very few of it is totally original.&#160; That&#8217;s not saying that this is not ok, as it&#8217;s to be expected (encouraged in fact), but I&#8217;m seeing very few people reference previous work as part of a disclosure.&#160; This means that either a) these people are forgetting to reference previous work, b) they are not referencing on purpose (as it makes their work look more &quot;original&quot;), or c) there&#8217;s a lot of &quot;independent re-discovery&quot; going on.</p>
<p>I&#8217;m not sure which it is, but there&#8217;s issues in all three.&#160; Re-discovery is a problem because that means that we aren&#8217;t learning from previous knowledge.&#160; Not referencing when you know of other work is academically dishonest.&#160; &quot;Forgetting&quot; (or not being aware of other work) is ignorant and only focusing on a small part of the problem (edit to add: perhaps you did find a &quot;unique&quot; vuln/issue – congrats, give yourself a pat on the back, note how unique your finding is, and <em>now go back and reference places where it should have been looked-at/discovered/thought-about, and perhaps why not</em>).&#160; I call, as does Chris in the Veracode blog post, is for us to get a bit more academic in the way we approach security research.&#160; If not, we&#8217;ll be doomed to this never ending <strike><a target="_blank" href="http://securitybullshit.wordpress.com/2007/02/28/cartoon-022-the-hamster-wheel-of-pain/">hamster wheel of pain</a></strike> <a target="_blank" href="http://www.leshatton.org/Documents/ITiCSE_601.pdf">feedback loop</a>, making the same mistakes / finding the same issues / never addressing the &quot;real&quot; issues.</p>
<p>The other post (also from Chris Wysopal, also from the Veracode blog) is one saying <a target="_blank" href="http://www.veracode.com/blog/2008/11/we%e2%80%99ve-reached-the-application-security-tipping-point/">we&#8217;ve reached the application security tipping point</a>.&#160; I actually think we reached that tipping point some time ago (2 years?) where less and less vulns were being discovered in OS and large vendors, but increasingly in software from thousands of smaller software vendors.&#160; </p>
<p>I&#8217;ve spoken to a few people about this, and I don&#8217;t think that the overall security future looks all that rosy.&#160; Microsoft are spending a lot of effort on security, and it seems to be paying off (or <a target="_blank" href="http://spiresecurity.typepad.com/spire_security_viewpoint/2008/11/is-microsofts-sdl-working.html">not</a>).&#160; When MSFT manages to lock down their software so that the effort in finding vulns is not worth the payoff (mitigating controls, defense in depth, quick discovery/response/resolution, etc), where is the attention going to go?&#160; People I&#8217;ve talked to at MSFT say that their job isn&#8217;t over by a long-shot; they are very much interested in the full ecosystem so helping users create secure products is also in scope, but once again, where do the hackers go?&#160; </p>
<p>They don&#8217;t just go away, they go to the next level of lowest hanging fruit.&#160; It might be other vendors (Apple, Adobe, Google for example) which may not have the focus that Microsoft has been forced to have, or even worse, smaller players like custom websites or things like Wordpress, Movable Type, phpbb, vbulletin, etc – software that has a huge install base, but perhaps not the resources to deal with a full-frontal attack.</p>
<p>In any case, unless lots more people take these issues seriously (and to their credit, many are), I don&#8217;t necessarily like the way this could be heading.&#160; Rather than having a few &quot;threat sinks&quot;, we could end up with many, and down the path of very custom attacks that are incredibly hard to detect and protect against.&#160; It&#8217;s certainly in progress in the cybercrime community (see <a target="_blank" href="http://technet.microsoft.com/en-us/security/cc748656.aspx#day1">Iftach &quot;Ian&quot; Amit&#8217;s BlueHat talk</a> if/when it becomes available) and could only be a matter of time before it&#8217;s widespread.&#160; </p>
<p>Think of it security&#8217;s own <a target="_blank" href="http://en.wikipedia.org/wiki/Lernaean_Hydra">Hydra</a> – cut of one head (vulns in a major vendor), two grow back (vulns in smaller vendors), and that&#8217;s a worrying proposition.    </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeandrews.com/2008/11/16/vuln-research-credit-security-tipping-point/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Is the world about to end?</title>
		<link>http://www.mikeandrews.com/2008/10/12/is-the-world-about-to-end/</link>
		<comments>http://www.mikeandrews.com/2008/10/12/is-the-world-about-to-end/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 07:27:03 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.mikeandrews.com/2008/10/12/is-the-world-about-to-end/</guid>
		<description><![CDATA[ In the film War Games, Joshua/WOPR asks &#34;would you like to play a game&#34;?&#160; David (Matthew Broderick) of course wants to play &#34;Global Thermonuclear War&#34; (and I&#8217;m sure you would to – chess or tick-tac-toe is just so boring – we want those cool graphics!).&#160; Because of this choice the world (in the film [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Mct_wolf" border="0" alt="Mct_wolf" align="left" src="http://www.mikeandrews.com/wp-content/uploads/2008/10/mct-wolf.jpg" width="244" height="188" /> In the film War Games, Joshua/WOPR asks &quot;would you like to play a game&quot;?&#160; David (Matthew Broderick) of course wants to play &quot;Global Thermonuclear War&quot; (and I&#8217;m sure you would to – chess or tick-tac-toe is just so boring – we want those cool graphics!).&#160; Because of this choice the world (in the film at least) is pushed to the brink of annihilation.&#160; Today the game seems to be that of <a target="_blank" href="http://en.wikipedia.org/wiki/20_questions">20 questions</a> wrapped up in the guise of &quot;Responsible Disclosure&quot; and a lot of people (the press mostly) are making it seem that each &quot;bug&quot; that is discovered by the top-named security researchers is going to mean the end of the internet.</p>
<p>Just before BlackHat we had the whole &quot;<a target="_blank" href="http://www.networkworld.com/news/2008/070808-dns-flaw-disrupts-internet.html">DNS is broken</a>&quot; fiasco.&#160; Not knocking Dan for his research and discovery of the problem – sure, as many people say, the underlying flaw was at <a target="_blank" href="http://www.ietf.org/mail-archive/web/ietf-nomcom/current/msg00045.html">least identified</a> a long time ago – but what what he did was make the underlying vulnerability into a workable exploit and kudos for that.</p>
<p>Next up we have the <a target="_blank" href="http://www.theregister.co.uk/2008/10/01/fundamental_net_vuln/">TCP flaw</a> which if we are led to believe can bring the internet to it&#8217;s knees with the use of just a simple tool.&#160; Once again there&#8217;s <a target="_blank" href="http://www.cgisecurity.org/2008/10/fyodor-speculat.html">speculation</a> that this isn&#8217;t a new issue, but something quite old brought new again.</p>
<p>Recently we have &quot;<a target="_blank" href="http://jeremiahgrossman.blogspot.com/2008/10/clickjacking-web-pages-can-see-and-hear.html">clickjacking</a>&quot; which, once again, the industry press are pushing out to be the next major threat.&#160; I&#8217;m a little closer to this field than the others (networking not really being my &quot;thing&quot;), so when Jeremiah and Robert&#8217;s talk at OWASP <a target="_blank" href="http://ha.ckers.org/blog/20080915/clickjacking/">was pulled</a> (thus raising the interest level) I had a look and immediately understood what they were going on about.&#160; Again, it&#8217;s not brand-new – there&#8217;s been talk about iframe injection and click stealing in the past – but these guys have improved the exploitability of the flaw and are raising awareness.</p>
<p>I&#8217;m not out to knock any of these guys doing this work. I think it&#8217;s great that they are researching into security issues (and yes, I am a little jealous that they get the time to look into these things) and even more happier that they are getting the message out.&#160; At the very least in the case of clickjacking RSnake had been very clear in where the previous work and the impact (they didn&#8217;t pull their talk BTW – they were asked to), and Dan had to walk a very fine (and high) tightrope in order to get more people to patch,&#160; but there&#8217;s very little &quot;sexyness&quot; for journalists (or blog authors for that matter) in writing anything level-headed.&#160; When these news articles go out CISO&#8217;s come round, article in hand, asking what they can do&#160; and getting back blank looks – no-one knows what the issues are, the drawbacks/side-effects/risks of patching vs not patching, or where to go for more information/advice.&#160; This just leaves both sides frustrated.</p>
<p>There&#8217;s lots of <a target="_blank" href="http://www.schneier.com/blog/archives/2008/07/the_dns_vulnera.html">smarter</a> <a target="_blank" href="http://www.tssci-security.com/archives/2008/10/01/dont-tell-mom-the-world-is-gonna-end/">people</a> <a target="_blank" href="http://www.darkreading.com/blog.asp?blog_sectionid=403&amp;doc_id=157993">than</a> <a target="_blank" href="http://www.computerworld.com.au/index.php/id;471340616">me</a> <a target="_blank" href="http://www.doxpara.com/?p=1250">adding</a> their $0.02 worth (including the researchers themselves), but &quot;responsible disclosure&quot;, especially when it&#8217;s associated with someone revealing details about the issue at a conference is turning out to be more like &quot;partial disclosure&quot; as other smart people play their own 20 questions game and in turn figure out at the very least a rough approximation of the issue.&#160; It <strong><em>is</em></strong> right to do the whole responsible disclosure thing and work with vendors to get things fixed before it&#8217;s common knowledge but saying &quot;I know something you don&#8217;t know&quot; just makes other people want to know that information to, and our industry is full of bright people that given the motivation (which very may well be showing the rest of the world how bright they are, or stealing the limelight, not to mention the black-hats out there) are plenty capable of working it all out.</p>
<p>I guess what I&#8217;m asking for is if you do find a vulnerability, by all means work with a vendor to get it fixed, but (and I know this can be very difficult with the fame <strike>and fortune</strike> just around the corner) using it as a &quot;PR&quot; event for you/your company or scheduling the big reveal with a major conference all the while holding the details back I feel is a recipe for <strike>disaster</strike> partial disclosure.&#160; If too many people go down this route, and it appears that it&#8217;s becoming more and more common, it&#8217;s going to end up like <a target="_blank" href="http://en.wikipedia.org/wiki/The_Boy_Who_Cried_Wolf">the boy who cried wolf</a> – when there is a major vulnerability everyone is going to be so de-sensitized they just aren&#8217;t going to care.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeandrews.com/2008/10/12/is-the-world-about-to-end/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ch</title>
		<link>http://www.mikeandrews.com/2008/10/12/ch/</link>
		<comments>http://www.mikeandrews.com/2008/10/12/ch/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 07:26:35 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.mikeandrews.com/2008/10/12/ch/</guid>
		<description><![CDATA[ After lots of speculation, Google has been working on a browser (for a number of years).&#160; All very cool and slickly done, from the comic-book user-guide to the &#34;look&#34; of the browser to the long piece in Wired all coinciding with the release.
Usually, I like competition, especially in the technology marketplace – the more [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mikeandrews.com/wp-content/uploads/2008/10/ch.gif" rel="lightbox"><img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Ch" border="0" alt="Ch" align="left" src="http://www.mikeandrews.com/wp-content/uploads/2008/10/ch-thumb.gif" width="57" height="82" /></a> After lots of <a target="_blank" href="http://news.zdnet.co.uk/software/0,1000000121,39167717,00.htm">speculation</a>, Google has been working on a <a target="_blank" href="http://www.google.com/chrome">browser</a> (for a number of years).&#160; All very cool and slickly done, from the <a target="_blank" href="http://www.google.com/googlebooks/chrome/">comic-book user-guide</a> to the &quot;look&quot; of the browser to the long piece in <a target="_blank" href="http://www.wired.com/techbiz/it/magazine/16-10/mf_chrome">Wired</a> all coinciding with the release.</p>
<p>Usually, I like competition, especially in the technology marketplace – the more people offering products/technology, (generally) the better those things have to be to survive and gain users – modern day Darwinism.&#160; However, in this case I&#8217;m quite apposed to another browser out there for various reasons.</p>
<p>I didn&#8217;t know this proverb until <a target="_blank" href="http://jeremiahgrossman.blogspot.com/2008/04/hack-in-box-dubai-2008.html">Jeremiah shared it</a>, but it makes sense…</p>
<blockquote><p>&quot;There is a proverb that illustrates the way to quickly determine whether or not someone is sane. The individual is shown a river flowing into a pond. He is given a bucket and asked to drain the pond. If he walks to the stream to dam the inflow into the pond he will be considered sane. If, instead, he decides to empty the pond with his bucket without first stopping the in-flow then he would be considered insane.&quot;</p>
</blockquote>
<p>If I can use the analogy, what we have here in Google Chrome is adding more water into the pond we are trying to drain.&#160; The water, if you want to follow the analogy, are the vulnerabilities in web browsers, badly written or just plain malicious websites that users are trying to protect themselves from (often via plug-ins), and the usual issues with web development we all have when trying to get a site to &quot;just work&quot; simply with all the current versions of browsers that are already out there.&#160; With Internet Explorer and Firefox slugging it out, Safari and Opera distant runners up, we were sort of, slowly, gaining ground on addressing the issues.&#160; Between IE and FF, lots of good security work was being done making these browsers more resilient and we were getting a good handle on the overall problem.&#160; An additional browser, with what one expects to be a <a target="_blank" href="http://www.w3schools.com/browsers/browsers_stats.asp">growing market share</a> just because &quot;it&#8217;s Google&quot;, puts a hole in the dam and water is filling up the pond again.</p>
<p>I understand the monopoly argument, and buy why it&#8217;s not always such a good thing, but there are exceptions.&#160; Office/Word is one exception – the ubiquity of Microsoft Word, either the product itself, or that many other bits of software can read it&#8217;s file format, is good – I can send a document to someone and know with a very high probability that they can do something with it.&#160; With two (plus change) browsers out there, we know what &quot;issues&quot; each have and ways to mitigate/work around them.&#160; Granted, Chrome is based on a common and open-source <a target="_blank" href="http://webkit.org/">rendering engine</a> (same one used in Safari), but it&#8217;s another platform that a site or security issues need to be tested on.</p>
<p>So that&#8217;s one point.&#160; The other point is that it seems that all the mistakes that other browser vendors have been through haven&#8217;t been learnt in the development of Chrome.&#160; In the first few weeks, <a target="_blank" href="http://blogs.zdnet.com/security/?p=1843">numerous</a> <a target="_blank" href="http://security.bkis.vn/?p=119">vulnerabilities</a> were <a target="_blank" href="http://blogs.zdnet.com/security/?p=1847&amp;tag=rbxccnbzd1">reported</a> (which <a target="_blank" href="http://code.google.com/p/chromium/issues/list">should be listed here</a>, but I don&#8217;t see a &quot;security&quot; tag, so <a target="_blank" href="http://chromekb.com/vulnerabilities/">this list</a> will have to suffice), many of which have been previous issues with IE/FF.&#160; I think this is common with Google, as IMHO they still have a &quot;start up&quot; mindset instead of one of a mature software company where the quality of what they put out really matters.&#160; Thankfully, I&#8217;m not the first to say this – David LeBlanc says <a target="_blank" href="http://blogs.msdn.com/david_leblanc/archive/2008/09/12/chrome-getting-a-bit-rusty.aspx">pretty much the same</a>, RSnake <a target="_blank" href="http://www.darkreading.com/blog.asp?blog_sectionid=403&amp;doc_id=163001">takes it further</a>.&#160; Rushing to market is one thing, but it&#8217;s totally different when you make more work for people (and potentially the web a more dangerous place to those not expecting it).</p>
<p>The flip side is that it&#8217;s &quot;beta software&quot;, and releasing it now exposes it to the world so we can tear into it, finding the bugs/issues/vulnerabilities, and the software gets better.&#160; That&#8217;s good – it&#8217;s a common way of releasing software.&#160; However, track records need to speak for themselves where almost <a target="_blank" href="http://royal.pingdom.com/2008/09/24/why-is-almost-half-of-google-in-beta/">half of all Google products are (still) in beta</a>.&#160; Until something becomes a full product (and often <a target="_blank" href="http://en.wikipedia.org/wiki/Linux_kernel#Stable_version_history">even-numbered</a> versions – apparently it <a target="_blank" href="http://www.nationmaster.com/encyclopedia/Star-Trek-movie-curse">works for films</a> as well) they shouldn&#8217;t be considered &quot;fit for everyday use&quot;.</p>
<p>The main reason for these problems though is I feel an underlying reason that many people forget about Google – they aren&#8217;t a software company, but an advertising company – pretty much all of the money they make is via pushing out ads, which has very little relevance to the quality of their software.&#160; That&#8217;s not to say that the guys writing and testing the software there really don&#8217;t care – I know that they do after being invited up to do <a target="_blank" href="http://video.google.com/videoplay?docid=5159636580663884360">a talk</a> – but it has very little relevance to the bottom line.&#160; Just ask Microsoft on how even the perception of a buggy/bloated bit of software can affect them – it slows down sales and adoption.&#160; Microsoft&#8217;s money is made off software (and predominantly just a few titles) so they have to be good at that.&#160; I can&#8217;t help feeling that in Google&#8217;s case their software is a side distraction – a stepping stone to another goal.&#160; As long as people are still hitting their search engine and embedding ads with adsense, I fear the worst kind of &quot;good enough&quot; software development, as evidenced to some degree by the continued &quot;beta&quot; status.</p>
<p>I really try to like Google, and have even toyed with joining them a few times &#8211; the people there are really smart, some of the most friendly guys in the industry, and they have huge reach with interesting problems to address.&#160; I also thing that the web is the operating platform of the future, and therefore all the software/technology they are developing is the way to go.&#160; With Chrome they have architected security principals into the system which will I&#8217;m sure pay off later, and it&#8217;s clearly a technology base for future things.&#160;&#160; When it comes down to it though their objective is gathering information from as many different places as they can and using it for their main business purpose – pushing ad&#8217;s.&#160; <a target="_blank" href="http://yro.slashdot.org/yro/08/09/03/0247205.shtml">Finding things in the EULA</a> (even if by mistake), and a potential prospect to use the <a target="_blank" href="http://digg.com/security/Is_Google_Using_Chrome_to_Index_Password_Protected_Web">browser to access even more of the web</a> (although the toolbar does much the same job), doesn&#8217;t make me feel all that comfortable and instead reaching for my tin-foil hat.</p>
<p>Perhaps I&#8217;m being way too harsh here (Matt Cutts gives <a target="_blank" href="http://www.mattcutts.com/blog/common-google-chrome-objections/">his take here</a>), but I feel that this is a step backwards for web security (in the short-term at least) more than anything else.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeandrews.com/2008/10/12/ch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Catching up&#8230;</title>
		<link>http://www.mikeandrews.com/2008/08/16/catching-up/</link>
		<comments>http://www.mikeandrews.com/2008/08/16/catching-up/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 07:00:24 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Industry]]></category>
		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://www.mikeandrews.com/2008/08/16/catching-up/</guid>
		<description><![CDATA[What with the IR gig I&#8217;ve been on, work just being out of control at the moment, as well as the usual flurry of posts after BlackHat/DefCon, I haven&#8217;t been able to keep with my reading, let alone posting.&#160; There&#8217;s been a lot of interesting things going on which have received plenty of coverage that [...]]]></description>
			<content:encoded><![CDATA[<p>What with the IR gig I&#8217;ve been on, work just being out of control at the moment, as well as the usual flurry of posts after BlackHat/DefCon, I haven&#8217;t been able to keep with my reading, let alone posting.&nbsp; There&#8217;s been a <a href="http://www.doxpara.com/?p=1213" target="_blank">lot</a> of <a href="http://blogs.zdnet.com/security/?p=1635" target="_blank">interesting</a> <a href="http://taossa.com/index.php/2008/08/07/impressing-girls-with-vista-memory-protection-bypasses/" target="_blank">things</a> going on which have received plenty of coverage that I would just add to the noise to as I&#8217;ve nothing more to say than everyone else has.&nbsp; However, there are two things that I have seen that I want to comment on.</p>
<h1>Security is much more than finding/fixing defects</h1>
<p>The <a href="http://blog.ivanristic.com/2008/07/ive-come-to-rea.html/" target="_blank">first post</a> I saw on this was from Ivan Ristic, where he says&#8230;</p>
<blockquote><p>Underneath all our security issues lies our inability to write defect-free code. Solve that and we&#8217;ve solved the security issues. Focus on the security alone and we won&#8217;t solve anything.</p>
</blockquote>
<p>This sort of follows from a really old post on the Microsoft SDL blog from James Whittaker &#8211; <a href="http://blogs.msdn.com/sdl/archive/2007/12/07/reliability-vs-security.aspx" target="_blank">Reliability Vs. Security</a>.&nbsp; Defects are defects, functional or security, and we&#8217;ve been working on the former for <em>some time</em>.&nbsp; Our techniques are better, and we&#8217;ve learnt a lot, but we still can&#8217;t write error free code, and there&#8217;s a lot of prior art/knowledge in the functional side that the security side has to catch up with.&nbsp; One of my favorite (old) quotes is from Chris Mason, ex-development manger for MS-Word, who said &#8220;Since human beings themselves are not fully debugged yet, there will be bugs in your code no matter what you do&#8221;.&nbsp; This leads me to the most recent post on the topic that I saw (also on the SDL blog) from Michael Howard.</p>
<p><a href="http://blogs.msdn.com/sdl/archive/2008/08/14/security-is-bigger-than-finding-and-fixing-bugs.aspx" target="_blank">Security is bigger than finding and fixing bugs</a></p>
<p>This isn&#8217;t any deep insight or rocket science, but it seems that some people have to be told it anyway.&nbsp; Yes, currently there&#8217;s a lot of security issues being found after products are released, and they often track back to implementation issues (leaving aside for the moment if there were any security requirements), so people think if you patch the issues and/or look at the code then that&#8217;s 80% of the work.&nbsp; This might be true for now, but so much of these things could get caught at the design or even implementation stage.&nbsp; Also, I would bet that over time implementation flaws are going to start to go away as we code up defenses in frameworks, languages, API&#8217;s, etc, much like buffer overflows are much less of a worry in managed code.&nbsp; Even if we get to that point there will still be vulnerable system out there because of poor design decisions, failed logic, and other problems that are simply not associated with the code at all.&nbsp; Focusing on the code (and therefore testing/fixing just the code) is IMO the wrong approach.</p>
<h1>MBTA vs MIT Students</h1>
<p>Talking about flawed design, here&#8217;s a good example that I&#8217;ve seen lots of posts about.&nbsp; The best intro is from Chris at Veracode <a href="http://www.veracode.com/blog/?p=189" target="_blank">here</a> and <a href="http://www.veracode.com/blog/?p=232" target="_blank">here</a>.&nbsp; Basically, the Massachusetts Bay Transportation Authority (MBTA) is (was?) suing some students to stop them from presenting about a flaw that they discovered in their payment card system (turns out many other transit authorities the world over also use the same system, and thus vulnerable the same way).</p>
<p>I first can&#8217;t believe <a href="http://www.veracode.com/blog/?p=238" target="_blank">how basic the vulnerabilities are</a> (which surely would have been caught in requirements/design than the much-more-expensive delivered system &#8211; once again, testing/code is not the answer), and second that anyone would <a href="http://spiresecurity.typepad.com/spire_security_viewpoint/2008/08/mbta-vs-mit.html" target="_blank">defend what the MBTA is doing</a> in suing the students (even though I understand it&#8217;s &#8220;risk prevention&#8221; on their part &#8211; this is not the right place to do that).</p>
<p>This leads me to something that has been going on for some time in the functional world, and perhaps <a href="http://www.schneier.com/blog/archives/2008/08/memo_to_the_pre.html" target="_blank">needs to</a> from a security aspect as well &#8211; software warrantees.&nbsp; When someone purchases a physical item there&#8217;s an expectation of &#8220;<a href="http://en.wikipedia.org/wiki/Implied_warranty" target="_blank">fitness for purpose</a>&#8221; &#8211; if it doesn&#8217;t work you can take it back for a refund, and if it blows up in your face (during &#8220;normal&#8221; use) you can sue the manufacture.</p>
<p>It&#8217;s extremely rare to find any warranty for software products, and the EULA is often the &#8220;get out of jail&#8221; card for the implied warranty.&nbsp; I&#8217;m not sure that we&#8217;ll ever see true software warrantees because of push-back from software producers and the additional cost it would (could?) add.&nbsp; However, having enforceable software warrantees would both force vendors to ensure that their software is &#8220;fit for purpose&#8221; (which in the MBTA case it clearly isn&#8217;t) and allow the purchasers of said software some rectification &#8211; I&#8217;ve had my fair share of clients that I&#8217;ve worked with that have had real problems in getting fixes to vulnerabilities I&#8217;ve found in fixing them in a timely manner because they don&#8217;t really have to.&nbsp; For some purchasers (government(s) being a good example as Schneier points out) forcing these (because of their purchasing power) would force an improvement in quality, both functional and security, that would benefit everyone even if it&#8217;s only in one version/variant that you could buy if you wanted that level of expectation.</p>
<p>In any case, I&#8217;d like to know anyone&#8217;s thoughts on this.</p>
<p>&nbsp;</p>
<p>(As a further resource, <a href="http://www.badsoftware.com" target="_blank">badsoftare.com</a> is a site an old colleague of mine put together a while back that might have some interesting information for people.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeandrews.com/2008/08/16/catching-up/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Chill, I&#8217;m Sending The Wolf</title>
		<link>http://www.mikeandrews.com/2008/08/10/chill-im-sending-the-wolf/</link>
		<comments>http://www.mikeandrews.com/2008/08/10/chill-im-sending-the-wolf/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 18:27:11 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Trip Report]]></category>

		<guid isPermaLink="false">http://www.mikeandrews.com/2008/08/10/chill-im-sending-the-wolf/</guid>
		<description><![CDATA[ Every now and then I get sent out on incident response engagements.&#160; On Wednesday the phone rang; a client had contacted us with a big ongoing incident and needed some help.&#160; I was on the next plane out (red-eye &#8211; I hate those things!).
While onsite with the client we went to a users desktop [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mikeandrews.com/wp-content/uploads/2008/08/pic09.jpg"><img style="border-right: 0px; border-top: 0px; margin: 0px 15px 0px 0px; border-left: 0px; border-bottom: 0px" height="244" alt="pic09" src="http://www.mikeandrews.com/wp-content/uploads/2008/08/pic09-thumb.jpg" width="166" align="left" border="0"></a> Every now and then I get sent out on incident response engagements.&nbsp; On Wednesday the phone rang; a client had contacted us with a big ongoing incident and needed some help.&nbsp; I was on the next plane out (red-eye &#8211; I hate those things!).</p>
<p>While onsite with the client we went to a users desktop and was doing some things when the user popped back and was watching us work.&nbsp; He was fine with it and all &#8211; a good communication had gone out around the company explaining what was going on, the systems that were being shut down, and allowing us access to whatever we needed (I can&#8217;t tell you how rare that is &#8211; many companies continue to try and operate as &#8220;business as usual&#8221;, but this one really did come to terms quickly and take the appropriate action &#8211; kudos to them for that).&nbsp; However, in introducing me to the user the client IT person simply said &#8220;this is Mr. Wolf &#8211; he solves problems&#8221;.</p>
<p>The quote obviously is from <a href="http://www.imdb.com/title/tt0110912/" target="_blank">Pulp Fiction</a>, and got me thinking on how apt that introduction was.&nbsp; When on incident response engagements it&#8217;s rare that when I, or one of the other Foundstone guys, get called in we have specific skills that the client&#8217;s IT staff do not have &#8211; after all, they are the ones that look after the systems day in, day out, during normal usage.&nbsp; What we do bring though is a cool head, an assessment of the situation from previous experience which leads to a plan, very good general knowledge about all the systems/technology/thing going on and how they affect the current environment/situation, and most importantly <em>contacts</em>.</p>
<p>The cool head is important &#8211; often the local guys may be very stressed out (it&#8217;s their systems under attack after all) and oftentimes have been working long hours trying to address the problem before they have called us and we are onsite.&nbsp; The plan is equally important because otherwise people are running around doing &#8220;things&#8221; which may not be productive <em>at this very moment</em> and there&#8217;s no idea of progress.&nbsp; But the key is access to contact that are very highly specialized in particular areas.</p>
<p>It would be really nice to be an expert in everything, but with today&#8217;s computing technologies there&#8217;s just far to much for any one person to know.&nbsp; I may be an expert in the web and web application software, and it&#8217;s useful for me to be put on those kinds of IR engagements where possible.&nbsp; I can also reverse engineer viruses, look at SQL databases, understand WireShark traces, look at Solaris boxes, etc, if necessary, but I&#8217;m not as good as people who do this every day and have labs setup to work any issues in these environments (on site it&#8217;s usually me, a laptop, and sometimes some additional hard-disks or other &#8220;gear&#8221; to capture what is going to be useful later).</p>
<p>So I thought that was a really insightful analogy (and thanks to that person &#8211; you know who you are).&nbsp; <a href="http://www.imdb.com/character/ch0001787/" target="_blank">Mr Wolf</a> doesn&#8217;t necessarily have any skills that Jules and Vincent don&#8217;t have, and <a href="http://www.youtube.com/watch?v=ANPsHKpti48" target="_blank">the actions he gets them to do</a> are nothing that they couldn&#8217;t have done (or thought of) themselves if they were level-headed.&nbsp; The single thing that he did have that they probably didn&#8217;t is the contact at Monster Joe&#8217;s Truck and Tow.</p>
<p>The Foundstone guys already have a new nickname for me, and <a href="http://www.youtube.com/watch?v=g4UeHWPeOrA" target="_blank">a little skit</a> [warning, some language in the link some may not appreciate].</p>
<p>And no I don&#8217;t dispose of body parts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeandrews.com/2008/08/10/chill-im-sending-the-wolf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
