<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4430977542408140820</id><updated>2012-03-02T14:09:29.720-08:00</updated><category term='ethics'/><category term='viruses'/><category term='reverse-engineering'/><category term='warez'/><category term='trust'/><category term='cyberwar'/><category term='log management'/><category term='passwords'/><category term='malware'/><category term='attribution'/><category term='hacking'/><category term='privacy'/><category term='McAfee'/><category term='military'/><category term='anti-forensics'/><category term='risk'/><category term='RSA'/><category term='cablegate'/><category term='patch management'/><category term='vulnerabilities'/><category term='espionage'/><category term='psychology'/><category term='exploitation'/><category term='browser'/><category term='SIEM'/><category term='spam'/><category term='white house'/><category term='training'/><category term='fraud'/><category term='9/11'/><category term='wikileaks'/><category term='facebook'/><category term='firefox 4'/><category term='rogue pharma'/><category term='international politics'/><category term='me'/><category term='TSA'/><category term='incident response'/><category term='pii'/><category term='airport security'/><category term='drive-by downloads'/><category term='law enforcement'/><category term='protectionism'/><category term='security'/><category term='definitions'/><category term='SANS'/><category term='government'/><category term='ddos'/><category term='legal issues'/><category term='terrorism'/><category term='information policy'/><category term='networking'/><category term='pdf'/><category term='forensics'/><category term='stuxnet'/><category term='cybercrime'/><category term='software piracy'/><category term='antivirus'/><category term='job search'/><category term='extortion'/><category term='intellectual property'/><category term='the future is now'/><category term='B-sides'/><category term='full-body scanners'/><category term='career'/><category term='identity theft'/><title type='text'>A Renaissance Security Professional</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-7220175440083053379</id><published>2012-02-24T11:36:00.001-08:00</published><updated>2012-02-24T11:42:36.156-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='incident response'/><category scheme='http://www.blogger.com/atom/ns#' term='job search'/><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>Lessons from a DFIR job search</title><content type='html'>Those of you who follow my blog know that I’ve long been trying to transition into computer security for a few years now. After the &lt;a href="http://renaissancesecurity.blogspot.com/2010/07/on-us-cyber-challenge-and-up-and-coming.html"&gt;US Cyber Challenge&lt;/a&gt; I got a QA job at an antivirus company that gave me exposure to application security issues and malware basics, but I’d really been trying for a digital forensics or incident response (DFIR) job. As of last October, I finally got a job doing infosec – including incident response - at Bay Area-based social network (not Facebook).&lt;br /&gt;&lt;br /&gt;While I was trying to transition over, I talked to a lot of experienced DFIR people about how they got into this. Ultimately, the path that worked for me ended up being a bit different than their suggestions, so perhaps these notes about what worked and what didn’t will help other people looking for forensic work.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Transition from Operations&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Several people I’d talked to started in an operations type of role and then transitioned over, supplementing their sysadmin skills with additional study to make the jump to DFIR. This path is a logical one because sysadmins know how their servers work, their configuration, how to keep them running and reliable, and networking. They will have been exposed to security issues in OS hardening, firewall configuration, and patch management. Most likely they will have responded to incidents as well, at least a DDoS if not a server breach. Ultimately, I think this is the easiest path and the one that most forensics people will continue to come from.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Law Enforcement&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Quite a few forensics people got their beginning in law enforcement, particularly federal. Some local police departments are also big enough to support some cybercrime officers – particularly in the Bay Area – but entering forensics through local police is very unreliable as all new officers are treated the same. They all go to the Academy and work patrol for at least a few years before they even have a chance to try for an investigative position like cybercrime. Federal law enforcement is a more reliable route, but with the current Federal budget positions are few and far between. You also have to be hired by age 35 and positions are all over the country. I tried for the FBI, but shortly after the written test they entered a hiring freeze that’s lasted a year so far. It’s still a viable route if you’re not picky about where you live or what agency you work for, but given my age and my wife’s living preferences, it’s not going to happen. At some point in the future perhaps I could get a civilian position at a cybercrime lab, but those are still uncommon.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Consulting&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;A few people I talked to recommended going the consulting route, getting hired by a consulting firm and doing forensic work for them for a few years. By all accounts consulting is extremely hard work and requires a lot of travel, but the managers at the firm I talked to didn’t care about a low level of experience. As long as I had a handle on the basics, was comfortable with travelling and working very long hours, they would give me the training and mentoring. This seemed like a very likely route and would be a good one for other interested forensic people to follow, but it turned out the firm I was talking to stopped hiring for the time being and I got the job offer for my current job before I caught another firm’s interest.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Corporate&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;As I was talking to the consulting firm, I was also applying for corporate jobs. Despite having a forensics certification, I had a hard time getting corporate interest due to my lack of experience. Some good contacts got me a couple interviews, but no offers. Hiring managers who were looking for DFIR people could generally find someone with more experience than me. That’s when I came across a posting for my current company. It wasn’t true DFIR, it was more spam and fraud with some additional application security issues in responding to XSS attacks. Still, it was close enough to some of the things I’d done in the past to get me an interview. During the interviews, I asked about what elements of security were covered under the security team, including incident response and forensics. Despite my lack of experience in this realm, my training and study of DFIR plus my previous experience with web app security encouraged the manager to create an infosec position to start building out an incident response capability. I got the job.&lt;br /&gt;&lt;br /&gt;Hopefully these notes about my DFIR job search will help other new and inexperienced forensic hopefuls find a position that works for them. I’d love to read anyone else’s forensic job search stories, please share them in the comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-7220175440083053379?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/7220175440083053379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2012/02/lessons-from-dfir-job-search.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7220175440083053379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7220175440083053379'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2012/02/lessons-from-dfir-job-search.html' title='Lessons from a DFIR job search'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-7943905253781073768</id><published>2011-10-20T11:14:00.000-07:00</published><updated>2011-10-20T11:14:29.790-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='incident response'/><title type='text'>Status update</title><content type='html'>Wow, I can't believe I haven't updated this blog since July. A lot has been going on since then, and I've been too busy to keep up the blog. While I hope to have more time and material in the near future, I'm starting a new role at a new company at the end of the month and I don't yet know their stance on personal blogging. Once I've had a chance to get settled there and get to know their stance on blogging, hopefully I'll be back here posting regularly about what's going on.&lt;br /&gt;&lt;br /&gt;In the meantime, I've been learning more about incident response. In particular, Harlan Carvey's &lt;a href="http://windowsir.blogspot.com/2009/11/incident-preparation.html"&gt;written some&lt;/a&gt; &lt;a href="http://windowsir.blogspot.com/2009/12/incident-prep-part-deux.html"&gt;great articles&lt;/a&gt; &lt;a href="http://windowsir.blogspot.com/2009/11/best-practices-what-is-best.html"&gt;on his blog&lt;/a&gt;, I highly recommend them. They're more pointed at high level overviews of IR rather than step by step how to do it, but that's what I need right now: basics of how to approach it. Besides, the details of IR vary dramatically based on your org's situation and needs, so that's really the only way to do it.&lt;br /&gt;&lt;br /&gt;Also, Brian Baskin's DerbyCon talk "How to Get Fired After a Security Incident" is now &lt;a href="http://www.irongeek.com/i.php?page=videos/derbycon1/brian-baskin-walking-the-green-mile-how-to-get-fired-after-a-security-incident"&gt;available online&lt;/a&gt;. It's a great presentation about common mistakes made in forensics and incident response.&lt;br /&gt;&lt;br /&gt;The short version of both Harlan's and Brian's message: prepare yourself before you discover your breach.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-7943905253781073768?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/7943905253781073768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/10/status-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7943905253781073768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7943905253781073768'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/10/status-update.html' title='Status update'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-1581025589341315767</id><published>2011-07-11T12:27:00.000-07:00</published><updated>2011-07-11T12:51:31.195-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stuxnet'/><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='cyberwar'/><category scheme='http://www.blogger.com/atom/ns#' term='antivirus'/><category scheme='http://www.blogger.com/atom/ns#' term='viruses'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='government'/><category scheme='http://www.blogger.com/atom/ns#' term='reverse-engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='espionage'/><title type='text'>Sabotage, Stuxnet and the future of cyber attacks</title><content type='html'>Last year, before LulzSec and Sony's epic fail, the big topic in computer security was the uniquely sophisticated and&amp;nbsp;targeted&amp;nbsp;malware known as Stuxnet. I &lt;a href="http://renaissancesecurity.blogspot.com/2010/09/cyberwar-revisited.html"&gt;blogged about it&lt;/a&gt; back in September. Now, Kim Zetter of Wired Magazine's Threat Level blog just posted a great &lt;a href="http://www.wired.com/threatlevel/2011/07/how-digital-detectives-deciphered-stuxnet/all/1"&gt;overview of the effort to reverse engineer Stuxnet&lt;/a&gt;. If you haven't read it yet, you should now. Not only does it present a lot of great info on Stuxnet, it also gives some good insight into malware reverse engineering in general. The rest of this post will presume you've read it.&lt;br /&gt;&lt;br /&gt;Most of the article is excellent, well researched and well written. However, I take serious issue with one of Ralph Langner's quotes towards the end of the article. Here's the excerpt:&lt;br /&gt;&lt;blockquote&gt;They will likely have no second chance to unleash their weapon now. Langner has called Stuxnet a one-shot weapon. Once it was discovered, the attackers would never be able to use it or a similar ploy again without Iran growing immediately suspicious of malfunctioning equipment.&lt;br /&gt;&lt;br /&gt;“The attackers had to bet on the assumption that the victim had no clue about cybersecurity, and that no independent third party would successfully analyze the weapon and make results public early, thereby giving the victim a chance to defuse the weapon in time,” Langner said.&lt;/blockquote&gt;In an ideal world, Langner would be completely correct, but in practical terms he's wrong. I have great respect for Langner, his expertise and his work, but it seems that almost daily I'm reading about people falling for the same attacks over and over again. As just one example, Stuxnet spread from network to network through infected USB drives. This isn't a new attack, back in 2008 the &lt;a href="http://www.wired.com/dangerroom/2008/11/army-bans-usb-d/"&gt;Department of Defense was hit by a major attack spread through USB&lt;/a&gt;. That virus was successful, but was a &lt;a href="http://www.networkworld.com/news/2010/082610-us-military-network-breach.html"&gt;re-use of a virus from 2007&lt;/a&gt;. One would hope that the US Government takes information security seriously, but &lt;a href="http://www.networkworld.com/news/2011/070611-dhs-tests-show-securitys-people.html"&gt;just this year DHS tested how many employees would pick up an infected USB drive&lt;/a&gt; and plug it into a secure system. Result: 60%. If there was a company or government logo on the drive, it was up to 90%. Old and well-known attacks work, even on high-value targets that really ought to know better. Similarly, although 0-day exploits are highly valued for malware and hacking attempts, the majority of malware out there is successful using exploits for which patches are available.&lt;br /&gt;&lt;br /&gt;However, let's give the Iran's Atomic Energy Organization the benefit of the doubt. Let's presume since Stuxnet, they're keeping updated with every critical security patch for every piece of software they run -- an impressive feat! That can't keep them safe, new exploits are discovered daily. To get a sense of the scale of the problem, take a look at the &lt;a href="http://www.exploit-db.com/"&gt;Exploit Database&lt;/a&gt;&amp;nbsp;and remember that those are only the exploits that are discovered by responsible security researchers, not criminals. To further complicate issues, Stuxnet has a compartmental structure. From the article: "[Stuxnet] contained multiple components, all compartmentalized into different locations to make it easy to swap out functions and modify the malware as needed." It seems apparent that the authors of Stuxnet could simply swap in new 0-day attacks and continue as before. In fact, earlier this year a security researcher &lt;a href="http://www.washingtontimes.com/news/2011/may/24/homemade-cyberweapon-worries-feds/"&gt;discovered a serious bug in Siemens' industrial control software&lt;/a&gt; and wrote proof-of-concept malware to exploit it. He claims that Siemens didn't take aggressive enough action to patch the exploit.&lt;br /&gt;&lt;br /&gt;Frankly, the recent hacking of Lockheed, Sony, Oak Ridge National Labs, Sony, InfraGard, Sony, RSA, Sony, HBGary, Sony, and assorted government contractors proves that any network can be penetrated. The only difference now is that people are more aware that attacks on the sophistication level of Stuxnet are possible. This gives incident responders a better chance to identify and react to malware and breaches. This is what Zetter referred to when she wrote "the attackers would never be able to use it or a similar ploy again without Iran growing immediately suspicious of malfunctioning equipment." The difficulty is, equipment malfunctions. Software has bugs and hardware fails, particularly when you're a country dealing with jury-rigged equipment smuggled in under trade&amp;nbsp;embargoes. For any given failure, cyber attack is the least likely cause, that's why Iran's centrifuge failure rate could increase dramatically for months before a cause was found.&lt;br /&gt;&lt;br /&gt;To further complicate the issue, I find it highly unlikely that Iran has sufficient personnel with the skills necessary for incident response and advanced malware reverse-engineering. Quite frankly, even the &lt;a href="http://www.govinfosecurity.com/articles.php?art_id=3692"&gt;US government is having problems&lt;/a&gt; recruiting and retaining people with those skills. It's hard to imagine that Iran has an easier time with this problem.&lt;br /&gt;&lt;br /&gt;Quite frankly, in my opinion the only limiting factor on cyber attacks against physical infrastructure is the will and resources to do it again. It's only a matter of time before another powerful and skilled group decides they want to execute a similar attack.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-1581025589341315767?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/1581025589341315767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/07/sabotage-stuxnet-and-future-of-cyber.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/1581025589341315767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/1581025589341315767'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/07/sabotage-stuxnet-and-future-of-cyber.html' title='Sabotage, Stuxnet and the future of cyber attacks'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-7606785015736346260</id><published>2011-06-06T14:37:00.000-07:00</published><updated>2011-06-06T14:37:28.589-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='viruses'/><category scheme='http://www.blogger.com/atom/ns#' term='pdf'/><category scheme='http://www.blogger.com/atom/ns#' term='reverse-engineering'/><title type='text'>Reverse engineering a malicious PDF Part 3</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;Welcome to my series in progress about reversing a malicious PDF. &lt;a href="http://renaissancesecurity.blogspot.com/2011/06/reverse-engineering-malicious-pdf-part.html"&gt;Last time&lt;/a&gt;&amp;nbsp;I worked through the first exploit, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;geticon()&lt;/span&gt;, and its shellcode payload. Next, I'll be looking at &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;printf()&lt;/span&gt;, which is triggered if the user is running Adobe Reader 7.1. Here's the code:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-r4nEtmDlQME/TelHRiQNlhI/AAAAAAAAAMU/XgEtdAdCjVU/s1600/printf_code.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="147" src="http://1.bp.blogspot.com/-r4nEtmDlQME/TelHRiQNlhI/AAAAAAAAAMU/XgEtdAdCjVU/s320/printf_code.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Again, the payload is the appropriate shellcode variable I found previously (&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shcode_printf&lt;/span&gt;). It's different code this time, but it follows the same pattern. Build the NOP sled, this time in the variable &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;nop&lt;/span&gt;. Append the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;payload &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;to create&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt; heapblock. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Build a bigger, 261310 character NOP sled in &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;block&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;. Create an array &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;mem&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; and populate it with 1400 copies of the full NOP sled plus &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;heapblock &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;to create the heap spray. Attack the vulnerable function &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;util.printf&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;, overflow the buffer and Adobe Reader hits the NOP sled and executes the shellcode.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;This is an older exploit,&lt;a href="http://www.securityfocus.com/bid/30035/info"&gt; CVE-2008-2992&lt;/a&gt; made public in November of 2008. A patch was available at the same time the vulnerability was published.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Now, the fun part. What does the shellcode do? Like last time, let's look at the hex and see if there's any obvious URLs.&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-0bqV5objeAk/TelQTTae3LI/AAAAAAAAAMY/SaXWIVzqBgM/s1600/printf_hexdump.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="187" src="http://2.bp.blogspot.com/-0bqV5objeAk/TelQTTae3LI/AAAAAAAAAMY/SaXWIVzqBgM/s320/printf_hexdump.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;No such luck. Back to scLog to execute the shellcode. Executing the shellcode shows it loads &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shell32&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; to get the Temp path and loads &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;urlmon&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; to try (but fail) to download a file to Temp. Just like before, it tries to access &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/forum.php?f=PDF&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; and passes along the exploit used (&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;printf&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;). Again, the file would have been saved as &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;a.exe&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;.&amp;nbsp;&lt;/span&gt;Simple enough.&lt;br /&gt;&lt;br /&gt;Onward to exploit 3, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;collab()&lt;/span&gt;.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-PTvPi9jr294/TelZ_5RKe0I/AAAAAAAAAMc/Fr6ypbLt-W4/s1600/collab_exploit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="163" src="http://1.bp.blogspot.com/-PTvPi9jr294/TelZ_5RKe0I/AAAAAAAAAMc/Fr6ypbLt-W4/s320/collab_exploit.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;First, we have a function &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;fix_it&lt;/span&gt;, which takes two variables: &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;yarsp&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;len&lt;/span&gt;. It enlarges the string to twice &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;len&lt;/span&gt;, then cuts it down to half &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;len&lt;/span&gt;. Once again, the shellcode is taken from &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shcode_collab&lt;/span&gt; and stored as var &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shellcode&lt;/span&gt;. Variables&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cc&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;addr&lt;/span&gt; are set to hex numbers, and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sc_len&lt;/span&gt; is set to twice the length of the shellcode (338). These are used to calculate the new variable &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;len &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;(equal to 4093910)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;All of this is leading up to the good stuff, beginning with var &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;yarsp&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;. This variable is defined with a few NOP codes, which is then run through &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;fix_it&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; with &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;len&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;. This extends&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;yarsp&lt;/span&gt;&amp;nbsp;to a real NOP sled, 2096955 characters long.&amp;nbsp;The variable &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;count2&lt;/span&gt; is defined and a &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;for&lt;/span&gt; loop is used to generate &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;mem_array&lt;/span&gt;, which is the heap spray.&amp;nbsp;Next, the var &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;overflow&lt;/span&gt; is created and extended to 65536 characters. Finally,&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;overflow&lt;/span&gt;&amp;nbsp;is passed to the vulnerable &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Collab.collectEmailInfo()&lt;/span&gt; method to trigger the exploit. This is another old exploit, discovered and patched in 2007 (&lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5659"&gt;CVE-2007-5659&lt;/a&gt;)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So far, so good. Now, onto the shellcode. I run it through scLog just like the others ... and just like the others it loads &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shell32&lt;/span&gt; to find the temp directory, uses &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;URLDownloadtoFile&lt;/span&gt; to try to access &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/forum.php?f=PDF (Collab)&amp;amp;key=...&lt;/span&gt; and save it to temp as &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;a.exe&lt;/span&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The first three exploits all followed the same basic pattern: create a big NOP sled, attach shellcode, replicate it a few hundred times into a heap spray, overflow the buffer and let it go. All the shellcodes had essentially the same function as well, download a trojan EXE to the temp directory. As a result, I'll leave the last exploit and shellcode as an exercise to the reader. :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-7606785015736346260?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/7606785015736346260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/06/reverse-engineering-malicious-pdf-part_06.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7606785015736346260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7606785015736346260'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/06/reverse-engineering-malicious-pdf-part_06.html' title='Reverse engineering a malicious PDF Part 3'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-r4nEtmDlQME/TelHRiQNlhI/AAAAAAAAAMU/XgEtdAdCjVU/s72-c/printf_code.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-8882774362501865219</id><published>2011-06-02T15:46:00.000-07:00</published><updated>2011-06-02T15:46:49.216-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='viruses'/><category scheme='http://www.blogger.com/atom/ns#' term='pdf'/><category scheme='http://www.blogger.com/atom/ns#' term='reverse-engineering'/><title type='text'>Reverse engineering a malicious PDF Part 2</title><content type='html'>In &lt;a href="http://renaissancesecurity.blogspot.com/2011/05/reverse-engineering-malicious-pdf-part.html"&gt;Part 1&lt;/a&gt;, I began analyzing a malicious PDF. Within the PDF, there was a fair amount of obfuscated malicious Javascript present, which I parsed through. Through many transformations and text replacement, the Javascript eventually decoded and executed the attack code, saved as the variable&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: 13px; line-height: 18px;"&gt;etppeifjeka.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;The attack code was initially obfuscated with excessive exclamation marks:&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-owGClurpkvE/Td7YRjU6t4I/AAAAAAAAAMA/xDGvmDCo8MQ/s1600/obfuscatedexploit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="54" src="http://4.bp.blogspot.com/-owGClurpkvE/Td7YRjU6t4I/AAAAAAAAAMA/xDGvmDCo8MQ/s320/obfuscatedexploit.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;but once the exclamation marks were removed, it became neat and tidy code. Unlike the malicious Javascript I analyzed last month, once the exclamation marks were removed this code even had line breaks, making it much more legible. The attack code contains several functions:&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;nplayer&lt;/span&gt;, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;printf&lt;/span&gt;, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;geticon&lt;/span&gt;, and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;collab. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The PDF contains code to read which version of Acrobat is running, and based on that chooses the exploit to launch.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-amjvdTomfVc/Td7ZaRpKltI/AAAAAAAAAME/OI0oXmcA9oM/s1600/versioncheck.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://3.bp.blogspot.com/-amjvdTomfVc/Td7ZaRpKltI/AAAAAAAAAME/OI0oXmcA9oM/s320/versioncheck.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Adobe has &lt;a href="http://partners.adobe.com/public/developer/en/tips/lc_viewer_version.pdf"&gt;provided some documentation&lt;/a&gt; for the app.viewerVersion method. In this case, it's looking at the version of the EScript plugin (which provides Javascript support). The EScript plugin version number is actually the same as the version number for Acrobat itself. Thus, if Acrobat is version 9 or version 8.12 or higher, it runs&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; line-height: 18px;"&gt;geticon. &lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;If Acrobat is version 7.1, it runs&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;printf&lt;/span&gt;. If Acrobat is version 6 or below version 7.11, it runs&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;collab&lt;/span&gt;. The last one is oddly written, they might have been trying to write "between 9.1 and 9.2" but as it's written&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;nplayer&lt;/span&gt;&amp;nbsp;will be triggered if it's greater than 9.1 or less than 9.2 ... which means if it hasn't hit one of the other functions it'll hit this one.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Here's the code for the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;geticon&lt;/span&gt; function:&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-gndnEWxPv4g/Td7ipWlmdjI/AAAAAAAAAMI/DM6ZXX-cl9c/s1600/geticon.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="149" src="http://4.bp.blogspot.com/-gndnEWxPv4g/Td7ipWlmdjI/AAAAAAAAAMI/DM6ZXX-cl9c/s320/geticon.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Back in part one, I guessed that the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shcode&amp;nbsp;&lt;/span&gt;variables were the shellcode payloads for the PDF. This function confirms my guess. First, the function grabs &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shcode_geticon&lt;/span&gt; to collect the appropriate shellcode. Then, it's appended to the end of a short&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/NOP_slide"&gt;NOP sled&lt;/a&gt; and saved as the variable &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;garbage&lt;/span&gt;. The next bit of code (lines 46-53) uses a variable &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;nopblock&lt;/span&gt; to extend the size of the NOP sled. By the time we get through the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;while&lt;/span&gt; loop, the variable &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;block&lt;/span&gt; contains a NOP sled 262045 characters long. Since all of this is being stored in memory as the code executes, this is a &lt;a href="http://en.wikipedia.org/wiki/Heap_spraying"&gt;heap spray&lt;/a&gt;. Then, an array called &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;memory&lt;/span&gt; is constructed (line 54-55), containing 180 copies of&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;block&lt;/span&gt;&amp;nbsp;plus the shellcode. Lines 56-61 construct&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;var buffer&lt;/span&gt; with 4012 copies of&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;%0a%0a%0a%0a&lt;/span&gt;&amp;nbsp;which are line feeds in hex. Finally, the array&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;buffer&lt;/span&gt;&amp;nbsp;is passed to the vulnerable&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;geticon&lt;/span&gt;&amp;nbsp;function. The buffer overflows, the execution hits one of the NOP sleds present and executes the shellcode.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Incidentally, this is a well known exploit. I found the exact same exploit code being &lt;a href="http://www.opensc.ws/malware-discussion-general-help/7512-updated-pdf-trojan-howto.html"&gt;shared on a security research message board&lt;/a&gt; two years ago. Just because all that the news talks about is the new, sophisticated malware, that doesn't mean the old stuff goes away quickly. For example, &lt;a href="http://contagiodump.blogspot.com/2011/01/jan-12-cve-2010-3654-cve-2009-4324-cve.html"&gt;Contagio has seen samples of this&lt;/a&gt; from last January.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Now we've finally reached the point where the shellcode is executed. In this case, what does it do? Daniel Wesemann of the SANS Internet Storm Center provides a &lt;a href="http://isc.sans.org/diary.html?storyid=4970"&gt;short Perl script&lt;/a&gt; to take the shellcode and dump it to hex to see if there's anything obvious, like a URL. Here's the code and the results:&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-KI8ArGwFW58/TeaBtzjjEPI/AAAAAAAAAMM/Mh1EJ06xNpY/s1600/get_icon_shellcode_hex.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="149" src="http://3.bp.blogspot.com/-KI8ArGwFW58/TeaBtzjjEPI/AAAAAAAAAMM/Mh1EJ06xNpY/s320/get_icon_shellcode_hex.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;In this case, it wasn't very helpful. There's no obvious URL or even anything that follows a URL pattern. The &lt;a href="http://isc.sans.org/diary.html?storyid=4972"&gt;next article&lt;/a&gt; in Daniel Wesemann's series continues to compile and disassemble the shellcode for reversing, but I don't read assembly so it's off to another option for me. Malware Tracker has an &lt;a href="http://www.malwaretracker.com/shellcode.php"&gt;online shellcode analysis tool&lt;/a&gt;, but it didn't work for the four shellcode samples in this pdf. Cruising &lt;a href="http://www.sudosecure.net/archives/313"&gt;online guides&lt;/a&gt; to &lt;a href="http://www.scribd.com/doc/30556012/Libemu-and-extracting-shellcodes-from-PDF-malware"&gt;shellcode analysis&lt;/a&gt; led me to a tool called &lt;a href="http://libemu.carnivore.it/"&gt;libEmu&lt;/a&gt;. However, when I ran the code in libEmu, it hi&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;t my&amp;nbsp;10000000 step limit before execution actually completed. It looks like either I did something wrong, or I hit an infinite loop in the shellcode. Odd. The same happened with each of the four shellcodes.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Since I'm still new to malicious PDF analysis, I talked to some guys in Threat Research here and they pointed me to a tool called &lt;a href="http://sandsprite.com/blogs/index.php?uid=7&amp;amp;pid=57"&gt;PDF Stream Dumper&lt;/a&gt;. Interestingly, I was able to execute the shellcode I copied-and-pasted into it, but it choked on the actual PDF stream that Didier Stevens' tools processed without difficulty in &lt;a href="http://renaissancesecurity.blogspot.com/2011/05/reverse-engineering-malicious-pdf-part.html"&gt;Part 1&lt;/a&gt;. This confirms the need to use multiple tools, you never know when one will fail you.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;I executed the shellcode within PDF Stream Dumper. There are a couple different ways that you can do this, scDbg uses the libEmu emulation and it crashes the analysis just like libEmu does running under Linux. Running the scLog version (live, not emulated analysis) the shellcode executes. scLog notes that the shellcode loads urlmon.dll, which is an Internet Explorer library for fetching files from remote URLs. Then, the shellcode tries to access shell32.dll, but scLog kills the shellcode to prevent that. Looking at the memory dump in a hex editor, I see a call to a url: &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/forum.php?f=PDF (GetIcon)&amp;amp;key=87c1a082278ace8fdf2f63b86db29d6f&amp;amp;u= &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;and a reference to&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt; a.exe&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;These file references imply downloading an external file, but implication isn't proof. So, let's use scLog again and let it actually load all DLLs this time and see what happens. First, some cautionary notes: this is malware we're executing and I'm turning off some of scLog's safety functions. As a result, I'm adding some safety back in. I took a snapshot of my analysis VM first so I could revert if needed. Since this shellcode looks like a downloader, I'm running Wireshark to see if anything actually gets downloaded.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-py1Ezt9Ts4Q/Tefxav-cGKI/AAAAAAAAAMQ/sgshdDcnEl4/s1600/sc_geticon_execute.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="121" src="http://1.bp.blogspot.com/-py1Ezt9Ts4Q/Tefxav-cGKI/AAAAAAAAAMQ/sgshdDcnEl4/s320/sc_geticon_execute.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;It tries to access&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; line-height: 18px;"&gt;/forum.php?f=PDF (GetIcon)&amp;amp;key=87c1a082278ace8fdf2f63b86db29d6f&amp;amp;u=&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&amp;nbsp;and download a file as&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; line-height: 18px;"&gt;a.exe &lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;to the user's temporary directory&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;.&lt;/span&gt; However, since that's a local URL, it fails and the shellcode crashes. Wireshark confirms that nothing was downloaded. Interestingly,&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; line-height: 18px;"&gt;/forum.php &lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;takes parameters including where the file request is coming from (a PDF) and even which exploit is being used (GetIcon). Interestingly, it looks like this PDF was intended to be viewed online, not downloaded (or emailed) and viewed.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;In summary, the&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;geticon()&lt;/span&gt;&amp;nbsp;function exploits a known vulnerability in Acrobat to hook urlmon.dll to download and execute additional malware to exploit the user's system. The vulnerability is known as&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;a href="http://www.adobe.com/support/security/bulletins/apsb09-04.html"&gt;cve-2009-0927&lt;/a&gt; and there is a patch available to prevent it from affecting your system. Moral of the story: keep your system patched and be careful where you browse.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;Next, I'll get to the other exploits and shellcode. &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-8882774362501865219?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/8882774362501865219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/06/reverse-engineering-malicious-pdf-part.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/8882774362501865219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/8882774362501865219'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/06/reverse-engineering-malicious-pdf-part.html' title='Reverse engineering a malicious PDF Part 2'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-owGClurpkvE/Td7YRjU6t4I/AAAAAAAAAMA/xDGvmDCo8MQ/s72-c/obfuscatedexploit.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-6133361533345251002</id><published>2011-05-26T12:20:00.000-07:00</published><updated>2011-05-26T14:35:52.438-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='viruses'/><category scheme='http://www.blogger.com/atom/ns#' term='pdf'/><category scheme='http://www.blogger.com/atom/ns#' term='reverse-engineering'/><title type='text'>Reverse engineering a malicious PDF Part 1</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;One of the projects I work on is a malicious Javascript scanner. It also scans PDFs since the malicious part of PDFs is usually encoded Javascript. To test the scanner, we regularly collect malicious PDFs and run them against the scanner to see if they're detected. Of course, in order to determine if it's really malicious, sometimes you need to go in by hand and see what's going on. To this end, the Didier Stevens wrote a chapter on &lt;a href="http://blog.didierstevens.com/2010/09/26/free-malicious-pdf-analysis-e-book/"&gt;analyzing malicious PDFs&lt;/a&gt;&amp;nbsp;I'll be using that as a reference as I go through a malicious PDF here. I recommend reading it alongside this article. Didier is far better at this than I am, so I won't be trying to explain structural concepts which he explains far better. The PDF I'll be looking at is named 4469.pdf. It was downloaded "in the wild" from a website listed on the Malware Domain List.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Didier provides several &lt;a href="http://blog.didierstevens.com/programs/pdf-tools/"&gt;python scripts&lt;/a&gt; that are useful for analyzing PDFs, the first is pdfid.py. It examines the PDF for indicators of a possibly malicious PDF, such as the presence of Javascript, automatic actions, and document length (most malicious PDFs are only one page). Here's what the results look like for 4469.pdf.&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ZCb1_1Prwl8/Td1vLLcl9JI/AAAAAAAAALI/kPv4C7RDqyk/s1600/pdfid.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-ZCb1_1Prwl8/Td1vLLcl9JI/AAAAAAAAALI/kPv4C7RDqyk/s320/pdfid.png" width="220" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;In this case, the PDF is only one page, contains Javascript and contains code that will launch when the PDF is opened (OpenAction). This is potentially suspicious, so let's keep investigating. We know that the Javascript is where the malicious activity will happen, so let's look at that first, using Didier's pdf-parser.py&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-TSMqVdLVXgo/Td1yU9xB1uI/AAAAAAAAALM/BDne7t59tnU/s1600/parse_js.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="85" src="http://4.bp.blogspot.com/-TSMqVdLVXgo/Td1yU9xB1uI/AAAAAAAAALM/BDne7t59tnU/s400/parse_js.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Pdf-parser.py only located Javascript is in indirect object 2 0 of the PDF. However, indirect object 2 0 references indirect object 11 0 as an OpenAction and Javascript. In a moment we'll see why pdf-parser.py didn't identify indirect object 11 0 as containing Javascript. For now, we see that the pdf is invoking Javascript when the file is opened, which we expect from a malicious PDF, and we expect that indirect object 11 contains our payload.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Using pdf-parser.py again, I can parse out indirect object 11, which is a stream object compressed with the Flate method. Interestingly, this is exactly the same situation in Didier's example script, so it seems this is a common way to obfuscate malicious code in pdfs. &amp;nbsp;Since it's common, Didier provides a method to uncompress the script:&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt; pdf-parser.py --object 11 --filter --raw 4469.pdf&lt;/span&gt; .... and voila, we &lt;span class="Apple-style-span" style="font-family: inherit;"&gt;have malicious code:&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-YZW6cNuBweU/Td1__Nj6KvI/AAAAAAAAALQ/uLEvd_a84no/s1600/pdf_malcode.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="216" src="http://1.bp.blogspot.com/-YZW6cNuBweU/Td1__Nj6KvI/AAAAAAAAALQ/uLEvd_a84no/s400/pdf_malcode.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;(click to enlarge)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;It keeps going like that for another couple pages.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Just like in the &lt;a href="http://renaissancesecurity.blogspot.com/2011/04/reverse-engineering-malicious.html"&gt;malicious Javascript&lt;/a&gt;&amp;nbsp;I took a look at last month, the functions and variables all have random names: function hddd(fff), var fpziycpii, etc. There's also plenty of junk characters and excessive transformations to make analysis more annoying. Here's one example towards the end of the script:&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;for(yrauyiyqouoi=0;yrauyiyqouoi&amp;lt;gmgdouaeyd;yrauyiyqouoi++)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;{&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;var dsfsg = yrauyiyqouoi+1;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;xrywreom+='var oynaoyoyaia'+dsfsg+' = oynaoyoyaia'+yrauyiyqouoi+';';&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;this[fuquoudieeel](xrywreom);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;There's even a section where every letter is interspersed with a bunch of exclamation marks. It's all messy, but nothing we can't eventually analyze. Let's start at the top.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The first code introduced is function hddd which takes the parameter fff. It takes the parameter and replaces the ** with %u. There are four separate strings processed by this function, which means each string is actually a unicode-encoded string. These are stored as variables:&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shcode_geticon&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shcode_newplayer&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shcode_printf&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, and &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shcode_collab&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; Based on the names, these strings are likely the shellcode payloads, but we'll see when we get there.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Next we have:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;var fpziycpii = 'e';&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;var uinsenagexo = 'l';&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;var fuquoudieeel = fpziycpii+'va'+uinsenagexo;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;var ioafyyad = this[fuquoudieeel];&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rtaoyuupaue = "ioa!fyya!d!('!t!hi!s![!fuqu!ou!d!ie!ee!l](o!y!na!o!yoy!aia!'+!gmg!do!u!a!e!yd!+!')!;!'!)!;".replace(/[!]/g, '');&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Stepping through it, the variable&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;fuquoudieeel&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;takes the first two variables and combines them to get "eval", so&lt;/span&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ioafyyad&lt;/span&gt;&amp;nbsp;is &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;this[eval]&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;. Next,&lt;/span&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rtaoyuupaue&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;is a string that has the&amp;nbsp;replace&amp;nbsp;function executed on it. In this case, the replace function just removes all the extra exclamation points that are in there, yielding:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ioafyyad('this[fuquoudieeel](oynaoyoyaia'+gmgdouaeyd+');');&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;If we substitute in the known variables, we get:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;this[eval]('this[eval](&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;(oynaoyoyaia'+gmgdouaeyd+');');&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;That's an improvement, but there's still work to do. The variable&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;gmgdouaeyd&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;is later defined as 1100, so we get&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;oynaoyoyaia1100,&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;a variable&amp;nbsp;which isn't defined yet. There's a section towards the end with&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;oynaoyoyaia0 = eiuaopyj;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;but obviously that's not the same variable. It may be a typo, or it may be junk code ... we'll see. For now, let's move on.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Next we have another function:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;function iuoyzemuyyi(ieuohhrk)&lt;br /&gt;{&lt;br /&gt;var iuioathlpau = '!';&lt;br /&gt;var unetoptou = '';&lt;br /&gt;for(xqqauiae=0;xqqauiae&amp;lt;ieuohhrk.length;xqqauiae++)&lt;br /&gt;{&lt;br /&gt;var yaomwteez = ieuohhrk.charAt(xqqauiae);&lt;br /&gt;if(yaomwteez == iuioathlpau) { &amp;nbsp;} else { unetoptou+=yaomwteez;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return unetoptou;&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;This function is a longer, more complicated way of removing the exclamation marks from a string. Like the last one, this is applied another code section stored as a string and obfuscated with five exclamation marks. The string is un-obfuscated and stored as the variable&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;etppeifjeka&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;That's a long section and it looks like that's part of the payload, so we'll get to that in part 2. For now, let's skip past it and see how it's used.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The last section is this:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;eiuaopyj = ''+etppeifjeka+'';&lt;br /&gt;var gmgdouaeyd = 1100;&lt;br /&gt;var xrywreom = '';&lt;br /&gt;oynaoyoyaia0 = eiuaopyj;&lt;br /&gt;for(yrauyiyqouoi=0;yrauyiyqouoi&amp;lt;gmgdouaeyd;yrauyiyqouoi++)&lt;br /&gt;{&lt;br /&gt;var dsfsg = yrauyiyqouoi+1;&lt;br /&gt;xrywreom+='var oynaoyoyaia'+dsfsg+' = oynaoyoyaia'+yrauyiyqouoi+';';&lt;br /&gt;this[fuquoudieeel](xrywreom);&lt;br /&gt;}&lt;br /&gt;ioafyyad(rtaoyuupaue);&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;This section is odd, to say the least. The&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;for&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;loop constructs a string which is stored in the variable&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;xrywreom&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The loop counts from 0 to 1100 and builds a section of code that declares a series of variables&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;oynaoyoyaiaX &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;where X is the current number, and the variable is set to equal the previous number. The output looks like this:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;var oynaoyoyaia1 = oynaoyoyaia0;var oynaoyoyaia2 = oynaoyoyaia1;var oynaoyoyaia3 = oynaoyoyaia2;var oynaoyoyaia4 = oynaoyoyaia3;var oynaoyoyaia5 = oynaoyoyaia4;&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;It goes up to&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;var oynaoyoyaia1100 = oynaoyoyaia1099;&lt;/span&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Each step of the loop, the loop runs&lt;/span&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;this[fuquoudieeel](xrywreom); &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;which executes the code stored in the variable. This creates 1100 variables and sets them all equal to&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;eiuaopyj &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;(the variable holding the obfuscated section we haven't examined yet). Let's go back to the earlier section where we saw a reference to&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;oynaoyoyaia&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;. We had deobfuscated it to this point:&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;this[eval]('&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;(oynaoyoyaia1100);');&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;which evaluates back to&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;etppeifjeka&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;, &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;the probable payload.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;After the&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;for&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;loop is the last line of Javascript in this PDF&lt;/span&gt;:&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ioafyyad(rtaoyuupaue);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;As we've already discovered,&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ioafyyad&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;is&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;this[eval]&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rtaoyuupaue&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;is&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;this[eval]('&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;(oynaoyoyaia1100);');&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;so that is the line of code that actually triggers the exploit.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;All that's left to do is deobfuscate the exploit itself and see what it does.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-size: medium;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-6133361533345251002?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/6133361533345251002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/05/reverse-engineering-malicious-pdf-part.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/6133361533345251002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/6133361533345251002'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/05/reverse-engineering-malicious-pdf-part.html' title='Reverse engineering a malicious PDF Part 1'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ZCb1_1Prwl8/Td1vLLcl9JI/AAAAAAAAALI/kPv4C7RDqyk/s72-c/pdfid.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-3775194190242641044</id><published>2011-05-05T21:43:00.000-07:00</published><updated>2011-05-05T21:43:59.158-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='anti-forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox 4'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Firefox 4 Browser Forensics, Part 5</title><content type='html'>&lt;div&gt;We're nearing the end of my series on Firefox 4 forensics (&lt;a href="http://renaissancesecurity.blogspot.com/search/label/firefox%204"&gt;click here&lt;/a&gt; for the full list). Media coverage has finally started to make people aware of how much their online behavior is tracked, and the addition of "Private Browsing" modes in all major browsers is making browser anti-forensics easier than ever. This means we'll probably encounter it in our investigations.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, I'll cover actions that prevent the creation of artifacts: turning "Remember History" off and using "Private Browsing" mode. Then I'll cover various some methods of destroying artifacts that have been created. I won't be covering third-party products.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Preventative antiforensics&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;To test "Private Browsing" mode, I activated private browsing, searched for Nmap and downloaded the latest version and then closed Firefox. First, I wanted to see if the page was listed in the browser history, so I opened places.sqlite and queried: "select * from moz_places where url like '%nmap%';" No result. &amp;nbsp;Same with searching for 'input' in typed_urls, no cookies from the domain and nothing in the download history either. However, the google search for "nmap",&amp;nbsp;many nmap images,&amp;nbsp;the websites http://nmap.org, and http://nmap.org/download.html all appear in the browser cache with the appropriate timestamps and fetch count. This, plus having the creation time of the downloaded file, tells us exactly what the user did and when.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Turning off browsing history is pretty easily done, it's front-and-center on the "Privacy" tab in options. Default is "Remember history", but there are custom history settings as well as just "off". To test the artifacts, I turned off browsing history, googled "metasploit", and downloaded the latest version. As is expected, nothing is appearing in moz_places (browsing history). Nothing's showing up in the cache or the download history, so oddly enough turning off browsing history protects privacy better than "Private Browsing" mode. That means the only possibilities for detection are outside of Firefox, such as using the operating system to track who was logged in when the downloaded file was created and who executed it.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note, this is accurate at the time of writing, for the current version of Firefox (4.0.1). Once this is made known, it's entirely possible that any of these behaviors will change. You should always run your own testing to confirm behavior before trusting it in a case.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Evidence destruction&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;But what if the target of our investigation didn't know in advance that he needed to cover his tracks? Firefox has several options to remove recorded data, from the selective to the blunt.&lt;br /&gt;&lt;br /&gt;The most selective way to remove data is through the history pane. If you open the history pane and right-click on a history item, you can select "forget this site". Let's imagine this is a "violation of policy" case: browsing porn at work. I browsed to www.pornhub.com and started a video streaming to get a good cache. Opening up the history, it looks like Pornhub connected to several other porn sites, so if our suspect didn't make sure to forget all of the relevant sites there would still be evidence of their illicit browsing. In this case, however, I'm going to make sure and forget about all of them. After "forgetting" all the sites, there are no traces left in places.sqlite. There's evidence that sites were forgotten because of the gap in id numbers, but no indication of what was formerly there. Interestingly, using "forget this site" completely destroys the cache, but only removes the selected site(s) from the browsing history. This is a clear sign of evidence destruction, and the deleted cache files could likely be recovered from unallocated space or from backups (such as Volume Shadow Copy).&lt;br /&gt;&lt;br /&gt;If any of the databases are deleted, Firefox will automatically create a new empty copy of it the next time it's run. Normally, the databases will have a modified date of the last browsing event, but a creation date of when Firefox was originally installed. The creation date is not even modified when Firefox is upgraded or the history is "forgotten" through the browser options. Therefore, if the creation date of the tables is more recent than the creation date of core Firefox files (such as firefox.exe), it's a clear indication that the table was deleted around the creation date of the existing table. It may be recoverable through standard means.&lt;br /&gt;&lt;br /&gt;Directly modifying the databases would be somewhat more difficult to detect. The databases are modified constantly through regular browsing, so the timestamps wouldn't be a clue. However, like "forgetting this site", there will be a gap in the normally sequential ID numbers that could indicate that something was deleted, and examining the last_visit_date of the sites surrounding the gap might allow you to determine when the missing sites were visited. If backups of the databases exist, they might have the missing data. Also, the cache isn't nearly as user-friendly to edit as a sqlite database so if the cache isn't cleared it could provide a clue for what was lost. Even if the cache had been cleared, the deleted files might be recoverable through standard methods.&lt;br /&gt;&lt;br /&gt;This isn't meant to be a complete overview of all possible methods of antiforensics with Firefox, just a quick highlight of some possibly relevant issues and how to detect and overcome them. This is the end of my Firefox 4 forensics series, I hope it'll be a useful reference for your investigations. If any of this information turns out to be incorrect or changes in future versions, please let me know and I'll edit the appropriate post.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-3775194190242641044?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/3775194190242641044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/05/firefox-4-browser-forensics-part-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/3775194190242641044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/3775194190242641044'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/05/firefox-4-browser-forensics-part-5.html' title='Firefox 4 Browser Forensics, Part 5'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-2140492136923921382</id><published>2011-04-29T13:22:00.000-07:00</published><updated>2011-04-29T13:22:26.062-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox 4'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Firefox 4 Browser Forensics, Part 4</title><content type='html'>When I started this series, I had no idea it would go on this long. There are more forensic artifacts in FF4 than I thought. It seems like every time I turn around I find another database to mine for artifacts. For example, I was just about to start tearing apart cookies.sqlite when I saw there was a search.sqlite. It didn't turn out to have any significant artifacts, just the listing of search engines in the quick search box. Much more interesting are browser cookies.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Cookies&lt;/b&gt;&lt;br /&gt;Browser cookies are a notable and well-known source of browsing history. In IE, each cookie is a separate text file, but in Firefox, they're stored in yet another sqlite database: &lt;b&gt;cookies.sqlite&lt;/b&gt;. This database has just one table, &lt;b&gt;moz_cookies&lt;/b&gt;, with several columns:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;id:&lt;/b&gt;&amp;nbsp;an index&lt;/li&gt;&lt;li&gt;&lt;b&gt;name: &lt;/b&gt;the&amp;nbsp;variable being stored&lt;/li&gt;&lt;li&gt;&lt;b&gt;value:&lt;/b&gt;&amp;nbsp;the value of "name"&lt;/li&gt;&lt;li&gt;&lt;b&gt;host:&lt;/b&gt;&amp;nbsp;the website the cookie is for&lt;/li&gt;&lt;li&gt;&lt;b&gt;pathmain: &lt;/b&gt;the path the cookie is valid for.&lt;/li&gt;&lt;li&gt;&lt;b&gt;expiry:&lt;/b&gt;&amp;nbsp;when the cookie should be purged&lt;/li&gt;&lt;li&gt;&lt;b&gt;lastAccessed:&lt;/b&gt;&amp;nbsp;when the &lt;a href="http://blogs.igalia.com/dpino/?p=7"&gt;website last accessed the cookie&lt;/a&gt;&amp;nbsp;in PRTime&lt;/li&gt;&lt;li&gt;&lt;b&gt;isSecure:&amp;nbsp;&lt;/b&gt;is HTTPS required to access the cookie?&lt;/li&gt;&lt;li&gt;&lt;b&gt;isHttpOnly:&lt;/b&gt;&amp;nbsp;Can the only be accessed by HTTP, or can other methods (Javascript) access it?&lt;/li&gt;&lt;li&gt;&lt;b&gt;baseDomain:&lt;/b&gt;&amp;nbsp;The site's base domain, without www or other subdomain&lt;/li&gt;&lt;li&gt;&lt;b&gt;creationTime:&amp;nbsp;&lt;/b&gt;when the cookie was created in PRTime&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;When you're drawing conclusions from cookies, remember to take into account the browser's cookie control settings as well as the cookie timestamps. Like browsing history, cookies can tell you when the user viewed a website and can be a source for usernames and passwords for insecure websites. However, if the user clears cookies regularly, the amount of data will be limited. It also doesn't mean the user visited the site directly, as many advertising cookies (such as doubleclick.net) will be downloaded for related sites.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Saved Sessions&lt;/b&gt;&lt;br /&gt;One useful aspect of Firefox is it will automatically save the currently open browser tabs so you can reopen it the next session. The browser tabs are saved in sessionstore.js in Javascript object notation. These aren't just the raw URLs, possible fields include page title, referrer, formdata, and cookies. Any GET variables in the URL are preserved as well. As a result, if the user was logged into a website, they may still be be logged in when the saved session is restored. If sessionstore.js has been damaged or deleted, it may be recoverable in the backup, sessionstore.bak. A quick test shows that sessionstore.bak isn't always a duplicate of sessionstore.js, opening a new browser session overwrote sessionstore.js but not sessionstore.bak, so you may be able to recover two different browser sessions under some conditions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Bookmark backups&lt;/b&gt;&lt;br /&gt;In the profile folder there's a folder called bookmarkbackups, which contains a series of JSON files storing the last &lt;a href="http://support.mozilla.com/en-US/kb/Backing%20up%20and%20restoring%20bookmarks"&gt;10 backups&lt;/a&gt; of the user's bookmarks. The filenames are in the format of bookmarks-YYYY-MM-DD. These backup files include the bookmarks the user explicitly makes, but also Firefox's "Smart Bookmarks" which include items of forensic value like "Most Visited", "Recently Bookmarked", and "Recently Tagged". These backups also include timestamps in PRTime for when the bookmark was added and last modified. As always in forensics, backups like these can provide valuable insight into detecting antiforensics (such as deleting bookmarks) and in behavior over time.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Downloads&lt;/b&gt;&lt;br /&gt;&lt;b&gt;downloads.sqlite&lt;/b&gt; is where Firefox 3+ &lt;a href="https://developer.mozilla.org/en/The_Download_Manager_schema"&gt;stores information relating to downloaded files&lt;/a&gt;. There's just one table, &lt;b&gt;moz_downloads&lt;/b&gt;, but it has quite a few useful artifacts.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;id&lt;/b&gt;: an index&lt;/li&gt;&lt;li&gt;&lt;b&gt;name&lt;/b&gt;: the local filename of the download&lt;/li&gt;&lt;li&gt;&lt;b&gt;source&lt;/b&gt;: the remote filename and path being downloaded&lt;/li&gt;&lt;li&gt;&lt;b&gt;target&lt;/b&gt;: where it's being downloaded to&lt;/li&gt;&lt;li&gt;&lt;b&gt;tempPath&lt;/b&gt;: if the file is complete, it will be blank. If not, it's where the incomplete file is being stored before moving to &lt;b&gt;target&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;startTime&lt;/b&gt;: Time the download started, in PRTime&lt;/li&gt;&lt;li&gt;&lt;b&gt;endTime&lt;/b&gt;: Time the download finished, also PRTime&lt;/li&gt;&lt;li&gt;&lt;b&gt;state&lt;/b&gt;: state of download, encoded as an&amp;nbsp;&lt;a href="https://developer.mozilla.org/en/NsIDownloadManager#Constants"&gt;integer&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;b&gt;referrer&lt;/b&gt;: the page containing the link to the file&lt;/li&gt;&lt;li&gt;&lt;b&gt;entityID&lt;/b&gt;: a value used for resuming downloads&lt;/li&gt;&lt;li&gt;&lt;b&gt;currBytes&lt;/b&gt;: Number of bytes downloaded.&lt;/li&gt;&lt;li&gt;&lt;b&gt;maxBytes&lt;/b&gt;: Total file size.&lt;/li&gt;&lt;li&gt;&lt;b&gt;mimeType&lt;/b&gt;: MIME file type.&lt;/li&gt;&lt;li&gt;&lt;b&gt;preferredApplication&lt;/b&gt;: From the download dialogue box, if the user clicks run, this stores the program that will open the downloaded file. If the user clicks save, this will be blank.&lt;/li&gt;&lt;li&gt;&lt;b&gt;preferredAction&lt;/b&gt;: Action to take when download is complete. Default is 0, just save the file.&lt;/li&gt;&lt;li&gt;&lt;b&gt;autoResume&lt;/b&gt;: Can the download be resumed if broken?&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;extensions.ini&lt;/b&gt; records what Firefox&amp;nbsp;extensions&amp;nbsp;are installed, which may be useful if, for example, hacker tools like Hackbar or anonymizers like FoxyProxy are installed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Form history&lt;/b&gt;&lt;br /&gt;&lt;b&gt;formhistory.sqlite&lt;/b&gt; is another good source for artifacts, although unfortunately it doesn't track what website the form was used on.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;id&lt;/b&gt;: Another numeric index&lt;/li&gt;&lt;li&gt;&lt;b&gt;fieldname&lt;/b&gt;: The field that contained &lt;b&gt;value&lt;/b&gt;. This may be an HTML field in a website's form, or it may be a Firefox field, like searchbar-history.&lt;/li&gt;&lt;li&gt;&lt;b&gt;value&lt;/b&gt;: What was typed into &lt;b&gt;fieldname&lt;/b&gt;. In addition to search history, this is a good source for email addresses and usernames connected to the user.&lt;/li&gt;&lt;li&gt;&lt;b&gt;timesUsed&lt;/b&gt;: How many times the user has typed &lt;b&gt;value&lt;/b&gt; into &lt;b&gt;fieldname&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;&lt;b&gt;firstUsed&lt;/b&gt;: The first time the user typed&amp;nbsp;&lt;b&gt;value&lt;/b&gt; into &lt;b&gt;fieldname&lt;/b&gt;, in PRTime as always.&lt;/li&gt;&lt;li&gt;&lt;b&gt;lastUsed&lt;/b&gt;: The last time&amp;nbsp;the user typed&amp;nbsp;&lt;b&gt;value&lt;/b&gt; into &lt;b&gt;fieldname&lt;/b&gt;, in PRTime as always.&lt;/li&gt;&lt;li&gt;&lt;b&gt;guid&lt;/b&gt;: A global id for the formhistory, in case&amp;nbsp;syncing&amp;nbsp;is enabled.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Cache&lt;/b&gt;&lt;br /&gt;The cache exists in two folders, for Windows 7 they are Users/[user]/AppData/Local/Mozilla/Firefox/Profiles/[profile name]/Cache and&amp;nbsp;Users/[user]/AppData/Local/Mozilla/Firefox/Profiles/[profile name]/OfflineCache. The offline cache is used when Firefox is in offline mode, but it's the standard cache which will be more likely to be used for forensics. The cache can be viewed through the browser by navigating to about:cache, or it can be viewed directly on the file system. On the filesystem, the actual cache files are stored in a set of directories and subdirectories with names in hex. The files can be located by using the _CACHE_MAP_ and _CACHE_00X_ files. A full writeup on how the cache works has been done by Symantec's response team &lt;a href="http://www.symantec.com/connect/articles/web-browser-forensics-part-2"&gt;here&lt;/a&gt;. As far as I can tell, the cache scheme hasn't changed since then. This layout is rather inconvenient to navigate by hand, so an automated tool like Firefox's cache browser or other tool is&amp;nbsp;definitely&amp;nbsp;the way to proceed here. Looking at about:cache, it appears Firefox stores useful information like the full URL cached (including GET parameters), cached file size, number of times the cached file was accessed, last time the file was modified and time the cached file expires, full hex dump of the file, and the full HTTP request issued to access it. Since these are individual files on the hard drive, the standard Modified-Accessed-Created timestamps can provide additional information.&lt;br /&gt;&lt;br /&gt;Alright, we're finally through the forensic artifacts available in Firefox 4! There'll be just one entry left, anti-forensics in Firefox 4.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-2140492136923921382?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/2140492136923921382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-4.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/2140492136923921382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/2140492136923921382'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-4.html' title='Firefox 4 Browser Forensics, Part 4'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-7650022976381172560</id><published>2011-04-22T12:56:00.000-07:00</published><updated>2011-04-29T21:38:02.616-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox 4'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Firefox 4 Browser Forensics, Part 3</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;In&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;a href="http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-1.html"&gt;Part 1&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;, we covered typed URLs and the bookmark structure of Firefox 4. In &lt;a href="http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-2.html"&gt;Part 2&lt;/a&gt;, we started delving into the moz_places table, ending with an introduction to frecency.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;As I noted, frecency is a number generated by Firefox that combines different measures of user behavior with a URL, including bookmarking it, frequency and recency of visits. The result is a single number that tries to quantify how interested the user is in the URL. This means that with a simple SQL query (&lt;b&gt;select * from moz_places order by frecency desc limit 20&lt;/b&gt; for example), we can get a snapshot of the user's current sites of interest. This could be particularly useful for an "acceptable use policy" investigation, where the issue may turn around how much of a user's browsing history is personal vs. work-related. If the FarmVille app is among a user's top 20 sites sorted by frecency, a violation should be pretty easy to prove. Since frecency is based on other &lt;a href="https://developer.mozilla.org/en/The_Places_frecency_algorithm"&gt;known factors&lt;/a&gt;, you could go through the user's full behavior to see what exactly they did to get there (type of visit, etc). That information is stored in &lt;b&gt;moz_inputhistory&lt;/b&gt; (which we already covered) and &lt;b&gt;moz_historyvisits&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;b&gt;moz_historyvisits&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;As the names imply, moz_places records the urls that a user visits, and moz_historyvisits record the details of each visit to the url. Since it records each visit to each page in the domain, there will be a lot of records ... which makes a shorthand like frecency very useful. The columns are &lt;b&gt;id&lt;/b&gt; (the index), &lt;b&gt;from_visit&lt;/b&gt; (the referrer), &lt;b&gt;place_id&lt;/b&gt; (the connection back to the URL entry in moz_places), &lt;b&gt;visit_date&lt;/b&gt; &amp;nbsp;(timestamp in PRTime again), &lt;b&gt;visit_type&lt;/b&gt;, and &lt;b&gt;session&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;Let's step through what this means by actually analyzing my browsing behavior. First, I ran&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;b&gt;select * from moz_places order by frecency desc limit 20&lt;/b&gt; to grab the top 20 websites from moz_places to look for something interesting. I'm arbitrarily picking http://www.wired.com as my URL of interest. moz_places.id for this url is 485, so I run &lt;b&gt;select * from moz_historyvisits where place_id=485&lt;/b&gt; which yields:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-EhlGzKujjQE/TbCtdlVsN6I/AAAAAAAAALA/5G0zW0M6lYg/s1600/moz_historyvisits.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;img border="0" height="88" src="http://3.bp.blogspot.com/-EhlGzKujjQE/TbCtdlVsN6I/AAAAAAAAALA/5G0zW0M6lYg/s400/moz_historyvisits.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;seven visits. Now, for these results we can ignore the first column (id). Next is &lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;b&gt;from_visit&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;, which gives the id of the page I visited before visiting the current page. For the last three visits, it's 0 indicating that I opened a new tab and went straight to Wired. For the others it refers to the immediately prior id number, which is what you would expect if I was only browsing in one tab at the moment. If the numbers were not consecutive, that would imply multiple-tabbed browsing. In the first entry, I came to Wired after visiting the entry in moz_historyvisits.id=941. Looking up that entry, I see that was a visit to place_id=484, which is http://wired.com. Incidentally, that's true for the first four entries. To explain why, see that the visit type for all four www.wired.com entries is 5, indicating a &lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;a href="http://www.forensicswiki.org/wiki/Mozilla_Firefox_3_History_File_Format"&gt;permanent redirect&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt; (HTTP 301). For the respective entries for http://wired.com, the visit type is 2, indicating I typed the URL. So, at those times I typed wired.com in the address bar. Firefox logged the visit and took me to http://wired.com, which redirected me to http://www.wired.com and logged another visit. For the last three visits to Wired, I typed www.wired.com directly. Since those were the more recent and since I logged 7 visits to www.wired.com and only 4 to wired.com, www.wired.com was the one that was on top in frecency (8800 vs. 4813) instead of the non-www version, despite the fact that a typed URL gets a frecency bonus over a redirect URL. Also note that just because I came to www.wired.com via a redirect, doesn't mean I didn't intend to go there. Seeing what site took me there is essential to determine what my intentions were.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;Obviously this is a trivial example, but it should be pretty apparent how it could be applied to a more interesting investigation.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;b&gt;More tables&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;There are a set of tables called &lt;b&gt;moz_annos&lt;/b&gt;, &lt;b&gt;moz_anno_attributes&lt;/b&gt; and &lt;b&gt;moz_items_annos&lt;/b&gt;, but &lt;a href="http://satanstrumpet.blogspot.com/2009/04/how-to-stop-firefox-becoming.html"&gt;as far as&lt;/a&gt; &lt;a href="https://wiki.mozilla.org/Places/StatusMeetings/2006-10-26_and_2006-10-27"&gt;I can tell&lt;/a&gt;&amp;nbsp;they are used by Firefox extensions and are unlikely to be useful for forensics.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;That's everything of interest out of &lt;b&gt;places.sqlite&lt;/b&gt;, but there are other tables that have useful information: tables like &lt;b&gt;signons.sqlite&lt;/b&gt;. This is where the logins and passwords are stored. If the user hasn't specified a master password for his Firefox profile, then the usernames and passwords will be clearly available through Options &amp;gt; Security &amp;gt; Saved Passwords. If there is a master password set and you don't have it, then you won't be able to get to the list of sites and passwords directly. Nothing stops you from accessing &lt;b&gt;signons.sqlite&lt;/b&gt; directly, though.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;b&gt;signons.sqlite&lt;/b&gt; contains two tables, &lt;b&gt;moz_logins&lt;/b&gt; and &lt;b&gt;moz_disabledHosts&lt;/b&gt;. &lt;b&gt;moz_disabledHosts&lt;/b&gt; is a list of websites which the user doesn't want Firefox to ask to remember logins. &lt;b&gt;moz_logins&lt;/b&gt; is where the sites, usernames and passwords are stored. The columns are &lt;b&gt;id&lt;/b&gt;, &lt;b&gt;hostname&lt;/b&gt; (the login page), &lt;b&gt;httpRealm&lt;/b&gt;, &lt;b&gt;formSubmitUrl&lt;/b&gt; (the actual page the username and password get sent to), &lt;b&gt;usernameField&lt;/b&gt; (the identifier of the username field), &lt;b&gt;passwordField&lt;/b&gt; (the identifier of the password field), &lt;b&gt;encryptedUsername&lt;/b&gt;, &lt;b&gt;encryptedPassword&lt;/b&gt;, &lt;b&gt;guid&lt;/b&gt; (global ID, for login syncing), &lt;b&gt;encType&lt;/b&gt;, &lt;b&gt;timeCreated&lt;/b&gt;, &lt;b&gt;timeLastUsed&lt;/b&gt;, &lt;b&gt;timePasswordChanged&lt;/b&gt;, &lt;b&gt;timesUsed&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;Setting a master password in Firefox does not change any of the data here, it just blocks you from viewing the decrypted passwords IN Firefox. You can still get lots of useful browsing information from the file, everything except what their username and passwords are. Documentation on &lt;b&gt;signons.sqlite&lt;/b&gt; is scanty, but from what I can tell all the timestamp fields are new in Firefox 4. Strangely, these timestamps aren't encoded in PRTime (microseconds since Unix epoch) like the rest of the timestamps. Instead it's miliseconds since epoch, so we get all the timestamps with:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;sqlite&amp;gt; select hostname, datetime(timeCreated/1000,'unixepoch'),&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;datetime(timeLastUsed/1000,'unixepoch'),&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;datetime(timePasswordChanged/1000,'unixepoch') from moz_logins;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;For my test system, the results are:&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-UpkHWr-lWfI/TbHOix9X3YI/AAAAAAAAALE/z7GkwgMnAlA/s1600/signon_timestamps.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;img border="0" height="55" src="http://2.bp.blogspot.com/-UpkHWr-lWfI/TbHOix9X3YI/AAAAAAAAALE/z7GkwgMnAlA/s400/signon_timestamps.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;This system has credentials saved for two Facebook accounts. For the first, the login was saved on March 17 and last used on March 31. For the second, it was only used once, on April 4. Neither has changed passwords. This can be useful if you need to prove that a user actually logged into a site, rather than just visiting it. If a user clears their browsing history but not saved passwords (which is default behavior), this will still show up as well. It's also yet another way to prove that a user actually intended to go to a site repeatedly instead of it being an accidental click or redirect.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;The usernames and passwords are encrypted, but the master password and decryption keys are stored in key3.db (more info &lt;a href="http://kb.mozillazine.org/Password_Manager"&gt;here&lt;/a&gt;). Since you have the decryption keys, decrypting the passwords should be possible if needed. There are &lt;a href="http://securityxploded.com/firepassword.php"&gt;tools out&lt;/a&gt; to do that, so I'll leave that as an exercise to the reader. :)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; line-height: 18px;"&gt;In &lt;a href="http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-4.html"&gt;Part 4&lt;/a&gt;, I'll go into cookies and cached files.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-7650022976381172560?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/7650022976381172560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7650022976381172560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7650022976381172560'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-3.html' title='Firefox 4 Browser Forensics, Part 3'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-EhlGzKujjQE/TbCtdlVsN6I/AAAAAAAAALA/5G0zW0M6lYg/s72-c/moz_historyvisits.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-8877646643132120834</id><published>2011-04-18T10:19:00.000-07:00</published><updated>2011-04-29T21:38:54.580-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox 4'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Firefox 4 Browser Forensics, Part 2</title><content type='html'>In &lt;a href="http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-1.html"&gt;Part 1&lt;/a&gt;, we covered typed URLs and the bookmark structure of Firefox 4. Now, I'm going to start digging into &lt;b&gt;moz_places&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;moz_places&lt;/b&gt;&lt;br /&gt;moz_places is the main table for the browser history. It's columns are &lt;b&gt;id&lt;/b&gt;, &lt;b&gt;url&lt;/b&gt;, &lt;b&gt;title&lt;/b&gt;, &lt;b&gt;rev_host&lt;/b&gt;, &lt;b&gt;visit_count&lt;/b&gt;, &lt;b&gt;hidden&lt;/b&gt;, &lt;b&gt;typed&lt;/b&gt;, &lt;b&gt;favicon_id&lt;/b&gt;, and &lt;b&gt;frecency&lt;/b&gt;[sic]. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-1aB4oPRFvvY/TadZTYMo3YI/AAAAAAAAAKw/E_3cmdFKBbY/s1600/placessqlite.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-1aB4oPRFvvY/TadZTYMo3YI/AAAAAAAAAKw/E_3cmdFKBbY/s320/placessqlite.png" width="309" /&gt;&lt;/a&gt;&lt;/div&gt;The first 20 entries of moz_places in my test system.&lt;br /&gt;&lt;br /&gt;As we've mentioned before, &lt;b&gt;id&lt;/b&gt; is a simple numerical index that connects the links in &lt;b&gt;moz_places&lt;/b&gt; to their references in the other tables. The Mozilla Wiki has a handy graphic for reference.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://wiki.mozilla.org/images/2/20/Fx3-Places-ERD.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="348" src="https://wiki.mozilla.org/images/2/20/Fx3-Places-ERD.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;After &lt;b&gt;id&lt;/b&gt; is &lt;b&gt;url&lt;/b&gt; which is the full URL of the visited page. As you can see from my test results above, it's the exact page visited, not just the domain. That's why we see my click train from http://www.phishtank.com/ to http://www.phishtank.com/login.php and then to http://www.phishtank.com/phish_archive.php. Next is &lt;b&gt;Title&lt;/b&gt; which is the stored title of the page. &lt;br /&gt;&lt;br /&gt;The &lt;a href="https://wiki.mozilla.org/Places:BookmarksComments#The_Singleton_Model"&gt;Mozilla Wiki notes&lt;/a&gt;: &lt;br /&gt;&lt;blockquote&gt;Bookmarks are basically pointers to that history entry, with a few properties to determine their placement in the bookmarks folder hierarchy. The design is such that most properties of a bookmark are derived from the moz_history entry, and not the bookmark.&lt;br /&gt;This is problematic as soon as the same URI is bookmarked more than once. Eg: If you change a bookmark's title, then the title changes anywhere you've bookmarked that URI.&lt;/blockquote&gt;This is no longer the case. As we already discovered, the &lt;b&gt;moz_bookmarks&lt;/b&gt; table has it's own &lt;b&gt;title&lt;/b&gt; field where the bookmark title is stored. Changing the bookmark title no longer overwrites the title in &lt;b&gt;moz_places&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;rev_host&lt;/b&gt; is the fully qualified domain name backwards, ending with a period. So, "http://www.phishtank.com/phish_detail.php" gets converted to "moc.knathsihp.www." Firefox uses this so that they can index this and quickly search for subdomains of a primary domain. An investigator may want to use this field for the same purpose. See the &lt;a href="http://mxr.mozilla.org/mozilla-central/source/toolkit/components/places/Helpers.h#167"&gt;Firefox source code&lt;/a&gt;. Thanks to &lt;a href="http://www.firefoxforensics.com/research/moz_places.shtml"&gt;FirefoxForensics&lt;/a&gt; for this.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;visit_count&lt;/b&gt; is another field very useful for an investigation. This is an integer that increments for every time the user visits the site. Since the places.sqlite is associated with the user logged into the computer, this only reflects the number of times that particular user account visited the site. Some additional notes from FirefoxForensics:&lt;br /&gt;&lt;blockquote&gt;This counter is incremented when the associated places.sqlite::moz_historyvisits::visit_type is not 0, 4 (embedded), or 7 (download).&lt;br /&gt;&lt;br /&gt;Research by the author shows that reloading a page by clicking the 'Reload current page' button, pressing CTRL-R or following a self-referring URL does not increment visit_count.&lt;br /&gt;&lt;br /&gt;If the start-up option to 'Show my windows and tabs from last time' is selected, the visit_count of those pages will NOT be incremented when the browser is started and they are loaded.&lt;br /&gt;&lt;br /&gt;If the start-up option to 'Show my home page' is selected, the visit_count of the home page WILL be incremented each time the browser is started and they are loaded.&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;hidden&lt;/b&gt; &lt;br /&gt;According to the &lt;a href="http://groups.google.com/group/mozilla.dev.apps.firefox/browse_thread/thread/c5633268ff668908/3103e6bf556248ce#msg_e9f57ca1bac61f1a"&gt;Mozilla devs&lt;/a&gt;, "Hidden uri's are ones that the user didn't specifically navigate to. Those tend to include embedded pages and images.  It might include something else, but I'm not 100% sure." At first glance one might want to exclude this from analysis because the user didn't specifically navigate to them, but since it includes images that would be a mistake. If the user navigated to the page containing the image, the images entry here would still give you valuable info like how many times the image has been loaded, etc.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;typed&lt;/b&gt; is different than the &lt;b&gt;input&lt;/b&gt; field in &lt;b&gt;moz_inputhistory&lt;/b&gt; If the user started typing and then clicked the quick result, then it'll be listed under &lt;b&gt;moz_inputhistory.input&lt;/b&gt;. If the user typed the full url, then it'll be under &lt;b&gt;moz_places.typed&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;To give an example, the first time I went to phishtank.com, I typed "www.phishtank.com" into the address bar and it took me to the site. That generated this entry in the database:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-7q18MNJknic/TajV3mIlMgI/AAAAAAAAAK4/C0n4q_Xs-_k/s1600/phishtank1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="48" src="http://2.bp.blogspot.com/-7q18MNJknic/TajV3mIlMgI/AAAAAAAAAK4/C0n4q_Xs-_k/s320/phishtank1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The next time I visited, I just typed 'phishtank' before Firefox recognized the URL and I went to the site. That got stored in moz_inputhistory.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;favicon_id&lt;/b&gt; is an id number that connects to which image in &lt;b&gt;moz_favicons&lt;/b&gt; is the &lt;a href="http://en.wikipedia.org/wiki/Favicon"&gt;favicon&lt;/a&gt; (the little graphic in the title bar) for the page.&lt;br /&gt;&lt;br /&gt;The last field in &lt;b&gt;moz_places&lt;/b&gt; is &lt;b&gt;frecency&lt;/b&gt;. That's not a typo for "frequency", it's a combination of "frequency" and "recency". As you'd expect from the name, it's a value generated by both how often the user has visited a place and how recently they visited it. The full algorithm is &lt;a href="https://developer.mozilla.org/en/The_Places_frecency_algorithm"&gt;here&lt;/a&gt;. 0 is the default score, and the higher the number the higher it appears on autocomplete results. As the algorithm link shows, it draws on a number of elements of user behavior to determine the frecency. This means that you can use it as a shorthand for determining if a user was interested in the URL and then investigate the underlying behaviors (how often they visited, how often they typed the address vs. redirect vs. following links, if they bookmarked it, etc) to articulate what exactly they did that shows interest in the link.&lt;br /&gt;&lt;br /&gt;Frecency turns out to be a pretty complicated topic, so I'll save it (and &lt;b&gt;signons.sqlite&lt;/b&gt;) for &lt;a href="http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-3.html"&gt;part 3&lt;/a&gt;. &lt;a href="http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-4.html"&gt;Part 4&lt;/a&gt; covers cookies, cache, downloads and more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-8877646643132120834?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/8877646643132120834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/8877646643132120834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/8877646643132120834'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-2.html' title='Firefox 4 Browser Forensics, Part 2'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-1aB4oPRFvvY/TadZTYMo3YI/AAAAAAAAAKw/E_3cmdFKBbY/s72-c/placessqlite.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-1848128459604851970</id><published>2011-04-13T15:48:00.000-07:00</published><updated>2011-04-29T21:39:12.394-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox 4'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Firefox 4 Browser Forensics, Part 1</title><content type='html'>Firefox 4 was released almost a month ago now, and was in open beta for a significant time before that. However, a cursory Google search doesn't reveal much documentation of it's features of forensic interest, or it's changes since the last version.&lt;br /&gt;&lt;br /&gt;For this analysis, I'm using Firefox 4.0 (current version as of writing) running on a Windows 7 VM. To examine the sqlite databases, I'm using the sqlite3 command line tool. Sqlite3 runs under Linux and Windows, and you can feed it SQL commands to script common actions, such as searching history for keywords or for browsing during a time range of interest.&lt;br /&gt;&lt;br /&gt;Just like Firefox 3, Firefox 4 stores the browser history in an SQLite database. For Windows Vista/7, it's located at &lt;drive&gt;:\Users\&lt;user&gt;\AppData\Roaming\Mozilla\Firefox\Profiles\&lt;profile folder=""&gt;\places.sqlite This database contains the tables &lt;b&gt;moz_anno_attributes&lt;/b&gt; &lt;b&gt;moz_annos&lt;/b&gt; &lt;b&gt;moz_bookmarks&lt;/b&gt; &lt;b&gt;moz_bookmarks_roots&lt;/b&gt; &lt;b&gt;moz_favicons&lt;/b&gt; &lt;b&gt;moz_historyvisits&lt;/b&gt; &lt;b&gt;moz_inputhistory&lt;/b&gt; &lt;b&gt;moz_items_annos&lt;/b&gt; &lt;b&gt;moz_keywords&lt;/b&gt; and &lt;b&gt;moz_places&lt;/b&gt; These tables seem unchanged from version 3, as documented on the &lt;a href="http://kb.mozillazine.org/Places.sqlite"&gt;MozillaZine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;moz_inputhistory&lt;/b&gt;&lt;br /&gt;When a person begins typing into the address bar, Firefox searches through it's browser history to try and connect what the user is typing with the websites he has visited recently. It outputs the suggestions with the webpage title and full URL in the suggestions below the address bar. When the user clicks the suggestion, the text they typed to find that url is stored in the &lt;b&gt;moz_inputhistory&lt;/b&gt; table. The moz_inputhistory table is of particular interest to forensics because it can show that the person using the user account typed something into the address bar to access the site, rather than following a link or getting forced there by a pop-up. &lt;br /&gt;&lt;br /&gt;The column names for this table are place_id, input, use_count, and PRIMARY KEY. Here's an example of the contents of the table, taken from my test system. &lt;br /&gt;&lt;br /&gt;&lt;/profile&gt;&lt;/user&gt;&lt;/drive&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-z46nRR2hVW4/TaXtDOwovSI/AAAAAAAAAKo/9zZJDd9F9WQ/s1600/moz_inputhistory.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="178" src="http://4.bp.blogspot.com/-z46nRR2hVW4/TaXtDOwovSI/AAAAAAAAAKo/9zZJDd9F9WQ/s320/moz_inputhistory.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Note that none of these are full links. What you see here is what you get when someone starts typing a URL or keyword into the address bar and then clicks on one of the autocomplete terms. It does not seem to record full URLs. So, we get "ars t" and "arstechn" from two of the ways I accessed &lt;a href="http://www.arstechnica.com/"&gt;Ars Technica&lt;/a&gt;. It does not store search terms from the search box.&lt;br /&gt;&lt;br /&gt;place_id refers to the destination of the input. This number can be converted into the actual website visited via the &lt;b&gt;moz_places&lt;/b&gt; table. So, for example, I see that when I typed "ars t" into my address bar, I clicked on the website with id 197. The command &lt;b&gt;&amp;gt; select * from moz_places where id=197;&lt;/b&gt; returns the website URL (http://arstechnica.com/) and the website title (Ars Technica) as well as other information that we'll cover when we get to the moz_places table.&lt;br /&gt;&lt;br /&gt;The last column, use_count is an odd one. &lt;a href="http://davidkoepi.wordpress.com/2010/11/27/firefoxforensics/"&gt;David Koepi&lt;/a&gt; looked at Firefox 3.6 and suggested that  use count refers to the number of times the same text was typed into the address bar. On my system in Firefox 4, that doesn't seem to be the case as most of the values in use_count are decimals (see screenshot above). Running some tests, it seems to be related to the number of times run ... for example, typing "sans.o" into the address bar the first time adds it to moz_inputhistory and sets use_count to 1. So far so good, but here's where it gets odd. Typing it in four more times changes it to 1.9, then 2.71, 3.439, and 4.0951. As you can see from the other links in my history, many of them end up with values less than 1. This is probably a bug in Firefox, so I wouldn't rely on the value of this for any reason until it's better understood.&lt;br /&gt;&lt;br /&gt;This is why it's important to do your own testing, instead of just believing what you read on the Internet.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;moz_bookmarks&lt;/b&gt; and &lt;b&gt;moz_bookmarks_roots&lt;/b&gt;&lt;br /&gt;Bookmarks are also valuable for an investigator to examine because like inputhistory it implies that the user took an active action with the site, in this case marking it for later re-visit. The fields here are id, type, fk, parent, position, title, keyword_id, folder_type, dateAdded, lastModified, and guid. Comparing to the documentation by &lt;a href="http://davidkoepi.wordpress.com/2010/11/27/firefoxforensics/"&gt;David Koepi&lt;/a&gt; and &lt;a href="http://www.forensicswiki.org/wiki/File:Firefox3_places_relationship_schema.png"&gt;firefoxforensics&lt;/a&gt;, it appears guid has been added for FF4. According to the &lt;a href="https://wiki.mozilla.org/Places:BookmarksComments#Identity_and_URIs"&gt;Mozilla wiki&lt;/a&gt;, guid was added in order to have a unique global identifier, rather than the simple incrementing index of id. This means that gid, not id, would be the proper link between bookmarks across computers using the new Sync service in FF4. Note, I haven't tested this.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;type&lt;/b&gt; is an integer referring to the type of the bookmark. Type 1 is a normal bookmark, 2 is a tag (folders are really just a type of tag). Type 3 is a separator, and so has no useful info. &lt;b&gt;fk&lt;/b&gt; is a foreign key, which links to the id in &lt;b&gt;moz_places&lt;/b&gt; (where you can find the actual url). &lt;b&gt;parent&lt;/b&gt; refers to the id of the containing object (folder), which can tell you where the user categorized the bookmark. &lt;b&gt;position&lt;/b&gt; refers to the listing order of the bookmarks, and is not likely to be interesting. &lt;b&gt;title&lt;/b&gt; refers to the display name of the bookmark and &lt;b&gt;keyword_id&lt;/b&gt; is the index number of the keyword (moz_keywords) associated with the bookmark. It may be useful to find associated bookmarks. folder_type is not likely to be useful, but dateAdded and lastModified would be. These values are exactly what they sound like, stored as &lt;a href="http://www.firefoxforensics.com/research/prtime.shtml"&gt;PRTime&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;moz_bookmarks_root&lt;/b&gt; defines the root folders in the Firefox bookmark structure, and is not of forensic interest.&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-2.html"&gt;Part 2&lt;/a&gt; I'll get into &lt;b&gt;moz_places&amp;nbsp;&lt;/b&gt;and more browsing history. &lt;a href="http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-3.html"&gt;Part 3&lt;/a&gt; has &lt;b&gt;moz_historyvisits&lt;/b&gt; and &lt;b&gt;signons.sqlite. &lt;/b&gt;&lt;a href="http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-4.html"&gt;Part 4&lt;/a&gt; covers cookies, cache, downloads and more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-1848128459604851970?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/1848128459604851970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/1848128459604851970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/1848128459604851970'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/04/firefox-4-browser-forensics-part-1.html' title='Firefox 4 Browser Forensics, Part 1'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-z46nRR2hVW4/TaXtDOwovSI/AAAAAAAAAKo/9zZJDd9F9WQ/s72-c/moz_inputhistory.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-6047758181814757625</id><published>2011-04-08T16:50:00.000-07:00</published><updated>2011-07-19T21:56:18.686-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='viruses'/><category scheme='http://www.blogger.com/atom/ns#' term='patch management'/><category scheme='http://www.blogger.com/atom/ns#' term='drive-by downloads'/><category scheme='http://www.blogger.com/atom/ns#' term='reverse-engineering'/><title type='text'>Reversing malicious Javascript, part 2</title><content type='html'>This is part 2 in my adventures reverse-engineering a malicious Javascript I found on my computer.  &lt;a href="http://renaissancesecurity.blogspot.com/2011/04/reverse-engineering-malicious.html"&gt;Last time&lt;/a&gt; I unraveled some annoying string manipulation that eventually ran &lt;b&gt;return eval(String.fromCharCode())&lt;/b&gt; on a long series of Unicode-encoded characters.&lt;br /&gt;&lt;br /&gt;I finally unencoded that long string of Unicode and, as expected, it was more Javascript. I was surprised at how much there was ... several hundred lines of code. This is unusually large for malicious Javascript. Bigger doesn't mean more sophisticated, however!&lt;br /&gt;&lt;br /&gt;There are two Javascript functions that are relevant here. The first is called 'zazo', which tries to exploit a vulnerability in the Java Development Kit to load a malicious Java applet that the attacker controls. The payload is gone by now, so I can't tell what it would have done. This is a known vulnerability, CVE-2010-0886, and is &lt;a href="http://www.exploit-db.com/exploits/12117/"&gt;described in detail here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The second function is the reason this malicious script is so long. It includes a version of PluginDetect, a script by &lt;a href="http://www.pinlady.net/PluginDetect/"&gt;Eric Gerds&lt;/a&gt; that is designed to determine what version of many common browser plugins are being used. In this case, the malware author has it probe for Java and Adobe Reader versions, although the script only uses the Adobe Reader version. Although this plugin detector is being used maliciously, it's not inherently malicious and there's no reason to think Eric has any connection to the malware author.&lt;br /&gt;&lt;br /&gt;After determining what version of Adobe Reader is being used, the script makes a simple calculation: if Reader is older than 8.0, it serves up one malicious pdf. If Reader is between 8 and 9.3.1, it serves up an alternate malicious PDF. If you don't have Reader or if your copy of Reader is up to date, you're safe from this script. Reader version 9.3.1 was released specifically to patch the vulnerability described in &lt;a href="http://www.adobe.com/support/security/bulletins/apsb10-07.html"&gt;CVE-2010-0188&lt;/a&gt;, which affected Reader versions 8 to 9.3, so we can be fairly sure that's what this PDF was exploiting.&lt;br /&gt;&lt;br /&gt;Interestingly, in &lt;a href="http://renaissancesecurity.blogspot.com/2011/04/reverse-engineering-malicious.html"&gt;part 1&lt;/a&gt; we discovered that this bit of malware knew that it was 2011 and it would need to be modified to function in a different year. Despite that, the three bugs it attempts to exploit are old. The Java bug had a patch available &lt;a href="http://www.oracle.com/technetwork/topics/security/alert-cve-2010-0886-094541.html"&gt;a year ago&lt;/a&gt;. With the Reader exploits, one was patched last November and the other only affected versions older than 2006! These are not anywhere close to &lt;a href="http://en.wikipedia.org/wiki/Zero-day_attack"&gt;0-day attacks&lt;/a&gt;. This is exactly why it's so important to keep your software up to date.&lt;br /&gt;&lt;br /&gt;Also, &lt;a href="http://krebsonsecurity.com/2010/10/java-a-gift-to-exploit-pack-makers/"&gt;Java is very frequently exploited&lt;/a&gt;. If you don't absolutely need it, get rid of it. Then hackers will have one less way to attack you and you'll have one less program to keep updated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-6047758181814757625?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/6047758181814757625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/04/reversing-malicious-javascript-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/6047758181814757625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/6047758181814757625'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/04/reversing-malicious-javascript-part-2.html' title='Reversing malicious Javascript, part 2'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-4729537083993604768</id><published>2011-04-06T16:02:00.000-07:00</published><updated>2011-07-19T21:56:43.088-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='antivirus'/><category scheme='http://www.blogger.com/atom/ns#' term='viruses'/><category scheme='http://www.blogger.com/atom/ns#' term='drive-by downloads'/><category scheme='http://www.blogger.com/atom/ns#' term='reverse-engineering'/><title type='text'>Reverse engineering a malicious javascript part 1</title><content type='html'>My antivirus program flagged a malicious javascript a few days ago. At some point in my web browsing, a webpage quietly served up a malicious script in addition to the regular content. It was saved to my browser's cache and quarantined by my antivirus. Being the curious person that I am, I thought I'd try my hand at understanding how it works. Of course, as is typical of malicious scripts it was obfuscated.&amp;nbsp; Instead of looking like nice Javascript:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;document.write("&amp;lt;h1&amp;gt;This is a heading&amp;lt;/h1&amp;gt;");&lt;br /&gt;document.write("&amp;lt;p&amp;gt;This is a paragraph.&amp;lt;/p&amp;gt;");&lt;br /&gt;document.write("&amp;lt;p&amp;gt;This is another paragraph.&amp;lt;/p&amp;gt;");&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;the malicious script is a mess, deliberately difficult to read (click to enlarge):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-rYAI-Q28tSY/TZzDPdgTzaI/AAAAAAAAAKQ/-irH1ahWDks/s1600/raw_js.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="226" src="http://3.bp.blogspot.com/-rYAI-Q28tSY/TZzDPdgTzaI/AAAAAAAAAKQ/-irH1ahWDks/s320/raw_js.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The sequence of numbers keeps going for the rest of the script.&lt;br /&gt;&lt;br /&gt;Malware authors use tricks like this to keep people like me from understanding how the script works, and to make it more difficult for antivirus software to detect the page. If the av can't penetrate the obfuscation, then if they start detecting this page all the malware author needs to do is obfuscate it differently to generate a new signature. For more information on reverse engineering malware, take a look at this &lt;a href="http://www.blackhat.com/presentations/bh-dc-10/Ross_Jason/Blackhat-DC-2010-Ross-Malware-Analysis-for-the-Enterprise-wp.pdf"&gt;BlackHat presentation&lt;/a&gt; (pdf).&lt;br /&gt;&lt;br /&gt;The curious thing about obfuscation is that it's designed to be difficult for people to understand yet simple for computers to understand. Luckily for me, that means we can use a javascript engine to translate it all back for us. &lt;a href="http://blog.didierstevens.com/programs/spidermonkey/"&gt;Didier Stevens&lt;/a&gt; has modified Mozilla's Spidermonkey for exactly this purpose. All I need to to is extract the javascript from the rest of the page so I can feed it to the engine. Since this is pretty simple, though, I'm going to do this by hand. &lt;br /&gt;&lt;br /&gt;Since the code has no line breaks or anything else useful, I fed it into &lt;a href="http://www.eclipse.org/downloads/"&gt;Eclipse&lt;/a&gt; to clean it up and grab the javascript.&lt;br /&gt;&lt;br /&gt;Cleaning it up in Eclipse makes the initial part of the script make a lot more sense. Take a look (click to enlarge):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-8cSbCDRvC-s/TZzNM5ERlkI/AAAAAAAAAKg/LaANQniBdLg/s1600/js_step1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://3.bp.blogspot.com/-8cSbCDRvC-s/TZzNM5ERlkI/AAAAAAAAAKg/LaANQniBdLg/s320/js_step1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you know a little Javascript, you can already get an idea of what's going on. We've got a hidden textarea with some text in it. Right now it's meaningless, but this is going to be modified by the Javascript to pull the script together. The applet section makes a reference to a Java applet that would've been housed on the same webserver as this malicious webpage. Since I found this file in my cache, the applet isn't available for me to examine.&lt;br /&gt;&lt;br /&gt;Right now it's the content in the script tags that we're going to look at. This is the part of the script that pulls together all the obfuscated components of the script and tells the browser how to execute them to infect itself with whatever piece of badness the author wants to hit me with.&lt;br /&gt;&lt;br /&gt;Let's work through this step by step.&lt;br /&gt;&lt;pre&gt;var date = new Date();&lt;br /&gt;var f = date.getFullYear()-2009;&lt;br /&gt;&lt;/pre&gt;First, the script gets the date, pulls the year out, subtracts 2009, and saves it to the variable &lt;b&gt;f&lt;/b&gt;. This limits the script to only this year, but the lifetime of an attack like this measures in days at the most so that's not a significant limitation. All this is a complicated way of defining &lt;b&gt;f=2&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Next, we have:&lt;br /&gt;&lt;pre&gt;zni = '2011val'.replace(date.getFullYear(),'');&lt;br /&gt;var e = new Function('axlzg','return e'+zni)();&lt;br /&gt;&lt;/pre&gt;zni is another variable. Here, we take the string '2011val' and then delete the current year, so &lt;b&gt;zni = val&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Then, we define a function, e. e produces a string 'axlzg' and also takes the string 'return e' and appends the value of &lt;b&gt;zni&lt;/b&gt;. This computes to &lt;b&gt;return eval&lt;/b&gt;, which is a Javascript command to evaluate a string as if it was code.&lt;br /&gt;&lt;br /&gt;Moving on:&lt;br /&gt;&lt;pre&gt;xzjc=document.getElementById('textarea').value;&lt;br /&gt;var content = '';&lt;br /&gt;&lt;/pre&gt;There's another uninformatively-named variable here, but it's pretty obvious what it does. xzjc grabs the content of the text area, so &lt;b&gt;xzjc = 'tring.from2011har2011ode'&lt;/b&gt; The script also defines a variable 'content', which is a blank string. We're getting somewhere now!&lt;br /&gt;&lt;pre&gt;var fnxes=e('S'+xzjc.split(date.getFullYear()).join('C'));&lt;br /&gt;&lt;/pre&gt;This one's a little more complicated. This one's another text-manipulation exercise that will further translate things. Like math, we need to start from inside the parentheses and work outwards.&lt;br /&gt;&lt;br /&gt;First, we're taking &lt;b&gt;xzjc&lt;/b&gt; from the last line. We put 'S' in front and then split it into separate strings using the current year as the split point, yielding 'String.from' 'har' 'ode'. Then we re-join the fragments using a "separator" of 'C'. Now we have 'String.fromCharCode', which is a Javascript function that takes encoded characters and decodes them to a string. This result is run through the function "e", which takes the string and converts it back to code, so it can execute.&lt;br /&gt;&lt;br /&gt;The reason the author is bothering with all this is because String.fromCharCode() is a common function that takes a set of character codes (in this case numbers) and converts them back to letters. For example, "51*f" is 51*2 = 102, which is the Unicode character code for &lt;b&gt;f&lt;/b&gt;.  Malware authors often use to obfuscate their code (as we'll soon see) so, it's a indicator that antivirus companies will trigger on. In this script, the malware author has to obfuscate their obfuscation method in order to try and evade the antivirus signature. I found this script because it triggered my antivirus, so even all this obfuscation failed.&lt;br /&gt;&lt;br /&gt;Let's look at the last couple lines of this script.&lt;br /&gt;&lt;pre&gt;content = fnxes(51*f,58.5*f,55*f,49.5*f,58*f,52.5*f,55.5*f,&lt;br /&gt;        55*f,16*f,50.5*f,55*f,50*f,47.5*f,57*f,50.5*f,50*f,52.5*f,&lt;br /&gt;        57*f,50.5*f,49.5*f,58*f,20*f,20.5*f,61.5*f,62.5*f,29.5*f,&lt;br /&gt;        50*f,........ );&lt;br /&gt;     e(content);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;There's actually a lot more numbers in there than I'm showing, I'm just cropping it out for simplicity's sake. The script is taking the variable "content" and actually defining it. It's taking each of these numbers and multiplying it by &lt;b&gt;f&lt;/b&gt;, which we already learned was 2. Then, it's running &lt;b&gt;fnxes&lt;/b&gt; (which is really String.fromCharCode) against it. Now I'm going to turn to Spidermonkey to translate all this crap into real code, it would just be too annoying to do by hand.&lt;br /&gt;&lt;br /&gt;So, after we multiply the numbers by 2 and then turn them back into a string, we get the payload. Unfortunately the payload itself is pretty long and complicated, so that'll have to wait for&lt;a href="http://renaissancesecurity.blogspot.com/2011/04/reversing-malicious-javascript-part-2.html"&gt; part 2 &lt;/a&gt;so I can have time to figure out what's going on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-4729537083993604768?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/4729537083993604768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/04/reverse-engineering-malicious.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/4729537083993604768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/4729537083993604768'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/04/reverse-engineering-malicious.html' title='Reverse engineering a malicious javascript part 1'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-rYAI-Q28tSY/TZzDPdgTzaI/AAAAAAAAAKQ/-irH1ahWDks/s72-c/raw_js.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-6094692701599807065</id><published>2011-03-24T11:54:00.000-07:00</published><updated>2011-03-24T11:54:24.146-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='legal issues'/><category scheme='http://www.blogger.com/atom/ns#' term='forensics'/><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='law enforcement'/><category scheme='http://www.blogger.com/atom/ns#' term='cybercrime'/><category scheme='http://www.blogger.com/atom/ns#' term='government'/><title type='text'>Digital forensics and search warrants</title><content type='html'>Laws always lag far behind the pace of technology, and the laws surrounding computer security issues are no exceptions. It took several major data breaches before we began getting breach notification laws. Now, courts are trying to figure out how search warrants should work in computer crime cases. &lt;a href="http://arstechnica.com/tech-policy/news/2011/03/hard-drive-search-warrants-should-there-be-any-limits.ars"&gt;Ars Technica &lt;/a&gt;has a good overview of the current state of things.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;NOTE: I am not a lawyer. This is not legal advice or recommendations. If you want legal advice, ask your lawyer.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;It's a sticky issue because on one hand modern computers can have vast amounts of highly personal information on them: thousands of emails, journals, legal pornography, address books, etc. It can feel like an unreasonable invasion of privacy for law enforcement officers to go pawing through all of that to look for evidence of a crime, particularly if it's the victim's computer being investigated. Search warrants are supposed to specify what exactly is being looked for (stolen intellectual property, for example), and law enforcement officers are only supposed to look in places where the object of the warrant could reasonably be ... so no searching an office desk if the warrant is for a stolen car.&lt;br /&gt;&lt;br /&gt;On the other hand, search warrants allow officers to search anything that could be hiding the object being searched for. There are plenty of videos of drug searches that show how ingeniously things can be hidden and how thorough searches can get in the physical world. The same principles apply in the digital world as well. Just as a packet of drugs can be hidden in a jar of flour, a &lt;a href="http://lifehacker.com/#%215771142/embed-a-truecrypt-volume-in-a-playable-video-file"&gt;contraband file can be hidden inside another file&lt;/a&gt; without too much difficulty or technical skills.&lt;br /&gt;&lt;br /&gt;Furthermore, if evidence of illegal activity is seen on a computer, sometimes the accused will claim that either a &lt;a href="http://windowsir.blogspot.com/2009/12/trojan-defense.html"&gt;hacker or malware is responsible&lt;/a&gt;, not the accused. It's perfectly possible for malware or hackers to &lt;a href="http://en.wikipedia.org/wiki/Backdoor_%28computing%29"&gt;take control of a computer&lt;/a&gt; and use it for illegal activity. That sort of activity can be detected, but digital evidence can be lost if not seized in time. This means that if we restrict our search to only looking for the illegal file mentioned in the search warrant, we could lose the opportunity to determine if someone other than the owner of the computer could be responsible for the illegal activity. A computer search that's too narrow in scope could result in the loss of evidence that could show the suspect's innocence.&lt;br /&gt;&lt;br /&gt;Like many legal issues, this is a complex one with multiple legitimate concerns acting at cross purposes. Hopefully, the legislature and courts will come up with a solution that provides reasonable privacy protection, is practical, and does not place too heavy burdens on law enforcement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-6094692701599807065?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/6094692701599807065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/03/digital-forensics-and-search-warrants.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/6094692701599807065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/6094692701599807065'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/03/digital-forensics-and-search-warrants.html' title='Digital forensics and search warrants'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-3927511962430063742</id><published>2011-03-22T12:04:00.000-07:00</published><updated>2011-03-22T13:10:42.142-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cyberwar'/><category scheme='http://www.blogger.com/atom/ns#' term='military'/><category scheme='http://www.blogger.com/atom/ns#' term='government'/><category scheme='http://www.blogger.com/atom/ns#' term='the future is now'/><title type='text'>Future trends in computer security</title><content type='html'>These are exciting and fascinating times we live in, particularly for computer security. There's so much change going on that frequently it can be difficult to keep track of what's going on and what's coming before it hits you in the face. I rely on a wide selection of blogs (see the sidebar) to keep me informed of current trends.&lt;br /&gt;&lt;br /&gt;Frequently I find the same "hot topic" being discussed simultaneously by a wide range of sources, rehashing the same limited information (e.g., &lt;a href="http://www.google.com/search?q=stuxnet"&gt;Stuxnet&lt;/a&gt; or &lt;a href="http://www.google.com/search?q=hbgary&amp;amp;hl=en&amp;amp;tbm=nws"&gt;HBGary&lt;/a&gt;). Once in a while, though, I find a little nugget of information that startles me and really makes me wonder why no one else has noticed it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.au.af.mil/au/ssq/spring11.asp"&gt;Strategic Studies Quarterly&lt;/a&gt; is not normally in my reading list, but the spring issue is devoted in large part to &lt;a href="http://en.wikipedia.org/wiki/Cyberwarfare"&gt;cyberwar&lt;/a&gt;. As you know from my blog, normally I'm skeptical about claims of &lt;a href="http://renaissancesecurity.blogspot.com/2010/07/on-cyberwar-part-1-war-and-espionage.html"&gt;cyberwar&lt;/a&gt;, but this is the military's view of cyberwar instead of reporters or politicians, so I think it's worth reading. Some of the articles are more interesting than others, of course. For example, I think the article &lt;i&gt;Rise of a Cybered&lt;/i&gt;[sic] &lt;i&gt;Westphalian Age&lt;/i&gt; is fundamentally impractical due to the rapidly changing nature of malicious code. On the other hand, the feature article&lt;a href="http://www.au.af.mil/au/ssq/2011/spring/shaud-lowther.pdf"&gt; &lt;i&gt;An Air Force Strategic Vision for 2020-2030&lt;/i&gt;&lt;/a&gt; has some very interesting revelations for the computer security field.&lt;br /&gt;&lt;br /&gt;In particular, they are very interested in integrating "cyber operations" (hacking) into their battle plans as a component of warfare. For example, &lt;a href="http://www.au.af.mil/au/ssq/2011/spring/shaud-lowther.pdf#page=12"&gt;this quote from page 12&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;Fourth, offensive and defensive cyber capabilities must be fused into air and space platforms. By 2030 cyber capabilities may become the greatest power-projection tools in the Air Force arsenal, serving as both force multipliers and an Achilles’ heel.&lt;/blockquote&gt;Later in the article, the authors address some specific challenges for the US military in computer security, including a lack of trained personnel. However, I think the really interesting bit is &lt;a href="http://www.au.af.mil/au/ssq/2011/spring/shaud-lowther.pdf#page=17"&gt;here&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;In the future, cyber will evolve into a weapon of preference, replacing many of the kinetic choices in today’s arsenal. The reduction in aircraft numbers and the ranges required for power projection, particularly in the Pacific, will drive cyberspace to the forefront of Air Force operations. Suppression of enemy air defenses and the ability to corrupt the software of an adversary’s aircraft will become a reality, not just science fiction.&lt;/blockquote&gt;At first glance, the idea of an Air Force aircraft that can hack targets seems like a futuristic daydream, but in actuality it's not as bizarre as one might think. Take a look at the &lt;a href="http://blogs.computerworld.com/16767/war_flying_with_a_wi_fi_sniffing_drone"&gt;WiFi Arial Surveillance Platform (WASP)&lt;/a&gt;, a WiFi-hacking UAV that was built by a couple of enthusiasts in their garage. Take a look at it's capabilities:&lt;br /&gt;&lt;blockquote&gt;the operator can "control the payload from anywhere in the world --  including mobile devices. It also allows for processor-intensive  applications, such as WPA attacks and password cracking, to be offloaded  securely in real-time to a remote computing powerhouse utilizing CUDA  technology, for mind-blowing performance."&lt;/blockquote&gt;This is just a WiFi penetrator, but the possibilities of what Boeing or Lockheed could do with their gigantic budgets is mind-boggling. Fortunately, we don't have to imagine what it might look like. &lt;a href="http://www.aviationweek.com/aw/generic/story_channel.jsp?channel=defense&amp;amp;id=news/asd/2011/01/07/09.xml&amp;amp;headline=U.S.%20Navy%20Identifies%20Network%20Invasion%20Tool"&gt;It's already here&lt;/a&gt; in the Next Generation Jammer (found via &lt;a href="http://www.wired.com/dangerroom/2011/03/in-combat-debut-navy-jammer-targets-libyan-tanks/"&gt;Wired.com&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;For military targets, the hacker of tomorrow could be an F/A-18 Growler. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-VM4WwJMZ8s8/TYjwmjvvYWI/AAAAAAAAAJw/dIpdO8YIC7c/s1600/EA-18G_VX-31_over_Ridgecrest_CA_2009.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="https://lh6.googleusercontent.com/-VM4WwJMZ8s8/TYjwmjvvYWI/AAAAAAAAAJw/dIpdO8YIC7c/s320/EA-18G_VX-31_over_Ridgecrest_CA_2009.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;(Public domain Growler image &lt;a href="http://en.wikipedia.org/wiki/File:EA-18G_VX-31_over_Ridgecrest_CA_2009.jpg"&gt;obtained from Wikipedia&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Aviation Week article is obviously short on details, but if air defense systems use wireless connections to launch their missiles then they would obviously be vulnerable to disruption. There's some evidence that this has actually &lt;a href="http://www.aviationweek.com/aw/blogs/defense/index.jsp?plckController=Blog&amp;amp;plckScript=blogScript&amp;amp;plckElementId=blogDest&amp;amp;plckBlogPage=BlogViewPost&amp;amp;plckPostId=Blog%3a27ec4a53-dcc8-42d0-bd3a-01329aef79a7Post%3a2710d024-5eda-416c-b117-ae6d649146cd"&gt;been done in combat by Israel as early as 2007&lt;/a&gt;. More details on &lt;a href="http://www.aviationweek.com/aw/generic/story_channel.jsp?channel=defense&amp;amp;id=news/aw112607p2.xml"&gt;Israel's airstrike on Syria can be found here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This doesn't mean much for civilian computer security folks yet (except for defense contractors), but military technology has a way of working its way down to other uses, such as law enforcement, corporate or criminal. We'll have to wait and see what the future brings, and in the meantime it's simply amazing to know it's possible and actually being done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-3927511962430063742?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/3927511962430063742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/03/future-trends-in-computer-security.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/3927511962430063742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/3927511962430063742'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/03/future-trends-in-computer-security.html' title='Future trends in computer security'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-VM4WwJMZ8s8/TYjwmjvvYWI/AAAAAAAAAJw/dIpdO8YIC7c/s72-c/EA-18G_VX-31_over_Ridgecrest_CA_2009.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-8842121203690636067</id><published>2011-03-04T10:00:00.000-08:00</published><updated>2011-03-04T10:00:57.795-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vulnerabilities'/><category scheme='http://www.blogger.com/atom/ns#' term='law enforcement'/><category scheme='http://www.blogger.com/atom/ns#' term='attribution'/><category scheme='http://www.blogger.com/atom/ns#' term='cybercrime'/><category scheme='http://www.blogger.com/atom/ns#' term='intellectual property'/><category scheme='http://www.blogger.com/atom/ns#' term='government'/><title type='text'>On the Internet, you're not as anonymous as you think you are</title><content type='html'>One of the big issues with computer crime is the belief that because the internet is anonymous, the criminals will never be identified.&amp;nbsp;&lt;a href="http://arstechnica.com/tech-policy/news/2011/03/illegal-tv-streamers-heres-how-the-feds-will-hunt-you-down.ars"&gt;A recent intellectual property case &lt;/a&gt;shows that's not always the case.&amp;nbsp; Despite the user creating the site with a pseudonym and PO box, the government was able to track it back to the real person involved.&lt;br /&gt;&lt;br /&gt;It's unusual for us to get this clear of a view about how a person can be tracked across the internet.&amp;nbsp;The exact methods used here by the government require the cooperation of the ISPs involved, but it would theoretically be possible to accomplish the same thing by hacking or using &lt;a href="http://arstechnica.com/tech-policy/news/2011/02/how-one-security-firm-tracked-anonymousand-paid-a-heavy-price.ars"&gt;social networking&lt;/a&gt; connections.&lt;br /&gt;&lt;br /&gt;Because internet anonymity is only skin-deep I try to act as if everything I post online is under my real name.&amp;nbsp;I suggest everyone do the same.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-8842121203690636067?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/8842121203690636067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/03/on-internet-youre-not-as-anonymous-as.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/8842121203690636067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/8842121203690636067'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/03/on-internet-youre-not-as-anonymous-as.html' title='On the Internet, you&apos;re not as anonymous as you think you are'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-6903111618357314860</id><published>2011-02-23T13:47:00.000-08:00</published><updated>2011-02-23T13:47:11.122-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RSA'/><category scheme='http://www.blogger.com/atom/ns#' term='antivirus'/><category scheme='http://www.blogger.com/atom/ns#' term='viruses'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='McAfee'/><title type='text'>McAfee on security</title><content type='html'>This past week was the RSA conference, and I was able to attend the keynotes on Thursday.&amp;nbsp;McAfee's&amp;nbsp;CTO, George Kurtz gave a keynote talk entitled "Driving Security Down the Stack" (&lt;a href="https://365.rsaconference.com/community/connect/blog/2011/02/04/podcast-driving-security-down-the-stack"&gt;preview here&lt;/a&gt;, full &lt;a href="http://www.rsaconference.com/2011/usa/recordings/keynotecatalog.htm"&gt;video of all keynotes here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;The "stack" that Mr. Kurtz' talk title refers to isn't one of the standard definitions of "stack" that I'm used to, his "stack" is this:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Applications&lt;/li&gt;&lt;li&gt;Operating system&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypervisor"&gt;Hypervisor&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Silicon (hardware)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;He was arguing that instead of running security applications on top of this stack, it should move downward.&amp;nbsp;This push is in no small part due to the fact that last August, Intel purchased McAfee to build security features deeper in computing systems. After all, hackers and malware authors are attempting to do the same thing, penetrate deeply into this computing stack to hide from security applications and to have more complete control over the system.&amp;nbsp;For example, rootkits install at the OS or hypervisor level.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Despite having such an ambitious talk title, Mr. Kurtz spent most of his time arguing that we should drive security deeper into the stack and very little time arguing how to accomplish it.&amp;nbsp;The closest he came to addressing it was something he called "roots of trust" that would establish "trusted columns" through the stack to have areas of computing that could be malware-free. Since Mr. Kurtz said nothing about how this would work, the audience simply has to imagine how this could work.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Quite frankly, I can't figure this one out.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Modern computer software is highly complex with many millions of lines of code and the bugs that go with them.&amp;nbsp;Modern malware is already highly adept at leveraging these bugs to move horizontally (from application to application or from one part of the OS to another) and vertically (from application to OS to hypervisor).&amp;nbsp; Mr. Kurtz and I agree that the traditional antivirus &lt;a href="http://en.wikipedia.org/wiki/Blacklist_(computing)"&gt;blacklisting&lt;/a&gt;&amp;nbsp;methods are ineffective, but without any kind of blacklist then how exactly does his "root of trust" determine that the parts of the operating system it relies on haven't been compromised?&amp;nbsp; Or the application?&amp;nbsp; Or the hypervisor?&amp;nbsp; The only part of the stack that approaches a "known good" is the hardware, and I can't think of any way to insert security rules into the silicon that would be comprehensive enough to be effective yet flexible enough to handle the wide range of possible software over the life of the chip.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Modern chips already have some security features installed. Back in 2004 (six years ago already?)&amp;nbsp;most hardware began shipping with the&amp;nbsp;Trusted Computing Group's "&lt;a href="http://en.wikipedia.org/wiki/Trusted_computing"&gt;Trusted Computing&lt;/a&gt;" technology, which uses hardware cryptography to allow the operating system to exert control over applications.&amp;nbsp; This technology has been present in Windows since Vista, but in addition to extensive &lt;a href="http://en.wikipedia.org/wiki/Trusted_Computing#Criticism"&gt;privacy and security&amp;nbsp;concerns&lt;/a&gt;, Trusted Computing hasn't even appreciably slowed the spread of malware.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Don't get me wrong, I'm not saying that Intel/McAfee's "hardware security" efforts are doomed, but they won't be the panacea that Mr. Kurtz's talk claimed they would be.&amp;nbsp; It's just another step in the computer security arms race.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-6903111618357314860?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/6903111618357314860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/02/mcafee-on-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/6903111618357314860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/6903111618357314860'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/02/mcafee-on-security.html' title='McAfee on security'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-7394728142686429940</id><published>2011-02-15T21:09:00.000-08:00</published><updated>2011-02-15T21:09:58.293-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RSA'/><category scheme='http://www.blogger.com/atom/ns#' term='B-sides'/><title type='text'>Security B-sides</title><content type='html'>This week is RSA, when thousands of computer security folks converge on San Francisco to talk shop. &amp;nbsp;RSA has changed a lot over it's 20 year history, from a small gathering of cryptographers in a motel chatting about the latest crypto algorithms to paying up to this year paying up to $2,195 to listen to high-level presenters talking about the issues of the day. &amp;nbsp;For those of us who aren't managerial types, there are "expo passes" available so we can get in the building and talk to the assorted sales reps.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Things have changed a lot from those early days, and to try and recapture some of that "small group of people chatting about their experience" feeling, groups of volunteers have started smaller "anti-cons" called &lt;a href="http://en.wikipedia.org/wiki/A-side_and_B-side"&gt;B-sides&lt;/a&gt;. &amp;nbsp;This year was my first year attending a Security B-Side conference, and I highly recommend it. &amp;nbsp;There were a variety of interesting and entertaining talks about everything from low-level techie stuff like reversing Android applications to building incident management policies and "Attacking Cyber Security Marketecture". &amp;nbsp;Everything was based on real personal experience at a variety of detail levels, which in my opinion was perfect. &amp;nbsp;Best of all, it was free, thanks to the generosity of &lt;a href="http://www.securitybsides.com/w/page/35868077/BSidesSanFrancisco"&gt;the sponsors&lt;/a&gt;. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For more opinions on B-sides, check out all the commentary &lt;a href="http://www.google.com/search?q=security+b-sides+san+francisco&amp;amp;hl=en&amp;amp;safe=off&amp;amp;sa=G&amp;amp;rlz=1G1GGLQ_ENUS285&amp;amp;prmd=ivnsu&amp;amp;source=univ&amp;amp;tbs=nws:1&amp;amp;tbo=u&amp;amp;ei=vVpbTZCGN4XAsAOA7c3LDQ&amp;amp;oi=news_group&amp;amp;ct=title&amp;amp;resnum=4&amp;amp;ved=0CD8QqAIwAw"&gt;on the internet&lt;/a&gt;&amp;nbsp;and &lt;a href="http://search.twitter.com/search?q=%23bsides"&gt;on twitter&lt;/a&gt;. &amp;nbsp;If you're in the area or have any excuse to be in the area, I highly recommend attending next year.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-7394728142686429940?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/7394728142686429940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/02/security-b-sides.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7394728142686429940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7394728142686429940'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/02/security-b-sides.html' title='Security B-sides'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-7070818414056187821</id><published>2011-02-07T13:44:00.000-08:00</published><updated>2011-02-07T13:44:12.739-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ddos'/><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='exploitation'/><category scheme='http://www.blogger.com/atom/ns#' term='viruses'/><category scheme='http://www.blogger.com/atom/ns#' term='spam'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='fraud'/><title type='text'>How hackers can use your computer to make money</title><content type='html'>When I'm talking to people outside of the computer security community, I usually find that people aren't aware of the reasons that modern hackers commit the crimes they do.&amp;nbsp; Today, I found a great post on &lt;a href="http://threatpost.com/"&gt;ThreatPost&lt;/a&gt;&amp;nbsp;(a blog by the antivirus company Kaspersky) called "&lt;a href="http://threatpost.com/en_us/blogs/inside-business-malware-020711"&gt;Inside the Business of Malware&lt;/a&gt;"&amp;nbsp;that gives a infographic&amp;nbsp;that&amp;nbsp;summarizes of some of the ways that malware authors can abuse your computer for their profit (image created by graphic designer &lt;a href="http://byjess.net/"&gt;Jess Bachman&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-7070818414056187821?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/7070818414056187821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/02/how-hackers-can-use-your-computer-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7070818414056187821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7070818414056187821'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/02/how-hackers-can-use-your-computer-to.html' title='How hackers can use your computer to make money'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-7609765248296568893</id><published>2011-01-26T13:14:00.000-08:00</published><updated>2011-01-26T13:14:40.371-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='warez'/><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='cybercrime'/><category scheme='http://www.blogger.com/atom/ns#' term='viruses'/><category scheme='http://www.blogger.com/atom/ns#' term='software piracy'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='intellectual property'/><title type='text'>On Piracy</title><content type='html'>The government, entertainment and&amp;nbsp;software&amp;nbsp;industries have each put a lot of time and effort into combatting copyright infringement, including &lt;a href="http://en.wikipedia.org/wiki/Copyright_infringement_of_software"&gt;software piracy&lt;/a&gt;.&amp;nbsp; So far, most of the public relations effort I've seen has been focused around either trying to &lt;a href="http://en.wikipedia.org/wiki/Don%27t_Copy_That_Floppy"&gt;shame people&lt;/a&gt; into not pirating software, or trying to scare people with the legal consequences of piracy.&lt;br /&gt;&lt;br /&gt;So far, neither method has been effective.&amp;nbsp; Shame is not effective because public opinion is that despite piracy, the victim corporations are still making tons of money.&amp;nbsp; A combination of high prices, high corporate profits and the fact that corporations are faceless entities&amp;nbsp;prevents people from empathising with their position.&amp;nbsp; To date, fear has not been effective because the number of people sued or prosecuted for software piracy is incredibly low.&amp;nbsp; People (correctly) see that they can get away with it as long as they're not major distributors.&amp;nbsp; However, this viewpoint may change if law enforcement is able to exert more resources against software piracy.&lt;br /&gt;&lt;br /&gt;Personally, I think a better approach would be to show people how they can be harmed by software piracy.&amp;nbsp; Any time you place a program on your computer, you are entrusting your hardware and your data to not be abused by the program you're downloading.&amp;nbsp; That's fine when it's a corporation providing you with the data because there are consequences (lawsuits, bad PR) if they provide malware in their software.&amp;nbsp; However, you have no such guarantee when &lt;a href="http://www.symantec.com/security_response/writeup.jsp?docid=2007-101013-3606-99"&gt;downloading software &lt;/a&gt;from warez websites or peer-to-peer applications like BitTorrent.&amp;nbsp;&amp;nbsp;&lt;a href="http://nakedsecurity.sophos.com/2009/01/26/reports-mac-trojan-pirated-adobe-photoshop-cs4/"&gt;Macs&lt;/a&gt; and even&amp;nbsp;&lt;a href="http://nakedsecurity.sophos.com/2011/01/07/app-store-developers-leave-purchased-apps-vulnerable-to-piracy/"&gt;"jailbroken" iPhones&lt;/a&gt;&amp;nbsp;have been &lt;a href="http://nakedsecurity.sophos.com/2009/11/21/malicious-iphone-worm-loose/"&gt;virus infected&lt;/a&gt; by pirated software.&lt;br /&gt;&lt;br /&gt;Pirating an OS is even worse, as a pirated OS is generally not eligable for security updates, leaving it vulnerable to hacking or virus infection.&amp;nbsp; That is one likely reason that China has such a &lt;a href="http://www.zdnet.com/blog/security/china-hardest-hit-by-latest-ie-zero-day-attacks/5966"&gt;high proportion of hacked computers&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Although it's currently very unlikely that any given software pirate will be arrested, it's far more likely that their computer will be taken over and used for malicious purposes.&amp;nbsp; I think if people were more aware of that fact, it might actually make a difference in the amount of software piracy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-7609765248296568893?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/7609765248296568893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/01/on-piracy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7609765248296568893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7609765248296568893'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/01/on-piracy.html' title='On Piracy'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-1869290445924411278</id><published>2011-01-19T10:16:00.000-08:00</published><updated>2011-01-19T10:16:07.947-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vulnerabilities'/><category scheme='http://www.blogger.com/atom/ns#' term='information policy'/><category scheme='http://www.blogger.com/atom/ns#' term='risk'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='definitions'/><title type='text'>What is computer security</title><content type='html'>This morning a friend of mine tweeted about &lt;a href="http://danielmiessler.com/blog/my-preferred-definition-of-security"&gt;a good definition of security&lt;/a&gt;&amp;nbsp;that he ran across.&amp;nbsp;&amp;nbsp;Read the article for more explanation and details, but the essential definition is that security&amp;nbsp;is:&lt;br /&gt;&lt;blockquote&gt;Security is the process of maintaining an acceptable level of perceived risk.&lt;/blockquote&gt;I really like&amp;nbsp;this definition because it's simple and easy to comprehend, but it also accurately portrays several nuances that are frequently missed in discussions about security by both security people and non-security people.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Security is a process&lt;/strong&gt;.&amp;nbsp; Security isn't something that you set up and you're done, it's an ongoing process.&amp;nbsp; You have to keep aware of current and upcoming&amp;nbsp;threats, new vulnerabilities and new mitigation techniques.&amp;nbsp; As bugs are found in software, you have to patch them.&amp;nbsp; As employees come and go, you need to grant and remove their access diligently.&amp;nbsp; These are just some examples of the process of security.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Acceptable level of risk.&lt;/strong&gt;&amp;nbsp; Security (computer or physical) isn't about eliminating risk.&amp;nbsp; That's impossible.&amp;nbsp; It's about managing risks to an acceptable level.&amp;nbsp; Things that need to be considered are how expensive is the security device/policy?&amp;nbsp; What barriers does it add to normal operations?&amp;nbsp; How likely is the threat, and what amount of damage can be expected from it?&amp;nbsp; How much security is worth it?&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Percieved risk.&lt;/strong&gt;&amp;nbsp; We're not omnicient.&amp;nbsp; Security people, managers, employees and customers have to make our best judgements about what the risks are, how dangerous they are and how likely they are.&amp;nbsp; The fact that humans in general are rather poor at estimating risks is why we spend billions on airport security and very little on preventing traffic collisions.&amp;nbsp; &lt;a href="http://www.amazon.com/How-Risky-Really-Fears-Always/dp/0071629696"&gt;Several books&lt;/a&gt; have been &lt;a href="http://www.amazon.com/Worst-Case-Scenarios-Cass-R-Sunstein/dp/0674032519/"&gt;written about this issue&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;I think a better understanding of what security means would do much to improve security decision-making in general.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-1869290445924411278?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/1869290445924411278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/01/what-is-computer-security.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/1869290445924411278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/1869290445924411278'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/01/what-is-computer-security.html' title='What is computer security'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-3512451237890885239</id><published>2011-01-17T10:48:00.000-08:00</published><updated>2011-01-17T10:48:58.860-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='passwords'/><category scheme='http://www.blogger.com/atom/ns#' term='identity theft'/><category scheme='http://www.blogger.com/atom/ns#' term='cybercrime'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='fraud'/><category scheme='http://www.blogger.com/atom/ns#' term='extortion'/><title type='text'>Forgot your password?</title><content type='html'>It seems like more and more frequently, articles about email and Facebook hijackings appear in the news.&amp;nbsp; Although the news frequently calls them "hacking", the actual method tends to be either guessing the password or abusing the "security questions" in the password reset feature.&amp;nbsp; If you're not concerned about this, you don't &lt;a href="http://www.msnbc.msn.com/id/41082627/ns/technology_and_science-security/"&gt;understand the potential consequences&lt;/a&gt; of losing access to your email.&amp;nbsp; George Bronk, the extortionist in this case,&amp;nbsp;searched his victim's email accounts for nude pictures and videos.&amp;nbsp; He sent what he found to the victim's friends and frequently attempted to extort the victim further.&amp;nbsp; He also utilized his control over the victim's email accounts to gain control over their Facebook.&amp;nbsp; Had he been more interested in monetary gain, he could have just as easily used the password reset feature for the victim's bank accounts to clean them out financially too.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Incidentally, this was the same method used by David Kernell to &lt;a href="http://en.wikipedia.org/wiki/Sarah_Palin_email_hack"&gt;gain access to Sarah Palin's email account&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So, what can you do to prevent something like this?&amp;nbsp; The article above provides some suggestions about false password reset answers ... but that poses problems of their own.&amp;nbsp; If you provide false information for your password reset questions, you need to make certain you can remember the answers when you actually need to use them.&amp;nbsp; If the account allows you to create your own password reset questions, that might help you make answers that are memorable to you and difficult to discover.&lt;br /&gt;&lt;br /&gt;Another suggestion is to keep your social networking (Facebook, MySpace)&amp;nbsp;privacy settings under tight control, and be careful what you share on them and who you "friend".&amp;nbsp; Remember, friends can usually see more of your profile than people who aren't friends.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;A fun exercise is to try thinking like a hacker ... logout of your Facebook (so you can only see the public profile)&amp;nbsp;and then see if you can find out enough information on yourself to answer your own password reset questions.&amp;nbsp; Pretend you don't know anything about yourself, can you break into your Facebook?&amp;nbsp; Your email?&amp;nbsp; Can you find out what bank you use and get into that?&lt;br /&gt;&lt;br /&gt;Do you have any additional suggestions?&amp;nbsp; If so, please comment.&amp;nbsp; I'd love to hear them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-3512451237890885239?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/3512451237890885239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/01/forgot-your-password.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/3512451237890885239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/3512451237890885239'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/01/forgot-your-password.html' title='Forgot your password?'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-7506177442544974973</id><published>2011-01-04T16:42:00.000-08:00</published><updated>2011-01-04T16:42:04.749-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trust'/><category scheme='http://www.blogger.com/atom/ns#' term='vulnerabilities'/><category scheme='http://www.blogger.com/atom/ns#' term='risk'/><category scheme='http://www.blogger.com/atom/ns#' term='cybercrime'/><category scheme='http://www.blogger.com/atom/ns#' term='cablegate'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='government'/><category scheme='http://www.blogger.com/atom/ns#' term='9/11'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='espionage'/><category scheme='http://www.blogger.com/atom/ns#' term='wikileaks'/><title type='text'>Quick update to "Cablegate"</title><content type='html'>In &lt;a href="http://renaissancesecurity.blogspot.com/2010/12/how-cablegate-happened-and-what-it-can.html"&gt;my last post&lt;/a&gt; on "Cablegate", I suggested that the reason so many cables were able to be accessed by Bradley Manning was because of the desire to improve information-sharing after the attacks of September 2001. &amp;nbsp;At the time that was speculation on my part, but a new &lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2010/12/30/AR2010123004962_pf.html"&gt;article in the Washington Post shows&lt;/a&gt; that this is correct.&lt;br /&gt;&lt;br /&gt;From the article:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Investigations into the attacks concluded that government agencies had failed to share critical information that could have helped uncover the Sept. 11 plot. Because of that lapse, Congress tasked the Office of the Director of National Intelligence with pressuring key government agencies - including the Pentagon, the Homeland Security Department and the State Department - to find ways to rapidly share information that could be relevant to possible terrorist plots and other threats.&lt;/blockquote&gt;&lt;blockquote&gt;The State Department, with its hundreds of diplomatic posts worldwide, was already making tens of thousands of classified cables available to intelligence and military officials with secret security clearances. But in 2005, the DNI and the Defense Department agreed to pay for a new State Department computer database that could allow the agency's cables to flow more easily to other users throughout the federal government.&lt;/blockquote&gt;&lt;blockquote&gt;"It was consistent with the concept of needing to share information after September 11th," said State Department spokesman P.J. Crowley. "We were asked to do it, and the Pentagon paid for it."&lt;/blockquote&gt;The article also describes the limited safeguards present on this system that directly allowed Manning to steal the documents.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;A few State Department officials expressed early concerns about unauthorized access to the database, but these worries mostly involved threats to individual privacy, department officials said. In practice, agency officials relied on the end-users of the data - mostly military and intelligence personnel - to guard against abuse.&lt;/blockquote&gt;&lt;blockquote&gt;The department was not equipped to assign individual passwords or perform independent scrutiny over the hundreds of thousands of users authorized by the Pentagon to use the database, said Kennedy, the undersecretary of state.&lt;/blockquote&gt;&lt;blockquote&gt;"It is the responsibility of the receiving agency to ensure that the information is handled, stored and processed in accordance with U.S. government procedures," he said.&lt;/blockquote&gt;&lt;blockquote&gt;To prevent illegal intrusion, the State Department has long maintained safeguards that make it difficult for an individual to download sensitive information onto a portable device such as a flash drive or compact disc. But Kennedy acknowledged that the department had no means of overseeing practices by other agencies using its data.&lt;/blockquote&gt;&lt;blockquote&gt;U.S. investigators suspect that Bradley Manning, an Army private stationed in the Persian Gulf, downloaded the 250,000 State Department cables to compact discs from a computer terminal in Kuwait. He then allegedly provided the files to WikiLeaks, which shared them with newspapers and posted hundreds of them online.&lt;/blockquote&gt;There you have it. &amp;nbsp;The rush to share information after September 2001 lead to poor logging and auditing of access to data and placed great trust in the users to not betray the government. &amp;nbsp;Mr. Manning betrayed that trust.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-7506177442544974973?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/7506177442544974973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/01/quick-update-to-cablegate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7506177442544974973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/7506177442544974973'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2011/01/quick-update-to-cablegate.html' title='Quick update to &quot;Cablegate&quot;'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-1994218591209622453</id><published>2010-12-21T15:10:00.000-08:00</published><updated>2010-12-21T15:10:51.153-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='identity theft'/><category scheme='http://www.blogger.com/atom/ns#' term='cybercrime'/><category scheme='http://www.blogger.com/atom/ns#' term='viruses'/><category scheme='http://www.blogger.com/atom/ns#' term='drive-by downloads'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>I'll Be Pwned For Christmas</title><content type='html'>&lt;em&gt;I'll be &lt;a href="http://en.wikipedia.org/wiki/Pwn"&gt;pwned&lt;/a&gt; for Christmas&lt;/em&gt;&lt;br /&gt;&lt;em&gt;You can count on me&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Please have bots and viruses&lt;/em&gt;&lt;br /&gt;&lt;em&gt;And exploits for me&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;When talking to people about viruses and infections, I've found that many people are confused about how virus infections happen.&amp;nbsp; By now most people realize that files you download can be viruses, but hackers have found ways to circumvent people's caution.&amp;nbsp; First, the virus can be disguised as something else -&amp;nbsp;such as&amp;nbsp;an &lt;a href="http://nakedsecurity.sophos.com/2009/09/04/fake-flash-firefox/"&gt;update to Flash Player&lt;/a&gt;&amp;nbsp;- to trick people into trusting it.&amp;nbsp; Second, a malicious website can utilize a vulnerability in your browser to secretly download and execute the virus.&amp;nbsp; This is called a &lt;a href="http://googleonlinesecurity.blogspot.com/2008/02/all-your-iframe-are-point-to-us.html"&gt;drive-by download&lt;/a&gt;, and some believe &lt;a href="http://www.securelist.com/en/analysis/204792056/Drive_by_Downloads_The_Web_Under_Siege"&gt;these types of attacks are responsible for most virus infections&lt;/a&gt;.&amp;nbsp; This is one of several reasons why it's important to keep your computer up to date with the latest patches.&amp;nbsp; Your browser, operating system, PDF viewer (usually Acrobat), Flash player,&amp;nbsp;and Java (if you have it) all need to be kept up to date because each of them can contain vulnerabilities that can be exploited to gain control (pwn) your computer.&lt;br /&gt;&lt;br /&gt;There are several goals a hacker might have for infecting your computer, but fundamentally a computer is a resource to exploit.&amp;nbsp; Modern malware, particularly botnets, are becoming very sophisticated.&amp;nbsp; If &lt;a href="http://en.wikipedia.org/wiki/Zeus_(trojan_horse)"&gt;Zeus (Zbot)&lt;/a&gt; infects your system, it can modify webpages you visit to post it's own ads, intercept website credentials (including bank accounts) and send them to the hackers, steal documents, &lt;a href="http://nakedsecurity.sophos.com/2010/10/14/usa-your-poorly-protected-pcs-are-polluting-the-world-with-spam/"&gt;send spam email&lt;/a&gt;,&amp;nbsp;turn off your antivirus, install additional viruses,&amp;nbsp;track your keystrokes, and grant full control over your computer ... all from a file as small as 270 kb.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;With millions of dollars per year at stake, it's no wonder that virus authors will do whatever they can in order to infect you.&amp;nbsp; Among other techniques, one method is by referencing current events in their spam, or building sites which are specifically designed to appear at the top of search results for key topics of the moment.&amp;nbsp; This time of year, that includes &lt;a href="http://nakedsecurity.sophos.com/2010/01/04/flash-christmas-year/"&gt;using holiday greetings to infect you&lt;/a&gt;&amp;nbsp;and&amp;nbsp;using websites that appear at the top of&amp;nbsp;searches for holiday terms.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What can I do about it?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Get good antivirus protection.&amp;nbsp; Use an up-to-date browser.&amp;nbsp; Not only are modern browsers more secure, newer versions include protection against malicious links.&amp;nbsp; Use good spam protection.&amp;nbsp; Keep your OS updated, and if you're still running Windows XP it's time to move up.&amp;nbsp; Always, always think before you click.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-1994218591209622453?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/1994218591209622453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/12/ill-be-pwned-for-christmas.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/1994218591209622453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/1994218591209622453'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/12/ill-be-pwned-for-christmas.html' title='I&apos;ll Be Pwned For Christmas'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-5247487229273594263</id><published>2010-12-13T13:14:00.000-08:00</published><updated>2010-12-13T13:14:58.990-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ddos'/><category scheme='http://www.blogger.com/atom/ns#' term='attribution'/><category scheme='http://www.blogger.com/atom/ns#' term='cybercrime'/><category scheme='http://www.blogger.com/atom/ns#' term='wikileaks'/><title type='text'>Tracking cyber criminals</title><content type='html'>Whenever there's a cyber attack, one of the most natural questions is "who is behind it"?&amp;nbsp; That's a critical question to answer so that you can determine the reason for the attack and the damage that's done.&amp;nbsp; For example, if your intellectual property is stolen by a competitor, the risks are much greater than if they were stolen by an amateur hacker just poking around.&amp;nbsp; Both are dangerous, of course, but one is much more dangerous than the other.&lt;br /&gt;&lt;br /&gt;Not all cyber attacks are equal, some are relatively straightforward to attribute, some are far more difficult and may be impossible.&amp;nbsp; For example, take a standard Denial of Service (DoS) or Distributed Denial of Service (DDoS) attack, such as the &lt;a href="http://www.computerworld.com/s/article/9200983/WikiLeaks_supporters_conducting_attack_could_be_easily_traced_researchers_say"&gt;ongoing attack by Wikileaks supporters&lt;/a&gt; against organizations that they percieve as censoring Wikileaks.&amp;nbsp; They have been using a free utility called Low-Orbit Ion Cannon (LOIC), which is a tool designed for stress-testing websites (seeing how they perform under load).&amp;nbsp; Since LOIC is intended as a testing -&amp;nbsp;not criminal -&amp;nbsp;tool, it does not have anonymization features built in.&amp;nbsp; That means if the user does not take action to disguise themselves, it is trivial to track them down.&amp;nbsp; &lt;a href="http://nakedsecurity.sophos.com/2010/12/12/second-dutch-arrest-wikileaks-ddos-attacks/"&gt;A couple people associated&lt;/a&gt; with these attacks have already been arrested for this exact reason.&lt;br /&gt;&lt;br /&gt;To understand how this happens, let me explain a little about how the Internet works.&amp;nbsp; Over the years, there's been significant discussion about IP addresses.&amp;nbsp; IP addresses are part of the internet protocol and they function to direct traffic to and from their destination.&amp;nbsp; When you type a URL into your browser's address bar and hit enter, your computer contacts&amp;nbsp;a Domain Name Server (DNS) to&amp;nbsp;translate the human-friendly domain name into the server's IP address.&amp;nbsp; It contacts that server to &lt;a href="http://www.inetdaemon.com/tutorials/internet/tcp/3-way_handshake.shtml"&gt;initiate a TCP/IP connection&lt;/a&gt;, and if that's successful it sends the request for the webpage.&amp;nbsp; All communication from your computer to computers on local networks or the internet is sent as packets, which contain information such as the destination IP address, your IP address (so the computer knows who to send the replies to), the item (such as a webpage) requested, and other information not relevant to this discussion.&amp;nbsp; If you're using your home computer your IP address is provided by your ISP and if your IP address is implicated in a crime then law enforcement can contact your ISP to get your information.&lt;br /&gt;&lt;br /&gt;Now, for a DoS attack, there are several options that criminals can use to cover their tracks.&amp;nbsp; If they use a cybercafe or open wireless access point, they can launch their attacks from there.&amp;nbsp; Then, the return IP address will be the one belonging to the business they're using.&amp;nbsp; However, this isn't perfect.&amp;nbsp; If the &lt;a href="http://www.usatoday.com/tech/news/computersecurity/2005-12-08-cybercafe-law_x.htm"&gt;business records the names&lt;/a&gt; of their internet users, then it's no more anonymous than using your home computer.&amp;nbsp; Still, a wireless access point will record information about your computer (computer name and the &lt;a href="http://en.wikipedia.org/wiki/MAC_address"&gt;MAC address&lt;/a&gt; of your network card) in order to successfully route the webpages back to your computer.&amp;nbsp; That may allow tracking you back to your computer.&lt;br /&gt;&lt;br /&gt;However, that just catches the ignorant criminals.&amp;nbsp; Skilled criminals will &lt;a href="http://en.wikipedia.org/wiki/Denial-of-service_attack#Distributed_attack"&gt;build or rent a botnet&lt;/a&gt; to commit a DDoS attack.&amp;nbsp; These attacks utilize computers that the hackers take over with viruses that the victims unintentionally downloaded.&amp;nbsp; Skilled law enforcement officials can sometimes track down the hackers involved.&amp;nbsp; I don't know the methods involved, but since most successful investigations I've heard about were with hackers in Western nations, I expect it relies on cooperative ISPs.&amp;nbsp; Other criminals will utilize anonymization services to commit a DDoS attack, such as TOR.&amp;nbsp; One interesting DoS method I've heard of involves forging your IP address.&amp;nbsp; Since an attacker in a DoS attack doesn't actually need the webpage directed back to him, he can change his IP address to someone else's.&amp;nbsp; For example, in a &lt;a href="http://en.wikipedia.org/wiki/Denial-of-service_attack#Reflected_attack"&gt;reflected DDoS attack&lt;/a&gt;, an attacker will send an "Echo" request to a network broadcast address.&amp;nbsp; Essentially, this is asking every computer on a network to reply with an "Echo" packet, used to test connectivity.&amp;nbsp; However, if you forge IP on the "Echo" request to your victim's IP address, the entire network will be sending their replies to your victim computer.&amp;nbsp; This particular attack has been around for a while, so most networks have changed their configuration to prevent it.&amp;nbsp; Still, it's an excellent example of how attackers will try and cover their tracks.&lt;br /&gt;&lt;br /&gt;Botnets pose significant issues for determining the origins of an attack, as the computers that are actively attacking are under the control of assorted "Command and Control" servers, which are likely not even directly owned by the hackers.&amp;nbsp;&amp;nbsp;&lt;a href="http://www.infowar-monitor.net/2010/10/command-and-control-in-the-cloud/"&gt;The control servers can&amp;nbsp;be&lt;/a&gt;&amp;nbsp;IRC bots, Twitter accounts, blogs,&amp;nbsp;webmail accounts&amp;nbsp;and/or Google groups.&amp;nbsp; It can even be a rented "virtual computer" on a system like &lt;a href="http://aws.amazon.com/ec2/"&gt;Amazon's EC2 cloud servers&lt;/a&gt;.&amp;nbsp; Modern botnets have multiple redundant control servers, so when the primary set are taken down, secondary servers pop up.&amp;nbsp; Many of these avenues can be set up anonymously, making it difficult or impossible to trace back to the original hackers.&amp;nbsp; &lt;a href="http://www.nartv.org/mirror/shadows-in-the-cloud.pdf"&gt;"Shadows in the Cloud"&lt;/a&gt;&amp;nbsp;is an excellent example of a detailed analysis of a botnet.&amp;nbsp; Even though the security researchers took the place of a command and control server and accessed the hacker's email addresses, they were only able to pin down the location of the servers to a particular location in China.&amp;nbsp; This only provides circumstantial evidence of who is responsible for the attack.&amp;nbsp; If the Chinese government and/or ISPs were to cooperate with Western law enforcement, it's possible that we might be able to prove who was responsible, but that cooperation seems exceedingly unlikely.&lt;br /&gt;&lt;br /&gt;Determining who is responsible for an attack is a complex and thorny issue, but I've tried to briefly outline some of the complexities.&amp;nbsp; If you'd like to know more about particular elements or take issue with some of my claims, post to the comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-5247487229273594263?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/5247487229273594263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/12/tracking-cyber-criminals.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/5247487229273594263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/5247487229273594263'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/12/tracking-cyber-criminals.html' title='Tracking cyber criminals'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-4189433755243904986</id><published>2010-12-07T16:35:00.000-08:00</published><updated>2011-01-04T16:43:57.178-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SIEM'/><category scheme='http://www.blogger.com/atom/ns#' term='log management'/><category scheme='http://www.blogger.com/atom/ns#' term='information policy'/><category scheme='http://www.blogger.com/atom/ns#' term='terrorism'/><category scheme='http://www.blogger.com/atom/ns#' term='cablegate'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='international politics'/><category scheme='http://www.blogger.com/atom/ns#' term='9/11'/><category scheme='http://www.blogger.com/atom/ns#' term='wikileaks'/><title type='text'>How "Cablegate" Happened and What It Can Teach Us About Information Security</title><content type='html'>A lot of digital ink has been spilled about &lt;a href="http://www.wired.com/threatlevel/2010/06/leak/"&gt;Bradley Manning's&lt;/a&gt; disclosure of Iraq War memos and now the &lt;a href="http://www.huffingtonpost.com/2010/12/05/wikileaks-in-review-cable_n_791880.html"&gt;classified diplomatic cables known as "Cablegate"&lt;/a&gt;.&amp;nbsp; Much of it has focused on Wikileaks - the site Manning chose to disclose the information to - or the content of the leaked information.&amp;nbsp; However, much more interesting in my opinion, is the unusual policies that allowed this to happen.&lt;br /&gt;&lt;br /&gt;Gary Warner, the author of the excellent blog "CyberCrime&amp;nbsp;&amp;amp; Doing Time" recently wrote &lt;a href="http://garwarner.blogspot.com/2010/12/wikileaks-lessons-learned.html"&gt;an excellent&amp;nbsp;article&lt;/a&gt;&amp;nbsp;about the&amp;nbsp;flaws inherent in allowing Manning&amp;nbsp;unfettered and unlogged access to virtually everything that&amp;nbsp;he was cleared for.&amp;nbsp;&amp;nbsp;Essentially,&amp;nbsp;this is one major reason that organizations should restrict&amp;nbsp;access&amp;nbsp;only to those who have a legitimate need for access.&amp;nbsp; Not only&amp;nbsp;does it limit the amount of damage that a disgruntled employee can do, but it also limits the amount of damage that can be done if an account is hijacked by a hacker or&amp;nbsp;malware.&lt;br /&gt;&lt;br /&gt;This is&amp;nbsp;an inherent difficulty in information security: how do you draw the line between&amp;nbsp;too restrictive and too generous permissions?&amp;nbsp; Manning was an intelligence analyst in Iraq, so he needed access to a wide range of information in order to do his job.&amp;nbsp; In addition to reports from Iraq itself, there might be Iraq-related discussion coming out of Afghanistan, or from diplomatic discussions between the US and Iraq, or from the US and other countries.&amp;nbsp; These are just a few examples of why Manning might have had a need for access to a wide variety of data.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Despite the possible justification for access, it makes me wonder why the US Government allowed Manning to access virtually everything.&amp;nbsp; I have no evidence (at the time of this writing), but I strongly suspect it's due to the events of September 11, 2001 and the recommendations of the National Commission on Terrorist Attacks Upon the United States (aka "the 9/11 Commision").&amp;nbsp; &lt;a href="http://news.bbc.co.uk/2/hi/americas/3917703.stm"&gt;Among other issues, the Commission criticized &lt;/a&gt;the lack of connection between individual intelligence agents and national priorities and the lack of communication between intelligence agencies, including the military intelligence agencies.&amp;nbsp; It's possible the government's response to the Commission's report included removing all significant "need to know" restrictions, while leaving in place the basic "classification" restrictions.&lt;br /&gt;&lt;br /&gt;(&lt;i&gt;UPDATE: This suspicion has now been &lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2010/12/30/AR2010123004962_pf.html"&gt;confirmed by the Washington Post&lt;/a&gt;)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;It's not my place to determine whether or not that&amp;nbsp;decision was&amp;nbsp;justified, but it's certain that allowing Manning access to everything drastically increased the damage caused by his breach.&amp;nbsp; Access policies are just one aspect of information security, the other aspect is auditing (logging).&amp;nbsp; &lt;a href="http://www.wired.com/threatlevel/2010/06/leak/"&gt;Wired.com quotes Manning as writing&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;“I would come in with music on a CD-RW labeled with something like ‘Lady Gaga,’ erase the music then write a compressed split file,” he wrote. “No one suspected a thing and, odds are, they never will.” &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;“[I] listened and lip-synced to Lady Gaga’s ‘Telephone’ while exfiltrating possibly the largest data spillage in American history,” he added later. ”Weak servers, weak logging, weak physical security, weak counter-intelligence, inattentive signal analysis … a perfect storm.”&lt;/blockquote&gt;Manning directly admits that weak (or absent) logging procedures directly contributed to his ability to remove information.&amp;nbsp; Logging could have generated a digital trail of his activities (both accessing data and burning it to disk).&amp;nbsp; A good &lt;a href="http://en.wikipedia.org/wiki/Security_event_manager"&gt;SIEM software &lt;/a&gt;could have managed the logs and automatically alerted the appropriate manager or authority that Manning was doing something he shouldn't have been.&lt;br /&gt;&lt;br /&gt;Just like I talked about in &lt;a href="http://renaissancesecurity.blogspot.com/2010/11/what-computer-security-and-airport.html"&gt;my blog about airport security&lt;/a&gt;, effective&amp;nbsp;prevention, tracking and mitigation efforts all need to be combined into a coherent policy to handle damaging&amp;nbsp;attacks&amp;nbsp;like the US Government has recently suffered at the hands of Bradley Manning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-4189433755243904986?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/4189433755243904986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/12/how-cablegate-happened-and-what-it-can.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/4189433755243904986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/4189433755243904986'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/12/how-cablegate-happened-and-what-it-can.html' title='How &quot;Cablegate&quot; Happened and What It Can Teach Us About Information Security'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-5743482699126512875</id><published>2010-11-29T14:55:00.000-08:00</published><updated>2010-12-03T09:25:54.954-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vulnerabilities'/><category scheme='http://www.blogger.com/atom/ns#' term='airport security'/><category scheme='http://www.blogger.com/atom/ns#' term='TSA'/><category scheme='http://www.blogger.com/atom/ns#' term='full-body scanners'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>What computer security and airport security have in common</title><content type='html'>Like many others out there, my wife and I took a plane to visit family for Thanksgiving.&amp;nbsp; In fact, due to a work travel obligation I had to take four flights in the past two weeks, which is about what I usually fly in a year.&amp;nbsp; That means four trips through airport security, although I managed to avoid the &lt;a href="http://www.schneier.com/blog/archives/2010/11/tsa_backscatter.html"&gt;x-ray naked body scanners&lt;/a&gt;&amp;nbsp;each time.&amp;nbsp; My wife had to opt-out on our return from Thanksgiving (luckily, the screeners we encountered were professional), although others &lt;a href="http://amarillo.com/news/local-news/2010-10-11/lawsuit-airport-search-indecent"&gt;have not been so fortunate&lt;/a&gt;.&amp;nbsp; You can request a private room to prevent that sort of abuse.&lt;br /&gt;&lt;br /&gt;There are&amp;nbsp;&lt;a href="http://www.cnn.com/2010/TRAVEL/11/12/body.scanning.radiation/index.html?hpt=Sbin"&gt;potential health risks&lt;/a&gt;.&amp;nbsp; In particular, I want to know what safeguards there are for misconfigured backscatter machines.&amp;nbsp; TSA claims that when the machines function normally there is minimal risk, but &lt;a href="http://findarticles.com/p/articles/mi_m1370/is_n10_v21/ai_6245245/"&gt;sometimes machines malfunction&lt;/a&gt;&amp;nbsp;or are &lt;a href="http://www.medpagetoday.com/Radiology/DiagnosticRadiology/16455"&gt;misconfigured due to poor training&lt;/a&gt;&amp;nbsp;and TSA is &lt;a href="http://www.wired.com/threatlevel/2010/11/tsa-training/"&gt;already known to have poor training standards&lt;/a&gt;.&amp;nbsp; There are the obvious privacy losses associated with naked pictures being taken of travellers.&amp;nbsp; TSA assures us that the images will never be saved or made public, but that promise &lt;a href="http://gizmodo.com/5690749/these-are-the-first-100-leaked-body-scans?skyline=true&amp;amp;s=i"&gt;has been broken once already&lt;/a&gt;&amp;nbsp;by the US Marshalls.&amp;nbsp; I for one don't&amp;nbsp;trust that it won't happen again.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;However, these issues are specific to airport security and the naked scanners in particular.&amp;nbsp; The bigger problem in my mind is that this continues to provide a static defense against a particular type of problem.&amp;nbsp; Like the French &lt;a href="http://en.wikipedia.org/wiki/Maginot_Line"&gt;Maginot line&lt;/a&gt;, TSA checkpoints have become an elaborate but static defense designed to prevent the types of invasions that have come in the recent past.&amp;nbsp; Like the Maginot line, the attackers&amp;nbsp;see that we're currently obsessed with one particular avenue of approach and &lt;a href="http://www.telegraph.co.uk/news/uknews/terrorism-in-the-uk/8101107/Cargo-plane-bomb-plot-computer-printer-shows-al-Qaedas-sophistication.html"&gt;are starting to switch tactics to bypass them&lt;/a&gt;.&amp;nbsp; Bruce Schneier&lt;a href="http://www.schneier.com/blog/archives/2010/11/me_on_airport_s_1.html"&gt; recently wrote a consice summary&lt;/a&gt; of the airport problem:&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;A short history of airport security: We screen for guns and bombs, so the terrorists use box cutters. We confiscate box cutters and corkscrews, so they put explosives in their sneakers. We screen footwear, so they try to use liquids. We confiscate liquids, so they put PETN bombs in their underwear. We roll out full-body scanners, even though they wouldn’t have caught the Underwear Bomber, so they put a bomb in a printer cartridge. We ban printer cartridges over 16 ounces — the level of magical thinking here is amazing — and they’re going to do something else. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is a stupid game, and we should stop playing it.&lt;/blockquote&gt;The same problem exists in modern computer security.&amp;nbsp; So much attention both on the corporate and personal level is focused on the firewall, trying to block people from entering the network.&amp;nbsp; It's the same situation as on an airplane, just replace luggage searches with packet inspection and no-fly lists with port blocking.&amp;nbsp; As long as airport and computer security is entirely focused on preventing intrusions at the border, it will fail.&amp;nbsp; When we realize we need to also have measures in place to respond to intrusions, we can begin to detect attackers early and prevent damage from being done.&amp;nbsp; This is how both &lt;a href="http://en.wikipedia.org/wiki/Richard_Reid_(shoe_bomber)"&gt;Richard Reid&lt;/a&gt;&amp;nbsp;and &lt;a href="http://en.wikipedia.org/wiki/Umar_Farouk_Abdulmutallab"&gt;Umar Farouk Abdulmutallab&lt;/a&gt; were stopped after TSA failed.&amp;nbsp; Note, no Air Marshalls were on their flights, these attackers were stopped by the random passengers that were nearby.&lt;br /&gt;&lt;br /&gt;That's stopping people at the last minute, though.&amp;nbsp; &lt;a href="http://www.nononsenseselfdefense.com/five_stages.html"&gt;Like any crime, there's a process&lt;/a&gt; of deciding to attack, identifying a target, reconnaissance, positioning, attacking, and response.&amp;nbsp; That link refers mostly to violent crime, but with some modifications it applies to burglary or hacking as well.&amp;nbsp; Having an adaptable security procedures&amp;nbsp;and a responsive&amp;nbsp;law enforcement presence that is able to take proactive measures to disrupt criminal or terrorist gangs will massively improve safety, far more than naked body scanners ever could hope to.&lt;br /&gt;&lt;br /&gt;But that brings me to the final common element between computer and airport security.&amp;nbsp; &lt;strong&gt;&lt;em&gt;Safety&amp;nbsp;is not something you HAVE.&amp;nbsp; It's something you WORK TOWARDS.&lt;/em&gt;&lt;/strong&gt;&amp;nbsp; There's no way to be perfectly safe/secure.&amp;nbsp; There's no way to stop every attack.&amp;nbsp; Hacker-proof, burglar-proof&amp;nbsp;or terrorist-proof only exists for politicians and salespeople, in the real world &lt;em&gt;there is always risk&lt;/em&gt;.&amp;nbsp; All we can do is prevent what we can and minimize the damage from what we can't.&lt;br /&gt;&lt;br /&gt;Agree with my post?&amp;nbsp; Disagree completely?&amp;nbsp; Share your thoughts, post a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-5743482699126512875?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/5743482699126512875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/11/what-computer-security-and-airport.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/5743482699126512875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/5743482699126512875'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/11/what-computer-security-and-airport.html' title='What computer security and airport security have in common'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-904185815204200972</id><published>2010-10-19T14:01:00.000-07:00</published><updated>2010-10-19T14:01:18.965-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='risk'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Facebook's most recent privacy controversy</title><content type='html'>I was listening to the radio this morning and heard an interesting discussion of Facebook's &lt;a href="http://online.wsj.com/article/SB10001424052702304772804575558484075236968.html"&gt;most recent privacy issue&lt;/a&gt;&amp;nbsp;(first reported by the Wall Street Journal). &amp;nbsp;I follow &lt;a href="http://www.sophos.com/blogs/gc/"&gt;Graham Cluley's blog&lt;/a&gt;&amp;nbsp;so I was completely not surprised to learn that the source of this privacy leak (it's nowhere near big enough to be a "breach") was Facebook applications. &amp;nbsp;However, I was surprised to learn that they weren't talking about the genuinely malicious applications out there. &amp;nbsp;Instead, this is what the WSJ was concerned about:&lt;br /&gt;&lt;blockquote&gt;The information being transmitted is one of Facebook's basic building blocks: the unique "Facebook ID" number assigned to every user on the site. Since a Facebook user ID is a public part of any Facebook profile, anyone can use an ID number to look up a person's name, using a standard Web browser, even if that person has set all of his or her Facebook information to be private&lt;/blockquote&gt;Ok, so what's the concern here? &amp;nbsp;It's just the number that uniquely identifies your Facebook profile, plus the information you've marked Public and the information that you &lt;a href="http://techcrunch.com/2010/06/30/facebook-permissions-applications/"&gt;specifically authorize the application&lt;/a&gt; to collect. &amp;nbsp;If you don't read that page that comes up every time you try and add an app, you should.&lt;br /&gt;&lt;br /&gt;This is really nothing new. &amp;nbsp;It's amazing to me that people look at these free apps and don't bother thinking about what what the app developer stands to gain from this. &amp;nbsp;It all goes back to what our parents should have taught us back in elementary school, nothing in life is free. &amp;nbsp;The best modern phrasing I've se&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;en about this is "&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;If you are not paying for it, you're not the customer; you're the product being sold." - &lt;a href="http://www.metafilter.com/95152/Userdriven-discontent#3256046"&gt;Blue Beetle&lt;/a&gt;. &amp;nbsp;Facebook (and their apps) and Google both &lt;i&gt;buy our personal information with fun toys and features&lt;/i&gt;. &amp;nbsp;They purchase our information because it's valuable to advertisers.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;If you're aware of this, you can make an intelligent decision about whether or not you really want to play MafiaWars or FarmVille. &amp;nbsp;Is that toy adequate payment for the information they're asking for in exchange? &amp;nbsp;If so, go right ahead and play that game knowing what you're exchanging. &amp;nbsp;If not, then don't.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The much bigger issue, in my opinion, are the &lt;a href="http://www.sophos.com/blogs/gc/g/2010/10/12/time-facebook-learn-security-lesson-apple/"&gt;genuinely malicious Facebook apps&lt;/a&gt;, the ones that &lt;a href="http://www.sophos.com/blogs/gc/g/2010/10/11/omg-txting-beware-facebook-rogue-applications/"&gt;post spam to your wall&lt;/a&gt;, or persuade you to &lt;a href="http://www.sophos.com/blogs/gc/g/2010/10/07/father-catches-daughter-webcam-facebook-survey-scam/"&gt;fill out surveys for them&lt;/a&gt;. &amp;nbsp;They're fundamentally dishonest about what they're doing, and impersonating the user to spread their spam.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-904185815204200972?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/904185815204200972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/10/facebooks-most-recent-privacy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/904185815204200972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/904185815204200972'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/10/facebooks-most-recent-privacy.html' title='Facebook&apos;s most recent privacy controversy'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-4831139726400330090</id><published>2010-10-07T16:15:00.000-07:00</published><updated>2010-10-07T16:15:15.418-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vulnerabilities'/><category scheme='http://www.blogger.com/atom/ns#' term='cybercrime'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Computer security is everyone's responsibility</title><content type='html'>Computer security is like physical security. &amp;nbsp;If any of us create a vulnerability, we're all vulnerable. &amp;nbsp;It's like the college dorms, if you prop the door open or leave a window open, someone can use that vulnerability to steal from me. &amp;nbsp;The same is true with computers, although the situation is massively amplified because someone can use your computer plus several thousand or million others in a &lt;a href="http://en.wikipedia.org/wiki/Botnet"&gt;botnet&lt;/a&gt;&amp;nbsp;to attack my computer or company. &amp;nbsp;As a result, we're all in the security game together. &amp;nbsp;I may have better security than you, and the NSA may have much better security than me, but you can help keep us all a little safer by improving your computer's security.&lt;br /&gt;&lt;br /&gt;There are lots of sites out there that have good advice for aspects of computer security. &amp;nbsp;Many of them are&amp;nbsp;targeted&amp;nbsp;for techies or highly computer-savvy people. &amp;nbsp;However, I've just found a site called &lt;a href="http://securingourecity.org/"&gt;Securing Our eCity&lt;/a&gt;&amp;nbsp;which provides advice and presentations for both families and businesses about computer security basics and current topics like some of the recent social networking viruses and online bullying. &amp;nbsp;If you have an interest in computer security (and if you're reading this blog, you probably do), take a look and see what you think. &amp;nbsp;Share it with your friends to let them know how they can stay safe online. &amp;nbsp;If we all help each other, we can make the internet a safer place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-4831139726400330090?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/4831139726400330090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/10/computer-security-is-everyones.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/4831139726400330090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/4831139726400330090'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/10/computer-security-is-everyones.html' title='Computer security is everyone&apos;s responsibility'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-3513661018664474216</id><published>2010-10-05T12:27:00.000-07:00</published><updated>2010-10-05T12:27:35.568-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='white house'/><category scheme='http://www.blogger.com/atom/ns#' term='cybercrime'/><category scheme='http://www.blogger.com/atom/ns#' term='government'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='espionage'/><title type='text'>Cybercrime and law enforcement priorities</title><content type='html'>With all of the stories in the news these days about &lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2010/10/01/AR2010100106981.html"&gt;Stuxnet&lt;/a&gt;, the&lt;a href="http://garwarner.blogspot.com/2010/09/minipost-new-york-fbi-17-wanted-zeus.html"&gt; ZeuS botnet&lt;/a&gt;, spam, identity theft, cyberwar, the &lt;a href="http://www.msnbc.msn.com/id/39464695/ns/technology_and_science-security/"&gt;US Cyber Command&lt;/a&gt;, and hackers, it's easy to believe that cybercrime and computer security is a high priority for the US government.&lt;br /&gt;&lt;br /&gt;However, a new analysis from Gary Warner with the&amp;nbsp;&lt;a href="http://garwarner.blogspot.com/2010/10/sir-paul-speaks-truth-cyber-law.html"&gt;CyberCrime &amp;amp; Doing Time blog&lt;/a&gt;&amp;nbsp;claims that although cyber crime &lt;i&gt;should&lt;/i&gt;&amp;nbsp;be a high priority for US law enforcement, it's not. &amp;nbsp;He points out that despite the fact that cyber crimes are escalating dramatically, the FBI's budget is only increasing by 4%, creating only 347 new agent positions over the 2010 fiscal year. &amp;nbsp;There's only a 5.5% increase for the US Attorney's offices, which would of course be responsible for prosecuting the criminals that the FBI catches.&lt;br /&gt;&lt;br /&gt;Officially, cyber crime is the FBI's third priority, behind terrorism and counterintelligence. &amp;nbsp;However, Mr. Warner points out that 51% of the FBI's budget is for counterterrorism. &amp;nbsp;Coming in at a distant second is major thefts/violent crime at 14.8% and third is "combat public and corporate corruption, fraud, economic crime, and cybercrime". &amp;nbsp;Obviously, the FBI's&amp;nbsp;budgetary&amp;nbsp;priorities don't match their stated goals. &lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.justice.gov/jmd/2011justification/pdf/fy11-fbi-justification.pdf"&gt;2011 FY budget&lt;/a&gt; (October 2010-September 2011) shows some steps in the right direction. &amp;nbsp;They requested an increase of 163 positions for Computer Intrusions (63 agents and 46 analysts) and only 90 new positions for National Security Threats. &amp;nbsp;This isn't to say that national security issues are unimportant ... far from it! &amp;nbsp;It's that cybercrime isn't given a big enough balance of the FBI's attention, and this will work towards correcting that imbalance. &amp;nbsp;After all, the FBI claims that in Fiscal Year 2008 (2009 was not complete when the report came out), out of 3,974 computer intrusion cases&amp;nbsp;received, there were only 31 "priority" investigations&amp;nbsp;successfully&amp;nbsp;"satisfied" (the FBI's term, I don't know how they define them), resulting in 126 convictions/pre-trial diversion. &amp;nbsp;Granted, some of these cases will be unable to result in convictions because many hackers reside outside the country, but &lt;a href="http://garwarner.blogspot.com/2010/10/big-one-zeus-operation-trident-breach.html"&gt;this week's arrests &lt;/a&gt;of computer fraudsters &lt;a href="http://garwarner.blogspot.com/2010/09/minipost-new-york-fbi-17-wanted-zeus.html"&gt;in the US&lt;/a&gt;, &lt;a href="http://garwarner.blogspot.com/2010/10/is-russia-joining-zeus-hunt.html"&gt;Russia&lt;/a&gt;, &lt;a href="http://garwarner.blogspot.com/2010/09/major-zeus-bust-in-uk-nineteen-zbot.html"&gt;the UK&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.networkworld.com/news/2010/100110-ukranian-police-arrest-5-targeting.html"&gt;Ukraine&lt;/a&gt;&amp;nbsp;show that with good international cooperation these thieves can be brought to justice. &lt;br /&gt;&lt;br /&gt;Although these arrests are excellent progress, it's sobering to note that the &lt;a href="http://www.verizonbusiness.com/resources/reports/rp_2010-data-breach-report_en_xg.pdf"&gt;2010 Verizon/Secret Service Data Breach Investigations&lt;/a&gt;&amp;nbsp;report shows that in 2009, the Secret Service added another 84 cases from 2009, for a total of 4,058 computer intrusion cases that got the attention of federal law enforcement (although it's possible that some of the FBI's cases are also in the Secret Service's report, I'm being optimistic). &amp;nbsp;Also in 2009, the Internet Crime Complaint Center reported that&amp;nbsp;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 4px; -webkit-border-vertical-spacing: 4px; font-family: Arial, Helvetica, sans-serif; font-size: 13px;"&gt;336,655 internet crime complaints and only half of them were referred to law enforcement for action. &amp;nbsp;&lt;/span&gt;Obviously, we have no way of knowing how many breaches there were total, as many are never reported or even discovered. &amp;nbsp;Also, the FBI statistic refers to only computer intrusions and the Secret Service statistic refers only to data breaches, so they're not equivalent figures. &amp;nbsp;Still, it seems clear that the FBI is&amp;nbsp;under-equipped&amp;nbsp;to deal with the vast amount of cybercrime out there today.&lt;br /&gt;&lt;br /&gt;The FBI's cyber division and other federal cyber law enforcement agencies do excellent work fighting cybercrime, but without better support and budgets, they can't really cut down the amount of theft going on out there. &amp;nbsp;Far more people are victims of cyber crime than terrorism, yet terrorism always gets the media and political attention and the budgets that go along with it. &amp;nbsp;I feel we need to better support the FBI's cyber division to fight back against these hackers. &amp;nbsp;What do you say, readers? &amp;nbsp;What's your opinion on the topic?&lt;br /&gt;&lt;br /&gt;Full disclosure: I have applied for the FBI and would like to work in their cyber division.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-3513661018664474216?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/3513661018664474216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/10/cybercrime-and-law-enforcement.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/3513661018664474216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/3513661018664474216'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/10/cybercrime-and-law-enforcement.html' title='Cybercrime and law enforcement priorities'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-3115462024862656658</id><published>2010-09-26T23:28:00.000-07:00</published><updated>2010-09-26T23:28:11.877-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stuxnet'/><category scheme='http://www.blogger.com/atom/ns#' term='cyberwar'/><category scheme='http://www.blogger.com/atom/ns#' term='espionage'/><title type='text'>Cyberwar, revisited</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;When I started this blog just two months ago, the news was all about "cyberwar" and the threats of it. &amp;nbsp;&lt;a href="http://renaissancesecurity.blogspot.com/2010/07/on-cyberwar-part-1-war-and-espionage.html"&gt;I posted&lt;/a&gt; &lt;a href="http://renaissancesecurity.blogspot.com/2010/07/on-cyberwar-part-2-cyberattacks-and.html"&gt;my take&lt;/a&gt; on the issue, which was essentially that although espionage happened, there wasn't really much that would be considered "war".&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;That was before the worm called Stuxnet hit the news (although after the main infection hit). &amp;nbsp;Stuxnet (officially W32.Stuxnet) is a type of &lt;a href="http://en.wikipedia.org/wiki/Malware"&gt;malware&lt;/a&gt;&amp;nbsp;that is unique for a number of reasons, not the least in that it's the &lt;a href="http://www.symantec.com/connect/blogs/stuxnet-introduces-first-known-rootkit-scada-devices"&gt;first known malware to infect SCADA systems&lt;/a&gt;. &amp;nbsp;It's rather versatile as well, possessing the ability to exfiltrate data (send confidential info back to the hackers), hide itself in the Windows operating system, and insert new code into the systems so that the hacker can change the operations of the system. &amp;nbsp;Interestingly, it injects the code in such a way that the new code is hidden from people who examine the infected system. &amp;nbsp;Stuxnet exploits &lt;a href="http://www.securelist.com/en/blog/2291/Myrtus_and_Guava_Episode_MS10_061"&gt;several different&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Zero-day_attack"&gt;zero-day&lt;/a&gt;&amp;nbsp;vulnerabilities, which in itself is quite unusual. &amp;nbsp;A vulnerability is most effective before it's discovered and patched, so to "waste" four vulnerabilities on one virus is quite uncommon. &amp;nbsp;On top of that, the hackers who wrote the virus stole two &lt;a href="http://en.wikipedia.org/wiki/Public_key_certificate"&gt;digital certificates&lt;/a&gt; and&lt;a href="http://www.symantec.com/connect/blogs/stux-be-you"&gt; used them to sign the virus&lt;/a&gt;, so that Windows would trust that the virus came from a legitimate company. &amp;nbsp;The &lt;a href="http://www.symantec.com/connect/blogs/w32stuxnet-network-information"&gt;virus contacted two&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Botnet#Organization"&gt;command and control servers&lt;/a&gt;&amp;nbsp;to obtain updates and instructions, but it also had a &lt;a href="http://en.wikipedia.org/wiki/Peer-to-peer"&gt;peer-to-peer&lt;/a&gt; &lt;a href="http://www.symantec.com/connect/blogs/stuxnet-p2p-component"&gt;(p2p) update scheme&lt;/a&gt;&amp;nbsp;as a backup.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;All of this leads several leading virus researchers to believe this was created by an organization with a large degree of technical skill, time, and money. &amp;nbsp;Many believe it was created by a government intelligence agency. &amp;nbsp;The fact that in the first couple days &lt;a href="http://www.symantec.com/connect/blogs/w32stuxnet-network-information"&gt;59% of infections were in Iran&lt;/a&gt;&amp;nbsp;further encourages the belief that it was an &lt;a href="http://www.csmonitor.com/USA/2010/0921/Stuxnet-malware-is-weapon-out-to-destroy-Iran-s-Bushehr-nuclear-plant"&gt;intelligence operation&lt;/a&gt; against a particular industrial facility in that country, perhaps the &lt;a href="http://www.scmagazineus.com/leading-stuxnet-theory-points-toward-sabotage-and-scada-inside-players/article/179073/?DCMP=EMC-SCUS_Newswire"&gt;Bushehr nuclear reactor&lt;/a&gt;&amp;nbsp;or perhaps the &lt;a href="http://frank.geekheim.de/?p=1189"&gt;Natanz nuclear enrichment facility&lt;/a&gt;. &amp;nbsp;The Natanz facility was built &lt;a href="http://en.wikipedia.org/wiki/Nuclear_facilities_in_Iran#Natanz"&gt;8 meters underground and protected by reinforced concrete&lt;/a&gt;, likely to &lt;a href="http://www.theregister.co.uk/2007/05/04/frustrated_mit_risk_loving_eggheads/"&gt;protect it against threatened airstrikes&lt;/a&gt;. &amp;nbsp;Since the facility is very difficult to attack by conventional means, it's tempting to believe that this was the target of Stuxnet, and it's tempting to believe that &lt;a href="http://www.military-technologies.net/2010/09/20/idf-hones-cyber-warfare-capabilities/"&gt;Stuxnet may have been an Israeli intelligence operation&lt;/a&gt;. &amp;nbsp;However, we'll likely never know for sure. &amp;nbsp;Even if the perpetrators step forward and admit what they were doing (and the odds of that are nil), we'd have no way to verify it.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Either way, the fact that Stuxnet exists is proof that cyber sabotage is indeed possible. &amp;nbsp;Two months after the beginning of the attack, we still no proof as to who was responsible for it, only guesses. &amp;nbsp;To me, that's the more frightening part. &amp;nbsp;With all conventional weapons, it's relatively easy to determine who is responsible for an attack. &amp;nbsp;Even in the case of terrorism, with some investigation it's possible to prove who should be held accountable for their actions. &amp;nbsp;With viruses, sometimes it's possible but much of the time it's not. &amp;nbsp;Obviously, only time will tell if the creators of Stuxnet&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; will be held accountable for their actions, but if they're never identified then I don't think there can be an&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.npr.org/templates/story/story.php?storyId=130023318"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;effective arms control for "cyberwar"&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;What do you think?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-3115462024862656658?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/3115462024862656658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/09/cyberwar-revisited.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/3115462024862656658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/3115462024862656658'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/09/cyberwar-revisited.html' title='Cyberwar, revisited'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-5557937194316184981</id><published>2010-09-13T11:27:00.000-07:00</published><updated>2010-09-13T11:30:06.132-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trust'/><category scheme='http://www.blogger.com/atom/ns#' term='identity theft'/><category scheme='http://www.blogger.com/atom/ns#' term='spam'/><category scheme='http://www.blogger.com/atom/ns#' term='fraud'/><title type='text'>On trust</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Computer security is a complex and continually changing field, but there are a few elements that keep cropping up. &amp;nbsp;One in particular is that with increasing security measures in software, hackers and virus writers are increasingly using psychology to convince a system's user to bypass security for them. &amp;nbsp;Much like an old-fashioned con-man or fraudster will persuade a user to give them access to their home or bank account, many modern viruses and hacking attempts utilize &lt;/span&gt;&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Social_engineering_(security)"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;social engineering&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;to spread viruses. &amp;nbsp;By either impersonating someone you may know or stealing and using their account, hackers may try to get you to open a file or click on a link they send you. &amp;nbsp;This gives them control of your computer for their nefarious ends and allows them to use your accounts (email, facebook, twitter, and others) to infect your friends.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.sophos.com/blogs/gc/g/2010/09/05/10-adults-kids-facebook-scam/"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;There are&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.sophos.com/blogs/gc/g/2010/09/09/cheerleaders-wild-clickjacking-spreads-virally-facebook/"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;numerous&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.sophos.com/blogs/gc/g/2010/09/01/care-button-spam-facebook/"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;examples&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; of &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.sophos.com/blogs/gc/g/2010/09/07/survey-stuff-worm-spreads-facebook/"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;a href="http://garwarner.blogspot.com/2010/08/phacephish-new-facebook-attack-gives.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;in the wild&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.sophos.com/blogs/gc/g/2010/09/06/kirstie-allsopps-twitter-account-hacked-ipad-spammers/"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;right now&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;, and in particular one of my friends recently fell victim to some variation of one of these. &amp;nbsp;No matter where you are, always be careful of what you click, always run an up-to-date antivirus software, keep your software up to date (particularly Windows and Adobe Acrobat), and always pay attention to possible warning signs of infection (not being able to go to certain websites, antivirus being disabled).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;It's not just your friends that hackers and scammers impersonate to get you to trust them. &amp;nbsp;Particularly if you work on sensitive material (such as military or other government matters), there are quite a few attacks out there &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.infowar-monitor.net/2010/09/crime-or-espionage-part-2/"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;impersonating government officials&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;to spread viruses or&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://garwarner.blogspot.com/2010/06/irs-malware-notice-of-underreported.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;steal&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; money. &amp;nbsp;The FBI's &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.fbi.gov/cyberinvest/escams.htm"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;"E-Scams and Warnings" page&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;currently has a long list of attacks impersonating government officials.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;The only way to protect yourself against these sorts of attacks is to be suspicious of any email that comes into your inbox and any page you view on the internet. &amp;nbsp;Just because something claims to be from a particular source doesn't mean that's really where it comes from. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.antiphishing.org/consumer_recs.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Learn to identify&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; malicious &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.fraud.org/tips/internet/phishing.htm"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;email&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt; and stay safe out there. &amp;nbsp;Don't worry, if you've fallen for one of these scams, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.antiphishing.org/consumer_recs2.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;here is some advice of how to recover&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;. &amp;nbsp;Also, I strongly urge everyone to report these scams to the &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.ic3.gov/default.aspx"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Internet Crime Complaint Center (http://www.ic3.gov)&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;The Internet is a dangerous place, but we can all do our part to keep it a bit safer.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-5557937194316184981?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/5557937194316184981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/09/on-trust.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/5557937194316184981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/5557937194316184981'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/09/on-trust.html' title='On trust'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-9000241663412222625</id><published>2010-08-30T16:03:00.000-07:00</published><updated>2010-08-30T16:14:04.549-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='protectionism'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='international politics'/><category scheme='http://www.blogger.com/atom/ns#' term='espionage'/><title type='text'>On protectionism, security, and international politics</title><content type='html'>In the news recently, there's been quite a bit of fear about hacking and data theft sponsored by foreign governments (usually China, but there's been some fear about North Korea and other nations as well). &amp;nbsp;&lt;a href="http://www.wired.com/dangerroom/2010/08/insiders-doubt-2008-pentagon-hack-was-foreign-spy-attack/"&gt;Here's an example&lt;/a&gt;&amp;nbsp;that may or may not have been connected to a foreign intelligence agency, and &lt;a href="http://www.infowar-monitor.net/2010/08/crime-or-espionage/"&gt;here is a more recent information stealing attack&lt;/a&gt; on government targets. &amp;nbsp;There's legitimate fear here, governments have wide resources that they can (and likely do employ) for electronic espionage. &amp;nbsp;Foreign and domestic companies are also known to &lt;a href="http://detroit.fbi.gov/dojpressrel/pressrel10/de072210.htm"&gt;employ industrial espionage&lt;/a&gt;&amp;nbsp;(electronic and old-fashioned) to steal valuable data from their competitors. &amp;nbsp;As a result, governments and corporations are beginning to take foreign threats seriously and look at the ways they're vulnerable to foreign threats.&lt;br /&gt;&lt;br /&gt;Unfortunately, the major espionage fear (corporate and government) is the same country that provides so much of our hardware and has significant government control over their corporations ... China. &lt;i&gt;&amp;nbsp;&lt;/i&gt;We don't know what they might be putting into the hardware that we buy from them, which is a serious threat.&lt;br /&gt;&lt;br /&gt;Although that's perfectly true, China buys lots of software (security software included) from the US. &amp;nbsp;Given that the US and China are global competitors, they have as much to fear from US espionage as we have to fear from theirs. &amp;nbsp;As a result, it was inevitable that &lt;a href="http://www.networkworld.com/news/2010/082610-china-policy-could-force-foreign.html"&gt;China would take action to prevent foreign security software from being used to secure their critical infrastructure&lt;/a&gt;. &amp;nbsp;It's perfectly reasonable, and I think this exact concern would prevent Chinese-programmed security software from being widely used in the West.&lt;br /&gt;&lt;br /&gt;At the same time, there are some claims of protectionism and fear that China is trying to shut foreign competition out of a major Chinese market. &amp;nbsp;This is also true, favoring local companies clearly goes against "free trade" principles and certainly the Chinese computer security market would hugely benefit from forcing foreign companies out or forcing them to work alongside local Chinese companies.&lt;br /&gt;&lt;br /&gt;There's really no easy answer to this one, but really there never seems to be. &amp;nbsp;To keep free trade, you need to allow foreign companies in. &amp;nbsp;To keep security, you need to keep untrusted companies out. &amp;nbsp;China's trying to draw a line here by only banning foreign computer security products from critical infrastructure. &amp;nbsp;They're just as afraid of the US hacking their electrical grid as &lt;a href="http://online.wsj.com/article/NA_WSJ_PUB:SB123914805204099085.html"&gt;we are of them hacking ours&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm most interested in the parallel reaction to the same threat by our countries. &amp;nbsp;Information security seems to be shaping up into the great&amp;nbsp;leveler&amp;nbsp;of nations. &amp;nbsp;It doesn't matter if your military budget is &lt;a href="http://en.wikipedia.org/wiki/Military_budget_of_the_United_States"&gt;$880 billion (US)&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Military_budget_of_the_People's_Republic_of_China"&gt;$78 billion (PRC)&lt;/a&gt;&amp;nbsp;or the much smaller budget of any other country. &amp;nbsp;To the hacker, we're all vulnerable.&lt;br /&gt;&lt;br /&gt;But that's just my opinion, I could be wrong. &amp;nbsp;What do you think, is China overreacting? &amp;nbsp;Do you think the situation with China is fundamentally different than the situation in the US?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-9000241663412222625?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/9000241663412222625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/08/on-protectionism-security-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/9000241663412222625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/9000241663412222625'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/08/on-protectionism-security-and.html' title='On protectionism, security, and international politics'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-1496194746760084504</id><published>2010-08-26T14:21:00.000-07:00</published><updated>2010-08-26T14:38:40.651-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='white house'/><category scheme='http://www.blogger.com/atom/ns#' term='spam'/><category scheme='http://www.blogger.com/atom/ns#' term='rogue pharma'/><title type='text'>On the intersection between politics, law, and computer security</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;One major annoyance on the internet is spam. &amp;nbsp;Much of the spam that's out there are either phishing emails (attempts to get users to divulge sensitive information), viruses, or pharmaceutical advertisements. &amp;nbsp;Now, the White House is &lt;/span&gt;&lt;/span&gt;&lt;a href="http://krebsonsecurity.com/2010/08/white-house-calls-meeting-on-rogue-online-pharmacies/"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;calling a meeting&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;with the top internet domain registrars (the companies that sell domain names (such as http://www.google.com) to companies. &amp;nbsp;If Obama can get the major registrars to stop selling domain names to criminal organizations like these rogue pharma companies (which sell fake drugs for cheap), it would do much to cut down on their profits and thus the amount of spam they can pay people to send on their behalf. &amp;nbsp;This would cut down the amount of spam sent and the amount of hacking being done in order to subvert mail servers to send out spam.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Based on the email that Brian Krebs posted, it seems that they're only talking about voluntary measures so far. &amp;nbsp;Obviously, voluntary measures are only effective when everyone ignores the money that can be gained by violating them. &amp;nbsp;For a current example, see how effective the voluntary safety inspections at egg farms are. &amp;nbsp;These rogue pharma operations seem to be able to toss around a decent amount of money, so I doubt voluntary measures would do more than raise the price of the domain names they register for their illegal businesses.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Still, having such a high-level meeting at all and getting political attention to internet security issues like this one is a major first step. &amp;nbsp;Hopefully it'll eventually lead to global regulations that are effectively enforced with significant punishments for violation. &amp;nbsp;Until then, don't buy drugs advertised in misspelled emails. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: small;"&gt;Seriously, why would anyone buy something advertised like that ... and then swallow it?&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: small;"&gt;And yet, people do. &amp;nbsp;As I'm writing this post, I stumbled across an &lt;a href="http://phoenix.fbi.gov/dojpressrel/pressrel10/px082510.htm"&gt;FBI press release&lt;/a&gt;&amp;nbsp;about a Canadian, Hazim Gaber, sentenced to 33 months in prison for selling fake drugs to cancer patients. &amp;nbsp;Although he is Canadian, he was arrested in Germany. &amp;nbsp;The international nature of these internet crimes makes enforcement quite difficult. &amp;nbsp;Interestingly, the press release mentions specifics about his crime. &amp;nbsp;Apparently he was advertising DCA, and experimental cancer drug. &amp;nbsp;He was charging $45.52 for 20 grams, but actually shipping a white powder containing starch and sugars (dextrose or lactose). &amp;nbsp;Absolutely medically useless, and his 65 known victims are incredibly lucky they didn't get something toxic. &amp;nbsp;Good job, FBI.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-1496194746760084504?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/1496194746760084504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/08/on-intersection-between-politics-law.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/1496194746760084504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/1496194746760084504'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/08/on-intersection-between-politics-law.html' title='On the intersection between politics, law, and computer security'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-2926004645192939228</id><published>2010-08-24T18:55:00.000-07:00</published><updated>2010-08-24T18:55:51.009-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vulnerabilities'/><category scheme='http://www.blogger.com/atom/ns#' term='pii'/><category scheme='http://www.blogger.com/atom/ns#' term='identity theft'/><title type='text'>On the difficulty of preventing identity theft</title><content type='html'>A week ago, I was moving to a new house and helping my in-laws move their stuff too. &amp;nbsp;They've run various businesses in the past, which of course creates LOTS of paperwork, including personally identifiable information (&lt;a href="http://en.wikipedia.org/wiki/Personally_identifiable_information"&gt;PII&lt;/a&gt;). &amp;nbsp;Since the business in question has ended, it was time to destroy the data. &amp;nbsp;In the chaos and stress of moving, it would have been easy to accidentally throw the private information out with the regular garbage/recycling. &amp;nbsp;That sort of mistake happens often, and it's one way personal information gets stolen. &amp;nbsp;Information security isn't just a matter of high-tech software and log files, it's also about making sure documents are destroyed properly and people can't look over your shoulder when you're accessing confidential stuff. &amp;nbsp;Preventing loss of data due to dumpster-diving isn't cool, but it's important.&lt;br /&gt;&lt;br /&gt;If you're a business (regardless of the size of the business), you're going to generate paperwork. &amp;nbsp;The way you prevent this sort of problem from arising is by creating a clear document policy. &amp;nbsp;Take a page from the government and assign your documents to clear, simple categories. &amp;nbsp;For example, "not private", "internal use only", "secret", etc. &amp;nbsp;Clearly define who can have access to what document type, and make sure anything secret isn't in a location where untrusted people like visitors, janitors or contractors can wander across it. &lt;br /&gt;&lt;br /&gt;For any kind of PII, intellectual property or trade secrets, establish how long you need to store it and securely destroy it (shred, incinerate, etc) when it's past the expiration date. &amp;nbsp;If you keep up with your document destruction duties, it won't become an overwhelming pile that you need to destroy &lt;i&gt;right now!&lt;/i&gt;&amp;nbsp;&amp;nbsp;That's how mistakes happen and a file/database of bank accounts ends up in the dumpster for some opportunistic thief to steal.&lt;br /&gt;&lt;br /&gt;Everyone should have a shredder for this sort of task, but if you're a business you may be better off using a &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=document+destruction&amp;amp;btnG=Search"&gt;document destruction service&lt;/a&gt;. &amp;nbsp;Typically, they leave some sort of locking container for you to place your confidential information into, and collect it at regular intervals.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-2926004645192939228?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/2926004645192939228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/08/on-difficulty-of-preventing-identity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/2926004645192939228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/2926004645192939228'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/08/on-difficulty-of-preventing-identity.html' title='On the difficulty of preventing identity theft'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-3597681277640544984</id><published>2010-08-03T09:22:00.000-07:00</published><updated>2010-08-03T09:22:01.020-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='psychology'/><category scheme='http://www.blogger.com/atom/ns#' term='ethics'/><category scheme='http://www.blogger.com/atom/ns#' term='me'/><title type='text'>On the Security Psychology and Ethics</title><content type='html'>Good security people, whether physical or cyber, share a common mindset that makes us distinct from most people. &amp;nbsp;Living in society, most people follow the rules of what's considered acceptable behavior and they expect everyone else to do so as well. &amp;nbsp;As a result, much of the time people don't even think about other ways even being possible. &amp;nbsp;It's that blind spot that creates vulnerabilities for criminals to exploit. &amp;nbsp;Good security people are able to look at the rules and assumptions people have about what other people do and say "That's how they're expecting people to act. &amp;nbsp;What if I do this instead?". &amp;nbsp;This allows us to find these vulnerabilities, hopefully before criminals do, and encourage people to close them. &amp;nbsp;Bruce Schneier wrote an &lt;a href="http://www.schneier.com/blog/archives/2008/03/the_security_mi_1.html"&gt;excellent article on the subject&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;At the California Cyber Challenge camp this year, I was watching a discussion between security people which erupted in an interesting way. &amp;nbsp;One side was arguing in favor of leniency towards criminal hackers, arguing that as long as their crime is motivated by curiosity rather than profit or malice, they can still be turned back to be a productive member of society. &amp;nbsp;The other side was arguing that it's still a crime and they should be punished for their infractions. &amp;nbsp;This is, of course, an old argument that crops up not just in the computer security field, but in the &lt;a href="http://www.associatedcontent.com/article/89124/punishment_vs_rehabilitation_in_the.html"&gt;criminal justice system&lt;/a&gt; at large. &amp;nbsp;Watching it play out, I realized that there's not just one security mindset, but at least two.&lt;br /&gt;&lt;br /&gt;On one side we have the penetration testers, vulnerability researchers, cryptanalysts, and other "offensive security" types. &amp;nbsp;They're good at seeing the vulnerabilities in systems and figuring out how to exploit them, so that other people can fix the vulnerabilities. &amp;nbsp;The people arguing for leniency for "non-malicious" cyber criminals were from this category.&lt;br /&gt;&lt;br /&gt;On the other side we have the system administrators, security researchers, intrusion detectors, incident response people, and other "defensive security" types. &amp;nbsp;They're good at detecting and blocking attackers and implementing and enforcing security policy. &amp;nbsp;Forensics people have some of both talents, able to detect and analyze attacks, but also cracking passwords and reverse engineering malware. &amp;nbsp;However, in terms of mindset and ethics, they seem to be more closely aligned with the "defensive" types. &amp;nbsp;The people arguing against the category of "non-malicious" cyber criminals were from this category.&lt;br /&gt;&lt;br /&gt;My interests and talents lie on the "defensive" side of the spectrum. &amp;nbsp;Although I can understand how the offensive people may have dabbled in criminal behavior in their youth, fundamentally security positions are powerful. &amp;nbsp;We hold the keys to the integrity of the network. &amp;nbsp;We stand between the criminals and secret data. We need to have very strong ethics and personal integrity, because &lt;a href="http://www.csmonitor.com/USA/2010/0730/Cybercrime-Are-mobsters-planting-hackers-in-big-companies"&gt;organized crime is getting involved&lt;/a&gt; and may try to corrupt us. &amp;nbsp;In my opinion, once someone starts justifying and using the darker aspects of security, it makes them vulnerable to corruption.&lt;br /&gt;&lt;br /&gt;But that's just my opinion, and I'm interested to know what others think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-3597681277640544984?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/3597681277640544984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/08/on-security-psychology-and-ethics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/3597681277640544984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/3597681277640544984'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/08/on-security-psychology-and-ethics.html' title='On the Security Psychology and Ethics'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-2570252289699003929</id><published>2010-07-28T13:31:00.000-07:00</published><updated>2010-07-28T13:31:22.250-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SANS'/><category scheme='http://www.blogger.com/atom/ns#' term='me'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>On the US Cyber Challenge and up-and-coming IT security workers</title><content type='html'>Last week, I was one of the fortunate 22 winners of the &lt;a href="http://cba.csupomona.edu/cis/cia/ccc.aspx"&gt;California Cyber Challenge&lt;/a&gt; selected to attend a week-long training camp at Cal Poly Pomona. &amp;nbsp;We had four days of intensive SANS training on exploit writing, Linux security, incident response/penetration testing, and digital forensics. &amp;nbsp;We also had panels on ethics and education, and a job/scholarship mixer. &amp;nbsp;The final day hosted a "capture the flag" event.&lt;br /&gt;&lt;br /&gt;All in all, the event was wonderful. &amp;nbsp;Events ran from 9-9, and great conversations with fellow "campers" and the instructors frequently ran until 1 or 2 am. &amp;nbsp;The classes were so intense and packed with information that we frequently came out of them with headaches from the information overload, and more material on our DVDs and in our books to go over in our own time.&lt;br /&gt;&lt;br /&gt;One of the really great things about information security in general and the camp in particular is that there are many different specialties a person can get involved in. &amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Penetration_test"&gt;Penetration testing&lt;/a&gt; (testing a company's security), &lt;a href="http://en.wikipedia.org/wiki/Vulnerability_(computing)"&gt;vulnerability research &lt;/a&gt;(testing a program's security), &lt;a href="http://en.wikipedia.org/wiki/Malware#Academic_research_on_malware:_a_brief_overview"&gt;reverse-engineering malware&lt;/a&gt; (taking apart a virus or other malicious software to see how it works), &lt;a href="http://en.wikipedia.org/wiki/Intrusion_detection"&gt;intrusion detection&lt;/a&gt; (watching a system for signs of hacking), and &lt;a href="http://en.wikipedia.org/wiki/Computer_forensics"&gt;digital forensics&lt;/a&gt; (retrieving evidence from computer systems) all require different skill sets and personalities, and that's not even a complete list. &amp;nbsp;I'm still new to computer security and until this camp I wasn't really sure what all the different fields were, what I would enjoy and what I was good at. &amp;nbsp;A varied training camp like the &lt;a href="http://www.uscyberchallenge.org/"&gt;USCC&lt;/a&gt; camps introduces the attendees to a variety of different disciplines and the methods required, which lets us discover what we're good at and what we enjoy, while also giving us a better background in the parts that aren't our preference. &amp;nbsp;Learning how to write exploits is useful for determining how a virus works, or tracking down what happened on a system. &amp;nbsp;For me, one of the great virtues of the camp learning for certain that I enjoy computer forensics. &amp;nbsp;Now I can study it in more detail and get work experience for a career.&lt;br /&gt;&lt;br /&gt;One aspect of events like the camp and similar security training events that is frequently underestimated is the social networking opportunities. &amp;nbsp;I'm talking about the old-fashioned face-to-face kind, which can be supplemented by the &lt;a href="http://en.wikipedia.org/wiki/Web_2.0"&gt;Web 2.0&lt;/a&gt; kind. &amp;nbsp;Not only did I learn a lot from my outside-of-class discussions, but I also made connections that has resulted in me getting some volunteer experience and a team to enter the &lt;a href="http://www.dc3.mil/challenge/"&gt;DC3 forensics&lt;/a&gt; challenge.&lt;br /&gt;&lt;br /&gt;All in all, the Cyber Challenge camp is a wonderful kick-start for my career, and I'm incredibly&amp;nbsp;grateful&amp;nbsp;I had the opportunity to be a part of the first one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-2570252289699003929?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/2570252289699003929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/07/on-us-cyber-challenge-and-up-and-coming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/2570252289699003929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/2570252289699003929'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/07/on-us-cyber-challenge-and-up-and-coming.html' title='On the US Cyber Challenge and up-and-coming IT security workers'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-2161567232720423270</id><published>2010-07-13T22:13:00.000-07:00</published><updated>2010-07-13T22:13:14.709-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cyberwar'/><title type='text'>On "Cyberwar" - Part 2: Cyberattacks and the damage they can do</title><content type='html'>Although cyberespionage is a very real threat, it's not exactly the kind of nightmare that you see in Hollywood movies, news articles or defense contract applications. &amp;nbsp;The real question is, what kind of physical damage can a "cyberwar" or "cyberterrorism" do?&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Website_defacement"&gt;Website defacement&lt;/a&gt;&lt;/span&gt;&amp;nbsp;is a very common cyber "attack", sometimes including using the server to host viruses and malware. &amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Denial-of-service_attack"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;Denial-of-service (DoS) attacks&lt;/span&gt;&lt;/a&gt;&amp;nbsp;can take a website down for a period of time. &amp;nbsp;Both can cause serious damage to a victimized business, but they're not exactly militarily effective. &amp;nbsp;&lt;a href="http://www.schneier.com/blog/archives/2010/07/the_threat_of_c.html"&gt;Security expert Bruce Schneier&lt;/a&gt; vividly described the threat of DoS attacks like this:&lt;br /&gt;&lt;blockquote&gt;A real-world comparison might be if an army invaded a country, then all got in line in front of people at the DMV so they couldn't renew their licenses. If that's what war looks like in the 21st century, we have little to fear.&lt;/blockquote&gt;In 2007, Estonia's government systems were hit by a major DoS attack. &amp;nbsp;While reporters widely reported it as the first cyberwar, in &lt;a href="http://www.wired.com/threatlevel/2007/08/cyber-war-and-e/"&gt;retrospect this seems to have been hyperbole&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There have been a number of cases of "cyberattack" reported in the media over the past few years, but it's been difficult to tell what's really going on. &amp;nbsp;Computers don't explode or fire bullets, they're just used to control other systems, so any malfunction in any system might possibly be a computer problem ... or deliberate digital sabotage. &lt;br /&gt;&lt;br /&gt;For example, &lt;i&gt;&lt;a href="http://www.economist.com/node/16478792"&gt;The Economist&lt;/a&gt;&lt;/i&gt;&lt;a href="http://www.economist.com/node/16478792"&gt;&amp;nbsp;recently reported&lt;/a&gt; that in 1982, the CIA tampered with Soviet software to cause a gas pipeline explosion. &amp;nbsp;If true, this would be an excellent example of the physical damage a computer attack could cause (although whether it would be an act of war or an act of sabotage is a matter of opinion). &amp;nbsp;The question is, &lt;a href="http://www.bookscape.co.uk/short_stories/computer_hoaxes.php"&gt;did that really happen&lt;/a&gt;? &amp;nbsp;It's difficult to know for sure. &amp;nbsp;In 2007, &lt;a href="http://www.cbsnews.com/stories/2009/11/06/60minutes/main5555565.shtml"&gt;Brazil suffered a massive blackout&lt;/a&gt; that &lt;i&gt;60 Minutes&lt;/i&gt; ascribed to hackers, but it seems that it was &lt;a href="http://www.wired.com/threatlevel/2009/11/brazil_blackout/"&gt;mundane poor&amp;nbsp;maintenance&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This doesn't prove or disprove the possibility of destructive hacking attacks, of course, but it does show that unlike conventional war, in the case of a cyberattack, it's difficult to even determine if you've been attacked, much less who is responsible. &amp;nbsp;This spring, &lt;a href="http://www.wired.com/threatlevel/2010/03/schmidt-cyberwar/"&gt;Howard Schmidt was in an interview with Wired Magazine&amp;nbsp;&lt;/a&gt;&amp;nbsp;and quite frankly said "There is no cyberwar." and "As for getting into the power grid, I can't see that that's realistic."&lt;br /&gt;&lt;br /&gt;At present, the evidence seems to point against computer attacks causing physical damage. &amp;nbsp;However, it seems prudent that we engineer critical systems (such as powerplants) to be resistant to hacking attacks. &amp;nbsp;That way, we can keep this sort of "cyberwar" squarely in &lt;a href="http://en.wikipedia.org/wiki/Live_Free_or_Die_Hard#Plot_summary"&gt;Hollywood&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://www.schneier.com/"&gt;Bruce Schneier&lt;/a&gt; for extensive discussion of "cyberwar". &amp;nbsp;His analysis and research form much of the basis of my understanding of the concept and underlies these posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-2161567232720423270?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/2161567232720423270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/07/on-cyberwar-part-2-cyberattacks-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/2161567232720423270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/2161567232720423270'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/07/on-cyberwar-part-2-cyberattacks-and.html' title='On &quot;Cyberwar&quot; - Part 2: Cyberattacks and the damage they can do'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-4683030737363894017</id><published>2010-07-07T14:42:00.000-07:00</published><updated>2010-07-13T22:13:45.331-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cyberwar'/><title type='text'>On "Cyberwar" - Part 1: War and espionage</title><content type='html'>&lt;div&gt;Lately, the news has been hyped up about "cyberwar", both offensive and defensive.  Many articles have been written &lt;a href="http://www.economist.com/node/16478792?story_id=16478792&amp;amp;fsrc=rss"&gt;about the concept&lt;/a&gt;, &lt;a href="http://www.tnr.com/article/books-and-arts/75262/the-new-vulnerability?id=x/4nV/7dRhaF2PZx8ULyUrSAx24fjAvIDafY+X1zns5PfR84nG7thSMPJXhwQSkw"&gt;if it's likely&lt;/a&gt; (&lt;a href="http://www.schneier.com/blog/archives/2010/07/the_threat_of_c.html"&gt;or not&lt;/a&gt;), and even whether or not the term "cyberwar" makes any sense at all.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm not a "cyberwar" expert, but all the rhetoric and essays being slung about the topic have convinced me that there really aren't any "experts" in this.  Indeed, depending on whose article I read, different people have different opinions on what "cyberwar" is.  When it comes to hacking and computer systems, where's the line between espionage, sabotage, and war?  It certainly doesn't help that in modern politics and society, the line between the three concepts is being increasingly blurred even before you add in the complication of when it takes place on the Internet.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Traditionally speaking, "war" was considered to be declared combat operations between two (or more) countries, both fielding uniformed armies.  Legally, soldiers needed to be uniformed, making it certain whose nation they were acting for (example, &lt;a href="http://www.icrc.org/ihl.nsf/WebList?ReadForm&amp;amp;id=470&amp;amp;t=art"&gt;Geneva Conventions Articles 37-39, 46, 66&lt;/a&gt; among others).  Non-uniformed combatants taking part in war were typically considered spies, mercenaries or illegal combatants.  Thus, traditional law establishes that in order to be acting in legal war, combatants on both sides must be positively attributable to the government they're acting for.  "Cyberwar" obviously can't fit this definition, as positive attribution is very difficult if not impossible.  A "war on terrorism" (or even war on a particular terrorist group) also doesn't fit this definition of war, which leads to further confusion but it beyond the scope of this blog.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Espionage, sabotage and piracy are traditionally considered to be actions taken against a government which may or may not be on behalf of another government.  There's a degree of secrecy and deception that's not present in the modern legal definition of war.  Espionage is typically considered to be non-violent, stealing information.  Cyber-espionage is a real threat, with several clear examples of data stolen from both &lt;a href="http://online.wsj.com/article/SB124027491029837401.html"&gt;government&lt;/a&gt; and &lt;a href="http://www.wired.com/threatlevel/2010/01/hack-of-adob"&gt;non-government&lt;/a&gt; ("corporate espionage") sources.  Although this sort of attack would be incredibly useful for government and military uses, the fact that there's no destruction or potential loss of life makes me believe that it is more properly considered a type of espionage.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The real grey area comes when we consider sabotage, attacks that cause interference or damage to data or systems.  This is a complex issue, so I'll cover that in it's own post.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-4683030737363894017?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.economist.com/node/16478792?story_id=16478792&amp;fsrc=rss' title='On &quot;Cyberwar&quot; - Part 1: War and espionage'/><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/4683030737363894017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/07/on-cyberwar-part-1-war-and-espionage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/4683030737363894017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/4683030737363894017'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/07/on-cyberwar-part-1-war-and-espionage.html' title='On &quot;Cyberwar&quot; - Part 1: War and espionage'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4430977542408140820.post-2678650154523671786</id><published>2010-07-04T16:17:00.000-07:00</published><updated>2010-07-13T22:13:35.396-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='me'/><title type='text'>Who I am, and what I mean by Renaissance security professional</title><content type='html'>The "Renaissance man" is an ideal that's fallen out of favor in modern times.  These days, people are expected to be specialists instead of having skill in a range of disciplines.  In my opinion, the modern ideal is short-sighted.  No person can be effective unless they have skill in several areas, intellectual and social.  The people who achieve the most in their lives are those who have diverse skills and interests, such as Ben Franklin.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Although I've always had a diverse set of interests, it was JJ Thompson of &lt;a href="http://www.rookconsulting.com/"&gt;Rook Consulting&lt;/a&gt; who really showed me how valuable it is to have a broad range of skill for a computer security career, and who coined the term "Renaissance security professional".  Computer security needs to be more than just about technology.  There is no "magic box" (hardware or software) that will make our networks impenetrable.  Computer security professionals need to have an understanding of business so that we can converse with people outside our fields to show them why we're trying to make whatever change we're doing, rather than just trying to use &lt;a href="http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt"&gt;fear, uncertainty and doubt (FUD)&lt;/a&gt; to make our arguments.  We need to understand psychology and human behavior so that our security policies are realistic, rather than trying to demand people remember impossibly complex passwords without writing them down.  An understanding of &lt;a href="http://www.schneier.com/crypto-gram-0104.html#1"&gt;military history&lt;/a&gt; can inform &lt;a href="http://www.schneier.com/crypto-gram-0105.html#1"&gt;better strategies for network defense&lt;/a&gt;.  Besides these examples, a broad-based skill set makes one better prepared for whatever comes in life, and makes for a better person.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is what I intend to do, and this blog will be part of that effort.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4430977542408140820-2678650154523671786?l=renaissancesecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://renaissancesecurity.blogspot.com/feeds/2678650154523671786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/07/who-i-am-and-what-i-mean-by-renaissance.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/2678650154523671786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4430977542408140820/posts/default/2678650154523671786'/><link rel='alternate' type='text/html' href='http://renaissancesecurity.blogspot.com/2010/07/who-i-am-and-what-i-mean-by-renaissance.html' title='Who I am, and what I mean by Renaissance security professional'/><author><name>Alex</name><uri>http://www.blogger.com/profile/00338875228138269114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0mZ-cdEqtM8/Th3MbzVHXxI/AAAAAAAAASM/9f4EJIp7NiA/s1600/253509_10150268977136075_650906074_9349340_1061981_n.jpg'/></author><thr:total>1</thr:total></entry></feed>
