Zhen Huang
Zhen Huang

Assistant Professor, School of Computing

College of Computing and Digital Media (CDM)

DePaul University

Chicago, IL 60604, USA

Phone: +1 312-362-8239

Email: zhen.huang at depaul.edu

Brief Bio

I earned my Ph.D and M.A.Sc from University of Toronto, and my B.Sc in computer science from Wuhan University. I am looking for self-motivated students to work with me. If you are interested, please feel free to contact me.

Research Interests

Software security, software reliability, mobile security, program analysis

Professional Activities
Research

The main theme of my research is to address software vulnerabilities, which is prevalent in all kinds of software systems and critically impairs software security. As manual effort has been shown to be not only costly but also inadequate for effectively and efficiently solving the issues caused by vulnerabilities, the goal of my research is to develop approaches to automatically detecting, mitigating, and fixing real-world vulnerabilities in widely adopted software.

Detecting Vulnerabilities

Our recent projects detect vulnerabilities in two ways: static analysis and dynamic analysis. We use machine learning and deep learning to detect vulnerabilities statically. By extracting program slices containing syntactical and semantical information about program code as features, our approach can accurately distinguish vulnerable code from non-vulnerable code.

We have also developed a technique to effectively reduce the false positives in detecting integer overflow vulnerabilities dynamically. The technique focuses on eliminating false positives caused by sanitization code added by software developers to filter out input data that can trigger integer overflow vulnerabilities.

Mitigating Vulnerabilities

To mitigate vulnerabilities, we propose Software Workaround for Rapid Response (SWRR) that mitigate vulnerabilities by disabling the execution of vulnerable code. With the help of error-handling code, SWRRs gracefully continue program execution after bypassing vulnerable code. We design SWRRs to be used like configuration workarounds. After SWRRs are deployed in applications, users can activate or deactivate them just like configuration options. Our prototype Talos employs program analysis to automatically synthesize SWRRs in the form of source code and instrument SWRRs into existing applications.

In situations where source code is not available, applying SWRRs to binary code directly is needed. We have developed an approach called RVM to automatically hardening binary code with security workarounds. RVM statically analyzes binary code of programs to identify error-handling code in the programs, in order to synthesize security workarounds. We have developed a prototype of RVM that automatically synthesizes SWRRs in the form of binary code and instruments them directly to Windows and Linux binaries.

Fixing Vulnerabilities

We aim to automatically generate correct patches for vulnerabilities. Focusing on three of the most common and severe software vulnerabilities, buffer overflow, bad cast, and integer overflow, Senx combines symbolic execution and program analysis to generate semantically correct security patches based on pre-defined patch models. Particularly we design Senx to address complex vulnerabilities by taking into account complex code structures and data structures. The security patches generated by Senx mimic security patches produced by software developers. Our prototype illustrates that security patches generated by Senx are effective, safe, and efficient in fixing real-world software vulnerabilities.


Students

I have had the opportunity to work with a group of awesome students at DePaul University.

Graduate Students
  • Hristina Dokic
  • Crystal Contreras
  • Zishi Li
  • Tavis Sotirin-Miller
  • Xiaowei Yu
  • Amy Aumpansub
Undergraduate Students
  • Marc White
  • Corey Hardesty
  • Syed Athar
  • Elona Selenica
  • Murtaza Meerza

Teaching

Winter 2023
  • CSC 376 Distributed Systems
  • CSC 373 Computer Sytems I
Fall 2023
  • CSC 397/CSC 595/SE 598 Program Analysis
  • CSC 406 Systems I
Spring 2023
  • CSC 376 Distributed Systems
  • CSC 373 Computer Systems I
Winter 2022
  • CSC 406 Systems I
  • CSC 373 Computer Systems I
Fall 2022
  • CSC 397/CSC 595/SE 598 Program Analysis
  • CSC 373 Computer Systems I
Spring 2022
  • CSC 406 Systems I
  • CSC 373 Computer Systems I
