Skip to content

Commit 66eb6f6

Browse files
committed
changes to trivy sbom fs for POC with CycloneDX
1 parent 29d66c3 commit 66eb6f6

File tree

1 file changed

+38
-95
lines changed

1 file changed

+38
-95
lines changed

scanners/boostsecurityio/trivy-sbom/module.yaml

Lines changed: 38 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -8,107 +8,50 @@ scan_types:
88

99
config:
1010
support_diff_scan: false
11-
include_files:
12-
# C/C++ https://trivy.dev/v0.61/docs/coverage/language/c/
13-
- conan.lock
14-
# Dart https://trivy.dev/v0.61/docs/coverage/language/dart/
15-
- pubspec.lock
16-
# Dotnet https://trivy.dev/v0.61/docs/coverage/language/dotnet/
17-
- "*.deps.json"
18-
- packages.config
19-
- "*Packages.props"
20-
- packages.lock.json
21-
# Elixir https://trivy.dev/v0.61/docs/coverage/language/elixir/
22-
- mix.lock
23-
# Go https://trivy.dev/v0.61/docs/coverage/language/golang/
24-
- go.mod
25-
# Java https://trivy.dev/v0.61/docs/coverage/language/java/
26-
- "*gradle.lockfile"
27-
- pom.xml
28-
- "*.sbt.lock"
29-
# NodeJs https://trivy.dev/v0.61/docs/coverage/language/nodejs/
30-
- package-lock.json
31-
- yarn.lock
32-
- pnpm-lock.yaml
33-
# Php https://trivy.dev/v0.61/docs/coverage/language/php/
34-
- composer.lock
35-
- installed.json
36-
# Python https://trivy.dev/v0.61/docs/coverage/language/python/
37-
- Pipfile.lock
38-
- requirements.txt
39-
- poetry.lock
40-
- uv.lock
41-
# Ruby https://trivy.dev/v0.61/docs/coverage/language/ruby/
42-
- Gemfile.lock
43-
- .gemspec
44-
# RUST https://trivy.dev/v0.61/docs/coverage/language/rust/
45-
- Cargo.lock
46-
# Swift https://trivy.dev/v0.61/docs/coverage/language/swift/
47-
- Package.resolved
48-
- Podfile.lock
49-
# Julia https://trivy.dev/v0.61/docs/coverage/language/julia/
50-
- Manifest.toml
5111

