GithubHelp home page GithubHelp logo

falcosecurity / falco-website Goto Github PK

View Code? Open in Web Editor NEW
33.0 33.0 216.0 84.7 MB

Source code of the official Falco website

Home Page: https://falco.org

License: Creative Commons Attribution 4.0 International

HTML 66.97% Makefile 0.66% Shell 2.92% SCSS 17.17% CSS 1.95% JavaScript 10.33%
cncf containers documentation hacktoberfest security

falco-website's People

Contributors

aijamalnk avatar alacuku avatar alexakvelon avatar andreagit97 avatar bluefriday avatar bullet03 avatar dependabot[bot] avatar fededp avatar fntlnz avatar futurecreator avatar incertum avatar issif avatar jasondellaluce avatar jsalinas29 avatar krisnova avatar leodido avatar leogr avatar lucaguerra avatar lucperkins avatar maxgio92 avatar mfdii avatar mikegcoleman avatar mstemm avatar nigel-falco avatar pabloopez avatar radhikapc avatar rajakavitha1 avatar takaoshimizu avatar tropchaud avatar vjjmiras avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

falco-website's Issues

Documenting all system dependencies (capabilities, mounts, etc.)

What to document

Falco is touching critical parts of the operating system.
It would be extremely useful to have a list of system dependencies like:

  • mandatory host mounts
  • required Linux capabilities
  • seccomp filter
  • SELinux/Apparmor profiles

for:

  • stand alone Falco deployment without probes
  • Falco using eBPF probe
  • Falco using kernel module
  • probe-loader for kernel module
  • probe-loader for eBPF

So we could create least privileged Falco deployments.

gRPC server and client documentation

/area documentation

What would you like to be added:
We need to document:

  • Falco gRPC server configuration and usage
  • Falco gRPC outputs configuration and usage
  • gRPC API documentation
  • How to generate the certificates for mutual TLS
  • How to use the SDK with examples

Why is this needed:

Because it's a new feature and people will want to use it!

For consideration: Falco + YugabyteDB on GKE blog post

/area blog

What would you like to be added:

I've written a step-by-step blog post on how to integrate Falco with YugabyteDB running on GKE. See attached PDF. Happy to share out the source file with the appropriate folks.

Why is this needed:

YugabyteDB is a 100% open source, cloud-native database and we are looking to provide our users with as much information as possible on how to integrate YugabyteDB with CNCF projects...Falco being one of them.

Getting Started with Falco and Cloud-Native Distributed SQL on Google Kubernetes Engine (1).pdf

Cheatsheet doc

This issue intends to propose the creation of a cheatsheet-style doc for Falco, following from this tweet by @lucperkins.

I think that the target of the cheatsheet have to be the Falco rules (conditions, rules macros, common rules that the community most asks).

Update "Falco Updates" Subscription Form on Falco.org

The existing form on falco.org for subscribing to Falco project updates pushes to a deprecated Pardot instance hosted by Sysdig.

This issue is logged to update the form such that it instead points to a Marketo instance hosted by Sysdig. Subscribers will be ringfenced from other promotions unless they explicitly opt in.

