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

Theofilos Petsios

dblp:149/2447 · DBLP profile ↗
← Back
9ranked-venue papers
3as first author
0since 2021 · last 2019
—ORCID · none

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

Security and privacy · 8 · 3 first-authorSystems, 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
5 papers
Systems and software security · 61% Privacy and data protection · 22% Network security · 13%
Software engineering, system software, and programming languages
2 papers
Software testing · 70% Program analysis · 30%

Topics — the 14 heaviest of 16, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Systems and software security › vulnerability discovery
algorithmic complexity vulnerabilities
0.312017
SlowFuzz: Automated Domain-Independent Detection of Algorithmic Complexity Vulnerabilities · CCS 2017
Systems and software security › return-oriented programming defense
code reuse attack defense
0.312017
kR^X: Comprehensive Kernel Protection against Just-In-Time Code Reuse · EuroSys 2017
Network security › attack strategy
denial-of-service attack
0.312017
SlowFuzz: Automated Domain-Independent Detection of Algorithmic Complexity Vulnerabilities · CCS 2017
Systems and software security › operating system security
kernel security
0.312017
kR^X: Comprehensive Kernel Protection against Just-In-Time Code Reuse · EuroSys 2017
Systems and software security
memory safety
0.312017
kR^X: Comprehensive Kernel Protection against Just-In-Time Code Reuse · EuroSys 2017
Software testing
differential testing
0.312017
NEZHA: Efficient Domain-Independent Differential Testing · IEEE Symposium on Security and Privacy 2017
Software testing › fuzzing
input generation
0.312017
NEZHA: Efficient Domain-Independent Differential Testing · IEEE Symposium on Security and Privacy 2017
Program analysis › error detection
semantic bug detection
0.312017
NEZHA: Efficient Domain-Independent Differential Testing · IEEE Symposium on Security and Privacy 2017
Privacy and data protection
location privacy
0.212015
Where's Wally?: Precise User Discovery Attacks in Location Proximity Services · CCS 2015
Systems and software security › memory safety
memory isolation
0.112017
kR^X: Comprehensive Kernel Protection against Just-In-Time Code Reuse · EuroSys 2017
Hardware security and side channels
trusted execution environments
0.112017
kR^X: Comprehensive Kernel Protection against Just-In-Time Code Reuse · EuroSys 2017
Systems and software security
vulnerability discovery
0.112017
NEZHA: Efficient Domain-Independent Differential Testing · IEEE Symposium on Security and Privacy 2017
Software testing
fuzzing
0.112017
SlowFuzz: Automated Domain-Independent Detection of Algorithmic Complexity Vulnerabilities · CCS 2017
Privacy and data protection › web privacy
web tracking detection
0.112014
XRay: Enhancing the Web's Transparency with Differential Correlation · USENIX Security Symposium 2014

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

