Anastasios Andronidis

dblp:203/1759 · DBLP profile ↗
← Back
5ranked-venue papers
1as first author
2since 2021 · last 2022
0000-0001-6456-6685ORCID · corroborated

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

Systems, architecture and hardware · 3Software engineering, systems software and programming languages · 3 · 1 first-author · 2 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.

Software engineering, system software, and programming languages
3 papers
Software maintenance and evolution · 34% Software testing · 33% Concurrent programming · 17%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Distributed systems · 100%

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

TopicWeightPapersLastEvidence papers
Software testing
fuzzing
0.612022
SnapFuzz: high-throughput fuzzing of network applications · ISSTA 2022
Software maintenance and evolution
dynamic software updating
0.412019
MVEDSUA: Higher Availability Dynamic Software Updates via Multi-Version Execution · ASPLOS 2019
Concurrent programming
multi-version execution
0.412019
MVEDSUA: Higher Availability Dynamic Software Updates via Multi-Version Execution · ASPLOS 2019
Software maintenance and evolution › dynamic software updating
runtime patching
0.412019
MVEDSUA: Higher Availability Dynamic Software Updates via Multi-Version Execution · ASPLOS 2019
Software testing › fuzzing
state-aware fuzzing
0.212022
SnapFuzz: high-throughput fuzzing of network applications · ISSTA 2022
Distributed systems › distributed system dependability › reliable distributed systems
high-availability services
0.112019
MVEDSUA: Higher Availability Dynamic Software Updates via Multi-Version Execution · ASPLOS 2019
Programming languages and type systems
domain-specific languages
0.112017
A DSL Approach to Reconcile Equivalent Divergent Program Executions · USENIX ATC 2017

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

multi-version execution · 0.8dynamic software updating · 0.8fuzzing harness · 0.6
YearPublicationVenuePosition
2022 SnapFuzz: high-throughput fuzzing of network applications
abstract
In recent years, fuzz testing has benefited from increased computational power and important algorithmic advances, leading to systems that have discovered many critical bugs and vulnerabilities in production software. Despite these successes, not all applications can be fuzzed efficiently. In particular, stateful applications such as network protocol implementations are constrained by a low fuzzing throughput and the need to develop complex fuzzing harnesses that involve custom time delays and clean-up scripts.
Anastasios Andronidis, Cristian Cadar
ISSTA1
2022 SaBRe: load-time selective binary rewriting
abstract
Abstract Binary rewriting consists in disassembling a program to modify its instructions. However, existing solutions suffer from shortcomings in terms of soundness and performance. We present SaBRe, a load-time system for selective binary rewriting. SaBRe rewrites specific constructs—particularly system calls and functions—when the program is loaded into memory, and intercepts them using plugins through a simple API. We also discuss the theoretical underpinnings of disassembling and rewriting. We developed two backends—for and —which were used to implement three plugins: a fast system call tracer, a multi-version executor, and a fault injector. Our evaluation shows that SaBRe imposes little overhead, typically below 3%.
Paul-Antoine Arras, Anastasios Andronidis, Luís Pina, Karolis Mituzas, Qianyi Shu, Daniel Grumberg, Cristian Cadar
Int. J. Softw. Tools Technol. Transf.2
2019 MVEDSUA: Higher Availability Dynamic Software Updates via Multi-Version Execution
abstract
Dynamic Software Updating (DSU) is a technique for patching stateful software without shutting it down, which enables both timely updates and non-stop service. Unfortunately, bugs in the update itself---whether in the changed code or in the way the change is introduced dynamically---may cause the updated software to crash or misbehave. Furthermore, the time taken to dynamically apply the update may be unacceptable if it introduces a long delay in service. This paper makes the key observation that both problems can be addressed by employing Multi-Version Execution (MVE). To avoid delay in service, the update is applied to a forked copy while the original system continues to operate. Once the update completes, the MVE system monitors that the responses of both versions agree for the same inputs. Expected divergences are specified by the programmer using an MVE-specific DSL. Unexpected divergences signal possible errors and roll back the update, which simply means terminating the updated version and reverting to the original version. This is safe because the MVE system keeps the state of both versions in sync. If the new version shows no problems after a warmup period, operators can make it permanent and discard the original version. We have implemented this approach, which we call MVEDSUa, by extending the Kitsune DSU framework with Varan, a state-of-the-art MVE system. We have used MVEDSUa to update several high-performance servers: Redis, Memcached, and VSFTPD. Our results show that MVEDSUa significantly reduces the update-time delay, imposes little overhead in steady state, and easily recovers from a
Luís Pina, Anastasios Andronidis, Michael Hicks 0001, Cristian Cadar
ASPLOS2
2018 FreeDA: deploying incompatible stock dynamic analyses in production via multi-version execution
abstract
Dynamic analyses such as those implemented by compiler sanitizers and Valgrind are effective at finding and diagnosing challenging bugs and security vulnerabilities. However, most analyses cannot be combined on the same program execution, and they incur a high overhead, which typically prevents them from being used in production.
Luís Pina, Anastasios Andronidis, Cristian Cadar
CF2
2017 A DSL Approach to Reconcile Equivalent Divergent Program Executions
Luís Pina, Daniel Grumberg, Anastasios Andronidis, Cristian Cadar
USENIX ATC3