Design, implementation and deployment of a secure, large scale, distributed experimental platform environment


Project Description

Modern networks heavily depend on network middleboxes such as firewalls, NATing, and caching for security and performance. However, these components disrupt the internet's original end-to-end principle, which favored unaltered transmission of application data. As a result, issues have emerged such as preventing the internet from evolving or simply introducing new vulnerabilities. To address these problems, we have developed a language that enables us to generate test cases and test campaign between two distant parties using state machines. Our current goal is to experimentally validate this system on the Internet. To achieve this, we are looking for a student that would assist us in the design, implementation and deployment of a distributed experimental platform. During this internship, the student will have to compare various possible software architectures and network protocols, discuss their pros and cons in order to achieve the expected outcome. He/She will gain experience working with orchestrators such as Ansible and gain insight into designing secure distributed systems. He/She will also obtain first hand experience in testing for the presence of middleboxes on the Internet and will be asked to draw lessons from the results of the experiments.
Program - Computer Science
Division - Computer, Electrical and Mathematical Sciences and Engineering
Center Affiliation - Resilient Computing and Cybersecurity Center
Field of Study - network security

About the

Marc Dacier

Professor of Computer Science and Associate Director of Cybersecurity Center

Marc Dacier

Desired Project Deliverables

As the internship concludes, our objective is to have a working functional system capable of conducting continuous tests. That system will have been used to experimentally validate its efficiency and insights derived from these first experiments. It is imperative that the code and configuration files are thoroughly documented and readily accessible through GitHub. Additionally, we ask the student to produce instructional guides that outline the installation and configuration steps, making it easier to replicate the process.


Bachelor in Computer Engineering or Computer Sciences
Bachelor in Computer Engineering or Computer Sciences