Raxol.Plugins.PluginSandbox (Raxol v2.0.1)

View Source

Sandbox security system for running untrusted plugins safely.

Features:

  • Process isolation with restricted capabilities
  • Resource usage limits (memory, CPU, file descriptors)
  • Restricted system access (file I/O, network, process spawning)
  • Capability-based security model
  • Audit logging for security events
  • Automatic sandbox violation handling

Summary

Functions

Returns a specification to start this module under a supervisor.

Creates a new sandbox for a plugin with specified security policy.

Destroys a sandbox and cleans up resources.

Executes code within a sandboxed environment.

Gets sandbox status and resource usage.

Returns security policy for sandboxed plugins.

Returns security policy for trusted plugins.

Returns default security policy for untrusted plugins.

Updates security policy for an existing sandbox.

Types

plugin_id()

@type plugin_id() :: String.t()

sandbox_context()

@type sandbox_context() :: %{
  plugin_id: plugin_id(),
  security_policy: security_policy(),
  supervisor_pid: pid(),
  worker_pid: pid() | nil,
  resource_monitor: pid() | nil,
  audit_logger: pid() | nil,
  violations: [term()],
  created_at: DateTime.t()
}

security_policy()

@type security_policy() :: %{
  trust_level: :trusted | :sandboxed | :untrusted,
  capabilities: [atom()],
  resource_limits: map(),
  allowed_modules: [atom()],
  restricted_functions: [atom()],
  audit_level: :none | :basic | :detailed
}

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

create_sandbox(plugin_id, security_policy)

Creates a new sandbox for a plugin with specified security policy.

destroy_sandbox(plugin_id)

Destroys a sandbox and cleans up resources.

execute_in_sandbox(plugin_id, module, function, args)

Executes code within a sandboxed environment.

get_sandbox_status(plugin_id)

Gets sandbox status and resource usage.

handle_manager_cast(msg, state)

Callback implementation for Raxol.Core.Behaviours.BaseManager.handle_manager_cast/2.

handle_manager_info(msg, state)

Callback implementation for Raxol.Core.Behaviours.BaseManager.handle_manager_info/2.

sandboxed_policy()

Returns security policy for sandboxed plugins.

start_link(init_opts \\ [])

trusted_policy()

Returns security policy for trusted plugins.

untrusted_policy()

Returns default security policy for untrusted plugins.

update_security_policy(plugin_id, new_policy)

Updates security policy for an existing sandbox.