-
Once the AI Supply Chain Security CLI image has been deployed, it can be run as a container using the
docker runcommand as described below.- See Deploy Supply Chain CLI for deployment instructions.
- The examples below include the US and EU regions.
- See Command-line Arguments for more information.
Select OSSelect your operating system to view installation instructions.
- macOS
- Linux
- Windows
Select Deployment Type and RegionSelect your deployment type and region. See Hybrid and Disconnected modes for more information.
- Hybrid Mode - US Region
- Hybrid Mode - EU Region
- Local Mode
-
Replace
/home/users/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
- To scan a specific file in the folder, update
-
Replace
<model_name_in_console>with either the name of an existing model from the inventory (to add a new scan version to the existing model) or a new, unique name (to create a new model entry in the inventory). -
Replace
<model_version>with either the next version number for an existing model from the inventory or a first version for a new model for the inventory. -
Using
--persistadds the scan results to an existing model in the HiddenLayer Console.docker run --rm \ -e HL_LICENSE \ -e HL_CLIENT_ID \ -e HL_CLIENT_SECRET \ -v /home/user/models:/files-to-scan \ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 \ --input /files-to-scan --persist --model-name=<model_name_in_console> --model-version=<model_version>
-
Replace
/home/users/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
- To scan a specific file in the folder, update
-
Replace
<model_name_in_console>with either the name of an existing model from the inventory (to add a new scan version to the existing model) or a new, unique name (to create a new model entry in the inventory). -
Replace
<model_version>with either the next version number for an existing model from the inventory or a first version for a new model for the inventory. -
Using
--persistadds the scan results to an existing model in the HiddenLayer Console.docker run --rm \ -e HL_LICENSE \ -e HL_CLIENT_ID \ -e HL_CLIENT_SECRET \ -e HL_MODEL_SCANNER_PLATFORM_BASE_URL='https://api.eu.hiddenlayer.ai' \ -e HL_MODEL_SCANNER_TOKEN_URL=https://api.eu.hiddenlayer.ai/ \ -v /home/user/models:/files-to-scan \ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 \ --input /files-to-scan --persist --model-name=<model_name_in_console> --model-version=<model_version>
-
Replace
/home/users/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
docker run --rm \ -e HL_LICENSE \ -v /home/user/models:/files-to-scan \ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 \ --input /files-to-scan - To scan a specific file in the folder, update
Select Deployment Type and RegionSelect your deployment type and region. See Hybrid and Disconnected modes for more information.
- Hybrid Mode - US Region
- Hybrid Mode - EU Region
- Local Mode
-
Replace
/home/users/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
- To scan a specific file in the folder, update
-
Replace
<model_name_in_console>with either the name of an existing model from the inventory (to add a new scan version to the existing model) or a new, unique name (to create a new model entry in the inventory). -
Replace
<model_version>with either the next version number for an existing model from the inventory or a first version for a new model for the inventory. -
Using
--persistadds the scan results to an existing model in the HiddenLayer Console.docker run --rm \ -e HL_LICENSE \ -e HL_CLIENT_ID \ -e HL_CLIENT_SECRET \ -v /home/user/models:/files-to-scan \ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 \ --input /files-to-scan --persist --model-name=<model_name_in_console> --model-version=<model_version>
-
Replace
/home/users/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
- To scan a specific file in the folder, update
-
Replace
<model_name_in_console>with either the name of an existing model from the inventory (to add a new scan version to the existing model) or a new, unique name (to create a new model entry in the inventory). -
Replace
<model_version>with either the next version number for an existing model from the inventory or a first version for a new model for the inventory. -
Using
--persistadds the scan results to an existing model in the HiddenLayer Console.docker run --rm \ -e HL_LICENSE \ -e HL_CLIENT_ID \ -e HL_CLIENT_SECRET \ -e HL_MODEL_SCANNER_PLATFORM_BASE_URL='https://api.eu.hiddenlayer.ai' \ -e HL_MODEL_SCANNER_TOKEN_URL=https://api.eu.hiddenlayer.ai/ \ -v /home/user/models:/files-to-scan \ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 \ --input /files-to-scan --persist --model-name=<model_name_in_console> --model-version=<model_version>
-
Replace
/home/users/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
docker run --rm \ -e HL_LICENSE \ -v /home/user/models:/files-to-scan \ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 \ --input /files-to-scan - To scan a specific file in the folder, update
Select Deployment Type and RegionSelect your deployment type and region. See Hybrid and Disconnected modes for more information.
- Hybrid Mode - US Region
- Hybrid Mode - EU Region
- Local Mode
-
Replace
c:/work/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
- To scan a specific file in the folder, update
-
Replace
<model_name_in_console>with either the name of an existing model from the inventory (to add a new scan version to the existing model) or a new, unique name (to create a new model entry in the inventory). -
Replace
<model_version>with either the next version number for an existing model from the inventory or a first version for a new model for the inventory. -
Using
--persistadds the scan results to an existing model in the HiddenLayer Console.docker run --rm ^ -e HL_LICENSE ^ -e HL_CLIENT_ID ^ -e HL_CLIENT_SECRET ^ -v c:/work/models:/files-to-scan ^ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 ^ --input /files-to-scan --persist --model-name=<model_name_in_console> --model-version=<model_version>
-
Replace
c:/work/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
- To scan a specific file in the folder, update
-
Replace
<model_name_in_console>with either the name of an existing model from the inventory (to add a new scan version to the existing model) or a new, unique name (to create a new model entry in the inventory). -
Replace
<model_version>with either the next version number for an existing model from the inventory or a first version for a new model for the inventory. -
Using
--persistadds the scan results to an existing model in the HiddenLayer Console.docker run --rm ^ -e HL_LICENSE ^ -e HL_CLIENT_ID ^ -e HL_CLIENT_SECRET ^ -e HL_MODEL_SCANNER_PLATFORM_BASE_URL='https://api.eu.hiddenlayer.ai' ^ -e HL_MODEL_SCANNER_TOKEN_URL=https://api.eu.hiddenlayer.ai/ ^ -v /home/user/models:/files-to-scan ^ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 ^ --input /files-to-scan --persist --model-name=<model_name_in_console> --model-version=<model_version>
-
Replace
c:/work/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
docker run --rm ^ -e HL_LICENSE ^ -v c:/work/models:/files-to-scan ^ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 ^ --input /files-to-scan - To scan a specific file in the folder, update
Add Certificate to Run Command
If you need to add an SSL certificate to thedocker run command, you can mount the certificate at runtime.
Select OSSelect your operating system to view installation instructions.
- macOS
- Linux
Select Deployment Type and RegionSelect your deployment type and region. See Hybrid and Disconnected modes for more information.
- Hybrid Mode - US Region
- Hybrid Mode - EU Region
- Local Mode
-
Replace
/home/users/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
- To scan a specific file in the folder, update
-
This example uses $(pwd)/certs/internal-root.crt:/etc/ssl/certs/internal-root.crt:ro to mount the SSL certificate.
$(pwd)/certs/internal-root.crtis the path to the certificate on the host system./etc/ssl/certs/internal-root.crtis the container path where the certificate will be mounted.rospecifies the mount as read-only.
-
Replace
<model_name_in_console>with either the name of an existing model from the inventory (to add a new scan version to the existing model) or a new, unique name (to create a new model entry in the inventory). -
Replace
<model_version>with either the next version number for an existing model from the inventory or a first version for a new model for the inventory. -
Using
--persistadds the scan results to an existing model in the HiddenLayer Console.docker run --rm \ -e HL_LICENSE \ -e HL_CLIENT_ID \ -e HL_CLIENT_SECRET \ -e SSL_CERT_FILE=/etc/ssl/certs/internal-root.crt \ -v /home/user/models:/files-to-scan \ -v $(pwd)/certs/internal-root.crt:/etc/ssl/certs/internal-root.crt:ro \ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 \ --input /files-to-scan --persist --model-name=<model_name_in_console> --model-version=<model_version>
-
Replace
/home/users/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
- To scan a specific file in the folder, update
-
This example uses $(pwd)/certs/internal-root.crt:/etc/ssl/certs/internal-root.crt:ro to mount the SSL certificate.
$(pwd)/certs/internal-root.crtis the path to the certificate on the host system./etc/ssl/certs/internal-root.crtis the container path where the certificate will be mounted.rospecifies the mount as read-only.
-
Replace
<model_name_in_console>with either the name of an existing model from the inventory (to add a new scan version to the existing model) or a new, unique name (to create a new model entry in the inventory). -
Replace
<model_version>with either the next version number for an existing model from the inventory or a first version for a new model for the inventory. -
Using
--persistadds the scan results to an existing model in the HiddenLayer Console.docker run --rm \ -e HL_LICENSE \ -e HL_CLIENT_ID \ -e HL_CLIENT_SECRET \ -e HL_MODEL_SCANNER_PLATFORM_RESULTS_URL='https://api.eu.hiddenlayer.ai' \ -e HL_MODEL_SCANNER_TOKEN_URL=https://api.eu.hiddenlayer.ai/ \ -e SSL_CERT_FILE=/etc/ssl/certs/internal-root.crt \ -v /home/user/models:/files-to-scan \ -v $(pwd)/certs/internal-root.crt:/etc/ssl/certs/internal-root.crt:ro \ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 \ --input /files-to-scan --persist --model-name=<model_name_in_console> --model-version=<model_version>
-
Replace
/home/users/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
- To scan a specific file in the folder, update
-
This example uses $(pwd)/certs/internal-root.crt:/etc/ssl/certs/internal-root.crt:ro to mount the SSL certificate.
$(pwd)/certs/internal-root.crtis the path to the certificate on the host system./etc/ssl/certs/internal-root.crtis the container path where the certificate will be mounted.rospecifies the mount as read-only.
docker run --rm \ -e HL_LICENSE \ -e SSL_CERT_FILE=/etc/ssl/certs/internal-root.crt \ -v /home/user/models:/files-to-scan \ -v $(pwd)/certs/internal-root.crt:/etc/ssl/certs/internal-root.crt:ro \ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 \ --input /files-to-scan
Select Deployment Type and RegionSelect your deployment type and region. See Hybrid and Disconnected modes for more information.
- Hybrid Mode - US Region
- Hybrid Mode - EU Region
- Local Mode
-
Replace
/home/users/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
- To scan a specific file in the folder, update
-
This example uses $(pwd)/certs/internal-root.crt:/etc/ssl/certs/internal-root.crt:ro to mount the SSL certificate.
$(pwd)/certs/internal-root.crtis the path to the certificate on the host system./etc/ssl/certs/internal-root.crtis the container path where the certificate will be mounted.rospecifies the mount as read-only.
-
Replace
<model_name_in_console>with either the name of an existing model from the inventory (to add a new scan version to the existing model) or a new, unique name (to create a new model entry in the inventory). -
Replace
<model_version>with either the next version number for an existing model from the inventory or a first version for a new model for the inventory. -
Using
--persistadds the scan results to an existing model in the HiddenLayer Console.docker run --rm \ -e HL_LICENSE \ -e HL_CLIENT_ID \ -e HL_CLIENT_SECRET \ -e SSL_CERT_FILE=/etc/ssl/certs/internal-root.crt \ -v /home/user/models:/files-to-scan \ -v $(pwd)/certs/internal-root.crt:/etc/ssl/certs/internal-root.crt:ro \ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 \ --input /files-to-scan --persist --model-name=<model_name_in_console> --model-version=<model_version>
-
Replace
/home/users/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
- To scan a specific file in the folder, update
-
This example uses $(pwd)/certs/internal-root.crt:/etc/ssl/certs/internal-root.crt:ro to mount the SSL certificate.
$(pwd)/certs/internal-root.crtis the path to the certificate on the host system./etc/ssl/certs/internal-root.crtis the container path where the certificate will be mounted.rospecifies the mount as read-only.
-
Replace
<model_name_in_console>with either the name of an existing model from the inventory (to add a new scan version to the existing model) or a new, unique name (to create a new model entry in the inventory). -
Replace
<model_version>with either the next version number for an existing model from the inventory or a first version for a new model for the inventory. -
Using
--persistadds the scan results to an existing model in the HiddenLayer Console.docker run --rm \ -e HL_LICENSE \ -e HL_CLIENT_ID \ -e HL_CLIENT_SECRET \ -e HL_MODEL_SCANNER_PLATFORM_RESULTS_URL='https://api.eu.hiddenlayer.ai' \ -e HL_MODEL_SCANNER_TOKEN_URL=https://api.eu.hiddenlayer.ai/ \ -e SSL_CERT_FILE=/etc/ssl/certs/internal-root.crt \ -v /home/user/models:/files-to-scan \ -v $(pwd)/certs/internal-root.crt:/etc/ssl/certs/internal-root.crt:ro \ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 \ --input /files-to-scan --persist --model-name=<model_name_in_console> --model-version=<model_version>
-
Replace
/home/users/modelswith the path on the local machine where models to be scanned are located.- To scan a specific file in the folder, update
--input /files-to-scanwith the file name. Example:--input /files-to-scan/test_model.pkl.
- To scan a specific file in the folder, update
-
This example uses $(pwd)/certs/internal-root.crt:/etc/ssl/certs/internal-root.crt:ro to mount the SSL certificate.
$(pwd)/certs/internal-root.crtis the path to the certificate on the host system./etc/ssl/certs/internal-root.crtis the container path where the certificate will be mounted.rospecifies the mount as read-only.
docker run --rm \ -e HL_LICENSE \ -e SSL_CERT_FILE=/etc/ssl/certs/internal-root.crt \ -v /home/user/models:/files-to-scan \ -v $(pwd)/certs/internal-root.crt:/etc/ssl/certs/internal-root.crt:ro \ images.hiddenlayer.ai/proxy/supply-chain-security/ghcr.io/hiddenlayer-engineering/supply-chain-scanner:26.9.0 \ --input /files-to-scan
Inspect Scan Results of Test ML Model
At scan completion, a scan result similar to the following will be emitted to stdout. Scan results will be JSON-minified, but are shown formatted here for readability.{
"scan_id": "13c0f8a4-c938-43ee-9d95-2803ccd7de10",
"start_time": "2025-02-12T17:55:36.511Z",
"end_time": "2025-02-12T17:55:36.517Z",
"status": "done",
"version": "latest",
"$schema_version": "3.1.0",
"inventory": {
"requested_scan_location": "/files-to-scan/ZS_withConfig.nemo",
"model_id": "00000000-0000-0000-0000-000000000000",
"model_name": "cli-latest-cdffd55e-802b-4440-8403-698e930e5bb9",
"model_version": "1739382936",
"model_version_id": "00000000-0000-0000-0000-000000000000"
},
"file_results": [
{
"file_instance_id": "01c8c57d-dd77-488b-b459-709f1933f7b2",
"file_location": "/files-to-scan/ZS_withConfig.nemo",
"status": "done",
"start_time": "2025-02-12T17:55:36.511Z",
"end_time": "2025-02-12T17:55:36.517Z",
"details": {
"sha256": "6a15d94d7c9a67d2574ba8226cfa7d678524899d61f18f98cb218da6e30f0570",
"file_type": "TAR",
"file_type_details": {},
"estimated_time": ""
},
"seen": "2025-02-12T17:55:36.511Z",
"detections": [
{
"detection_id": "b3598a21-bdb0-4f4d-9c66-c7f127894b43",
"rule_id": "NEMO_0008_202408",
"category": "Decompression Vulnerabilities",
"description": "Archive Contains Tar Slip attack, which can be used to overwrite files on the system.",
"severity": "high",
"mitre_atlas": [
{
"technique": "AML.T0010",
"tactic": "AML.TA0004"
}
],
"owasp": [
"ML06",
"LLM05"
],
"cwe": "",
"cwe_href": ""
}
]
}
],
"detection_count": 1,
"file_count": 1,
"files_with_detections_count": 1,
"summary": {
"detection_count": 1,
"file_count": 1,
"severity": "high",
"files_with_detections_count": 1,
"detection_categories": [
"Decompression Vulnerabilities"
]
}
}

