Special Edition is the blog for security testing business SE Labs. It explains how we test security products, reports on the internet threats we find and provides security tips for businesses, other organisations and home users.

Friday, 17 June 2016

Let's get fuzzical

Why does software seem so insecure? Massive software companies seem incapable of fixing their products for any length of time. Is it their fault, or are they fighting a battle they can't win?

At its core, Windows is the result of several decades of constant development. Despite this, Microsoft is still obliged to observe Patch Tuesday each month, when users receive the latest fixes to installed products. A large number of these updates fix security vulnerabilities.

This month, for example, Patch Tuesday includes 16 security update bundles covering in excess of 40 new security holes found in products as diverse as IIS, Microsoft's web server, and the supposedly secure Edge browser. How can it be that this monthly ritual is still required? After all, it's not like Microsoft is a small company caught out by sudden success, while trying to manage a huge ball of undocumented code. On the contrary, it is literally one of the biggest, best funded tech companies in the history of the planet.

Let's take another case. Adobe's Flash and Reader products are also mature, stable software. Yet black hat hackers love them as the gifts that keep on giving. This week brought news of yet another critical Flash vulnerability, which is already being exploited in the wild.

The complexity of some software, despite its maturity, makes it vulnerable. It needs to be all things to all (wo)men at all times. In the case of Adobe Reader, every PDF document it loads must display perfectly, regardless of its complexity or the limitations of the software used to create it. Anything not explicitly forbidden is, therefore, permissible. Reader will always try to render the file you give it.

Such complexity leads neatly to a fundamental question: If companies such as Adobe and Microsoft can't find all the exploitable bugs in their code, how come private researchers and black hats can?

The answer lies in a technique called fuzz testing, or fuzzing.

In his presentation to CodenomiCON 2010 , Charlie Miller showed that with a little thought, a few lines of Python code and some time, it's possible to use fuzzing, in the form of completely random mutations to a file, to find a number of hitherto unreported and potentially exploitable crashes in Adobe Reader.

He took 80,000 PDFs from the internet and reduced that total to just over 1,500 based on their uniqueness from each other. From these files, he generated 3 million variations containing random mutations.

When loaded into Reader, these corrupted files caused crashes in over 2,500 cases. Miller showed that several crashes revealed exploitable situations, some of which were subsequently found, reported and patched by Adobe, but others were new.

Given that there are a total of 2 ^ NUMBER_OF_BITS theoretical mutations that can be made to a PDF, and the ease with which each mutation can be automatically evaluated, PDF readers alone should remain a goldmine for new exploits for some time. Meanwhile, there are many other programs and file types that can be also attacked with various fuzzing methods.

Bugtraq has been highlighting
software vulnerabilities for years
Take a look at the Bugtraq mailing list archive and you'll see what I mean. Every day brings a new crop of reports and proofs of concept for all kinds of software. In fact, another six were added while I wrote this blog post. Buried amongst the plethora of obscure libraries and applications are often complete howlers in major products. How are these bugs being found? In the case of closed source software, fuzzing techniques can be the primary tools.

Fuzzing comes in many forms, with some methods and frameworks being more intelligent and guided than others, but the aim is always to automate the discovery of exploitable bugs by finding situations for which complex software either hasn't been tested or cannot be tested.

You may be wondering why, with their wealth and resources, major software manufacturers don't fuzz their products to death, as well as performing more traditional testing. The short answer is that they do, but due to the sheer number of possibilities and the time required, all they can do is fuzz as much as possible before the release deadline. The overwhelming majority of possible tests may still remain to be run by other, potentially malicious individuals and groups.

Security holes in software are not going away any time soon, so ensure that the security software you run is capable of protecting you. How? Checking out good anti-malware reviews that include exploit attacks such as ours would be a good start.

Author: Jon Thompson (Email: jon@selabs.uk; Twitter: @jon_thompson_uk)

Tuesday, 7 June 2016

Poor grammar foils spammer

It's great that even if your mastery of a language isn't brilliant, other people from across the planet can still understand you. It's an amazing human ability that brings us together as a species, but when the people writing phishing attacks try to sound plausible in a language they don't sufficiently understand, the results can be unconvincing:
"Please take a few minutes out of your online experience to know why PayPal had to limit your account and know how you are best able to easily restore your access as usual."
It's our old friend the Fake Security Notice phishing attack. This is the opening gambit of a surprisingly old school technique we've been monitoring all week with the SE Labs spam-pot network.

It goes on:
"We need some information from you. We have provided a form for you to complete, please open the attached file in this email in your browser. After our security team reviewed your information, we can then lift the limitations from your PayPal account."
Not very convincing unless you read it too fast, and there's a sort of old fashioned feel to the language. Also, poor grammar and punctuation.

It could be that the targets of this campaign are people who speak English as a second language, some of whom may not spot the problems that mark it out as unusual.

It should, however, go without saying that if you receive an email from someone calling themselves PayPal you should log into and check your PayPal account using your usual method, and not by clicking the link in the email. PayPal (and other financial institutions) never ask for passwords or other private information via email.

Author: Jon Thompson (Email: jon@selabs.uk; Twitter: @jon_thompson_uk)

Friday, 3 June 2016

Ransom-ware: Can pay, won't pay

The FBI's Joseph Bonavolonta had some shocking news about ransomware for Boston's Cyber Security Summit last October. "To be honest," he said, "we often advise people to just pay the ransom."