5212
setup:
53-
- name: Utility scripts
13+
- name: Verify dotnet installed
5414
run: |
55-
mkdir -p $SETUP_PATH/pre-scan-checks/
56-
cp $SETUP_PATH/../../registry/scanners/boostsecurityio/trivy-fs/prescan_checks.sh $SETUP_PATH/pre-scan-checks/trivy
57-
- name: download trivy
58-
environment:
59-
VERSION: 0.67.0
60-
LINUX_X86_64_SHA: 5b10e9bba00a508b0f3bcb98e78f1039f7eee26b57c9266961a415642a9208ab
61-
LINUX_ARM64_SHA: 0f3ac33954dd918cad708bdf06731b4aa8cc14b12e879932b4ceef2f22640a9e
62-
MACOS_X86_64_SHA: ae8a13d8c3abf7f7e7981ac1a5f5ec094d68835f2aac67da102d4ba36e820c3c
63-
MACOS_ARM64_SHA: feea8727b501f654683774fe0f98a9c1a128c7d8bcd7c942a8e6f6d05b33bd4b
64-
run: |
65-
BINARY_URL="https://github.com/aquasecurity/trivy/releases/download/v${VERSION}"
66-
ARCH=$(uname -m)
67-
68-
case "$(uname -sm)" in
69-
"Linux x86_64")
70-
BINARY_URL="${BINARY_URL}/trivy_${VERSION}_Linux-64bit.tar.gz"
71-
SHA="${LINUX_X86_64_SHA} trivy.tgz"
72-
;;
73-
"Linux aarch64")
74-
BINARY_URL="${BINARY_URL}/trivy_${VERSION}_Linux-ARM64.tar.gz"
75-
SHA="${LINUX_ARM64_SHA} trivy.tgz"
76-
;;
77-
"Darwin x86_64")
78-
BINARY_URL="${BINARY_URL}/trivy_${VERSION}_macOS-64bit.tar.gz"
79-
SHA="${MACOS_X86_64_SHA} trivy.tgz"
80-
;;
81-
"Darwin arm64")
82-
BINARY_URL="${BINARY_URL}/trivy_${VERSION}_macOS-ARM64.tar.gz"
83-
SHA="${MACOS_ARM64_SHA} trivy.tgz"
84-
;;
85-
*)
86-
echo "Unsupported machine: ${OPTARG}"
87-
exit 1
88-
;;
89-
esac
90-
91-
curl -o trivy.tgz -fsSL "${BINARY_URL}"
92-
echo "${SHA}" | sha256sum --check
93-
94-
tar --no-same-owner -zxf trivy.tgz trivy
95-
rm trivy.tgz
96-
chmod +x trivy
15+
mkdir -p $SETUP_PATH/scan-tools
16+
if ! dotnet --version ; then
17+
echo "dotnet is not installed, the scanner cannot run."
18+
exit 1
19+
fi
20+
dotnet tool install CycloneDX --version 5.5.0 --tool-path $SETUP_PATH/scan-tools/.dotnet-tools
21+
if [ $? -ne 0 ]; then
22+
echo "Failed to install CycloneDX"
23+
exit 1
24+
fi
25+
if ! "$SETUP_PATH/scan-tools/.dotnet-tools/dotnet-CycloneDX" --version >/dev/null 2>&1; then
26+
echo "CycloneDX did not install or run correctly"
27+
exit 1
28+
fi
29+
if [ ! -f "Directory.Packages.props" ]; then
30+
echo "No Directory.Packages.props found — creating placeholder"
31+
cat > Directory.Packages.props <<'EOF'
32+
<Project>
33+
<ItemGroup></ItemGroup>
34+
</Project>
35+
EOF
36+
fi
9737
9838
steps:
99-
- run: $SETUP_PATH/pre-scan-checks/trivy
10039
- scan:
10140
command:
102-
environment:
103-
NO_COLOR: "true"
104-
TRIVY_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-db:2,ghcr.io/aquasecurity/trivy-db:2
105-
TRIVY_JAVA_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-java-db:1,ghcr.io/aquasecurity/trivy-java-db:1
10641
run: |
107-
$SETUP_PATH/trivy fs --format=cyclonedx --license-full --no-progress --scanners vuln --cache-dir=/tmp/trivy/ . 2>&1
42+
if [ ! -f "Directory.Packages.props" ]; then
43+
cat > Directory.Packages.props <<'EOF'
44+
<Project>
45+
<ItemGroup></ItemGroup>
46+
</Project>
47+
EOF
48+
RESTORE_FLAG="--disable-package-restore"
49+
else
50+
RESTORE_FLAG=""
51+
fi
52+
dotnet new sln -n temp > /dev/null 2>&1
53+
find . -name "*.csproj" -print0 | xargs -0 dotnet sln temp.sln add > /dev/null 2>&1
54+
$SETUP_PATH/scan-tools/.dotnet-tools/dotnet-CycloneDX $(pwd)/temp.sln $RESTORE_FLAG --output temp_sbom.json --output-format json > /dev/null 2>&1
55+
cat temp_sbom.json/bom.json
10856
format: cyclonedx
109-
post-processor:
110-
docker:
111-
image: public.ecr.aws/boostsecurityio/boost-scanner-trivy-sbom:9b693ef@sha256:249ee707158424d8bd333198e1512ca295fe30c6fff2d2b1adff9e8f914b42cb
112-
command: process
113-
environment:
114-
PYTHONIOENCODING: utf-8
57+

0 commit comments

Comments
 (0)