Sikkerhet #5: Se hva rammeverket stopper, i loggen

Sikkerhet #5: Se hva rammeverket stopper, i loggen

Sikkerhet #5: Se hva rammeverket stopper, i loggen

Jeg har tre lag som sier nei til Claude Code på maskinen min. En deny-regel for git i settings.json, en PreToolUse-hook som stopper det samme, og klassifisereren i auto-modus som vurderer hver kommando. Problemet har vært at jeg bare ser nei-ene når jeg sitter og følger med i chatten. Kjører jeg noe uten å se på, er de borte.

I Claude Code 2.1.307 kom det en ny OpenTelemetry-hendelse som heter claude_code.safety_event. Den sendes hver gang en tillatelsesregel, auto-modus, en innebygd sikkerhetssjekk, en hook eller sandboxen stopper et verktøykall, krever et spørsmål eller sender resultatet tilbake.

Det som står i hver hendelse:

  • Hvilken sjekk som slo til: permission_rule, hook, auto_mode_block, safety_check, sandbox_network og noen til.
  • Avgjørelsen: accept, reject eller sent_back.
  • Årsaken, feks hook:PreToolUse eller classifier:auto-mode, og om sandboxen var på.
  • Ingen kommandotekst, ingen filstier, ingen vertsnavn. Vil du se selve kommandoen, setter du OTEL_LOG_TOOL_DETAILS=1 og leser tool_decision-hendelsen med samme tool_use_id.

Samme versjon tettet også noen hull i sandboxen: oppstartsfilene til skallet kjørte utenfor sandboxen før hver kommando, denyWrite virket ikke gjennom symlenker, og sandboxede kommandoer kunne endre MCP-konfigfila. Det er et godt argument for å faktisk logge hva den stopper.

Slik prøver du det:

  • Sjekk at du har 2.1.307 eller nyere med claude –version.
  • Sett CLAUDE_CODE_ENABLE_TELEMETRY=1 og OTEL_LOGS_EXPORTER=console, og start claude. Da kommer hendelsene rett i terminalen.
  • Vil du ha dem et annet sted, bruk OTEL_LOGS_EXPORTER=otlp og pek OTEL_EXPORTER_OTLP_ENDPOINT mot samlepunktet ditt.

Jeg kommer til å bruke det til å se om hooken og klassifisereren faktisk tar det jeg tror de tar. Logger du hva agenten din blir nektet? Del gjerne i kommentarfeltet.

Dokumentasjon: Monitoring usage