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

Enes Göktas

dblp:150/5208 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Systems and software security
exploitation
1.052020
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.712023
SysPart: Automated Temporal System Call Filtering for Binaries · CCS 2023
Systems and software security › operating system security
system call filtering
0.712023
SysPart: Automated Temporal System Call Filtering for Binaries · CCS 2023
Systems and software security › memory safety
control-flow integrity
0.732016
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.412020
Speculative Probing: Hacking Blind in the Spectre Era · CCS 2020
Systems and software security
code randomization
0.412020
Speculative Probing: Hacking Blind in the Spectre Era · CCS 2020
Hardware security and side channels
microarchitectural side channel
0.412020
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.412020
Speculative Probing: Hacking Blind in the Spectre Era · CCS 2020
Systems and software security › exploitation
code reuse attack
0.422014
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.212016
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.212016
Undermining Information Hiding (and What to Do about It) · USENIX Security Symposium 2016
Digital forensics and information hiding
steganography
0.212016
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.222014
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.212014
Size Does Matter: Why Using Gadget-Chain Length to Prevent Code-Reuse Attacks is Hard · USENIX Security Symposium 2014
Network security
traffic analysis
0.112016
Undermining Information Hiding (and What to Do about It) · USENIX Security Symposium 2016
Program analysis
binary analysis
0.112016
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.112015
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
YearPublicationVenuePosition
2023 SysPart: Automated Temporal System Call Filtering for Binaries
abstract
Restricting 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
CCS3
2020 Speculative Probing: Hacking Blind in the Spectre Era
abstract
To 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
CCS1
2018 Position-Independent Code Reuse: On the Effectiveness of ASLR in the Absence of Information Disclosure
abstract
Address-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&P1
2017 Towards Automated Discovery of Crash-Resistant Primitives in Binary Executables
abstract
Many 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
DSN2
2016 A Tough Call: Mitigating Advanced Code-Reuse Attacks at the Binary Level
abstract
Current 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 Privacy2
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 Symposium1
2015 ShrinkWrap: VTable Protection without Loose Ends
abstract
As 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
ACSAC2
2015 Practical Context-Sensitive CFI
abstract
Current 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
CCS3
2014 Out of Control: Overcoming Control-Flow Integrity
abstract
As 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 Privacy1
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 Symposium1