Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
76c4fbd
build: create magefiles/ directory
jeffmahoney Sep 12, 2023
d7aab55
magefile.go: use current architecture for Linux builds
jeffmahoney Dec 12, 2022
0236cd9
Add systemd-dev as build dependency for github workflow
jeffmahoney Feb 18, 2022
7a331e5
github: run testcases on Linux builds in new workflow
jeffmahoney Nov 21, 2022
a39a041
linux: add lsattr() function to enumerate file attributes
lorddoskias Feb 2, 2022
1ed6f51
Linux.Detection.ImmutableFiles: Enumerate immutable files under a path
lorddoskias Feb 3, 2022
8dbef45
Add parser to read systemd journal on Linux
jeffmahoney Jan 14, 2022
cd3a2c8
Update the Linux.Syslog.SSHLogin artifact to scan the systemd journal
jeffmahoney Jan 14, 2022
9e7b37f
Update the Linux.Events.SSHLogin artifact to scan the systemd journal
jeffmahoney Jan 17, 2022
219ea9c
SUSE: Add SSHLogin artifacts
jeffmahoney Mar 11, 2022
d1d74d2
SSHLogin: require _TRANSPORT != 'kernel' from watch_journal()
jeffmahoney Sep 12, 2022
a8e3296
vql/linux/bpf: add support to add bpf plugins for Linux
jeffmahoney Nov 11, 2022
facf167
vql/linux/bpf/tcpsnoop: Add tcpsnoop plugin
lorddoskias Feb 25, 2022
4d5fbfb
vql/linux/bpf/dnssnoop: Add dnssnoop() plugin
lorddoskias Apr 11, 2022
b8455fc
vql/linux/bpf/chattrsnoop: Add plugin to catch changes to inode attri…
lorddoskias Apr 12, 2022
1fabe0a
vql/linux/bpflib: add sample vmlinux.h includes for test builds
jeffmahoney Sep 14, 2023
e44b4d7
Add custom artifacts for login and logout attempts recorded by auditd
guangyee Mar 16, 2022
3b478f1
Linux.Events.ProcessExecutions: catch 32-bit execve calls
chajain Mar 31, 2022
585b0c9
Add artifact to monitor user group updates (#24)
guangyee Apr 19, 2022
cb36e7a
file_store/directory/buffer: add direct-serialized interface
jeffmahoney May 1, 2023
9ad0036
utils/refcount: add simple refcount implementation
jeffmahoney Oct 9, 2023
ffdc649
file_store/directory/listener_bytes: Add listener to use serialized i…
jeffmahoney May 1, 2023
7fb1398
vql/linux/audit: use go-libaudit v2 for live audit message processing
jeffmahoney Jun 6, 2022
2132008
vql/linux/audit: rearchitect plugin for scalability
jeffmahoney Jun 16, 2022
92ff36b
Extend audit artifacts to use new interface
chajain May 20, 2022
9a2bf08
vql/linux/cronsnoop: Add cronsnoop() plugin
lorddoskias Jul 12, 2022
c1521e7
Updating the NewFiles and ProcessStatuses Artifacts
chajain Jul 11, 2022
eff68c1
Add Linux.Sys.Bash to Server.Monitor.Shell artifact
jeffmahoney Aug 19, 2022
665a94b
rpm: introduce rpm vql plugin
jeffmahoney Dec 6, 2022
01f96ff
vql/functions/hash: cache results on Linux
jeffmahoney Feb 5, 2023
c1e8ba7
hash: fix nil pointer dereference panic
djoreilly Dec 5, 2023
d419180
Fix shadowed variable in hash.go
djoreilly Mar 10, 2025
8a80fce
SUSE: add Docker files
jeffmahoney Sep 7, 2022
d707236
SUSE: Add docker-compose environment
jeffmahoney Sep 7, 2022
0620445
cronsnoop: fix panic when crontab has empty line
djoreilly Oct 12, 2023
4a99e88
vql/linux/audit: actually add test cases
jeffmahoney Oct 13, 2023
9462c0b
vql/linux/audit: don't overload EAGAIN
jeffmahoney Oct 18, 2023
d1c8776
vql/linux/audit: gofumpt -extra
jeffmahoney Oct 18, 2023
5c2c0e7
vql/linux/audit: fix staticcheck checks
jeffmahoney Oct 18, 2023
2e4118e
bpf: add libbpf/include/uapi to the include path for bpf.h
jeffmahoney Nov 1, 2023
c17443d
bpf: only build libbpf in the go generate stage
jeffmahoney Nov 1, 2023
5bdc963
vql/linux/audit: fix test suite handling
jeffmahoney Nov 13, 2023
51eb293
vql/linux/audit: Clean up context handling in shutdown goroutine
jeffmahoney Nov 6, 2023
e5cddb0
vql/linux/audit: mainEventLoop shouldn't exit on canceled context
jeffmahoney Nov 6, 2023
6c72d03
vql/linux/audit: Make messageQueue lifetime more apparent
jeffmahoney Nov 6, 2023
ea01cde
vql/linux/audit: limit messageQueue scope to within runService
jeffmahoney Nov 9, 2023
2f193e8
vql/linux/audit: Close reassembler if NewListenerBytes fails
jeffmahoney Nov 6, 2023
9b8565a
vql/linux/audit: Fix typo causing double-lock in notifyMissingRule
jeffmahoney Nov 6, 2023
aa7a508
vql/linux/audit: Fix DeleteRule in mock client
jeffmahoney Nov 6, 2023
02ed2fe
vql/linux/audit: Change listener lifecycle to enable testing
jeffmahoney Nov 6, 2023
38cabe3
vql/linux/audit: Fix audit client lifecycle
jeffmahoney Nov 6, 2023
99bb05c
vql/linux/audit: Add more client failure test cases
jeffmahoney Nov 6, 2023
f946c70
vql/linux/audit: tests, check various rule scenarios
jeffmahoney Nov 6, 2023
1b13e42
vql/linux/audit: simplify polling in listener
jeffmahoney Nov 9, 2023
0baabee
vql/linux/audit: make stats reporting separate from debug prints
jeffmahoney Nov 9, 2023
8658023
vql/linux/audit: make explicit that goroutines in the main errgroup d…
jeffmahoney Nov 9, 2023
9a5c39e
vql/linux/audit: handle top-level cancelation properly
jeffmahoney Nov 9, 2023
d9965c7
vql/linux/audit: remove unused waitgroup from main event loop
jeffmahoney Nov 9, 2023
30e072d
vql/linux/audit: remove unnecessary error handling for reassembler
jeffmahoney Nov 9, 2023
c5d9b7e
vql/linux/audit: pull parts of shutdown into shutdown watcher
jeffmahoney Nov 9, 2023
605f957
vql/linux/audit: add auditService.Log()
jeffmahoney Nov 10, 2023
cd7b837
vql/linux/audit: limit messageQueue to within runService
jeffmahoney Nov 14, 2023
96ddd4d
vql/linux/audit: fix goroutine lifetimes
jeffmahoney Nov 9, 2023
84d1f51
vql/linux/audit: fix shutdown races
jeffmahoney Nov 10, 2023
c2364a5
vql/linux/sdjournal: Fix open/close lifetimes
jeffmahoney Nov 10, 2023
935c6c0
velociraptor: add dummy main function for mage
jeffmahoney Dec 12, 2023
7e0cb62
sdjournal: Correctly seek to current tail
xTeixeira Nov 16, 2023
3c0d4c9
Fix audit filter key typo in Linux.Events.NewFiles
djoreilly Aug 25, 2023
06c59ae
Move NewFiles artifact to SUSE
djoreilly Feb 21, 2024
a219387
Fix SystemLogins artifacts file extensions
djoreilly Sep 26, 2023
88ebd52
Fix absolute path case in ExecutableFiles artifact
djoreilly Sep 29, 2023
09f143a
Add artifact to collect systemd service events
djoreilly Oct 4, 2023
5006a5d
Add hash fields to Linux.Events.ProcessExecutions
djoreilly Oct 11, 2023
7f7d08f
Add SUSE.Linux.Events.NewZeroSizeLogFile artifact
djoreilly Oct 12, 2023
02b56d9
SUSE.Linux.Events.Crontab: Add task execution artifacts
xTeixeira Nov 16, 2023
03fc0a7
Add artifact to monitor ssh authorized_keys files
djoreilly Nov 20, 2023
5d033bf
Add SUSE.Linux.Events.Timers artifact
xTeixeira Nov 21, 2023
e8e3a2e
Fix Linux.Events.ImmutableFile not showing hash in GUI
djoreilly Dec 6, 2023
565be9b
chattrsnoop: don't log.Fatal() on hash error
djoreilly Dec 6, 2023
24f1c02
chattrsnoop: handle os.Stat() error properly
djoreilly Dec 6, 2023
b92bd88
chattrsnoop: include full error details in logs
djoreilly Dec 6, 2023
dcf6543
Make ImmutableFile artifact consistent with others
djoreilly Feb 21, 2024
692cf6e
Move ImmutableFile artifact to SUSE
djoreilly Feb 21, 2024
04e24fa
Add artifact to collect new hidden files
djoreilly Dec 13, 2023
7779701
Add server artifact to delete old client data on server
djoreilly Jan 9, 2024
6c7c41e
Add client monitoring artifact for RPMs
djoreilly Jan 23, 2024
de3486b
Add SUSE.Linux.Sys.At artifact
xTeixeira Dec 12, 2023
63d2a62
Raise client connection log level to ERROR
djoreilly Nov 17, 2023
fe2cb89
Rename SUSE specific artifacts to have SUSE prefix
djoreilly Feb 21, 2024
16b43af
tcpsnoop: fix garbled results on s390
djoreilly Mar 8, 2024
33a12bf
Add artifact to collect new files without owner
djoreilly Feb 14, 2024
4f4d634
bpf plugins: set a logger callback
djoreilly Feb 26, 2024
a93252e
tcpsnoop: remove unused filtering code
djoreilly Feb 29, 2024
a736fed
chattrsnoop: fix bpf_probe_read for s390
djoreilly Mar 7, 2024
744c042
chattrsnoop: fix immutable attribute set on s390
djoreilly Mar 8, 2024
2f47cfd
dnssnoop: fix htons() so it works on s390 too
djoreilly Mar 11, 2024
05afcc5
dnssnoop: fix loading protocol from ip header on s390
djoreilly Mar 11, 2024
8d9ee9e
chattrsnoop: replace global variables with locals
djoreilly Mar 12, 2024
71866db
Fix systemd Services artifact missing events
djoreilly Mar 22, 2024
f07297f
Fix undefined binary.NativeEndian build errors
djoreilly Apr 2, 2024
31392d2
Fix services artifact symbol pid not found error
djoreilly Apr 2, 2024
133b31d
chattrsnoop: fix do_vfs_ioctl kprobe failure
djoreilly Mar 28, 2024
f7ef48d
chattrsnoop: fix wrong FS_IOC_SETFLAGS value for ppc
djoreilly Mar 28, 2024
301d11c
chattrsnoop: correct read size for flags
djoreilly Mar 28, 2024
a26d279
github: run linux unit tests
djoreilly Jul 10, 2024
c292c00
sdjournal: fix package causing test failures
djoreilly Jul 10, 2024
bbb769f
audit: prevent Windows loading audit package
djoreilly Jul 10, 2024
db2e6b2
audit: fix race in subscriber
djoreilly Jun 21, 2024
4cd015c
audit: fix audit client data races
djoreilly Jun 21, 2024
4f155dc
github: fix deprecated upload artifact
djoreilly Sep 17, 2024
f186a61
audit s390x: fix arch filter rules errors
djoreilly Sep 19, 2024
ae30eda
rpm plugin: fix ndb magic error
djoreilly Nov 6, 2024
4126ccd
RPM artifact: start checks immediately on artifact load
djoreilly Nov 6, 2024
5ce7cdd
audit: fix auditBuf allocation and go vet warnings
djoreilly Apr 5, 2024
f094b81
audit: reduce FileBufferLeaseSize to ease GC overhead
djoreilly May 8, 2024
970fa77
Linux.Events.ProcessExecutions: remove parent cmdline
djoreilly Jun 14, 2024
73434e7
tcpsnoop: fix missing ipv6 outbound connections
djoreilly Sep 2, 2024
9984b5c
tcpsnoop: fix ipv6 local and remote addresses order
djoreilly Sep 2, 2024
55c46e1
chattrsnoop: move hashing from plugin to artifact
djoreilly Sep 16, 2024
939efed
chattrsnoop: fix files not getting closed
djoreilly Sep 16, 2024
7c1306e
bpf plugins: add context to error logs
djoreilly Sep 16, 2024
2b9ac3d
bpf plugins: remove depreciated libbpfgo calls
djoreilly Sep 16, 2024
42d6d88
tcpsnoop: move parsing to its own function
djoreilly Sep 16, 2024
2d802fb
bpf: fix plugins not stopping when context cancelled
djoreilly Sep 16, 2024
c8a5c8c
audit: update go-libaudit dependency for pcc64le arch filter fix
djoreilly Mar 14, 2025
263c83b
Add execsnoop plugin to capture execve system calls
djoreilly Jan 30, 2025
001eec8
Use execsnoop plugin in artifacts when possible
djoreilly Jan 30, 2025
b608e4f
audit: fix watch rules in artifacts
djoreilly Mar 14, 2025
215ea21
Update go-rpmdb to fix panic
djoreilly Jun 18, 2025
e46e585
Add plugin and artifact for sending client events to rsyslog
djoreilly Sep 24, 2025
2468805
Remove SHA1 file signatures
djoreilly Oct 14, 2025
8b9d079
Add machine-id to event artifacts
djoreilly Oct 15, 2025
17a4a6d
Fix symbol not found errors from SUSE.Linux.Events.Services
djoreilly Apr 7, 2026
3b08cb1
Exclude velociraptor tracee ebpf from build
djoreilly Jun 23, 2026
ad18317
Fix artifacts for different VQL array() behaviour in v0.74+
djoreilly Jun 23, 2026
50b4d52
Fix services artifact systemctl show parse errors
djoreilly Jun 23, 2026
a4616ba
Fix SshAuthorizedKeys artifact to work with v0.76
djoreilly Jun 23, 2026
80e1c93
Upgrade github.com/ProtonMail/gopenpgp to V3
djoreilly Jun 24, 2026
7862dae
Update github.com/cloudflare/circl
djoreilly Jun 24, 2026
6240e08
Update golang.org/x/crypto
djoreilly Jun 24, 2026
35aee9c
Don't create offline yaml tool dependencies
djoreilly Jun 25, 2026
9027fd5
github: remove windows and update linux
djoreilly Jul 2, 2026
00e4d93
Update golang.org/x/text
djoreilly Aug 10, 2026
6479349
Update brace-expansion npm
djoreilly Aug 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ jobs:

- name: Check out code into the Go module directory
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
submodules: recursive

- name: Set up Go 1.25
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
Expand All @@ -36,7 +38,7 @@ jobs:
go get -v -t -d ./...
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mingw-w64-x86-64-dev gcc-mingw-w64-x86-64 gcc-mingw-w64
sudo apt-get install mingw-w64-x86-64-dev gcc-mingw-w64-x86-64 gcc-mingw-w64 gcc-aarch64-linux-gnu libsystemd-dev clang-12 llvm libelf-dev git make libzstd-dev

- name: Use Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e
Expand All @@ -52,12 +54,17 @@ jobs:
# Uncomment the architectures you want here. NOTE: DarwinBase
# does not include yara or modules with C compilers needed.
run: |
mkdir ./output/
mkdir -p ./output/ ./third_party/libbpfgo/output
export PATH=$PATH:~/go/bin/
go run make.go -v UpdateDependentTools
go run make.go -v DarwinBase
go run make.go -v Linux
BUILD_BPF_PLUGINS=0 go run make.go -v Linux
go run make.go -v Linux
cp vql/linux/bpf/vmlinux_h/x86_64-vmlinux.h third_party/libbpfgo/output/vmlinux.h
BUILD_BPF_PLUGINS=1 go run make.go -v Linux
go run make.go -v Linux
go run make.go -v LinuxArm64
go run make.go -v Windows
go run make.go -v WindowsSumo
go run make.go -v Windowsx86

- name: StoreBinaries
Expand Down
58 changes: 58 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Only trigger when a PR is committed.
name: Linux
on: [pull_request]

jobs:
build:
name: Test
# We used to build on ubuntu-18.04 but that is now deprecated by
# GitHub. Earlier distributions will have to use the musl build.
runs-on: ubuntu-22.04
steps:

- name: Check out code and submodules into the Go module directory
uses: actions/checkout@v2
with:
submodules: recursive

- uses: actions/setup-go@v2
with:
go-version: '^1.26'

- run: go version

- name: Get dependencies
run: |
go get -v -t -d ./...
sudo apt-get update
sudo apt-get install libsystemd-dev clang llvm libelf-dev git make libzstd-dev

- name: Build GUI-less binary
run: |
mkdir ./output/
export PATH=$PATH:~/go/bin/
make linux_bare

- name: Run built-in testcases
run: |
echo "Running built-in tests."
go test -race -v --tags server_vql $(go list ./... | grep -v vql/linux/.*bpf)
- name: Test Golden Generic
if: always()
run: |
echo "Running OS generic tests."

output/velociraptor* -v golden artifacts/testdata/server/testcases/ --env srcDir=`pwd` --config artifacts/testdata/windows/test.config.yaml

- name: Test Golden Linux
if: always()
run: |
echo "Running Linux tests."

output/velociraptor* -v golden artifacts/testdata/linux/ --env srcDir=`pwd` --config artifacts/testdata/windows/test.config.yaml

- name: StoreBinaries
uses: actions/upload-artifact@v4
with:
name: Binaries.zip
path: output
134 changes: 0 additions & 134 deletions .github/workflows/windows.yml

This file was deleted.

8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,11 @@ __debug*
debug.test*
artifacts/testdata/server/hunts/H.*
artifacts/testdata/server/users/
.*sw?
.vim*
.env
SUSE/docker-compose/config/traefik/traefik.toml
SUSE/docker-compose/config/velociraptor/*
SUSE/docker-compose/data/velociraptor/*
SUSE/docker-compose/logs/velociraptor/*
vql/linux/bpf/*/*.bpf.o
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "third_party/libbpfgo"]
path = third_party/libbpfgo
url = https://github.com/aquasecurity/libbpfgo
Loading
Loading