∃ About Me
My research interests broadly cover the area of Program Analysis, Embedded Systems and Compilers. Concretely, my goal is to understand the influence of execution platform on critical software properties, such as performance, energy, robustness and security. In my doctoral dissertation, I worked on Execution-time Predictability, with a specific focus on Multi-core Platforms. At present, I am exploring different ideas for efficient, reliable and secure execution of complex software systems. Some specific application areas include (but not limited to) cyber-physical systems, mobile applications and genomic software.
Before joining SUTD, I was a post-doctoral scholar at Computer Science division in Saarbrücken, Germany. In Germany, I was affiliated with the Center for IT-Security, Privacy and Accountability (CISPA) and the Software Engineering Chair leaded by Prof. Andreas Zeller. Before coming to Germany, I was a post-doctoral researcher in the Department of Computer and Information Science in Linköping University, Sweden, where I primarily worked in the Embedded Systems Lab. I have obtained my Ph.D. in Computer Science from National University of Singapore (NUS), Singapore in 2013. Prior to my PhD study, I was working as a Research and Development Engineer in Synopsys for 1.5 years.
∀ Notice ∀
I am actively looking for PhD students to work on several projects related to Embedded Systems, testing/quantification
of side-channel leakage and certifying performance/security of autonomous cars and IoTs. If you are interested in my
research, feel free to contact me via email with your CV and apply to
SUTD PhD program (deadline 28th Feb and 15th September every year).
If you are already at SUTD and wish to discuss research opportunities, do not hesitate to book an appointment with me.
∃ Ongoing Projects
From a broader perspective, I investigate formal as well as experimental methodologies for the analysis of software systems. Specifically, I have focused on peoperties related to performance, security and energy consumption. Currently, I am working on the following projects:
Testing and Quantifying Side-channel Vulnerabilities:
Given a complex system, how do we test and quantify its vulnerability against side-channel attacks? Side-channel attacks aim to retrieve secret information from dynamic software properties, such as timing, memory-access statistics and so on. Whereas such attacks are easy to mount, its analysis poses a great challenge, as such analysis needs to systematically investigate both the hardware and software behaviour. In this project, we build techniques to validate and subsequently, strengthen software against side-channel attacks. To know more about the topic, please take a look at our following publications: TACAS-2017 (to appear), ITEQS-2017 (to appear), arxiv-2017, ASPDAC-2016.
Certifying Performance and Security of Autonomous Cars and IoTs:
How do we build models for validating complex systems such as autonomous cars, IoTs and smart home? In this newly instantiated project, we build such models and leverage such models for validating timing and security-related (e.g. information leakage) properties.
Verification and Validation of Non-functional Software Properties:
This is a rather large project with several directions. The aim of this project is to extend the foundation of software engineering for the analysis, testing, debugging and synthesis of software by taking into account its non-functional properties. To know more about the topic, please take a look at our following publications: JSA-2016, SPIN-2015, EMSOFT-2014, FSE-2014, RTSS-2013.
∃ Recent Activities
- Visited ESLAB at Linköping University and RCS at TU Munich to present our new approach of quantifying side-channel leakage.
- Invited talk on "Analyzing and Testing Next-generation Embedded Systems" at IISc Bangalore, SUTD Singapore, NTU Singapore, and ADSC Singapore. Previously, shorter versions of the talk have been presented at KTH Sweden, INRIA Grenoble, and INRIA Rennes.
- Invited to give a talk at ICT-Energy Science Conference.
- Invited to Dagstuhl Seminar Adaptive Isolation for Predictability and Security.
- Publication chair of ISSTA 2016.
- Served in the program committe of EMSOFT 2016.
- In Winter 2015-16, I organized a course on Analyzing and Testing Non-functional Software Properties. Check here for the course review.
∀ Recent ∀
[TACAS] Directed Automated Memory Performance Testing
23rd International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), 2017[Full Version] [Project Homepage]
[ITEQS] Testing Cache Side-channel Leakage
Tiyash Basu and Sudipta Chattopadhyay
International Workshop on Testing Extra-Functional Properties and Quality Characteristics of Software Systems (ITEQS), 2017 (Co-located with ICST 2017)[Project Homepage]
[JSA] Systematic Detection of Memory Related Performance Bottlenecks in GPGPU Programs
Adrian Horga, Sudipta Chattopadhyay, Petru Eles and Zebo Peng
Journal of System Architecture (JSA), 2016[Project Homepage]
∃ Recent Teaching
Elements of Software Construction
(Jan 2017 - Apr 2017, together with Sun Jun, at SUTD).
Analyzing and Testing Non-functional Software Properties
(Oct 2015 - March 2016, at Saarland University),
- CATAPULT: A symbolic-execution-based approach to test cache side channel.
- Side-channel Testing: A search-based software testing tool to discover cache side-channel vulnerabilities (developed by my student Tiyash Basu).
- GRAB: A performance debugging tool to discover and localize memory-related bottlenecks in GPGPU programs (developed by my student Adrian Horga).
- MESS: A memory performance checker for multi-core systems.
- Chronos for Multi-core: A Worst-case Execution Time analysis tool for multi-core systems.
- MIPS2LLVM: A software that translates MIPS binary code to LLVM bitcode preserving both functionality and memory performance (developed by my student Moritz Beck).