Ben Niu 0007

dblp:90/4149-7 · DBLP profile ↗
← Back
11ranked-venue papers
6as first author
2since 2021 · last 2021
0000-0001-5822-8743ORCID · corroborated

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

Security and privacy · 7 · 5 first-author · 2 since 2021Software engineering, systems software and programming languages · 3 · 1 first-authorSystems, architecture and hardware · 1
YearPublicationVenuePosition
2021 HyperFuzzer: An Efficient Hybrid Fuzzer for Virtual CPUs
abstract
In this cloud computing era, the security of hypervisors is critical to the overall security of the cloud. In particular, the security of CPU virtualization in hypervisors is paramount because it is implemented in the most privileged CPU mode. Blackbox and graybox fuzzing are limited to finding shallow virtual CPU bugs due to its huge search space. Whitebox fuzzing can be used for systematic analysis of CPU virtualization, but existing implementations rely on slow hardware emulators to enable dynamic symbolic execution.
Xinyang Ge, Ben Niu 0007, Robert Brotzman, Yaohui Chen 0001, HyungSeok Han, Patrice Godefroid, Weidong Cui
CCS2
2021 MazeRunner: Evaluating the Attack Surface of Control-Flow Integrity Policies
abstract
Control-Flow Integrity (CFI) enforces a control-flow graph (CFG) to limit attackers' ability to manipulate runtime control flow. CFI variations, enforcing different CFGs, achieve different degrees of attack surface reduction. To compare the security strength of different CFI policies, measuring the remaining attack surface is critical but challenging. Therefore, we propose MazeRunner, a framework that quantitatively estimates the attack surface of a CFI-hardened program. Methodology-wise, it takes a program's CFG, an attack model, and a security-violation policy as input to discover risky program points by an attack-aware data dependency tracking algorithm. Risky program points and the CFG are used to compute a metric for the remaining attack surface. We evaluate MazeRunner with 3 CFG types, 3 attack models, and 4 security-violation policies against 13 realistic benchmarks, and demonstrate that the new metric achieves higher precision than traditional metrics while maintaining completeness.
Dongrui Zeng, Ben Niu 0007, Gang Tan
TrustCom2
2020 Reverse Debugging of Kernel Failures in Deployed Systems
Xinyang Ge, Ben Niu 0007, Weidong Cui
USENIX ATC2
2018 REPT: Reverse Debugging of Failures in Deployed Software
Weidong Cui, Xinyang Ge, Baris Kasikci, Ben Niu 0007, Upamanyu Sharma, Ruoyu Wang 0001, Insu Yun
OSDI4
2017 Lazy Diagnosis of In-Production Concurrency Bugs
abstract
Diagnosing concurrency bugs---the process of understanding the root causes of concurrency failures---is hard. Developers depend on reproducing concurrency bugs to diagnose them. Traditionally, systems that attempt to reproduce concurrency bugs record fine-grained thread schedules of events (e.g., shared memory accesses) that lead to failures. Recording schedules incurs high runtime performance overhead and scales poorly, making existing techniques unsuitable in production.
Baris Kasikci, Weidong Cui, Xinyang Ge, Ben Niu 0007
SOSP4
2015 Per-Input Control-Flow Integrity
abstract
Control-Flow Integrity (CFI) is an effective approach to mitigating control-flow hijacking attacks. Conventional CFI techniques statically extract a control-flow graph (CFG) from a program and instrument the program to enforce that CFG. The statically generated CFG includes all edges for all possible inputs; however, for a concrete input, the CFG may include many unnecessary edges.
Ben Niu 0007, Gang Tan
CCS1
2014 RockJIT: Securing Just-In-Time Compilation Using Modular Control-Flow Integrity
abstract
Managed languages such as JavaScript are popular. For performance, modern implementations of managed languages adopt Just-In-Time (JIT) compilation. The danger to a JIT compiler is that an attacker can often control the input program and use it to trigger a vulnerability in the JIT compiler to launch code injection or JIT spraying attacks. In this paper, we propose a general approach called RockJIT to securing JIT compilers through Control-Flow Integrity (CFI). RockJIT builds a fine-grained control-flow graph from the source code of the JIT compiler and dynamically updates the control-flow policy when new code is generated on the fly. Through evaluation on Google's V8 JavaScript engine, we demonstrate that RockJIT can enforce strong security on a JIT compiler, while incurring only modest performance overhead (14.6% on V8) and requiring a small amount of changes to V8's code. Key contributions of RockJIT are a general architecture for securing JIT compilers and a method for generating fine-grained control-flow graphs from C++ code.
Ben Niu 0007, Gang Tan
CCS1
2014 Modular control-flow integrity
abstract
Control-Flow Integrity (CFI) is a software-hardening technique. It inlines checks into a program so that its execution always follows a predetermined Control-Flow Graph (CFG). As a result, CFI is effective at preventing control-flow hijacking attacks. However, past fine-grained CFI implementations do not support separate compilation, which hinders its adoption.
Ben Niu 0007, Gang Tan
PLDI1
2013 Efficient user-space information flow control
abstract
The model of Decentralized Information Flow Control (DIFC) is effective at improving application security and can support rich confidentiality and integrity policies. We describe the design and implementation of duPro, an efficient user-space information flow control framework. duPro adopts Software-based Fault Isolation (SFI) to isolate protection domains within the same process. It controls the end-to-end information flow at the granularity of SFI domains. Being a user-space framework, duPro does not require any OS changes. Since SFI is more lightweight than hardware-based isolation (e.g., OS processes), the inter-domain communication and scheduling in duPro are more efficient than process-level DIFC systems. Finally, duPro supports a novel checkpointing-restoration mechanism for efficiently reusing protection domains. Experiments demonstrate applications can be ported to duPro with negligible overhead, enhanced security, and with tight control over information flow.
Ben Niu 0007, Gang Tan
AsiaCCS1
2013 Monitor integrity protection with space efficiency and separate compilation
abstract
Low-level inlined reference monitors weave monitor code into a program for security. To ensure that monitor code cannot be bypassed by branching instructions, some form of control-flow integrity must be guaranteed. Past approaches to protecting monitor code either have high space overhead or do not support separate compilation. We present Monitor Integrity Protection (MIP), a form of coarse-grained control-flow integrity. The key idea of MIP is to arrange instructions in variable-sized chunks and dynamically restrict indirect branches to target only chunk beginnings. We show that this simple idea is effective in protecting monitor code integrity, enjoys low space and execution-time overhead, supports separate compilation, and is largely compatible with an existing compiler toolchain. We also show that MIP enables a separate verifier that completely disassembles a binary and verifies its security. MIP is designed to support inlined reference monitors. As a case study, we have implemented MIP-based Software-based Fault Isolation (SFI) on both x86-32 and x86-64. The evaluation shows that MIP-based SFI has competitive performance with other SFI implementations, while enjoying low space overhead.
Ben Niu 0007, Gang Tan
CCS1
2011 Poster: uPro: a compartmentalization tool supporting fine-grained and flexible security configuration
Ben Niu 0007, Gang Tan
CCS1