CSE - Software Security Analysis using Machine Learning & Quantum Computing

Our lab's research projects are at the intersection of security and software engineering.

The S2E research lab (https://s2e-lab.github.io/)  has several main ongoing research projects related to:

  • Relying on the power of Large Language Models (LLMs), such as ChatGPT and GitHub Copilot, to generate unit tests for security features.
  • Enhancing the code generated by LLMs such that it is not only functionally correct, but also free of vulnerabilities.
  • Exploring multi-agent architectures for software security analysis.
  • Evaluating whether the safety guardrails in code LLMs hold when prompts are written in languages other than English.
  • Building benchmarks and datasets that measure both the correctness and the security of LLM-generated code across programming languages, including low-resource ones.
  • Designing guardrails for code LLMs used in CS courses, so students get scaffolded hints rather than complete solutions.
  • Developing novel program analysis techniques to identify software vulnerabilities within code commits (i.e., verify whether a code change will introduce a new vulnerability in production).
  • Using quantum computing to scale exploit generation and vulnerability detection
  • Developing novel and secure model serialization formats. 

When applying, please submit both (1) your CV / Resume and (2) Transcript (an unofficial transcript is acceptable as long as the GPA and courses are clearly listed).

Name of research group, project, or lab
Security and Software Engineering research lab
Why join this research group or lab?

Joining this lab means working alongside other graduate and undergraduate students to build cutting-edge techniques to make software systems more secure. You'll have the opportunity to work on practical software security challenges, contributing tools and methods that benefit both academia and industry. 

Logistics Information:
Project categories
Computer Science & Engineering
Student ranks applicable
Junior
Senior
Graduate Student
Student qualifications

Programing Experience: Python and/or Java. Must have taken Systems Programming (CSE-20289) or an equivalent course with advanced programming assignments.

Please submit both your CV / Resume and Transcript when applying.

Hours per week
1 credit / 3-6 hours
2 credits / 6-12 hours
3 credits / 12+ hours
Compensation
Research for Credit
Number of openings
6
Techniques learned

You will learn advanced program analysis, using large language models (LLMs) for secure code generation & testing, and data analysis techniques. Students who join the S2E lab will help design and implementing novel techniques using Python and/or Java.

Contact Information:
Mentor
jdasilv2@nd.edu
Assistant Professor
Name of project director or principal investigator
Joanna Cecilia da Silva Santos
Email address of project director or principal investigator
jdasilv2@nd.edu
6 sp. | 0 appl.
Hours per week
1 credit / 3-6 hours (+2)
1 credit / 3-6 hours2 credits / 6-12 hours3 credits / 12+ hours
Project categories
Computer Science & Engineering