Skip to main content

Supply Chain Security for AI. Scans models (Pickle, PyTorch, Keras, GGUF) for malware and verifies integrity.

Project description

๐Ÿ›ก๏ธ Veritensor: AI Supply Chain Security

PyPI version Docker Image License CI

Veritensor is the Zero-Trust security platform for the AI Supply Chain. We replace naive scanning with deep AST analysis and cryptographic verification.

Unlike standard antiviruses, Veritensor understands AI formats (Pickle, PyTorch, Keras, GGUF) and ensures that your models:

  1. Are Safe: Do not contain malicious code (RCE, Reverse Shells, Lambda injections).
  2. Are Authentic: Have not been tampered with (Hash-to-API verification against Hugging Face).
  3. Are Trusted: Can be cryptographically signed before deployment.

๐Ÿš€ Features

  • Deep Static Analysis: Decompiles Pickle bytecode and Keras Lambda layers to find obfuscated attacks (e.g., STACK_GLOBAL exploits).
  • Identity Verification: Automatically verifies model hashes against the official Hugging Face registry to detect Man-in-the-Middle attacks.
  • Supply Chain Security: Integrates with Sigstore Cosign to sign Docker containers only if the model inside is clean.
  • CI/CD Native: Ready for GitHub Actions, GitLab, and Pre-commit pipelines.
  • Zero-Trust Policy: Blocks unknown globals by default, not just known signatures.

๐Ÿ“ฆ Installation

Via PyPI (Recommended for local use)

pip install veritensor

Via Docker (Recommended for CI/CD)

docker pull arseniibrazhnyk/veritensor:latest

โšก Quick Start

1. Scan a local model

Check a file or directory for malware:

veritensor scan ./models/bert-base.pt

Example Output:

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ ๐Ÿ›ก๏ธ  Veritensor Security Scanner โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
                                    Scan Results
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ File         โ”ƒ Status โ”ƒ Threats / Details                    โ”ƒ SHA256 (Short) โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ model.pt     โ”‚  FAIL  โ”‚ CRITICAL: os.system (RCE Detected)   โ”‚ a1b2c3d4...    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โŒ BLOCKING DEPLOYMENT

2. Verify against Hugging Face

Ensure the file on your disk matches the official version from the registry (detects tampering):

veritensor scan ./pytorch_model.bin --repo meta-llama/Llama-2-7b

If the hash doesn't match the official repo, Veritensor will block deployment.


๐Ÿ” Supply Chain Security (Container Signing)

Veritensor integrates with Sigstore Cosign to cryptographically sign your Docker images only if they pass the security scan. This ensures that no unverified or malicious containers are ever deployed to your cluster.

1. Generate Keys

Generate a key pair for signing:

veritensor keygen
# Output: veritensor.key (Private) and veritensor.pub (Public)

2. Scan & Sign

Pass the --image flag and the path to your private key (via env var).

# Set path to your private key
export VERITENSOR_PRIVATE_KEY_PATH=veritensor.key

# If scan passes -> Sign the image
veritensor scan ./models/my_model.pkl --image my-org/my-app:v1.0.0

3. Verify (In Kubernetes / Production)

Before deploying, verify the signature to ensure the model was scanned:

cosign verify --key veritensor.pub my-org/my-app:v1.0.0

๐Ÿ› ๏ธ Integrations

GitHub Actions

Add this to your .github/workflows/security.yml to block malicious models in Pull Requests:

name: AI Security Scan
on: [pull_request]

jobs:
  veritensor-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Scan Models
        uses: ArseniiBrazhnyk/Veritensor@v1.0.1
        with:
          path: './models'
          repo: 'meta-llama/Llama-2-7b' # Optional: Verify integrity
          force: 'false' # Set to true to not fail build on threats

Pre-commit Hook

Prevent committing malicious models to your repository. Add this to .pre-commit-config.yaml:

repos:
  - repo: https://github.com/ArseniiBrazhnyk/Veritensor
    rev: v1.0.1
    hooks:
      - id: veritensor-scan

๐Ÿ“‚ Supported Formats

Format Extension Analysis Method
PyTorch .pt, .pth, .bin Zip extraction + Pickle VM Bytecode Analysis
Pickle .pkl, .joblib Deep AST Analysis (Stack Emulation)
Keras .h5, .keras Lambda Layer Detection & Config Analysis
Safetensors .safetensors Header Parsing & Metadata Validation
GGUF .gguf Binary Parsing & Metadata Validation

โš™๏ธ Configuration

You can customize policies by creating a veritensor.yaml file in your project root:

# veritensor.yaml
fail_on_severity: CRITICAL

# Allow specific modules that are usually blocked
allowed_modules:
  - "my_company.internal_layer"
  - "sklearn.tree"

# Ignore specific warnings
ignored_rules:
  - "WARNING: h5py missing"

๐Ÿ“œ License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

veritensor-1.0.4.tar.gz (32.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

veritensor-1.0.4-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

Details for the file veritensor-1.0.4.tar.gz.

File metadata

  • Download URL: veritensor-1.0.4.tar.gz
  • Upload date:
  • Size: 32.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for veritensor-1.0.4.tar.gz
Algorithm Hash digest
SHA256 49c3e03a78adb7b837d9421b1dc94091ae45dae5eb9dcab076dcd4a94a7211a8
MD5 321ba46a5bd4f9ab7d52d503dd1472b0
BLAKE2b-256 3edfb88e74fd5592d1578525d311d667f97ed9555b5281d306e16755ad98b345

See more details on using hashes here.

File details

Details for the file veritensor-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: veritensor-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 36.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for veritensor-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1b1aba59749d5c99a6f4ee9485bfaf1e663266727a7203aaffa6aa4710dd37e8
MD5 18a0089dd6fa6c12ce33a78f058e5794
BLAKE2b-256 c5c9507114a749b3a40982852dd32fc734ee7baf9a26f04d96bcbd1ebc78e121

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page