Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Thanassis Avgerinos is active.

Publication


Featured researches published by Thanassis Avgerinos.


ieee symposium on security and privacy | 2010

All You Ever Wanted to Know about Dynamic Taint Analysis and Forward Symbolic Execution (but Might Have Been Afraid to Ask)

Edward J. Schwartz; Thanassis Avgerinos; David Brumley

Dynamic taint analysis and forward symbolic execution are quickly becoming staple techniques in security analyses. Example applications of dynamic taint analysis and forward symbolic execution include malware analysis, input filter generation, test case generation, and vulnerability discovery. Despite the widespread usage of these two techniques, there has been little effort to formally define the algorithms and summarize the critical issues that arise when these techniques are used in typical security contexts. The contributions of this paper are two-fold. First, we precisely describe the algorithms for dynamic taint analysis and forward symbolic execution as extensions to the run-time semantics of a general language. Second, we highlight important implementation choices, common pitfalls, and considerations when using these techniques in a security context.


computer aided verification | 2011

BAP: a binary analysis platform

David Brumley; Ivan Jager; Thanassis Avgerinos; Edward J. Schwartz

BAP is a publicly available infrastructure for performing program verification and analysis tasks on binary (i.e., executable) code. In this paper, we describe BAP as well as lessons learned from previous incarnations of binary analysis platforms. BAP explicitly represents all side effects of instructions in an intermediate language (IL), making syntaxdirected analysis possible. We have used BAP to routinely generate and solve verification conditions that are hundreds of megabytes in size and encompass 100,000s of assembly instructions.


ieee symposium on security and privacy | 2012

Unleashing Mayhem on Binary Code

Sang Kil Cha; Thanassis Avgerinos; Alexandre Rebert; David Brumley

In this paper we present Mayhem, a new system for automatically finding exploitable bugs in binary (i.e., executable) programs. Every bug reported by Mayhem is accompanied by a working shell-spawning exploit. The working exploits ensure soundness and that each bug report is security-critical and actionable. Mayhem works on raw binary code without debugging information. To make exploit generation possible at the binary-level, Mayhem addresses two major technical challenges: actively managing execution paths without exhausting memory, and reasoning about symbolic memory indices, where a load or a store address depends on user input. To this end, we propose two novel techniques: 1) hybrid symbolic execution for combining online and offline (concolic) execution to maximize the benefits of both techniques, and 2) index-based memory modeling, a technique that allows Mayhem to efficiently reason about symbolic memory at the binary level. We used Mayhem to find and demonstrate 29 exploitable vulnerabilities in both Linux and Windows programs, 2 of which were previously undocumented.


international conference on software engineering | 2014

Enhancing symbolic execution with veritesting

Thanassis Avgerinos; Alexandre Rebert; Sang Kil Cha; David Brumley

We present MergePoint, a new binary-only symbolic execution system for large-scale and fully unassisted testing of commodity off-the-shelf (COTS) software. MergePoint introduces veritesting, a new technique that employs static symbolic execution to amplify the effect of dynamic symbolic execution. Veritesting allows MergePoint to find twice as many bugs, explore orders of magnitude more paths, and achieve higher code coverage than previous dynamic symbolic execution systems. MergePoint is currently running daily on a 100 node cluster analyzing 33,248 Linux binaries; has generated more than 15 billion SMT queries, 200 million test cases, 2,347,420 crashes, and found 11,687 bugs in 4,379 distinct applications.


Communications of The ACM | 2014

Automatic exploit generation

Thanassis Avgerinos; Sang Kil Cha; Alexandre Rebert; Edward J. Schwartz; Maverick Woo; David Brumley

The idea is to identify security-critical software bugs so they can be fixed first.


principles and practice of declarative programming | 2009

Automatic refactoring of Erlang programs

Konstantinos F. Sagonas; Thanassis Avgerinos

This paper describes the design goals and current status of tidier, a software tool that tidies Erlang source code, making it cleaner, simpler, and often also more efficient. In contrast to other refactoring tools, tidier is completely automatic and is not tied to any particular editor or IDE. Instead, tidier comes with a suite of code transformations that can be selected by its user via command-line options and applied in bulk on a set of modules or entire applications using a simple command. Alternatively, users can use tidiers GUI to inspect one by one the transformations that will be performed on their code and manually select only those that they fancy. We have used tidier to clean up various applications of Erlang/OTP and have tested it on many open source Erlang code bases of significant size. We briefly report our experiences and show opportunities for tidiers current set of transformations on existing Erlang code out there. As a by-product, our paper also documents what we believe are good coding practices in Erlang. Last but not least, our paper describes in detail the automatic code cleanup methodology we advocate and a set of refactorings which are general enough to be applied, as is or with only small modifications, to the source code of programs written in Haskell or Clean and possibly even in non-functional languages.


annual erlang workshop | 2009

Cleaning up Erlang code is a dirty job but somebody's gotta do it

Thanassis Avgerinos; Konstantinos F. Sagonas

This paper describes opportunities for automatically modernizing Erlang applications, cleaning them up, eliminating certain bad smells from their code and occasionally also improving their performance. In addition, we present concrete examples of code improvements and our experiences from using a software tool with these capabilities, tidier, on Erlang code bases of significant size.


network and distributed system security symposium | 2011

AEG: Automatic Exploit Generation

Thanassis Avgerinos; Sang Kil Cha; Brent Lim Tze Hao; David Brumley


usenix security symposium | 2011

Q: exploit hardening made easy

Edward J. Schwartz; Thanassis Avgerinos; David Brumley


network and distributed system security symposium | 2011

TIE: Principled Reverse Engineering of Types in Binary Programs.

JongHyup Lee; Thanassis Avgerinos; David Brumley

Collaboration


Dive into the Thanassis Avgerinos's collaboration.

Top Co-Authors

Avatar

David Brumley

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Alexandre Rebert

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Sang Kil Cha

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

David Warren

Software Engineering Institute

View shared research outputs
Top Co-Authors

Avatar

Ivan Jager

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Jonathan M Foote

Software Engineering Institute

View shared research outputs
Top Co-Authors

Avatar

JongHyup Lee

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Maverick Woo

Carnegie Mellon University

View shared research outputs
Researchain Logo
Decentralizing Knowledge