Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Endpoint Security

1/9/2019
08:15 AM
Larry Loeb
Larry Loeb
Larry Loeb
50%
50%

Windows, Linux Susceptible to New Side-Channel Vulnerability

In a new paper co-authored by a researcher who discovered Spectre, it appears that Windows and Linux are susceptible to a new type of side-channel vulnerability that can target the page cache of an operating system.

The Spectre and Meltdown flaws disclosed in early 2018 were a wake-up call to the industry about side-channel attacks, and how these classes of vulnerabilities could play havoc with the security assumed to be present in microprocessors.

Now, one of the researchers behind the Spectre study -- along with four others -- has come up with a different kind of side-channel attack that has nothing to do with hardware. Instead, this flaw focuses on the caches that are used in the operating system software. (See Spectre, Meltdown Vulnerabilities Will Haunt Industry for Years.)

In the paper, "Page Cache Attacks," methods are shown that work on Linux and Microsoft Windows. Further, the researchers think the method they have described should work on Apple's macOS, although they admit they have not tested it yet.

(Source: iStock)
(Source: iStock)

The page cache is a purely software cache that contains all disk-backed pages that are used by the OS. The operating system uses the page cache to store frequently used pages in memory to help minimize the delay of retrieving the information from disk. These pages are shared among all processes regardless of privilege and permission boundaries.

All modern operating systems, including Windows, Linux and macOS, implement a page cache. The paper assumes that attacker and victim have access to the same operating system page cache. This is a reasonable assumption for processes running under the same operating system, or processes running in isolated sandboxes with shared files.

The new attack uses standard operating system calls -- mincore on Linux and QueryWorkingSetEx on Windows -- to find the page cache information. The minicore call returns which pages of a memory range are present in memory, while QueryWorkingSetEx returns a list of pages that are in the current working set of a process, and so are present in the page cache.

The researchers found that attack is much more efficient within Windows than on Linux due to the differences in the system functions. Windows has per-process working sets, so the page cache is influenced by these working sets. For Linux, the page cache is directly influenced by all processes that are invoked.

The attack goes on to use page cache eviction, which is the process of accessing enough pages in the right way so that a target page is evicted. By itself, this is usually too slow to allow this attack to work, but the researchers improved how eviction is performed so that at attack could succeed.

In the paper, they write about setting up specific attacks, such as a covert channel, which works by accessing or not accessing specific pages. They also tried user-interface redress attacks which use the side-channel in a chip as a trigger. The basic idea is to detect when an interesting window is opened and to place an identically looking fake window over it.

The researchers also experimented with an inter-keystroke timing attack on a keyboard input in the root authentication window on Ubuntu 18.04.

Since remote attacks cannot use mincore to check which pages are in cache, an attacker would need to rely on timing.

Mitigation would involve making it harder to use the system calls by increasing the privilege levels. For Linux, the researchers found that "making the mincore system call privileged is feasible and would mitigate our attack at a very low implementation cost," according to the paper.

For Windows, the share count information could be omitted from the structure returned by QueryWorkingSetEx as it exposes information about other processes to the attacker. Also, QueryWorkingSetEx should not allow one process to obtain working-set information of another process, according to the official documentation. The researchers note that Windows 10 19H1 will make these changes to the OS.

It seems that the OS manufacturers will need to fix this attack vector. Fortunately, it seems they can do it without too much fuss.

Related posts:

— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.

Comment  | 
Print  | 
More Insights
Comments
Threaded  |  Newest First  |  Oldest First
Edge-DRsplash-10-edge-articles
I Smell a RAT! New Cybersecurity Threats for the Crypto Industry
David Trepp, Partner, IT Assurance with accounting and advisory firm BPM LLP,  7/9/2021
News
Attacks on Kaseya Servers Led to Ransomware in Less Than 2 Hours
Robert Lemos, Contributing Writer,  7/7/2021
Commentary
It's in the Game (but It Shouldn't Be)
Tal Memran, Cybersecurity Expert, CYE,  7/9/2021
Register for Dark Reading Newsletters
White Papers
Video
Cartoon
Current Issue
How Enterprises are Attacking the Cybersecurity Problem
Concerns over supply chain vulnerabilities and attack visibility drove some significant changes in enterprise cybersecurity strategies over the past year. Dark Reading's 2021 Strategic Security Survey showed that many organizations are staying the course regarding the use of a mix of attack prevention and threat detection technologies and practices for dealing with cyber threats.
Flash Poll
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2020-5669
PUBLISHED: 2021-10-26
Cross-site scripting vulnerability in Movable Type Movable Type Premium 1.37 and earlier and Movable Type Premium Advanced 1.37 and earlier allows a remote authenticated attacker to inject an arbitrary script via unspecified vectors.
CVE-2021-40343
PUBLISHED: 2021-10-26
An issue was discovered in Nagios XI 5.8.5. Insecure file permissions on the nagios_unbundler.py file allow the nagios user to elevate their privileges to the root user.
CVE-2021-40344
PUBLISHED: 2021-10-26
An issue was discovered in Nagios XI 5.8.5. In the Custom Includes section of the Admin panel, an administrator can upload files with arbitrary extensions as long as the MIME type corresponds to an image. Therefore it is possible to upload a crafted PHP script to achieve remote command execution.
CVE-2021-40345
PUBLISHED: 2021-10-26
An issue was discovered in Nagios XI 5.8.5. In the Manage Dashlets section of the Admin panel, an administrator can upload ZIP files. A command injection (within the name of the first file in the archive) allows an attacker to execute system commands.
CVE-2021-42343
PUBLISHED: 2021-10-26
An issue was discovered in Dask (aka python-dask) through 2021.09.1. Single machine Dask clusters started with dask.distributed.LocalCluster or dask.distributed.Client (which defaults to using LocalCluster) would mistakenly configure their respective Dask workers to listen on external interfaces (ty...