falcosecurity / evolution

Evolution process of The Falco Project
Apache License 2.0
48 stars 37 forks source link

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

Closed jasondellaluce closed 12 months ago

jasondellaluce commented 1 year ago

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 commented 1 year ago

Paired GSoC submission to the CNCF:

MukulKolpe commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

/remove-lifecycle stale

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

jasondellaluce commented 12 months ago

I guess we made it! https://github.com/falcosecurity/evolution/issues/303

Good job @Rohith-Raju.

/close

poiana commented 12 months ago

@jasondellaluce: Closing this issue.

In response to [this](https://github.com/falcosecurity/evolution/issues/262#issuecomment-1711871211): >I guess we made it! https://github.com/falcosecurity/evolution/issues/303 > >Good job @Rohith-Raju. > >/close Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.