Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
142 commits
Select commit Hold shift + click to select a range
bcd1e2d
build: create magefiles/ directory
jeffmahoney Sep 12, 2023
387aada
magefile.go: use current architecture for Linux builds
jeffmahoney Dec 12, 2022
26726bd
Add systemd-dev as build dependency for github workflow
jeffmahoney Feb 18, 2022
2f8ae10
github: run testcases on Linux builds in new workflow
jeffmahoney Nov 21, 2022
7dd4b7b
linux: add lsattr() function to enumerate file attributes
lorddoskias Feb 2, 2022
a7882f5
Linux.Detection.ImmutableFiles: Enumerate immutable files under a path
lorddoskias Feb 3, 2022
d569ed2
Add parser to read systemd journal on Linux
jeffmahoney Jan 14, 2022
72d7911
Update the Linux.Syslog.SSHLogin artifact to scan the systemd journal
jeffmahoney Jan 14, 2022
243e4ef
Update the Linux.Events.SSHLogin artifact to scan the systemd journal
jeffmahoney Jan 17, 2022
26990ad
SUSE: Add SSHLogin artifacts
jeffmahoney Mar 11, 2022
272793f
SSHLogin: require _TRANSPORT != 'kernel' from watch_journal()
jeffmahoney Sep 12, 2022
a193a87
vql/linux/bpf: add support to add bpf plugins for Linux
jeffmahoney Nov 11, 2022
f1e010a
vql/linux/bpf/tcpsnoop: Add tcpsnoop plugin
lorddoskias Feb 25, 2022
7953700
vql/linux/bpf/dnssnoop: Add dnssnoop() plugin
lorddoskias Apr 11, 2022
afb7d5d
vql/linux/bpf/chattrsnoop: Add plugin to catch changes to inode attri…
lorddoskias Apr 12, 2022
2dcb129
vql/linux/bpflib: add sample vmlinux.h includes for test builds
jeffmahoney Sep 14, 2023
8af1252
Add custom artifacts for login and logout attempts recorded by auditd
guangyee Mar 16, 2022
a5ebe5f
Linux.Events.ProcessExecutions: catch 32-bit execve calls
chajain Mar 31, 2022
efd1cb3
Add artifact to monitor user group updates (#24)
guangyee Apr 19, 2022
faa2e3c
file_store/directory/buffer: add direct-serialized interface
jeffmahoney May 1, 2023
064fc94
utils/refcount: add simple refcount implementation
jeffmahoney Oct 9, 2023
738963f
file_store/directory/listener_bytes: Add listener to use serialized i…
jeffmahoney May 1, 2023
c24562d
vql/linux/audit: use go-libaudit v2 for live audit message processing
jeffmahoney Jun 6, 2022
21164d2
vql/linux/audit: rearchitect plugin for scalability
jeffmahoney Jun 16, 2022
6d5160a
Extend audit artifacts to use new interface
chajain May 20, 2022
e042aba
vql/linux/cronsnoop: Add cronsnoop() plugin
lorddoskias Jul 12, 2022
1ddfcca
Updating the NewFiles and ProcessStatuses Artifacts
chajain Jul 11, 2022
a44726d
Add Linux.Sys.Bash to Server.Monitor.Shell artifact
jeffmahoney Aug 19, 2022
28dab6a
rpm: introduce rpm vql plugin
jeffmahoney Dec 6, 2022
5eaa142
vql/functions/hash: cache results on Linux
jeffmahoney Feb 5, 2023
3d78319
hash: fix nil pointer dereference panic
djoreilly Dec 5, 2023
5939624
Fix shadowed variable in hash.go
djoreilly Mar 10, 2025
d5fb773
SUSE: add Docker files
jeffmahoney Sep 7, 2022
53f3f39
SUSE: Add docker-compose environment
jeffmahoney Sep 7, 2022
f41a73a
cronsnoop: fix panic when crontab has empty line
djoreilly Oct 12, 2023
f441797
vql/linux/audit: actually add test cases
jeffmahoney Oct 13, 2023
67f3199
vql/linux/audit: don't overload EAGAIN
jeffmahoney Oct 18, 2023
e7310ab
vql/linux/audit: gofumpt -extra
jeffmahoney Oct 18, 2023
fba6610
vql/linux/audit: fix staticcheck checks
jeffmahoney Oct 18, 2023
bfe03a3
bpf: add libbpf/include/uapi to the include path for bpf.h
jeffmahoney Nov 1, 2023
386650a
bpf: only build libbpf in the go generate stage
jeffmahoney Nov 1, 2023
dc82507
vql/linux/audit: fix test suite handling
jeffmahoney Nov 13, 2023
da183b8
vql/linux/audit: Clean up context handling in shutdown goroutine
jeffmahoney Nov 6, 2023
ed5fc7d
vql/linux/audit: mainEventLoop shouldn't exit on canceled context
jeffmahoney Nov 6, 2023
13f28b9
vql/linux/audit: Make messageQueue lifetime more apparent
jeffmahoney Nov 6, 2023
ab4bca1
vql/linux/audit: limit messageQueue scope to within runService
jeffmahoney Nov 9, 2023
7f46b9c
vql/linux/audit: Close reassembler if NewListenerBytes fails
jeffmahoney Nov 6, 2023
5eaa779
vql/linux/audit: Fix typo causing double-lock in notifyMissingRule
jeffmahoney Nov 6, 2023
c90729e
vql/linux/audit: Fix DeleteRule in mock client
jeffmahoney Nov 6, 2023
9813963
vql/linux/audit: Change listener lifecycle to enable testing
jeffmahoney Nov 6, 2023
167e9bb
vql/linux/audit: Fix audit client lifecycle
jeffmahoney Nov 6, 2023
45ff56d
vql/linux/audit: Add more client failure test cases
jeffmahoney Nov 6, 2023
4ce4212
vql/linux/audit: tests, check various rule scenarios
jeffmahoney Nov 6, 2023
f7ac8a4
vql/linux/audit: simplify polling in listener
jeffmahoney Nov 9, 2023
aa49772
vql/linux/audit: make stats reporting separate from debug prints
jeffmahoney Nov 9, 2023
bbb1cce
vql/linux/audit: make explicit that goroutines in the main errgroup d…
jeffmahoney Nov 9, 2023
a54c216
vql/linux/audit: handle top-level cancelation properly
jeffmahoney Nov 9, 2023
bffc1dc
vql/linux/audit: remove unused waitgroup from main event loop
jeffmahoney Nov 9, 2023
b085ce5
vql/linux/audit: remove unnecessary error handling for reassembler
jeffmahoney Nov 9, 2023
85b25ce
vql/linux/audit: pull parts of shutdown into shutdown watcher
jeffmahoney Nov 9, 2023
1b1eda6
vql/linux/audit: add auditService.Log()
jeffmahoney Nov 10, 2023
178ec50
vql/linux/audit: limit messageQueue to within runService
jeffmahoney Nov 14, 2023
f5a93c3
vql/linux/audit: fix goroutine lifetimes
jeffmahoney Nov 9, 2023
2ee3eb6
vql/linux/audit: fix shutdown races
jeffmahoney Nov 10, 2023
a94dce3
vql/linux/sdjournal: Fix open/close lifetimes
jeffmahoney Nov 10, 2023
8b7b33b
velociraptor: add dummy main function for mage
jeffmahoney Dec 12, 2023
c4c3d52
sdjournal: Correctly seek to current tail
xTeixeira Nov 16, 2023
f1d3e9f
Fix audit filter key typo in Linux.Events.NewFiles
djoreilly Aug 25, 2023
d4d1fca
Move NewFiles artifact to SUSE
djoreilly Feb 21, 2024
9de58e9
Fix SystemLogins artifacts file extensions
djoreilly Sep 26, 2023
cb12b1d
Fix absolute path case in ExecutableFiles artifact
djoreilly Sep 29, 2023
1a3c9bb
Add artifact to collect systemd service events
djoreilly Oct 4, 2023
07d23ad
Add hash fields to Linux.Events.ProcessExecutions
djoreilly Oct 11, 2023
78376cc
Add SUSE.Linux.Events.NewZeroSizeLogFile artifact
djoreilly Oct 12, 2023
368930a
SUSE.Linux.Events.Crontab: Add task execution artifacts
xTeixeira Nov 16, 2023
9198b6c
Add artifact to monitor ssh authorized_keys files
djoreilly Nov 20, 2023
2278ab7
Add SUSE.Linux.Events.Timers artifact
xTeixeira Nov 21, 2023
2690819
Fix Linux.Events.ImmutableFile not showing hash in GUI
djoreilly Dec 6, 2023
a899717
chattrsnoop: don't log.Fatal() on hash error
djoreilly Dec 6, 2023
37768ac
chattrsnoop: handle os.Stat() error properly
djoreilly Dec 6, 2023
bcb9592
chattrsnoop: include full error details in logs
djoreilly Dec 6, 2023
a232c36
Make ImmutableFile artifact consistent with others
djoreilly Feb 21, 2024
56f1fc3
Move ImmutableFile artifact to SUSE
djoreilly Feb 21, 2024
7ec00e6
Add artifact to collect new hidden files
djoreilly Dec 13, 2023
3048b58
Add server artifact to delete old client data on server
djoreilly Jan 9, 2024
3620ed4
Add client monitoring artifact for RPMs
djoreilly Jan 23, 2024
f0fea63
Add SUSE.Linux.Sys.At artifact
xTeixeira Dec 12, 2023
1941d4a
Raise client connection log level to ERROR
djoreilly Nov 17, 2023
1ab772a
Rename SUSE specific artifacts to have SUSE prefix
djoreilly Feb 21, 2024
2f98d00
tcpsnoop: fix garbled results on s390
djoreilly Mar 8, 2024
23a4269
Add artifact to collect new files without owner
djoreilly Feb 14, 2024
632c924
bpf plugins: set a logger callback
djoreilly Feb 26, 2024
0fc22b2
tcpsnoop: remove unused filtering code
djoreilly Feb 29, 2024
73fbdba
chattrsnoop: fix bpf_probe_read for s390
djoreilly Mar 7, 2024
0bc592f
chattrsnoop: fix immutable attribute set on s390
djoreilly Mar 8, 2024
03ac165
dnssnoop: fix htons() so it works on s390 too
djoreilly Mar 11, 2024
7c404ba
dnssnoop: fix loading protocol from ip header on s390
djoreilly Mar 11, 2024
88dfea5
chattrsnoop: replace global variables with locals
djoreilly Mar 12, 2024
d7078bf
Fix systemd Services artifact missing events
djoreilly Mar 22, 2024
caabc4f
Fix undefined binary.NativeEndian build errors
djoreilly Apr 2, 2024
f379490
Fix services artifact symbol pid not found error
djoreilly Apr 2, 2024
9858284
chattrsnoop: fix do_vfs_ioctl kprobe failure
djoreilly Mar 28, 2024
4d35cf3
chattrsnoop: fix wrong FS_IOC_SETFLAGS value for ppc
djoreilly Mar 28, 2024
2a88c61
chattrsnoop: correct read size for flags
djoreilly Mar 28, 2024
101bcb0
github: run linux unit tests
djoreilly Jul 10, 2024
a8c9061
sdjournal: fix package causing test failures
djoreilly Jul 10, 2024
a40c32c
audit: prevent Windows loading audit package
djoreilly Jul 10, 2024
536881d
audit: fix race in subscriber
djoreilly Jun 21, 2024
5b3a298
audit: fix audit client data races
djoreilly Jun 21, 2024
d2c5121
github: fix deprecated upload artifact
djoreilly Sep 17, 2024
dcb21b5
audit s390x: fix arch filter rules errors
djoreilly Sep 19, 2024
8887079
rpm plugin: fix ndb magic error
djoreilly Nov 6, 2024
2b2cba3
RPM artifact: start checks immediately on artifact load
djoreilly Nov 6, 2024
b0c30db
audit: fix auditBuf allocation and go vet warnings
djoreilly Apr 5, 2024
be7dd4a
audit: reduce FileBufferLeaseSize to ease GC overhead
djoreilly May 8, 2024
79e4b7e
Linux.Events.ProcessExecutions: remove parent cmdline
djoreilly Jun 14, 2024
2148b67
tcpsnoop: fix missing ipv6 outbound connections
djoreilly Sep 2, 2024
9669d12
tcpsnoop: fix ipv6 local and remote addresses order
djoreilly Sep 2, 2024
121ef0f
chattrsnoop: move hashing from plugin to artifact
djoreilly Sep 16, 2024
e67db8b
chattrsnoop: fix files not getting closed
djoreilly Sep 16, 2024
7885be0
bpf plugins: add context to error logs
djoreilly Sep 16, 2024
2c5f986
bpf plugins: remove depreciated libbpfgo calls
djoreilly Sep 16, 2024
5eba54a
tcpsnoop: move parsing to its own function
djoreilly Sep 16, 2024
c227b64
bpf: fix plugins not stopping when context cancelled
djoreilly Sep 16, 2024
eb1e003
audit: update go-libaudit dependency for pcc64le arch filter fix
djoreilly Mar 14, 2025
6e653a3
Add execsnoop plugin to capture execve system calls
djoreilly Jan 30, 2025
4f300c1
Use execsnoop plugin in artifacts when possible
djoreilly Jan 30, 2025
f0e3eee
audit: fix watch rules in artifacts
djoreilly Mar 14, 2025
9850b2e
Update go-rpmdb to fix panic
djoreilly Jun 18, 2025
d4bfd7b
Add plugin and artifact for sending client events to rsyslog
djoreilly Sep 24, 2025
30439c0
Remove SHA1 file signatures
djoreilly Oct 14, 2025
ac50e82
Add machine-id to event artifacts
djoreilly Oct 15, 2025
1d481ec
Fix symbol not found errors from SUSE.Linux.Events.Services
djoreilly Apr 7, 2026
e5835f8
Exclude velociraptor tracee ebpf from build
djoreilly Jun 23, 2026
9c31c75
Fix artifacts for different VQL array() behaviour in v0.74+
djoreilly Jun 23, 2026
0b9cb9f
Fix services artifact systemctl show parse errors
djoreilly Jun 23, 2026
79e36dd
Fix SshAuthorizedKeys artifact to work with v0.76
djoreilly Jun 23, 2026
9c6aff1
Upgrade github.com/ProtonMail/gopenpgp to V3
djoreilly Jun 24, 2026
3882725
Update github.com/cloudflare/circl
djoreilly Jun 24, 2026
7697f57
Update golang.org/x/crypto
djoreilly Jun 24, 2026
5da807d
Don't create offline yaml tool dependencies
djoreilly Jun 25, 2026
7be3879
github: remove windows and update linux
djoreilly Jul 2, 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