From c856e0077615b4032da2a5bcad550af69332e2bc Mon Sep 17 00:00:00 2001 From: Ramanan Ravikumar <38394463+ramanan-ravi@users.noreply.github.com> Date: Tue, 5 Nov 2024 13:01:54 +0530 Subject: [PATCH] Bump to golang 1.23 (#110) --- Dockerfile | 14 +-- Makefile | 2 +- README.md | 15 ++- agent-plugins-grpc | 2 +- docs/docs/yarahunter/configure/cli.md | 4 +- docs/docs/yarahunter/configure/output.md | 6 +- docs/docs/yarahunter/configure/rules.md | 4 +- docs/docs/yarahunter/img/yarahunter.svg | 2 +- docs/docs/yarahunter/index.md | 24 +++- docs/docs/yarahunter/quickstart.md | 17 ++- docs/docs/yarahunter/using/build.md | 6 +- docs/docs/yarahunter/using/grpc.md | 2 +- docs/docs/yarahunter/using/scan.md | 12 +- go.mod | 72 +++++------ go.sum | 150 +++++++++++------------ 15 files changed, 192 insertions(+), 140 deletions(-) diff --git a/Dockerfile b/Dockerfile index 55b3bbd..387220c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.22-bookworm AS skopeo-builder +FROM golang:1.23-bookworm AS skopeo-builder # Ubuntu (`libbtrfs-dev` requires Ubuntu 18.10 and above): RUN apt update && DEBIAN_FRONTEND=noninteractive apt install -y libgpgme-dev libassuan-dev libbtrfs-dev libdevmapper-dev pkg-config @@ -8,7 +8,7 @@ RUN cd $GOPATH/src/github.com/containers/skopeo && DISABLE_DOCS=1 make bin/skope RUN cd $GOPATH/src/github.com/containers/skopeo && DISABLE_DOCS=1 make RUN cd $GOPATH/src/github.com/containers/skopeo && cp ./bin/skopeo /usr/bin/skopeo -FROM golang:1.22-alpine3.18 AS builder +FROM golang:1.23-alpine3.20 AS builder RUN apk add --no-cache \ git \ @@ -40,9 +40,9 @@ RUN apk add --no-cache -t .build-deps py-setuptools \ libmagic-static \ linux-headers -RUN cd /root && wget https://github.com/VirusTotal/yara/archive/refs/tags/v4.3.2.tar.gz \ - && tar -zxf v4.3.2.tar.gz \ - && cd yara-4.3.2 \ +RUN cd /root && wget https://github.com/VirusTotal/yara/archive/refs/tags/v4.5.2.tar.gz \ + && tar -zxf v4.5.2.tar.gz \ + && cd yara-4.5.2 \ && ./bootstrap.sh \ && ./configure --prefix=/usr/local/yara --disable-dotnet --enable-magic --enable-cuckoo --disable-shared --enable-static\ && make \ @@ -62,7 +62,7 @@ LABEL deepfence.role=system COPY --from=skopeo-builder /usr/bin/skopeo /usr/bin/skopeo ENV LD_LIBRARY_PATH=/usr/local/yara/lib \ - DOCKERVERSION=24.0.6 + DOCKERVERSION=27.3.1 RUN apt-get update && apt-get -qq -y --no-install-recommends install libjansson4 libssl3 libmagic1 libstdc++6 jq bash curl ca-certificates @@ -70,7 +70,7 @@ ARG TARGETARCH RUN <&last_name=&email=&company=&resend_email=true +``` + +### Scan + Pull the image that needs to be scanned for example `metal3d/xmrig` and scan it: ``` @@ -59,7 +68,7 @@ docker run -i --rm --name=deepfence-yarahunter \ -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /tmp:/home/deepfence/output \ - quay.io/deepfenceio/deepfence_malware_scanner_ce:3.0.0 \ + quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 \ --image-name metal3d/xmrig:latest \ --output=json > xmrig-scan.json ``` @@ -74,7 +83,7 @@ docker run -i --rm --name=deepfence-yarahunter \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /tmp:/home/deepfence/output \ -v /tmp/rules:/tmp/rules \ - quay.io/deepfenceio/deepfence_malware_scanner_ce:3.0.0 \ + quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 \ --image-name metal3d/xmrig:latest \ --output=json \ --rules-path=/tmp/rules > xmrig-scan.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/yarahunter/configure/cli.md b/docs/docs/yarahunter/configure/cli.md index d1d8554..6fb1f6c 100644 --- a/docs/docs/yarahunter/configure/cli.md +++ b/docs/docs/yarahunter/configure/cli.md @@ -7,14 +7,14 @@ title: Command-Line Options Display the command line options: ```bash -$ docker run -it --rm quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 --help +$ docker run -it --rm quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 --help ``` Note that all files and directories used in YaraHunter configuration are local to the container, not the host filesystem. The examples given illustrate how to map host directories to the container when needed. ### General Configuration - * `--log-level string`: one of FATAL, ERROR, IMPORTANT, WARN, INFO, DEBUG (default "ERROR"); print messages of this severity or higher. + * `--debug-level string`: one of FATAL, ERROR, IMPORTANT, WARN, INFO, DEBUG (default "ERROR"); print messages of this severity or higher. * `--threads int`: Number of concurrent threads to use during scan (default number of logical CPUs). * `--temp-directory string`: temporary storage for working data (default "/tmp") diff --git a/docs/docs/yarahunter/configure/output.md b/docs/docs/yarahunter/configure/output.md index e9830cc..b630b94 100644 --- a/docs/docs/yarahunter/configure/output.md +++ b/docs/docs/yarahunter/configure/output.md @@ -5,12 +5,14 @@ title: Configure Output # Configure Output -YaraHunter can writes output to `stdout` it can redirected to a file for further analysis. +YaraHunter can writes output to `stdout`. It can be redirected to a file for further analysis. ```bash docker run -i --rm --name=yara-hunter \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ - quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 \ --image-name node:latest \ # highlight-next-line --output=json > xmrig-scan.json diff --git a/docs/docs/yarahunter/configure/rules.md b/docs/docs/yarahunter/configure/rules.md index 2ed9ecc..efef844 100644 --- a/docs/docs/yarahunter/configure/rules.md +++ b/docs/docs/yarahunter/configure/rules.md @@ -15,10 +15,12 @@ You can mount the rules directory over the existing one (using `-v $(pwd)/my-rul mkdir ./my-rules docker run -it --rm --name=yara-hunter \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ # highlight-next-line -v $(pwd)/my-rules:/tmp/my-rules \ - quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 --image-name node:latest \ + quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 --image-name node:latest \ # highlight-next-line --rules-path /tmp/my-rules ``` diff --git a/docs/docs/yarahunter/img/yarahunter.svg b/docs/docs/yarahunter/img/yarahunter.svg index 519e0c2..abbb26a 100644 --- a/docs/docs/yarahunter/img/yarahunter.svg +++ b/docs/docs/yarahunter/img/yarahunter.svg @@ -362,7 +362,7 @@ Deepfence YaraHunter - 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_malware_scanner_ce:2.3.0 user@host:~$ docker pull quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 user@host:~$ docker pull quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 latest: Pulling from deepfenceio/yara-hunterDigest: sha256:b82f0143f2a1530720c40ee780f78ab138d04f95b65af7a32a31678a712abe01Status: Image is up to date for quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0docker.io/quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0user@host:~$ user@host:~$ docker pull metal3d/xmrig user@host:~$ docker pull metal3d/xmrig user@host:~$ docker pull metal3d/xmrig Using default tag: latestlatest: Pulling from metal3d/xmriDigest: sha256:c3c27a8b2f6beede6d9c0a7e5b79bb7a7b0002cca40565e7bfd2e447f3a2a628Status: Image is up to date for metal3d/xmrig:latestdocker.io/metal3d/xmrig:latestuser@host:~$ docker run user@host:~$ docker run -it user@host:~$ docker run -it --rm user@host:~$ docker run -it --rm --name=yara-hunter user@host:~$ docker run -it --rm --name=yara-hunter \ -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_malware_scanner_ce:2.3.0 quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 \ --image-name --image-name metal3d/xmrig:latest --image-name metal3d/xmrig:latest \ --json-filename=xmrig-scan.json --json-filename=xmrig-scan.json connected successfully using endpoint: unix:///var/run/docker.sock container runtime detected: docker{ "Timestamp": "2022-08-18 13:58:41.543309237 +00:00", "Image Name": "metal3d/xmrig:latest", "Image ID": "a01f1ffa6691423ef43bfaee2a9c9f30fe08ee6df8d9d6586ae9692d90789c5a", "Malware match detected are": [ { "Image Layer ID": "bad74b706fcd3e01f4af74337744cbcc84ab60da82c40dd588469c6360258789", "Matched Rule Name": "XMRIG_Miner", "Strings to match are": [ "stratum+tcp" ], "Category": [], "File Name": "/tmp/Deepfence/YaRadare/df_metal3dxmriglatest/ExtractedFiles/bad74b706fcd3e01f4af74337744cbcc84ab60da82c40dd588469c6360258789/usr/local/bin/xmrig", "ref":"https://gist.github.com/GelosSnake/c2d4d6ef6f93ccb7d3afb5b1e26c7b4e ", "Summary": "The matched rule file's ref is https://gist.github.com/GelosSnake/c2d4d6ef6f93ccb7d3afb5b1e26c7b4e ." } {/bad74b706fcd3e01f4af74337744cbcc84ab60da82c40dd588469c6360258789/xmrig-6.18.0/build/CMakeFiles/xmrig.dir/src/base/net/stratum/Url.cpp.o", "Matched Rule Name": "Cerberus", "cerberus" "Category": ["RAT","memory"],/bad74b706fcd3e01f4af74337744cbcc84ab60da82c40dd588469c6360258789/xmrig-6.18.0/src/3rdparty/fmt/README.rst", "description":"Cerberus ", "author":"Jean-Philippe Teissier / @Jipe_ ", "date":"2013-01-12 ", "filetype":"memory ", "version":"1.0 ", "Summary": "The file /tmp/Deepfence/YaRadare/df_metal3dxmriglatest/ExtractedFiles/bad74b706fcd3e01f4af74337744cbcc84ab60da82c40dd588469c6360258789/xmrig-6.18.0/src/3rdparty/fmt/README.rst has a memory match.The file has a rule match that Cerberus .The matched rule file's author is Jean-Philippe Teissier / @Jipe_ .The matched rule file's date is 2013-01-12 .The matched rule file's filetype is memory .The matched rule file's version is 1.0 ."rc/base/net/stratum/Url.cpp", ] ]}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/x user@host:~$ cat /tmp/xm user@host:~$ cat /tmp/xmr user@host:~$ cat /tmp/xmri user@host:~$ cat /tmp/xmrig user@host:~$ cat /tmp/xmrig- user@host:~$ cat /tmp/xmrig-s user@host:~$ cat /tmp/xmrig-sc user@host:~$ cat /tmp/xmrig-sca user@host:~$ cat /tmp/xmrig-scan user@host:~$ cat /tmp/xmrig-scan. user@host:~$ cat /tmp/xmrig-scan.j user@host:~$ cat /tmp/xmrig-scan.js user@host:~$ cat /tmp/xmrig-scan.jso user@host:~$ cat /tmp/xmrig-scan.json user@host:~$ cat /tmp/xmrig-scan.json user@host:~$ cat /tmp/xmrig-scan.json | user@host:~$ cat /tmp/xmrig-scan.json | user@host:~$ cat /tmp/xmrig-scan.json | j user@host:~$ cat /tmp/xmrig-scan.json | jq user@host:~$ cat /tmp/xmrig-scan.json | jq user@host:~$ cat /tmp/xmrig-scan.json | jq ' user@host:~$ cat /tmp/xmrig-scan.json | jq '. user@host:~$ cat /tmp/xmrig-scan.json | jq '.I user@host:~$ cat /tmp/xmrig-scan.json | jq '.IO user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[ user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | . user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ." user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."M user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Ma user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Mat user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matc user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Match user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matche user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched R user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Ru user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rul user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule N user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Na user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Nam user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Name user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Name" user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Name"' user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Name"'user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Name"'"XMRIG_Miner""Cerberus" + 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_malware_scanner_ce:2.5.0 user@host:~$ docker pull quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 user@host:~$ docker pull quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 latest: Pulling from deepfenceio/yara-hunterDigest: sha256:b82f0143f2a1530720c40ee780f78ab138d04f95b65af7a32a31678a712abe01Status: Image is up to date for quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0docker.io/quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0user@host:~$ user@host:~$ docker pull metal3d/xmrig user@host:~$ docker pull metal3d/xmrig user@host:~$ docker pull metal3d/xmrig Using default tag: latestlatest: Pulling from metal3d/xmriDigest: sha256:c3c27a8b2f6beede6d9c0a7e5b79bb7a7b0002cca40565e7bfd2e447f3a2a628Status: Image is up to date for metal3d/xmrig:latestdocker.io/metal3d/xmrig:latestuser@host:~$ docker run user@host:~$ docker run -it user@host:~$ docker run -it --rm user@host:~$ docker run -it --rm --name=yara-hunter user@host:~$ docker run -it --rm --name=yara-hunter \ -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_malware_scanner_ce:2.5.0 quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 \ --image-name --image-name metal3d/xmrig:latest --image-name metal3d/xmrig:latest \ --json-filename=xmrig-scan.json --json-filename=xmrig-scan.json connected successfully using endpoint: unix:///var/run/docker.sock container runtime detected: docker{ "Timestamp": "2022-08-18 13:58:41.543309237 +00:00", "Image Name": "metal3d/xmrig:latest", "Image ID": "a01f1ffa6691423ef43bfaee2a9c9f30fe08ee6df8d9d6586ae9692d90789c5a", "Malware match detected are": [ { "Image Layer ID": "bad74b706fcd3e01f4af74337744cbcc84ab60da82c40dd588469c6360258789", "Matched Rule Name": "XMRIG_Miner", "Strings to match are": [ "stratum+tcp" ], "Category": [], "File Name": "/tmp/Deepfence/YaRadare/df_metal3dxmriglatest/ExtractedFiles/bad74b706fcd3e01f4af74337744cbcc84ab60da82c40dd588469c6360258789/usr/local/bin/xmrig", "ref":"https://gist.github.com/GelosSnake/c2d4d6ef6f93ccb7d3afb5b1e26c7b4e ", "Summary": "The matched rule file's ref is https://gist.github.com/GelosSnake/c2d4d6ef6f93ccb7d3afb5b1e26c7b4e ." } {/bad74b706fcd3e01f4af74337744cbcc84ab60da82c40dd588469c6360258789/xmrig-6.18.0/build/CMakeFiles/xmrig.dir/src/base/net/stratum/Url.cpp.o", "Matched Rule Name": "Cerberus", "cerberus" "Category": ["RAT","memory"],/bad74b706fcd3e01f4af74337744cbcc84ab60da82c40dd588469c6360258789/xmrig-6.18.0/src/3rdparty/fmt/README.rst", "description":"Cerberus ", "author":"Jean-Philippe Teissier / @Jipe_ ", "date":"2013-01-12 ", "filetype":"memory ", "version":"1.0 ", "Summary": "The file /tmp/Deepfence/YaRadare/df_metal3dxmriglatest/ExtractedFiles/bad74b706fcd3e01f4af74337744cbcc84ab60da82c40dd588469c6360258789/xmrig-6.18.0/src/3rdparty/fmt/README.rst has a memory match.The file has a rule match that Cerberus .The matched rule file's author is Jean-Philippe Teissier / @Jipe_ .The matched rule file's date is 2013-01-12 .The matched rule file's filetype is memory .The matched rule file's version is 1.0 ."rc/base/net/stratum/Url.cpp", ] ]}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/x user@host:~$ cat /tmp/xm user@host:~$ cat /tmp/xmr user@host:~$ cat /tmp/xmri user@host:~$ cat /tmp/xmrig user@host:~$ cat /tmp/xmrig- user@host:~$ cat /tmp/xmrig-s user@host:~$ cat /tmp/xmrig-sc user@host:~$ cat /tmp/xmrig-sca user@host:~$ cat /tmp/xmrig-scan user@host:~$ cat /tmp/xmrig-scan. user@host:~$ cat /tmp/xmrig-scan.j user@host:~$ cat /tmp/xmrig-scan.js user@host:~$ cat /tmp/xmrig-scan.jso user@host:~$ cat /tmp/xmrig-scan.json user@host:~$ cat /tmp/xmrig-scan.json user@host:~$ cat /tmp/xmrig-scan.json | user@host:~$ cat /tmp/xmrig-scan.json | user@host:~$ cat /tmp/xmrig-scan.json | j user@host:~$ cat /tmp/xmrig-scan.json | jq user@host:~$ cat /tmp/xmrig-scan.json | jq user@host:~$ cat /tmp/xmrig-scan.json | jq ' user@host:~$ cat /tmp/xmrig-scan.json | jq '. user@host:~$ cat /tmp/xmrig-scan.json | jq '.I user@host:~$ cat /tmp/xmrig-scan.json | jq '.IO user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[ user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | . user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ." user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."M user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Ma user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Mat user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matc user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Match user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matche user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched R user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Ru user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rul user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule N user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Na user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Nam user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Name user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Name" user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Name"' user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Name"'user@host:~$ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Name"'"XMRIG_Miner""Cerberus" diff --git a/docs/docs/yarahunter/index.md b/docs/docs/yarahunter/index.md index 8593325..f091df4 100644 --- a/docs/docs/yarahunter/index.md +++ b/docs/docs/yarahunter/index.md @@ -18,6 +18,12 @@ Key capabilities: ![Yadare in Action](img/yarahunter.svg) +## 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 +``` ## Example: Finding Indicators of Compromise in a Container Image @@ -27,9 +33,11 @@ Images may be compromised with the installation of a cryptominer such as XMRig. docker pull metal3d/xmrig docker run -i --rm --name=deepfence-yarahunter \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /tmp:/home/deepfence/output \ - quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 \ --image-name metal3d/xmrig:latest \ --output=json > xmrig-scan.json ``` @@ -43,6 +51,20 @@ cat /tmp/xmrig-scan.json | jq '.IOC[] | ."Matched Rule Name"' This returns a list of the IOCs identified in the container we scanned. +Rules can also be cached to use next run by mounting a seperate path and passing `rules-path` argument +```bash +docker run -i --rm --name=deepfence-yarahunter \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /tmp:/home/deepfence/output \ + -v /tmp/rules:/tmp/rules \ + quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 \ + --image-name metal3d/xmrig:latest \ + --output=json \ + --rules-path=/tmp/rules > xmrig-scan.json +``` + ## When to use YaraHunter YaraHunter can be used in the following ways: diff --git a/docs/docs/yarahunter/quickstart.md b/docs/docs/yarahunter/quickstart.md index f3679ba..09511ea 100644 --- a/docs/docs/yarahunter/quickstart.md +++ b/docs/docs/yarahunter/quickstart.md @@ -9,7 +9,14 @@ Pull the latest YaraHunter image, and use it to scan a `node:latest` container. ## Pull the latest YaraHunter image ```bash -docker pull quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 +docker pull quay.io/deepfenceio/deepfence_malware_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,8 +27,10 @@ Pull an image to your local repository, then scan it docker pull node:latest docker run -i --rm --name=yara-hunter \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ - quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 \ --image-name node:latest docker rmi node:latest @@ -33,9 +42,11 @@ You can summarise the results by processing the JSON output, e.g. using `jq`: ```bash docker run -i --rm --name=yara-hunter \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /tmp:/home/deepfence/output \ - quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 \ --image-name node:latest \ --output=json > node-latest.json diff --git a/docs/docs/yarahunter/using/build.md b/docs/docs/yarahunter/using/build.md index e1b69ce..b42da00 100644 --- a/docs/docs/yarahunter/using/build.md +++ b/docs/docs/yarahunter/using/build.md @@ -7,11 +7,11 @@ title: Build YaraHunter YaraHunter is a self-contained docker-based tool. Clone the [YaraHunter repository](https://github.com/deepfence/YaraHunter), then build: ```bash -docker build --rm=true --tag=quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 -f Dockerfile . +docker build --rm=true --tag=quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 -f Dockerfile . ``` -Alternatively, you can pull the official deepfence image at `quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0`. +Alternatively, you can pull the official deepfence image at `quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0`. ```bash -docker pull quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 +docker pull quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 ``` diff --git a/docs/docs/yarahunter/using/grpc.md b/docs/docs/yarahunter/using/grpc.md index 5ce1bc6..4a35827 100644 --- a/docs/docs/yarahunter/using/grpc.md +++ b/docs/docs/yarahunter/using/grpc.md @@ -27,7 +27,7 @@ docker run -it --rm --name=deepfence-malwarescanner \ -v $(pwd):/home/deepfence/output \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /tmp/sock:/tmp/sock \ - quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 \ -socket-path /tmp/sock/s.sock ``` diff --git a/docs/docs/yarahunter/using/scan.md b/docs/docs/yarahunter/using/scan.md index dbdd97f..6a82b89 100644 --- a/docs/docs/yarahunter/using/scan.md +++ b/docs/docs/yarahunter/using/scan.md @@ -15,8 +15,10 @@ Pull the image to your local repository, then scan it docker pull node:latest docker run -it --rm --name=yara-hunter \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ - quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 \ # highlight-next-line --image-name node:latest @@ -29,10 +31,12 @@ Mount the root directory into the YaraHunter container at a location of your cho ```bash docker run -it --rm --name=yara-hunter \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ -v /var/run/docker.sock:/var/run/docker.sock \ # highlight-next-line -v /:/deepfence/mnt \ - quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 \ # highlight-next-line --host-mount-path /deepfence/mnt --container-id 69221b948a73 ``` @@ -43,9 +47,11 @@ Mount the filesystem within the YaraHunter container and scan it: ```bash docker run -it --rm --name=yara-hunter \ + -e DEEPFENCE_PRODUCT= \ + -e DEEPFENCE_LICENSE= \ # highlight-next-line -v ~/src/YARA-RULES:/tmp/YARA-RULES \ - quay.io/deepfenceio/deepfence_malware_scanner_ce:2.3.0 \ + quay.io/deepfenceio/deepfence_malware_scanner_ce:2.5.0 \ # highlight-next-line --local /tmp/YARA-RULES --host-mount-path /tmp/YARA-RULES ``` diff --git a/go.mod b/go.mod index f8266e2..cc30e36 100644 --- a/go.mod +++ b/go.mod @@ -1,45 +1,46 @@ module github.com/deepfence/YaraHunter -go 1.21.0 +go 1.23.2 replace github.com/deepfence/agent-plugins-grpc => ./agent-plugins-grpc require ( github.com/VirusTotal/gyp v0.9.0 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/gabriel-vasile/mimetype v1.4.5 + 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/gabriel-vasile/mimetype v1.4.6 github.com/hillu/go-yara/v4 v4.3.3 github.com/olekukonko/tablewriter v0.0.5 github.com/sirupsen/logrus v1.9.3 - google.golang.org/grpc v1.64.0 + google.golang.org/grpc v1.67.1 gopkg.in/yaml.v3 v3.0.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/containerd/cgroups/v3 v3.0.3 // indirect - github.com/containerd/containerd v1.7.18 // indirect - github.com/containerd/continuity v0.4.3 // indirect - github.com/containerd/errdefs v0.1.0 // indirect + github.com/Microsoft/hcsshim v0.11.7 // 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.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.2+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/go-logr/logr v1.4.2 // indirect + github.com/felixge/httpsnoop v1.0.3 // 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 @@ -48,32 +49,31 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect - github.com/klauspost/compress v1.17.9 // indirect - github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/klauspost/compress v1.16.7 // 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 - github.com/rogpeppe/go-internal v1.13.1 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.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-20240624140628-dc46fd24d27d // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240624140628-dc46fd24d27d // 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 ) diff --git a/go.sum b/go.sum index 54a0c43..a1d5236 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,18 +17,22 @@ 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.18 h1:jqjZTQNfXGoEaZdW1WwPU0RqSn1Bm2Ay/KJPUuO8nao= -github.com/containerd/containerd v1.7.18/go.mod h1:IYEk9/IO6wAPUz2bCMVUbsfXjzw5UNP5fLz4PsUygQ4= -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/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.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= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= +github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= github.com/containerd/ttrpc v1.2.5 h1:IFckT1EFQoFBMG4c3sMdT8EP3/aKfumK1msY+Ze4oLU= github.com/containerd/ttrpc v1.2.5/go.mod h1:YCXHsb32f+Sq5/72xHubdiJRQY9inL4a4ZQrAbN1q9o= github.com/containerd/typeurl/v2 v2.1.1 h1:3Q4Pt7i8nYwy2KmQWIw2+1hTvwTE/6w9FqcttATPO/4= @@ -36,20 +40,20 @@ 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/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/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.2+incompatible h1:mNhCtgXNV1fIRns102grG7rdzIsGGCq1OlOD0KunZos= -github.com/docker/docker v27.0.2+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= @@ -60,13 +64,13 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= 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.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/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= @@ -113,11 +117,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= @@ -125,21 +128,22 @@ github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxec github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= 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= @@ -152,8 +156,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= @@ -163,11 +167,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= @@ -178,26 +177,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.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= +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.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -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.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +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= @@ -218,16 +217,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= @@ -235,12 +234,12 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/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= @@ -260,19 +259,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-20240624140628-dc46fd24d27d h1:PksQg4dV6Sem3/HkBX+Ltq8T0ke0PKIRBNBatoDTVls= -google.golang.org/genproto v0.0.0-20240624140628-dc46fd24d27d/go.mod h1:s7iA721uChleev562UJO2OYB0PPT9CMFjV+Ce7VJH5M= -google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4 h1:MuYw1wJzT+ZkybKfaOXKp5hJiZDn2iHaXRw0mRYdHSc= -google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4/go.mod h1:px9SlOOZBg1wM1zdnr8jEL4CNGUBZ+ZKYtNPApNQc4c= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240624140628-dc46fd24d27d h1:k3zyW3BYYR30e8v3x0bTDdE9vpYFjZHK+HcyqkrppWk= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240624140628-dc46fd24d27d/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.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= -google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= +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= @@ -286,6 +285,7 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 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/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=