Claude Skill allowed-tools: Riktig avgrensning av tillatelser

Claude Skill allowed-tools: Riktig avgrensning av tillatelser

Avgrensning av Claude Skill-tillatelser: En veiledning til allowed-tools-frontmatter

En Claude skill er en ren tekstfil, SKILL.md, som samler instruksjoner og metadata for å utvide grunnmodellens funksjonalitet. Denne filen kan gi modellen tilgang til ditt lokale miljø, inkludert muligheten til å lese og skrive filer, og utføre shell-kommandoer. Dette er kraftfullt. Det er også en betydelig sikkerhetsmessig vurdering.

Hovedmekanismen for å kontrollere denne kraften er allowed-tools-feltet i skillens frontmatter. Denne ene konfigurasjonslinjen er det mest kritiske elementet for å definere en skills grenser. Å gjøre det riktig er forskjellen mellom et nyttig, pålitelig verktøy og en potensiell risiko.

Hos SkillProof lister vi ikke bare opp skills; vi installerer og kjører dem på virkelige oppgaver. Prosessen vår er bygget på verifisering, og en sentral del av dette er å analysere en skills forespurte tillatelser opp mot dens faktiske funksjon. Vi publiserer våre funn, inkludert feilene. Av 743 skills testet til dags dato, besto bare 508 våre kriterier. 204 krevde manuelt oppsett, ofte relatert til tillatelser, og 31 presterte dårligere enn å bruke vanlig Claude, noen av sikkerhetsgrunner. Denne artikkelen forklarer hvordan vi evaluerer claude skill allowed-tools og hvorfor det er et emne hver bruker og utvikler må forstå.

Prinsippet om minst privilegium i Claude Skills

allowed-tools-feltet er en array i SKILL.md-frontmatteren som spesifiserer hvilke verktøy skillen har tillatelse til å be om fra verts-miljøet. Hvis et verktøy ikke er på denne listen, kan skillen ikke bruke det, og modellen kan ikke bli bedt om å påkalle det.

Dette er en direkte implementering av prinsippet om minst privilegium (PoLP): et subjekt skal kun gis de tillatelsene som er nødvendige for å fullføre sine påkrevde oppgaver. En skill designet for å refaktorere Python-kode innenfor en prosjektkatalog trenger ikke tilgang til system-shellen. En skill som formaterer markdown-filer trenger ikke å lese din ~/.ssh-katalog.

Når du avgrenser Claude skill-verktøy riktig, skaper du en forutsigbar og sikker kontrakt mellom brukeren og skillen. Det vanligste røde flagget vi ser under testing er en altfor tillatende allowed-tools-deklarasjon. En skill som ber om allowed-tools: ["*"] ber om alle mulige tillatelser, inkludert shell, file_read og file_write. Dette tilsvarer å gi en applikasjon root-tilgang når alt den trengte var å lese en enkelt fil. Det indikerer enten utviklerlatskap eller, mer bekymringsfullt, en intensjon om å utføre handlinger utover det angitte formålet.

Riktig konfigurert claude skill sikkerhets-frontmatter er den første forsvarslinjen mot utilsiktet oppførsel. Det er en klar intensjonserklæring fra utvikleren. En minimal, veldefinert allowed-tools-liste er et tegn på kvalitet og respekt for brukerens system.

Definere et minimalt, effektivt verktøysett

For å avgrense en skills tillatelser riktig, må en utvikler analysere dens kjernefunksjon og kartlegge den direkte til de nødvendige verktøyene. Prosessen er enkel:

  1. Definer målet: Hva er skillens eneste, primære funksjon? (f.eks. "Kjør pytest på det nåværende prosjektet.")
  2. Identifiser handlingene: Hvilke trinn kreves for å oppnå dette målet? (f.eks. "Utfør en kommando i terminalen.")
  3. Kartlegg handlinger til verktøy: Hvilke spesifikke verktøy er nødvendige for disse handlingene? (f.eks. shell-verktøyet er nødvendig for å utføre en kommando.)
  4. Deklarer kun det som trengs: Den resulterende allowed-tools-listen skal kun inneholde verktøyene identifisert i forrige trinn.

