Skip to content

Latest commit

History

180 Commits

Folders and files

NameName
Last commit message
Last commit date

SecAI OS

CIBuildLicense: Apache-2.0Fedora 44uBlue

Bootable local-first AI OS with sealed runtime, model quarantine pipeline, airlock egress controls, encrypted vault, and private Tor-routed search.

Built on uBlue (Fedora Atomic / Silverblue). All AI compute -- inference and generation -- stays on-device. Network egress is denied by default. GPU capability is detected at first boot.

Release status: SecAI OS is under active security hardening. A capability is not considered production-verified until a release-specific evidence bundle completes the production readiness checklist. See the capability matrix for verified, experimental, hardware-dependent, and planned functionality.

+-------------------+ +-------------------+ +-------------------+
| A) Base OS | --> | B) Acquisition | --> | C) Quarantine |
| immutable image | | dirty net / | | 7-stage pipeline |
| signed updates | | allowlist only | | fully automatic |
+-------------------+ +-------------------+ +--------+----------+
|
+-------------------+ +--------v----------+
| E) Airlock | <-- | D) Runtime |
| sanitized egress | | sealed inference |
| (optional) | | no internet |
+-------------------+ +-------------------+

Who This Is For

  • Privacy-conscious AI users who want LLM and image generation without cloud services
  • Security researchers evaluating model supply-chain risks
  • Air-gapped environments that need AI inference with no internet dependency
  • Organizations requiring auditable, policy-enforced AI workstations

What Makes It Different

  • Default-deny egress -- The runtime has no internet unless explicitly enabled via the airlock.
  • Supply-chain distrust -- Models are untrusted until they pass a 7-stage quarantine pipeline (source, format, integrity, provenance, static scan, behavioral test, diffusion scan).
  • Hands-off security -- All scanning, verification, and promotion happens automatically. Users never run security tools manually.
  • Deterministic policy -- Promotion to "trusted" is rule-based (signatures, hashes, scans, tests), not ad-hoc.
  • Short-lived workers -- No swap, tmpfs for temp data, inference workers restart between sessions.
  • 25+ defense layers -- From UEFI Secure Boot and TPM2 to seccomp-BPF, Landlock, runtime attestation, continuous integrity monitoring, automated incident containment, and 3-level emergency wipe.

Quickstart

Install Fedora Silverblue 44, then run the bootstrap script. The script configures cosign signature verification before the first image pull.

# 1. Download and review the bootstrap script
curl -sSfL https://raw.githubusercontent.com/SecAI-Hub/SecAI_OS/main/files/scripts/secai-bootstrap.sh \
-o /tmp/secai-bootstrap.sh
less /tmp/secai-bootstrap.sh
# 2. Bind the release channel to its exact signed digest
sudo bash /tmp/secai-bootstrap.sh \
--tag release-vMAJOR.MINOR.PATCH \
--digest sha256:RELEASE_DIGEST
# 3. Reboot and run the privileged setup ceremony from the local console
sudo systemctl reboot
sudo /usr/libexec/secure-ai/secai-setup-wizard.sh

The console wizard verifies the signed deployment, creates and verifies the encrypted LUKS vault, and optionally enrolls TPM2. Only after that succeeds, open http://127.0.0.1:8480 for the unprivileged UI onboarding flow, privacy profile selection, and model import.

MethodTimeBest ForDetails
Bootstrap (Recommended)~30 minReal PC or VMInstall Fedora Silverblue, run script, reboot
Portable USB~10 minRun directly from a USB stickFlash the release *-usb.raw.xz artifact to removable media
Build VM locally~45 minVirtualBox / VMware / KVMscripts/vm/build-qcow2.sh builds a QCOW2 from the OCI image
Sandbox Stack~10 minEvaluate on an existing workstationCompose-based control-plane bundle with explicit lower-assurance limits
Development~10 minService development onlyNo OS features; see dev guide

See docs/install/quickstart.md for full step-by-step instructions, including the sandbox path, VM build details, and verification commands.

