EDBT 2026 Demo / reviewers in the wild / expert
Enes Göktas
dblp:150/5208
· DBLP profile ↗
10ranked-venue papers
5as first author
1since 2021 · last 2023
0009-0000-4988-7229ORCID · reported
Domains — the database's venue-derived domains; a paper can count in several
Security and privacy · 10 · 5 first-author · 1 since 2021Systems, architecture and hardware · 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
7 papers |
Systems and software security · 78% Hardware security and side channels · 13% Digital forensics and information hiding · 8% | |
| Software engineering, system software, and programming languages
2 papers |
Program analysis · 100% |
Topics — the 17 heaviest of 18, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Systems and software security
exploitation |
1.0 | 5 | 2020 | Speculative Probing: Hacking Blind in the Spectre Era · CCS 2020 A Tough Call: Mitigating Advanced Code-Reuse Attacks at the Binary Level · IEEE Symposium on Security and Privacy 2016 Out of Control: Overcoming Control-Flow Integrity · IEEE Symposium on Security and Privacy 2014 |
Systems and software security
operating system security |
0.7 | 1 | 2023 | SysPart: Automated Temporal System Call Filtering for Binaries · CCS 2023 |
Systems and software security › operating system security
system call filtering |
0.7 | 1 | 2023 | SysPart: Automated Temporal System Call Filtering for Binaries · CCS 2023 |
Systems and software security › memory safety
control-flow integrity |
0.7 | 3 | 2016 | A Tough Call: Mitigating Advanced Code-Reuse Attacks at the Binary Level · IEEE Symposium on Security and Privacy 2016 Practical Context-Sensitive CFI · CCS 2015 Out of Control: Overcoming Control-Flow Integrity · IEEE Symposium on Security and Privacy 2014 |
Systems and software security › memory safety
address space layout randomization |
0.4 | 1 | 2020 | Speculative Probing: Hacking Blind in the Spectre Era · CCS 2020 |
Systems and software security
code randomization |
0.4 | 1 | 2020 | Speculative Probing: Hacking Blind in the Spectre Era · CCS 2020 |
Hardware security and side channels
microarchitectural side channel |
0.4 | 1 | 2020 | Speculative Probing: Hacking Blind in the Spectre Era · CCS 2020 |
Hardware security and side channels › microarchitectural attacks › transient execution attack › speculative execution attack
spectre |
0.4 | 1 | 2020 | Speculative Probing: Hacking Blind in the Spectre Era · CCS 2020 |
Systems and software security › exploitation
code reuse attack |
0.4 | 2 | 2014 | Size Does Matter: Why Using Gadget-Chain Length to Prevent Code-Reuse Attacks is Hard · USENIX Security Symposium 2014 Out of Control: Overcoming Control-Flow Integrity · IEEE Symposium on Security and Privacy 2014 |
Systems and software security › return-oriented programming defense
code reuse attack defense |
0.2 | 1 | 2016 | A Tough Call: Mitigating Advanced Code-Reuse Attacks at the Binary Level · IEEE Symposium on Security and Privacy 2016 |
Digital forensics and information hiding
information hiding |
0.2 | 1 | 2016 | Undermining Information Hiding (and What to Do about It) · USENIX Security Symposium 2016 |
Digital forensics and information hiding
steganography |
0.2 | 1 | 2016 | Undermining Information Hiding (and What to Do about It) · USENIX Security Symposium 2016 |
Systems and software security › exploitation › code reuse attack
return-oriented programming |
0.2 | 2 | 2014 | Out of Control: Overcoming Control-Flow Integrity · IEEE Symposium on Security and Privacy 2014 Size Does Matter: Why Using Gadget-Chain Length to Prevent Code-Reuse Attacks is Hard · USENIX Security Symposium 2014 |
Systems and software security
memory safety |
0.2 | 1 | 2014 | Size Does Matter: Why Using Gadget-Chain Length to Prevent Code-Reuse Attacks is Hard · USENIX Security Symposium 2014 |
Network security
traffic analysis |
0.1 | 1 | 2016 | Undermining Information Hiding (and What to Do about It) · USENIX Security Symposium 2016 |
Program analysis
binary analysis |
0.1 | 1 | 2016 | A Tough Call: Mitigating Advanced Code-Reuse Attacks at the Binary Level · IEEE Symposium on Security and Privacy 2016 |
Systems and software security
return-oriented programming defense |
0.1 | 1 | 2015 | Practical Context-Sensitive CFI · CCS 2015 |
Methods — techniques the papers use, named apart from their topics
static analysis · 1.3dynamic analysis · 1.3use-def analysis · 0.5liveness analysis · 0.5speculative execution · 0.4memory corruption · 0.4path tracking · 0.2binary instrumentation · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | SysPart: Automated Temporal System Call Filtering for BinariesabstractRestricting the system calls available to applications reduces the attack surface of the kernel and limits the functionality available to compromised applications. Recent approaches automatically identify the system calls required by programs to block unneeded ones. For servers, they even consider different phases of execution to tighten restrictions after initialization completes. However, they require access to the source code for applications and libraries, depend on users identifying when the server transitions from initialization to serving clients, or do not account for dynamically-loaded libraries. This paper introduces SYSPART, an automatic system-call filtering system designed for binary-only server programs that addresses the above limitations. Using a novel algorithm that combines static and dynamic analysis, SYSPART identifies the serving phases of all working threads of a server. Static analysis is used to compute the system calls required during the various serving phases in a sound manner, and dynamic observations are only used to complement static resolution of dynamically-loaded libraries when necessary. We evaluated SYSPART using six popular servers on x86-64 Linux to demonstrate its effectiveness in automatically identifying serving phases, generating accurate system-call filters, and mitigating attacks. Our results show that SYSPART outperforms prior binary-only approaches and performs comparably to source-code approaches. Vidya Lakshmi Rajagopalan, Konstantinos Kleftogiorgos, Enes Göktas, Jun Xu 0024, Georgios Portokalidis |
CCS | 3 |
| 2020 | Speculative Probing: Hacking Blind in the Spectre EraabstractTo defeat ASLR or more advanced fine-grained and leakage-resistant code randomization schemes, modern software exploits rely on information disclosure to locate gadgets inside the victim's code. In the absence of such info-leak vulnerabilities, attackers can still hack blind and derandomize the address space by repeatedly probing the victim's memory while observing crash side effects, but doing so is only feasible for crash-resistant programs. However, high-value targets such as the Linux kernel are not crash-resistant. Moreover, the anomalously large number of crashes is often easily detectable. In this paper, we show that the Spectre era enables an attacker armed with a single memory corruption vulnerability to hack blind without triggering any crashes. Using speculative execution for crash suppression allows the elevation of basic memory write vulnerabilities into powerful speculative probing primitives that leak through microarchitectural side effects. Such primitives can repeatedly probe victim memory and break strong randomization schemes without crashes and bypass all deployed mitigations against Spectre-like attacks. The key idea behind speculative probing is to break Spectre mitigations using memory corruption and resurrect Spectre-style disclosure primitives to mount practical blind software exploits. To showcase speculative probing, we target the Linux kernel, a crash-sensitive victim that has so far been out of reach of blind attacks, mount end-to-end exploits that compromise the system with just-in-time code reuse and data-only attacks from a single memory write vulnerability, and bypass strong Spectre and strong randomization defenses. Our results show that it is crucial to consider synergies between different (Spectre vs. code reuse) threat models to fully comprehend the attack surface of modern systems. Enes Göktas, Kaveh Razavi, Georgios Portokalidis, Herbert Bos, Cristiano Giuffrida |
CCS | 1 |
| 2018 | Position-Independent Code Reuse: On the Effectiveness of ASLR in the Absence of Information DisclosureabstractAddress-space layout randomization is a wellestablished defense against code-reuse attacks. However, it can be completely bypassed by just-in-time code-reuse attacks that rely on information disclosure of code addresses via memory or side-channel exposure. To address this fundamental weakness, much recent research has focused on detecting and mitigating information disclosure. The assumption being that if we perfect such techniques, we will not only maintain layout secrecy but also stop code reuse. In this paper, we demonstrate that an advanced attacker can mount practical code-reuse attacks even in the complete absence of information disclosure. To this end, we present Position-Independent Code-Reuse Attacks, a new class of codereuse attacks relying on the relative rather than absolute location of code gadgets in memory. By means of memory massaging, the attacker first makes the victim program generate a rudimentary ROP payload (for instance, containing code pointers that target instructions "close" to relevant gadgets). Afterwards, the addresses in this payload are patched with small offsets via relative memory writes. To establish the practicality of such attacks, we present multiple Position-Independent ROP exploits against real-world software. After showing that we can bypass ASLR in current systems without requiring information disclosures, we evaluate the impact of our technique on other defenses, such as fine-grained ASLR, multi-variant execution, execute-only memory and re-randomization. We conclude by discussing potential mitigations. Enes Göktas, Benjamin Kollenda, Philipp Koppe, Erik Bosman, Georgios Portokalidis, Thorsten Holz, Herbert Bos, Cristiano Giuffrida |
EuroS&P | 1 |
| 2017 | Towards Automated Discovery of Crash-Resistant Primitives in Binary ExecutablesabstractMany modern defenses rely on address space layout randomization (ASLR) to efficiently hide security-sensitive metadata in the address space. Absent implementation flaws, an attacker can only bypass such defenses by repeatedly probing the address space for mapped (security-sensitive) regions, incurring a noisy application crash on any wrong guess. Recent work shows that modern applications contain idioms that allow the construction of crash-resistant code primitives, allowing an attacker to efficiently probe the address space without causing any visible crash. In this paper, we classify different crash-resistant primitives and show that this problem is much more prominent than previously assumed. More specifically, we show that rather than relying on labor-intensive source code inspection to find a few "hidden" application-specific primitives, an attacker can find such primitives semi-automatically, on many classes of real-world programs, at the binary level. To support our claims, we develop methods to locate such primitives in real-world binaries. We successfully identified 29 new potential primitives and constructed proof-of-concept exploits for four of them. Benjamin Kollenda, Enes Göktas, Tim Blazytko, Philipp Koppe, Robert Gawlik, Radhesh Krishnan Konoth, Cristiano Giuffrida, Herbert Bos, Thorsten Holz |
DSN | 2 |
| 2016 | A Tough Call: Mitigating Advanced Code-Reuse Attacks at the Binary LevelabstractCurrent binary-level Control-Flow Integrity (CFI) techniques are weak in determining the set of valid targets for indirect control flow transfers on the forward edge. In particular, the lack of source code forces existing techniques to resort to a conservative address-taken policy that overapproximates this set. In contrast, source-level solutions can accurately infer the targets of indirect calls and thus detect malicious control-flow transfers more precisely. Given that source code is not always available, however, offering similar quality of protection at the binary level is important, but, unquestionably, more challenging than ever: recent work demonstrates powerful attacks such as Counterfeit Object-oriented Programming (COOP), which made the community believe that protecting software against control-flow diversion attacks at the binary level is rather impossible. In this paper, we propose binary-level analysis techniques to significantly reduce the number of possible targets for indirect branches. More specifically, we reconstruct a conservative approximation of target function prototypes by means of use-def analysis at possible callees. We then couple this with liveness analysis at each indirect callsite to derive a many-to-many relationship between callsites and target callees with a much higher precision compared to prior binary-level solutions. Experimental results on popular server programs and on SPEC CPU2006 show that TypeArmor, a prototype implementation of our approach, is efficient - with a runtime overhead of less than 3%. Furthermore, we evaluate to what extent TypeArmor can mitigate COOP and other advanced attacks and show that our approach can significantly reduce the number of targets on the forward edge. Moreover, we show that TypeArmor breaks published COOP exploits, providing concrete evidence that strict binary-level CFI can still mitigate advanced attacks, despite the absence of source information or C++ semantics. Victor van der Veen, Enes Göktas, Moritz Contag, Andre Pawlowski, Xi Chen 0038, Sanjay Rawat 0001, Herbert Bos, Thorsten Holz, Elias Athanasopoulos, Cristiano Giuffrida |
IEEE Symposium on Security and Privacy | 2 |
| 2016 | Undermining Information Hiding (and What to Do about It)
Enes Göktas, Robert Gawlik, Benjamin Kollenda, Elias Athanasopoulos, Georgios Portokalidis, Cristiano Giuffrida, Herbert Bos |
USENIX Security Symposium | 1 |
| 2015 | ShrinkWrap: VTable Protection without Loose EndsabstractAs VTable hijacking becomes the primary mode of exploitation against modern browsers, protecting said VTables has recently become a prime research interest. While multiple source- and binary-based solutions for protecting VTables have been proposed already, we found that in practice they are too conservative, which allows determined attackers to circumvent them. In this paper we delve into the design of C++ VTables and match that knowledge against the now industry standard protection scheme of VTV. We propose an end-to-end design that significantly refines VTV, to offer a provably optimal protection scheme. As we build on top of VTV, we preserve all of its advantages in terms of software compatibility and overhead. Thus, our proposed design comes "for free" for any user today. Besides the design we propose a testing methodology, which can be used by future developers to validate their implementations. We evaluated our protection scheme on Google Chrome and show that no compatibility issues were introduced, while overhead is also unchanged compared to the baseline of VTV. István Haller, Enes Göktas, Elias Athanasopoulos, Georgios Portokalidis, Herbert Bos |
ACSAC | 2 |
| 2015 | Practical Context-Sensitive CFIabstractCurrent Control-Flow Integrity (CFI) implementations track control edges individually, insensitive to the context of preceding edges. Recent work demonstrates that this leaves sufficient leeway for powerful ROP attacks. Context-sensitive CFI, which can provide enhanced security, is widely considered impractical for real-world adoption. Our work shows that Context-sensitive CFI (CCFI) for both the backward and forward edge can be implemented efficiently on commodity hardware. We present PathArmor, a binary-level CCFI implementation which tracks paths to sensitive program states, and defines the set of valid control edges within the state context to yield higher precision than existing CFI implementations. Even with simple context-sensitive policies, PathArmor yields significantly stronger CFI invariants than context-insensitive CFI, with similar performance. Victor van der Veen, Dennis Andriesse, Enes Göktas, Ben Gras, Lionel Sambuc, Asia Slowinska, Herbert Bos, Cristiano Giuffrida |
CCS | 3 |
| 2014 | Out of Control: Overcoming Control-Flow IntegrityabstractAs existing defenses like ASLR, DEP, and stack cookies are not sufficient to stop determined attackers from exploiting our software, interest in Control Flow Integrity (CFI) is growing. In its ideal form, CFI prevents flows of control that were not intended by the original program, effectively putting a stop to exploitation based on return oriented programming (and many other attacks besides). Two main problems have prevented CFI from being deployed in practice. First, many CFI implementations require source code or debug information that is typically not available for commercial software. Second, in its ideal form, the technique is very expensive. It is for this reason that current research efforts focus on making CFI fast and practical. Specifically, much of the work on practical CFI is applicable to binaries, and improves performance by enforcing a looser notion of control flow integrity. In this paper, we examine the security implications of such looser notions of CFI: are they still able to prevent code reuse attacks, and if not, how hard is it to bypass its protection? Specifically, we show that with two new types of gadgets, return oriented programming is still possible. We assess the availability of our gadget sets, and demonstrate the practicality of these results with a practical exploit against Internet Explorer that bypasses modern CFI implementations. Enes Göktas, Elias Athanasopoulos, Herbert Bos, Georgios Portokalidis |
IEEE Symposium on Security and Privacy | 1 |
| 2014 | Size Does Matter: Why Using Gadget-Chain Length to Prevent Code-Reuse Attacks is Hard
Enes Göktas, Elias Athanasopoulos, Michalis Polychronakis, Herbert Bos, Georgios Portokalidis |
USENIX Security Symposium | 1 |