A new set of security vulnerabilities affecting all major operating systems (Windows, macOS, Linux, and FreeBSD) has been discovered. The vulnerabilities, known as Thunderclap, could allow attackers to bypass protection mechanisms meant to guard against DMA (Direct Memory Access) attacks.
The discovery was made public during the Network and Distributed Systems Security Symposium in San Diego. The research is described as a “joint work with Colin Rothwell, Brett Gutstein, Allison Pearce, Peter Neumann, Simon Moore and Robert Watson”. According to the report:
Direct Memory Access (DMA) attacks have been known for many years: DMA-enabled I/O peripherals have complete access to the state of a computer and can fully compromise it including reading and writing all of system memory. With the popularity of Thunderbolt 3 over USB Type-C and smart internal devices, opportunities for these attacks to be performed casually with only seconds of physical access to a computer have greatly broadened.
In other words, such attacks enable hackers to compromise a system by simply plugging a malicious hot plug device which could be an external network card, mouse, keyboard, printer, storage, and graphics card, into Thunderbolt 3 port or the latest USB-C port.
Technical Overview of the Thunderclap Vulnerabilities
Thunderclap affects the way Thunderbolt-based peripherals are allowed to connect and interact with the afore-mentioned operating systems. This would eventually allow a malicious device to steal data directly from the operating system’s memory, such as highly sensitive information.
It’s noteworthy that the team of researchers (from the University of Cambridge, Rice University, and SRI International) disclosed these security flaws in 2016. It took three years in silent work with hardware and OS versions to try and fix the issues. Unfortunately, OS vendors haven’t reacted adequately enough to the discovery, and most of the attacks based on Thunderclap are still valid and exploitable.
It turns out that hardware and OS vendors are widely aware of the threats presented by these vulnerabilities, and employ an Input-Output Memory Management Unit (IOMMU) to limit access by DMA-enabled peripherals to system memory. MacOS, Linux, and FreeBSD, for example, can be configured to open up only limited portions of kernel memory to DMA, in order to prevent malicious device, the report highlights.
How protected are the affected operating systems at the moment?
Microsoft have enabled support for the IOMMU for Thunderbolt devices in Windows 10 version 1803, which shipped in 2018, the report says. Earlier hardware upgraded to 1803 needs a firmware vendor update. Despite these efforts, the more complex vulnerabilities the researchers describe remain relevant.
In macOS 10.12.4 and later, Apple addressed the specific network card vulnerability the researchers utilized to achieve a root shell. Nonetheless, Thunderbolt devices still have access to all network traffic and sometimes keystrokes and framebuffer data.
What about Linux? Intel released patches to version 5.0 of the Linux kernel (shortly to be released) that enable the IOMMU for Thunderbolt and prevent the protection-bypass vulnerability that uses the ATS feature of PCI Express.
As for FreeBSD, the project “indicated that malicious peripheral devices are not currently within their threat model for security response. However, FreeBSD does not currently support Thunderbolt hotplugging”.
The researchers also released proof-of-concept Thunderclap code on GitHub.
Further measures needed
Unfortunately, isolating device memory, as implemented by macOS in 2012 and now Windows 10 1803 is far from enough to mitigate the Thunderclap issues. Malicious devices can mold themselves to target vulnerable interfaces, choosing the weakest software to attack, among other things.
“It is not sufficient to simply enable basic IOMMU protections in the PCIe bus framework and consider the job finished. Our findings show there is no defense in depth: the layers beyond, such as communication stacks and memory allocators, are not hardened against malicious devices,” the researchers warned.
Fortunately, co-operation with OS vendors has led to an improvement in IOMMU (Input-Output Memory Management Unit) security and vulnerability mitigation through currently deployed software updates. For full technical disclosure, refer to the researchers’ detailed report.
- Guide 1: How to Remove from Windows.
- Guide 2: Get rid of from Mac OS X.
- Guide 3: Remove from Google Chrome.
- Guide 4: Erase from Mozilla Firefox.
- Guide 5: Uninstall from Microsoft Edge.
- Guide 6: Remove from Safari.
- Guide 7: Eliminate from Internet Explorer.
How to Remove from Windows.
Step 1: Boot Your PC In Safe Mode to isolate and remove
Step 2: Uninstall and related software from Windows
Here is a method in few easy steps that should be able to uninstall most programs. No matter if you are using Windows 10, 8, 7, Vista or XP, those steps will get the job done. Dragging the program or its folder to the recycle bin can be a very bad decision. If you do that, bits and pieces of the program are left behind, and that can lead to unstable work of your PC, errors with the file type associations and other unpleasant activities. The proper way to get a program off your computer is to Uninstall it.
Step 3: Clean any registries, created by on your computer.
The usually targeted registries of Windows machines are the following:
You can access them by opening the Windows registry editor and deleting any values, created by there. This can happen by following the steps underneath:
Get rid of from Mac OS X.
Step 1: Uninstall and remove related files and objects
1. Hit the ⇧+⌘+U keys to open Utilities. Another way is to click on “Go” and then click “Utilities”, like the image below shows:
- Go to Finder.
- In the search bar type the name of the app that you want to remove.
- Above the search bar change the two drop down menus to “System Files” and “Are Included” so that you can see all of the files associated with the application you want to remove. Bear in mind that some of the files may not be related to the app so be very careful which files you delete.
- If all of the files are related, hold the ⌘+A buttons to select them and then drive them to “Trash”.
In case you cannot remove via Step 1 above:
In case you cannot find the virus files and objects in your Applications or other places we have shown above, you can manually look for them in the Libraries of your Mac. But before doing this, please read the disclaimer below:
You can repeat the same procedure with the following other Library directories:
Tip: ~ is there on purpose, because it leads to more LaunchAgents.
Step 2: Scan for and remove malware from your Mac
When you are facing problems on your Mac as a result of unwanted scripts, programs and malware, the recommended way of eliminating the threat is by using an anti-malware program. Combo Cleaner offers advanced security features along with other modules that will improve your Mac’s security and protect it in the future.
Remove from Google Chrome.
Step 1: Start Google Chrome and open the drop menu
Step 2: Move the cursor over "Tools" and then from the extended menu choose "Extensions"
Step 3: From the opened "Extensions" menu locate the unwanted extension and click on its "Remove" button.
Step 4: After the extension is removed, restart Google Chrome by closing it from the red "X" button at the top right corner and start it again.
Erase from Mozilla Firefox.
Step 1: Start Mozilla Firefox. Open the menu window
Step 2: Select the "Add-ons" icon from the menu.
Step 3: Select the unwanted extension and click "Remove"
Step 4: After the extension is removed, restart Mozilla Firefox by closing it from the red "X" button at the top right corner and start it again.
Uninstall from Microsoft Edge.
Step 1: Start Edge browser.
Step 2: Open the drop menu by clicking on the icon at the top right corner.
Step 3: From the drop menu select "Extensions".
Step 4: Choose the suspected malicious extension you want to remove and then click on the gear icon.
Step 5: Remove the malicious extension by scrolling down and then clicking on Uninstall.
Remove from Safari.
Step 1: Start the Safari app.
Step 2: After hovering your mouse cursor to the top of the screen, click on the Safari text to open its drop down menu.
Step 3: From the menu, click on "Preferences".
Step 4: After that, select the 'Extensions' Tab.
Step 5: Click once on the extension you want to remove.
Step 6: Click 'Uninstall'.
A pop-up window will appear asking for confirmation to uninstall the extension. Select 'Uninstall' again, and the will be removed.
Eliminate from Internet Explorer.
Step 1: Start Internet Explorer.
Step 2: Click on the gear icon labeled 'Tools' to open the drop menu and select 'Manage Add-ons'
Step 3: In the 'Manage Add-ons' window.
Step 4: Select the extension you want to remove and then click 'Disable'. A pop-up window will appear to inform you that you are about to disable the selected extension, and some more add-ons might be disabled as well. Leave all the boxes checked, and click 'Disable'.
Step 5: After the unwanted extension has been removed, restart Internet Explorer by closing it from the red 'X' button located at the top right corner and start it again.