Cyber-security blogs everywhere exploded at the advice, but a lot has changed in the past six months. A constantly-evolving array of ransomware campaigns roam free, "taxing" online life. One big problem is that there’s no way of knowing what the ransom payments are being used for.

Is the money funding a criminal’s easy life? The development of even worse malware? ISIS, perhaps? After further thinking the FBI is now telling people not to pay up.

The question for most of us is, what happens if you don't pay? To find out, we infected a specially-prepared Windows test system.

Infection time


When we test anti-malware products we find the latest threats that we believe affect most people. These are often automatic 'drive-by' attacks, that use exploits to install malware such as ransomware on victims' computers without requiring user interaction. You just have to visit the site and the attack starts and runs to completion. No clicking required.

For this demonstration we exposed our target, which was not running anti-malware software, to an infected website. After a few minutes of apparent inactivity a pop-up message explained that svchost.exe needed to be installed. We clicked to accept the change and... Bingo! An infection swiftly ensued, turning all of our important files to gibberish and leaving them sporting the dreaded .crypt file extension.

In the background the malware also scanned the local subnet for any other unprotected file shares. This being a test network, there were none, but in a real situation every file you can access on your local network can also potentially be accessed by ransomware. Your movie collections or business files stored on a Network Attached Storage (NAS) device are definitely at risk.

This knowledge is vital when assessing the extent of an attack. If your smartphone is plugged in, it could be at risk. Your carefully curated media server could also be affected, as could your cloud storage.

Reboot!


Rebooting revealed the full horror of the machine's plight. As soon as the Desktop appeared, so did a pop-up unexpectedly asking us to run an installation package. Running, cancelling or dismissing the installation always led to the same result: a ransom note displayed in both the web browser and Windows Photo Viewer. The note explained what had happened and threatened what will happen if we didn't do exactly as instructed (spoiler: the price goes up!). It also contained a set of links to the data-nappers' web site to read detailed instructions for how to pay.

Assessing the Damage


The object of the exercise was to find out what would happen if I were to simply ignore the ransom note and carry on using the machine, so it was time to take stock.

All of our files had been turned to cryptographic porridge. However, the operating system still seemed to be running smoothly. Screen dumps of the ransom note could still be saved and read, as could the other documents we created, implying that there was nothing in the background encrypting newly-created files.

The kidnapping part of the ransom operation was seemingly over.

Of course, there may have been a rootkit lurking somewhere, ready to spring into life if no ransom was paid after a certain date. To test this hypothesis, we set the system clock forwards several weeks and rebooted. Nothing new happened, but without running some forensic tests we'd never be sure.

All that seemed to be left was the demand for money, triggered from the Startup menu every time we logged in. Deleting the relevant Startup entries stopped the ransom note from appearing, but that still left us with no way to access any of the encrypted files, and we couldn't truly trust the operating system any more.

Ransomware doesn't have to hang around causing more trouble for its hapless victim. It's done its foul work and the criminals behind the campaign simply had to wait for the Bitcoins to come rolling in. Other than paying up, our only hope would be that a researcher or anti-malware company has developed a decryption tool for our particular infestation. The development of decryption tools, however, is causing some ransomware developers to revert to locking the entire computer rather than allowing you to see the locked files for yourself.

Protect and Survive


The FBI is right to change its stance on ransomware. Paying up fuels the epidemic and the easy money is attracting criminals like flies around you-know-what. The number of ransomware domains, according to reports, increased by 3,500% in Q1 of 2016 alone and the situation looks like getting worse.

For example, in the past few days Microsoft announced the existence of a 'ransomworm' called ZCryptor. Its payload is contained within emailed Microsoft Office documents. Once delivered, it also installs itself on any USB devices it finds plugged into the victim's computer and alters the autorun information on the device. It will then try to infect any system into which the USB drive is subsequently plugged.

10 ways to stay safe


As usual with online security, prevention is far better than trying to find a cure, but such measures only make sense if you take steps before the fact:
  1. Install a good anti-virus product. Our reports show which are the most effective for businesses and home users. Our work is independent and we only test against current threats, which we catch ourselves in-house.
  2. Educate yourself to treat everything in your inbox as a lie. Even if the sender is known to you, double-check with them before opening attachments.
  3. Switch on automatic updates for all software, including Windows, your antivirus software, your browser, Java, Adobe products, etc.
  4. Regularly download a boot-able rescue disk from your chosen anti-malware provider and let it run overnight to thoroughly examine your computer. Most rescue disks will boot from USB.
  5. Never install 'updates' just because a website tells you to. This type of trickery is a very common infection vector for ransomware.
  6. Consider installing a browser plug-in such as the excellent NoScript for Firefox to prevent JavaScript from automatically running from unknown domains without your explicit say-so. And consider disabling Java in your browser.
  7. Don’t download cracked copies of commercial software, ebooks or media. Again, this is a very common infection vector.
  8. Never use a USB drive you find in a public place. You simply can't trust them or their content. 
  9. Ransomware will try to infect every share to which it can write. Only mount shares as and when needed, and always protect them with passwords. If you don’t need write access, mount as read only.
  10. Above all, get into the habit of performing regular backups to removable media. For a home user, a backup is as simple as dragging and dropping a folder structure (and ejecting afterwards!) onto a freshly quick-formatted USB drive. Use two USB drives and swap between them.
Author: Jon Thompson (Email: jon@selabs.uk; Twitter: @jon_thompson_uk)