Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Nathan Dautenhahn

dblp:20/10299 · DBLP profile ↗
← Back
19ranked-venue papers
1as first author
6since 2021 · last 2025
0000-0001-8456-6957ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Security and privacy · 11 · 5 since 2021Systems, architecture and hardware · 6 · 1 first-author · 1 since 2021Software engineering, systems software and programming languages · 5 · 1 first-authorComputer networks · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Network and information security
10 papers
Systems and software security · 87% Web and mobile security · 9% Network security · 4%
Software engineering, system software, and programming languages
9 papers
Operating systems · 81% Compilers and program optimization · 9% Debugging and program repair · 5%
Computer networks
1 paper
Software-defined and programmable networks · 100%
Computer architecture, parallel and distributed computing, and storage systems
4 papers
Cloud and datacenter computing · 28% Parallel and multicore computing · 21% Distributed systems · 20%

Topics — the 30 heaviest of 35, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Operating systems › system security › operating system security › protection mechanism › isolation
process isolation
1.122024
Endokernel: A Thread Safe Monitor for Lightweight Subprocess Isolation · USENIX Security Symposium 2024
BreakApp: Automated, Flexible Application Compartmentalization · NDSS 2018
Operating systems › kernel
kernel design
0.812024
Endokernel: A Thread Safe Monitor for Lightweight Subprocess Isolation · USENIX Security Symposium 2024
Systems and software security › isolation
compartmentalization
0.712023
Assessing the Impact of Interface Vulnerabilities in Compartmentalized Software · NDSS 2023
Systems and software security
operating system security
0.522025
SoK: Software Compartmentalization · SP 2025
Virtual ghost: protecting applications from hostile operating systems · ASPLOS 2014
Software-defined and programmable networks › programmable data plane
deep packet inspection
0.412020
DeepMatch: practical deep packet inspection in the data plane using network processors · CoNEXT 2020
Software-defined and programmable networks
programmable data plane
0.412020
DeepMatch: practical deep packet inspection in the data plane using network processors · CoNEXT 2020
Software-defined and programmable networks › programmable data plane › deep packet inspection
regular expression matching
0.412020
DeepMatch: practical deep packet inspection in the data plane using network processors · CoNEXT 2020
Cloud and datacenter computing
virtualization
0.312017
Deconstructing Xen · NDSS 2017
Web and mobile security
browser security
0.322012
Using replicated execution for a more secure and reliable web browser · NDSS 2012
Fortifying web-based applications automatically · CCS 2011
Systems and software security › operating system security
privilege separation
0.312025
SoK: Software Compartmentalization · SP 2025
Systems and software security
memory protection
0.212015
Nested Kernel: An Operating System Architecture for Intra-Kernel Privilege Separation · ASPLOS 2015
Compilers and program optimization
automatic code optimization
0.212015
Slipstream: Automatic Interprocess Communication Optimization · USENIX ATC 2015
Operating systems
interprocess communication
0.212015
Slipstream: Automatic Interprocess Communication Optimization · USENIX ATC 2015
Operating systems › system security › operating system security
kernel security
0.212015
Nested Kernel: An Operating System Architecture for Intra-Kernel Privilege Separation · ASPLOS 2015
Systems and software security › exploitation
control-flow hijacking
0.212014
KCoFI: Complete Control-Flow Integrity for Commodity Operating System Kernels · IEEE Symposium on Security and Privacy 2014
Systems and software security › memory safety
control-flow integrity
0.212014
KCoFI: Complete Control-Flow Integrity for Commodity Operating System Kernels · IEEE Symposium on Security and Privacy 2014
Systems and software security › memory safety › control-flow integrity
kernel control-flow integrity
0.212014
KCoFI: Complete Control-Flow Integrity for Commodity Operating System Kernels · IEEE Symposium on Security and Privacy 2014
Systems and software security
return-oriented programming defense
0.212014
KCoFI: Complete Control-Flow Integrity for Commodity Operating System Kernels · IEEE Symposium on Security and Privacy 2014
Systems and software security › trusted computing
trusted execution
0.212014
Virtual ghost: protecting applications from hostile operating systems · ASPLOS 2014
Debugging and program repair › record and replay
deterministic replay
0.212013
Cyrus: unintrusive application-level record-replay for replay parallelism · ASPLOS 2013
Concurrent programming
multithreaded debugging
0.212013
Cyrus: unintrusive application-level record-replay for replay parallelism · ASPLOS 2013
Parallel and multicore computing › parallel computing › parallel program debugging
deterministic replay
0.212013
QuickRec: prototyping an intel architecture extension for record and replay of multithreaded programs · ISCA 2013
Processor architecture and microarchitecture › debugging support
hardware-assisted deterministic replay
0.212013
QuickRec: prototyping an intel architecture extension for record and replay of multithreaded programs · ISCA 2013
Systems and software security
replicated execution
0.112012
Using replicated execution for a more secure and reliable web browser · NDSS 2012
Distributed systems
fault tolerance
0.112012
Using replicated execution for a more secure and reliable web browser · NDSS 2012
Hardware reliability and fault tolerance › redundancy
replicated execution
0.112012
Using replicated execution for a more secure and reliable web browser · NDSS 2012
Network security › intrusion detection and prevention
intrusion detection
0.112020
DeepMatch: practical deep packet inspection in the data plane using network processors · CoNEXT 2020
Web and mobile security
web application security
0.112011
Fortifying web-based applications automatically · CCS 2011
Operating systems › virtualization
hypervisor
0.112017
Deconstructing Xen · NDSS 2017
Distributed systems
communication optimization
0.112015
Slipstream: Automatic Interprocess Communication Optimization · USENIX ATC 2015

