VLDB 2026 Research / reviewers in the wild / expert
Per Larsen
dblp:12/4238
· DBLP profile ↗
35ranked-venue papers
3as first author
3since 2021 · last 2026
0009-0000-2928-4121ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Security and privacy · 18 · 1 first-authorSystems, architecture and hardware · 9 · 1 first-author · 1 since 2021Software engineering, systems software and programming languages · 4Human-computer interaction and ubiquitous computing · 2 · 2 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 1 first-authorArtificial intelligence and machine learning · 1Graphics, computer vision, multimedia, augmented reality and games · 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
18 papers |
Systems and software security · 88% Network security · 5% Hardware security and side channels · 5% | |
| Software engineering, system software, and programming languages
11 papers |
Runtime systems and virtual machines · 62% Program analysis · 20% Compilers and program optimization · 6% |
Topics — the 30 heaviest of 35, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Systems and software security
memory safety |
2.0 | 6 | 2022 | PKRU-safe: automatically locking down the heap between safe and unsafe languages · EuroSys 2022 SoK: Sanitizing for Security · IEEE Symposium on Security and Privacy 2019 Taming Parallelism in a Multi-Variant Execution Environment · EuroSys 2017 |
Systems and software security › exploitation
code reuse attack |
1.3 | 5 | 2017 | Large-Scale Automated Software Diversity - Program Evolution Redux · IEEE Trans. Dependable Secur. Comput. 2017 Address Oblivious Code Reuse: On the Effectiveness of Leakage Resilient Diversity · NDSS 2017 Strategy without tactics: policy-agnostic hardware-enhanced control-flow integrity · DAC 2016 |
Systems and software security › memory safety
control-flow integrity |
0.7 | 3 | 2016 | Strategy without tactics: policy-agnostic hardware-enhanced control-flow integrity · DAC 2016 Opaque Control-Flow Integrity · NDSS 2015 Losing Control: On the Effectiveness of Control-Flow Integrity under Stack Attacks · CCS 2015 |
Systems and software security
exploitation |
0.6 | 3 | 2016 | Subversive-C: Abusing and Protecting Dynamic Message Dispatch · USENIX ATC 2016 It's a TRaP: Table Randomization and Protection against Function-Reuse Attacks · CCS 2015 Librando: transparent code randomization for just-in-time compilers · CCS 2013 |
Systems and software security
software diversity |
0.6 | 4 | 2017 | Large-Scale Automated Software Diversity - Program Evolution Redux · IEEE Trans. Dependable Secur. Comput. 2017 SoK: Automated Software Diversity · IEEE Symposium on Security and Privacy 2014 Address Oblivious Code Reuse: On the Effectiveness of Leakage Resilient Diversity · NDSS 2017 |
Systems and software security › exploitation
control-flow hijacking |
0.5 | 2 | 2016 | Subversive-C: Abusing and Protecting Dynamic Message Dispatch · USENIX ATC 2016 Losing Control: On the Effectiveness of Control-Flow Integrity under Stack Attacks · CCS 2015 |
Program analysis
dynamic analysis |
0.4 | 2 | 2019 | SoK: Sanitizing for Security · IEEE Symposium on Security and Privacy 2019 Opaque Control-Flow Integrity · NDSS 2015 |
Systems and software security › exploitation › code reuse attack
return-oriented programming |
0.4 | 2 | 2015 | Readactor: Practical Code Randomization Resilient to Memory Disclosure · IEEE Symposium on Security and Privacy 2015 It's a TRaP: Table Randomization and Protection against Function-Reuse Attacks · CCS 2015 |
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.4 | 3 | 2014 | Accelerating iterators in optimizing AST interpreters · OOPSLA 2014 Information flow tracking meets just-in-time compilation · ACM Trans. Archit. Code Optim. 2013 Librando: transparent code randomization for just-in-time compilers · CCS 2013 |
Systems and software security
code randomization |
0.4 | 2 | 2015 | Readactor: Practical Code Randomization Resilient to Memory Disclosure · IEEE Symposium on Security and Privacy 2015 Librando: transparent code randomization for just-in-time compilers · CCS 2013 |
Systems and software security › memory safety
memory sanitizer |
0.4 | 1 | 2019 | SoK: Sanitizing for Security · IEEE Symposium on Security and Privacy 2019 |
Runtime systems and virtual machines › interpreter
interpreter optimization |
0.4 | 2 | 2014 | Efficient hosted interpreters on the JVM · ACM Trans. Archit. Code Optim. 2014 Accelerating iterators in optimizing AST interpreters · OOPSLA 2014 |
Network security › attack resilience
attack mitigation |
0.3 | 1 | 2017 | Large-Scale Automated Software Diversity - Program Evolution Redux · IEEE Trans. Dependable Secur. Comput. 2017 |
Systems and software security › software diversity
multi-variant execution |
0.3 | 1 | 2017 | Taming Parallelism in a Multi-Variant Execution Environment · EuroSys 2017 |
Hardware security and side channels
trusted execution environments |
0.2 | 1 | 2016 | Strategy without tactics: policy-agnostic hardware-enhanced control-flow integrity · DAC 2016 |
Runtime systems and virtual machines
garbage collection |
0.2 | 1 | 2016 | Thinking Inside the Box: Compartmentalized Garbage Collection · ACM Trans. Program. Lang. Syst. 2016 |
Hardware security and side channels › side-channel countermeasures
cache side-channel defense |
0.2 | 1 | 2015 | Thwarting Cache Side-Channel Attacks Through Dynamic Software Diversity · NDSS 2015 |
Systems and software security › memory safety
memory corruption |
0.2 | 1 | 2015 | Losing Control: On the Effectiveness of Control-Flow Integrity under Stack Attacks · CCS 2015 |
Network security
moving target defense |
0.2 | 1 | 2014 | SoK: Automated Software Diversity · IEEE Symposium on Security and Privacy 2014 |
Runtime systems and virtual machines › interpreter
embedded interpreter |
0.2 | 1 | 2014 | Efficient hosted interpreters on the JVM · ACM Trans. Archit. Code Optim. 2014 |
Runtime systems and virtual machines › virtual machine implementation
java virtual machine |
0.2 | 1 | 2014 | Efficient hosted interpreters on the JVM · ACM Trans. Archit. Code Optim. 2014 |
Systems and software security › memory protection
hardware-assisted memory protection |
0.2 | 1 | 2022 | PKRU-safe: automatically locking down the heap between safe and unsafe languages · EuroSys 2022 |
Systems and software security
information flow tracking |
0.2 | 1 | 2013 | Information flow tracking meets just-in-time compilation · ACM Trans. Archit. Code Optim. 2013 |
Systems and software security
javascript engine |
0.2 | 1 | 2013 | Information flow tracking meets just-in-time compilation · ACM Trans. Archit. Code Optim. 2013 |
Operating systems › system security › operating system security › protection mechanism › isolation
process isolation |
0.1 | 1 | 2017 | Taming Parallelism in a Multi-Variant Execution Environment · EuroSys 2017 |
Software maintenance and evolution › software evolution
program evolution |
0.1 | 1 | 2017 | Large-Scale Automated Software Diversity - Program Evolution Redux · IEEE Trans. Dependable Secur. Comput. 2017 |
Web and mobile security
mobile security |
0.1 | 1 | 2016 | Leakage-Resilient Layout Randomization for Mobile Devices · NDSS 2016 |
Web and mobile security › browser security
same-origin policy |
0.1 | 1 | 2016 | Thinking Inside the Box: Compartmentalized Garbage Collection · ACM Trans. Program. Lang. Syst. 2016 |
Distributed systems
fault tolerance |
0.1 | 1 | 2016 | Secure and Efficient Application Monitoring and Replication · USENIX ATC 2016 |
Processor architecture and microarchitecture
instruction set architecture |
0.1 | 1 | 2016 | Strategy without tactics: policy-agnostic hardware-enhanced control-flow integrity · DAC 2016 |
Methods — techniques the papers use, named apart from their topics
systematic literature review · 0.9memory protection keys · 0.6measurement of diversity effectiveness · 0.6lockstep monitoring · 0.6diversified program variants · 0.6automated software diversity · 0.6PKRU · 0.6replication · 0.5hardware-enhanced enforcement · 0.5leakage resilient diversity · 0.3wrapper objects · 0.2secure monitoring · 0.2heap partitioning · 0.2runtime enforcement · 0.2dynamic software diversity · 0.2code pointer hiding · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Social fidelity in cooperative virtual reality maritime trainingabstractEach year maritime accidents occur at sea causing human casualties. Training facilities serve to reduce the risk of human error by allowing maritime teams to train safety procedures in cooperative real-size immersive simulators. However, they are expensive and only few maritime professionals have access to such simulators. Virtual Reality (VR) can provide a digital all-immersive learning environment at a reduced cost allowing for increased access. However, a key ingredient of what makes all-immersive physical simulators effective is that they allow for multiple participants to engage in cooperative social interaction. Social interaction which allows trainees to develop skills and competencies in navigating situational awareness essential for safety training. Social interaction requires social fidelity. Moving from physical simulators into digital simulators based upon VR technology thus challenges us as HCI researchers to figure out how to design social fidelity into immersive training simulators. We explore social fidelity theoretically and technically by combining core conceptual work from CSCW research to the design experimentation of social fidelity for maritime safety training. We argue that designing for social fidelity in VR simulators requires designers to contextualize the VR experience in location, artifacts, and actors structured through dependencies in work allowing trainees to perform situational awareness, coordination, and communication which are all features of social fidelity. Further, we identify the risk of breaking the social fidelity immersion related to the intent and social state of the participants entering the simulation. Finally, we suggest that future designs of social fidelity should consider not only trainees in the design, but also the social relations created by the instructors’ guidance as part of the social fidelity immersion. Pernille Bjørn, Maja Ling Han, Andrea Parezanovic, Per Larsen |
Hum. Comput. Interact. | 4 |
| 2024 | Situational Awareness Data Extraction from Cooperative Virtual Reality Maritime Training SimulationsabstractSituational awareness is a critical competence to master for maritime personnel to avoid critical failures risking safety in everyday practices. Cooperative simulator training utilizing virtual reality (VR) technologies provides new opportunities to train situational awareness, e.g., the capability to automatically collect data about cooperative behaviour. We explore different approaches to capturing behavioural data displaying participants’ situational awareness practices supporting trainers in teaching and assessing maritime trainees. We argue that to capture situational awareness behaviour we need to design data collection methods documenting 1) artefactual proximity; 2) body movement in the environment; and 3) mutual monitoring while interacting with artefacts. Through experimentation, we demonstrate ways to collect these types of situational awareness data and discuss limitations. Finally, we propose four design recommendations for extracting situational awareness data from behavioural data in cooperative virtual reality simulators. Thomas Larsen, Per Larsen, Pernille Bjørn |
ECSCW | 2 |
| 2022 | PKRU-safe: automatically locking down the heap between safe and unsafe languagesabstractAfter more than twenty-five years of research, memory safety violations remain one of the major causes of security vulnerabilities in real-world software. Memory-safe languages, like Rust, have demonstrated that compiler technology can assist developers in writing efficient low-level code without the risk of memory corruption. However, many memory-safe languages still have to interface with unsafe code to some extent, which opens up the possibility for attackers to exploit memory-corruption vulnerabilities in the unsafe part of the system and subvert the safety guarantees provided by the memory-safe language. Paul Kirth, Mitchel Dickerson, Stephen Crane, Per Larsen, Adrian Dabrowski, David Gens, Yeoul Na, Stijn Volckaert, Michael Franz |
EuroSys | 4 |
| 2020 | Distributed Heterogeneous N-Variant Execution
Alexios Voulimeneas, Dokyung Song, Fabian Parzefall, Yeoul Na, Per Larsen, Michael Franz, Stijn Volckaert |
DIMVA | 5 |
| 2019 | SoK: Sanitizing for SecurityabstractThe C and C++ programming languages are notoriously insecure yet remain indispensable. Developers therefore resort to a multi-pronged approach to find security issues before adversaries. These include manual, static, and dynamic program analysis. Dynamic bug finding tools-henceforth "sanitizers"-can find bugs that elude other types of analysis because they observe the actual execution of a program, and can therefore directly observe incorrect program behavior as it happens. A vast number of sanitizers have been prototyped by academics and refined by practitioners. We provide a systematic overview of sanitizers with an emphasis on their role in finding security issues. Specifically, we taxonomize the available tools and the security vulnerabilities they cover, describe their performance and compatibility properties, and highlight various trade-offs. Dokyung Song, Julian Lettner, Prabhu Rajasekaran, Yeoul Na, Stijn Volckaert, Per Larsen, Michael Franz |
IEEE Symposium on Security and Privacy | 6 |
| 2018 | Hardware Assisted Randomization of Data
Brian Belleville, Hyungon Moon, Jangseop Shin, Dongil Hwang, Joseph Nash, Seonhwa Jung, Yeoul Na, Stijn Volckaert, Per Larsen, Yunheung Paek, Michael Franz |
RAID | 9 |
| 2018 | PartiSan: Fast and Flexible Sanitization via Run-Time Partitioning
Julian Lettner, Dokyung Song, Taemin Park, Per Larsen, Stijn Volckaert, Michael Franz |
RAID | 4 |
| 2017 | Taming Parallelism in a Multi-Variant Execution EnvironmentabstractExploit mitigations, by themselves, do not stop determined and well-resourced adversaries from compromising vulnerable software through memory corruption. Multi-variant execution environments (MVEEs) add additional assurance by executing multiple, diversified copies (variants) of the same program in lockstep while monitoring their behavior for signs of attacks (divergence). While executing multiple copies of the same program requires additional computational resources, modern MVEEs run many workloads at near-native speed and can detect adversaries before they leak secrets or achieve persistence on the host system. Stijn Volckaert, Bart Coppens 0001, Bjorn De Sutter, Koen De Bosschere, Per Larsen, Michael Franz |
EuroSys | 5 |
| 2017 | Address Oblivious Code Reuse: On the Effectiveness of Leakage Resilient Diversity
Robert Rudd, Richard Skowyra, David Bigelow, Veer Dedhia, Thomas Hobson, Stephen Crane, Christopher Liebchen, Per Larsen, Lucas Davi, Michael Franz, Ahmad-Reza Sadeghi, Hamed Okhravi |
NDSS | 8 |
| 2017 | Large-Scale Automated Software Diversity - Program Evolution ReduxabstractThe software monoculture favors attackers over defenders, since it makes all target environments appear similar. Code-reuse attacks, for example, rely on target hosts running identical software. Attackers use this assumption to their advantage by automating parts of creating an attack. This article presents large-scale automated software diversification as a means to shore up this vulnerability implied by our software monoculture. Besides describing an industrial-strength implementation of automated software diversity, we introduce methods to objectively measure the effectiveness of diversity in general, and its potential to eliminate code-reuse attacks in particular. Andrei Homescu, Todd Jackson, Stephen Crane, Stefan Brunthaler 0001, Per Larsen, Michael Franz |
IEEE Trans. Dependable Secur. Comput. | 5 |
| 2016 | Strategy without tactics: policy-agnostic hardware-enhanced control-flow integrityabstractControl-flow integrity (CFI) is a general defense against code-reuse exploits that currently constitute a severe threat against diverse computing platforms. Existing CFI solutions (both in software and hardware) suffer from shortcomings such as (i) inefficiency, (ii) security weaknesses, or (iii) are not scalable. In this paper, we present a generic hardware-enhanced CFI scheme that tackles these problems and allows to enforce diverse CFI policies. Our approach fully supports multi-tasking, shared libraries, prevents various forms of code-reuse attacks, and allows CFI protected code and legacy code to co-exist. We evaluate our implementation on SPARC LEON3 and demonstrate its high efficiency. Dean Sullivan, Orlando Arias, Lucas Davi, Per Larsen, Ahmad-Reza Sadeghi, Yier Jin |
DAC | 4 |
| 2016 | Leakage-Resilient Layout Randomization for Mobile Devices
Kjell Braden, Lucas Davi, Christopher Liebchen, Ahmad-Reza Sadeghi, Stephen Crane, Michael Franz, Per Larsen |
NDSS | 7 |
| 2016 | Subversive-C: Abusing and Protecting Dynamic Message Dispatch
Julian Lettner, Benjamin Kollenda, Andrei Homescu, Per Larsen, Felix Schuster, Lucas Davi, Ahmad-Reza Sadeghi, Thorsten Holz, Michael Franz |
USENIX ATC | 4 |
| 2016 | Secure and Efficient Application Monitoring and Replication
Stijn Volckaert, Bart Coppens 0001, Alexios Voulimeneas, Andrei Homescu, Per Larsen, Bjorn De Sutter, Michael Franz |
USENIX ATC | 5 |
| 2016 | Selfrando: Securing the Tor Browser against De-anonymization ExploitsabstractAbstract Tor is a well-known anonymous communication system used by millions of users, including journalists and civil rights activists all over the world. The Tor Browser gives non-technical users an easy way to access the Tor Network. However, many government organizations are actively trying to compromise Tor not only in regions with repressive regimes but also in the free world, as the recent FBI incidents clearly demonstrate. Exploiting software vulnerabilities in general, and browser vulnerabilities in particular, constitutes a clear and present threat to the Tor software. The Tor Browser shares a large part of its attack surface with the Firefox browser. Therefore, Firefox vulnerabilities (even patched ones) are highly valuable to attackers trying to monitor users of the Tor Browser. In this paper, we present selfrando-an enhanced and practical load-time randomization technique for the Tor Browser that defends against exploits, such as the one FBI allegedly used against Tor users. Our solution significantly improves security over standard address space layout randomization (ASLR) techniques currently used by Firefox and other mainstream browsers. Moreover, we collaborated closely with the Tor Project to ensure that selfrando is fully compatible with AddressSanitizer (ASan), a compiler feature to detect memory corruption. ASan is used in a hardened version of Tor Browser for test purposes. The Tor Project decided to include our solution in the hardened releases of the Tor Browser, which is currently undergoing field testing. Mauro Conti, Stephen Crane, Tommaso Frassetto, Andrei Homescu, Georg Koppen, Per Larsen, Christopher Liebchen, Mike Perry, Ahmad-Reza Sadeghi |
Proc. Priv. Enhancing Technol. | 6 |
| 2016 | Thinking Inside the Box: Compartmentalized Garbage CollectionabstractThe web browser is the “new desktop.” Not only do many users spend most of their time using the browser, the browser has also become host to rich and dynamic applications that were previously tailored to each individual operating system. The lingua franca of web scripting, JavaScript, was pivotal in this development. Imagine that all desktop applications allocated memory from a single heap managed by the operating system. To reclaim memory upon application shutdown, all processes would then be garbage collected—not just the one being quit. While operating systems improved upon this approach long ago, this was how browsers managed memory until recently. This article explores compartmentalized memory management, an approach tailored specifically to web browsers. The idea is to partition the JavaScript heap into compartments and allocate objects to compartments based on their origin. All objects in the same compartment reference each other direct, whereas cross-origin references go through wrapper objects. We carefully evaluate our techniques using Mozilla’s Firefox browser—which now ships with our enhancements—and demonstrate the benefits of collecting each compartment independently. This simultaneously improves runtime performance (up to 36%) and reduces garbage collection pause times (up to 75%) as well as the memory footprint of the browser. In addition, enforcing the same-origin security policy becomes simple and efficient with compartments. Gregor Wagner, Per Larsen, Stefan Brunthaler 0001, Michael Franz |
ACM Trans. Program. Lang. Syst. | 2 |
| 2015 | Losing Control: On the Effectiveness of Control-Flow Integrity under Stack AttacksabstractAdversaries exploit memory corruption vulnerabilities to hijack a program's control flow and gain arbitrary code execution. One promising mitigation, control-flow integrity (CFI), has been the subject of extensive research in the past decade. One of the core findings is that adversaries can construct Turing-complete code-reuse attacks against coarse-grained CFI policies because they admit control flows that are not part of the original program. This insight led the research community to focus on fine-grained CFI implementations. In this paper we show how to exploit heap-based vulnerabilities to control the stack contents including security-critical values used to validate control-flow transfers. Our investigation shows that although program analysis and compiler-based mitigations reduce stack-based vulnerabilities, stack-based memory corruption remains an open problem. Using the Chromium web browser we demonstrate real-world attacks against various CFI implementations: 1)~against CFI implementations under Windows 32-bit by exploiting unprotected context switches, and 2)~against state-of-the-art fine-grained CFI implementations (IFCC and VTV) in the two premier open-source compilers under Unix-like operating systems. Both 32 and 64-bit x86 CFI checks are vulnerable to stack manipulation. Finally, we provide an exploit technique against the latest shadow stack implementation. Mauro Conti, Stephen Crane, Lucas Davi, Michael Franz, Per Larsen, Marco Negro, Christopher Liebchen, Mohaned Qunaibit, Ahmad-Reza Sadeghi |
CCS | 5 |
| 2015 | It's a TRaP: Table Randomization and Protection against Function-Reuse AttacksabstractCode-reuse attacks continue to evolve and remain a severe threat to modern software. Recent research has proposed a variety of defenses with differing security, efficiency, and practicality characteristics. Whereas the majority of these solutions focus on specific code-reuse attack variants such as return-oriented programming (ROP), other attack variants that reuse whole functions, such as the classic return-into-libc, have received much less attention. Mitigating function-level code reuse is highly challenging because one needs to distinguish a legitimate call to a function from an illegitimate one. In fact, the recent counterfeit object-oriented programming (COOP) attack demonstrated that the majority of code-reuse defenses can be bypassed by reusing dynamically bound functions, i.e., functions that are accessed through global offset tables and virtual function tables, respectively. Stephen Crane, Stijn Volckaert, Felix Schuster, Christopher Liebchen, Per Larsen, Lucas Davi, Ahmad-Reza Sadeghi, Thorsten Holz, Bjorn De Sutter, Michael Franz |
CCS | 5 |
| 2015 | Securing Legacy Software against Real-World Code-Reuse Exploits: Utopia, Alchemy, or Possible Future?abstractExploitation of memory-corruption vulnerabilities in widely-used software has been a threat for over two decades and no end seems to be in sight. Since performance and backwards compatibility trump security concerns, popular programs such as web browsers, servers, and office suites still contain large amounts of untrusted legacy code written in error-prone languages such as C and C++. At the same time, modern exploits are evolving quickly and routinely incorporate sophisticated techniques such as code reuse and memory disclosure. As a result, they bypass all widely deployed countermeasures including data execution prevention (DEP) and code randomization such as address space layout randomization (ASLR). Ahmad-Reza Sadeghi, Lucas Davi, Per Larsen |
AsiaCCS | 3 |
| 2015 | Safe and efficient hybrid memory management for JavaabstractJava uses automatic memory management, usually implemented as a garbage-collected heap. That lifts the burden of manually allocating and deallocating memory, but it can incur significant runtime overhead and increase the memory footprint of applications. We propose a hybrid memory management scheme that utilizes region-based memory management to deallocate objects automatically on region exits. Static program analysis detects allocation sites that are safe for region allocation, i.e., the static analysis proves that the objects allocated at such a site are not reachable after the region exit. A regular garbage-collected heap is used for objects that are not region allocatable. The region allocation exploits the temporal locality of object allocation. Our analysis uses coarse-grain source code annotations to disambiguate objects with non-overlapping lifetimes, and maps them to different memory scopes. Region-allocated memory does not require garbage collection as the regions are simply deallocated when they go out of scope. The region allocation technique is backed by a garbage collector that manages memory that is not region allocated. We provide a detailed description of the analysis, provide experimental results showing that as much as 78% of the memory is region allocatable and discuss how our hybrid memory management system can be implemented efficiently with respect to both space and time. Liviu Codrut Stancu, Christian Wimmer, Stefan Brunthaler 0001, Per Larsen, Michael Franz |
ISMM | 4 |
| 2015 | Thwarting Cache Side-Channel Attacks Through Dynamic Software Diversity
Stephen Crane, Andrei Homescu, Stefan Brunthaler 0001, Per Larsen, Michael Franz |
NDSS | 4 |
| 2015 | Opaque Control-Flow Integrity
Vishwath Mohan, Per Larsen, Stefan Brunthaler 0001, Kevin W. Hamlen, Michael Franz |
NDSS | 2 |
| 2015 | Readactor: Practical Code Randomization Resilient to Memory DisclosureabstractCode-reuse attacks such as return-oriented programming (ROP) pose a severe threat to modern software. Designing practical and effective defenses against code-reuse attacks is highly challenging. One line of defense builds upon fine-grained code diversification to prevent the adversary from constructing a reliable code-reuse attack. However, all solutions proposed so far are either vulnerable to memory disclosure or are impractical for deployment on commodity systems. In this paper, we address the deficiencies of existing solutions and present the first practical, fine-grained code randomization defense, called Read actor, resilient to both static and dynamic ROP attacks. We distinguish between direct memory disclosure, where the attacker reads code pages, and indirect memory disclosure, where attackers use code pointers on data pages to infer the code layout without reading code pages. Unlike previous work, Read actor resists both types of memory disclosure. Moreover, our technique protects both statically and dynamically generated code. We use a new compiler-based code generation paradigm that uses hardware features provided by modern CPUs to enable execute-only memory and hide code pointers from leakage to the adversary. Finally, our extensive evaluation shows that our approach is practical -- we protect the entire Google Chromium browser and its V8 JIT compiler -- and efficient with an average SPEC CPU2006 performance overhead of only 6.4%. Stephen Crane, Christopher Liebchen, Andrei Homescu, Lucas Davi, Per Larsen, Ahmad-Reza Sadeghi, Stefan Brunthaler 0001, Michael Franz |
IEEE Symposium on Security and Privacy | 5 |
| 2014 | Accelerating iterators in optimizing AST interpretersabstractGenerators offer an elegant way to express iterators. However, their performance has always been their Achilles heel and has prevented widespread adoption. We present techniques to efficiently implement and optimize generators. Wei Zhang 0059, Per Larsen, Stefan Brunthaler 0001, Michael Franz |
OOPSLA | 2 |
| 2014 | SoK: Automated Software DiversityabstractThe idea of automatic software diversity is at least two decades old. The deficiencies of currently deployed defenses and the transition to online software distribution (the "App store" model) for traditional and mobile computers has revived the interest in automatic software diversity. Consequently, the literature on diversity grew by more than two dozen papers since 2008. Diversity offers several unique properties. Unlike other defenses, it introduces uncertainty in the target. Precise knowledge of the target software provides the underpinning for a wide range of attacks. This makes diversity a broad rather than narrowly focused defense mechanism. Second, diversity offers probabilistic protection similar to cryptography-attacks may succeed by chance so implementations must offer high entropy. Finally, the design space of diversifying program transformations is large. As a result, researchers have proposed multiple approaches to software diversity that vary with respect to threat models, security, performance, and practicality. In this paper, we systematically study the state-of-the-art in software diversity and highlight fundamental trade-offs between fully automated approaches. We also point to open areas and unresolved challenges. These include "hybrid solutions", error reporting, patching, and implementation disclosure attacks on diversified software. Per Larsen, Andrei Homescu, Stefan Brunthaler 0001, Michael Franz |
IEEE Symposium on Security and Privacy | 1 |
| 2014 | Genus zero graph segmentation: Estimation of intracranial volume
Rasmus R. Jensen, Signe S. Thorup, Rasmus R. Paulsen, Tron A. Darvann, Nuno V. Hermann, Per Larsen, Sven Kreiborg, Rasmus Larsen 0001 |
Pattern Recognit. Lett. | 6 |
| 2014 | Efficient hosted interpreters on the JVMabstractMany guest languages are implemented using the Java Virtual Machine (JVM) as a host environment. There are two major implementation choices: custom compilers and so-called hosted interpreters. Custom compilers are complex to build but offer good performance. Hosted interpreters are comparatively simpler to implement but until now have suffered from poor performance. We studied the performance of hosted interpreters and identified common bottlenecks preventing their efficient execution. First, similar to interpreters written in C/C++, instruction dispatch is expensive on the JVM. Second, Java’s semantics require expensive runtime exception checks that negatively affect array performance essential to interpreters. We present two optimizations targeting these bottlenecks and show that the performance of optimized interpreters increases dramatically: we report speedups by a factor of up to 2.45 over the Jython interpreter, 3.57 over the Rhino interpreter, and 2.52 over the JRuby interpreter, respectively. The resulting performance is comparable with that of custom compilers. Our optimizations are enabled by a few simple annotations that require only modest implementation effort; in return, performance increases substantially. Gülfem Savrun-Yeniçeri, Wei Zhang 0059, Huahan Zhang, Eric Seckler, Chen Li 0001, Stefan Brunthaler 0001, Per Larsen, Michael Franz |
ACM Trans. Archit. Code Optim. | 7 |
| 2013 | Librando: transparent code randomization for just-in-time compilersabstractJust-in-time compilers (JITs) are here to stay. Unfortunately, they also provide new capabilities to cyber attackers, namely the ability to supply input programs (in languages such as JavaScript) that will then be compiled to executable code. Once this code is placed and marked as executable, it can then be leveraged by the attacker. Andrei Homescu, Stefan Brunthaler 0001, Per Larsen, Michael Franz |
CCS | 3 |
| 2013 | Profile-guided automated software diversityabstractCode-reuse attacks are notoriously hard to defeat, and most current solutions to the problem focus on automated software diversity. This is a promising area of research, as diversity attacks the common denominator enabling code-reuse attacksthe software monoculture. Recent research in this area provides security, but at an unfortunate price: performance overhead. Leveraging previously collected profiling information, compilers can substantially improve subsequent code generation. Traditionally, profile-guided optimization focuses on hot program code, where a program spends most of its execution time. Optimizing rarely executed code does not significantly impact performance, so few optimizations focus on this code. We use profile-guided optimization to reduce the performance overhead of software diversity. The primary insight is that we are free to diversify cold code, but restrict our diversification efforts in hot code. Our work investigates the impact of profiling on an expensive diversification technique: NOP insertion. By differentiating between hot cold and cold code, we optimize NOP insertion overheads from a maximum of 25% down to a negligible 1%, while preserving the security properties of the original defense. Consequently, using our profile-guided diversification technique, even randomization techniques having a high performance overhead become practical. Andrei Homescu, Steven Neisius, Per Larsen, Stefan Brunthaler 0001, Michael Franz |
CGO | 3 |
| 2013 | CrowdFlow: Efficient Information Flow Security
Christoph Kerschbaumer, Eric Hennigan, Per Larsen, Stefan Brunthaler 0001, Michael Franz |
ISC | 3 |
| 2013 | Booby trapping softwareabstractCyber warfare is asymmetric in the current paradigm, with attackers having the high ground over defenders. This asymmetry stems from the situation that attackers have the initiative, while defenders concentrate on passive fortifications. Defenders are constantly patching the newest hole in their defenses and creating taller and thicker walls, without placing guards on those walls to watch for the enemy and react to attacks. Current passive cyber security defenses such as intrusion detection, anti-virus, and hardened software are not sufficient to repel attackers. In fact, in conventional warfare this passivity would be entirely nonsensical, given the available active strategies, such as counterattacks and deception. Stephen Crane, Per Larsen, Stefan Brunthaler 0001, Michael Franz |
NSPW | 2 |
| 2013 | Information flow tracking meets just-in-time compilationabstractWeb applications are vulnerable to cross-site scripting attacks that enable data thefts. Information flow tracking in web browsers can prevent communication of sensitive data to unintended recipients and thereby stop such data thefts. Unfortunately, existing solutions have focused on incorporating information flow into browsers’ JavaScript interpreters, rather than just-in-time compilers, rendering the resulting performance noncompetitive. Few users will switch to a safer browser if it comes at the cost of significantly degrading web application performance. We present the first information flow tracking JavaScript engine that is based on a true just-in-time compiler, and that thereby outperforms all previous interpreter-based information flow tracking JavaScript engines by more than a factor of two. Our JIT-based engine (i) has the same coverage as previous interpreter- based solutions, (ii) requires reasonable implementation effort, and (iii) introduces new optimizations to achieve acceptable performance. When evaluated against three industry-standard JavaScript benchmark suites, there is still an average slowdown of 73% over engines that do not support information flow, but this is now well within the range that many users will find an acceptable price for obtaining substantially increased security. Christoph Kerschbaumer, Eric Hennigan, Per Larsen, Stefan Brunthaler 0001, Michael Franz |
ACM Trans. Archit. Code Optim. | 3 |
| 2012 | Parallelizing more Loops with Compiler Guided RefactoringabstractThe performance of many parallel applications relies not on instruction-level parallelism but on loop-level parallelism. Unfortunately, automatic parallelization of loops is a fragile process, many different obstacles affect or prevent it in practice. To address this predicament we developed an interactive compilation feedback system that guides programmers in iteratively modifying their application source code. This helps leverage the compiler's ability to generate loop-parallel code. We employ our system to modify two sequential benchmarks dealing with image processing and edge detection, resulting in scalable parallelized code that runs up to 8.3 times faster on an eight-core Intel Xeon 5570 system and up to 12.5 times faster on a quad-core IBM POWER6 system. Benchmark performance varies significantly between the systems. This suggests that semi-automatic parallelization should be combined with target-specific optimizations. Furthermore, comparing the first benchmark to manually-parallelized, hand-optimized pthreads and OpenMP versions, we find that code generated using our approach typically outperforms the pthreads code (within 93-339%). It also performs competitively against the OpenMP code (within 75-111%). The second benchmark outperforms manually-parallelized and optimized OpenMP code (within 109-242%). Per Larsen, Razya Ladelsky, Jacob Lidman, Sally A. McKee, Sven Karlsson, Ayal Zaks |
ICPP | 1 |
| 2011 | Expressing Coarse-Grain Dependencies Among Tasks in Shared Memory ProgramsabstractDesigners of embedded systems face tight constraints on resources, response time and cost. The ability to analyze embedded systems is essential to timely delivery of new designs. Many analysis techniques model parallel programs as task graphs. Task graphs capture the worst-case execution times of individual program tasks and the data dependencies among these. Per Larsen, Sven Karlsson, Jan Madsen |
IEEE Trans. Ind. Informatics | 1 |
| 2007 | A Point-Wise Quantification of Asymmetry Using Deformation Fields: Application to the Study of the Crouzon Mouse Model
Hildur Ólafsdóttir, Stéphanie Lanche, Tron A. Darvann, Nuno V. Hermann, Rasmus Larsen 0001, Bjarne K. Ersbøll, Estanislao Oubel, Alejandro F. Frangi, Per Larsen, Chad A. Perlyn, Gillian M. Morriss-Kay, Sven Kreiborg |
MICCAI (2) | 9 |