Getting cryptographic implementations right is difficult. A group of malware creators is currently experiencing that hard truth, to the amusement of security researchers.
For the past several months, a group of cybercriminals have been infecting Linux systems -- primarily Web servers -- with a file-encrypting ransomware program that the security industry has dubbed Linux.Encoder.
This development is worrying, because Web server infections don't require user interaction as on desktop computers where getting users to open rogue email attachments or visit malicious websites are common attack vectors. Instead, the hackers use automated scanners to find servers that host vulnerable applications or have weak SSH passwords they can guess using brute-force methods.
Many webmasters are also in the bad habit of creating automatic backup routines that save the backed-up directories and database contents on the same server as the website itself, meaning that a ransomware infection will encrypt those as well.
Fortunately, all of the Linux.Encoder variants found so far have had cryptographic implementation errors allowing researchers to create tools to decrypt the affected files.
Security researchers from antivirus vendor Bitdefender recently came across the third version of Linux.Encoder that, according to them, has infected at least 600 servers so far.
The good news is that despite its creators' attempts to address their previous failures, this version of the program also has a flaw that makes decryption possible without paying the ransom.
The new version attempts to generate an AES-256 encryption key by getting 32 random bytes from the rand() function and then hashing them 8 times.
However, the ransomware creators forgot to select a hashing algorithm, so the output of the hashing function remains unchanged, the Bitdefender researchers said in a blog post Tuesday. "As a result, the full AES key is now written to the encrypted file, which makes its recovery a walk in the park."
Bitdefender has released a new tool that can decrypt files affected by this latest Linux.Encoder version.
Unfortunately, the people behind this ransomware program seem pretty determined and are unlikely to keep making mistakes. It's safe to assume that they'll get their implementation right at some point, and when that happens files encrypted by Linux.Encoder will be unrecoverable without backups or paying the ransom.
That's why it's important to secure SSH authentication; to keep Web applications like WordPress, Joomla and other content management systems up to date and to use a Web application firewall that can detect and block different types of exploitation attempts. Creating regular backups and storing them offsite is also critically important.