Attacks/Breaches
12/31/2013
03:53 PM
Gunter Ollmann
Gunter Ollmann
Commentary
Connect Directly
RSS
E-Mail
50%
50%

Sticking It To The ATM

The folly of not preemptively disabling 'boot from USB' on an ATM

Ever since Barnaby Jack leapt on stage at Black Hat USA and had ATMs spew money as if it were going out of style, hackers around the globe have been busy trying to replicate the research before banks and ATM vendors get the vulnerabilities fixed. You'd have thought that after three-and-a-half years both vendors and banks would have fixed the bugs and dealt with the physical attack vectors long ago. Unfortunately, that doesn't seem to be the case.

A pair of security researchers speaking in Hamburg at last week's Chaos Communication Congress provided new insight and demonstrated some USB-based malware that had been crafted by criminals and used earlier in the year to siphon money from several unpatched ATMs. The original malware authors had taken steps to remove many of the installation traces that forensic investigators would have found useful, so the researchers had to piece together many parts of a complex puzzle.

While it hasn't been disclosed which type of ATM were targeted (or which bank was affected), it seems that the criminals had uncovered physical flaws in the bank's ATM devices that allowed them to cut access holes through which they could slip in their infector USB device. Once the USB device was in place, the ATMs could be rebooted and the malware automatically installed.

I'd have thought that with all the hoopla that followed Black Hat in 2010 and the personal visits that Barnaby Jack (and IOActive -- the consulting company he worked for at the time) made to the ATM manufacturers and high-street banking organizations at the time, that everyone would have at least disabled the "boot from USB" functionality. Apparently, this particular bank hadn't acted on the memo.

The ATM malware appears to have had a number of interesting features designed to protect it from both investigators and fellow criminals or mules. After supplying a 12-digit magic number to bring up a built-in menu, the money mules were provided direct manual access to the machines' money-dispensing functions. However, before money could be extracted, a second code was required, a challenge-response code, most likely added to prevent mules from operating independently of the malware authors.

Given the relative sophistication of the malware and the efforts involved in protecting it from both bank investigators and other criminals, I wouldn't be surprised to learn that the malware is already in use by other organized crime gangs around the world. It would be a rare occurrence for any bank targeted by this malware to openly disclose it was a victim -- doing so is not good for business and customer confidence.

While the attack vector -- booting from an infected USB stick -- will have many security veterans rolling their eyes in disbelief that the targeted bank hadn't already mitigated the threat, I've heard several people argue that writing code (malicious or otherwise) for ATMs is difficult. Unfortunately, it's simpler than most realize. Anyone with an understanding of CEN/XFS, or the time to peruse the online manuals, will quickly master the fundamentals.

This USB infector process is the low-hanging fruit for criminals targeting ATM machines. Banks that haven't already mitigated the attack vector are, for lack of a better word, negligent. There can be no excuses for not disabling the "boot from USB" functionality, especially now with the public disclosure of criminal abuse.

-- Gunter Ollmann, CTO, IOActive Inc. Gunter Ollmann serves as CTO for IOActive Inc. where he is responsible for the strategic vision of the security services portfolio, driving new research areas and bringing new services to market. With over two decades in the information security arena, Gunter has stared down ... View Full Bio

Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
macker490
50%
50%
macker490,
User Rank: Ninja
1/6/2014 | 12:58:01 PM
re: Sticking It To The ATM
ATM should have a sensor in it to protect against physical attack such as cutting a hole in it. tripped sensor should just cut off ac power and signal ADT type alarm. even a pin-ball machine can set the TILT alarm.

we need to start publishing these attack methods all over the net so the fools who are playing free and careless wih our security have to straighten up .
mcabral028
50%
50%
mcabral028,
User Rank: Apprentice
1/3/2014 | 4:11:38 PM
re: Sticking It To The ATM
I certainly no security expert. But wouldn't rebooting an ATM, with an unscheduled reboot no less, have caused the ATM to have to logged and sent that information to someone maybe in real-time? I'm looking at this from a maintenance point of view, I guess, rather than a security one. But it seems it would have been a red flag that something wasn't quite right with that machine.
Register for Dark Reading Newsletters
White Papers
Flash Poll
Current Issue
Cartoon
Video
Slideshows
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2013-6306
Published: 2014-08-22
Unspecified vulnerability on IBM Power 7 Systems 740 before 740.70 01Ax740_121, 760 before 760.40 Ax760_078, and 770 before 770.30 01Ax770_062 allows local users to gain Service Processor privileges via unknown vectors.

CVE-2014-0232
Published: 2014-08-22
Multiple cross-site scripting (XSS) vulnerabilities in framework/common/webcommon/includes/messages.ftl in Apache OFBiz 11.04.01 before 11.04.05 and 12.04.01 before 12.04.04 allow remote attackers to inject arbitrary web script or HTML via unspecified vectors, which are not properly handled in a (1)...

CVE-2014-3525
Published: 2014-08-22
Unspecified vulnerability in Apache Traffic Server 4.2.1.1 and 5.x before 5.0.1 has unknown impact and attack vectors, possibly related to health checks.

CVE-2014-3563
Published: 2014-08-22
Multiple unspecified vulnerabilities in Salt (aka SaltStack) before 2014.1.10 allow local users to have an unspecified impact via vectors related to temporary file creation in (1) seed.py, (2) salt-ssh, or (3) salt-cloud.

CVE-2014-3587
Published: 2014-08-22
Integer overflow in the cdf_read_property_info function in cdf.c in file through 5.19, as used in the Fileinfo component in PHP before 5.4.32 and 5.5.x before 5.5.16, allows remote attackers to cause a denial of service (application crash) via a crafted CDF file. NOTE: this vulnerability exists bec...

Best of the Web
Dark Reading Radio
Archived Dark Reading Radio
Three interviews on critical embedded systems and security, recorded at Black Hat 2014 in Las Vegas.