메인 콘텐츠로 건너뛰기
당신의 애플리케이션이 코드를 모델로 보낼 때 — 그것을 검토하거나, 완성하거나, 에이전트를 통해 실행하기 위해 — 모델이 위험한 부분에 대해 경고받고 워크스페이스가 동일한 패스에서 시크릿을 유출하지 못하도록 막히기를 원합니다. 코드 보안 guardrail은 정확히 그것을 합니다: 업스트림 모델이 단 하나의 토큰을 보기 전에 당신의 코드 보안 규칙을 요청에 대해 실행합니다. 이것은 초점을 둔 랜딩 페이지입니다. 전체 guardrail 엔진 — 규칙 타입, 스테이지, 해석, 테스트 샌드박스 — 은 Guardrails 레퍼런스guardrails 개요를 참조하세요.

1. 코드 보안 guardrail이 실제로 하는 일

OrcaRouter는 템플릿 선택기에서 적용하는 code_security 프리셋 패밀리를 제공합니다. 각각은 코드에 맞게 튜닝된 평범한 guardrail 규칙입니다 — 워크스페이스 범위, 순서가 있음, 임의의 키에 연결 가능:

.env / Secret-File Block

.env 스타일 시크릿 할당(DATABASE_URL=, AWS_SECRET_ACCESS_KEY=, API_TOKEN=…)과 붙여넣은 여러 줄 구성 덤프가 프로바이더에 도달하기 전에 차단합니다. 값이 아니라 할당 구문으로 키를 잡습니다.

License Compliance (copyleft)

강력한 카피레프트 헤더 — GPL / AGPL / LGPL / SSPL SPDX 태그 또는 전체 라이선스 이름 — 를 운반하는 요청을 플래그하므로, 검토자가 코드를 허용적 코드베이스에 섞어도 안전한지 확인할 수 있습니다. 플래그 전용.

GPL/AGPL Provenance (output)

카피레프트 출처 서명을 운반하는 모델 제안에 대한 출력 스테이지 플래그 — 모델이 카피레프트 학습 데이터를 생성된 코드에 다시 토해냈을 수 있다는 마커.

Insecure-API Advisory

