GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - stackrox/fact

BranchesTags
Open more actions menu

Latest commit

 

History

989 Commits
989 Commits

Folders and files

NameName
Last commit message
Last commit date
.claude
.claude
 
 
.github
.github
 
 
.tekton
.tekton
 
 
ansible
ansible
 
 
docs
docs
 
 
fact-api
fact-api
 
 
fact-ebpf
fact-ebpf
 
 
fact
fact
 
 
k8s
k8s
 
 
mock-server
mock-server
 
 
performance-tests
performance-tests
 
 
tests
tests
 
 
third_party
third_party
 
 
.clang-format
.clang-format
 
 
.coderabbit.yml
.coderabbit.yml
 
 
.containerignore
.containerignore
 
 
.editorconfig
.editorconfig
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CLAUDE.md
CLAUDE.md
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
Containerfile
Containerfile
 
 
LICENSE-APACHE
LICENSE-APACHE
 
 
LICENSE-GPL2
LICENSE-GPL2
 
 
LICENSE-MIT
LICENSE-MIT
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
about.toml
about.toml
 
 
about_html.hbs
about_html.hbs
 
 
config.toml
config.toml
 
 
constants.mk
constants.mk
 
 
konflux.Containerfile
konflux.Containerfile
 
 
rpms.in.yaml
rpms.in.yaml
 
 
rpms.lock.yaml
rpms.lock.yaml
 
 
rpms.rhel.repo
rpms.rhel.repo
 
 
rustfmt.toml
rustfmt.toml
 
 

Repository files navigation

fact

File ACTivity is a file integrity monitoring tool designed to help with PCI DSS compliance, which requires a change detection mechanism. It's implemented as a BPF agent, which coordinates a set of BPF programs attached to LSM hooks, receives events from the kernel, does basic enrichment and pushes them for further processing.

Prerequisites

  1. stable rust toolchains.
  2. clang and libbpf headers for the C eBPF probe.
  3. protoc and the Google protobuf definitions for gRPC.

On Fedora, you can install all the dependencies with the following commands:

sudo dnf install -y \
    clang \
    libbpf-devel \
    protobuf-compiler \
    protobuf-devel \
    rustup
rustup toolchain install stable

Build & Run

Use cargo build, cargo check, etc. as normal. Run your program with:

cargo run --release --config 'target."cfg(all())".runner="sudo -E"'

Cargo build scripts are used to automatically build the eBPF correctly and include it in the program.

For more details about available options, check out the references page.

Running eBPF unit tests

There is some specific unit tests that execute just the eBPF code and the worker retrieving events from them. In order to run these, root privileges are required, so a feature is used to exclude them when running cargo test.

In order to run these tests as part of the unit test suite y use the following command:

cargo test --config 'target."cfg(all())".runner="sudo -E"' --features=bpf-test

Create compile_commands.json

compile_commands.json is a compilation database that can be used by clangd to provide better IDE support. This file is particularly useful for working with the C BPF code in the repository. In order to generate this file, bear is recommended, the following command can be used on x86 machines:

bear -- clang -target bpf -O2 -g -c -Wall -Werror -D__TARGET_ARCH_x86_64 fact-ebpf/src/bpf/main.c -o /dev/null

For arm64, replace -D__TARGET_ARCH_x86_64 with -D__TARGET_ARCH_aarch64.

License

With the exception of eBPF code, fact is distributed under the terms of the Apache License (version 2.0).

eBPF

All eBPF code is distributed under either the terms of the GNU General Public License, Version 2 or the MIT license, at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the GPL-2 license, shall be dual licensed as above, without any additional terms or conditions.

About

No description, website, or topics provided.

Resources

Readme

Code of conduct

Code of conduct

Contributing

Contributing
Activity
Custom properties

Stars

22 stars

Watchers

1 watching

Forks

5 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.