Methods — techniques the papers use, named apart from their topics

systematic literature review · 0.9network processor · 0.9SmartNIC · 0.9thread-safe monitoring · 0.8empirical measurement · 0.7automated program partitioning · 0.7capability-based protection · 0.4MMU write-protection · 0.4runtime checks · 0.4hardware abstraction layer · 0.4compiler instrumentation · 0.4small-step semantics · 0.2partial proof · 0.2formal verification · 0.2hardware prototyping · 0.2
YearPublicationVenuePosition
2025 SoK: Software Compartmentalization
abstract
Decomposing large systems into smaller components with limited privileges has long been recognized as an effective means to minimize the impact of exploits. Despite historical roots, demonstrated benefits, and a plethora of research efforts in academia and industry, the compartmentalization of software is still not a mainstream practice. This paper investigates why, and how this status quo can be improved. Noting that existing approaches are fraught with inconsistencies in terminology and analytical methods, we propose a unified model for the systematic analysis, comparison, and directing of compartmentalization approaches. We use this model to review 211 research efforts and analyze 61 mainstream compartmentalized systems, confronting them to understand the limitations of both research and production works. Among others, our findings reveal that mainstream efforts largely rely on manual methods, custom abstractions, and legacy mechanisms, poles apart from recent research. We conclude with recommendations: compartmentalization should be solved holistically; progress is needed towards simplifying the definition of compartmentalization policies; towards better challenging our threat models in the light of confused deputies and hardware limitations; as well as towards bridging the gaps we pinpoint between research and mainstream needs. This paper not only maps the historical and current landscape of compartmentalization, but also sets forth a framework to foster their evolution and adoption.
Hugo Lefeuvre, Nathan Dautenhahn, David Chisnall, Pierre Olivier
SP2
2024 Endokernel: A Thread Safe Monitor for Lightweight Subprocess Isolation
Fangfei Yang, Bumjin Im, Weijie Huang 0001, Kelly Kaoudis, Anjo Vahldiek-Oberwagner, Chia-Che Tsai, Nathan Dautenhahn
USENIX Security Symposium7
2023 Assessing the Impact of Interface Vulnerabilities in Compartmentalized Software
Hugo Lefeuvre, Vlad-Andrei Badoiu, Felipe Huici, Nathan Dautenhahn, Pierre Olivier
NDSS5
2023 Endoprocess: Programmable and Extensible Subprocess Isolation
abstract
Modern applications combine multiple components into single processes, leading to complex tradeoffs between isolation, performance, and programmability. We present the Endoprocess, a unique, microkernel-based approach for protection within process spaces. An endoprocess safely multiplexes process resources by exporting a low-level abstraction, the subprocess, that is transparently overlaid on existing process interfaces (like mmap, mprotect, etc), and provides extensibility and programmability through custom application-layer modules. We report experimental results of an initial prototype and highlight several application domains. Overall, the endoprocess presents a path for protection within processes while remaining compatible with existing OS abstractions and multiplexing them in a secure and extensible way.
Fangfei Yang, Weijie Huang 0001, Kelly Kaoudis, Anjo Vahldiek-Oberwagner, Nathan Dautenhahn
NSPW5
2021 μSCOPE: A Methodology for Analyzing Least-Privilege Compartmentalization in Large Software Artifacts
abstract
By prioritizing simplicity and portability, least-privilege engineering has been an afterthought in OS design, resulting in monolithic kernels where any exploit leads to total compromise. μSCOPE (“microscope”) addresses this problem by automatically identifying opportunities for least-privilege separation. μSCOPE replaces expert-driven, semi-automated analysis with a general methodology for exploring a continuum of security vs. performance design points by adopting a quantitative and systematic approach to privilege analysis. We apply the μSCOPE methodology to the Linux kernel by (1) instrumenting the entire kernel to gain comprehensive, fine-grained memory access and call activity; (2) mapping these accesses to semantic information; and (3) conducting separability analysis on the kernel using both quantitative privilege and overhead metrics. We discover opportunities for orders of magnitude privilege reduction while predicting relatively low overheads—at 15% mediation overhead, overprivilege in Linux can be reduced up to 99.8%—suggesting fine-grained privilege separation is feasible and laying the groundwork for accelerating real privilege separation.
Nick Roessler, Lucas Atayde, Imani Palmer, Derrick Paul McKee, Jai Pandey, Vasileios P. Kemerlis, Mathias Payer, Adam Bates 0001, Jonathan M. Smith, André DeHon, Nathan Dautenhahn
RAID11
2021 Lossless instruction-to-object memory tracing in the Linux kernel
abstract
The lack of visibility into Linux's behavior makes it hard to refactor and maintain. To peer inside the box, we present Memorizer, a self-contained, low-level tracing framework that tracks (most) object allocations, data accesses, and function calls within the kernel. The core insight is a low-level object-centric representation that records detailed lifetime information while linking each operation (call/read/write) with its intended target. We evaluate Memorizer using extensive input programs and demonstrate its value by showing how Memorizer can (1) aid in refactoring, (2) extend code coverage with object coverage to improve testing and analysis, and (3) identify leaky abstractions. We also release a large data set, visualization tools, and Memorizer's source. This generic, object-centric approach is the first to provide loss-less instruction-to-object tracing, adding an essential software engineering capability to the overly complex Linux kernel.
Nick Roessler, Yi Chien, Lucas Atayde, Peiru Yang, Imani Palmer, Lily Gray, Nathan Dautenhahn
SYSTOR7
2020 DeepMatch: practical deep packet inspection in the data plane using network processors
abstract
Restricting data plane processing to packet headers precludes analysis of payloads to improve routing and security decisions. DeepMatch delivers line-rate regular expression matching on payloads using Network Processors (NPs). It further supports packet reordering to match patterns in flows that cross packet boundaries. Our evaluation shows that an implementation of DeepMatch, on a 40 Gbps Netronome NFP-6000 SmartNIC, achieves up to line rate for streams of unrelated packets and up to 20 Gbps when searches span multiple packets within a flow. In contrast with prior work, this throughput is data-independent and adds no burstiness. DeepMatch opens new opportunities for programmable data planes.
Joel Hypolite, John Sonchack, Shlomo Hershkop, Nathan Dautenhahn, André DeHon, Jonathan M. Smith
CoNEXT4
2018 BreakApp: Automated, Flexible Application Compartmentalization
Nikos Vasilakis, Ben Karel, Nick Roessler, Nathan Dautenhahn, André DeHon, Jonathan M. Smith
NDSS4
2018 MicroStache: A Lightweight Execution Context for In-Process Safe Region Isolation
Lucian Mogosanu, Ashay Rane, Nathan Dautenhahn
RAID3
2017 Deconstructing Xen
Le Shi, Yuming Wu, Yubin Xia, Nathan Dautenhahn, Haibo Chen 0001, Binyu Zang
NDSS4
2017 Towards Fine-grained, Automated Application Compartmentalization
abstract
The rise of language-specific, third-party packages simplifies application development. However, relying on untrusted code poses a threat to security and reliability.
Nikos Vasilakis, Ben Karel, Nick Roessler, Nathan Dautenhahn, André DeHon, Jonathan M. Smith
PLOS@SOSP4
2015 Nested Kernel: An Operating System Architecture for Intra-Kernel Privilege Separation
abstract
Monolithic operating system designs undermine the security of computing systems by allowing single exploits anywhere in the kernel to enjoy full supervisor privilege. The nested kernel operating system architecture addresses this problem by "nesting" a small isolated kernel within a traditional monolithic kernel. The "nested kernel" interposes on all updates to virtual memory translations to assert protections on physical memory, thus significantly reducing the trusted computing base for memory access control enforcement. We incorporated the nested kernel architecture into FreeBSD on x86-64 hardware while allowing the entire operating system, including untrusted components, to operate at the highest hardware privilege level by write-protecting MMU translations and de-privileging the untrusted part of the kernel. Our implementation inherently enforces kernel code integrity while still allowing dynamically loaded kernel modules, thus defending against code injection attacks. We also demonstrate that the nested kernel architecture allows kernel developers to isolate memory in ways not possible in monolithic kernels by introducing write-mediation and write-logging services to protect critical system data structures. Performance of the nested kernel prototype shows modest overheads: <1% average for Apache and 2.7% for kernel compile. Overall, our results and experience show that the nested kernel design can be retrofitted to existing monolithic kernels, providing important security benefits.
Nathan Dautenhahn, Theodoros Kasampalis, Will Dietz, John Criswell, Vikram S. Adve
ASPLOS1
2015 Slipstream: Automatic Interprocess Communication Optimization
Will Dietz, Joshua Cranmer, Nathan Dautenhahn, Vikram S. Adve
USENIX ATC3
2014 Virtual ghost: protecting applications from hostile operating systems
abstract
Applications that process sensitive data can be carefully designed and validated to be difficult to attack, but they are usually run on monolithic, commodity operating systems, which may be less secure. An OS compromise gives the attacker complete access to all of an application's data, regardless of how well the application is built. We propose a new system, Virtual Ghost, that protects applications from a compromised or even hostile OS. Virtual Ghost is the first system to do so by combining compiler instrumentation and run-time checks on operating system code, which it uses to create ghost memory that the operating system cannot read or write. Virtual Ghost interposes a thin hardware abstraction layer between the kernel and the hardware that provides a set of operations that the kernel must use to manipulate hardware, and provides a few trusted services for secure applications such as ghost memory management, encryption and signing services, and key management. Unlike previous solutions, Virtual Ghost does not use a higher privilege level than the kernel.
John Criswell, Nathan Dautenhahn, Vikram S. Adve
ASPLOS2
2014 KCoFI: Complete Control-Flow Integrity for Commodity Operating System Kernels
abstract
We present a new system, KCoFI, that is the first we know of to provide complete Control-Flow Integrity protection for commodity operating systems without using heavyweight complete memory safety. Unlike previous systems, KCoFI protects commodity operating systems from classical control-flow hijack attacks, return-to-user attacks, and code segment modification attacks. We formally verify a subset of KCoFI's design by modeling several features in small-step semantics and providing a partial proof that the semantics maintain control-flow integrity. The model and proof account for operations such as page table management, trap handlers, context switching, and signal delivery. Our evaluation shows that KCoFI prevents all the gadgets found by an open-source Return Oriented Programming (ROP) gadget-finding tool in the FreeBSD kernel from being used, it also reduces the number of indirect control-flow targets by 98.18%. Our evaluation also shows that the performance impact of KCoFI on web server bandwidth is negligible while file transfer bandwidth using OpenSSH is reduced by an average of 13%, and at worst 27%, across a wide range of file sizes. Postmark, an extremely file-system intensive benchmark, shows 2x overhead. Where comparable numbers are available, the overheads of KCoFI are far lower than heavyweight memory-safety techniques.
John Criswell, Nathan Dautenhahn, Vikram S. Adve
IEEE Symposium on Security and Privacy2
2013 Cyrus: unintrusive application-level record-replay for replay parallelism
abstract
Architectures for deterministic record-replay (R&R) of multithreaded code are attractive for program debugging, intrusion analysis, and fault-tolerance uses. However, very few of the proposed designs have focused on maximizing replay speed -- a key enabling property of these systems. The few efforts that focus on replay speed require intrusive hardware or software modifications, or target whole-system R&R rather than the more useful application-level R&R.
Nima Honarmand, Nathan Dautenhahn, Josep Torrellas, Samuel T. King, Gilles Pokam, Cristiano Pereira
ASPLOS2
2013 QuickRec: prototyping an intel architecture extension for record and replay of multithreaded programs
abstract
There has been significant interest in hardware-assisted deterministic Record and Replay (RnR) systems for multithreaded programs on multiprocessors. However, no proposal has implemented this technique in a hardware prototype with full operating system support. Such an implementation is needed to assess RnR practicality.
Gilles Pokam, Klaus Danne, Cristiano Pereira, Rolf Kassa, Tim Kranich, Shiliang Hu, Justin Emile Gottschlich, Nima Honarmand, Nathan Dautenhahn, Samuel T. King, Josep Torrellas
ISCA9
2012 Using replicated execution for a more secure and reliable web browser
Hui Xue 0007, Nathan Dautenhahn, Samuel T. King
NDSS2
2011 Fortifying web-based applications automatically
abstract
Browser designers create security mechanisms to help web developers protect web applications, but web developers are usually slow to use these features in web-based applications (web apps). In this paper we introduce Zan, a browser-based system for applying new browser security mechanisms to legacy web apps automatically. Our key insight is that web apps often contain enough information, via web developer source-code patterns or key properties of web-app objects, to allow the browser to infer opportunities for applying new security mechanisms to existing web apps. We apply this new concept to protect authentication cookies, prevent web apps from being framed unwittingly, and perform JavaScript object deserialization safely. We evaluate Zan on up to the 1000 most popular websites for each of the three cases. We find that Zan can provide complimentary protection for the majority of potentially applicable websites automatically without requiring additional code from the web developers and with negligible incompatibility impact.
Nathan Dautenhahn, Samuel T. King
CCS2