<form id="mktoForm_1186"></form>
<script>MktoForms2.loadForm("//app-ab34.marketo.com", "067-QZT-881", 1186);</script>```

BPF probe build details in build from source page

Specify that to build the bpf probe one need to compile the target using clang instead of gcc (at least for now that most gcc installation do not support the bpf backend)

Page: content/source.md

Build from source with Alpine Linux

I think it would be useful to create another section on the documentation (similar to what you have right now) to address the Docker image creation process using Alpine Linux as the base OS. A lot of people like this approach because the image is very lightweight (~5MB) and reduces the attack surface a lot.

Issues and PR templates

The same way we did for Falco (and others) repository in this organization, this repo needs issues and pull-requests templates too.

GKE Installation page

While working on falcosecurity/falco#650 - @caquino shared the Terraform they used to deploy Falco on GKE.

What we want to do is to add a documentation page, specific for GKE and specify the installation methods for it, adding this terraform config as a viable option.

Here is the terraform definition from the issue.
resource "kubernetes_service_account" "falco_sa" {
  metadata {
    name = "falco-account"
    labels = {
      app  = "falco"
      role = "security"
    }
  }
  automount_service_account_token = true
}

resource "kubernetes_cluster_role" "falco_cr" {
  metadata {
    name = "falco-cluster-role"
    labels = {
      app  = "falco"
      role = "security"
    }
  }
  rule {
    api_groups = ["extensions", ""]
    resources  = ["nodes", "namespaces", "pods", "replicationcontrollers", "replicasets", "services", "daemonsets", "deployments", "events", "configmaps"]
    verbs      = ["get", "list", "watch"]
  }
  rule {
    non_resource_urls = ["/healthz", "/healthz/*"]
    verbs             = ["get"]
  }
}

resource "kubernetes_cluster_role_binding" "falco_crb" {
  metadata {
    name = "falco-cluster-role-bind"
    labels = {
      app  = "falco"
      role = "security"
    }
  }

  subject {
    kind      = "ServiceAccount"
    name      = kubernetes_service_account.falco_sa.metadata.0.name
    namespace = "default"
  }

  role_ref {
    kind      = "ClusterRole"
    name      = kubernetes_cluster_role.falco_cr.metadata.0.name
    api_group = "rbac.authorization.k8s.io"
  }
}

resource "kubernetes_config_map" "falco_cfgmap" {
  metadata {
    name = "falco-cfgmap"
    labels = {
      app  = "falco"
      role = "security"
    }
  }

  data = {
    "application_rules.yaml" = file("configs/falco/application_rules.yaml")
    "falco_rules.local.yaml" = file("configs/falco/falco_rules.local.yaml")
    "falco_rules.yaml"       = file("configs/falco/falco_rules.yaml")
    "k8s_audit_rules.yaml"   = file("configs/falco/k8s_audit_rules.yaml")
    "falco.yaml"             = file("configs/falco/falco.yaml")
  }
}

resource "kubernetes_daemonset" "falco_ds" {
  metadata {
    name = "falco-daemonset"
    labels = {
      app  = "falco"
      role = "security"
    }
  }

  spec {

    selector {
      match_labels = {
        app  = "falco"
        role = "security"
      }
    }

    template {
      metadata {
        labels = {
          app  = "falco"
          role = "security"
        }
      }

      spec {
        host_network         = true
        service_account_name = kubernetes_service_account.falco_sa.metadata.0.name
        dns_policy           = "ClusterFirstWithHostNet"

        volume {
          name = "docker-socket"
          host_path {
            path = "/var/run/docker.socket"
          }
        }
        volume {
          name = "containerd-socket"
          host_path {
            path = "/run/containerd/containerd.sock"
          }
        }
        volume {
          name = "dev-fs"
          host_path {
            path = "/dev"
          }
        }
        volume {
          name = "proc-fs"
          host_path {
            path = "/proc"
          }
        }
        volume {
          name = "boot-fs"
          host_path {
            path = "/boot"
          }
        }
        volume {
          name = "lib-modules"
          host_path {
            path = "/lib/modules"
          }
        }
        volume {
          name = "usr-fs"
          host_path {
            path = "/usr"
          }
        }
        volume {
          name = "etc-fs"
          host_path {
            path = "/etc"
          }
        }
        volume {
          name = "dshm"
          empty_dir {
            medium = "Memory"
          }
        }
        volume {
          name = "falco-config"
          config_map {
            name = kubernetes_config_map.falco_cfgmap.metadata.0.name
          }
        }

        container {
          name  = "falco"
          image = "falcosecurity/falco:latest"
          args = [
            "/usr/bin/falco",
            "--cri", "/host/run/containerd/containerd.sock",
            "-K", "/var/run/secrets/kubernetes.io/serviceaccount/token",
            "-k", "https://$(KUBERNETES_SERVICE_HOST)",
            "-pk",
          ]
          security_context {
            privileged = true
          }
          env {
            name  = "SYSDIG_BPF_PROBE"
            value = ""
          }
          env {
            name  = "KBUILD_EXTRA_CPPFLAGS"
            value = "-DCOS_73_WORKAROUND"
          }
          volume_mount {
            name       = "docker-socket"
            mount_path = "/host/var/run/docker.sock"
          }
          volume_mount {
            name       = "containerd-socket"
            mount_path = "/host/run/containerd/containerd.sock"
          }
          volume_mount {
            name       = "dev-fs"
            mount_path = "/host/dev"
          }
          volume_mount {
            name       = "proc-fs"
            mount_path = "/host/proc"
            read_only  = true
          }
          volume_mount {
            name       = "boot-fs"
            mount_path = "/host/boot"
            read_only  = true
          }
          volume_mount {
            name       = "lib-modules"
            mount_path = "/host/lib/modules"
            read_only  = true
          }
          volume_mount {
            name       = "usr-fs"
            mount_path = "/host/usr"
            read_only  = true
          }
          volume_mount {
            name       = "etc-fs"
            mount_path = "/host/etc"
            read_only  = true
          }
          volume_mount {
            name       = "dshm"
            mount_path = "/dev/shm"
          }
          volume_mount {
            name       = "falco-config"
            mount_path = "/etc/falco"
          }
        }
      }
    }
  }
}

resource "kubernetes_service" "falco_svc" {
  metadata {
    name = kubernetes_daemonset.falco_ds.metadata.0.name
    labels = {
      app  = "falco"
      role = "security"
    }
  }
  spec {
    type = "ClusterIP"

    port {
      protocol = "TCP"
      port     = 8765
    }

    selector = {
      app  = "falco"
      role = "security"
    }
  }
}

Using Falco with Elasticsearch

/area documentation

What would you like to be added:
On the Falco slack channel, @tembleking shared a very nice deck he is using to present how to send Falco events to Elasticsearch. I think we want to have that same content in the form of a documentation page that our users can follow when installing Falco.

Presentation here: https://docs.google.com/presentation/d/1vC5PIHMjh_x8BsWRou-g7pGHe6f6lOK2aeSbIAVh7B4/edit?usp=sharing
Why is this needed:

Because many users want a place to aggregate their events, and this can be a good opportunity to simplify their lives by providing a tutorial.

Can't navigate documentation on Mobile

What happened:

As a user, while navigating the Falco Documentation on my mobile devices with less than 800px width I can't see the navigation.

This is preventing me to go through the pages and learn how to use Falco.

Vertical Example on a phone screen 320x480
image

This is what I see if I click the menu icon top right, always on phone screen 320x480. It only shows the top level menus.
image

Horizontal Example on a phone screen 320x480
image
Horizontal Example on an iPad 768x1024
image

What you expected to happen:

I expect it to show me the menu, like in this figure. However it will need to be adapted for mobile devices.

image

How to reproduce it (as minimally and precisely as possible):

Go to https://falco.org/docs using a mobile device and see how you can't navigate the docs.

Anything else we need to know?:

Blog on #740

What would you like to be added:

A blog on the memory leak issues worked on in falcosecurity/falco#740

Why is this needed:

To share a high level digest with the community

Blog on zombie (defunct) processes with a Falco service

What would you like to be added:

There is concern around abandoned sub-processes with running Falco as a service. Can we write up a blog on this, explaining why it's happening.

Also can we open github issues for any work generated from this.

Why is this needed:

Inconsistency in Kubernetes Audit example

Hi,

I noticed that the Kubernetes Audit example defines the following create macro

- macro: create
  condition: ka.verb=create

Then a bit further down, in the breakdown section, it mentions

  1. modify: Checks whether the value of verb is one of the following: create, update, patch.

Looks like the breakdown section was updated in #140 10-days ago so perhaps the macro definition was forgotten?

Duplicated menu entries

What happened:

When in the docs section, the menu on the left shows duplicated entries for folders.

For example, "Rules", See this image:
2019-10-02_349x756_scrot

What you expected to happen:

Entries are reported only once

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

Add Korean Language Support in Documentation

/area documentation

What would you like to be added:
Add Korean as a supported language for falco documentations.

Why is this needed:
To help Korean users understand falco better.

Automate versioning in the docs section

Right now, when a new falco version is released we don't automatically upgrade the version in the docs.

That is handled manually and everyone forgets about doing it on releases.

As an option, we can have prow opening a PR here when a new release is done, then just approve it.

Example, now we are on 0.17.0, website says 0.16.0

2019-08-30_472x364_scrot

Footer not sticky

What happened:

The footer is not sticky.

The main part of the page should fill the space pushing it to the bottom.

image

What you expected to happen:

This to work.

How to reproduce it (as minimally and precisely as possible):

Create an empty page.

Anything else we need to know?:

/kind user-interface

Blog for the ring buffer with eBPF

/area blog

What would you like to be added:

Document how the eBPF probe does NOT use the ring buffer

Why is this needed:

Because myself, and others, are confused about how the eBPF probe works.

Document Falco Contacting Mining Servers

/area documentation

What would you like to be added:

Documentation explaining why Falco does DNS lookups for crypto mining servers.

Why is this needed:

This gets asked about once a week in the #falco Slack.

Versioned documentation

/area documentation

What would you like to be added:

We need to let the user navigate documentation for old versions.

Why is this needed:

Because not everyone runs on the latest version of Falco.

Blog on fillers and rules

What would you like to be added:

A blog on fillers and rules in Falco, with examples of how to do basic tasks:

  • Check if a file exists
  • Check if a new socket connection is opened
  • Check if a file is opened
  • Other commonly used features

Why is this needed:

To help advertise how Falco rules are implemented

"Get started" button on the front page doesn't work

What happened:

Clicking on the "Get started" link on the front page doesn't do anything.

What you expected to happen:

It should take me to #resources anchor on the same page. It points to non-existent #download anchor now.

How to reproduce it (as minimally and precisely as possible):

See above.

Anything else we need to know?:

You rock 😉

Document the gRPC server implementation

/area documentation

What would you like to be added:

We are implementing a gRPC server as a Falco API, see the proposal here.

We want to document that feature in the website.

Why is this needed:

Because we want to people to know how the gRPC API works!

Right sections sub menu indentation

While working on the build documentation, we noticed that the right menu doesn't respect indentation for sub-sections, this creates confusion on the user while trying to figure out what's the hierarchy of the sections.

Here's how the menu looks like now, highlighted in yellow:

image

Here's how it should be, respecting the sub-sections:
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.