Winter 2021
  • CSC 406 Systems I
  • CSC 373 Computer Systems I
Spring 2021
  • CSC 406 Systems I
Winter 2020
  • CSC 406 Systems I
  • CSC 373 Computer Systems I
Fall 2020
  • CSC 406 Systems I
  • CSC 373 Computer Systems I
Spring 2020
  • CSC 406 Systems I
Winter 2019
  • CSC 243 Python for Programmers
  • CSC 406 Systems I
Fall 2019
  • CSC 243 Python for Programmers

Publications


(Underlined authors are students mentored by me.)

2024

  • . Debloating Feature-Rich Closed-Source Windows Software. IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER).. [PDF]

2023

  • . Targeted Symbolic Execution for UAF Vulnerabilities. 7th International Conference on System Reliability and Safety (ICSRS).. [PDF]
  • . Multiclass Classification of Software Vulnerabilities with Deep Learning. 15th International Conference on Machine Learning and Computing (ICMLC).

2022

  • . Runtime Recovery for Integer Overflows. 6th International Conference on System Reliability and Safety (ICSRS).
  • . Mitigating Vulnerabilities in Closed Source Software. EAI Endorsed Transactions on Security and Safety.
  • . Semantic-Aware Vulnerability Detection. 2022 IEEE Cyber Security and Resilience (CSR).
  • . Learning-based Vulnerability Detection in Binary Code. 14th International Conference on Machine Learning and Computing (ICMLC).[PDF][Bib]

2021

  • . Integer Overflow Detection with Delayed Runtime Test. 16th International Conference on Availability, Reliability and Security (ARES).[PDF][Bib]
  • . Fine Grained Program Partitioning for Security. 14th European Workshop on Systems Security (EuroSec). . [PDF][Bib]
  • . Detecting Software Vulnerabilities Using Neural Networks. 13th International Conference on Machine Learning and Computing (ICMLC). . [PDF][Bib][Code]

2020

  • . Using Safety Properties to Generate Vulnerability Patches. Usenix ;Login: Volume 45, Number 4. . [PDF][Bib]

2019

  • . Using Safety Properties to Generate Vulnerability Patches. 40th IEEE Symposium on Security and Privacy (S&P). . (Acceptance Rate: 12.5%, 84 out of 673) [PDF][Bib]
  • . Rapid Vulnerability Mitigation with Security Workarounds. 2nd NDSS Workshop on Binary Analysis Research (BAR). . [PDF][Bib][Code]

2018

  • Pearl-TEE: Supporting Untrusted Applications in TrustZone. 3rd ACM CCS Workshop on System Software for Trusted Execution (SysTEX). . [PDF][Bib]

2017

  • . BinPro: A Tool for Binary Source Code Provenance. arXiv:1711.00830. . [PDF][Bib]

2016

  • . Talos: Neutralizing Vulnerabilities with Security Workarounds for Rapid Response. 37th IEEE Symposium on Security and Privacy (S&P). . (Acceptance Rate: 13.3%, 55 out of 413) [PDF][Bib][Code]
  • . LMP: Light-Weighted Memory Protection with Hardware Assistance. 2016 Annual Computer Security Application Conference (ACSAC). . (Acceptance Rate: 22.8%, 48 out of 210) [PDF][Bib]

2014

  • . Ocasta: Clustering Configuration Settings For Error Recovery. 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN). Pages 479-490. . (Acceptance Rate: 30.3%, 56 out of 185) [PDF][Bib][Code]

2012

  • . PScout: Analyzing the Android Permission Specification. 19th ACM Conference on Computer and Communications Security (CCS). Pages 217-228. . (Acceptance Rate: 18.9%, 80 out of 423) [PDF][Bib][Code]

2011

  • A Look at SmartPhone Permission Models. 1st ACM Workshop on Security and Privacy in Smartphones and Mobile Devices (SPSM). Pages 63-67. . [PDF][Bib]