Przejdź do głównej treści
Każda reguła firewalla zaczyna od odpowiedzi na pytanie których wywołań narzędzi dotyczę? Pierwsza połowa tej odpowiedzi to glob nazwy narzędzia — pole tool_name_glob na regule. To celowo mała, z rozróżnianiem wielkości liter gramatyka (bez regexa, bez backtrackingu), więc reguła czyta się tak samo, jakbyś wpisał nazwę narzędzia z zakładki Discovered tools, a dopasowanie pozostaje czasu liniowego na gorącej ścieżce relay. Ta strona to skupiona referencja gramatyki dla tego jednego pola. Gdzie glob siedzi wewnątrz pełnej reguły — powierzchnia, klauzule argumentów, listy egress, werdykt — zobacz Schemat reguły i głęboką referencję silnika w Reguły Firewall.

1. Dlaczego glob nazwy narzędzia zamiast regexa

Narzędzia są konwencjonalnie przestrzenione server.tool lub category.action (shell.exec, db.query, community.http_fetch). Glob pozwala jednej regule wychwycić całą rodzinę — shell.* dla każdego czasownika shella, *.delete dla czasownika w różnych serwerach — bez samostrzałów regexa na ścieżce, która działa przy każdym wywołaniu narzędzia.
Gramatyka jest celowo malutka. Dopasowanie jest z rozróżnianiem wielkości liter — nazwy narzędzi MCP są konwencjonalnie małymi-literami-z-kropkami, więc zwijanie wielkości liter zaskoczyłoby autora, który kopiuje nazwę prosto z widoku Discovered tools. Nie ma katastroficznego backtrackingu, bo nie ma za tym silnika regexa; każdy wzorzec poniżej to garstka operacji na stringach.

2. Pięć kształtów wzorca

glob nazwy narzędzia to dokładnie jeden z tych kształtów. Wszystko, co nie pasuje do form z symbolem wieloznacznym, jest traktowane jako literał, dokładne dopasowanie.
WzorzecKształtDopasowuje
"" lub *dowolnyKażde wywołanie narzędzia.
foo.*przedrostekfoo.bar, foo.execnie samo foo.
*.execsufiksshell.exec, db.exec, oraz samo exec.
*.shell.*wrosteklocal.shell.exec, byo.shell.run.
shell.execdokładnyTylko literał shell.exec.
Przeczytaj kolejne sekcje, by poznać jeden brzeg w każdym kształcie, który ludzi potyka.

3. Przedrostek — foo.*

Dopasowuje dowolne narzędzie, którego nazwa zaczyna się od foo. i ma co najmniej jeden kolejny znak po kropce.

Dopasowuje

shell.exec, shell.run, shell.rm dla wzorca shell.*

Nie dopasowuje

samego shell (przedrostek wymaga końcowej kropki oraz czegoś po niej)
Użyj globu przedrostka, aby zarządzać całym serwerem lub kategorią naraz — jedno deny shell.* pokrywa każdy czasownik shella, który serwer może dodać później.

4. Sufiks — *.exec

Dopasowuje dowolne narzędzie, którego nazwa kończy się na .exec, zakotwiczone na kropce — oraz dopasowuje też goły, nieprzestrzeniony czasownik exec samodzielnie.
Dopasowanie gołego czasownika jest celowe. Wywołania funkcji natywne dla dostawcy i serwery MCP, które nie przestrzeniają, wystawiają narzędzie pod jego gołym czasownikiem (po prostu exec, nie shell.exec). Reguła *.exec pokrywa oba kształty, więc nieprzestrzeniające narzędzie nie jest po cichu pominięte.
Sufiks pozostaje zakotwiczony — nie dopasuje częściowego słowa:
Wzorzecshell.execgołe execshell.execute
*.execdopasowujedopasowujebrak dopasowania
*.execute byłoby potrzebne dla shell.execute; sufiks odpala tylko na granicy kropki lub na początku stringa, nigdy w środku słowa.

5. Wrostek — *.shell.*

