Native WebLab

Safe Execution of Native Code in WebLab

Bachelor Thesis (2017)
Author(s)

B. Crielaard (TU Delft - Electrical Engineering, Mathematics and Computer Science)

C.J.K. Bruin (TU Delft - Electrical Engineering, Mathematics and Computer Science)

T.V. Aerts (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

DM Groenewegen – Mentor

E Visser – Graduation committee member

Otto Visser – Coach

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2017 Bram Crielaard, Chiel Bruin, Taico Aerts
More Info
expand_more
Publication Year
2017
Language
English
Copyright
© 2017 Bram Crielaard, Chiel Bruin, Taico Aerts
Graduation Date
04-07-2017
Awarding Institution
Delft University of Technology
Faculty
Electrical Engineering, Mathematics and Computer Science
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

WebLab is a system where students can write and test code using an online interface. Course coordinators can create assignments and exams, where they can define automated tests to verify that the student code meets requirements. As WebLab only offered support for programming languages which run on the Java Virtual Machine, it was limited to a specific set of languages. In this project, we have designed a system which enables WebLab to support arbitrary languages, while still being able to guarantee scalability, security and reliability. To limit the scope of this project, the focus was laid on the programming language Python. The designed system uses Docker containers to execute arbitrary code in a safe and isolated way. A test fuzzing system with tamper detection is used to achieve reliable test results. The system is flexible as support for new programming languages can be added with relatively little effort. This report describes the design of the system, the research that was done and the process used. The report concludes with recommendations for future work on this project.

Files

License info not available