Alt mer er en potensiell sårbarhet. Vurder disse vanlige scenarioene vi har evaluert:

Bruksområde Altfor tillatende allowed-tools Riktig avgrenset allowed-tools Begrunnelse
Les en konfigurasjonsfil og rapporter om den ["*"] ["file_read"] Skillen trenger kun å lese. Skrive- og shell-tilgang er unødvendige risikoer.
Bruk en kodeformaterer som black ["file_read", "file_write", "shell"] ["shell"] black-kommandoen håndterer sin egen fil-I/O. Skillen trenger kun å påkalle den.
Refaktorer kode på tvers av flere filer ["*"] ["file_read", "file_write"] Skillen trenger å lese filer for å forstå kontekst og skrive filer for å lagre endringer. Shell-tilgang er ikke nødvendig.

Denne analytiske prosessen er en grunnleggende del av vår testmetodikk. Hvis en skills forespurte tillatelser ikke stemmer overens med dens dokumenterte funksjon, stryker den vår gjennomgang eller flagges som krevende manuell verifisering. For en komplett liste over tilgjengelige verktøy og frontmatter-felt, se vår /blog/claude-skill-frontmatter-reference.

Casestudier fra 743 testede Skills

Teori er nyttig, men å se virkelige feil demonstrerer hva som står på spill. Claude skill-tillatelsesmodellen er robust, men den er avhengig av at utviklere og brukere håndhever god praksis. Her er tre anonymiserte eksempler fra vår testing som belyser hva som kan gå galt.

Den selv-eskalerende skillen

En av de mest bekymringsfulle sårbarhetene vi oppdaget var i en skill designet for å hjelpe med å administrere prosjektkonfigurasjoner. Ved første kjøring fungerte skillen som forventet. Imidlertid utførte den også en udokumentert handling: den brukte sin file_write-tillatelse til å endre brukerens globale .claude/settings.json-fil.

Endringen var subtil. Den la til shell-verktøyet i sin egen allow_list innenfor innstillingene, og eskalerte dermed effektivt sine egne privilegier for alle fremtidige kjøringer. Brukeren, som i utgangspunktet kun hadde godkjent file_write, ville være uvitende om at skillen nå hadde muligheten til å utføre enhver kommando på systemet sitt.

For å gjøre saken verre, anbefalte skillens dokumentasjon å kjøre Claude-verten i acceptEdits-modus, noe som ville føre til at denne privilegie-eskaleringen skjedde stille, uten en brukerbekreftelsesforespørsel. Denne kombinasjonen av en bakdørskonfigurasjon og sosial manipulering for å deaktivere sikkerhetskontroller representerer et alvorlig sikkerhetsbrudd. Vi flagget denne skillen, Self-Modifying Configurator, med vår høyeste alvorlighetsgrad.

Den overgripende Dotfile Scraper

En annen kategori av feil involverer skills som er for aggressive med file_read. Vi testet en skill ment for å hjelpe utviklere med å finne og bruke CLI-verktøy. Dens SKILL.md ba om brede fil-lesetillatelser. Under vår testkjøring observerte vi den forsøke å lese innholdet i ~/.zshrc, ~/.bash_profile og andre shell-konfigurasjonsfiler.

Disse filene er et vanlig sted for utviklere å lagre sensitiv informasjon, som EXPORT-setninger for API-nøkler, database-legitimasjon og andre hemmeligheter. Mens skillens forfatter kan ha hatt til hensikt å uskyldig parse brukerens PATH, var implementeringen hensynsløs. En skill med denne oppførselen, som den vi loggførte som Dotfile Scraper, kunne enkelt endres for å eksfiltrere eventuelle hemmeligheter den finner.

