From 8bee923b34aea8f3608607b804f94aee95746f71 Mon Sep 17 00:00:00 2001 From: ramanan-ravi Date: Tue, 5 Nov 2024 14:09:27 +0530 Subject: [PATCH] Bump to golang 1.23 --- Dockerfile | 6 +- Makefile | 2 +- README.md | 17 +- agent-plugins-grpc | 2 +- docs/docs/secretscanner/configure/cli.md | 17 +- docs/docs/secretscanner/configure/output.md | 4 +- docs/docs/secretscanner/img/secretscanner.svg | 2 +- docs/docs/secretscanner/quickstart.md | 30 +++- docs/docs/secretscanner/using/build.md | 6 +- docs/docs/secretscanner/using/grpc.md | 56 ------- docs/docs/secretscanner/using/scan.md | 8 +- docs/docs/secretscanner/using/standalone.md | 12 +- docs/sidebars.js | 3 +- go.mod | 72 ++++---- go.sum | 157 +++++++++--------- 15 files changed, 178 insertions(+), 216 deletions(-) delete mode 100644 docs/docs/secretscanner/using/grpc.md diff --git a/Dockerfile b/Dockerfile index fec1ab4..f341b21 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ ARG VECTORSCAN_IMG_TAG=latest ARG VECTORSCAN_IMAGE_REPOSITORY=deepfenceio FROM $VECTORSCAN_IMAGE_REPOSITORY/deepfence_vectorscan_build:$VECTORSCAN_IMG_TAG AS vectorscan -FROM golang:1.22-alpine3.18 AS builder +FROM golang:1.23-alpine3.20 AS builder MAINTAINER DeepFence RUN apk update \ @@ -52,7 +52,7 @@ WORKDIR /home/deepfence/src/SecretScanner COPY . . RUN make clean && make all -FROM alpine:3.18 +FROM alpine:3.20 MAINTAINER DeepFence LABEL deepfence.role=system @@ -68,7 +68,7 @@ set -eux apk update && apk add --no-cache --upgrade curl -NERDCTL_VERSION=1.4.0 +NERDCTL_VERSION=1.7.7 curl -fsSLO https://github.com/containerd/nerdctl/releases/download/v${NERDCTL_VERSION}/nerdctl-${NERDCTL_VERSION}-linux-${TARGETARCH}.tar.gz tar Cxzvvf /usr/local/bin nerdctl-${NERDCTL_VERSION}-linux-${TARGETARCH}.tar.gz rm nerdctl-${NERDCTL_VERSION}-linux-${TARGETARCH}.tar.gz diff --git a/Makefile b/Makefile index ce67f8f..098e3bd 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ export IMAGE_REPOSITORY?=quay.io/deepfenceio -export DF_IMG_TAG?=3.0.0 +export DF_IMG_TAG?=2.5.0 all: SecretScanner diff --git a/README.md b/README.md index f50994f..5b579fd 100644 --- a/README.md +++ b/README.md @@ -38,14 +38,23 @@ Install docker and run SecretScanner on a container image using the following in * Build SecretScanner: ```shell ./bootstrap.sh -docker build --rm=true --tag=quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 -f Dockerfile . +docker build --rm=true --tag=quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 -f Dockerfile . ``` * Or, pull the latest build from docker hub by doing: ```shell -docker pull quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 +docker pull quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 ``` +### Generate License Key + +Run this command to generate a license key. Work/official email id has to be used. +```shell +curl https://license.deepfence.io/threatmapper/generate-license?first_name=&last_name=&email=&company=&resend_email=true +``` + +### Scan + * Pull a container image for scanning: ```shell docker pull node:8.11 @@ -57,7 +66,7 @@ docker run -i --rm --name=deepfence-secretscanner \ -e DEEPFENCE_PRODUCT= \ -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ - quay.io/deepfenceio/deepfence_secret_scanner_ce:3.0.0 \ + quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 \ --image-name node:8.11 \ --output json > node.json ``` @@ -69,7 +78,7 @@ docker run -i --rm --name=deepfence-yarahunter \ -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /tmp/rules:/tmp/rules \ - quay.io/deepfenceio/deepfence_secret_scanner_ce:3.0.0 \ + quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 \ --image-name node:8.11 \ --rules-path=/tmp/rules \ --output json > node.json diff --git a/agent-plugins-grpc b/agent-plugins-grpc index 3f7e4f7..512fd2d 160000 --- a/agent-plugins-grpc +++ b/agent-plugins-grpc @@ -1 +1 @@ -Subproject commit 3f7e4f7c9e8739b4f44b7b446e94b3f1aed1539b +Subproject commit 512fd2df6db19f7b06c204d7f9553fd88304c1b4 diff --git a/docs/docs/secretscanner/configure/cli.md b/docs/docs/secretscanner/configure/cli.md index 588904a..80a15d4 100644 --- a/docs/docs/secretscanner/configure/cli.md +++ b/docs/docs/secretscanner/configure/cli.md @@ -7,7 +7,7 @@ title: Command-Line Options Display the command line options: ```bash -docker run -it --rm quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 --help +docker run -it --rm quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 --help ``` or, with a standalone build: @@ -48,21 +48,6 @@ SecretScanner can write output as Table and JSON format * `-output`: Output format: json or table (default "table") -### Configure GRPC Listener - -SocketScanner can run persistently, listening for scan requests over GRPC, either on an HTTP endpoint or a unix socket. - -:::info - -### Help needed! - -This functionality is out-of-date and needs refreshed -::: - - * `--http-port string`: When set the http server will come up at port with df es as output - * `--socket-path string`: The gRPC server unix socket path - - ### Configure Scans Scans can be fine-tuned using settings in `config.yaml`: diff --git a/docs/docs/secretscanner/configure/output.md b/docs/docs/secretscanner/configure/output.md index 0e8e7ea..d4965c7 100644 --- a/docs/docs/secretscanner/configure/output.md +++ b/docs/docs/secretscanner/configure/output.md @@ -10,8 +10,10 @@ SecretScanner can writes output to `stdout` it can redirected to a file for furt # Write output to ./tmp/node-secret-scan.json docker run -it --rm --name=deepfence_secret_scanner \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ - quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 \ --image-name node:latest \ # highlight-next-line --output json > ./tmp/node-secret-scan.json diff --git a/docs/docs/secretscanner/img/secretscanner.svg b/docs/docs/secretscanner/img/secretscanner.svg index 5546df3..d8c33eb 100644 --- a/docs/docs/secretscanner/img/secretscanner.svg +++ b/docs/docs/secretscanner/img/secretscanner.svg @@ -397,7 +397,7 @@ Deepfence SecretScanner - user@host:~$ d user@host:~$ do user@host:~$ doc user@host:~$ dock user@host:~$ docke user@host:~$ docker user@host:~$ docker user@host:~$ docker p user@host:~$ docker pu user@host:~$ docker pul user@host:~$ docker pull user@host:~$ docker pull user@host:~$ docker pull quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 user@host:~$ docker pull quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 user@host:~$ docker pull quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 latest: Pulling from quay.io/deepfenceio/deepfence_secret_scanner_ceDigest: sha256:6b295168d666e52512de5d2cb5d9722c18f0e3754bc2bd8f04f0a5e745025983Status: Image is up to date for quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0docker.io/quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0user@host:~$ user@host:~$ docker pull node:latest user@host:~$ docker pull node:latest user@host:~$ docker pull node:latest latest: Pulling from library/nodeDigest: sha256:a6f295c2354992f827693a2603c8b9b5b487db4da0714f5913a917ed588d6d41Status: Image is up to date for node:latestdocker.io/library/node:latestuser@host:~$ docker run user@host:~$ docker run -it user@host:~$ docker run -it --rm user@host:~$ docker run -it --rm --name=deepfence-secretscanner user@host:~$ docker run -it --rm --name=deepfence-secretscanner \ -v -v /var/run/docker.sock:/var/run/docker.sock -v /var/run/docker.sock:/var/run/docker.sock \ -v /tmp:/home/deepfence/output -v /tmp:/home/deepfence/output \ quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 \ --image-name --image-name node:latest --image-name node:latest --json-filename=node-secret-scan.json --image-name node:latest --json-filename=node-secret-scan.json --image-name node:latest --json-filename=node-secret-scan.json Initializing....Scanning image node:latest for secrets...connected successfully using endpoint: unix:///var/run/docker.sock container runtime detected: dockerScanning image /tmp/Deepfence/SecretScanning/df_nodelatest/save-output.tar for secrets... { "Image Layer ID": "e31e415306f711857958b20f8d105b603a084205f27dc3cb571916095ea3de15", "Matched Rule ID": 0, "Matched Rule Name": "Potential cryptographic private key", "Matched Part": "extension", "String to Match": ".pem", "Signature to Match": "", "Severity": "low", "Severity Score": 2.50, "Starting Index of Match in Original Content": 0, "Relative Starting Index of Match in Displayed Substring": 0, "Relative Ending Index of Match in Displayed Substring": 4, "Full File Name": "etc/ssl/certs/ACCVRAIZ1.pem", "Matched Contents": ".pem" }, "Image Layer ID": "83947950adda086956f93f4bd6f7568505b34c3b9017ad312b1c8c96d65608fb", "Matched Rule ID": 128, "Matched Rule Name": "netrc with SMTP credentials", "String to Match": ".netrc", "Relative Ending Index of Match in Displayed Substring": 6, "Full File Name": "usr/share/doc/git/contrib/credential/netrc/test.netrc", "Matched Contents": ".netrc" "Matched Rule ID": 118, "Matched Rule Name": "Username and password in URI", "Matched Part": "contents", "String to Match": "", "Signature to Match": "([\w+]{1,24})(://)([^$<]{1})([^\s\";]{1,}):([^$<]{1})([^\s\";/]{1,})@[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,24}([^\s]+)", "Severity": "high", "Severity Score": 7.59, "Starting Index of Match in Original Content": 12321, "Relative Starting Index of Match in Displayed Substring": 33, "Relative Ending Index of Match in Displayed Substring": 78, "Full File Name": "usr/share/perl/5.32.1/HTTP/Tiny.pm", "Matched Contents": "#pod $http->request('GET', 'http://john%40example.com:password@example.com/');" "Image Layer ID": "abcc9d89b3d7584095b901833ee94f78cb02b8532f590660e318c4ea66c40930", "Matched Rule ID": 85, "Matched Rule Name": "Potential Linux passwd file", "Matched Part": "path", "Signature to Match": "etc/passwd$", "Severity": "medium", "Severity Score": 5.00, "Relative Ending Index of Match in Displayed Substring": 10, "Full File Name": "etc/passwd", "Matched Contents": "etc/passwd" "Matched Rule ID": 84, "Matched Rule Name": "Potential Linux shadow file", "Signature to Match": "etc/shadow$", "Full File Name": "etc/shadow", "Matched Contents": "etc/shadow" "Image Layer ID": "d1a3146d3b79ccc975da537aed6041d11e9f201645b2992b1a268b4ac5d705f2", "Severity Score": 7.57, "Starting Index of Match in Original Content": 6399, "Relative Starting Index of Match in Displayed Substring": 8, "Relative Ending Index of Match in Displayed Substring": 45, "Full File Name": "usr/local/lib/node_modules/npm/node_modules/hosted-git-info/lib/index.js", "Matched Contents": "proto://username:password@hostname.com:user/repo" }{ "Timestamp": "2022-08-18 12:48:40.986444513 +00:00", "Image Name": "node:latest", "Image ID": "3adbe565b1f05545a12f2acd51b5e77207cec7f7cf4dd4caa725d4503cd4fe7a", "Secrets": [ ]}user@host:~$ c user@host:~$ ca user@host:~$ cat user@host:~$ cat user@host:~$ cat / user@host:~$ cat /t user@host:~$ cat /tm user@host:~$ cat /tmp user@host:~$ cat /tmp/ user@host:~$ cat /tmp/n user@host:~$ cat /tmp/no user@host:~$ cat /tmp/nod user@host:~$ cat /tmp/node user@host:~$ cat /tmp/node- user@host:~$ cat /tmp/node-s user@host:~$ cat /tmp/node-se user@host:~$ cat /tmp/node-sec user@host:~$ cat /tmp/node-secr user@host:~$ cat /tmp/node-secre user@host:~$ cat /tmp/node-secret user@host:~$ cat /tmp/node-secret- user@host:~$ cat /tmp/node-secret-s user@host:~$ cat /tmp/node-secret-sc user@host:~$ cat /tmp/node-secret-sca user@host:~$ cat /tmp/node-secret-scan user@host:~$ cat /tmp/node-secret-scan. user@host:~$ cat /tmp/node-secret-scan.j user@host:~$ cat /tmp/node-secret-scan.js user@host:~$ cat /tmp/node-secret-scan.jso user@host:~$ cat /tmp/node-secret-scan.json user@host:~$ cat /tmp/node-secret-scan.json user@host:~$ cat /tmp/node-secret-scan.json | user@host:~$ cat /tmp/node-secret-scan.json | user@host:~$ cat /tmp/node-secret-scan.json | j user@host:~$ cat /tmp/node-secret-scan.json | jq user@host:~$ cat /tmp/node-secret-scan.json | jq user@host:~$ cat /tmp/node-secret-scan.json | jq ' user@host:~$ cat /tmp/node-secret-scan.json | jq '. user@host:~$ cat /tmp/node-secret-scan.json | jq '.S user@host:~$ cat /tmp/node-secret-scan.json | jq '.Se user@host:~$ cat /tmp/node-secret-scan.json | jq '.Sec user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secr user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secre user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secret user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[ user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { r user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { ru user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rul user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: . user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ." user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."M user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Ma user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Mat user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Matc user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Match user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Matche user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Matched user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Matched R Ru Rul Rule Rule Rule N Rule Na Rule Nam Rule Name Rule Name" Rule Name", Rule Name", Rule Name", f Rule Name", fi Rule Name", fil Rule Name", file Rule Name", file: Rule Name", file: Rule Name", file: . Rule Name", file: ." Rule Name", file: ."F Rule Name", file: ."Fu Rule Name", file: ."Ful Rule Name", file: ."Full Rule Name", file: ."Full Rule Name", file: ."Full F Rule Name", file: ."Full Fi Rule Name", file: ."Full Fil Rule Name", file: ."Full File Rule Name", file: ."Full File Rule Name", file: ."Full File N Rule Name", file: ."Full File Na Rule Name", file: ."Full File Nam Rule Name", file: ."Full File Name Rule Name", file: ."Full File Name" Rule Name", file: ."Full File Name" Rule Name", file: ."Full File Name" } Rule Name", file: ."Full File Name" }' Rule Name", file: ."Full File Name" }' Rule Name", file: ."Full File Name" }'cat zz | jq '.Secrets[] | { rule: ."Matched Rule Name", file: ."Full File Name" }'}'{ "rule": "Potential cryptographic private key", "file": "etc/ssl/certs/ACCVRAIZ1.pem"} "rule": "netrc with SMTP credentials", "file": "usr/share/doc/git/contrib/credential/netrc/test.netrc" "rule": "Username and password in URI", "file": "usr/share/perl/5.32.1/HTTP/Tiny.pm" "rule": "Potential Linux passwd file", "file": "etc/passwd" "rule": "Potential Linux shadow file", "file": "etc/shadow" "file": "usr/local/lib/node_modules/npm/node_modules/hosted-git-info/lib/index.js" + user@host:~$ d user@host:~$ do user@host:~$ doc user@host:~$ dock user@host:~$ docke user@host:~$ docker user@host:~$ docker user@host:~$ docker p user@host:~$ docker pu user@host:~$ docker pul user@host:~$ docker pull user@host:~$ docker pull user@host:~$ docker pull quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 user@host:~$ docker pull quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 user@host:~$ docker pull quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 latest: Pulling from quay.io/deepfenceio/deepfence_secret_scanner_ceDigest: sha256:6b295168d666e52512de5d2cb5d9722c18f0e3754bc2bd8f04f0a5e745025983Status: Image is up to date for quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0docker.io/quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0user@host:~$ user@host:~$ docker pull node:latest user@host:~$ docker pull node:latest user@host:~$ docker pull node:latest latest: Pulling from library/nodeDigest: sha256:a6f295c2354992f827693a2603c8b9b5b487db4da0714f5913a917ed588d6d41Status: Image is up to date for node:latestdocker.io/library/node:latestuser@host:~$ docker run user@host:~$ docker run -it user@host:~$ docker run -it --rm user@host:~$ docker run -it --rm --name=deepfence-secretscanner user@host:~$ docker run -it --rm --name=deepfence-secretscanner \ -v -v /var/run/docker.sock:/var/run/docker.sock -v /var/run/docker.sock:/var/run/docker.sock \ -v /tmp:/home/deepfence/output -v /tmp:/home/deepfence/output \ quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 \ --image-name --image-name node:latest --image-name node:latest --json-filename=node-secret-scan.json --image-name node:latest --json-filename=node-secret-scan.json --image-name node:latest --json-filename=node-secret-scan.json Initializing....Scanning image node:latest for secrets...connected successfully using endpoint: unix:///var/run/docker.sock container runtime detected: dockerScanning image /tmp/Deepfence/SecretScanning/df_nodelatest/save-output.tar for secrets... { "Image Layer ID": "e31e415306f711857958b20f8d105b603a084205f27dc3cb571916095ea3de15", "Matched Rule ID": 0, "Matched Rule Name": "Potential cryptographic private key", "Matched Part": "extension", "String to Match": ".pem", "Signature to Match": "", "Severity": "low", "Severity Score": 2.50, "Starting Index of Match in Original Content": 0, "Relative Starting Index of Match in Displayed Substring": 0, "Relative Ending Index of Match in Displayed Substring": 4, "Full File Name": "etc/ssl/certs/ACCVRAIZ1.pem", "Matched Contents": ".pem" }, "Image Layer ID": "83947950adda086956f93f4bd6f7568505b34c3b9017ad312b1c8c96d65608fb", "Matched Rule ID": 128, "Matched Rule Name": "netrc with SMTP credentials", "String to Match": ".netrc", "Relative Ending Index of Match in Displayed Substring": 6, "Full File Name": "usr/share/doc/git/contrib/credential/netrc/test.netrc", "Matched Contents": ".netrc" "Matched Rule ID": 118, "Matched Rule Name": "Username and password in URI", "Matched Part": "contents", "String to Match": "", "Signature to Match": "([\w+]{1,24})(://)([^$<]{1})([^\s\";]{1,}):([^$<]{1})([^\s\";/]{1,})@[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,24}([^\s]+)", "Severity": "high", "Severity Score": 7.59, "Starting Index of Match in Original Content": 12321, "Relative Starting Index of Match in Displayed Substring": 33, "Relative Ending Index of Match in Displayed Substring": 78, "Full File Name": "usr/share/perl/5.32.1/HTTP/Tiny.pm", "Matched Contents": "#pod $http->request('GET', 'http://john%40example.com:password@example.com/');" "Image Layer ID": "abcc9d89b3d7584095b901833ee94f78cb02b8532f590660e318c4ea66c40930", "Matched Rule ID": 85, "Matched Rule Name": "Potential Linux passwd file", "Matched Part": "path", "Signature to Match": "etc/passwd$", "Severity": "medium", "Severity Score": 5.00, "Relative Ending Index of Match in Displayed Substring": 10, "Full File Name": "etc/passwd", "Matched Contents": "etc/passwd" "Matched Rule ID": 84, "Matched Rule Name": "Potential Linux shadow file", "Signature to Match": "etc/shadow$", "Full File Name": "etc/shadow", "Matched Contents": "etc/shadow" "Image Layer ID": "d1a3146d3b79ccc975da537aed6041d11e9f201645b2992b1a268b4ac5d705f2", "Severity Score": 7.57, "Starting Index of Match in Original Content": 6399, "Relative Starting Index of Match in Displayed Substring": 8, "Relative Ending Index of Match in Displayed Substring": 45, "Full File Name": "usr/local/lib/node_modules/npm/node_modules/hosted-git-info/lib/index.js", "Matched Contents": "proto://username:password@hostname.com:user/repo" }{ "Timestamp": "2022-08-18 12:48:40.986444513 +00:00", "Image Name": "node:latest", "Image ID": "3adbe565b1f05545a12f2acd51b5e77207cec7f7cf4dd4caa725d4503cd4fe7a", "Secrets": [ ]}user@host:~$ c user@host:~$ ca user@host:~$ cat user@host:~$ cat user@host:~$ cat / user@host:~$ cat /t user@host:~$ cat /tm user@host:~$ cat /tmp user@host:~$ cat /tmp/ user@host:~$ cat /tmp/n user@host:~$ cat /tmp/no user@host:~$ cat /tmp/nod user@host:~$ cat /tmp/node user@host:~$ cat /tmp/node- user@host:~$ cat /tmp/node-s user@host:~$ cat /tmp/node-se user@host:~$ cat /tmp/node-sec user@host:~$ cat /tmp/node-secr user@host:~$ cat /tmp/node-secre user@host:~$ cat /tmp/node-secret user@host:~$ cat /tmp/node-secret- user@host:~$ cat /tmp/node-secret-s user@host:~$ cat /tmp/node-secret-sc user@host:~$ cat /tmp/node-secret-sca user@host:~$ cat /tmp/node-secret-scan user@host:~$ cat /tmp/node-secret-scan. user@host:~$ cat /tmp/node-secret-scan.j user@host:~$ cat /tmp/node-secret-scan.js user@host:~$ cat /tmp/node-secret-scan.jso user@host:~$ cat /tmp/node-secret-scan.json user@host:~$ cat /tmp/node-secret-scan.json user@host:~$ cat /tmp/node-secret-scan.json | user@host:~$ cat /tmp/node-secret-scan.json | user@host:~$ cat /tmp/node-secret-scan.json | j user@host:~$ cat /tmp/node-secret-scan.json | jq user@host:~$ cat /tmp/node-secret-scan.json | jq user@host:~$ cat /tmp/node-secret-scan.json | jq ' user@host:~$ cat /tmp/node-secret-scan.json | jq '. user@host:~$ cat /tmp/node-secret-scan.json | jq '.S user@host:~$ cat /tmp/node-secret-scan.json | jq '.Se user@host:~$ cat /tmp/node-secret-scan.json | jq '.Sec user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secr user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secre user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secret user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[ user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { r user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { ru user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rul user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: . user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ." user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."M user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Ma user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Mat user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Matc user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Match user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Matche user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Matched user@host:~$ cat /tmp/node-secret-scan.json | jq '.Secrets[] | { rule: ."Matched R Ru Rul Rule Rule Rule N Rule Na Rule Nam Rule Name Rule Name" Rule Name", Rule Name", Rule Name", f Rule Name", fi Rule Name", fil Rule Name", file Rule Name", file: Rule Name", file: Rule Name", file: . Rule Name", file: ." Rule Name", file: ."F Rule Name", file: ."Fu Rule Name", file: ."Ful Rule Name", file: ."Full Rule Name", file: ."Full Rule Name", file: ."Full F Rule Name", file: ."Full Fi Rule Name", file: ."Full Fil Rule Name", file: ."Full File Rule Name", file: ."Full File Rule Name", file: ."Full File N Rule Name", file: ."Full File Na Rule Name", file: ."Full File Nam Rule Name", file: ."Full File Name Rule Name", file: ."Full File Name" Rule Name", file: ."Full File Name" Rule Name", file: ."Full File Name" } Rule Name", file: ."Full File Name" }' Rule Name", file: ."Full File Name" }' Rule Name", file: ."Full File Name" }'cat zz | jq '.Secrets[] | { rule: ."Matched Rule Name", file: ."Full File Name" }'}'{ "rule": "Potential cryptographic private key", "file": "etc/ssl/certs/ACCVRAIZ1.pem"} "rule": "netrc with SMTP credentials", "file": "usr/share/doc/git/contrib/credential/netrc/test.netrc" "rule": "Username and password in URI", "file": "usr/share/perl/5.32.1/HTTP/Tiny.pm" "rule": "Potential Linux passwd file", "file": "etc/passwd" "rule": "Potential Linux shadow file", "file": "etc/shadow" "file": "usr/local/lib/node_modules/npm/node_modules/hosted-git-info/lib/index.js" diff --git a/docs/docs/secretscanner/quickstart.md b/docs/docs/secretscanner/quickstart.md index 36e8bc2..b1e8cff 100644 --- a/docs/docs/secretscanner/quickstart.md +++ b/docs/docs/secretscanner/quickstart.md @@ -9,7 +9,14 @@ Pull the latest SecretScanner image, and use it to scan a `node:latest` containe ## Pull the latest SecretScanner image ```bash -docker pull quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 +docker pull quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 +``` + +## Generate License Key + +Run this command to generate a license key. Work/official email id has to be used. +```shell +curl https://license.deepfence.io/threatmapper/generate-license?first_name=&last_name=&email=&company=&resend_email=true ``` ## Scan a Container Image @@ -20,21 +27,38 @@ Pull an image to your local repository, then scan it docker pull node:latest docker run -i --rm --name=deepfence-secretscanner \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ - quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 \ -image-name node:latest docker rmi node:latest ``` +Rules can also be cached to use next run by mounting a seperate path and passing `rules-path` argument +```shell +docker run -i --rm --name=deepfence-yarahunter \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /tmp/rules:/tmp/rules \ + quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 \ + --image-name node:8.11 \ + --rules-path=/tmp/rules \ + --output json > node.json +``` + ## Process the results with jq You can summarise the results by processing the JSON output, e.g. using `jq`: ```bash docker run -i --rm --name=deepfence-secretscanner \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ - quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 \ --image-name node:latest \ --output json > /tmp/node-secret-scan.json diff --git a/docs/docs/secretscanner/using/build.md b/docs/docs/secretscanner/using/build.md index 91da0b2..b0e2e92 100644 --- a/docs/docs/secretscanner/using/build.md +++ b/docs/docs/secretscanner/using/build.md @@ -8,11 +8,11 @@ SecretScanner is a self-contained docker-based tool. Clone the [SecretScanner re ```bash ./bootstrap.sh -docker build --rm=true --tag=quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 -f Dockerfile . +docker build --rm=true --tag=quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 -f Dockerfile . ``` -Alternatively, you can pull the official Deepfence image at `quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0`: +Alternatively, you can pull the official Deepfence image at `quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0`: ```bash -docker pull quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 +docker pull quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 ``` \ No newline at end of file diff --git a/docs/docs/secretscanner/using/grpc.md b/docs/docs/secretscanner/using/grpc.md deleted file mode 100644 index 165355a..0000000 --- a/docs/docs/secretscanner/using/grpc.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Using over GRPC ---- - -# Using over GRPC - -You can run a persistent SecretScanner service and issue requests for scans using GRPC. You first need to build SecretScanner from source, to generate the necessary proto files. - -:::info - -### Help needed! - -These instructions are out-of-date and need refreshed -::: - -## Prerequisites - -You will need the [grcpurl](https://github.com/fullstorydev/grpcurl) tool. - - -## Run the SecretScanner gRPC server - -Start the SecretScanner gRPC server: - -```bash -docker run -it --rm --name=deepfence-secretscanner \ - -v $(pwd):/home/deepfence/output \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -v /tmp/sock:/tmp/sock \ - quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 \ - -socket-path /tmp/sock/s.sock -``` - - -## Scan a Container Image - -```bash -# run this from the repo directory, or update the import-path - -grpcurl -plaintext -import-path ./agent-plugins-grpc/proto -proto secret_scanner.proto \ - -d '{"image": {"name": "node:latest"}}' \ - -unix '/tmp/sock.sock' \ - secret_scanner.SecretScanner/FindSecretInfo -``` - -## Scan a Local Directory - -```bash -# run this from the repo directory, or update the import-path - -grpcurl -plaintext -import-path ./agent-plugins-grpc/proto -proto secret_scanner.proto \ - -d '{"path": "/tmp"}' \ - -unix '/tmp/sock.sock' \ - secret_scanner.SecretScanner/FindSecretInfo -``` - diff --git a/docs/docs/secretscanner/using/scan.md b/docs/docs/secretscanner/using/scan.md index f873240..9cad627 100644 --- a/docs/docs/secretscanner/using/scan.md +++ b/docs/docs/secretscanner/using/scan.md @@ -14,8 +14,10 @@ Pull the image to your local repository, then scan it docker pull node:latest docker run -it --rm --name=deepfence-secretscanner \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ - quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 \ # highlight-next-line --image-name node:latest @@ -28,9 +30,11 @@ Mount the filesystem within the SecretScanner container and scan it. Here, we s ```bash docker run -it --rm --name=deepfence-secretscanner \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ # highlight-next-line -v /tmp:/deepfence/mnt \ - quay.io/deepfenceio/deepfence_secret_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_secret_scanner_ce:2.5.0 \ # highlight-next-line --host-mount-path /deepfence/mnt --local /deepfence/mnt ``` diff --git a/docs/docs/secretscanner/using/standalone.md b/docs/docs/secretscanner/using/standalone.md index be406d0..e85e892 100644 --- a/docs/docs/secretscanner/using/standalone.md +++ b/docs/docs/secretscanner/using/standalone.md @@ -17,12 +17,12 @@ These instructions are out-of-date and need refreshed ## Build Instructions 1. Run bootstrap.sh -1. Install Docker -1. Install Hyperscan -1. Install go for your platform (version 1.14) -1. Install go modules, if needed: `gohs`, `yaml.v3` and `color` -1. `go get github.com/deepfence/SecretScanner` will download and build SecretScanner automatically in `$GOPATH/bin` or `$HOME/go/bin` directory. Or, clone this repository and run `go build -v -i` to build the executable in the current directory. -1. Edit config.yaml file as needed and run the secret scanner with the appropriate config file directory. +2. Install Docker +3. Install Hyperscan +4. Install go for your platform (version 1.14) +5. Install go modules, if needed: `gohs`, `yaml.v3` and `color` +6. `go get github.com/deepfence/SecretScanner` will download and build SecretScanner automatically in `$GOPATH/bin` or `$HOME/go/bin` directory. Or, clone this repository and run `go build -v -i` to build the executable in the current directory. +7. Edit config.yaml file as needed and run the secret scanner with the appropriate config file directory. Refer to the [Install file](https://github.com/deepfence/SecretScanner/blob/master/Install.Ubuntu) for instructions on how to build on an ubuntu system. diff --git a/docs/sidebars.js b/docs/sidebars.js index 5eb0071..a641781 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -30,8 +30,7 @@ const sidebars = { items: [ 'secretscanner/using/build', 'secretscanner/using/scan', - 'secretscanner/using/standalone', - 'secretscanner/using/grpc', + 'secretscanner/using/standalone' ] }, diff --git a/go.mod b/go.mod index c69b288..a554e63 100644 --- a/go.mod +++ b/go.mod @@ -1,46 +1,46 @@ module github.com/deepfence/SecretScanner -go 1.22.0 +go 1.23.2 replace github.com/deepfence/agent-plugins-grpc => ./agent-plugins-grpc require ( - github.com/deepfence/YaraHunter v0.0.0-20241029103149-f55d781a0919 + github.com/deepfence/YaraHunter v0.0.0-20241105073154-c856e0077615 github.com/deepfence/agent-plugins-grpc v0.0.0-00010101000000-000000000000 - github.com/deepfence/golang_deepfence_sdk/client v0.0.0-20240807105002-4943c14781c5 - github.com/deepfence/golang_deepfence_sdk/utils v0.0.0-20240807105002-4943c14781c5 - github.com/deepfence/match-scanner v0.0.0-20240911064151-126aab4d21e4 - github.com/fatih/color v1.17.0 + github.com/deepfence/golang_deepfence_sdk/client v0.0.0-20241104185440-230d22a0d173 + github.com/deepfence/golang_deepfence_sdk/utils v0.0.0-20241104185440-230d22a0d173 + github.com/deepfence/match-scanner v0.0.0-20241104190155-00799508ab6c + github.com/fatih/color v1.16.0 github.com/olekukonko/tablewriter v0.0.5 github.com/sirupsen/logrus v1.9.3 - google.golang.org/grpc v1.66.1 + google.golang.org/grpc v1.67.1 ) require ( github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect - github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20231105174938-2b5cbb29f3e2 // indirect + github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect - github.com/Microsoft/hcsshim v0.12.4 // indirect + github.com/Microsoft/hcsshim v0.11.7 // indirect github.com/VirusTotal/gyp v0.9.0 // indirect - github.com/containerd/cgroups/v3 v3.0.3 // indirect - github.com/containerd/containerd v1.7.19 // indirect + github.com/containerd/cgroups v1.1.0 // indirect + github.com/containerd/containerd v1.7.23 // indirect github.com/containerd/containerd/api v1.7.19 // indirect - github.com/containerd/continuity v0.4.3 // indirect - github.com/containerd/errdefs v0.1.0 // indirect + github.com/containerd/continuity v0.4.2 // indirect + github.com/containerd/errdefs v0.3.0 // indirect github.com/containerd/fifo v1.1.0 // indirect github.com/containerd/log v0.1.0 // indirect github.com/containerd/platforms v0.2.1 // indirect github.com/containerd/ttrpc v1.2.5 // indirect github.com/containerd/typeurl/v2 v2.1.1 // indirect - github.com/deepfence/vessel v0.12.4 // indirect + github.com/deepfence/vessel v0.13.0 // indirect github.com/distribution/reference v0.6.0 // indirect - github.com/docker/docker v27.0.3+incompatible // indirect - github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/docker v27.3.1+incompatible // indirect + github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/gabriel-vasile/mimetype v1.4.5 // indirect - github.com/go-logr/logr v1.4.2 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/gabriel-vasile/mimetype v1.4.6 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -50,34 +50,34 @@ require ( github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hillu/go-yara/v4 v4.3.3 // indirect - github.com/klauspost/compress v1.17.9 // indirect + github.com/klauspost/compress v1.16.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/mattn/go-runewidth v0.0.9 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/locker v1.0.1 // indirect - github.com/moby/sys/mountinfo v0.7.1 // indirect + github.com/moby/sys/mountinfo v0.6.2 // indirect github.com/moby/sys/sequential v0.5.0 // indirect github.com/moby/sys/signal v0.7.0 // indirect - github.com/moby/sys/user v0.1.0 // indirect + github.com/moby/sys/user v0.3.0 // indirect + github.com/moby/sys/userns v0.1.0 // indirect github.com/nlepage/go-tarfs v1.2.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect - github.com/opencontainers/runtime-spec v1.2.0 // indirect + github.com/opencontainers/runtime-spec v1.1.0 // indirect github.com/opencontainers/selinux v1.11.0 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/rivo/uniseg v0.4.7 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect - go.opentelemetry.io/otel v1.28.0 // indirect - go.opentelemetry.io/otel/metric v1.28.0 // indirect - go.opentelemetry.io/otel/trace v1.28.0 // indirect - golang.org/x/net v0.27.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.22.0 // indirect - golang.org/x/text v0.16.0 // indirect - google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b // indirect - google.golang.org/protobuf v1.34.2 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect + go.opentelemetry.io/otel v1.21.0 // indirect + go.opentelemetry.io/otel/metric v1.21.0 // indirect + go.opentelemetry.io/otel/trace v1.21.0 // indirect + golang.org/x/net v0.30.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.26.0 // indirect + golang.org/x/text v0.19.0 // indirect + google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect + google.golang.org/protobuf v1.35.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 21719e0..a2abc26 100644 --- a/go.sum +++ b/go.sum @@ -1,15 +1,15 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= -github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20231105174938-2b5cbb29f3e2 h1:dIScnXFlF784X79oi7MzVT6GWqr/W1uUt0pB5CsDs9M= -github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20231105174938-2b5cbb29f3e2/go.mod h1:gCLVsLfv1egrcZu+GoJATN5ts75F2s62ih/457eWzOw= +github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 h1:59MxjQVfjXsBpLy+dbd2/ELV5ofnUkUZBvWSC85sheA= +github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0/go.mod h1:OahwfttHWG6eJ0clwcfBAHoDI6X/LV/15hx/wlMZSrU= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -github.com/Microsoft/hcsshim v0.12.4 h1:Ev7YUMHAHoWNm+aDSPzc5W9s6E2jyL1szpVDJeZ/Rr4= -github.com/Microsoft/hcsshim v0.12.4/go.mod h1:Iyl1WVpZzr+UkzjekHZbV8o5Z9ZkxNGx6CtY2Qg/JVQ= +github.com/Microsoft/hcsshim v0.11.7 h1:vl/nj3Bar/CvJSYo7gIQPyRWc9f3c6IeSNavBTSZNZQ= +github.com/Microsoft/hcsshim v0.11.7/go.mod h1:MV8xMfmECjl5HdO7U/3/hFVnkmSBjAjmA09d4bExKcU= github.com/VirusTotal/gyp v0.9.0 h1:jhOBl93jfStmAcKLa/EcTmdPng5bn5kvJJZqQqJ5R4g= github.com/VirusTotal/gyp v0.9.0/go.mod h1:nmcW15dQ1657PmMcG9X/EZmp6rTQsyo9g8r6Cz1/AHc= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= @@ -17,16 +17,16 @@ github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyY github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/containerd/cgroups/v3 v3.0.3 h1:S5ByHZ/h9PMe5IOQoN7E+nMc2UcLEM/V48DGDJ9kip0= -github.com/containerd/cgroups/v3 v3.0.3/go.mod h1:8HBe7V3aWGLFPd/k03swSIsGjZhHI2WzJmticMgVuz0= -github.com/containerd/containerd v1.7.19 h1:/xQ4XRJ0tamDkdzrrBAUy/LE5nCcxFKdBm4EcPrSMEE= -github.com/containerd/containerd v1.7.19/go.mod h1:h4FtNYUUMB4Phr6v+xG89RYKj9XccvbNSCKjdufCrkc= +github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= +github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= +github.com/containerd/containerd v1.7.23 h1:H2CClyUkmpKAGlhQp95g2WXHfLYc7whAuvZGBNYOOwQ= +github.com/containerd/containerd v1.7.23/go.mod h1:7QUzfURqZWCZV7RLNEn1XjUCQLEf0bkaK4GjUaZehxw= github.com/containerd/containerd/api v1.7.19 h1:VWbJL+8Ap4Ju2mx9c9qS1uFSB1OVYr5JJrW2yT5vFoA= github.com/containerd/containerd/api v1.7.19/go.mod h1:fwGavl3LNwAV5ilJ0sbrABL44AQxmNjDRcwheXDb6Ig= -github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7bEZ9Su8= -github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= -github.com/containerd/errdefs v0.1.0 h1:m0wCRBiu1WJT/Fr+iOoQHMQS/eP5myQ8lCv4Dz5ZURM= -github.com/containerd/errdefs v0.1.0/go.mod h1:YgWiiHtLmSeBrvpw+UfPijzbLaB77mEG1WwJTDETIV0= +github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= +github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= +github.com/containerd/errdefs v0.3.0 h1:FSZgGOeK4yuT/+DnF07/Olde/q4KBoMsaamhXxIMDp4= +github.com/containerd/errdefs v0.3.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY= github.com/containerd/fifo v1.1.0/go.mod h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= @@ -40,22 +40,22 @@ github.com/containerd/typeurl/v2 v2.1.1/go.mod h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3H github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deepfence/YaraHunter v0.0.0-20241029103149-f55d781a0919 h1:K3gxl+msEaDeiSwZyJQtFRraYLFP/k5donn+kalzy7Y= -github.com/deepfence/YaraHunter v0.0.0-20241029103149-f55d781a0919/go.mod h1:JkU6y48l2/XeYOb4iGFyTT2f9auEKU9OS49CHgEPI9k= -github.com/deepfence/golang_deepfence_sdk/client v0.0.0-20240807105002-4943c14781c5 h1:Cn15C8hpx1ibMEx7ReitFQUQw1g3X5s3dfKG4AsX5Us= -github.com/deepfence/golang_deepfence_sdk/client v0.0.0-20240807105002-4943c14781c5/go.mod h1:+rchMc4YNjCoHo0YAwKsT+DRBNr1hdDG0WrvAOOCc5k= -github.com/deepfence/golang_deepfence_sdk/utils v0.0.0-20240807105002-4943c14781c5 h1:AfmfkTBWHHdSRj4FzYJEv48Lm8JSDzfsxhehPT5whiI= -github.com/deepfence/golang_deepfence_sdk/utils v0.0.0-20240807105002-4943c14781c5/go.mod h1:jHS6Adf3VrxnKZZ3RY10BirtFlwWj99Zd4JBAhP9SqM= -github.com/deepfence/match-scanner v0.0.0-20240911064151-126aab4d21e4 h1:PxWlrVlEig6JE2a46Rzst7m2Qmh8faQ0GW2A8tBhhNo= -github.com/deepfence/match-scanner v0.0.0-20240911064151-126aab4d21e4/go.mod h1:5bCT4SRBEZtYhNpo7alngQSvjbdaC+mxrYi1jom6VsM= -github.com/deepfence/vessel v0.12.4 h1:/7RzXlcFwZS16q45XgR0EiIQwq6lzEWWeU47z4AUuzU= -github.com/deepfence/vessel v0.12.4/go.mod h1:bY97YUKMm0Oxasz/9o7Te60FjWCQWUYpgiWNC1E00xo= +github.com/deepfence/YaraHunter v0.0.0-20241105073154-c856e0077615 h1:Ehogrr34CwfEfSkDMU7hyWQd7ktK1detTFXCsK80DdM= +github.com/deepfence/YaraHunter v0.0.0-20241105073154-c856e0077615/go.mod h1:znXzM6Q6LS31gRpcWntuPuvNx+g4yzojw2tWLv17b0M= +github.com/deepfence/golang_deepfence_sdk/client v0.0.0-20241104185440-230d22a0d173 h1:B6ZSc/dXVg+5zloz1BbBalITTLx3h807ZU/XBAooIWY= +github.com/deepfence/golang_deepfence_sdk/client v0.0.0-20241104185440-230d22a0d173/go.mod h1:UkHg/qLuPVnTqx4fPwmc2DhlNp5isdYwIxQ63B9JB4o= +github.com/deepfence/golang_deepfence_sdk/utils v0.0.0-20241104185440-230d22a0d173 h1:nAT8FbII+IDgdYQFZV/UaaH3L5k6wexa9haegI4d5fI= +github.com/deepfence/golang_deepfence_sdk/utils v0.0.0-20241104185440-230d22a0d173/go.mod h1:QdyXNUGNYGPMj8ls9R4N1y/IzmM7LrBQSBC/QuYCX+U= +github.com/deepfence/match-scanner v0.0.0-20241104190155-00799508ab6c h1:0nXgsUJAvP3tgENagcuKlzb92AZFbBAONSE1QmEJzYc= +github.com/deepfence/match-scanner v0.0.0-20241104190155-00799508ab6c/go.mod h1:mrnCFKtEOzLlNUkagkwQeWWdPtrVIZLc7nbEX/7PbaU= +github.com/deepfence/vessel v0.13.0 h1:QRtjtuvSXdjrFt4Nb0SE8FO4n7aUtblFY6am/c9oeIQ= +github.com/deepfence/vessel v0.13.0/go.mod h1:lA3Rj3b1thQ+6PCHkBzzHxCpLGkgokkvqgbWACb4TRg= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v27.0.3+incompatible h1:aBGI9TeQ4MPlhquTQKq9XbK79rKFVwXNUAYz9aXyEBE= -github.com/docker/docker v27.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= -github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI= +github.com/docker/docker v27.3.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -64,15 +64,15 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= -github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= -github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4= -github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/gabriel-vasile/mimetype v1.4.6 h1:3+PzJTKLkvgjeTbts6msPJt4DixhT4YtFNf1gtGe3zc= +github.com/gabriel-vasile/mimetype v1.4.6/go.mod h1:JX1qVKqZd40hUPpAfiNTe0Sne7hdfKSbOqqmkq8GCXc= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -119,11 +119,10 @@ github.com/hillu/go-yara/v4 v4.3.3 h1:O+7iYTZK20fzsXiJyvA0d529RTdnZCrgS6HdE0O7BM github.com/hillu/go-yara/v4 v4.3.3/go.mod h1:AHEs/FXVMQKVVlT6iG9d+q1BRr0gq0WoAWZQaZ0gS7s= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= -github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -132,21 +131,22 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= -github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= -github.com/moby/sys/mountinfo v0.7.1 h1:/tTvQaSJRr2FshkhXiIpux6fQ2Zvc4j7tAhMTStAG2g= -github.com/moby/sys/mountinfo v0.7.1/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= +github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= +github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= github.com/moby/sys/signal v0.7.0 h1:25RW3d5TnQEoKvRbEKUGay6DCQ46IxAVTT9CUMgmsSI= github.com/moby/sys/signal v0.7.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= -github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= -github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo= +github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= @@ -159,8 +159,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= -github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= +github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU= github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -170,11 +170,6 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= -github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -185,26 +180,26 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg= -go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo= -go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= +go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= -go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q= -go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s= -go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= -go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= -go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g= -go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI= +go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -225,16 +220,16 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -244,12 +239,12 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= -golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -269,19 +264,19 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b h1:dSTjko30weBaMj3eERKc0ZVXW4GudCswM3m+P++ukU0= -google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b/go.mod h1:FfBgJBJg9GcpPvKIuHSZ/aE1g2ecGL74upMzGZjiGEY= -google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 h1:0+ozOGcrp+Y8Aq8TLNN2Aliibms5LEzsq99ZZmAGYm0= -google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094/go.mod h1:fJ/e3If/Q67Mj99hin0hMhiNyCRmt6BQ2aWIJshUSJw= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b h1:04+jVzTs2XBnOZcPsLnmrTGqltqJbZQ1Ey26hjYdQQ0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= +google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3 h1:1hfbdAfFbkmpg41000wDVqr7jUpK/Yo+LPnIxxGzmkg= +google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3/go.mod h1:5RBcpGRxr25RbDzY5w+dmaqpSEvl8Gwl1x2CICf60ic= +google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= +google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.66.1 h1:hO5qAXR19+/Z44hmvIM4dQFMSYX9XcWsByfoxutBpAM= -google.golang.org/grpc v1.66.1/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -293,8 +288,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=