Skip to content

Commit b1e4bed

Browse files
committed
feat: add cve information on the release note
1 parent 2fb3440 commit b1e4bed

File tree

2 files changed

+40
-3
lines changed

2 files changed

+40
-3
lines changed

vhdbuilder/packer/trivy-scan.sh

+21
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ set -euxo pipefail
44
TRIVY_REPORT_DIRNAME=/opt/azure/containers
55
TRIVY_REPORT_ROOTFS_JSON_PATH=${TRIVY_REPORT_DIRNAME}/trivy-report-rootfs.json
66
TRIVY_REPORT_IMAGE_TABLE_PATH=${TRIVY_REPORT_DIRNAME}/trivy-report-images-table.txt
7+
CVE_DIFF_QUERY_OUTPUT_PATH=${TRIVY_REPORT_DIRNAME}/cve-diff.txt
78
TRIVY_DB_REPOSITORIES="mcr.microsoft.com/mirror/ghcr/aquasecurity/trivy-db:2,ghcr.io/aquasecurity/trivy-db:2,public.ecr.aws/aquasecurity/trivy-db"
89

910
TRIVY_VERSION="0.57.0"
@@ -40,6 +41,8 @@ export SYSTEM_COLLECTIONURI=${26}
4041
export SYSTEM_TEAMPROJECT=${27}
4142
export BUILD_BUILDID=${28}
4243
export IMAGE_VERSION=${29}
44+
CVE_DIFF_UPLOAD_REPORT_NAME=${30}
45+
SCAN_RESOURCE_PREFIX=${31}
4346

