diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8a5a409..c3927dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,8 +14,8 @@ jobs: name: Generate eBPF Object runs-on: ubuntu-latest steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.2.2 - - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.2.0 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 with: go-version: '1.25' - name: Install toolchain @@ -37,8 +37,8 @@ jobs: matrix: go-version: ['1.25'] steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.2.2 - - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.2.0 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 with: go-version: ${{ matrix.go-version }} - name: Download BPF object @@ -65,10 +65,10 @@ jobs: name: Lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.2.2 - - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.2.0 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 with: - go-version: '1.24' + go-version: '1.25' - name: golangci-lint uses: golangci/golangci-lint-action@55c2c1448f86e01eaae002a5a3a9624417608d84 # v6 continue-on-error: true @@ -79,10 +79,10 @@ jobs: name: Vulnerability Check runs-on: ubuntu-latest steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.2.2 - - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.2.0 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 with: - go-version: '1.24' + go-version: '1.25' - name: Install govulncheck run: go install golang.org/x/vuln/cmd/govulncheck@v1.2.0 - name: Run govulncheck @@ -93,10 +93,10 @@ jobs: needs: generate-bpf runs-on: ubuntu-latest steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.2.2 - - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.2.0 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 with: - go-version: '1.24' + go-version: '1.25' - name: Download BPF object uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 with: @@ -127,7 +127,7 @@ jobs: steps: - name: Install dependencies run: pacman -Syu --noconfirm git go nodejs - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.2.2 + - uses: actions/checkout@v4 - name: Download BPF object uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 with: diff --git a/.github/workflows/packaging-quality.yml b/.github/workflows/packaging-quality.yml index ca1eaa9..f67e980 100644 --- a/.github/workflows/packaging-quality.yml +++ b/.github/workflows/packaging-quality.yml @@ -29,7 +29,7 @@ jobs: - name: Install deps run: pacman -Syu --noconfirm git go nodejs namcap - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@v4 - name: Validate .SRCINFO is in sync run: | @@ -50,7 +50,7 @@ jobs: name: Debian metadata validation runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@v4 - name: Install packaging tools run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a35903a..f5721fe 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,15 +15,15 @@ jobs: permissions: contents: write steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 + - uses: actions/setup-go@v5 with: go-version: '1.25' - - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + - uses: actions/setup-python@v5 with: python-version: '3.11' @@ -32,7 +32,7 @@ jobs: python scripts/release_preflight.py --tag "${GITHUB_REF_NAME}" - name: Run GoReleaser - uses: goreleaser/goreleaser-action@e24998b8b67b290c2fa8b7c14fcfa7de2c5c9b8c # v7.1.0 + uses: goreleaser/goreleaser-action@v6 with: version: '~> v2' args: release --clean diff --git a/.github/workflows/security-suite.yml b/.github/workflows/security-suite.yml index 2707086..cda8ec0 100644 --- a/.github/workflows/security-suite.yml +++ b/.github/workflows/security-suite.yml @@ -26,13 +26,13 @@ jobs: matrix: language: ['go'] steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.2.2 + - uses: actions/checkout@v4 - name: Initialize CodeQL - uses: github/codeql-action/init@ce64ddcb0d8d890d2df4a9d1c04ff297367dea2a # v3 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} - name: Setup Go - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.2.0 + uses: actions/setup-go@v5 with: go-version: '1.25' - name: Install toolchain @@ -52,8 +52,8 @@ jobs: contents: read pull-requests: write steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.2.2 - - uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0 + - uses: actions/checkout@v4 + - uses: actions/dependency-review-action@v4 scorecard: name: OpenSSF Scorecard @@ -65,16 +65,16 @@ jobs: contents: read actions: read steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.2.2 + - uses: actions/checkout@v4 with: persist-credentials: false - name: Run analysis - uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3 + uses: ossf/scorecard-action@v2 with: results_file: results.sarif results_format: sarif publish_results: true - name: Upload SARIF - uses: github/codeql-action/upload-sarif@ce64ddcb0d8d890d2df4a9d1c04ff297367dea2a # v3 + uses: github/codeql-action/upload-sarif@v3 with: sarif_file: results.sarif diff --git a/README.md b/README.md index a33b207..5ec6913 100644 --- a/README.md +++ b/README.md @@ -8,18 +8,13 @@ Trace malware behavior, investigate suspicious binaries, and audit container workloads — without `strace` overhead or the complexity of system-wide EDR daemons like Falco or Tetragon.

- - Latest Release - - - Awesome Go - - GitHub Stars - CI - Go Version - Heuristics Enabled - Latency - License + Latest Release + BlackArch Linux + Build Status + Security Status + Go Report Card + License + eBPF

