Network


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

Hotspot


Dive into the research topics where Volodymyr Kuznetsov is active.

Publication


Featured researches published by Volodymyr Kuznetsov.


architectural support for programming languages and operating systems | 2011

S2E: a platform for in-vivo multi-path analysis of software systems

Vitaly Chipounov; Volodymyr Kuznetsov; George Candea

This paper presents S2E, a platform for analyzing the properties and behavior of software systems. We demonstrate S2Es use in developing practical tools for comprehensive performance profiling, reverse engineering of proprietary software, and bug finding for both kernel-mode and user-mode binaries. Building these tools on top of S2E took less than 770 LOC and 40 person-hours each. S2Es novelty consists of its ability to scale to large real systems, such as a full Windows stack. S2E is based on two new ideas: selective symbolic execution, a way to automatically minimize the amount of code that has to be executed symbolically given a target analysis, and relaxed execution consistency models, a way to make principled performance/accuracy trade-offs in complex analyses. These techniques give S2E three key abilities: to simultaneously analyze entire families of execution paths, instead of just one execution at a time; to perform the analyses in-vivo within a real software stack--user programs, libraries, kernel, drivers, etc.--instead of using abstract models of these layers; and to operate directly on binaries, thus being able to analyze even proprietary software. Conceptually, S2E is an automated path explorer with modular path analyzers: the explorer drives the target system down all execution paths of interest, while analyzers check properties of each such path (e.g., to look for bugs) or simply collect information (e.g., count page faults). Desired paths can be specified in multiple ways, and S2E users can either combine existing analyzers to build a custom analysis tool, or write new analyzers using the S2E API.


operating systems design and implementation | 2014

Code-pointer integrity

Volodymyr Kuznetsov; Laszlo Szekeres; Mathias Payer; George Candea; R. Sekar; Dawn Song

Systems code is often written in low-level languages like C/C++, which offer many benefits but also delegate memory management to programmers. This invites memory safety bugs that attackers can exploit to divert control flow and compromise the system. Deployed defense mechanisms (e.g., ASLR, DEP) are incomplete, and stronger defense mechanisms (e.g., CFI) often have high overhead and limited guarantees [19, 15, 9]. We introduce code-pointer integrity (CPI), a new design point that guarantees the integrity of all code pointers in a program (e.g., function pointers, saved return addresses) and thereby prevents all control-flow hijack attacks, including return-oriented programming. We also introduce code-pointer separation (CPS), a relaxation of CPI with better performance properties. CPI and CPS offer substantially better security-to-overhead ratios than the state of the art, they are practical (we protect a complete FreeBSD system and over 100 packages like apache and postgresql), effective (prevent all attacks in the RIPE benchmark), and efficient: on SPEC CPU2006, CPS averages 1.2% overhead for C and 1.9% for C/C++, while CPIs overhead is 2.9% for C and 8.4% for C/C++. A prototype implementation of CPI and CPS can be obtained from http://levee.epfl.ch.


programming language design and implementation | 2012

Efficient state merging in symbolic execution

Volodymyr Kuznetsov; Johannes Kinder; Stefan Bucur; George Candea

Symbolic execution has proven to be a practical technique for building automated test case generation and bug finding tools. Nevertheless, due to state explosion, these tools still struggle to achieve scalability. Given a program, one way to reduce the number of states that the tools need to explore is to merge states obtained on different paths. Alas, doing so increases the size of symbolic path conditions (thereby stressing the underlying constraint solver) and interferes with optimizations of the exploration process (also referred to as search strategies). The net effect is that state merging may actually lower performance rather than increase it. We present a way to automatically choose when and how to merge states such that the performance of symbolic execution is significantly increased. First, we present query count estimation, a method for statically estimating the impact that each symbolic variable has on solver queries that follow a potential merge point; states are then merged only when doing so promises to be advantageous. Second, we present dynamic state merging, a technique for merging states that interacts favorably with search strategies in automated test case generation and bug finding tools. Experiments on the 96 GNU Coreutils show that our approach consistently achieves several orders of magnitude speedup over previously published results. Our code and experimental data are publicly available at http://cloud9.epfl.ch.


ACM Transactions on Computer Systems | 2012

The S2E Platform: Design, Implementation, and Applications

Vitaly Chipounov; Volodymyr Kuznetsov; George Candea

This article presents S2E, a platform for analyzing the properties and behavior of software systems, along with its use in developing tools for comprehensive performance profiling, reverse engineering of proprietary software, and automated testing of kernel-mode and user-mode binaries. Conceptually, S2E is an automated path explorer with modular path analyzers: the explorer uses a symbolic execution engine to drive the target system down all execution paths of interest, while analyzers measure and/or check properties of each such path. S2E users can either combine existing analyzers to build custom analysis tools, or they can directly use S2E’s APIs. S2E’s strength is the ability to scale to large systems, such as a full Windows stack, using two new ideas: selective symbolic execution, a way to automatically minimize the amount of code that has to be executed symbolically given a target analysis, and execution consistency models, a way to make principled performance/accuracy trade-offs during analysis. These techniques give S2E three key abilities: to simultaneously analyze entire families of execution paths instead of just one execution at a time; to perform the analyses in-vivo within a real software stack---user programs, libraries, kernel, drivers, etc.---instead of using abstract models of these layers; and to operate directly on binaries, thus being able to analyze even proprietary software.


usenix annual technical conference | 2010

Testing closed-source binary device drivers with DDT

Volodymyr Kuznetsov; Vitaly Chipounov; George Candea


Archive | 2011

System and method for in-vivo multi-path analysis of binary software

George Candea; Vitaly Chipounov; Volodymyr Kuznetsov


ieee symposium on security and privacy | 2015

High System-Code Security with Low Overhead

Jonas Wagner; Volodymyr Kuznetsov; George Candea; Johannes Kinder


hot topics in operating systems | 2013

Overify: optimizing programs for fast verification

Jonas Wagner; Volodymyr Kuznetsov; George Candea


Archive | 2012

Advantageous State Merging During Symbolic Analysis

Volodymyr Kuznetsov; Johannes Kinder; Stefan Bucur; George Candea


Archive | 2016

Improving systems software security through program analysis and instrumentation

Volodymyr Kuznetsov

Collaboration


Dive into the Volodymyr Kuznetsov's collaboration.

Top Co-Authors

Avatar

George Candea

École Polytechnique Fédérale de Lausanne

View shared research outputs
Top Co-Authors

Avatar

Vitaly Chipounov

École Polytechnique Fédérale de Lausanne

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Stefan Bucur

École Polytechnique Fédérale de Lausanne

View shared research outputs
Top Co-Authors

Avatar

Jonas Wagner

École Polytechnique Fédérale de Lausanne

View shared research outputs
Top Co-Authors

Avatar

Dawn Song

University of California

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

R. Sekar

Stony Brook University

View shared research outputs
Researchain Logo
Decentralizing Knowledge