LEASH: Enhancing Micro-architectural Attack Detection with a Reactive Process Scheduler
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
LEASH: Enhancing Micro-architectural Attack Detection with a Reactive Process Scheduler Nikhilesh Singh, Chester Rebeiro Indian Institute of Technology, Madras {nik,chester}@cse.iitm.ac.in Abstract Micro-architectural attacks use information leaked through shared resources to break hardware-enforced isolation. These attacks have been used to steal private information ranging arXiv:2109.03998v2 [cs.CR] 20 Sep 2021 from cryptographic keys to privileged Operating System (OS) data in devices ranging from mobile phones to cloud servers. Most existing software countermeasures either have unaccept- able overheads or considerable false positives. Further, they are designed for specific attacks and cannot readily adapt to new variants. (a) LEASH stymies micro-architectural attacks by detecting malicious behav- In this paper, we propose a framework called LEASH, which ior in programs and reducing its CPU-share, thereby reducing the leakage works from the OS scheduler to stymie micro-architectural from the shared resource. attacks with minimal overheads, negligible impact of false positives, and capable of handling a wide range of attacks. LEASH works by starving maliciously behaving threads at runtime, providing insufficient time and resources to carry out an attack. The CPU allocation for a falsely flagged thread found to be benign is boosted to minimize overheads. To demonstrate the framework, we modify Linux’s Completely (b) LEASH detects malicious behavior by monitoring run time characteristics Fair Scheduler with LEASH and evaluate it with seven micro- of all threads (t1 , t2 , t3 ) in the system using HPCs. Threads with a high architectural attacks ranging from Meltdown and Rowhammer threat index get less CPU time. Thread t1 has persistent malicious behavior to a TLB covert channel. The runtime overheads are evaluated and hence gets throttled. Thread t2 gets flagged for an epoch but recovers, with a range of real-world applications and found to be less while thread t3 remains unaffected. than 1% on average. Figure 1: A high-level overview of LEASH. 1. Introduction In a typical micro-architectural attack, the attacker runs a For several years, computer systems designers have relied program called the spy that contends with a victim program on traditional hardware mechanisms such as protection rings, for shared hardware resources such as a common Cache Mem- segmentation, page tables, and enclaves, to isolate software ory [6, 28, 42, 45, 58], Branch Prediction Unit (BPU) [7, 23], entities executing in a CPU. These isolation mechanisms Translation Lookaside Buffer (TLB) [26], or DRAM [37, 59]. have been considerably weakened by a potent class of side- The contention affects the spy’s execution time in a manner channel attacks known as micro-architectural attacks. A micro- that correlates with the victim’s execution. If the victim’s architectural attack makes use of shared hardware resources to execution pattern happens to depend on secret data, then, the leak information across isolation boundaries. They have been correlation can be used to reveal it. used in a variety of applications, from creating covert chan- Most schemes to prevent micro-architectural attacks work nels [32], retrieving secret keys of ciphers [13, 58], reading either in the software or are incorporated in the hardware. Operating System data [38, 43], fingerprinting websites [65], Hardware solutions include bypassing [73] or partition- logging keystrokes [64], reverse engineering Deep Learning ing [35, 44, 70] the shared resource, or randomizing accesses algorithms [30], and breaking Address Space Layout Random- to it [60, 61, 70]. The preventive solutions in software attempt ization [11, 27]. The last couple of years have seen these attack to have constant-time implementations [76] or inject noise vectors applied on a range of devices from mobile phones [42] in measurements to make the attack difficult [31, 46]. While to third-party cloud platforms [64]. They have been used to software solutions have huge overheads and may be environ- leak secrets stored in Trusted Execution Environments like ment specific, hardware solutions are not applicable to legacy SGX [15] and Trustzone [77] and attack remote computers systems. using webpages that host malicious Javascript [55] or Web- An alternate approach that promises to solve these prob- assembly [25]. lems is to detect and thwart an attack in real time. The de-
tection is typically done using performance monitoring reg- add-ons that can detect complex scenarios. isters in the CPU called Hardware Performance Counters • We modify Linux’s Completely Fair Scheduler (CFS) (HPCs) [8, 10, 16, 18, 50, 78]. On detection, the malicious- with LEASH and evaluate its effectiveness with seven micro- behaving thread is terminated or rescheduled to a different architectural attacks including Prime+Probe on the L1 CPU. A severe limitation of current detection schemes is Data [56], L1 Instruction [6], and LLC caches [74]; L1 and the false positives due to which benign processes are falsely TLB Evict+Time attacks [26, 56], Rowhammer [3, 37], Melt- flagged malicious. Contemporary works [8, 18, 50, 52, 78] down [1, 43]. The entire framework just adds around 20 lines attempt to reduce false positives by deploying complex Ma- of C code in the Linux kernel to provide micro-architectural chine Learning models. While this increases overheads, the security for the entire system. impact of the false positive rate is still unacceptably high. This • We have evaluated LEASH with multiple benchmark limitation is exacerbated by the fact that a micro-architectural suites including the SPEC-2017 [17], SPEC-2006 [66], attack occurs rarely compared to the number of benign pro- SPECViewperf-13 [4] and STREAM [48] and found an aver- grams executing. Thus, these detection techniques more often age perfomance overhead of 1%. impact benign program execution than mitigate an attack. The rest of the paper is organized as follows. Section 2 In this paper, we present a micro-architectural attack detec- presents the necessary background on micro-architectural at- tion countermeasure called LEASH that has all the advantages tacks, Hardware Performance Counters, and Linux sched- of detection countermeasures with almost no impact of false uler. In Section 3, we discuss the related works in micro- positives. LEASH makes use of the observation that a spy architectural attack mitigation. Section 4 sums the key idea thread in a micro-architectural attack needs to contend with in the LEASH framework. In Sections 5 and 6 we discuss the the victim for a shared resource. The success of the attack implementation details and present the evaluation and results, depends on the extent to which the spy can force this con- respectively. Section 7 discusses the caveats and limitations tention. If the spy gets insufficient time to execute on the CPU, of LEASH . Section 8 concludes the paper. then the information leakage is reduced, stymieing the attack. Figure (1a) provides an analogy. 2. Background The LEASH framework works from the Operating System 2.1. Micro-architectural attacks (OS) scheduler. At every context switch, it uses the HPCs to quantify the malicious behavior of each thread in the system A micro-architectural side-channel attack leverages leakage using a metric called threat index. It then allocates CPU from shared micro-architectural resources in a system to glean resources for the thread based on its threat index. A high value sensitive information from a process. We illustrate a micro- of threat index indicates that the process gets less CPU time. architectural attack that uses a shared L1-data cache to create For instance, in Figure (1b) thread t1 has a threat index that a covert channel between a sender and a receiver process. continuously increases. The time slice it obtains for execution Apriori, the sender and receiver agree upon two cache sets correspondingly reduces. If the thread were indeed a micro- for communicating 0 and 1 respectively. The receiver first architectural attack, the lesser CPU time would clamp the performs memory operations that fill both cache sets. This is amount of information that is leaked from the victim, thus known as the prime phase. Depending on the message bit, the stymieing the attack. sender performs a memory operation to evict the receiver’s A significant advantage of LEASH is in its handling of false data from the corresponding cache set. In the probe phase, the detection. Suppose a benign thread temporarily exhibits ma- receiver performs the memory operations again and times the licious behavior, its CPU quota falls temporarily, and over accesses. Based on the access time, the receiver can infer the time it regains its full CPU quota. Thread t2 in Figure (1b) transmitted bit since the memory access to the evicted cache demonstrates this recovery after the 4-th epoch. This is un- set would take longer owing to the cache miss. like contemporary works [8, 18, 50, 52, 78], where a false Later in the paper, we use this covert channel as a running detection has adverse irreversible effects. With LEASH , the example to explain LEASH and show how the transmission-rate false detection would only result in a small overhead. With between sender and receiver can be reduced by throttling the the wide range of benchmarks we evaluated, the performance receiver’s CPU time. Further, we apply LEASH to other micro- overheads were found to be less than 1% on average. architectural attacks, including Meltdown [1, 43], Rowham- The important contributions of this paper are as follows: mer [3, 37], L1 data cache attacks on AES [56], L1 instruction • LEASH is an OS scheduler based countermeasure for micro- cache attacks on RSA [6], a TLB covert channel [26] and a architectural attacks that has low overheads and negligible prime-and-probe LLC covert channel [74]. impact of false positives. It can support a variety of micro- 2.2. Hardware Performance Counters architectural attacks and can easily adapt to new variants.The framework is highly versatile and can be tuned to detect multi- Most modern processors have a Performance Monitoring Unit ple different attacks simultaneously. It is designed to provide on-chip to monitor micro-architectural events of running ap- quick response, while still having features for sophisticated plications. Each logical core has a dedicated set of 4 to 8 2
configurable registers that can count the number of times a particular event occurs in a given duration. These registers are called Hardware Performance Counters (HPCs) and can be used to monitor a wide range of events like CPU-cycles, cache accesses, context-switches, and page faults. The number of such events that can be monitored simultaneously is limited by the number of HPCs available in the hardware. Figure 2: Effects of CPU-share to the receiver thread on the L1- Patterns present in the time series traces of performance data cache covert channel’s Bandwidth and Error rate. LEASH counter events have been shown to characterize the behavior uses this as a premise to throttle attack programs on detec- of a thread’s execution. This has been leveraged in several tion. applications such as detecting anomalous behavior in pro- grams [40, 67, 72], side-channel attacks [10, 18, 50, 78] and attacks from the Operating System, such as flushing shared re- malware analysis [12, 21, 67]. LEASH, similarly uses HPCs to sources [19, 32] and soft isolation of Virtual Machines sharing compute a threat index for a thread. Threads which depict a the same hardware [69]. Nomani and Szefer in [53] incorpo- micro-architectural attack like behavior are given a high threat rate a neural-network within the OS scheduler, to detect tasks index and are throttled by reducing their CPU time. requiring the same functional units and scheduling them on different cores to minimize contention. Such solutions are 2.3. Process Scheduling likely to have scalability issues as the workloads increase. LEASH modifies the OS scheduling algorithm to consider the Most contemporary detection-based solutions use HPCs and threat index of a thread for CPU resource allocation. While Machine Learning (ML) models [8, 18, 50, 51, 52]. Among we can incorporate LEASH in most scheduling algorithms, in the several shortcomings [20] of these works, the most serious this paper, we demonstrate LEASH with the Completely Fair limitation is with the false positives which adversely affect Scheduler (CFS); the default scheduler present in the Linux benign program execution. Contemporary works use complex kernel since Version 2.6 [41]. techniques like KNNs, decision trees, neural networks and en- The CFS algorithm tries to achieve the ideal multitasking semble methods to reduce false positives which can still have environment where threads with equal priorities receive the unacceptable impacts. Furthermore, the complex techniques same share of processor time, called timeslice. The timeslice used have considerable overheads and could reduce the predic- allocated to a thread t, denoted ∆ts , is a fraction of a pre- tion rate leading to fast attacks completing undetected. Unlike defined value called targeted latency (∆tl ). When multiple these works, LEASH reacts to a flagged program by throttling threads compete for CPU time, the scheduler allocate times- its CPU-share, thus preventing the attack from completing. lices in proportion to a metric called weight of the thread as Contemporary works, on the other hand, would either migrate follows the program to another CPU or terminate it. The advantage we achieve with the feedback loop of LEASH is that falsely w flagged threads can recover and regain their CPU-share with ∆ts = ∆tl × = ∆tl × s , (1) ∑threads w only slight increase in execution time. Further, due to the reactive control loop, very simple detection mechanisms are where w is the weight of the thread t, ∑threads w is the sum sufficient. of weights of all the threads sharing the CPU, and s is the relative weight of thread t. On thread creation, its weight 4. The LEASH Framework takes a default value (wDEF ) which lies in the middle of 40 discrete levels, ranging from wMIN to wMAX . The ratio of weights Micro-architectural attacks depend considerably on CPU re- at two consecutive levels γ, (0 < γ < 1) is determined by sources. If the attack programs are starved of the CPU, the the OS scheduler at design time. The relationship between success drops considerably. Consider, for example, the L1- these weight levels can be given as wMIN = γ 19 wDEF = γ 39 wMAX . cache timing covert channel discussed in Section 2.1. Figure 2 The weight also gives a notion of thread priorities. A higher shows that starving the receiver thread not only reduces the weight value for thread implies a larger timeslice and a higher communication bandwidth considerably but also increases the frequency of getting scheduled for execution. transmission errors. The reduced bandwidth and the increased error is due to smaller CPU-time shares, which prevents the 3. Related work receiver from performing a sufficient number of timing mea- There is a pressing need to develop lightweight, portable so- surements. lutions for micro-architectural attacks. Most preventive coun- Along with being highly CPU-bound, micro-architectural termeasures that have low overheads require hardware modifi- attacks are procedural and repetitive by design, which gives cations [22, 35, 39, 44, 54, 57, 60, 61, 68, 71, 73] and cannot them a distinct execution behavior. For example, the receiver be incorporated in existing systems. To achieve portability, in the cache covert channel continuously executes a small there have been a few attempts to tackle micro-architectural set of instructions in a loop performing extensive memory 3
Algorithm 1: Detector component in LEASH for thread t at the beginning of the i-th epoch. 1 Initial State: At i = 0, Ti = 0 and flag = 0. Global: Event count threshold: τ, default weight: wDEF . Input: Thread t = {wi−1 , Ti−1 , HPCBuf}. Result: Threat index for i-th epoch: Ti , flag 2 begin 3 µ = mean(HPCBuf) Figure 3: The LEASH reactive loop. The Sensor logs the HPC 4 if flag = 1 then values for a thread t in HPCBuf and passes it to the Detec- 5 Ti = Ti−1 + S(t) // threat index update tor which computes the threat index for t. It then passes the 6 threat index and the mean of HPCBuf to the Supervisor which 7 if wi−1 = wDEF then adjusts the control value (v) for the next epoch, and to the 8 flag = 0 // Thread t is unflagged Actuator which updates the weight of t as per its threat index. 9 Ti = 0 This loop continues throughout the runtime of t. 10 if (flag = 0 and µ ≥ τ ) then 11 flag = 1 // Thread t is flagged 12 return (Ti , flag) is bounded by the number of available HPC registers in the hardware. Reducing the number of HPCs logged would reduce context-switch overheads, while increasing the number of HPCs logged would widen the scope of the attacks that can be detected. Section 5 discusses this further. Detector. At every N context switches (called an epoch) for the Figure 4: LEASH framework effects on an L1-data cache thread, the Detector D() is triggered and uses Algorithm 1 to covert channel (left column) and a benign program bzip2 (right compute the new threat index for the thread. The threat index column) from the SPEC-2006 benchmark suite. in the i-th epoch (Ti ) depends on the mean of the HPCBuf operations. Due to the continuous probing, the number of values (µ), the event-specific threshold (τ), the threat index of memory accesses by the receiver increases to be significantly the previous epoch Ti−1 and the control value vi passed by the higher compared to a regular thread. LEASH uses HPCs to Supervisor function S() as, detect such anomalous behavior and penalizes such threads by decreasing their weight, which in turn reduces their timeslice Ti = D(HPCBuf, Ti−1 , vi ) . (2) (Equation 1). If the thread stops exhibiting the anomalous LEASH flags threads which begin to behave maliciously behavior, its weight is gradually increased, thus regaining its (Line 11 in Algorithm 1). This happens when the mean µ of regular timeslice. To achieve this, LEASH has four components: an unflagged thread first violates the threshold. For every sub- a Sensor, Detector D(), Actuator A(), and a Supervisor S() sequent epoch for this thread, where µ exceeds the threshold, as shown in Figure 3. its threat index is modified as per the output of the Supervisor Sensor. At every context switch, LEASH reads the values of function S() described in Equation 5 (Line 6). LEASH allows a HPCs and logs the event counts since the last context switch. flagged thread to recover if it stops behaving maliciously. The The log is stored in a buffer of size N, called HPCBuf, in the recovery starts when µ for the flagged thread first falls below context of the scheduled-out thread. Thus, every thread exe- the threshold. The thread’s threat index is then reduced in cuting in the CPU has a time-series trace for each HPC logged subsequent epochs until the thread reattains the default weight, during its execution. For example, the first row in Figure 4 which restores its CPU share. When this happens, the thread shows the partial time-series traces for the L1-D covert chan- is unflagged and its threat index is reset (Lines 8 and 9). nel described in Section 2.1 and the bzip2 application from Figure 4 shows two threads, a L1 Data Cache Covert Chan- the SPEC-2006 benchmark suite. The counter corresponds to nel and a benign program bzip2 from the SPEC-2006 [66] an event that counts the delay cycles due to DSB (Decoded benchmark suite. While both threads, with counter values Stream Buffer) to MITE (Micro Instruction Translation En- greater than the threshold get flagged by LEASH , the benign gine) switches on an Intel i7-3770 processor. thread bzip2 recovers its fair share of CPU resources (in the The counters to log are determined prior to the deployment 14th epoch) when its counter values go below the threshold. of LEASH based on the execution characteristics of the attack The CPU share for the covert channel is never restored as its vectors considered. The number of counters that can be logged counter values always remains over the threshold. Thus the 4
covert channel is never unflagged. Its threat index saturates Algorithm 2: Context Switching in LEASH when the minimum weight is reached. Input: Task prev getting preempted from runqueue rq Actuator. For each thread in the i-th epoch, the Actuator by task next, per thread counter cs_count to receives the threat index (Ti ) from the Detector and modifies log the number of context switches. the thread’s weight wi and in turn, the relative weight si Result: rq: prev reweighed, next scheduled, Logged (Equation 1) for the thread. The relative weight for the thread HPC data for both 1 begin at the beginning of the i-the epoch is given as 2 if threads in rq = 1 and flag = 1 then si = A(si−1 , Ti ) = si−1 − γ(si−1 ) × Ti , (3) 3 wake up dummy thread where is γ, (0 < γ < 1) is a constant fixed by the OS sched- 4 if prev.start then uler which determines the amount of fall in the weight with 5 prev.end ← read event count every increase in the threat index. In our evaluation platform, prev.HPCBuf[prev.cs_count] γ = 0.1 which means that, for every rise in threat index val- 6 ← (prev.end − prev.start) ues, the weight drops by 10% until it reaches wMIN . Similarly, 7 increment prev.cs_count when a thread is recovering, the threat index value is negative 8 if prev.cs_count == N then and hence every fall in threat index value increases its weight 9 Detector(prev) // Algorithm 1 by 10% until its weight is restored. The adaptable design 10 Reset HPCBuf, prev.cs_count of LEASH efficiently brings down the cost of a false penaliza- 11 CFS context switching steps tion. Once a benign thread, which is erroneously flagged, is 12 next.start ← read event count unflagged, it regains its CPU share and executes without any 13 return rq additional overheads. Supervisor. LEASH’s Detector identifies threads that are pe- 5. Implementation nalized and rewarded. Ideally, this decision should be based on careful analysis of the HPCBuf data so that malicious threads This section provides the implementation details of LEASH are quickly identified and penalized while benign threads are and some of its primary design choices. not affected. However, supporting sophisticated analysis in the 5.1. Sensing Program Behavior Detector is difficult because it executes in a context switch and therefore affects the performance of the entire system. Thus, Most modern processors have 4 to 8 Hardware Performance as seen in Algorithm 1, the Detector is kept very simple and Counters (HPCs) per logical core that can be configured to comprises of about 6 instructions that are executed at every count one of several micro-architectural events such as cache epoch (N context switches). misses, branch events, or loads and stores to various levels of To support complex analysis on the performance counter memory. To enhance readability, we label 40 selected events data, LEASH uses a Supervisor that does not need to execute as e1 , e2 , · · · , e40 in the paper. We describe these events and in the context switch. The Supervisor provides thread specific associated masks defined by the micro-architecture in detail control value (vi ) that represents the amount by which the in the Appendix. thread index Ti of a flagged thread is degraded or upgraded in 5.2. Enhancing the CFS Scheduler for LEASH the i-th epoch. The output of the S(t) for a thread t is given by In the Linux kernel’s CFS implementation, the context switch vi = S(vi−1 , Ti−1 , Ti−2 , Ti−3 , · · ·) . (4) is implemented in a function called context_switch1 . The function switches context from a thread called prev to a thread A general framework for the Supervisor function for thread called next as shown in Algorithm 2. To support LEASH, the t involves a penalty function P(t) and reward function R(t), context_switch function is modified to perform three addi- as given in Equation( 5). Such a design allows the Supervisor tional operations; (a) it schedules a dummy thread if needed; to be implemented with different policies (b) it logs the performance counter data in the scheduled out thread’s task structure; and (c) it executes the detector when P(t), µ > τ (t is malicious) S(t) = R(t), t is flagged and µ ≤ τ (recovering) (5) the HPCBuf gets full. We describe each of these operations. 0, thread t is unflagged, Dummy Thread. As described in Equation (1), the targeted latency ∆tl is shared among the threads in the Run Queue where µ is the mean of HPCBuf and τ is the threshold. Config- (rq), proportional to their weights. However, when there is urable Supervisor policies allow LEASH to handle new attack only one thread in the Run Queue, the timeslice it receives is vectors. Section 5.3 provides more details about the Supervi- sor. 1 This function is defined in kernel/sched/core.c in the kernel source. 5
5.3. Supervisor Policy executed per context switch Bandwidth (bits/second) Additional instructions 22 Overheads Bandwidth 0.010 The Supervisor in LEASH manages the control values, as shown 20 in Equation (5). Algorithm 1 shows how these values affect 18 0.005 the threat index and, in turn, the weight of a flagged thread. 16 The key components of the Supervisor are the penalty (P(t)) 14 0.000 1 2 3 4 5 6 7 8 9 10 and reward (R(t)) functions that respectively provide the rate log2(N) of degradation and recovery for a flagged thread. Figure 5: The number of additional instructions executed per The penalty and reward functions are pluggable. The sim- context switch and L1-data cache covert channel bandwidth plest form is a static policy, where the outputs of the functions with different values N. are constants. Such a policy is agnostic to the thread execution history. In contrast, an adaptive policy uses the thread execu- 1 (normalized) tion history. An example of such policy is P(t) = P(t) + 1 and Counts Threshold R(t) = R(t) + 1 which increments the penalty values every 0 flagged epoch and the reward value every recovering epoch. 20 threat index Static Figure 6, shows the difference between the two policies for a 0 Adaptive fragment of the benign bzip2 execution, where the counter −20 briefly crossed the threshold for seven epochs. With the static 1 (normalized) policy, the threat index is increased with the same rate, inde- Weight Static Adaptive pendent of the previous epochs. Similarly, when the counter 0 0 5 10 15 20 drops below the threshold, the threat index decreases with Epochs the same rate until the thread is unflagged. With the adaptive Figure 6: The threat index and weight of bzip2 violating the policy, the output of P(t) and hence the rate of increase of event threshold for a few epochs, with Static and Adaptive Su- threat index (Algorithm 1), is incremented in every flagged pervisor policies. epoch. Similarly, when the counter drops below the threshold, equal to ∆tl and is independent of the weight. Penalizing the the threat_index is reduced much more quickly. As seen in thread, in this case, does not affect the timeslice. Figure 6, recovery for this benign thread takes 2 epochs less compared to the static policy. To solve this, LEASH uses a special thread called dummy thread. The thread starts when the system boots, runs an 6. Evaluation and Results infinite loop in privileged mode. It is signaled to wake up only Every micro-architectural attack is characterized by two as- when the Run Queue has exactly one thread and that is flagged pects. The first is the micro-architectural component that (Lines 2-3 in Algorithm 2). In all other cases, the dummy leaks information, for example, shared resources like the task continues to sleep. The dummy task thus ensures that the L1 data [13, 56] and instruction [6] caches, the Last Level weights of a thread always influence its timeslice. Cache (LLC) [45, 75, 74], Translation Lookaside Buffer (TLB) [26], DRAM [37], and Branch Prediction Units (BPU) [23, 14]. The second is the attack strategy used to Log Buffer. The log buffer, HPCBuf, is a per-thread buffer of extract information from the leaking resources. Several strate- size N. It logs the event counter values and when full, marks gies such as Prime+Probe [5, 6, 45], Evict+Time [36, 33], the end of an epoch and triggers the Detector. The value of Flush+Reload [75], and time-driven attacks [13, 23] have N directly affects the overheads and effectiveness of LEASH. been proposed for this purpose. We evaluate LEASH with Figure 5 shows how the average overhead per context switch seven different micro-architectural attacks chosen to get a decreases with an increase in N. This is because a small N, wide coverage of leaking components and attack strategies. implies more frequent calls to the Detector (Lines 9-10 in Table 1 provides the details of attacks evaluated with some Algorithm 2), increasing the amortized number of additional example events to detect them. Further in this section we instructions executed per context-switch. discuss the deployment of LEASH on a system and present the A small value of N also allows LEASH to perform the de- evaluation results for various attacks. We then present the over- tection of malicious threads at a finer granularity. Figure 5 heads on various workloads including the SPEC-2006 [66], shows that as N increases, the bandwidth of the covert channel SPEC-2017 [17], SPECViewperf-13 [4] and STREAM [48] also increases. This is because the coarse detection granular- benchmark suites. ity allows the covert channel to execute for sufficient time to The evaluation is done on an Intel Core i7-3770 processor, transfer information from sender to receiver. As seen in the which deploys Intel’s Ivy Bridge micro-architecture. The Figure 5, a buffer size between 16 and 64 entries provides a processor has four physical cores, each with two hyperthreads. good trade-off between the overheads and the effectiveness We patch the Linux kernel, version 4.19.2, with LEASH and of LEASH. boot Ubuntu 16.04 Operating System. We configure LEASH 6
Table 1: Micro-architectural attacks evaluated; their leaking component; and the attack strategy used. For our evaluation we have used e2 , e11 , e12 , and e39 . Attack Leaking Strategy Example Event(s) Component to detect the attack L1-D cache Covert e12 : cycles for which the instruction decode queue is empty, or e26 : L1-D cache Prime+Probe Channel [56] writebacks from L1D to L2 cache lines in modified coherency state. L1-D cache attack on AES [56] L1-D cache Evict+Time e12 , or e28 : L2 store read for ownership (RFO) requests from the thread. L1-I cache attack on RSA e39 : the number of prefetcher requests that miss the L2 cache, or e13 : L1-I cache Prime+Probe [5, 6] the number of instruction cache misses, LLC Covert Channel [74] LLC Prime+Probe e39 , or e37 : the cache misses for references to the LLC e2 : the mispredicted branch instructions at retirement, or e15 : direct and Meltdown [1, 43] Memory Flush+Reload indirect near call instructions Rowhammer [3, 37] DRAM Hammer access e2 , or e17 : the dirty L2 cache lines evicted by demand. TLB Covert channel [26] TLB Evict+Time e11 : the misses in all TLB levels Figure 7: A heatmap of the Detectability Score of 40 selected events for each of the attacks in Table 1. Identically annotated events for multiple attacks can be used to detect all those attacks, such as event e2 for Rowhammer and Meltdown. 10 Bits retrieved CFS Leash 5 0 0 250 500 750 1000 1250 1500 1750 Time (seconds) (a) L1-data cache attack on AES (b) L1-instruction cache attack on RSA (c) LLC covert channel transmitting 10 bits. Number of bit-flips Characters retrieved 6 CFS 150 CFS Bits retrieved CFS Bit flips Leash 10 Leash 4 100 Leash 2 50 5 0 0 0 0 25 50 75 100 125 150 175 200 0 10 20 30 40 50 60 0 50 100 150 200 250 300 350 400 Iterations Time (in seconds) Time (in seconds) (d) Rowhammer for 200 iterations (e) Meltdown (f) TLB covert channel Figure 8: The effects of LEASH on different attacks. with an adaptive Supervisor policy with P(t) = P(t) + 1 and programs. In the subsequent sections, we present techniques R(t) = R(t) + 1 (Section 5.3) for the evaluation. to choose such events and the evaluation results. 6.1. Deploying LEASH Selecting HPCs. As a representative for benign programs, we use all programs of a CPU benchmark suite that we assume Prior to the deployment of LEASH on a system, the designer cover a variety of benign program behavior. For each micro- models the threat in terms of a set of attack vectors. Events architectural attack, we analyze all supported events and rank need to be chosen to detect all attack vectors in the set. While them based on distinguishability from the benign set using typical microprocessors have a large number of countable Principal Component Analysis [24]. Figure 7 summarises events, they have a limited number of configurable Hardware the distinguishability score for the 7 attack vectors in Table 1 Performance Counter (HPC) registers. Our evaluation plat- using SPEC-2006 CPU benchmark suite as the set of benign form for instance, has 208 events and four configurable HPC programs [66] for the best 40 events of the 208 supported on registers [34]. The designer thus has to choose at most four our platform. Since there are only 4 HPC registers available, events that can best distinguish the set of attacks from benign we configure at most 4 events that can best distinguish the 7 7
30 Base on CFS Bits transmitted 20 Variant1 on CFS Variant2 on CFS Base on Leash 10 Variant1 on Leash Variant2 on Leash 0 0 100 200 300 400 500 600 700 Time (seconds) Figure 10: Performance overheads due to LEASH on various benchmark suites. Figure 9: Effects of LEASH on multiple variants of the L1-data cache covert channel transmitting 30 bits. STREAM [48]. SPEC-2006 and SPEC-2017 are CPU bench- attacks. From Figure 7, we notice that events e2 , e11 , e12 , and mark suites with different integer and floating-point programs e39 satisfy this requirement. Event e2 covers attacks Meltdown like Machine Learning algorithms. SPECViewperf-13 is a and Rowhammer event e11 covers attacks L1-I Cache attack collection of graphics-oriented benchmarks programs, while and TLB Covert Channel, event e12 covers attacks L1-D Cover STREAM is designed to perform memory-intestive tasks. The Channel and L1-D attack on AES while the event e39 can cover overheads seen in Figure 10 is due to (1) the few additional the attacks LLC Covert Channel and Rowhammer. Many other instructions in each context switch (Figure 5) and (2) benign such event combinations are also possible. threads being falsely flagged. In contrast to contemporary detection counter-measures [8, 10, 16, 18, 50, 78], all falsely Detecting Attacks. LEASH is able to throttle all the attacks in flagged programs recover and are not adversely affected. The Table 1. Figure 8 describes the impact of LEASH on these at- only case where over 25% overheads occurs is blender_r, tacks. For example, the guessing entropy [47] for 1 byte of an a 3D rendering program, which is falsely flagged in 30% of T-table based AES key [2], using the L1-D Evict+Time attack its epochs due to the prolonged malicious looking behavior. increases from 10 to 131 (Figure 8a). The error in guessing Out of the programs evaluated, over 45% were flagged at- 1-bit of an RSA key used in a square-and-multiply implemen- least once. However, run-time overheads on average across tation [49] increases to 50% (Figure 8b). In both cases, the all benchmarks remain low at 1%. Another reason for the low attacks are as good as an attacker that randomly guesses the overheads is that LEASH executes during a context switch in key. The covert channels at LLC [74] and TLB [26] see a the kernel. Unlike [10, 16, 18, 50, 78], it does not require a drastic fall in the number of bits communicated after getting background task that needs scheduling and is independent of throttled by LEASH (Figure 8c and 8f). The Rowhammer [3] the system load. attack, which induces a bit-flip in a DRAM2 row every 29 iterations (on average) is unable to cause a single bit-flip even after a day of execution (Figure 8d). Further, the Meltdown [1] 7. Caveats and Limitations attack that dumps contents of the kernel memory, is throttled by LEASH to become ineffective (Figure 8e). • Time-Driven Attacks. Unlike the attacks discussed in Sec- tion 6, in a time-driven attack, the attacker uses the victim’s LEASH with Attack Variants. While configuring LEASH, execution time [14, 62, 63].LEASH can not detect such attacks events are chosen by profiling a specific realization of an because of the absence of a spy thread to flag. attack. However, with the same configuration LEASH can de- • High-resolution Attacks. If a high-resolution attack like [9] tect different variants of the attacks as well. For example, the works in less time than an epoch, LEASH would not be able covert channel described in Section 2.1, can have multiple to stop it unless the epoch is shortened. However, this can variants by tweaking the communication protocol. For ex- increase the overheads (Figure 5). ample, we design a Variant 1, which transmits redundant • Undetectable Attacks. While the attacks evaluated were bits for reliability while a Variant 2, which uses multiple identifiable by HPCs, there may be attacks that evade them. sets to transmit two bits at a time. LEASH can detect these LEASH would not be able to thwart such attacks. variants of the covert channel as seen in Figure 9. Without • Complex adversarial attacks on LEASH. While the Supervi- LEASH, the bandwidth is 0.43 bits/second for the base variant, sor component in LEASH can be designed to detect multiple 1.76 bits/second for Variant 1 and to 0.087 bits/second for adversarial attacks, there may be complex strategies such as us- Variant 2. With LEASH, all three covert channels are stymied ing distributed colluding threads [29]. The Supervisor would and almost no bit gets transmitted correctly. need to be enhanced to handle such distributed attacks. 6.2. Performance Overheads • Detecting a large number of attacks. As the attack vectors to detect increase, the number of events to be counted may We evaluated LEASH with several benchmark suites including exceed the HPCs available in the hardware, requiring multi- SPEC-2006 [66], SPEC-2017 [17], SPECViewperf-13 [4] and plexing.This may increase context switch times and reduce 2 Transcend DDR3-1333 645927-0350 DRAM chip. the precision of the results. 8
8. Conclusions [14] Sarani Bhattacharya and Debdeep Mukhopadhyay. Who watches the watchmen?: Utilizing performance monitors for compromising keys of Detection based countermeasures for micro-architectural at- RSA on intel platforms. In Cryptographic Hardware and Embedded Systems - CHES 2015 - 17th International Workshop, Saint-Malo, tacks are promising as they can adapt easily to a wide range France, September 13-16, 2015, Proceedings, pages 248–266, 2015. of attacks. However, a major shortcoming is the unaccept- [15] Ferdinand Brasser, Urs Müller, Alexandra Dmitrienko, Kari Kosti- ainen, Srdjan Capkun, and Ahmad-Reza Sadeghi. Software grand ably high false positive rate. Contemporary research attempts exposure: SGX cache attacks are practical. In Proceedings of the to address this limitation on by deploying sophisticated anal- 11th USENIX Conference on Offensive Technologies, WOOT’17, pages 11–11, Berkeley, CA, USA, 2017. USENIX Association. ysis techniques. While this has found to only marginally [16] Samira Briongos, Gorka Irazoqui, Pedro Malagón, and Thomas Eisen- improve false positives, the overheads and latencies are af- barth. Cacheshield: Detecting cache attacks through self-observation. fected considerably due to complex techniques used. Unlike In Proceedings of the Eighth ACM Conference on Data and Applica- tion Security and Privacy, CODASPY 2018, Tempe, AZ, USA, March these approaches, the reactive design of LEASH facilitates 19-21, 2018, pages 224–235, 2018. lightweight analysis which allows falsely flagged threads to [17] James Bucek, Klaus-Dieter Lange, and Jóakim v. Kistowski. Spec recover quickly with minimum overheads of less than 1% cpu2017: Next-generation compute benchmark. In Companion of the 2018 ACM/SPEC International Conference on Performance Engineer- while still accurately detecting attacks. To the best of our ing, ICPE ’18, page 41–42, New York, NY, USA, 2018. Association knowledge, LEASH is the first reactive countermeasure for for Computing Machinery. [18] Marco Chiappetta, Erkay Savas, and Cemal Yilmaz. Real time detec- micro-architectural attacks in the Operating System scheduler tion of cache-based side-channel attacks using hardware performance and is therefore, invariant to system load. Additionally, it counters. Appl. Soft Comput., 49:1162–1174, 2016. just adds around 15 instructions per context switch thus has [19] David Cock. Practical probability: Applying pgcl to lattice scheduling. In Interactive Theorem Proving - 4th International Conference, ITP a negligible impact on context switch latencies. It thus opens 2013, Rennes, France, July 22-26, 2013. Proceedings, pages 311–327, avenues to security aware OS scheduler designs. 2013. [20] Sanjeev Das, Jan Werner, Manos Antonakakis, Michalis Polychronakis, and Fabian Monrose. Sok: The challenges, pitfalls, and perils of using References hardware performance counters for security. In 2019 IEEE Symposium on Security and Privacy, SP 2019, San Francisco, CA, USA, May 19-23, [1] Meltdown Implementation - Institute of Applied Information Process- 2019, pages 20–38, 2019. ing and Communications (IAIK). Accessed: 2020-08-13. [21] John Demme, Matthew Maycock, Jared Schmitz, Adrian Tang, Adam [2] OpenSSL T-table implementation of AES. Accessed: 2020-08-13. Waksman, Simha Sethumadhavan, and Salvatore J. Stolfo. On the [3] Rowhammer test implementation - Google. Accessed: 2020-08-13. feasibility of online malware detection with performance counters. In [4] SPECViewperf 13 Linux Edition Benchmark. The 40th Annual International Symposium on Computer Architecture, ISCA’13, Tel-Aviv, Israel, June 23-27, 2013, pages 559–570, 2013. [5] Onur Aciiçmez. Yet another microarchitectural attack: : exploiting i-cache. In Proceedings of the 2007 ACM workshop on Computer [22] Leonid Domnitser, Aamer Jaleel, Jason Loew, Nael B. Abu-Ghazaleh, Security Architecture, CSAW 2007, Fairfax, VA, USA, November 2, and Dmitry Ponomarev. Non-monopolizable caches: Low-complexity 2007, pages 11–18, 2007. mitigation of cache side channel attacks. TACO, 8(4):35:1–35:21, 2012. [6] Onur Aciiçmez, Billy Bob Brumley, and Philipp Grabher. New re- [23] Dmitry Evtyushkin, Ryan Riley, Nael B. Abu-Ghazaleh, and Dmitry sults on instruction cache attacks. In Cryptographic Hardware and Ponomarev. Branchscope: A new side-channel attack on directional Embedded Systems, CHES 2010, 12th International Workshop, Santa branch predictor. In Proceedings of the Twenty-Third International Barbara, CA, USA, August 17-20, 2010. Proceedings, pages 110–124, Conference on Architectural Support for Programming Languages and 2010. Operating Systems, ASPLOS 2018, Williamsburg, VA, USA, March [7] Onur Aciiçmez, Çetin Kaya Koç, and Jean-Pierre Seifert. Predicting 24-28, 2018, pages 693–707, 2018. secret keys via branch prediction. In Topics in Cryptology - CT-RSA 2007, The Cryptographers’ Track at the RSA Conference 2007, San [24] Karl Pearson F.R.S. Liii. on lines and planes of closest fit to systems Francisco, CA, USA, February 5-9, 2007, Proceedings, pages 225–242, of points in space. The London, Edinburgh, and Dublin Philosophical 2007. Magazine and Journal of Science, 2(11):559–572, 1901. [8] Manaar Alam, Sarani Bhattacharya, Debdeep Mukhopadhyay, and [25] Daniel Genkin, Lev Pachmanov, Eran Tromer, and Yuval Yarom. Drive- Sourangshu Bhattacharya. Performance counters to rescue: A machine by key-extraction cache attacks from portable code. In Applied Cryp- learning based safeguard against micro-architectural side-channel- tography and Network Security - 16th International Conference, ACNS attacks. IACR Cryptology ePrint Archive, 2017:564, 2017. 2018, Leuven, Belgium, July 2-4, 2018, Proceedings, pages 83–102, [9] Gorka Irazoqui Apecechea, Mehmet Sinan Inci, Thomas Eisenbarth, 2018. and Berk Sunar. Wait a minute! A fast, cross-vm attack on AES. [26] Ben Gras, Kaveh Razavi, Herbert Bos, and Cristiano Giuffrida. Trans- In Angelos Stavrou, Herbert Bos, and Georgios Portokalidis, editors, lation leak-aside buffer: Defeating cache side-channel protections with Research in Attacks, Intrusions and Defenses - 17th International TLB attacks. In 27th USENIX Security Symposium, USENIX Secu- Symposium, RAID 2014, Gothenburg, Sweden, September 17-19, 2014. rity 2018, Baltimore, MD, USA, August 15-17, 2018., pages 955–972, Proceedings, volume 8688 of Lecture Notes in Computer Science, 2018. pages 299–319. Springer, 2014. [27] Ben Gras, Kaveh Razavi, Erik Bosman, Herbert Bos, and Cristiano Giuffrida. ASLR on the line: Practical cache attacks on the MMU. [10] Zelalem Birhanu Aweke, Salessawi Ferede Yitbarek, Rui Qiao, Reetu- In 24th Annual Network and Distributed System Security Symposium, parna Das, Matthew Hicks, Yossi Oren, and Todd Austin. Anvil: NDSS 2017, San Diego, California, USA, February 26 - March 1, 2017, Software-based protection against next-generation rowhammer attacks. 2017. In Proceedings of the Twenty-First International Conference on Archi- [28] Daniel Gruss, Raphael Spreitzer, and Stefan Mangard. Cache template tectural Support for Programming Languages and Operating Systems, attacks: Automating attacks on inclusive last-level caches. In Proceed- ASPLOS ’16, pages 743–755, New York, NY, USA, 2016. ACM. ings of the 24th USENIX Conference on Security Symposium, SEC’15, [11] Antonio Barresi, Kaveh Razavi, Mathias Payer, and Thomas R. Gross. pages 897–912, Berkeley, CA, USA, 2015. USENIX Association. CAIN: silently breaking ASLR in the cloud. In 9th USENIX Workshop [29] David Gullasch, Endre Bangerter, and Stephan Krenn. Cache games – on Offensive Technologies, WOOT ’15, Washington, DC, USA, August bringing access-based cache attacks on aes to practice. In Proceedings 10-11, 2015., 2015. of the 2011 IEEE Symposium on Security and Privacy, SP ’11, pages [12] Kanad Basu, Prashanth Krishnamurthy, Farshad Khorrami, and 490–505, Washington, DC, USA, 2011. IEEE Computer Society. Ramesh Karri. A theoretical study of hardware performance counters- [30] Sanghyun Hong, Michael Davinroy, Yigitcan Kaya, Stuart Nevans based malware detection. IEEE Trans. Information Forensics and Locke, Ian Rackow, Kevin Kulda, Dana Dachman-Soled, and Tudor Security, 15:512–525, 2020. Dumitras. Security analysis of deep neural networks operating in the [13] Daniel J. Bernstein. Cache-timing Attacks on AES, 2005. presence of cache side-channel attacks. CoRR, abs/1810.03487, 2018. 9
[31] Wei-Ming Hu. Reducing timing channels with fuzzy time. In Proceed- [51] Maria Mushtaq, Ayaz Akram, Muhammad Khurram Bhatti, Rao ings of the 1991 IEEE Symposium on Security and Privacy, Oakland, Naveed Bin Rais, Vianney Lapotre, and Guy Gogniat. Run-time California, USA, May 20-22, 1991, pages 8–20, 1991. detection of prime + probe side-channel attack on AES encryption [32] Wei-Ming Hu. Lattice Scheduling and Covert Channels. In Proceed- algorithm. In 2018 Global Information Infrastructure and Networking ings of the 1992 IEEE Symposium on Security and Privacy, SP ’92, Symposium, GIIS 2018, Thessaloniki, Greece, October 23-25, 2018, pages 52–61, Washington, DC, USA, 1992. IEEE Computer Society. pages 1–5. IEEE, 2018. [33] Ralf Hund, Carsten Willems, and Thorsten Holz. Practical timing [52] Maria Mushtaq, Jeremy Bricq, Muhammad Khurram Bhatti, Ayaz side channel attacks against kernel space aslr. In Proceedings of the Akram, Vianney Lapotre, Guy Gogniat, and Pascal Benoit. WHISPER: 2013 IEEE Symposium on Security and Privacy, SP ’13, page 191–205, A tool for run-time detection of side-channel attacks. IEEE Access, USA, 2013. IEEE Computer Society. 8:83871–83900, 2020. [34] Intel Corporation. Intel 64 and IA-32 Architectures Software Devel- [53] Junaid Nomani and Jakub Szefer. Predicting program phases and oper’s Manual - Volume 3B, August 2007. defending against side-channel attacks using hardware performance [35] Intel Corporation. Intel CAT: Improving Real-Time Performance by counters. In Proceedings of the Fourth Workshop on Hardware and Utilizing Cache Allocation Technology., 2015. Architectural Support for Security and Privacy, HASP@ISCA 2015, [36] Himanshi Jain, D. Anthony Balaraju, and Chester Rebeiro. Spy cartel: Portland, OR, USA, June 14, 2015, pages 9:1–9:4, 2015. Parallelizing evict+time-based cache attacks on last-level caches. J. [54] Jason Oberg, Sarah Meiklejohn, Timothy Sherwood, and Ryan Kastner. Hardware and Systems Security, 3(2):147–163, 2019. A practical testing framework for isolating hardware timing channels. [37] Yoongu Kim, Ross Daly, Jeremie Kim, Chris Fallin, Ji Hye Lee, In Design, Automation and Test in Europe, DATE 13, Grenoble, France, Donghyuk Lee, Chris Wilkerson, Konrad Lai, and Onur Mutlu. Flip- March 18-22, 2013, pages 1281–1284, 2013. ping bits in memory without accessing them: An experimental study [55] Yossef Oren, Vasileios P. Kemerlis, Simha Sethumadhavan, and An- of dram disturbance errors. In Proceeding of the 41st Annual Inter- gelos D. Keromytis. The spy in the sandbox: Practical cache attacks national Symposium on Computer Architecuture, ISCA ’14, pages in javascript and their implications. In Proceedings of the 22nd ACM 361–372, Piscataway, NJ, USA, 2014. IEEE Press. SIGSAC Conference on Computer and Communications Security, Den- [38] Paul Kocher, Jann Horn, Anders Fogh, , Daniel Genkin, Daniel Gruss, ver, CO, USA, October 12-16, 2015, pages 1406–1418, 2015. Werner Haas, Mike Hamburg, Moritz Lipp, Stefan Mangard, Thomas [56] Dag Arne Osvik, Adi Shamir, and Eran Tromer. Cache attacks and Prescher, Michael Schwarz, and Yuval Yarom. Spectre attacks: Ex- countermeasures: The case of AES. In Topics in Cryptology - CT-RSA ploiting speculative execution. In 40th IEEE Symposium on Security 2006, The Cryptographers’ Track at the RSA Conference 2006, San and Privacy (S&P’19), 2019. Jose, CA, USA, February 13-17, 2006, Proceedings, pages 1–20, 2006. [39] Jingfei Kong, Onur Aciiçmez, Jean-Pierre Seifert, and Huiyang Zhou. [57] Dan Page. Partitioned cache architecture as a side-channel defence Hardware-software integrated approaches to defend against software mechanism. IACR Cryptology ePrint Archive, 2005:280, 2005. cache-based side channel attacks. In 15th International Conference [58] Colin Percival. Cache Missing for Fun and Profit. In Proc. of BSDCan, on High-Performance Computer Architecture (HPCA-15 2009), 14-18 2005. February 2009, Raleigh, North Carolina, USA, pages 393–404, 2009. [59] Peter Pessl, Daniel Gruss, Clémentine Maurice, Michael Schwarz, and [40] Prashanth Krishnamurthy, Ramesh Karri, and Farshad Khorrami. Stefan Mangard. DRAMA: exploiting DRAM addressing for cross-cpu Anomaly detection in real-time multi-threaded processes using hard- attacks. In 25th USENIX Security Symposium, USENIX Security 16, ware performance counters. IEEE Trans. Information Forensics and Austin, TX, USA, August 10-12, 2016., pages 565–581, 2016. Security, 15:666–680, 2020. [60] Moinuddin K. Qureshi. CEASER: mitigating conflict-based cache [41] The Linux Kernel Archives, 2019. attacks via encrypted-address and remapping. In 51st Annual [42] Moritz Lipp, Daniel Gruss, Raphael Spreitzer, Clémentine Maurice, IEEE/ACM International Symposium on Microarchitecture, MICRO and Stefan Mangard. Armageddon: Cache attacks on mobile devices. 2018, Fukuoka, Japan, October 20-24, 2018, pages 775–787, 2018. In Proceedings of the 25th USENIX Conference on Security Sympo- sium, SEC’16, pages 549–564, Berkeley, CA, USA, 2016. USENIX [61] Moinuddin K. Qureshi. New attacks and defense for encrypted-address Association. cache. In Proceedings of the 46th International Symposium on Com- [43] Moritz Lipp, Michael Schwarz, Daniel Gruss, Thomas Prescher, puter Architecture, ISCA 2019, Phoenix, AZ, USA, June 22-26, 2019, Werner Haas, Anders Fogh, Jann Horn, Stefan Mangard, Paul Kocher, pages 360–371, 2019. Daniel Genkin, Yuval Yarom, and Mike Hamburg. Meltdown: Reading [62] Chester Rebeiro and Debdeep Mukhopadhyay. Boosting profiled cache kernel memory from user space. In 27th USENIX Security Symposium timing attacks with A priori analysis. IEEE Trans. Information Foren- (USENIX Security 18), 2018. sics and Security, 7(6):1900–1905, 2012. [44] Fangfei Liu, Qian Ge, Yuval Yarom, Frank McKeen, Carlos V. Rozas, [63] Chester Rebeiro and Debdeep Mukhopadhyay. Micro-architectural Gernot Heiser, and Ruby B. Lee. Catalyst: Defeating last-level cache analysis of time-driven cache attacks: Quest for the ideal implementa- side channel attacks in cloud computing. In 2016 IEEE International tion. IEEE Trans. Computers, 64(3):778–790, 2015. Symposium on High Performance Computer Architecture, HPCA 2016, [64] Thomas Ristenpart, Eran Tromer, Hovav Shacham, and Stefan Savage. Barcelona, Spain, March 12-16, 2016, pages 406–418, 2016. Hey, you, get off of my cloud: exploring information leakage in third- [45] Fangfei Liu, Yuval Yarom, Qian Ge, Gernot Heiser, and Ruby B. Lee. party compute clouds. In Proceedings of the 2009 ACM Conference on Last-level cache side-channel attacks are practical. In 2015 IEEE Computer and Communications Security, CCS 2009, Chicago, Illinois, Symposium on Security and Privacy, SP 2015, San Jose, CA, USA, May USA, November 9-13, 2009, pages 199–212, 2009. 17-21, 2015, pages 605–622, 2015. [65] Anatoly Shusterman, Lachlan Kang, Yarden Haskal, Yosef Meltser, [46] Robert Martin, John Demme, and Simha Sethumadhavan. Timewarp: Prateek Mittal, Yossi Oren, and Yuval Yarom. Robust website fin- Rethinking timekeeping and performance monitoring mechanisms to gerprinting through the cache occupancy channel. In 28th USENIX mitigate side-channel attacks. In 39th International Symposium on Security Symposium, USENIX Security 2019, Santa Clara, CA, USA, Computer Architecture (ISCA 2012), June 9-13, 2012, Portland, OR, August 14-16, 2019., pages 639–656, 2019. USA, pages 118–129, 2012. [66] Cloyce D. Spradling. Spec cpu2006 benchmark tools. SIGARCH [47] James L Massey. Guessing and entropy. In Information Theory, 1994. Comput. Archit. News, 35(1):130–134, March 2007. Proceedings., 1994 IEEE International Symposium on, page 204. IEEE, [67] Adrian Tang, Simha Sethumadhavan, and Salvatore J. Stolfo. Unsu- 1994. pervised anomaly-based malware detection using hardware features. [48] John D. McCalpin. Stream: Sustainable memory bandwidth in high performance computers. Technical report, University of Virginia, Char- In Research in Attacks, Intrusions and Defenses - 17th International lottesville, Virginia, 1991-2007. A continually updated technical report. Symposium, RAID 2014, Gothenburg, Sweden, September 17-19, 2014. http://www.cs.virginia.edu/stream/. Proceedings, pages 109–129, 2014. [49] Alfred J. Menezes, Scott A. Vanstone, and Paul C. Van Oorschot. [68] Mohit Tiwari, Xun Li, Hassan M. G. Wassel, Frederic T. Chong, and Handbook of Applied Cryptography. CRC Press, Inc., USA, 1st edition, Timothy Sherwood. Execution leases: a hardware-supported mecha- 1996. nism for enforcing strong non-interference. In 42st Annual IEEE/ACM [50] Maria Mushtaq, Ayaz Akram, Muhammad Khurram Bhatti, Maham International Symposium on Microarchitecture (MICRO-42 2009), De- Chaudhry, Vianney Lapotre, and Guy Gogniat. Nights-watch: a cache- cember 12-16, 2009, New York, New York, USA, pages 493–504, 2009. based side-channel intrusion detector using hardware performance [69] Venkatanathan Varadarajan, Thomas Ristenpart, and Michael M. Swift. counters. In Proceedings of the 7th International Workshop on Hard- Scheduler-based defenses against cross-vm side-channels. In Proceed- ware and Architectural Support for Security and Privacy, HASP@ISCA ings of the 23rd USENIX Security Symposium, San Diego, CA, USA, 2018, Los Angeles, CA, USA, June 02-02, 2018, pages 1:1–1:8, 2018. August 20-22, 2014, pages 687–702, 2014. 10
[70] Zhenghong Wang and Ruby B. Lee. Covert and side channels due to [75] Yuval Yarom and Katrina Falkner. FLUSH+RELOAD: A high resolu- processor architecture. In 22nd Annual Computer Security Applica- tion, low noise, L3 cache side-channel attack. In Proceedings of the tions Conference (ACSAC 2006), 11-15 December 2006, Miami Beach, 23rd USENIX Security Symposium, San Diego, CA, USA, August 20-22, Florida, USA, pages 473–482, 2006. 2014., pages 719–732, 2014. [71] Zhenghong Wang and Ruby B. Lee. A novel cache architecture with enhanced performance and security. In 41st Annual IEEE/ACM Interna- [76] Bennet Yee, David Sehr, Gregory Dardyk, J. Bradley Chen, Robert tional Symposium on Microarchitecture (MICRO-41 2008), November Muth, Tavis Ormandy, Shiki Okasaka, Neha Narula, and Nicholas 8-12, 2008, Lake Como, Italy, pages 83–93, 2008. Fullagar. Native client: A sandbox for portable, untrusted x86 native code. In 30th IEEE Symposium on Security and Privacy (S&P 2009), [72] Lai Leng Woo, Mark Zwolinski, and Basel Halak. Early detection 17-20 May 2009, Oakland, California, USA, pages 79–93, 2009. of system-level anomalous behaviour using hardware performance counters. In 2018 Design, Automation & Test in Europe Conference & [77] Ning Zhang, Kun Sun, Deborah Shands, Wenjing Lou, and Y. Thomas Exhibition, DATE 2018, Dresden, Germany, March 19-23, 2018, pages Hou. Trusense: Information leakage from trustzone. In 2018 IEEE 485–490, 2018. Conference on Computer Communications, INFOCOM 2018, Hon- [73] Mengjia Yan, Jiho Choi, Dimitrios Skarlatos, Adam Morrison, Christo- olulu, HI, USA, April 16-19, 2018, pages 1097–1105, 2018. pher W. Fletcher, and Josep Torrellas. Invisispec: Making specu- lative execution invisible in the cache hierarchy. In 51st Annual [78] Tianwei Zhang, Yinqian Zhang, and Ruby B. Lee. Cloudradar: A IEEE/ACM International Symposium on Microarchitecture, MICRO real-time side-channel attack detection system in clouds. In Research 2018, Fukuoka, Japan, October 20-24, 2018, pages 428–441, 2018. in Attacks, Intrusions, and Defenses - 19th International Symposium, [74] Yuval Yarom. Mastik: A micro-architectural side-channel toolkit, RAID 2016, Paris, France, September 19-21, 2016, Proceedings, pages 2016. 118–140, 2016. 11
You can also read