Per Larsen
YOU?
Author Swipe
View article: PKRU-safe
PKRU-safe Open
After 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 ass…
View article: dMVX: Secure and Efficient Multi-Variant Execution in a Distributed Setting
dMVX: Secure and Efficient Multi-Variant Execution in a Distributed Setting Open
Multi-variant execution (MVX) systems amplify the effectiveness of software diversity techniques. The key idea is to run multiple diversified program variants in lockstep while providing them with the same input and monitoring their run-ti…
View article: Adoption Challenges of Code Randomization
Adoption Challenges of Code Randomization Open
Languages in the C family are distinguished by their efficiency, maturity, and their lack of guardrails compared to other mainstream language in use today. Their efficiency properties kept these languages relevant as new ones appeared. The…
View article: Distributed Heterogeneous N-Variant Execution
Distributed Heterogeneous N-Variant Execution Open
View article: SoK: Sanitizing for Security
SoK: Sanitizing for Security Open
The 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 an…
View article: DMON: A Distributed Heterogeneous N-Variant System
DMON: A Distributed Heterogeneous N-Variant System Open
N-Variant Execution (NVX) systems utilize software diversity techniques for enhancing software security. The general idea is to run multiple different variants of the same program alongside each other while monitoring their run-time behavi…
View article: SoK: Sanitizing for Security
SoK: Sanitizing for Security Open
The 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 an…
View article: PartiSan: Fast and Flexible Sanitization via Run-Time Partitioning
PartiSan: Fast and Flexible Sanitization via Run-Time Partitioning Open
View article: Taming Parallelism in a Multi-Variant Execution Environment
Taming Parallelism in a Multi-Variant Execution Environment Open
Exploit 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 m…
View article: Control-Flow Integrity
Control-Flow Integrity Open
Memory corruption errors in C/C++ programs remain the most common source of security vulnerabilities in today’s systems. Control-flow hijacking attacks exploit memory corruption vulnerabilities to divert program execution away from the int…
View article: Multi-Variant Execution of Parallel Programs
Multi-Variant Execution of Parallel Programs Open
Multi-Variant Execution Environments (MVEEs) are a promising technique to protect software against memory corruption attacks. They transparently execute multiple, diversified variants (often referred to as replicae) of the software receivi…
View article: Selfrando: Securing the Tor Browser against De-anonymization Exploits
Selfrando: Securing the Tor Browser against De-anonymization Exploits Open
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, ma…
View article: Secure and efficient application monitoring and replication
Secure and efficient application monitoring and replication Open
Memory corruption vulnerabilities remain a grave threat to systems software written in C/C++. Current best practices dictate compiling programs with exploit mitigations such as stack canaries, address space layout randomization, and contro…
View article: It's a TRaP
It's a TRaP Open
Code-reuse attacks continue to evolve and remain a severe threat to modern software. Recent research has proposed a variety of defenses with differing security, effciency, and practicality characteristics. Whereas the majority of these sol…
View article: Safe and efficient hybrid memory management for Java
Safe and efficient hybrid memory management for Java Open
Java 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 o…
View article: Readactor: Practical Code Randomization Resilient to Memory Disclosure
Readactor: Practical Code Randomization Resilient to Memory Disclosure Open
Code-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…