Mark Emelianov

Harde beheersmaatregelen · Agents · Concept

Een kleine host-agent: geen model, geen inkomende poort

Status: dit is een geschreven ontwerp, een concept; nog niet gebouwd en niet in gebruik. De uitrol is gepland met eerst alleen feiten en alleen-lezen, en commando's als laatste.

De meeste gesprekken over AI-agents gaan over wat ze kunnen. Dit artikel gaat over een onderdeel dat bewust is ontworpen om heel weinig te doen: een kleine agent die op een host zou wonen. Ze zou geen model bevatten. Ze zou feiten over de host rapporteren, alleen commando's uit een vaste lijst uitvoeren, haar instructies ontvangen als ondertekende berichten via git, en op geen enkele inkomende poort luisteren.

Het is het kleinste voorbeeld van het idee dat door deze reeks loopt: wanneer u een component niet betrouwbaar kunt maken door er vriendelijk om te vragen, maak haar dan zo klein dat er weinig te vertrouwen valt.

Waarvoor ze dient

Sommige hosts worden helemaal niet door een AI-assistent bestuurd. Ze moeten toch bekend zijn en, op beperkte punten, beheerd worden: wat erop draait, in welke toestand ze verkeren, en een handvol routineacties. De kleine hostagent is ontworpen om op zo'n host te staan en precies dat te doen en niets meer.

Ze zou drie dingen doen. Ze zou hostfeiten rapporteren. Ze zou instructies ontvangen als ondertekende berichten. Ze zou een commando alleen uitvoeren als het op haar toestaanlijst staat.

Links een hostagentrobot, in het midden een gitdienst en rechts een ondertekenaarrobot. De ondertekenaar pusht ondertekende berichten naar de gitdienst, de host haalt ze op en rapporteert feiten terug. Een band zegt dat de host altijd naar buiten reikt en dat niets naar binnen reikt: geen inkomende poort.
Figuur 1: de host haalt op, de ondertekenaar pusht, de host luistert nooit

Waarom elke ontwerpkeuze

Elke keuze is er voor wat ze van het aanvalsoppervlak wegneemt.

Geen model. Met een model kan men in discussie gaan: tekst die het leest, kan sturen wat het doet. Een klein vast programma laat zich niet tot een actie overhalen, en is klein genoeg om door een persoon in één zitting te worden gelezen en beoordeeld. Het model weglaten haalt een hele klasse manipulatie van de host weg.

Een toestaanlijst. De agent zou elk commando weigeren dat niet op haar lijst staat. Een fout, een slecht bericht of een vervalst verzoek kan dan alleen bereiken wat de lijst toestaat. Onbekend betekent geweigerd.

Ondertekende berichten. De host zou alleen handelen op instructies waarvan ze de handtekening kan verifiëren. Het kanaal kunnen bereiken is niet genoeg; alleen de houder van de ondertekeningssleutel kan de host aansturen.

Git als kanaal. De host zou git om nieuwe berichten vragen in plaats van te wachten tot ze wordt aangeroepen. Elke instructie wordt een commit, zodat de geschiedenis een registratie is van wat is gevraagd en door wie, en het transport niets bijzonders nodig heeft.

Geen inkomende poort. Omdat de host altijd naar buiten zou reiken en niets naar binnen, is er geen luisterende dienst om vanaf het netwerk te scannen, te onderzoeken of te misbruiken.

Vijf rijen. Elke ontwerpkeuze links, geen model, toestaanlijst, ondertekende berichten, git als kanaal en geen inkomende poort, wijst naar wat ze rechts van het aanvalsoppervlak wegneemt. Een band zegt dat elke keuze iets wegneemt en dat de volgende afbeelding toont wat er overblijft.
Figuur 3: wat elke ontwerpkeuze wegneemt

Eén bericht, vijf vaste stappen

Elk bericht zou dezelfde stappen in dezelfde volgorde doorlopen: ophalen, de handtekening verifiëren, het commando tegen de toestaanlijst controleren, het ene vermelde commando uitvoeren, het resultaat en de hostfeiten rapporteren. Als een stap mislukt, stopt het bericht daar. Niet ondertekend, onbekend of niet vermeld betekent dat er niets draait, en er zit geen beoordeling in het midden waarop iemand kan steunen.

Vijf vakken op een rij, elk met een kleine robot: een nieuw bericht ophalen, de handtekening verifiëren, het commando tegen de toestaanlijst controleren, één vermeld commando uitvoeren, het resultaat en de hostfeiten rapporteren. Een band zegt dat elke stap die mislukt het bericht stopt, zodat niet ondertekend, onbekend of niet vermeld betekent dat er niets draait.
Figuur 2: één bericht, vijf vaste stappen

Wat het zou kosten

Klein en strikt heeft een prijs.

Waartegen dit ontwerp niet beschermt

De grenzen benoemen is belangrijker dan de sterke punten opsommen.

De ondertekeningssleutel. Wie de ondertekeningssleutel heeft, kan geldige berichten sturen. De toestaanlijst beperkt waar die om kunnen vragen, maar een schadelijke actie die op de lijst staat, zou worden uitgevoerd. Hoe de sleutel wordt bewaard en hoe ze zou worden vervangen, is een open ontwerppunt.

Herhaling (replay). Een echt ondertekend bericht kan later opnieuw worden verstuurd. Het ontwerp vereist een manier om verse berichten van oude te onderscheiden, zoals een vervaldatum of een teller; zonder dat is herhaling mogelijk.

Een gecompromitteerde gitdienst. De dienst kan geen handtekeningen vervalsen, maar kan berichten achterhouden, vertragen of oude tonen. Dat raakt de beschikbaarheid en versheid, niet de authenticiteit.

Een slechte toestaanlijst. De toestaanlijst is de echte rechtengrens. Ze is slechts zo veilig als haar vermeldingen en de argumenten die ze accepteren; een brede vermelding is een brede toestemming.

Een gecompromitteerde host. Een host die is overgenomen, kan onwaarheden over zichzelf rapporteren. De schade blijft beperkt tot de eigen paden van die host: via dit ontwerp zou ze andere hosts niet bereiken.

Vijf kaarten, elk met een kleine robot: de ondertekeningssleutel als open ontwerppunt, herhaling van een oud ondertekend bericht, een gecompromitteerde gitdienst, een slechte toestaanlijst, en een gecompromitteerde host die valse feiten kan rapporteren, beperkt tot de eigen paden. Een band zegt dat kleine toestaanlijsten, verse berichten, zorgvuldige sleutels en monitoring de schade beperken, maar dat deze risico's blijven bestaan.
Figuur 4: waartegen dit ontwerp niet beschermt

Deze risico's zouden worden beperkt door kleine toestaanlijsten met vaste argumenten, verse berichten, zorgvuldige omgang met sleutels en monitoring van wat de host rapporteert. Ze worden niet weggenomen.

Hoe het in de rest van de reeks past

De hostagent zou de laagste laag van hetzelfde plaatje zijn. Agents erboven stellen voor, mensen keuren goed, en ondertekende, vastgelegde berichten brengen de goedgekeurde instructie naar beneden. Onderaan zou een onderdeel staan dat zijn lijst volgt en een registratie bijhoudt, en dat verder weinig heeft om aan te vallen.