1. Co guardrail bezpieczeństwa kodu faktycznie robi
OrcaRouter dostarcza rodzinę presetówcode_security, którą stosujesz z
wyboru szablonów. Każdy to zwykła reguła
guardrail — w zakresie przestrzeni roboczej,
uporządkowana, powiązywalna z dowolnym kluczem — dostrojona do kodu:
.env / Secret-File Block
Blokuje przypisania sekretów w stylu
.env (DATABASE_URL=,
AWS_SECRET_ACCESS_KEY=, API_TOKEN=…) i wklejone wielowierszowe zrzuty
konfiguracji, zanim dotrą do dostawcy. Opiera się na składni
przypisania, nie na wartości.License Compliance (copyleft)
Flaguje żądania niosące nagłówki silnego copyleft — tagi SPDX GPL / AGPL /
LGPL / SSPL lub pełne nazwy licencji — by recenzent mógł potwierdzić, że
kod jest bezpieczny do zmieszania z bazą permisywną. Tylko flag.
GPL/AGPL Provenance (output)
Flaga na etapie wyjścia na sugestiach modelu niosących sygnatury
pochodzenia copyleft — marker, że model mógł zwymiotować dane treningowe
copyleft do wygenerowanego kodu.
Insecure-API Advisory
Adnotuje prompt ostrzeżeniem bezpieczeństwa, gdy odwołuje się do
wysoce ryzykownego sinka —
eval( / exec( / os.system( /
subprocess.run( / pickle.loads( / child_process.exec(. Nieblokujące.Presety
code_security są deterministyczne — czysty regex, bez wywołania
sieciowego, bezpieczne na gorącej ścieżce. Sieciowe skanery (lookup CVE, SBOM,
SAST) to osobne połączenia zewnętrzne, nie presety. Zobacz
§3.2. Annotate — ostrzeż model bez zmiany ruchu
Akcje, które konfigurujesz na guardrail, to block (odrzuć wywołanie, HTTP 400), mask (redaguj dopasowanie) i flag (tylko log). Bezpieczeństwo kodu dodaje czwarte zachowanie pod maską: annotate, które ani nie blokuje, ani nie maskuje. Gdy reguła annotate się dopasuje, brama rejestruje krótką notatkę, a relay wstrzykuje ją w górę jako ostrzeżenie systemowe — więc model jest poinformowany, np. “this request references a high-risk API (code eval, shell execution, or unsafe deserialization); prefer safer alternatives” — zanim odpowie. Tekst użytkownika nigdy nie jest odrzucany ani przepisywany.Jeden konkretny przykład
Zastosuj preset Insecure-API Advisory do guardrail i powiąż go z kluczem. Potem wyślij kod, który woła niebezpieczny sink:3. Dekoracja CVE i SBOM przez skanery zewnętrzne
Prymityw ostrzeżenia generalizuje się. Podłącz skaner bezpieczeństwa kodu jako zewnętrznego dostawcę, a jego ustalenia jadą tą samą ścieżką annotate:Lookup CVE zależności (OSV)
Lookup CVE zależności (OSV)
Wyciąga importy i przypięcia manifestu z tekstu żądania i porównuje je
krzyżowo z publiczną bazą podatności OSV. Trafienie dekoruje prompt np.
“requests@2.0.0 has CVE-2014-1830 (HIGH). Fixed in 2.20.0.” — więc model
jest poinformowany o znanej podatności w pakiecie, którego użycia był
poproszony. Darmowy i nieuwierzytelniony, więc nie ma pola klucza API.
Domyślnie annotate; możesz ustawić zamiast tego flag lub block.
Skanery SBOM i SAST
Skanery SBOM i SAST
Podłącz skaner SBOM (software bill-of-materials) lub SAST (analiza
statyczna) tak samo, jak podłączasz dowolnego zewnętrznego dostawcę —
bazowy URL plus poświadczenia, przechowywane zaszyfrowane i maskowane przy
odczycie. Każde ustalenie niesie stabilną tożsamość, więc ustalenie, które
już otriażowałeś, nie odpala ponownie przy każdym żądaniu.
fail_open na false na regule, by
fail closed dla polityk, w których pominięty skan jest nieakceptowalny.
4. Parowanie z regułami sekretów i licencji
Guardrail bezpieczeństwa kodu rzadko jedzie sam. Częsty kształt to jeden guardrail z kilkoma regułami:| Cel | Reguła |
|---|---|
| Zatrzymaj wklejone poświadczenia | .env / Secret-File Block (block) |
| Wychwyć wartości sekretów inline | Secrets Blocker (block) |
| Bramkuj kod copyleft | License Compliance (flag) |
| Steruj niebezpieczne sinki | Insecure-API Advisory (annotate) |
5. Skonfiguruj to (konsola + role)
Wszystko tutaj jest konfigurowane w konsoli, nie przez klucz relay. Trasy zarządzania (/api/guardrail/*) uwierzytelniają się twoją sesją / tokenem
dostępu, nie kluczem relay sk-. Odczyty — listowanie guardrails i strumień
Matches — są otwarte dla każdego członka przestrzeni roboczej. Zapisy
(utworzenie / edycja / usunięcie) oraz piaskownica testowa wymagają roli
Developer lub wyższej: piaskownica może odpalać płatne wywołania modelu i
wychodzące żądania dostawców, więc jest bramkowana jak zapis.
Utwórz guardrail
W konsoli otwórz Guardrails → New guardrail. Przycisk z podziałem
wrzuca cię do biblioteki szablonów — wybierz preset Code security jako
punkt wyjścia.
Edytuj swobodnie
Preset to ziarno, nie blokada. Dostrój regex, dodaj regułę Secrets
Blocker, zmień akcję. Użyj zakładki Test, by udowodnić, że reguła
działa tak, jak oczekujesz, wobec przykładowego tekstu, zanim powiążesz ją
z kluczem.
Ustalenia lądują w strumieniu Matches przestrzeni roboczej (typ reguły,
akcja, etap, szczegół). Dopasowany podłańcuch jest rejestrowany tylko, gdy
Log raw content jest włączone — domyślnie wyłączone, postawa konserwatywna
wobec prywatności. Zobacz
logowanie i prywatność.
6. Dokąd dalej
- Blokuj sekrety — towarzysząca reguła, która wychwytuje wartości poświadczeń w argumentach żądania.
- Akcje — block, mask, flag, annotate i spotlight w głąb.
- Rejestrator zgodności — trzymaj niezmienny zapis każdego ustalenia bezpieczeństwa kodu.
- Testowanie i eval — udowodnij, że twoja polityka wychwytuje znany zły kod, zanim go wyślesz.
- Referencja Guardrails — pełny silnik.
- Zabezpieczanie agentów AI — gdzie szyny bezpieczeństwa kodu pasują w stosie kontrolnym zero trust.
