OSX.Keydnap is a MacOS X based Trojan horse that steals passwords from the iCloud Keychain[1] of the infected machine. It uses a dropper to establish a permanent backdoor while exploiting MacOS vulnerabilities and security features like Gatekeeper, iCloud Keychain and the file naming system. It was first detected in early July 2016 by ESET researchers, who also found it being distributed through a compromised version of Transmission Bit Torrent Client.[2]

Technical details

edit

Download and installation

edit

OSX.Keydnap is initially downloaded as a Zip archive. This archive contains a single Mach-O file and a Resource fork containing an icon for the executable file, which is typically a JPEG or text file image. Additionally, the dropper takes advantage of how OS X handles file extensions by putting a space behind the extension of the file name for example – as “keydnap.jpg ” instead of “keydnap.jpg”. Usually commonly seen icon images and names are used to exploit users' willingness to click on benign looking files. When the file is opened, the Mach-O executable runs by default in the Terminal instead of an image viewer like the user would expect.[citation needed]

This initial execution does three things. First, it downloads and executes the backdoor component. Second, it downloads and opens a decoy document to match what the dropper file is pretending to be. Finally, it quits the Terminal to cover up that it was ever open. The terminal is only opened momentarily.[citation needed]

Establishing the backdoor connection

edit

Since the downloader is not persistent, the downloaded backdoor component spawns a process named "icloudsyncd" that runs at all times. It also adds an entry to the LaunchAgents directory to survive reboots. The icloudsyncd process is used to communicate with a command & control server via an onion.to address, establishing the backdoor.[3]

It then attempts to capture passwords from the iCloud Keychain, using the proof-of-concept Keychaindump,[4] and transmits them back to the server. Keychaindump reads securityd’s memory and searches for the decryption key for the user’s keychain as described in “Keychain Analysis with Mac OS X Memory Forensics” by K. Lee and H. Koo.[5]

Gatekeeper signing workaround

edit

Mac OS uses Gatekeeper to verify if an application is signed with a valid Apple Developer ID certificate preventing OSX.Keydnap from running. Further, even if the user does have Gatekeeper turned off, they will see a warning that the file is an application downloaded from the Internet giving the user an option to not execute the application. However, by packing OSX.Keydnap with a legitimate signing key as in the case of the compromised Transmission app, it successfully bypasses Gatekeeper protection.[2][3]

Detection and removal

edit

Activating Gatekeeper is an easy way to prevent accidental installation of OSX.Keydnap. If the user's Mac has Gatekeeper activated, the malicious file will not be executed and a warning will be displayed to the user. This is because the malicious Mach-O file is unsigned, which automatically triggers a warning in Gatekeeper.[3]

References

edit
  1. ^ Reed, Thomas (2016-07-13). "Mac malware OSX.Keydnap steals keychain". Malwarebytes. Retrieved 2016-11-20.
  2. ^ a b Research, ESET (2016-08-30). "OSX/Keydnap spreads via signed Transmission application". www.welivesecurity.com. ESET. Retrieved 2016-12-02.
  3. ^ a b c Léveillé, Marc-Etienne (2016-07-06). "New OSX/Keydnap malware is hungry for credentials". www.welivesecurity.com. ESET. Retrieved 2016-11-20.
  4. ^ Salonen, Juuso (2015-09-05). "A proof-of-concept tool for reading OS X keychain passwords". www.github.com. Retrieved 2016-12-02.
  5. ^ Lee, Kyeongsik; Koo, Hyungjoon (2012-07-01). "Keychain Analysis with Mac OS X Memory Forensics" (PDF). forensic.n0fate.com. Retrieved 2016-12-02.