Custom Malware Prevented Bangladesh Bank From Detecting Fraudulent Transfers
Researchers at British multinational defense, security and aerospace company BAE Systems believe they have found the pieces of malware used by cybercriminals to steal $81 million from Bangladesh’s central bank earlier this year.
In early February, after gaining access to the Bangladesh Bank’s systems, malicious actors transferred $101 million from the bank’s account at the Federal Reserve Bank of New York to accounts in Sri Lanka and the Philippines. The money sent to Sri Lanka was recovered, but $81 million sent to the Philippines is still missing. The attackers attempted to make fraudulent transactions totaling nearly $1 billion, but the full theft was prevented thanks to security systems and typos in some transfer requests.
The Bangladesh bank reported that it took nearly four days to halt the unauthorized payments due to printer and software problems. It now appears that these issues were caused by a piece of malware designed to target the SWIFT interbank messaging system, which normally tracks transfer requests.
Experts from BAE Systems found the malware after someone uploaded samples from Bangladesh. Researchers discovered several components used in the attack and they all appear to have been created by the same actor.
One of the most important pieces of malware, hidden in a file named “evtdiag.exe,” was designed to interact with SWIFT Alliance Access, a messaging interface that allows banks and market infrastructures to connect to the SWIFT platform. According to the vendor, there are more than 2,000 Alliance Access installations worldwide.
The attackers compromised the Bangladesh Bank’s systems and planted the malware, which enumerates all processes in search for a module called “liboradb.dll.” This module is responsible for starting the SWIFT Alliance Access database, backup and restore functions, and reading database paths from the registry.
If this module is found, the malware overwrites 2 bytes at a specific offset, which results in all validity checks being marked as successful, allowing attackers to execute database transactions.
Once validity checks are bypassed, the malware starts monitoring SWIFT messages. It’s worth noting that the message monitoring functionality was only active until February 6, at 6 AM. The unauthorized transfers took place in the two days prior to this date, which indicates that the malware was specially designed for this heist.
By capturing SWIFT messages, the threat is capable of deleting specific transactions from the database and updating transaction amounts to allow the attackers to cover their tracks.
The confirmation messages generated by the SWIFT system are also sent by the software to a printer. The messages generated for the fraudulent transactions could have alerted bank employees, but the malware used by the attackers ensured that the files prepared for printing were overwritten.
“This malware was written bespoke for attacking a specific victim infrastructure, but the general tools, techniques and procedures used in the attack may allow the gang to strike again,” BAE Systems wrote in a blog post.
SWIFT releases software update
SWIFT has released a software update to protect customers and help them identify potentially suspicious activity.
In a statement published on Monday, SWIFT clarified that the malware discovered by researchers has no impact on its network or core messaging services. The organization noted that the malware can only be deployed if attackers somehow manage to compromise the target’s systems by exploiting security vulnerabilities.
“We have developed a facility to assist customers in enhancing their security and to spot inconsistencies in their local database records,” SWIFT said. “However the key defence against such attack scenarios remains for users to implement appropriate security measures in their local environments to safeguard their systems - in particular those used to access SWIFT - against such potential security threats. Such protections should be implemented by users to prevent the injection of malware into, or any misappropriation of, their interfaces and other core systems.”