Skip to main content

Inspect AI extension for policy-enforced sandbox environments

Project description

Inspect Policy Sandbox Extension

A standalone extension for Inspect AI that provides a policy-enforced sandbox environment.

Overview

The inspect-policy-sandbox extension allows you to wrap any existing Inspect sandbox environment (e.g., local, docker) and enforce strict policies on:

  • Execution: Allow or deny specific commands.
  • Read Access: Allow or deny reading specific files.
  • Write Access: Allow or deny writing to specific files.

When a policy violation occurs, the extension:

  1. Raises a SandboxPolicyViolationError (subclass of PermissionError).
  2. Logs a SandboxEvent with result=1 and reason="policy".

Installation

This extension is designed to be installed in a Python virtual environment where inspect-ai is also installed.

# Install from source
pip install -e .

Usage

Enable the extension in your Inspect task by specifying the sandbox type as policy-sandbox.

You can configure the policy via task metadata or configuration.

Example Task

from inspect_ai import Task, eval
from inspect_ai.dataset import FieldSpec
from inspect_ai.solver import system_message

# Define task using the policy sandbox
task = Task(
    dataset=[], 
    solver=[system_message("Run a command")],
    sandbox="policy-sandbox",
    sandbox_config={
        # Configuration for the inner sandbox (if needed)
    }
)

# Pass policy configuration in metadata at runtime or task definition
# Note: Currently policy configuration is extracted from sample metadata or task metadata 
# depending on how you pass it. The extension looks for a 'policy' dictionary in metadata.

Policy Configuration

The policy is defined by a dictionary with the following keys:

  • deny_exec: List of glob patterns for commands to deny (e.g., ["rm", "sudo"]).
  • allow_exec: List of glob patterns for commands to allow (whitelist).
  • deny_read: List of glob patterns for files to deny reading.
  • allow_read: List of glob patterns for files to allow reading.
  • deny_write: List of glob patterns for files to deny writing.
  • allow_write: List of glob patterns for files to allow writing.

Example Metadata:

{
  "policy": {
    "deny_exec": ["rm", "curl"],
    "deny_write": ["/etc/*"]
  },
  "inner_sandbox": "local"
}

Development

  1. Create a virtual environment:
    python3 -m venv .venv
    source .venv/bin/activate
    
  2. Install dependencies:
    pip install -e .[dev]
    
  3. Run tests:
    pytest tests/
    

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

inspect_policy_sandbox-0.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

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

inspect_policy_sandbox-0.1.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file inspect_policy_sandbox-0.1.0.tar.gz.

File metadata

  • Download URL: inspect_policy_sandbox-0.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for inspect_policy_sandbox-0.1.0.tar.gz
Algorithm Hash digest
SHA256 34b1fa67fa6960d3a3e39feb1f2bb70c29a7a5edb403fff844c170cb6c685a0f
MD5 2220cac272ac6073ce8ddb24311f0bca
BLAKE2b-256 bf0aafe3cc2094e89eb65826bbde170aeea104632f72a97104001d29750c283c

See more details on using hashes here.

File details

Details for the file inspect_policy_sandbox-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for inspect_policy_sandbox-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57921fc1af6c09e25c53be0427dc75226555bbeec61e14c28e5f7d18b2e18917
MD5 116e653fb5fd4996a36b71f61ab3dc3c
BLAKE2b-256 faebe513a4b92b7e1932f27e98315d557ca909075b3606eb0df2eed6229f69c2

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