AI 안전장치는 규칙이 먼저입니다: 결정론 검사와 AI 판정을 나누는 법
AI를 업무에 쓰기 시작하면 팀장님의 걱정은 비슷한 곳으로 모입니다. 직원이 고객 정보를 프롬프트에 붙여 넣지 않을까, 외부 문서에 숨은 악의적 지시를 AI가 그대로 따르지 않을까 하는 걱정입니다. 그래서 많은 팀이 AI에게 "이 요청이 위험한가?"를 묻는 검사관을 하나 세웁니다.
문제는 모든 요청을 이 검사관 한 명에게 맡기는 순서입니다. 형식이 틀린 입력이나 금지된 주소처럼 눈으로 보면 바로 알 수 있는 위반까지 AI의 판단에 맡기면, 검사는 느려지고 비용이 늘며 판단이 흔들릴 여지도 커집니다.
이 글의 결론은 순서를 바꾸자는 것입니다. 규칙으로 걸러 낼 수 있는 위반은 규칙이 먼저 막고, 규칙으로 가려지지 않는 애매한 요청만 AI 판정에 넘기십시오. 그리고 "위험 점수 하나"로 통과 여부를 정하는 관문은 믿고 맡기기 어렵다는 점도 함께 짚습니다.
위험 점수 하나로 통과시키면 생기는 일
위험 점수 방식은 요청마다 0에서 100 같은 점수를 매기고, 기준선을 넘으면 막고 넘지 않으면 통과시키는 구조입니다. 설명하기 쉽고 도입하기도 쉬워서 처음 만드는 안전장치로 자주 쓰입니다.
2026년 10월 arXiv에 올라온 AI 에이전트 보안 연구는 이 방식의 약점을 보여 줍니다. 연구진이 밝힌 약점 가운데, 위험 점수로 승인 여부를 정하는 게이트는 공격 제안 대부분을 승인했고, 정상 제안은 소수만 승인했습니다. 막아야 할 것은 통과시키고 통과시켜야 할 것은 막은 셈입니다.
여기서 읽을 점은 두 가지입니다. 점수 하나로 "공격 같은 말투"와 "정상적인 업무 요청"을 가르기는 생각보다 어렵습니다. 그리고 이 약점은 연구진이 직접 밝힌 한계이니, 어느 한 가지 방식을 만능으로 믿지 말라는 신호로 받아들이는 편이 안전합니다.
모델의 똑똑함에만 기대는 설계의 한계는 블로그의 AI 에이전트 보안, 더 똑똑한 모델로는 막을 수 없다 글에서 따로 다뤘습니다. 이 글은 한 걸음 더 들어가, 규칙과 AI 판정이 각각 무엇을 맡아야 하는지에 집중합니다.
규칙 검사와 AI 판정은 성격이 다릅니다
먼저 용어를 정리합니다. 이 글에서 규칙 검사(결정론적 검사)는 같은 입력을 넣으면 언제나 같은 결과가 나오는 고정된 검사를 뜻합니다. 입력 길이가 기준을 넘는지, 주소가 허용 목록에 있는지, 주민등록번호 모양의 숫자가 들어 있는지를 확인하는 일이 여기에 속합니다.
AI 판정은 문장의 의도와 맥락을 읽고 판단하는 검사입니다. "이 요청은 겉으로는 평범하지만 사실은 정보를 빼내려는 것 같다"처럼 규칙으로 쓰기 어려운 판단을 맡습니다. 대신 같은 입력에도 결과가 달라질 수 있고, 호출할 때마다 시간과 비용이 듭니다.
두 검사는 장단점이 거울처럼 반대입니다. 규칙은 빠르고 결과가 일정하지만 규칙에 없는 속임수에는 속습니다. AI 판정은 속임수의 낌새를 읽을 수 있지만 느리고 흔들립니다. 그래서 무엇을 어느 쪽에 맡길지가 설계의 핵심이 됩니다.
공항 검색대처럼 줄을 세웁니다
이 역할 나누기는 공항 검색대에 비유하면 쉽습니다. 공항은 모든 승객을 보안 요원이 한 사람씩 면담하지 않습니다. 금속 탐지기가 먼저 명백한 위험 물품을 가려내고, 탐지기만으로 판단하기 어려운 경우에만 요원이 직접 확인합니다.
앞의 연구가 구현한 방어 구조 DEFER1이 이 순서를 따릅니다. 이름은 "규칙을 먼저 적용하고, 남은 판단만 판정자에게 넘긴다"는 뜻을 줄인 것입니다. 28개의 규칙 검사를 차례로 통과시키고, 규칙으로 가려지지 않은 요청만 4명으로 구성된 AI 판정자 패널에 넘깁니다.
연구진이 4개 영역에서 독립적으로 시험한 결과, 공격 성공률이 약 30.0%에서 약 3.0%로 떨어졌습니다. 막아 낸 공격의 78%는 규칙 검사 단계에서 걸러졌습니다. 보안 운영 영역에서는 전체 제안의 4분의 1만 AI 판정자에게 도달했습니다.
연구진은 이 결과를 이렇게 해석합니다. 명확한 정책을 어기는 공격은 규칙이 막고, 의도를 속이는 공격만 판정자가 다룹니다. 판정자에게 가는 일감이 줄어드니 AI 판정은 정말 판단이 필요한 요청에 집중할 수 있습니다. 앞단의 규칙이 막아 주는 만큼 뒷단의 부담이 줄어드는 구조입니다.
다만 읽을 때 조심할 점이 있습니다. 위 수치는 이 연구가 정한 시험 환경에서 나온 결과이고, 여기서 확인한 자료는 논문 초록입니다. 우리 팀의 업무에서 같은 비율이 나온다는 뜻은 아닙니다. 초록에서는 비용이 얼마나 줄었는지도 확인되지 않았으므로 이 글에서는 비용 절감 수치를 말하지 않습니다. 또 연구진은 규칙 방식과 판정 방식 모두에 약점이 있다고 밝혔습니다.
규칙을 앞에 두고 위험을 먼저 막는 설계는 블로그의 AI 보안 Fail-Closed 전략 글과 이어집니다. 두 글을 함께 읽으면 "막는 순서"와 "막지 못했을 때의 안전한 기본값"을 같이 볼 수 있습니다.
잘못된 구성과 바람직한 구성을 비교해 봅니다
팀에서 흔히 만드는 구성과 규칙을 먼저 세우는 구성을 나란히 놓으면 차이가 선명합니다.
- 잘못된 구성: 모든 요청을 AI에게 보내 위험 점수를 받고, 점수가 낮으면 통과시킵니다. 형식 오류, 금지 주소, 개인정보 패턴도 AI가 판단합니다. 점수 하나가 곧 판결이 됩니다.
- 바람직한 구성: 형식·허용 목록·패턴 검사를 먼저 돌립니다. 여기서 걸린 요청은 AI를 부르지 않고 멈춥니다. 남은 애매한 요청만 AI 판정에 보내고, 판정은 점수 하나가 아니라 확인 항목별로 이유를 남깁니다.
두 번째 구성이 항상 정답이라고 단정할 수는 없습니다. 그래도 명백한 위반을 AI의 기분에 맡기지 않는다는 점에서 점검과 책임 소재가 훨씬 분명해집니다. 어떤 요청이 왜 막혔는지 기록으로 설명할 수 있기 때문입니다.
우리 팀에 적용하는 5단계 체크리스트
코드를 짤 줄 몰라도 업무 흐름을 설계하는 위치에 계시다면 아래 순서로 현재 구성을 점검해 볼 수 있습니다. 구체적인 도구는 팀 상황에 따라 달라지므로, 여기서는 무엇을 점검할지만 적습니다.
- 입력 형식부터 검사합니다. 글자 수 제한, 필수 항목 누락, 주문번호 같은 정해진 자릿수를 확인하는 일은 AI에게 묻지 않고 규칙으로 처리합니다. 형식이 맞지 않으면 AI를 부르기 전에 돌려보냅니다.
- 허용 목록을 둡니다. AI가 열어볼 수 있는 웹 주소, 파일 위치, 사용할 수 있는 도구를 미리 적어 둔 목록 안으로 제한합니다. 목록에 없으면 막는다는 단순한 규칙이 가장 설명하기 쉬운 안전장치입니다.
- 정해진 모양의 정보는 패턴으로 잡습니다. 주민등록번호나 카드번호처럼 모양이 일정한 개인정보와 시스템을 조작하려는 정해진 문구는 사전에 등록해 입력 단계에서 막습니다.
- 애매한 요청만 AI 판정으로 보냅니다. 앞의 세 단계를 통과한 요청 가운데 의도가 불분명한 것만 판정에 넘깁니다. 판정 결과는 점수 하나로 줄이지 말고 "무엇이 왜 걱정되는지"를 항목별로 받으십시오. 이 단계에는 사람의 확인 절차를 함께 두는 방법도 고려할 만합니다.
- 기록을 나눠서 봅니다. 규칙 단계에서 걸러진 건수와 AI 판정 단계에서 걸러진 건수를 따로 적어 둡니다. AI 판정에서 자주 잡히는 유형이 있다면 규칙으로 옮길 수 있는지 한 달에 한 번 점검합니다.
이 다섯 단계를 한꺼번에 도입할 필요는 없습니다. 지금 팀의 AI 흐름에서 규칙 없이 AI에게 맡기고 있는 항목을 한 가지만 찾아, 그 항목 앞에 규칙 하나를 세우는 것이 시작점으로 삼기 좋습니다.
정리
안전장치의 순서가 결과를 바꿉니다. 규칙은 명백한 위반을 빠르고 일정하게 막고, AI 판정은 의도를 숨긴 요청을 읽는 데 씁니다. 위험 점수 하나에 통과 여부를 맡기는 관문은 연구에서 공격 제안 대부분을 통과시킨 약점을 보였습니다.
이 구조를 설계 원칙으로 확장한 내용은 저희 연구소가 쓴 책 『팀장님, 그 프롬프트가 회사를 망칩니다』의 'Fail-Closed 다중 방어 설계' 장에 실려 있습니다.