Only use a release that publishes a non-placeholder digest and passes the release verifier. Pin that digest with: sudo bash secai-bootstrap.sh --digest sha256:RELEASE_DIGEST

See bare metal | virtual machine | sandbox | development | recovery

Get Your First Model

The default privacy posture keeps Airlock egress disabled. Import a locally obtained, hash-verified model from Models, or explicitly enable the controlled Airlock acquisition path before selecting Download. The model must complete quarantine and atomic promotion before it becomes selectable.


Architecture

Services

ServicePortLanguagePurpose
Registry8470GoTrusted artifact manifest, read-only model store
Tool Firewall8475GoPolicy-gated tool invocation gateway
Web UI8480PythonChat, image/video generation, model management
UI Ingress (sandbox only)8480GoFixed loopback relay with no mounted credential; preserves internal-only UI networking
Airlock8490GoSanitized egress decision gate (disabled by default)
Inference Worker8465llama.cppLLM inference (CUDA / ROCm / Vulkan / Metal / CPU)
Diffusion Worker8455PythonImage and video generation
Agent8476PythonPolicy-bound local autopilot (deny-by-default, capability tokens)
Quarantine--Python7-stage verify, scan, and promote pipeline
GPU Integrity Watch8495GoContinuous GPU runtime verification and anomaly detection
MCP Firewall8496GoModel Context Protocol policy gateway (default-deny, taint tracking)
Policy Engine8500GoUnified policy decision point (6 domains, decision evidence, OPA-upgradeable)
Runtime Attestor8505GoEnrolled AK, nonce-bound TPM2 quote/checkquote, authenticated PCR baseline, HMAC-signed state bundles, startup gating
Integrity Monitor8510GoContinuous baseline-verified file watcher (binaries, policies, models, trust material)
Incident Recorder8515GoSecurity event capture, incident lifecycle, auto-containment
Search Mediator8485PythonTor-routed web search with PII stripping
SearXNG8888PythonSelf-hosted metasearch (privacy-respecting engines)
Tor9050CAnonymous SOCKS5 proxy

See docs/architecture.md for design decisions and service dependencies. Per-service docs: registry | tool-firewall | agent | airlock | quarantine | search-mediator | gpu-integrity-watch | mcp-firewall | policy-engine | runtime-attestor | integrity-monitor | incident-recorder

7-Stage Quarantine Pipeline

Every model passes through the same fully automatic pipeline:

StageNameWhat It Does
1Source PolicyVerifies origin against allowlist
2Format GateValidates headers, rejects unsafe formats (pickle, .pt, .bin)
3Integrity CheckSHA-256 hash pinning verification
4ProvenanceRecords source-appropriate signature or immutable revision evidence
5Static ScanModelScan + YARA + fickling + modelaudit + entropy analysis + gguf-guard
6Behavioral Test41 adversarial prompts across 15 attack categories (GGUF only)
7Diffusion ScanStrict config/tensor parsing plus mandatory image-owned per-file manifest (diffusion only)

Security Model

Defense Layers

