Iago Attacks: Why The System Call API Is a Bad Untrusted RPC Interface
Skip to main content
eScholarship
Open Access Publications from the University of California

Iago Attacks: Why The System Call API Is a Bad Untrusted RPC Interface

Abstract

In recent years, researchers have proposed systems for running trusted code on an untrusted operating system. Protection mechanisms deployed by such systems keep a malicious kernel from directly manipulating a trusted application’s state. Under such systems, the application and kernel are, conceptually, peers, and the system call API defines an RPC interface between them. We introduce Iago attacks, attacks that a malicious kernel can mount in this model. We show how a carefully chosen sequence of integer return values to Linux system calls can lead a supposedly protected process to act against its interests, and even to undertake arbitrary computation at the malicious kernel’s behest. Iago attacks are evidence that protecting applications from malicious kernels is more difficult than previously realized.

Pre-2018 CSE ID: CS2012-0984

Main Content
For improved accessibility of PDF content, download the file to your device.
Current View