Nikos' profile picture

I am an Assistant Professor of Computer Science at Brown University. My research encompasses systems, programming languages, and security—focusing on automatically enhancing software systems with new capabilities. This enhancement forms a transition path towards secure distributed environments targeting multiple scales.

I am also a research affiliate at MIT CSAIL; a Co-Founder and Chief Technology Officer at Require Security; and a member of the Technical Steering Committee behind PaSh, a shell-script parallelization project hosted by the Linux Foundation.

I draw immense enjoyment from collaboration and mentoring—including finding passionate people, growing together, and achieving common goals. Feel free to reach out below!

Office: CIT 555; 115 Waterman St., Providence, RI 02912
Other: GitHub | Twitter | Scholar | DBLP | LinkedIn

Recent News

Jan.2023: DiSh, the dynamic shell-script distribution extensions to PaSh, made it to NSDI'23!

Dec.2022: SecBench.js, a security benchmark suite for JavaScript, made it to ICSE'23!

Nov.2022: Pitchfork, an application-level privilege separation system, made it to ACSAC'22!

Oct.2022: Georgios Liargkovas joins the group for a six-month internship on PaSh!

Jun.2022: MIT News covered our work on PaSh: Faster computing results without fear of errors!

May.2022: Accepted an Asst. Prof. position at Brown CS, starting in July 2022!

Mar.2022: PaSh's new just-in-time (JIT) compilation engine just got into OSDI'22!

Feb.2022: Michael, Konstantinos, and I are organizing a PaSh research retreat/hackathon at CSAIL—please join us!

Feb.2022: Felix Stutz from MPI SWS is joining the group for a six-month research visit.

Jan.2021: PPoPP'22 poster outlining active learning techniques for automated Unix command parallelization

Dec.2021: Serving on the EdgeSys22 PC—visit Rennes, France, by submitting your most exciting work!

Nov.2021: Presenting on software supply chains at Dagstuhl Seminar 21481 on Secure Compilation

Nov.2021: At CCS'21 presenting on Mir and Harp, two new systems targeting software supply-chain threats.

Oct.2021: Tammam Mustafa joins the group for his M.Eng thesis on distributed PaSh extensions!

Current Projects

I enjoy work that is highly collaborative, serves everyday developers, and has real-world impact!

Automating Protections Against Software Supply-Chain Threats: Modern software incorporates thousands of dependencies as a means of accelerating its development and reducing its cost—at a significant risk to safety and security for both developers and end-users. We have built a series of systems targeting the JavaScript dependency ecosystem—the largest such ecosystem out there—automating the analysis, transformation, and synthesis of JavaScript dependencies across a variety of threat models.

PaSh Logo

Automating Shell Script Parallelization/Distribution: Shell scripting is used pervasively, partly due to its simplicity in combining components (commands) written in multiple languages. Unfortunately, this language-agnostic composition hinders automated parallelization and distribution, often forcing developers to manually rewrite shell programs (and their components) in other languages that support these features. We have built a system, PaSh, and several extensions and sibling projects that offer automated parallelization (and, soon, distribution) of Unix/Linux shell scripts—along with serious correctness and compatibility guarantees.

Automated Transformation Towards Secure Scalable Computing Paradigms: Recent trends are pushing developers towards new paradigms of secure and scalable computing—e.g., confidential computing, microservices, serverless computing, and edge computing. Transforming a conventional program to leverage these paradigms is a laborious manual process that can lead to suboptimal performance and in many cases even break the program. We are developing systems supporting this kind of decomposition and leveraging special hardware capabilities when these are available in the network.

Some Recent Publications

[30] Practically Correct, Just-in-Time Shell Script Parallelization

Konstantinos Kallas, Tammam Mustafa, Jan Bielak, Dimitris Karnikis, Thurston H.Y. Dang, Michael Greenberg, and Nikos Vasilakis. 16th USENIX Symposium on Operating Systems Design and Implementation (OSDI22)
USENIX | PDF | code | bibtex

Preventing Dynamic Library Compromise on Node.js via RWX-Based Privilege Reduction

Nikos Vasilakis, Cristian-Alexandru Staicu, Grigoris Ntousakis, Konstantinos Kallas, Ben Karel, André DeHon, Michael Pradel. ACM Conference on Computer and Communications Security (ACM CCS21)
ACM DL | PDF | code | arxiv:2011.00253 | bibtex

Efficient Module-Level Dynamic Analysis for Dynamic Languages with Module Recontextualization

Nikos Vasilakis, Grigoris Ntousakis, Veit Heller, Martin C. Rinard. ACM Joint European Software Engineering Conference & Symposium on the Foundations of Software Engineering (ESEC/FSE 2021)
Received Distinguished Paper Award
ACM DL | PDF | code | bibtex

PaSh: Light-touch Data-Parallel Shell Processing

Nikos Vasilakis*, Konstantinos Kallas*, Konstantinos Mamouras, Achilles Benetopoulos, Lazar Cvetković. ACM European Conference on Computer Systems (EuroSys'21)
Received Best Paper Award
ACM DL | PDF | code | bibtex

Full list of publications.

Brief Bio

Before Brown, I was a research scientist at MIT CSAIL after a postdoc there with Martin C. Rinard. I completed a PhD in Computer and Information Sciences at the University of Pennsylvania, advised by Jonathan M. Smith. During my time at Penn, I worked extensively with André DeHon and many collaborators from the Distributed Systems Lab. I hold a B.Sc./M.Eng. in Computer Engineering and Informatics from the University of Patras, Greece—and have spent several years building systems at VMWare, TJU, and other institutions.