LayerMechanism
BootImmutable OS (rpm-ostree), cosign-verified updates, greenboot auto-rollback
Secure BootUEFI Secure Boot + MOK signing, TPM2 vault key sealing (PCR 0,2,4,7)
KernelIOMMU forced, ASLR, slab_nomerge, init_on_alloc/free, lockdown=confidentiality
MemorySwap/zswap disabled, core dumps discarded, mlock for secrets, TEE detection
Networknftables default-deny egress, DNS rate-limited, traffic analysis countermeasures
FilesystemEncrypted vault (LUKS2/AES-256/Argon2id), restrictive permissions, fs-verity
ModelsCredentialless, no-routable-network 7-stage quarantine; immutable file/directory pins; registry-side revalidation
ToolsDefault-deny policy, path allowlisting, traversal protection, rate limiting
EgressAirlock disabled by default, PII/credential scanning, destination allowlist
SearchTor-routed, privacy-preserving query obfuscation (decoy queries, k-anonymity), injection detection
AuditSecurity-critical HMAC-chained logs, explicit format enrollment, keyed checkpoints, and periodic verification
AuthScrypt passphrase hashing, rate-limited login, session management
VaultAuto-lock after 30 min idle, TPM2-sealed keys
ServicesSystemd sandboxing: ProtectSystem, PrivateNetwork, seccomp-bpf, Landlock
AgentDeny-by-default policy engine, HMAC-signed capability tokens, hard budgets, loopback-only IPC
Policy EngineUnified decision point (6 domains), structured evidence, OPA/Rego-upgradeable
AttestationRoot-only AK/PCR enrollment, fresh nonce-bound TPM2 quote/checkquote, cross-service-verified HMAC bundles, fail-closed startup gating
IntegrityContinuous baseline-verified file watcher (30s scans), signed baselines, auto-degradation
Incident Response9 incident classes, auto-containment (freeze agent, disable airlock, vault relock, quarantine model)
GPUVendor-specific DeviceAllow, PrivateNetwork, driver fingerprinting, device allowlist
HSM/KeysPluggable keystore (software/TPM2/PKCS#11), key rotation, PCR-sealed key hierarchy
ClipboardVerifiable guest controls, explicit host-policy check, per-session 60s auto-clear
TripwireCanary files in sensitive dirs, inotify real-time monitoring
EmergencyVerified lock, TPM unlock removal, or LUKS cryptographic erase
UpdatesCosign-verified rpm-ostree, staged workflow, greenboot auto-rollback
Supply ChainPer-service CycloneDX SBOMs, SLSA v1 provenance attestations, cosign-signed checksums

See docs/threat-model.md for threat classes, residual risks, and security invariants. See docs/security-status.md for implementation status of all 54 milestones.

Verify Image Signatures

Install stable Cosign 3.1.1 or newer to verify the Rekor v2-backed image attestations produced by the release workflow.

cosign verify --key cosign.pub \
ghcr.io/secai-hub/secai_os@sha256:RELEASE_DIGEST

Releases & Packages

Container Image (OCI)

Every push to main builds a signed OCI image via BlueBuild:

ghcr.io/secai-hub/secai_os:latest # rolling latest
ghcr.io/secai-hub/secai_os:44 # Fedora 44 base

Install with mandatory digest pinning:

sudo bash secai-bootstrap.sh \
--tag release-vMAJOR.MINOR.PATCH \
--digest sha256:RELEASE_DIGEST

The image is cosign-signed. Verify before pulling:

cosign verify --key cosign.pub \
ghcr.io/secai-hub/secai_os@sha256:RELEASE_DIGEST

Tagged Releases

Tagged releases (v*) are built by the Release workflow and include:

ArtifactDescription
<service>-linux-amd64Static Go binary (x86_64)
<service>-linux-arm64Static Go binary (ARM64)
<service>-sbom.cdx.jsonPer-service CycloneDX SBOM
SHA256SUMSChecksums for all release artifacts
SHA256SUMS.sigCosign signature over checksums
IMAGE_DIGESTOCI image digest for this release
RELEASE_MANIFEST.jsonMachine-readable release manifest (binaries, SBOMs, provenance, build metadata)
secai-os-*.iso.sigCosign signature for the bootable ISO
secai-os-*-usb.raw.xz.sigCosign signature for the portable USB image

Go services shipped as release binaries: airlock, registry, tool-firewall, gpu-integrity-watch, mcp-firewall, policy-engine, runtime-attestor, integrity-monitor, incident-recorder.

Python services (ui, agent, quarantine, diffusion-worker, search-mediator) are baked into the OCI image and do not ship as standalone binaries.

Bootable Media

A signed bootable installer ISO is built by every tagged release from the cosign-verified immutable bootc digest. Each release also includes a compressed portable USB image (secai-os-*-usb.raw.xz) built from that same digest so the OS can be flashed directly to a USB stick and run without first installing to the internal disk. Both artifacts are available as workflow artifacts (90-day retention) from the Release workflow runs, and their cosign signatures are published to the GitHub Release for verification.

For Windows users writing the portable USB image:

  • Prefer USBImager for *.raw.xz because it can write compressed disk images directly.
  • In Rufus, keep Boot selection set to Disk or ISO image, click SELECT, and choose the portable USB image. If Rufus does not accept *.raw.xz, extract it to *.raw first with 7-Zip and select the extracted file instead.
  • Do not choose MS-DOS, FreeDOS, or Non bootable for the portable USB image.
  • Boot the USB in UEFI mode with Legacy/CSM disabled. If firmware still refuses the media, temporarily disable Secure Boot for troubleshooting.

To build portable USB or VM media locally from the OCI image:

bash scripts/build-usb-image.sh \
--image-ref ghcr.io/secai-hub/secai_os@sha256:RELEASE_DIGEST \
--output-dir output
bash scripts/vm/build-qcow2.sh \
--image-ref ghcr.io/secai-hub/secai_os@sha256:RELEASE_DIGEST
bash scripts/vm/build-ova.sh # converts output/secai-os.qcow2 to output/secai-os.ova

The media builders verify the exact source image with cosign.pub before use and use a digest-pinned bootc-image-builder image. VM builds require a Linux host with cosign, virt-install, virsh, qemu-img, and libvirt. QCOW2 and OVA images are intentionally local-only: their encrypted-boot credentials are unique to the operator and are never published as generic release artifacts. CI builds ephemeral VM images for qualification and destroys them.

Verify a Release

Full release verification requires stable Cosign 3.1.1 or newer.

# Download and verify checksums
curl -sSfL https://github.com/SecAI-Hub/SecAI_OS/releases/latest/download/SHA256SUMS -o SHA256SUMS
curl -sSfL https://github.com/SecAI-Hub/SecAI_OS/releases/latest/download/SHA256SUMS.sig -o SHA256SUMS.sig
cosign verify-blob --key cosign.pub --signature SHA256SUMS.sig SHA256SUMS
sha256sum -c SHA256SUMS
# Or use the Makefile from this repository with the published image digest
make verify-release IMAGE=ghcr.io/secai-hub/secai_os@sha256:RELEASE_DIGEST

See docs/sample-release-bundle.md for the full artifact structure and docs/release-policy.md for release channels (stable/candidate/dev).

Diffusion Runtime (On-Demand)

The ~2–5 GB diffusion runtime (PyTorch, diffusers, transformers) is not included in the base image. It is acquired on-demand when a user first visits the Generate page:

  1. Backend auto-detected (CUDA / ROCm / CPU)
  2. Wheels downloaded from PyTorch/PyPI with full hash verification against committed manifests
  3. Installed into an isolated venv, smoke tested, and enabled

Trust anchors: diffusion-runtime-manifest.yaml + per-backend lockfiles (diffusion-{cpu,cuda,rocm}.lock). Air-gapped installs supported via --from-local.


Hardware Support

GPU capability is detected at first boot. Production support is granted only for hardware combinations recorded in a release-specific qualification report.

VendorGPUsBackendLLMDiffusion
NVIDIARTX 30/40/50-seriesCUDAHardware-dependentHardware-dependent
AMDRDNA/CDNAROCm (HIP)ExperimentalExperimental
IntelArc A/B-seriesXPU / VulkanExperimentalExperimental
AppleM1–M4Metal / MPSSandbox/dev onlySandbox/dev only
CPUx86_64 (AVX2/AVX-512)CPUSupported fallbackFunctional, slow

Minimum: 16 GB RAM, 8 GB VRAM, 64 GB storage. See docs/compatibility-matrix.md for detailed specs.


Configuration

All config lives in /etc/secure-ai/ (baked into the image, read-only at runtime):

FilePurpose
config/appliance.yamlMode, paths, inference/diffusion settings, service binds
policy/policy.yamlTool firewall, airlock, quarantine stages, search settings
policy/agent.yamlAgent mode: operating modes, budgets, workspace scopes, allow/deny matrix
policy/models.lock.yamlPinned model hashes (supply-chain verification)
policy/sources.allowlist.yamlTrusted model sources

See docs/policy-schema.md for full schema reference. See examples/sample-policy.yaml for annotated example.


Verification & Audit

Workflow Files

Security Documentation

CI Verification Evidence

All CI jobs are defined in .github/workflows/ci.yml. View the latest CI run.

JobWorkflow LinkWhat It Proves
go-build-and-testView jobAll Go modules with -race (build, test, vet); enforced floor in test-counts.json
python-testView jobUnit/integration + adversarial/acceptance tests, ruff, bandit, and mypy; enforced floor in test-counts.json
appsec-lintView jobHadolint for container build files and Semgrep project security rules
security-regressionView jobAdversarial test suite: prompt injection, policy bypass, containment, recovery
supply-chain-verifyView jobSBOM generation via Syft, cosign availability, provenance keywords in release/build workflows
test-count-checkView jobPrevents documented test counts from drifting below actual (source of truth: test-counts.json)
dependency-auditView jobEnforced Go vulnerability scanning (govulncheck) + Python dependency audit (pip-audit) with waiver mechanism
shellcheckView jobStatic analysis of production shell entrypoints (first-boot, service build, MOK generation, verify-release, etc.)
policy-validateView jobYAML schema validation for all policy and recipe files
check-pinsView jobVerifies all GitHub Actions are pinned to specific commit SHAs (not tags)
docs-validationView jobBroken link detection, required docs presence, test-counts.json format validation

Documentation

DocumentDescription
ArchitectureSystem design, zones, data flow, service dependencies
Threat ModelThreat classes, invariants, residual risks
API ReferenceHTTP API for all services
Policy SchemaFull policy.yaml schema reference
Security StatusImplementation status of all 54 milestones
Test MatrixCurrent test areas and enforced count floors
Compatibility MatrixGPU, VM, and hardware support
Security Test MatrixSecurity feature test coverage
FAQCommon questions
GlossaryKey terms and concepts
Non-GoalsWhat SecAI OS does NOT try to do
Why is this safe?Plain-language security explanation
Telemetry PolicyNo-telemetry guarantee

Component Docs

ComponentDescription
RegistryTrusted artifact manifest and model store
Tool FirewallPolicy-gated tool invocation
AirlockSanitized egress decision gate
Quarantine7-stage scanning pipeline
AgentPolicy-bound local autopilot with verified supervisor
Search MediatorTor-routed web search
GPU Integrity WatchContinuous GPU runtime verification
MCP FirewallModel Context Protocol policy gateway
Policy EngineUnified policy decision point
Runtime AttestorTPM2 attestation and startup gating
Integrity MonitorContinuous file integrity verification
Incident RecorderSecurity event capture and auto-containment
M5 Control MatrixM5 acceptance criteria, enforcement paths, operator verification
Supply Chain ProvenanceProvenance pipeline, SBOM coverage, key material
Audit Quick PathExternal auditor step-by-step verification guide
Recovery RunbookOperator procedures for degradation, containment, and recovery
Sample Release BundleRelease artifact structure and verification commands
Production OperationsFirst-boot checks, upgrades, key rotation, monitoring, capacity
Production Readiness ChecklistFormal release gate checklist for production deployments
SLOsService level objectives: availability, latency, correctness targets
Release PolicyRelease channels (stable/candidate/dev), versioning, upgrade paths
Support LifecycleHardware matrix, driver versions, support windows, deprecation policy

Install Guides

GuideDescription
QuickstartChoose your path: ISO, OVA, QCOW2, or rebase
Bare MetalFresh install on dedicated hardware
Virtual MachineVirtualBox, VMware, KVM/QEMU
DevelopmentLocal dev without OS rebase

Examples

ExampleDescription
Import a GGUF ModelSafe model import walkthrough
Quarantine PromotionFull pipeline walkthrough
Run Fully OfflineAir-gapped operation
Enable Web SearchTor-routed search setup
Vault ManagementLock, unlock, keepalive
Recover from Failed UpdateRollback and recovery
VM vs Bare MetalComparison and tradeoffs
Add Model SourceAllowlist a new source

Machine-Readable

ResourceDescription
OpenAPI SpecOpenAPI 3.0 for all HTTP APIs
Policy SchemaJSON Schema for policy.yaml
Appliance SchemaJSON Schema for appliance.yaml
Service DiagramMermaid dependency diagram
llms.txtLLM-friendly project summary
llms-full.txtExtended LLM-friendly reference

Using the Appliance

Web Interface

Open http://127.0.0.1:8480:

  • Chat -- LLM interaction with optional Tor-routed web search
  • Models -- Browse catalog, one-click download, import, verify hashes
  • Generate -- Text-to-image, image-to-image, text-to-video with diffusion models
  • Security -- Service health, Secure Boot/TPM2 status, audit chain, emergency panic
  • Updates -- Staged update workflow (check / stage / apply / rollback)
  • Settings -- Vault status and local-console instructions, profile settings, session management

Emergency Panic

sudo securectl panic 1 # Reversible runtime lock
sudo securectl panic 2 # Prompts locally; removes TPM/hardware unlock
sudo securectl panic 3 # Prompts locally; destroys all vault LUKS keyslots

The Security page shows status and local-console instructions; it never owns root authority. Passphrases are not accepted in an HTTP body or command-line argument. Level 3 cryptographically erases the encrypted vault; unlinking unencrypted metadata does not claim physical overwrite on flash or copy-on-write media.

Vault Management

curl http://127.0.0.1:8480/api/vault/status # Check status
sudo /usr/bin/python3 /usr/libexec/secure-ai/vault-watchdog.py \
--lock-once --reason operator_request # Lock
sudo /usr/bin/python3 /usr/libexec/secure-ai/vault-watchdog.py \
--unlock-once # Local passphrase prompt

The HTTP lock/unlock routes intentionally return 501; the web process never receives a LUKS passphrase or root service-control authority.

Web Search (Tor-Routed, Optional)

# Enable in policy, then start the search stack
sudo systemctl start secure-ai-tor secure-ai-searxng secure-ai-search-mediator

Privacy: Tor-routed, PII stripped, injection detection, privacy-preserving query obfuscation (decoy queries, k-anonymity), audit logged. See examples/enable-web-search.md.


Running Tests

# Go tests across all service modulesforsvcin airlock registry tool-firewall gpu-integrity-watch mcp-firewall \
policy-engine runtime-attestor integrity-monitor incident-recorder;do
(cd services/$svc&& go test -v -race ./...)
done# Python tests
python -m pip install --require-hashes -r requirements-ci.lock
PYTHONPATH=services python -m pytest tests/ -v
# Shell script linting
make shellcheck

See docs/test-matrix.md for full breakdown.


Roadmap

All 54 project milestones (implementation status; click to expand)

Checked milestones mean that the associated source implementation exists. They are not release certification, production sign-off, or hardware qualification. The capability matrix and the evidence produced for a specific release are authoritative.

  • Milestone 0 -- Threat model, dataflow, invariants, policy files
  • Milestone 1 -- Bootable OS, encrypted vault, GPU drivers
  • Milestone 2 -- Trusted Registry, hash pinning, cosign verification
  • Milestone 3 -- 7-stage quarantine pipeline
  • Milestone 4 -- Tool Firewall, default-deny policy
  • Milestone 5 -- Online Airlock, sanitization
  • Milestone 6 -- Systemd sandboxing, kernel hardening, nftables
  • Milestone 7 -- CI/CD, Go/Python tests, shellcheck
  • Milestone 8 -- Image/video generation, diffusion worker
  • Milestone 9 -- Multi-backend code paths (hardware qualification tracked separately)
  • Milestone 10 -- Tor-routed search, SearXNG, PII stripping
  • Milestone 11 -- VM support, OVA/QCOW2 builds
  • Milestone 12 -- Model integrity monitoring
  • Milestone 13 -- Tamper-evident audit logs
  • Milestone 14 -- Local passphrase auth
  • Milestone 15 -- Vault auto-lock
  • Milestone 16 -- Seccomp-BPF + Landlock process isolation
  • Milestone 17 -- Secure Boot + TPM2 measured boot
  • Milestone 18 -- Memory protection (swap/zswap/core dumps/mlock/TEE)
  • Milestone 19 -- Traffic analysis protection
  • Milestone 20 -- Privacy-preserving query obfuscation for search
  • Milestone 21 -- Clipboard isolation
  • Milestone 22 -- Canary/tripwire system
  • Milestone 23 -- Emergency wipe (3-level panic)
  • Milestone 24 -- Update verification + auto-rollback
  • Milestone 25 -- UI polish + security hardening
  • Milestone 26 -- Fail-closed pipeline, service auth, CSRF, supply chain pinning
  • Milestone 27 -- Enhanced scanners, provenance manifests, fs-verity
  • Milestone 28 -- Weight distribution fingerprinting
  • Milestone 29 -- Garak LLM vulnerability scanner
  • Milestone 30 -- gguf-guard deep GGUF integrity scanner
  • Milestone 31 -- Agent Mode (Phase 1: safe local autopilot)
  • Milestone 32 -- GPU Integrity Watch (continuous GPU runtime verification)
  • Milestone 33 -- MCP Firewall (Model Context Protocol policy gateway)
  • Milestone 34 -- Release provenance + per-service SBOMs (SLSA v1, CycloneDX, cosign)
  • Milestone 35 -- Unified policy decision engine (6 domains, OPA/Rego-upgradeable)
  • Milestone 36 -- Runtime attestation + startup gating (TPM2, HMAC state bundles)
  • Milestone 37 -- Continuous integrity monitor (baseline-verified file watcher)
  • Milestone 38 -- Incident recorder + containment automation (9 classes, 4-state lifecycle)
  • Milestone 39 -- GPU integrity deep integration (driver fingerprinting, attestor/incident wiring)
  • Milestone 40 -- Agent verified supervisor hardening (signed tokens, replay protection, two-phase approval)
  • Milestone 41 -- Keystore abstraction (software/TPM2; PKCS#11 operations remain planned)
  • Milestone 42 -- Enforcement wiring + CI supply chain verification
  • Milestone 43 -- Stronger isolation: sandbox tightening, adversarial tests, CI security regression, MCP isolation, recovery ceremonies, M5 acceptance suite
  • Milestone 44 -- Auditability and documentation hardening: test-count drift CI check, CI evidence links and badges, M4/M5 terminology disambiguation, audit quick-path doc, recovery runbook, verify-release script, security/product roadmap split
  • Milestone 45 -- Production readiness hardening: incident persistence (file-backed), graceful shutdown for all Go services, HTTP timeouts, systemd production hardening, first-boot validation, audit log rotation, CI vulnerability scanning, production operations guide
  • Milestone 46 -- Operational maturity: bootstrap trust gap fix (cosign verify before rebase), CI runs on all changes (removed paths-ignore for .md), Python quality gates (ruff + bandit + split test suites), docs-validation CI job, production-readiness checklist, SLOs, release channel policy, support lifecycle, sample verification output
  • Milestone 47 -- CI enforcement hardening: enforced vulnerability scanning (govulncheck + pip-audit + bandit fail on HIGH/HIGH) with waiver mechanism, mypy type checking for security-sensitive services, pinned reproducible Python CI dependencies, Go 1.26.5 service CI/builders, verification-first bootstrap docs
  • Milestone 48 -- Production hardening: build script fail-closed (fatal errors for 12 required services + binary verification gate), incident store fsync (crash-safe persistence), GPU backend metadata recording, llama-server watchdog (Type=notify + WatchdogSec=30), model catalog externalization (YAML with fallback), circuit breaker for inter-service HTTP calls, post-upgrade model verification in Greenboot, cosign key rotation documentation (full lifecycle)
  • Milestone 49 -- Signed-first install path: bootstrap script configures signing policy before first rebase (eliminates unverified transport), digest-pinned install flow (CI publishes digests in build summary + release assets), first-boot setup wizard (interactive integrity verification + vault + TPM2 + health check), recovery/dev path separated into dedicated doc
  • Milestone 50 -- Production operations package: backup/restore scripts (full/config/logs/keys categories, age/gpg encryption, SHA256 manifest, LUKS header backup/restore), rollback decision matrix (Greenboot auto-rollback + manual criteria), 5 break-glass recovery procedures, formal data retention policy (7 data classes, disk capacity thresholds)
  • Milestone 51 -- Stronger observability: unified appliance health dashboard (trusted/degraded/recovery_required), live SLO compliance monitoring (uptime + P95 latency tracking), webhook alerting hooks for containment events, forensic bundle export via UI + CLI (secai-forensic.sh), recovery ceremony endpoints wired
  • Milestone 52 -- Better release verification UX: repo-root Makefile (verify-release, test, shellcheck, lint), RELEASE_MANIFEST.json in release CI (image digest, binaries, SBOMs, provenance, checksums, build metadata), verify-release.sh --json and --report flags, audit-quick-path wired to verify-release.sh
  • Milestone 53 -- Harder CI gates for production branches: release-branch hardened gate (stricter bandit, CVE-ID govulncheck), required security-regression + M5 acceptance suite, docs consistency checks (milestone count, test name references, staleness warning), branch protection documentation, release preflight verification, container pin check wired into CI

Project Structure

recipes/ BlueBuild recipe (image definition)
files/
system/
etc/secure-ai/ Policy and config files baked into image
etc/nftables/ Firewall rules (default-deny egress)
usr/lib/systemd/ Systemd service units (sandboxed)
usr/libexec/ Helper scripts (firstboot, vault, securectl, canary)
services/
registry/ Go -- Trusted Registry (:8470)
tool-firewall/ Go -- Policy-gated tool gateway (:8475)
airlock/ Go -- Online egress decision gate (:8490)
gpu-integrity-watch/ Go -- GPU runtime verification (:8495)
mcp-firewall/ Go -- MCP policy gateway (:8496)
policy-engine/ Go -- Unified policy decisions (:8500)
runtime-attestor/ Go -- TPM2 attestation + startup gating (:8505)
integrity-monitor/ Go -- Continuous file integrity watcher (:8510)
incident-recorder/ Go -- Incident capture + containment (:8515)
agent/ Python/Flask -- Verified supervisor autopilot (:8476)
quarantine/ Python -- 7-stage verification + scanning pipeline
diffusion-worker/ Python -- Image/video generation (:8455)
search-mediator/ Python -- Tor-routed web search (:8485)
ui/ Python/Flask -- Web UI (:8480)
ui-ingress/ Go -- Uncredentialed fixed sandbox relay (:8480)
common/ Python -- Shared utilities (audit, auth, mlock)
tests/ Python, integration, adversarial, and acceptance tests
docs/ Architecture, API, threat model, install guides
schemas/ OpenAPI spec, JSON Schema for config files
examples/ Task-oriented walkthroughs
.github/workflows/ CI (test/lint), build (image), release (SLSA v1/SBOM)

Contributing

See CONTRIBUTING.md for local dev setup, coding standards, and PR rules.

Security

See SECURITY.md for vulnerability reporting and threat boundaries.

Telemetry

SecAI OS does not collect telemetry. No usage analytics, crash reports, or phone-home. See docs/telemetry-policy.md.

License

Apache License 2.0

About

Bootable local-first AI OS with sealed runtime, model quarantine pipeline, airlock egress controls, encrypted vault, and private Tor-routed search.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

Generated from blue-build/template