I am interested in dependable systems, with an emphasis on automated testing, virtualization, and program analysis. From September 2008 until July 2014, I was a Ph.D. student at the Dependable Systems Lab at EPFL.
I built S2E, a platform for multi-path in-vivo analysis of complex software systems, at the Dependable Systems Laboratory (EPFL), led by Prof. George Candea. S2E empowers developers to build practical tools to enable applications such as comprehensive performance profiling, reverse engineering of proprietary software, and bug finding for both kernel-mode and user-mode binaries.
S2E is a virtual machine augmented with symbolic execution. Users install and run any unmodified x86 software stack in S2E, including programs, libraries, the OS kernel, and drivers. Symbolic execution then automatically explores hundreds of thousands paths through the system, allowing users to check desired properties even in corner-case situations. Unlike existing analysis tools, S2E does not require to write code in special languages or model the environment.
The S2E platform is open sourced and available at http://s2e.epfl.ch, with a ready-to-use demo, documentation, and tutorials. Five years after release, S2E acquired a rapidly growing user community of more than 200 members and is actively used by researchers and companies around the world in order to test distributed networks, analyze file systems, detect private data leaks in smartphone apps, perform security analysis, and more.
For more details, see Curriculum Vitae: [PDF]
- CodeTickler: Automated Software Testing as a Service, Cristian Zamfir, Vitaly Chipounov, George Candea. Workshop on High Performance Transaction Systems (HPTS), Pacific Grove, CA, September 2013
- The Case for System-level Backtracking, Edouard Bugnion, Vitaly Chipounov, and George Candea. In Workshop on Hot Topics in Operating Systems, May 2013
- The S²E Platform: Design, Implementation, and Applications, Vitaly Chipounov, Volodymyr Kuznetsov, and George Candea. In ACM Transactions on Computer Systems (TOCS), vol. 30, num. 1, 2012
- Enabling Sophisticated Analysis of x86 Binaries with RevGen, Vitaly Chipounov, Vlad Georgescu, Cristian Zamfir, and George Candea. In Proceedings of the 7th Workshop on Hot Topics in System Dependability, 2011
- S²E: A Platform for In-Vivo Multi-Path Analysis of Software Systems, Vitaly Chipounov, Volodymyr Kuznetsov, and George Candea. In Proceedings of the 16th ASPLOS Conference, 2011 BEST PAPER AWARD
- Testing Closed-Source Binary Device Drivers with DDT, Volodymyr Kuznetsov, Vitaly Chipounov, and George Candea. In Proceedings of the USENIX Annual Technical Conference, 2010
- Reverse Engineering of Binary Device Drivers with RevNIC, Vitaly Chipounov and George Candea. In Proceedings of the 5th ACM SIGOPS/EuroSys European Conference, 2010
- Cloud9: A Software Testing Service, Liviu Ciortea, Cristian Zamfir, Stefan Bucur, Vitaly Chipounov, George Candea, in ACM Operating Systems Review, Vol. 43, No. 4, December 2009 (also in Proc. of the 3rd ACM Intl. Workshop on Large Scale Distributed Systems and Middleware (LADIS), Big Sky, MT, Oct. 2009)
- Selective Symbolic Execution, Vitaly Chipounov, Vlad Georgescu, Cristian Zamfir, and George Candea. In Proceedings of the 5th Workshop on Hot Topics in System Dependability, 2009
- Reverse-Engineering Drivers for Safety and Portability, Vitaly Chipounov and George Candea. In Proceedings of the 4th Workshop on Hot Topics in System Dependability, 2008
System and method for in-vivo multi-path analysis of software systems, George Candea, Vitaly Chipounov, and Volodymyr Kuznetsov. US# 61/405,224
- Open Source Software World Challenge - Silver Prize in 2012 for the Device Driver Testing (DDT) project
- Intel Doctoral Student Honor Programme – recipient of $30,000 award in 2013
- ASPLOS 2011 Best Paper Award for S²E
- The Achilles’ Heel of Your Computer, In MIT Technology Review, June 30, 2010
- Software spürt schlechte Gerätetreiber auf, In Pressetext, July 1, 2010
- Software Engineering, 2009-2013. In charge of the pool of teaching assistants, Android/Eclipse tool chain setup on the computer labs, preparing and grading assignments, and giving several lectures.
- System-oriented Programming, 2008-2010. Assisting undergraduate students in the learning of the Unix environment, shell scripting and C programming. Responsible for organizing exams and supervising pools of teaching assistants.
- Real-Time Embedded Systems, 2008. Responsible for the design, implementation, and integration in Altera Quartus/NIOS IDE of hardware and software components used during the course (MMC/SD Card reader, FAT driver, VGA controller)
- Computer Architecture, 2007. Responsible for assisting the students in the implementation of a NIOS-compatible soft-core processor for the FPGA4U development board and the grading of a large number of exams.
- Information Technology Project, 2007. Managing and evaluating student groups for the implementation of a peer-to-peer file sharing project.
- External Reviewer
- SOSP (Symposium on Operating Systems Principles): 2011, 2013
- DSN (Annual IEEE/IFIP International Conference on Dependable Systems and Networks): 2011
- EuroSys (ACM SIGOPS/EuroSys European Conference on Computer Systems): 2008, 2011
- ASPLOS (ACM Conf. on Architectural Support for Programming Langs. and OSes): 2010
- HotOS (Workshop on Hot Topics in Operating Systems): 2009, 2011 , 2013
- USENIX (USENIX Annual Technical Conference): 2009, 2011