Launch a command under observation — or attach to an existing process — and see what it actually does at runtime: process lifecycle, file activity, network connections, privilege transitions, namespace changes, and more. @@ -30,7 +25,7 @@ Launch a command under observation — or attach to an existing process — and ## Quick Start -[![Try it in the Browser](https://img.shields.io/badge/Try_in_Browser-Killercoda-23C13F?style=for-the-badge&logoColor=white)](https://killercoda.com/mutasem04/scenario/procscope-scenario) +[![Try it in the Browser](https://img.shields.io/badge/Try_in_Browser-Killercoda-23C13F?style=flat-square&logoColor=white)](https://killercoda.com/mutasem04/scenario/procscope-scenario) ### 1-Minute Install (Go 1.24+) @@ -82,7 +77,7 @@ procscope will detect missing capabilities at startup and provide actionable gui | GitHub releases | Available | | `go install` | Available | | Debian / Kali / Parrot packages | Packaging metadata maintained in-tree; not yet shipped by the distro | -| Arch / BlackArch package | `arch/PKGBUILD` maintained in-tree; not yet shipped by BlackArch | +| Arch / BlackArch package | Available in BlackArch | ## Installation @@ -267,7 +262,7 @@ See [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for community participation guideli ## About the Author -**procscope** was developed by [Mutasem Kharma](https://github.com/Mutasem-mk4), a **Security Engineer** and **eBPF Specialist** focused on building high-performance, offensive and defensive security tools for the modern cloud-native landscape. Mutasem specializes in low-level system observation, automated vulnerability research, and autonomous security agents. +**procscope** was developed by [Mutasem Kharma (معتصم خرما)](https://github.com/Mutasem-mk4), a **Security Engineer** and **eBPF Specialist** focused on building high-performance, offensive and defensive security tools for the modern cloud-native landscape. Mutasem specializes in low-level system observation, automated vulnerability research, and autonomous security agents. --- diff --git a/arch/.SRCINFO b/arch/.SRCINFO index 3689509..4c4bdb7 100644 --- a/arch/.SRCINFO +++ b/arch/.SRCINFO @@ -6,11 +6,11 @@ pkgbase = procscope arch = x86_64 arch = aarch64 groups = blackarch + groups = blackarch-defensive groups = blackarch-forensic - groups = blackarch-scanner license = MIT - makedepends = go>=2:1.25 + makedepends = go>=1.25 source = procscope-1.1.0.tar.gz::https://github.com/Mutasem-mk4/procscope/archive/v1.1.0.tar.gz - sha256sums = 7efcd3b031115637b2bac1c2243786e2f6430445743ff42c5b5f7f680fa3d624 + sha512sums = f8483681b1f3b6349e65d668aec67ab02bb7a0dced4f86478280561f23cdffbf139d50ba275cbf1ce17062c045b2e944f674c5c108efa38d50e752cc2e5d48bd pkgname = procscope diff --git a/arch/PKGBUILD b/arch/PKGBUILD index a472b3b..90b41e7 100644 --- a/arch/PKGBUILD +++ b/arch/PKGBUILD @@ -1,19 +1,17 @@ -# Maintainer: Mutasem-mk4 <140179052+Mutasem-mk4@users.noreply.github.com> +# This file is part of BlackArch Linux ( https://www.blackarch.org/ ). +# See COPYING for license details. + pkgname=procscope pkgver=1.1.0 pkgrel=1 pkgdesc='Process-scoped runtime investigation tool using eBPF' arch=('x86_64' 'aarch64') +groups=('blackarch' 'blackarch-defensive' 'blackarch-forensic') url='https://github.com/Mutasem-mk4/procscope' license=('MIT') -groups=('blackarch' 'blackarch-forensic' 'blackarch-scanner') -depends=() -makedepends=('go>=2:1.25') +makedepends=('go>=1.25') source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz") -# The sha256sum below must be updated after cutting a GitHub release. -# Generate it with: curl -sL "$url/archive/v$pkgver.tar.gz" | sha256sum -# For local development builds: makepkg --skipchecksums -sha256sums=('7efcd3b031115637b2bac1c2243786e2f6430445743ff42c5b5f7f680fa3d624') +sha512sums=('f8483681b1f3b6349e65d668aec67ab02bb7a0dced4f86478280561f23cdffbf139d50ba275cbf1ce17062c045b2e944f674c5c108efa38d50e752cc2e5d48bd') build() { cd "${pkgname}-${pkgver}" @@ -24,13 +22,14 @@ build() { go build \ -ldflags "-s -w \ -X 'github.com/Mutasem-mk4/procscope/internal/version.Version=${pkgver}' \ - -X 'github.com/Mutasem-mk4/procscope/internal/version.Commit=${pkgrel}'" \ + -X 'github.com/Mutasem-mk4/procscope/internal/version.Commit=blackarch'" \ -o "${pkgname}" \ ./cmd/procscope } check() { cd "${pkgname}-${pkgver}" + go test -short ./internal/events/... ./internal/output/... ./internal/redact/... ./internal/version/... } @@ -48,5 +47,5 @@ package() { install -Dm644 "completions/${pkgname}.fish" \ "${pkgdir}/usr/share/fish/vendor_completions.d/${pkgname}.fish" - install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md" + install -Dm644 README.md -t "${pkgdir}/usr/share/doc/${pkgname}" } diff --git a/docs/index.html b/docs/index.html index 9c50c1f..d67042d 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,28 +5,58 @@ - procscope — Zero-Overhead eBPF Process Tracer for Linux | Mutasem Kharma - - - - - + procscope — Zero-Overhead eBPF Process Tracer for Linux | Mutasem Kharma (معتصم خرما) + + + + + + + + - - + + - + - + + @@ -194,7 +224,12 @@

K8s Aware