gray-box input generation · 0.6fuzzing · 0.6black-box input generation · 0.6trilateration · 0.4memory safety policy enforcement · 0.3code diversification · 0.3
YearPublicationVenuePosition
2019 Kernel Protection Against Just-In-Time Code Reuse
abstract
The abundance of memory corruption and disclosure vulnerabilities in kernel code necessitates the deployment of hardening techniques to prevent privilege escalation attacks. As stricter memory isolation mechanisms between the kernel and user space become commonplace, attackers increasingly rely on code reuse techniques to exploit kernel vulnerabilities. Contrary to similar attacks in more restrictive settings, as in web browsers, in kernel exploitation, non-privileged local adversaries have great flexibility in abusing memory disclosure vulnerabilities to dynamically discover, or infer, the location of code snippets in order to construct code-reuse payloads. Recent studies have shown that the coupling of code diversification with the enforcement of a “read XOR execute” (R ∧ X) memory safety policy is an effective defense against the exploitation of userland software, but so far this approach has not been applied for the protection of the kernel itself. In this article, we fill this gap by presenting kR ∧ X: a kernel-hardening scheme based on execute-only memory and code diversification. We study a previously unexplored point in the design space, where a hypervisor or a super-privileged component is not required. Implemented mostly as a set of GCC plugins, kR ∧ X is readily applicable to x86 Linux kernels (both 32b and 64b) and can benefit from hardware support (segmentation on x86, MPX on x86-64) to optimize performance. In full protection mode, kR ∧ X incurs a low runtime overhead of 4.04%, which drops to 2.32% when MPX is available, and 1.32% when memory segmentation is in use.
Marios Pomonis, Theofilos Petsios, Angelos D. Keromytis, Michalis Polychronakis, Vasileios P. Kemerlis
ACM Trans. Priv. Secur.2
2017 SlowFuzz: Automated Domain-Independent Detection of Algorithmic Complexity Vulnerabilities
abstract
Algorithmic complexity vulnerabilities occur when the worst-case time/space complexity of an application is significantly higher than the respective average case for particular user-controlled inputs. When such conditions are met, an attacker can launch Denial-of-Service attacks against a vulnerable application by providing inputs that trigger the worst-case behavior. Such attacks have been known to have serious effects on production systems, take down entire websites, or lead to bypasses of Web Application Firewalls.
Theofilos Petsios, Jason Zhao, Angelos D. Keromytis, Suman Jana
CCS1
2017 kR^X: Comprehensive Kernel Protection against Just-In-Time Code Reuse
abstract
The abundance of memory corruption and disclosure vulnerabilities in kernel code necessitates the deployment of hardening techniques to prevent privilege escalation attacks. As more strict memory isolation mechanisms between the kernel and user space, like Intel's SMEP, become commonplace, attackers increasingly rely on code reuse techniques to exploit kernel vulnerabilities. Contrary to similar attacks in more restrictive settings, such as web browsers, in kernel exploitation, non-privileged local adversaries have great flexibility in abusing memory disclosure vulnerabilities to dynamically discover, or infer, the location of certain code snippets and construct code-reuse payloads. Recent studies have shown that the coupling of code diversification with the enforcement of a "read XOR execute" (R^X) memory safety policy is an effective defense against the exploitation of userland software, but so far this approach has not been applied for the protection of the kernel itself.
Marios Pomonis, Theofilos Petsios, Angelos D. Keromytis, Michalis Polychronakis, Vasileios P. Kemerlis
EuroSys2
2017 NEZHA: Efficient Domain-Independent Differential Testing
abstract
Differential testing uses similar programs as cross-referencing oracles to find semantic bugs that do not exhibit explicit erroneous behaviors like crashes or assertion failures. Unfortunately, existing differential testing tools are domain-specific and inefficient, requiring large numbers of test inputs to find a single bug. In this paper, we address these issues by designing and implementing NEZHA, an efficient input-format-agnostic differential testing framework. The key insight behind NEZHA's design is that current tools generate inputs by simply borrowing techniques designed for finding crash or memory corruption bugs in individual programs (e.g., maximizing code coverage). By contrast, NEZHA exploits the behavioral asymmetries between multiple test programs to focus on inputs that are more likely to trigger semantic bugs. We introduce the notion of δ-diversity, which summarizes the observed asymmetries between the behaviors of multiple test applications. Based on δ-diversity, we design two efficient domain-independent input generation mechanisms for differential testing, one gray-box and one black-box. We demonstrate that both of these input generation schemes are significantly more efficient than existing tools at finding semantic bugs in real-world, complex software. NEZHA's average rate of finding differences is 52 times and 27 times higher than that of Frankencerts and Mucerts, two popular domain-specific differential testing tools that check SSL/TLS certificate validation implementations, respectively. Moreover, performing differential testing with NEZHA results in 6 times more semantic bugs per tested input, compared to adapting state-of-the-art general-purpose fuzzers like American Fuzzy Lop (AFL) to differential testing by running them on individual test programs for input generation. NEZHA discovered 778 unique, previously unknown discrepancies across a wide variety of applications (ELF and XZ parsers, PDF viewers and SSL/TLS libraries), many of which constitute previously unknown critical security vulnerabilities. In particular, we found two critical evasion attacks against ClamAV, allowing arbitrary malicious ELF/XZ files to evade detection. The discrepancies NEZHA found in the X.509 certificate validation implementations of the tested SSL/TLS libraries range from mishandling certain types of KeyUsage extensions, to incorrect acceptance of specially crafted expired certificates, enabling man-in-the-middle attacks. All of our reported vulnerabilities have been confirmed and fixed within a week from the date of reporting.
Theofilos Petsios, Salvatore J. Stolfo, Angelos D. Keromytis, Suman Jana
IEEE Symposium on Security and Privacy1
2017 Evaluating the Privacy Guarantees of Location Proximity Services
abstract
Location-based services have become an integral part of everyday life. To address the privacy issues that emerge from the use and sharing of location information, social networks and smartphone applications have adopted location proximity schemes as a means of balancing user privacy with utility. Unfortunately, despite the extensive academic literature on this topic, the schemes that large service providers have adopted are not always designed or implemented correctly, rendering users vulnerable to location-disclosure attacks. Such attacks have recently received major publicity as, in some cases, they even exposed citizens of oppressive regimes to life-threatening risks. In this article, we systematically assess the defenses that popular location-based services and mobile applications deploy to guard against adversaries seeking to identify a user’s location. We provide the theoretical foundations for formalizing the privacy guarantees of currently adopted proximity models, design practical attacks for each case, and prove tight bounds on the number of queries required for carrying out successful attacks in practice. To evaluate the completeness of our approach, we conduct extensive experiments against popular services including Facebook, Foursquare, and Grindr. Our results demonstrate that, even though the aforementioned services implement various privacy-preserving techniques to protect their users, they are still vulnerable to attacks. In particular, we are able to pinpoint Facebook users within 5m of their exact location. For Foursquare and Grindr, users are pinpointed within 15m of their location in 90% of the cases, even with the strictest privacy settings enabled. Our attacks are highly efficient and complete within a few seconds. The severity of our findings was acknowledged by Facebook and Foursquare, both of which have followed our recommendations and adopted our design of a safe proximity scheme in their production systems. As the number of mobile applications offering location functionality will continue to increase, service providers and software developers must be able to assess the privacy guarantees that their services offer. To that end, we discuss viable defenses that can be currently adopted by all major services, and provide an open-source testing framework to be used by researchers and service providers who wish to evaluate the privacy-preserving properties of applications offering proximity functionality.
George Argyros, Theofilos Petsios, Suphannee Sivakorn, Angelos D. Keromytis, Iasonas Polakis
ACM Trans. Priv. Secur.2
2015 DynaGuard: Armoring Canary-based Protections against Brute-force Attacks
abstract
Over the past decade many exploit mitigation techniques have been introduced to defend against memory corruption attacks. W^X, ASLR, and canary-based protections are nowadays widely deployed and considered standard practice. However, despite the fact that these techniques have evolved over time, they still suffer from limitations that enable skilled adversaries to bypass them.
Theofilos Petsios, Vasileios P. Kemerlis, Michalis Polychronakis, Angelos D. Keromytis
ACSAC1
2015 Where's Wally?: Precise User Discovery Attacks in Location Proximity Services
abstract
Location proximity schemes have been adopted by social networks and other smartphone apps as a means of balancing user privacy with utility. However, misconceptions about the privacy offered by proximity services have rendered users vulnerable to trilateration attacks that can expose their location. Such attacks have received major publicity. and, as a result, popular service providers have deployed countermeasures for preventing user discovery attacks.
Iasonas Polakis, George Argyros, Theofilos Petsios, Suphannee Sivakorn, Angelos D. Keromytis
CCS3
2014 IntFlow: improving the accuracy of arithmetic error detection using information flow tracking
abstract
Integer overflow and underflow, signedness conversion, and other types of arithmetic errors in C/C++ programs are among the most common software flaws that result in exploitable vulnerabilities. Despite significant advances in automating the detection of arithmetic errors, existing tools have not seen widespread adoption mainly due to their increased number of false positives. Developers rely on wrap-around counters, bit shifts, and other language constructs for performance optimizations and code compactness, but those same constructs, along with incorrect assumptions and conditions of undefined behavior, are often the main cause of severe vulnerabilities. Accurate differentiation between legitimate and erroneous uses of arithmetic language intricacies thus remains an open problem.
Marios Pomonis, Theofilos Petsios, Kangkook Jee, Michalis Polychronakis, Angelos D. Keromytis
ACSAC2
2014 XRay: Enhancing the Web's Transparency with Differential Correlation
Mathias Lécuyer, Guillaume Ducoffe, Francis Lan, Andrei Papancea, Theofilos Petsios, Riley Spahn, Augustin Chaintreau, Roxana Geambasu
USENIX Security Symposium5