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( — 를
참조할 때 보안 권고로 주석을 답니다. 비차단.code_security 프리셋은 결정적입니다 — 순수 정규식, 네트워크 호출 없음,
핫 경로에서 안전. 네트워크 스캐너(CVE 룩업, SBOM, SAST)는 프리셋이 아니라
별도의 외부 연결입니다.
§3을 참조하세요.2. Annotate — 트래픽을 변경하지 않고 모델에 경고하기
guardrail에 구성하는 액션은 block(호출 거부, HTTP 400), mask(매치 마스킹), flag(로깅만)입니다. 코드 보안은 내부적으로 네 번째 동작을 추가합니다: annotate, 차단도 마스킹도 하지 않습니다. annotate 규칙이 매치되면, 게이트웨이는 짧은 메모를 기록하고 릴레이가 그것을 업스트림에 시스템 권고로 주입합니다 — 따라서 모델은 응답하기 전에, 예를 들어, *“이 요청은 고위험 API(코드 eval, 셸 실행, 또는 안전하지 않은 역직렬화)를 참조합니다; 더 안전한 대안을 선호하세요”*라고 들립니다. 사용자의 텍스트는 결코 거부되지 않고 결코 재작성되지 않습니다.하나의 구체적인 예
Insecure-API Advisory 프리셋을 guardrail에 적용하고 키에 연결합니다. 그 다음 위험한 싱크를 호출하는 코드를 보냅니다:3. 외부 스캐너를 통한 CVE 및 SBOM 장식
권고 프리미티브는 일반화됩니다. 코드 보안 스캐너를 외부 벤더로 연결하면 그 발견 사항이 동일한 annotate 경로를 탑니다:의존성 CVE 룩업 (OSV)
의존성 CVE 룩업 (OSV)
요청 텍스트에서 임포트와 매니페스트 핀을 추출하고 공개 OSV 취약점
데이터베이스에 대해 교차 참조합니다. 히트는 프롬프트를, 예를 들어,
*“requests@2.0.0 has CVE-2014-1830 (HIGH). Fixed in 2.20.0.”*로
장식합니다 — 따라서 모델은 사용하도록 요청받은 패키지의 알려진 취약점에
대해 들립니다. 무료이고 인증이 없으므로, API 키 필드가 없습니다.
기본값은 annotate입니다; 대신 flag나 block으로 설정할 수 있습니다.
SBOM 및 SAST 스캐너
SBOM 및 SAST 스캐너
SBOM(소프트웨어 자재 명세서)이나 SAST(정적 분석) 스캐너를 임의의 외부
벤더를 연결하는 것과 동일한 방식으로 연결합니다 — base URL과 자격
증명, 암호화 저장되고 읽기 시 마스킹됨. 각 발견 사항은 안정적인 신원을
운반하므로, 이미 분류한 발견 사항이 모든 요청에서 다시 발동하지
않습니다.
fail_open을 false로 설정하여
페일 클로즈하세요.
4. 시크릿 및 라이선스 규칙과 짝짓기
코드 보안 guardrail은 좀처럼 혼자 타지 않습니다. 흔한 형태는 몇 개의 규칙이 있는 하나의 guardrail입니다:| 목표 | 규칙 |
|---|---|
| 붙여넣은 자격 증명 차단 | .env / Secret-File Block (block) |
| 인라인 시크릿 값 잡기 | Secrets Blocker (block) |
| 카피레프트 코드 게이트 | License Compliance (flag) |
| 위험한 싱크 유도 | Insecure-API Advisory (annotate) |
5. 구성하기 (콘솔 + 역할)
여기 모든 것은 릴레이 키가 아니라 콘솔에서 구성됩니다. 관리 라우트(/api/guardrail/*)는 sk- 릴레이 키가 아니라 당신의 세션 / 액세스
토큰으로 인증합니다. 읽기 — guardrail과 Matches 피드 나열 — 는 모든
워크스페이스 멤버에게 개방됩니다. 쓰기(생성 / 편집 / 삭제) 와 테스트
샌드박스는 Developer 역할 이상을 요구합니다: 샌드박스는 유료 모델
호출과 아웃바운드 벤더 요청을 발동할 수 있으므로, 쓰기처럼 게이팅됩니다.
guardrail 생성
콘솔에서 Guardrails → New guardrail을 엽니다. 분할 버튼은 당신을
템플릿 라이브러리로 떨어뜨립니다 — 시작점으로 Code security
프리셋을 선택하세요.
자유롭게 편집
프리셋은 씨앗이지 잠금이 아닙니다. 정규식을 튜닝하고, Secrets Blocker
규칙을 추가하고, 액션을 변경하세요. 키에 연결하기 전에 Test 탭을
사용하여 규칙이 샘플 텍스트에 대해 예상한 방식으로 발동함을 증명하세요.
발견 사항은 워크스페이스 Matches 피드에 안착합니다(규칙 타입, 액션,
스테이지, 상세). 매치된 부분 문자열은 Log raw content가 켜져 있을 때
만 기록됩니다 — 기본적으로 꺼짐, 프라이버시 보수적 자세.
로깅 및 프라이버시를
참조하세요.
6. 다음으로 갈 곳
- 시크릿 차단 — 요청 인자의 자격 증명 값을 잡는 동반 규칙.
- 액션 — block, mask, flag, annotate, spotlight를 심층적으로.
- 컴플라이언스 로거 — 모든 코드 보안 발견 사항의 불변 기록을 유지합니다.
- 테스트 및 평가 — 출시하기 전에 당신의 정책이 알려진 나쁜 코드를 잡는지 증명합니다.
- Guardrails 레퍼런스 — 전체 엔진.
- AI 에이전트 보안 — 코드 보안 레일이 제로 트러스트 제어 스택에서 맞는 곳.