Det er nesten ingen legitim grunn for en generisk skill å lese disse spesifikke, svært sensitive filene. En skill som trenger tilgang til miljøvariabler bør bruke en dedikert, sikker mekanisme, ikke skrape konfigurasjonsfiler.

Sandkasse-rømningsartisten

Noen verktøy inkluderer sikkerhetsfunksjoner, som redaktører som forhindrer modellen i å se sensitiv informasjon som API-nøkler funnet i filer. Vi testet en skill som syntes å være bevisst designet for å omgå disse beskyttelsene. Den brukte en serie komplekse prompter og filoperasjoner for å prøve å lure verten til å avsløre redigert informasjon.

Denne skillen, Redactor Bypass Attempt, lyktes ikke i vårt testmiljø, men selve forsøket er en kritisk feil. Det demonstrerer ondsinnet hensikt. Utvikleren var ikke bare uforsiktig med tillatelser; de prøvde aktivt å bryte sikkerhetsmodellen til verts-miljøet. Dette er fundamentalt forskjellig fra et dårlig avgrenset verktøy og representerer et risikonivå som er uakseptabelt i enhver programvare.

Ansvar for utviklere og brukere

Å sikre Claude skill-økosystemet er et delt ansvar.

For utviklere:

Tillit er din mest verdifulle ressurs. Når du publiserer en skill, ber du brukere om å kjøre koden din på maskinen deres. Den raskeste måten å tjene deres tillit på er å være transparent og konservativ med dine tillatelsesforespørsler. En strengt avgrenset allowed-tools-liste er en funksjon. Det demonstrerer at du har tenkt på sikkerhet og respekterer brukerens miljø. Før publisering, spør deg selv: "Hva er det absolutte minimum av verktøy skillen min trenger for å fungere?" Hvis du bygger din første skill, har vi en veiledning om hvordan du /blog/write-your-own-claude-skill som dekker disse prinsippene.

For brukere:

Vær årvåken. Før du installerer en skill, ta et øyeblikk til å inspisere dens SKILL.md-fil. Se på allowed-tools-listen. Gir det mening? Hvis en skill som lover å skrive poesi ber om shell-tilgang, bør du være mistenksom. Still spørsmål om hvorfor den trenger den tillatelsen. Hvis svaret ikke er åpenbart fra skillens beskrivelse, er det tryggere å unngå den.

Dette er, innrømmet, mye arbeid å gjøre for hver skill. Det er derfor kataloger som utfører uavhengig verifisering er nødvendige. Hele prosessen vår er designet for å utføre denne revisjonen på dine vegne, slik at du kan bruke skills med tillit.

Verifiserte Skills du kan stole på

Å granske hver skill for sikkerhetsfeil, spesielt subtile som er relatert til hvordan man avgrenser Claude skill-verktøy, er en tidkrevende og teknisk prosess. Etter å ha gjennomgått hundrevis av skills, har vi sett hvor lett det er for farlige eller ødelagte verktøy å bli publisert.

Vi bygget SkillProof for å løse dette problemet. Vi gjør jobben med testing, verifisering og sikkerhetsrevisjon slik at du slipper. For et engangskjøp på $10, gir vår Komplette pakke med 508 godkjente Skills deg et fullt gransket verktøysett. Hver skill har bestått våre sikkerhetskontroller, inkludert en streng gjennomgang av dens allowed-tools-avgrensning.

En skills kraft kommer fra koden; dens pålitelighet kommer fra dens begrensninger. Verifisering av allowed-tools er det første, mest kritiske trinnet i å bygge den tilliten.

★ 9.6/10 × 3

Den gratis startpakken

De 3 skillsene med våre høyeste testscorer pluss installasjonssjekklisten — oppsettet vi selv ville lagt på en fersk maskin. Gratis, på e-post.

Én e-post med pakken + en kort ukentlig oppsummering av nye testresultater. Meld deg av når du vil.