23 src = fetchFromGitHub {
24 owner = "aquasecurity";
26 # project has branches and tags of the same name
27 rev = "refs/tags/v${version}";
28 hash = "sha256-OnOayDxisvDd802kDKGctaQc5LyoyFfdfvC+2JpRjHY=";
30 vendorHash = "sha256-26sAKTJQ7Rf5KRlu7j5XiZVr6CkAC6fm60Pam7KH0uA=";
33 ./use-our-libbpf.patch
34 # can not vendor dependencies with old pyroscope
35 # remove once https://github.com/aquasecurity/tracee/pull/3927
36 # makes it to a release
37 ./update-pyroscope.patch
40 enableParallelBuilding = true;
41 # needed to build bpf libs
42 hardeningDisable = [ "stackprotector" ];
57 # don't actually need git but the Makefile checks for it
64 make $makeFlags ''${enableParallelBuilding:+-j$NIX_BUILD_CORES} bpf all
68 # tests require a separate go module
69 # integration tests are ran within a nixos vm
70 # see passthru.tests.integration
82 mkdir -p $out/bin $lib/lib/tracee $share/share/tracee
84 mv ./dist/{tracee,signatures} $out/bin/
85 mv ./dist/tracee.bpf.o $lib/lib/tracee/
86 mv ./cmd/tracee-rules/templates $share/share/tracee/
92 integration = nixosTests.tracee;
93 integration-test-cli = import ./integration-tests.nix { inherit lib tracee makeWrapper; };
94 version = testers.testVersion {
96 version = "v${version}";
97 command = "tracee version";
102 homepage = "https://aquasecurity.github.io/tracee/latest/";
103 changelog = "https://github.com/aquasecurity/tracee/releases/tag/v${version}";
104 description = "Linux Runtime Security and Forensics using eBPF";
105 mainProgram = "tracee";
107 Tracee is a Runtime Security and forensics tool for Linux. It is using
108 Linux eBPF technology to trace your system and applications at runtime,
109 and analyze collected events to detect suspicious behavioral patterns. It
110 is delivered as a Docker image that monitors the OS and detects suspicious
111 behavior based on a pre-defined set of behavioral patterns.
113 license = with licenses; [
119 maintainers = with maintainers; [ jk ];