Once the Model Scanner CLI image has been deployed, it can be run as a container using the
docker runcommand as described below.- See Deploy Model Scanner CLI for deployment instructions.
The examples below include the US and EU regions.
See Command-line Arguments for more information.
Select your operating system to view installation instructions.
Select your deployment type and region. See Hybrid and Disconnected modes for more information.
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 AISec Platform Console.docker run --rm \ -e HL_LICENSE \ -e HL_CLIENT_ID \ -e HL_CLIENT_SECRET \ -v /home/user/models:/files-to-scan \ quay.io/hiddenlayer/distro-cli-modelscanner:latest \ --input /files-to-scan --persist --model-name=<model_name_in_console> --model-version=<model_version>
If you need to add an SSL certificate to the docker run command, you can mount the certificate at runtime.
Select your operating system to view installation instructions.
Select your deployment type and region. See Hybrid and Disconnected modes for more information.
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 AISec Platform 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 \ quay.io/hiddenlayer/distro-cli-modelscanner:latest \ --input /files-to-scan --persist --model-name=<model_name_in_console> --model-version=<model_version>
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"
]
}
}