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

Taddeus Kroes

dblp:200/3240 · DBLP profile ↗
← Back
4ranked-venue papers
1as first author
1since 2021 · last 2024
0000-0002-8060-2989ORCID · corroborated

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

Systems, architecture and hardware · 2 · 1 first-authorSecurity and privacy · 2 · 1 since 2021

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
2 papers
Systems and software security · 100%
Software engineering, system software, and programming languages
2 papers
Program analysis · 59% Compilers and program optimization · 41%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Memory systems · 100%

Topics — the 7 heaviest of 8, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Systems and software security
memory safety
1.122024
Sticky Tags: Efficient and Deterministic Spatial Memory Error Mitigation using Persistent Memory Tags · SP 2024
Delta pointers: buffer overflow checks without the checks · EuroSys 2018
Systems and software security › memory safety › hardware-enforced memory safety
memory tagging
0.812024
Sticky Tags: Efficient and Deterministic Spatial Memory Error Mitigation using Persistent Memory Tags · SP 2024
Memory systems › memory protection
memory tagging extension
0.812024
Sticky Tags: Efficient and Deterministic Spatial Memory Error Mitigation using Persistent Memory Tags · SP 2024
Program analysis › binary analysis
dynamic binary analysis
0.412020
BinRec: dynamic binary lifting and recompilation · EuroSys 2020
Systems and software security › memory safety › memory error detection
buffer overflow detection
0.312018
Delta pointers: buffer overflow checks without the checks · EuroSys 2018
Program analysis
dynamic analysis
0.312018
Delta pointers: buffer overflow checks without the checks · EuroSys 2018
Systems and software security › memory safety › memory corruption defense
buffer overflow protection
0.212024
Sticky Tags: Efficient and Deterministic Spatial Memory Error Mitigation using Persistent Memory Tags · SP 2024

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

stack and heap layout partitioning · 1.5memory tagging · 1.5pointer tagging · 0.7delta pointers · 0.7dynamic disassembly · 0.4
YearPublicationVenuePosition
2024 Sticky Tags: Efficient and Deterministic Spatial Memory Error Mitigation using Persistent Memory Tags
abstract
Spatial memory errors such as buffer overflows still rank among the top vulnerabilities in C/C++ programs. Despite much research in the area, the performance overhead of (even partial) mitigations is still too high for practical adoption. To reduce the cost, recent solutions are shifting towards hardware-assisted techniques such as Arm’s Memory Tagging Extension (MTE). Unfortunately, state-of-the-art MTE solutions incur high overhead due to frequent memory (re)tagging, especially on the stack. Moreover, they rely on the secrecy of random memory tags and offer probabilistic security guarantees.In this paper, we first provide evidence that random tagging offers limited protection as attackers can deduce the memory tags by means of speculative probing. We then present StickyTags, a deterministic MTE solution that efficiently mitigates bounded spatial memory errors. By organizing the stack and heap layout into per-size-class regions, we can apply persistent memory tags to each region in a predetermined pattern. Hence, the memory tags need only be initialized once, after which they can be reused by objects of the same size class. This eliminates the need for costly memory retagging and allows for a fixed, round-robin assignment of the tags, surrounding every object with large implicit spatial guards. While the size of such guards is bounded by the 4-bit MTE entropy (16 tags), the protection is efficient and deterministic. Indeed, we show StickyTags significantly outperforms existing solutions with realistic runtime overheads for practical adoption (≤ 4% on SPEC CPU2006), while fully mitigating 7 out of 8 spatial CVEs evaluated by a recent probabilistic MTE solution.
Floris Gorter, Taddeus Kroes, Herbert Bos, Cristiano Giuffrida
SP2
2020 BinRec: dynamic binary lifting and recompilation
abstract
Binary lifting and recompilation allow a wide range of install-time program transformations, such as security hardening, deobfuscation, and reoptimization. Existing binary lifting tools are based on static disassembly and thus have to rely on heuristics to disassemble binaries.
Anil Altinay, Joseph Nash, Taddeus Kroes, Prabhu Rajasekaran, Dixin Zhou, Adrian Dabrowski, David Gens, Yeoul Na, Stijn Volckaert, Cristiano Giuffrida, Herbert Bos, Michael Franz
EuroSys3
2018 Type-After-Type: Practical and Complete Type-Safe Memory Reuse
abstract
Temporal memory errors, such as use-after-free bugs, are increasingly popular among attackers and their exploitation is hard to stop efficiently using current techniques. We present a new design, called Type-After-Type, which builds on abstractions in production allocators to provide complete temporal type safety for C/C++ programs---ensuring that memory reuse is always type safe---and efficiently hinder temporal memory attacks. Type-After-Type uses static analysis to determine the types of all heap and stack allocations, and replaces regular allocations with typed allocations that never reuse memory previously used by other types. On the heap, Type-After-Type splits available memory into separate pools for each type. For the stack, Type-After-Type efficiently implements type-safe memory reuse for the first time, pushing variables on separate stacks according to their types, unless they are provably safe (e.g., their address is not taken), in which case they are zero-initialized and kept on a special stack. In our evaluation, we show that Type-After-Type stops a variety of real-world temporal memory attacks and on SPEC CPU2006 incurs a performance overhead of 4.3% and a memory overhead of 17.4% (geomean).
Erik van der Kouwe, Taddeus Kroes, Chris Ouwehand, Herbert Bos, Cristiano Giuffrida
ACSAC2
2018 Delta pointers: buffer overflow checks without the checks
abstract
Despite decades of research, buffer overflows still rank among the most dangerous vulnerabilities in unsafe languages such as C and C++. Compared to other memory corruption vulnerabilities, buffer overflows are both common and typically easy to exploit. Yet, they have proven so challenging to detect in real-world programs that existing solutions either yield very poor performance, or introduce incompatibilities with the C/C++ language standard.
Taddeus Kroes, Koen Koning, Erik van der Kouwe, Herbert Bos, Cristiano Giuffrida
EuroSys1