Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[Project Idea] Falco Playground: Web IDE for Security Rules with WebAssembly #262

Closed
jasondellaluce opened this issue Mar 15, 2023 · 9 comments
Labels
kind/feature New feature or request

Comments

@jasondellaluce
Copy link
Contributor

Description

Falco provides an intuitive and highly expressive rule language for configuring its powerful runtime security engine. However, the community still lacks an official and frictionless IDE solution for writing and testing Falco rules.

Since the last few releases, the Falco libraries increased the support for multiple architectures and platforms, and the integrated rules validator added a new output in machine-readable JSON format.

The idea for this project is to add WebAssembly as a new officially-supported compilation target for Falco by leveraging the Emscripten toolchain, and creating a new development environment for security rules in the form of a web single-page application by running Falco right inside the browser. The end result is envisioned to be similar to the Go Playground, but without the need of any backend.

The beauty of this idea is the opportunity of experiencing very different technologies of the cloud-native landscape all in a single project: low-level system code close to the Linux kernel, the fast-growing WebAssembly world, and frontend development for a web application. The feasibility of the project has already been assessed.

Expected Outcome

The rules editor playground will dramatically benefit the learning curve and the development experience of security practitioners writing Falco rules, and will be the basis on which new educational content could be created for the community.

The web application code will likely live in its own standalone repository under the Falcosecurity organization.

A stretch goal would be to provide reusable groundwork for future integrations with other IDEs supporting WebAssembly, such as Visual Studio Code.

Additional Context

This is a good project candidate for a new substantial contribution ideal from community newcomers wishing to participate in the Falco project. My intention is to propose this as a project idea for the Google Summer of Code 2023 submission driven by the CNCF.

@jasondellaluce jasondellaluce added the kind/feature New feature or request label Mar 15, 2023
@MukulKolpe
Copy link

Hey @jasondellaluce, I'm Mukul Kolpe, a third-year engineering student from India. I'm really interested to work on this project idea and kick off my journey contributing to Falco open source projects.

The requirements for this project align with my experience and interests. I've good experience working in JavaScript / Typescript, React, and React-based frameworks like Next.js, Gatsby.js, etc. I have been fascinated by WebAssembly stuff and reading a lot about it for a few months now. I've some experience working on and contributing to the cloud-native project.

I've read the Contributing Guidelines & Code of Conduct, Joined the #falco channel in Kubernetes slack Joined the mailing list.
I've started learning from Falco 101 Course from sysdig to get a clear understanding of Falco.

Are there any tasks or resources I should go through?
Any good first issues I can start working on?

Really excited to get involved and contribute to Falco projects in a meaningful way.
Thank you!!

@jasondellaluce
Copy link
Contributor Author

Hi @MukulKolpe! Nice meeting you and looking forward to seeing your submission to the GSoC23 program!

What's your level of expertise in Go and C++? We use those languages in most of the org's projects. If you're looking for places for an initial contribution, I think some repos with an easier learning curve can be plugin-sdk-go, plugin-sdk-cpp, and plugins. Let me know if you find something interesting to work on there!

@MukulKolpe
Copy link

MukulKolpe commented Mar 20, 2023

Thank you, @jasondellaluce!!
I'm somewhat proficient in Go, as I've been using it a lot recently. I've used C++ in the past but haven't been in touch lately. I'll try to figure out things and learn along the way. Thanks for suggesting repos. I'll start contributing as soon as I get a hold of the flow. I'll keep you posted on my progress. Thanks!

@a-verma26
Copy link

Greetings, @jasondellaluce ! My name is Abhishek Verma, and I am a master's student in computer science based in the USA. I recently completed my mid-term exams and have been eager to pursue my interests in open-source projects. That is when I came across your exceptional project, Falco, a couple of weeks ago, and it has been lingering in my mind ever since. The unique features of this project align perfectly with my interests and aspirations, and I am excited about the possibility of contributing to it.

My skillset comprises of proficiency in technologies such as JavaScript / Typescript, React, Next.js, Node.js, Redux.Js, and widely-used programming languages like C++ and Java. Moreover, I have also been learning Go, with an aim to enhance my skills and expand my knowledge base.

I have designed multiple user interfaces using React.JS and SCSS that resulted in a remarkable 16% increase in performance as measured by PageSpeed Insights, a tool by Google.

Currently, I am preparing to submit a proposal for the Falco project and am fully committed to devoting my time and expertise to this endeavor. I will keep you posted on my progress and look forward to collaborating with you on this exciting project!

@poiana
Copy link
Contributor

poiana commented Jun 19, 2023

Issues go stale after 90d of inactivity.

Mark the issue as fresh with /remove-lifecycle stale.

Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Provide feedback via https://github.com/falcosecurity/community.

/lifecycle stale

@jasondellaluce
Copy link
Contributor Author

/remove-lifecycle stale

The project got selected in the GSoC program and we're working on it.

@jasondellaluce
Copy link
Contributor Author

I guess we made it! #303

Good job @Rohith-Raju.

/close

@poiana
Copy link
Contributor

poiana commented Sep 8, 2023

@jasondellaluce: Closing this issue.

In response to this:

I guess we made it! #303

Good job @Rohith-Raju.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@poiana poiana closed this as completed Sep 8, 2023
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
kind/feature New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants