SBOM: software bill of materials.
Relevant: Supply Chain Security
Anchore SBOMs
Trying to setup anchore sboms for java packages.
This maven plugin should generate an sbom.json
file.
< plugin >
< groupId >org.cyclonedx</ groupId >
< artifactId >cyclonedx-maven-plugin</ artifactId >
< version >2.5.3</ version >
< executions >
< execution >
< phase >package</ phase >
< goals >
< goal >makeAggregateBom</ goal >
</ goals >
</ execution >
</ executions >
< configuration >
< projectType >library</ projectType >
< schemaVersion >1.3</ schemaVersion >
< includeBomSerialNumber >true</ includeBomSerialNumber >
< includeCompileScope >true</ includeCompileScope >
< includeProvidedScope >true</ includeProvidedScope >
< includeRuntimeScope >true</ includeRuntimeScope >
< includeSystemScope >true</ includeSystemScope >
< includeTestScope >false</ includeTestScope >
< includeLicenseText >false</ includeLicenseText >
< outputFormat >all</ outputFormat >
< outputName >bom</ outputName >
</ configuration >
</ plugin >
From there, we should be able to upload that sbom via:
anchorectl source import --sbomFile=./sbom.json --repoHost github.corp.ebay.com --repoName jabrahms/giodemo --revision a20beae7641cd7fd816d17e79c771c4c35e820f8 --branch master --changeAuthor jabrahms@ebay.com -vvv
We’ll need to provide a password.
Need to add an application: anchorectl application add jabrahms/giodemo
app id: 46f46ac5-2186-489b-87de-d20dcd20afc7
add version: anchorectl application version add 85351710-d773-4e7b-b555-085b75a46dd7 1.0
versionid: f49922b4-2726-4116-bd18-2e23a0c07338
link version to source: anchorectl application version artifact add 85351710-d773-4e7b-b555-085b75a46dd7 bcca58e3-4755-4de5-9d30-ec1f79e1eb5a source --uuid 8374af37-9c42-498a-9c3b-359f4c268396
association id: f439993d-cd58-4c98-a0dd-8220c3705937
—
While we wait for anchorectl to work, here it is in curl:
http POST 'http://anchore-anchore-engine-api.anchore-dev.svc.140.tess.io:8228/v1/enterprise/imports/sources' x-anchore-account:Frameworks -a 'Justin:PASSWORD' --proxy http: ${http_proxy}
{
"created_at" : "2022-04-14T20:09:20Z",
"expires_at" : "2022-04-15T20:09:20Z",
"last_updated" : "2022-04-14T20:09:20Z",
"status" : "pending",
"uuid" : "9538077f-5fe2-4a79-af72-ce36c6f5d930"
}
http POST 'http://anchore-anchore-engine-api.anchore-dev.svc.140.tess.io:8228/v1/enterprise/imports/sources/9538077f-5fe2-4a79-af72-ce36c6f5d930/sbom' Content-Type:application/json @./sbom.json x-anchore-account:Frameworks -a 'Justin:PASSWORD' --proxy http: ${http_proxy}
{
"created_at" : "2022-04-14T20:12:12Z",
"digest" : "5c8e446d2f336b39eb449c162ae93404b9f003ca35da5adc09d68fc598361eec"
}
echo '{"branch_name": "master", "change_author": "jabrahms@ebay.com", "contents": {"sbom":"5c8e446d2f336b39eb449c162ae93404b9f003ca35da5adc09d68fc598361eec"}, "host": "https://github.corp.ebay.com", "repository_name": "jabrahms/giodemo", "revision": "a20beae7641cd7fd816d17e79c771c4c35e820f8"}' | http -v POST 'http://anchore-anchore-engine-api.anchore-dev.svc.140.tess.io:8228/v1/enterprise/imports/sources/9538077f-5fe2-4a79-af72-ce36c6f5d930/finalize' Content-Type:application/json x-anchore-account:Frameworks -a 'Justin:PASSWORD' --proxy http: ${http_proxy}
{
"account_id" : "Frameworks",
"analysis_status" : "not_analyzed",
"created_at" : "2022-04-14T20:19:42Z",
"host" : "https://github.corp.ebay.com",
"last_updated" : "2022-04-14T20:19:42Z",
"metadata_records" : [
{
"branch_name" : "master",
"change_author" : "jabrahms@ebay.com",
"ci_workflow_execution_time" : null,
"ci_workflow_name" : null,
"uuid" : "8f64c23b-af46-4ed0-a92d-f093639ed57e"
}
],
"repository_name" : "jabrahms/giodemo",
"revision" : "a20beae7641cd7fd816d17e79c771c4c35e820f8",
"source_status" : "active",
"uuid" : "7da0883a-38d8-4e29-8994-2b32feadf02b",
"vcs_type" : "git"
}