프롬프트가 고위험 싱크 — eval( / exec( / os.system( / subprocess.run( / pickle.loads( / child_process.exec( — 를 참조할 때 보안 권고로 주석을 답니다. 비차단.
처음 세 개는 당신이 이미 아는 액션 — blockflag — 을 재사용합니다. Insecure-API Advisory는 annotate를 사용합니다: 요청을 거부하거나 마스킹하는 대신, 모델이 응답하기 전에 읽는 메모로 그것을 증강합니다. 동일한 프리미티브가 CVE/SBOM 장식을 구동합니다(아래).
code_security 프리셋은 결정적입니다 — 순수 정규식, 네트워크 호출 없음, 핫 경로에서 안전. 네트워크 스캐너(CVE 룩업, SBOM, SAST)는 프리셋이 아니라 별도의 외부 연결입니다. §3을 참조하세요.

2. Annotate — 트래픽을 변경하지 않고 모델에 경고하기

guardrail에 구성하는 액션은 block(호출 거부, HTTP 400), mask(매치 마스킹), flag(로깅만)입니다. 코드 보안은 내부적으로 네 번째 동작을 추가합니다: annotate, 차단도 마스킹도 하지 않습니다. annotate 규칙이 매치되면, 게이트웨이는 짧은 메모를 기록하고 릴레이가 그것을 업스트림에 시스템 권고로 주입합니다 — 따라서 모델은 응답하기 전에, 예를 들어, *“이 요청은 고위험 API(코드 eval, 셸 실행, 또는 안전하지 않은 역직렬화)를 참조합니다; 더 안전한 대안을 선호하세요”*라고 들립니다. 사용자의 텍스트는 결코 거부되지 않고 결코 재작성되지 않습니다.

하나의 구체적인 예

Insecure-API Advisory 프리셋을 guardrail에 적용하고 키에 연결합니다. 그 다음 위험한 싱크를 호출하는 코드를 보냅니다:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user",
       "content": "Refactor this: result = eval(user_supplied_expr)"}
    ]
  }'
요청은 변경되지 않고 통과합니다 — 동일한 콘텐츠, 동일한 모델 — 하지만 게이트웨이는 모델이 먼저 읽는 보안 권고를 앞에 붙입니다. 완성은 당신의 애플리케이션의 코드 변경 없이, 두 번째 왕복 없이 매개변수화된 API와 입력 검증으로 유도되어 돌아옵니다.
annotate는 다른 액션과 결합됩니다. 단일 guardrail이 시크릿을 마스킹 하고 동일한 요청에 주석을 달 수 있습니다 — 텍스트가 마스킹되고 메모가 한 패스에서 추가됩니다.

3. 외부 스캐너를 통한 CVE 및 SBOM 장식

권고 프리미티브는 일반화됩니다. 코드 보안 스캐너를 외부 벤더로 연결하면 그 발견 사항이 동일한 annotate 경로를 탑니다:
요청 텍스트에서 임포트와 매니페스트 핀을 추출하고 공개 OSV 취약점 데이터베이스에 대해 교차 참조합니다. 히트는 프롬프트를, 예를 들어, *“requests@2.0.0 has CVE-2014-1830 (HIGH). Fixed in 2.20.0.”*로 장식합니다 — 따라서 모델은 사용하도록 요청받은 패키지의 알려진 취약점에 대해 들립니다. 무료이고 인증이 없으므로, API 키 필드가 없습니다. 기본값은 annotate입니다; 대신 flag나 block으로 설정할 수 있습니다.
SBOM(소프트웨어 자재 명세서)이나 SAST(정적 분석) 스캐너를 임의의 외부 벤더를 연결하는 것과 동일한 방식으로 연결합니다 — base URL과 자격 증명, 암호화 저장되고 읽기 시 마스킹됨. 각 발견 사항은 안정적인 신원을 운반하므로, 이미 분류한 발견 사항이 모든 요청에서 다시 발동하지 않습니다.
외부 스캐너는 모든 고급 규칙과 동일한 페일 오픈 기본값을 따릅니다: 스캐너 오류나 타임아웃은 텔레메트리로 기록되고 요청은 계속됩니다. 놓친 스캔이 용납될 수 없는 정책의 경우 규칙에서 fail_openfalse로 설정하여 페일 클로즈하세요.

4. 시크릿 및 라이선스 규칙과 짝짓기

코드 보안 guardrail은 좀처럼 혼자 타지 않습니다. 흔한 형태는 몇 개의 규칙이 있는 하나의 guardrail입니다:
목표규칙
붙여넣은 자격 증명 차단.env / Secret-File Block (block)
인라인 시크릿 값 잡기Secrets Blocker (block)
카피레프트 코드 게이트License Compliance (flag)
위험한 싱크 유도Insecure-API Advisory (annotate)
그것들을 모두 하나의 이름이 지정된 정책에 추가하고, 당신의 코딩 에이전트의 키에 연결하면, 모든 요청이 검사됩니다 — 명백한 위반은 차단, 판단이 필요한 것은 주석, 나머지는 검토를 위해 플래그.
차단된 요청은 HTTP 400 guardrail_blocked를 반환하고 쿼터를 소모하지 않습니다 — 입력 스테이지 차단은 계량 전에 발동합니다. 또한 skip-retry로 표시되므로, 동일한 프롬프트를 다른 채널에 대해 다시 실행해도 그저 다시 차단될 뿐입니다. guardrail-blocked 오류를 참조하세요.

5. 구성하기 (콘솔 + 역할)

여기 모든 것은 릴레이 키가 아니라 콘솔에서 구성됩니다. 관리 라우트(/api/guardrail/*)는 sk- 릴레이 키가 아니라 당신의 세션 / 액세스 토큰으로 인증합니다. 읽기 — guardrail과 Matches 피드 나열 — 는 모든 워크스페이스 멤버에게 개방됩니다. 쓰기(생성 / 편집 / 삭제) 테스트 샌드박스는 Developer 역할 이상을 요구합니다: 샌드박스는 유료 모델 호출과 아웃바운드 벤더 요청을 발동할 수 있으므로, 쓰기처럼 게이팅됩니다.
1

guardrail 생성

콘솔에서 Guardrails → New guardrail을 엽니다. 분할 버튼은 당신을 템플릿 라이브러리로 떨어뜨립니다 — 시작점으로 Code security 프리셋을 선택하세요.
2

자유롭게 편집

프리셋은 씨앗이지 잠금이 아닙니다. 정규식을 튜닝하고, Secrets Blocker 규칙을 추가하고, 액션을 변경하세요. 키에 연결하기 전에 Test 탭을 사용하여 규칙이 샘플 텍스트에 대해 예상한 방식으로 발동함을 증명하세요.
3

키 연결

API 키에 guardrail을 설정하거나(guardrail_id), 워크스페이스 기본값으로 표시합니다. 바인딩은 게이트웨이의 키에 존재하므로, guardrail을 편집하면 연결된 모든 키가 다음 호출에서 이동합니다.
발견 사항은 워크스페이스 Matches 피드에 안착합니다(규칙 타입, 액션, 스테이지, 상세). 매치된 부분 문자열은 Log raw content가 켜져 있을 때 기록됩니다 — 기본적으로 꺼짐, 프라이버시 보수적 자세. 로깅 및 프라이버시를 참조하세요.

6. 다음으로 갈 곳