4447
retrycmd_if_failure() {
4548
retries=$1; wait_sleep=$2; timeout=$3; shift && shift && shift
@@ -131,6 +134,7 @@ rm "trivy_${TRIVY_VERSION}_${TRIVY_ARCH}.tar.gz"
131134
chmod a+x trivy
132135

133136
# pull vuln-to-kusto binary
137+
MODULE_VERSION="v0.0.3-a60608e7896"
134138
az storage blob download --auth-mode login --account-name ${ACCOUNT_NAME} -c vuln-to-kusto \
135139
--name ${MODULE_VERSION}/${MODULE_NAME}_linux_${GO_ARCH} \
136140
--file ./${MODULE_NAME}
@@ -187,13 +191,30 @@ for CONTAINER_IMAGE in $IMAGE_LIST; do
187191
fi
188192
done
189193

194+
./vuln-to-kusto-vhd query-report query-diff 24h \
195+
--vhd-vhdname=${VHD_ARTIFACT_NAME} \
196+
--vhd-nodeimageversion=${IMAGE_VERSION} \
197+
--severity="HIGH" \
198+
--scan-resource-prefix=${SCAN_RESOURCE_PREFIX} \
199+
--kusto-endpoint=${KUSTO_ENDPOINT} \
200+
--kusto-database=${KUSTO_DATABASE} \
201+
--kusto-table=${KUSTO_TABLE} \
202+
--kusto-managed-identity-client-id=${UMSI_CLIENT_ID} >> ${CVE_DIFF_QUERY_OUTPUT_PATH}
203+
190204
rm ./trivy
191205

206+
chmod a+r "${CVE_DIFF_QUERY_OUTPUT_PATH}"
192207
chmod a+r "${TRIVY_REPORT_ROOTFS_JSON_PATH}"
193208
chmod a+r "${TRIVY_REPORT_IMAGE_TABLE_PATH}"
194209

195210
login_with_user_assigned_managed_identity ${AZURE_MSI_RESOURCE_STRING}
196211

212+
az storage blob upload --file ${CVE_DIFF_QUERY_OUTPUT_PATH} \
213+
--container-name ${SIG_CONTAINER_NAME} \
214+
--name ${CVE_DIFF_UPLOAD_REPORT_NAME} \
215+
--account-name ${STORAGE_ACCOUNT_NAME} \
216+
--auth-mode login
217+
197218
az storage blob upload --file ${TRIVY_REPORT_ROOTFS_JSON_PATH} \
198219
--container-name ${SIG_CONTAINER_NAME} \
199220
--name ${TRIVY_UPLOAD_REPORT_NAME} \

vhdbuilder/packer/vhd-scanning.sh

+19-3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ VHD_IMAGE="$MANAGED_SIG_ID"
1919
SIG_CONTAINER_NAME="vhd-scans"
2020
SCAN_VM_ADMIN_USERNAME="azureuser"
2121

22+
RELEASE_NOTES_FILEPATH="$(pwd)/release-notes.txt"
23+
if [ ! -f "${RELEASE_NOTES_FILEPATH}" ]; then
24+
echo "${RELEASE_NOTES_FILEPATH} does not exist"
25+
exit 1
26+
fi
27+
2228
# we must create VMs in a vnet subnet which has access to the storage account, otherwise they will not be able to access the VHD blobs
2329
SCANNING_SUBNET_ID="/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${PACKER_VNET_RESOURCE_GROUP_NAME}/providers/Microsoft.Network/virtualNetworks/${PACKER_VNET_NAME}/subnets/scanning"
2430
if [ -z "$(az network vnet subnet show --ids $SCANNING_SUBNET_ID | jq -r '.id')" ]; then
@@ -51,10 +57,11 @@ function cleanup() {
5157
echo "Deleting resource group ${RESOURCE_GROUP_NAME}"
5258
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
5359
}
54-
trap cleanup EXIT
60+
# trap cleanup EXIT
5561
capture_benchmark "${SCRIPT_NAME}_set_variables_and_create_scan_resource_group"
5662

57-
VM_OPTIONS="--size Standard_D8ds_v5"
63+
# VM_OPTIONS="--size Standard_D8ds_v5"
64+
VM_OPTIONS="--size Standard_DS1_v2"
5865
if [[ "${ARCHITECTURE,,}" == "arm64" ]]; then
5966
VM_OPTIONS="--size Standard_D8pds_v5"
6067
fi
@@ -97,6 +104,7 @@ TRIVY_SCRIPT_PATH="$CDIR/$TRIVY_SCRIPT_PATH"
97104
TIMESTAMP=$(date +%s%3N)
98105
TRIVY_UPLOAD_REPORT_NAME="trivy-report-${BUILD_ID}-${TIMESTAMP}.json"
99106
TRIVY_UPLOAD_TABLE_NAME="trivy-table-${BUILD_ID}-${TIMESTAMP}.txt"
107+
CVE_DIFF_UPLOAD_REPORT_NAME="cve-diff-${BUILD_ID}-${TIMESTAMP}.txt"
100108

101109
# Extract date, revision from build number
102110
BUILD_RUN_NUMBER=$(echo $BUILD_RUN_NUMBER | cut -d_ -f 1)
@@ -140,17 +148,25 @@ az vm run-command invoke \
140148
"SYSTEM_COLLECTIONURI"=${SYSTEM_COLLECTIONURI} \
141149
"SYSTEM_TEAMPROJECT"=${SYSTEM_TEAMPROJECT} \
142150
"BUILDID"=${BUILD_ID} \
143-
"IMAGE_VERSION"=${IMAGE_VERSION}
151+
"IMAGE_VERSION"=${IMAGE_VERSION} \
152+
"CVE_DIFF_UPLOAD_REPORT_NAME"=${CVE_DIFF_UPLOAD_REPORT_NAME} \
153+
"SCAN_RESOURCE_PREFIX"=${SCAN_RESOURCE_PREFIX}
144154

145155
capture_benchmark "${SCRIPT_NAME}_run_az_scan_command"
146156

147157
az storage blob download --container-name ${SIG_CONTAINER_NAME} --name ${TRIVY_UPLOAD_REPORT_NAME} --file trivy-report.json --account-name ${STORAGE_ACCOUNT_NAME} --auth-mode login
148158
az storage blob download --container-name ${SIG_CONTAINER_NAME} --name ${TRIVY_UPLOAD_TABLE_NAME} --file trivy-images-table.txt --account-name ${STORAGE_ACCOUNT_NAME} --auth-mode login
159+
az storage blob download --container-name ${SIG_CONTAINER_NAME} --name ${CVE_DIFF_UPLOAD_REPORT_NAME} --file cve-diff.txt --account-name ${STORAGE_ACCOUNT_NAME} --auth-mode login
149160

150161
az storage blob delete --account-name ${STORAGE_ACCOUNT_NAME} --container-name ${SIG_CONTAINER_NAME} --name ${TRIVY_UPLOAD_REPORT_NAME} --auth-mode login
151162
az storage blob delete --account-name ${STORAGE_ACCOUNT_NAME} --container-name ${SIG_CONTAINER_NAME} --name ${TRIVY_UPLOAD_TABLE_NAME} --auth-mode login
163+
az storage blob delete --account-name ${STORAGE_ACCOUNT_NAME} --container-name ${SIG_CONTAINER_NAME} --name ${CVE_DIFF_UPLOAD_REPORT_NAME} --auth-mode login
164+
152165
capture_benchmark "${SCRIPT_NAME}_download_and_delete_blobs"
153166

167+
echo "=== CVEs fixed in version: ${IMAGE_VERSION}" >> ${RELEASE_NOTES_FILEPATH}
168+
cat cve-diff.txt >> ${RELEASE_NOTES_FILEPATH}
169+
154170
echo -e "Trivy Scan Script Completed\n\n\n"
155171
capture_benchmark "${SCRIPT_NAME}_overall" true
156172
process_benchmarks

0 commit comments

Comments
 (0)