Opmerking: sommige oudere links verwijzen mogelijk naar de vorige projectnaam.
Wat dit is
Een uitvoerbare, door aanvallers aangestuurde regressietestsuite voor beveiliging:- Elke claim heeft een uitvoerbare modelcontrole over een eindige toestandsruimte.
- Veel claims hebben een gekoppeld negatief model dat een tegenvoorbeeldtrace produceert voor een realistische foutcategorie.
Waar de modellen staan
De modellen worden onderhouden in een afzonderlijke repository: vignesh07/openclaw-formal-models.Die repository is momenteel onbereikbaar (GitHub retourneert op het moment van schrijven “Repository not found”). Als deze voor jou nog steeds niet werkt, vraag dan in de OpenClaw-kanalen voor maintainers naar de huidige locatie voordat je aanneemt dat de modellen zijn verwijderd.
Kanttekeningen
- Dit zijn modellen, niet de volledige TypeScript-implementatie — afwijkingen tussen model en code zijn mogelijk.
- De resultaten worden begrensd door de toestandsruimte die TLC verkent. Groen impliceert geen beveiliging buiten de gemodelleerde aannames en grenzen.
- Sommige claims berusten op expliciete aannames over de omgeving (bijvoorbeeld een correcte implementatie en correcte configuratie-invoer).
Resultaten reproduceren
Kloon de modellenrepository en voer TLC uit:Claims en doelen
Gateway-blootstelling en onjuiste configuratie van een open Gateway
Claim: binding buiten loopback zonder authenticatie kan compromittering op afstand mogelijk maken en vergroot de blootstelling; volgens de aannames van het model houdt een token/wachtwoord niet-geverifieerde aanvallers tegen.
Zie ook
docs/gateway-exposure-matrix.md in de modellenrepository.
Uitvoerpijplijn van Node (mogelijkheid met het hoogste risico)
Claim:exec host=node vereist (a) een toelatingslijst voor Node-opdrachten plus gedeclareerde opdrachten en (b) directe goedkeuring indien geconfigureerd; in het model worden goedkeuringen van tokens voorzien om hergebruik te voorkomen.
Koppelingsopslag (DM-afscherming)
Claim: koppelingsverzoeken respecteren de TTL en limieten voor openstaande verzoeken.Afscherming van inkomend verkeer (vermeldingen en omzeiling via besturingsopdrachten)
Claim: in groepscontexten waarin een vermelding vereist is, kan een niet-geautoriseerde besturingsopdracht de afscherming via vermeldingen niet omzeilen.Routering en isolatie van sessiesleutels
Claim: DM’s van verschillende gesprekspartners worden niet in dezelfde sessie samengevoegd, tenzij ze expliciet zijn gekoppeld of zo zijn geconfigureerd.v1++-modellen: gelijktijdigheid, nieuwe pogingen en correctheid van traces
Vervolgmodellen die de getrouwheid rond storingsmodi uit de praktijk aanscherpen: niet-atomaire updates, nieuwe pogingen en berichtfan-out.Gelijktijdigheid en idempotentie van de koppelingsopslag
Claim: de koppelingsopslag dwingtMaxPending en idempotentie af, zelfs bij vervlechtingen — controleren en vervolgens schrijven moet atomair/vergrendeld zijn en vernieuwen mag geen duplicaten maken. Concreet: gelijktijdige verzoeken kunnen MaxPending voor een kanaal niet overschrijden en herhaalde verzoeken/vernieuwingen voor dezelfde (channel, sender) maken geen dubbele actieve openstaande rijen.
Tracecorrelatie en idempotentie van inkomend verkeer
Claim: opname behoudt tracecorrelatie bij fan-out en is idempotent bij nieuwe pogingen van providers. Wanneer één externe gebeurtenis meerdere interne berichten wordt, behoudt elk onderdeel dezelfde trace-/gebeurtenisidentiteit; nieuwe pogingen worden niet dubbel verwerkt; als gebeurtenis-ID’s van de provider ontbreken, valt deduplicatie terug op een veilige sleutel (bijvoorbeeld een trace-ID) om te voorkomen dat afzonderlijke gebeurtenissen worden verwijderd.Routering: voorrang van dmScope en identityLinks
Claim: de voorrang vandmScope en identiteitskoppelingen gedragen zich deterministisch: het standaardbereik main deelt één doorlopende sessie over de DM’s van één eigenaar (de standaard voor persoonlijke agents), terwijl elk geconfigureerd isolerend bereik (per-peer, per-channel-peer, per-account-channel-peer) DM-sessies strikt gescheiden houdt. Kanaalspecifieke dmScope hebben voorrang op globale standaardwaarden; identityLinks voegen sessies alleen samen binnen expliciet gekoppelde groepen, niet tussen niet-gerelateerde gesprekspartners. Voor inboxen met meerdere gebruikers wordt verwacht dat een isolerend bereik wordt ingeschakeld (de beveiligingsaudit van de runtime beveelt dit aan wanneer deze DM-verkeer van meerdere gebruikers detecteert).