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.

E-mail: nikos@vasilak.is
Office: 115 Waterman St., Room #555, Providence, RI 02912
ATLAS group | GitHub | Twitter | Scholar | DBLP | LinkedIn

Recent News

Jan'24: New website for the ATLAS research group just landed—check it out here!
Dec'23: We're organizing EuroSec'24, co-located with EuroSys.
Nov'23: Brown CS is hiring in systems! I'm co-chairing the search—if you have questions, feel free to reach out.
Oct'23: The 3rd PaSh Research Workshop is held at Brown University!
Sep'23: Brown CS News published an article on our ACM AsiaCCS'23 distinguished paper award!
Jun'23: We are organizing ACM SCORED'23, a workshop on software supply-chain security!

More news.

Current Courses/Seminars

In Fall'24, I am teaching CS2952R: Systems Transforming Systems!

Full list of courses I've tought.

Current Students & Postdocs

Full list of current and past students and postdocs.

Current Research

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

Modern dependencies

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 the Acceleration and Scale-out of Software Systems: Some programming environments, such as the shell, are used pervasively partly due to their 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 acceleration and scale-out in these environments—along with serious correctness and compatibility guarantees.

Microservices

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.

More info on ATLAS web.

Some Recent Publications

BinWrap: Hybrid Protection Against Native Node.js Add-ons

George Christou, Grigoris Ntousakis, Eric Lahtinen, Sotiris Ioannidis, Vasileios P. Kemerlis, and Nikos Vasilakis. ACM ASIA Conference on Computer and Commu- nications Security (ASIA CCS ’23),
Received Distinguished Paper Award
ACM DL | PDF | code

DiSh: Dynamic Shell-Script Distribution

Tammam Mustafa, Pratyush Das, Konstsantinos Kallas, and Nikos Vasilakis. 20th USENIX Symposium on Networked Systems Design and Implementation (NSDI'23)
Usenix | PDF | code

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

Full list of publications.