A leaked programming manual for interacting with the physical components of automated teller machines might have helped attackers create malware programs that were used to steal cash from ATMs in various parts of the world this year.
Security researchers from antivirus vendor Kaspersky Lab reported Tuesday that at least 50 ATMs in Eastern Europe and elsewhere have been infected with a malware program dubbed Tyupkin that can be controlled through the machines' keypads to dispense bills stored in their cassettes. It's believed that Tyupkin was used to steal millions, but it's not the first threat of its kind.
In October 2013 security researchers from Symantec warned about an ATM backdoor program dubbed Ploutus, which was used to steal money in Mexico. In May they documented another ATM Trojan, dubbed Padpin, that's very similar to Tyupkin.
Eighteen ATMs were infected with malware in Malaysia recently, allowing criminals to steal 3 million Malaysian Ringgit, or over US$900,000, according to a local media report. It's not clear which malware program was used in the attack, but Padpin is one of the possibilities.
Security researchers from F-Secure analyzed Padpin samples recently and determined that the malware is designed to interact with a particular DLL library known as Extension for Financial Services (XFS) that only exists on ATMs. The library, called MSXFS.dll, provides a special API (application programming interface) that enables software to communicate with an ATM's PIN pad. According to researchers from the Kaspersky Lab, Tyupkin also uses MSXFS.dll.
"Analyzing the code, we started wondering how the malware author knows which pin pad service name to provide to the API so that the program is able to interact with the pin pad device," the F-Secure researchers said in a blog post, noting that Microsoft doesn't provide any official documentation for this library's functions. "It's a valid question because the pin pad service name used in the code is quite unique and it is very unlikely one can figure out the service name without documentation."
The answer was eventually found in a programmer's reference manual from NCR, a U.S. manufacturer of ATMs, point-of-sale devices and self-service kiosks, that was posted on an ebook site owned by Chinese online search company Baidu.
It's possible that this manual was uploaded by someone other than Pinpad's authors and that the malware was created by programmers experienced in writing ATM applications. However, the leaked document could allow others to easily create ATM malware, according to the F-Secure researchers.
After skimming through the documentation, the researchers concluded that writing a program that interacts with ATMs would be easy even for someone with no prior knowledge about how to write software communicating with the devices. "The documentation is helpful enough to give programmers some sample code as well," the researchers said.
Unlike credit card skimming, the theft of money from ATMs via malware does not directly impact consumers, as the losses are incurred by the financial institutions that own the compromised machines. There are methods to prevent such attacks since they require physical access to the ATMs -- like changing the default locks on the machines, disabling their internal CD-ROMs and USB ports or installing additional alarm systems.
In the past, banks might have weighed the cost of locking down ATMs against the actual probability of those machines being attacked and concluded that the risk was acceptable. However, if the number of attacks using malware like Tyupkin, Padpin or Ploutus increases, as security researchers predict, then financial institutions might be forced to reconsider their ATM security practices.