Dopasowuje dowolną nazwę narzędzia, która zawiera .shell. jako wrostek, z co najmniej jednym znakiem po każdej stronie. Tak jedna reguła pokrywa czasownik wszędzie tam, gdzie serwer BYO-MCP akurat go przestrzeni.
{
  "label": "gate every shell tool, any server",
  "tool_name_glob": "*.shell.*",
  "verdict": "deny"
}
Ta reguła dopasowuje local.shell.exec, byo.shell.run i dowolny inny kształt <server>.shell.<verb>. Nie dopasowuje gołego shell ani gołego .shell. bez niczego wokół — wymóg znaku-po-każdej-stronie utrzymuje wrostek w ryzach.
Forma wrostka to tylko symetryczny kształt *.X.*. Wzorzec z gwiazdką w środkufoo.*.barnie jest globem wrostka; spada do dokładnego dopasowania stringa (dopasowuje tylko narzędzie nazwane dosłownie foo.*.bar, które nie będzie istnieć). Aby dopasować „zaczyna się od foo., kończy się na .bar”, potrzebujesz dwóch reguł lub klauzuli argumentu, nie jednego globu.

6. Dokładny — shell.exec

Wszystko, co nie jest jednym z powyższych kształtów z symbolem wieloznacznym, to dopasowanie literału stringa. shell.exec dopasowuje shell.exec i nic innego. To właściwy wybór, gdy chcesz nazwać jedno konkretne narzędzie — połącz to z klauzulą argumentu, aby zacieśnić dalej („zablokuj shell.exec tylko wtedy, gdy polecenie to rm -rf”).

7. Jeden konkretny przykład

Powiedzmy, że chcesz odmówić każdego destrukcyjnego czasownika shella niezależnie od tego, jak serwer MCP go przestrzeni, pozwalając wszystkiemu innemu na audit. W edytorze reguł konsoli (zapisy wymagają Developer+) połowa dopasowująca reguły to pojedynczy glob wrostka:
{
  "label": "deny shell across servers",
  "stage": "response",
  "tool_name_glob": "*.shell.*",
  "verdict": "deny"
}
Przypnij klucz do polityki (firewall_policy_id na kluczu), a reguła teraz wychwytuje local.shell.exec, byo.shell.run i acme.shell.rm — trzy serwery, jeden glob. Chcesz potwierdzić, że odpala na tym, czego oczekujesz, zanim na nim polegniesz? Użyj Testowania reguł — zwraca werdykt, dopasowaną regułę i powód bez dyspozytowania czegokolwiek.
Glob zacieśnia które narzędzie. Aby zacieśnić z jakimi argumentami, połącz AND klauzulę argumentu z tą samą regułą; aby zarządzać narzędziem tylko, gdy konkretny skill jest jego właścicielem, dodaj glob nazwy skilla (ta sama gramatyka, dopasowana wobec skilla właściciela). Oba są omówione w Reguły Firewall.

8. Szybka referencja

Tak. *.exec dopasowuje shell.exec, db.exec, oraz goły, nieprzestrzeniony exec. Globy przedrostka (foo.*) nie dopasowują gołej przestrzeni foo — tylko nazwy z czymś po kropce.
Nie. Jedyny kształt z symbolem-wieloznacznym-w-środku, który silnik rozumie, to symetryczny wrostek *.X.*. foo.*.bar spada do dokładnego dopasowania literału. Użyj dwóch reguł lub klauzuli argumentu zamiast tego.
Tak. Shell.Exec i shell.exec to różne narzędzia. Kopiuj nazwy dosłownie z zakładki Discovered tools.
Każdy kształt, który nie jest jednym z pięciu powyższych, jest traktowany jako dokładne dopasowanie — po prostu nie dopasuje prawdziwej nazwy narzędzia, więc reguła nigdy nie odpala, zamiast dopasować coś nieoczekiwanego. Konsola waliduje reguły przy zapisie.

Powiązane

Lista dozwolonych narzędzi

Użyj globów, aby zezwolić na znany zestaw i odmówić reszty.

Walidacja argumentów

Połącz AND klauzulę argumentu JSONPath z globem.

Schemat reguły

Każde pole reguły, w jednym miejscu.
Dla pełnego języka dopasowania — werdykty, powierzchnie, listy egress i sekwencje — zobacz Reguły Firewall. Nowy w tej płaszczyźnie? Zacznij od Przeglądu Firewall.