Skip to content

Isolatie van de sandbox: afweging vastgelegd, vervolgstappen verzamelen #44

Description

@ericwout-overheid

Aanleiding

De sandbox moet deelnemers beschermen tegen wat de AI-assistent in de container
doet: code die rogue gaat, of een assistent die via prompt-injectie wordt
aangestuurd. De vraag was hoe ver die bescherming moet reiken, en wat de
sandbox daarvoor moet opgeven aan gemak.

Wat er is besloten

De afweging staat vast in
ADR 0001. Kern:

  • Maven-builds met Testcontainers draaien binnen de sandbox op rootless podman,
    niet meer via een brug naar de computer eronder. Die brug is verwijderd
    (feat(sandbox): Maven host-agent verwijderen, podman-set op eigen plek (#44) #80) — daarmee is de container→host-code-execution die de aanleiding vormde
    weg.
  • De container start met verhoogde rechten om de firewall te zetten en geeft ze
    daarna onherroepelijk op.
  • De setuid-bits zijn image-breed gestript, op de podman-helpers na.
  • Een AppArmor-profiel sluit het directe pad naar de host-instellingen.

Wat dicht is, wat open blijft en welke laag welke route sluit: ADR 0001 §4.
Testprotocol: claude-sandbox/docs/hardening-verificatie.md.

Waar dit issue nog voor dient

Verzamelpunt voor de vervolgstappen. De losse onderdelen staan als eigen issue:

Nog te beslissen: of de sandbox een eigen kernel krijgt (VM, Kata of gVisor)
voor het geval er volledig onvertrouwde code in draait. ADR 0001 §4.5 stelt die
route uit; een eerste uitwerking staat in #99 en is nog ongetest.

Dit issue kan dicht zodra die beslissing is genomen en de bovenstaande issues
zijn afgehandeld of bewust zijn geparkeerd.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    dockerPull requests that update docker codeenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions