Skip to content

Commit e05d1df

Browse files
committed
wip
1 parent f28afd4 commit e05d1df

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

tools/wazuh-scan-images.sh

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,30 @@ SBOM_DIR="/opt/kayobe/stackhpc/sboms"
77
mkdir -p "$SBOM_DIR"
88

99
# Ensure the custom output template exists
10-
cat <<EOL > "$SBOM_DIR/trivy-custom.tmpl"
11-
"Package","Version Installed","Vulnerability ID","Severity","Title"
12-
{{- range \$ri, \$r := . }}
13-
{{- range \$vi, \$v := .Vulnerabilities }}
10+
if [[ ! -f "$SBOM_DIR/trivy-custom.tmpl" ]]; then
11+
cat <<'EOL' > "$SBOM_DIR/trivy-custom.tmpl"
12+
{{- range $ri, $r := . -}}
13+
{{- range $vi, $v := .Vulnerabilities -}}
1414
"{{ $v.PkgName }}","{{$v.InstalledVersion }}","{{ $v.VulnerabilityID }}","{{$v.Severity }}","{{$v.Title }}"
15-
{{- end}}
16-
{{- end }}
15+
{{- end -}}
16+
{{- end -}}
1717
EOL
18+
fi
19+
20+
echo "Package","Version Installed","Vulnerability ID","Severity","Title"
1821

1922
# Loop through each container image and process its SBOM
20-
docker image ls --format "{{.Repository}}:{{.Tag}}" | sort | uniq | while read -r image; do
23+
docker image ls --format "{{.Repository}}:{{.Tag}}:{{.Image ID}}" | sort | uniq | while read -r image; do
24+
# Split image ID
25+
image_id=$(echo "$image" | awk -F: '{print $NF}')
26+
2127
# Generate SBOM filename
2228
sbom_file="$SBOM_DIR/$(echo "$image" | tr '/:' '_').sbom"
2329

2430
# Generate SBOM if missing
2531
if [[ ! -f "$sbom_file" ]]; then
2632
echo "Generating SBOM for $image"
27-
if ! trivy image --quiet --format spdx-json --output "$sbom_file" "$image"; then
33+
if ! trivy image --quiet --format spdx-json --output "$sbom_file" "$image_id"; then
2834
echo "Failed to generate SBOM for $image. Skipping."
2935
continue
3036
fi

0 commit comments

Comments
 (0)