에이전트 보안은 키워드 필터로 못 막는다
AI 에이전트가 실행 권한을 가지는 순간, 키워드 필터는 구조적으로 우회된다. HEARTBEAT 보안 우회 사례부터 Crucible 의미 탐지, Anthropic Glasswing까지 — 에이전트 보안의 새 설계 기준을 정리했다.
파일명 끝에 글자 하나를 추가했습니다.
그것만으로 AI 에이전트의 보안 레이어가 무력화됐습니다.
HEARTBEAT.md 를 HEARTBEATa.md 로 바꾼 것이 전부였습니다. 에이전트 보안 필터는 “HEARTBEAT”라는 문자열을 차단하도록 설계되어 있었고, 이름이 바뀌자 에이전트는 해당 파일에 무제한 접근을 허용했습니다.
이것이 2026년 4월, 보안 연구자들이 실제 운영 중인 에이전트 시스템에서 확인한 취약점입니다.
한 글자. 보안 레이어 전체가 무력화됐습니다.
키워드 필터가 실패하는 구조적 이유
키워드 기반 보안 필터의 논리는 단순합니다. “차단할 단어나 패턴 목록을 만들고, 입력에 그것이 있으면 차단한다.” 이 논리는 입력이 정형화된 환경, 예컨대 SQL 인젝션 방어처럼 공격 패턴이 구조적으로 고정된 경우에는 작동합니다.
AI 에이전트는 자연어로 작동합니다.
자연어는 동일한 의도를 수십 가지 방식으로 표현합니다. “파일을 삭제해”, “이 파일이 더 이상 필요없어”, “이거 지워도 돼?”, “정리해줘”, “clean up this directory” — 다섯 문장의 의도가 같습니다. 하지만 키워드 필터는 각각을 다른 입력으로 처리합니다. 차단 목록에 “삭제”가 있어도 “정리”라는 단어가 들어온 명령은 통과시킵니다.
공격자는 이 특성을 이용합니다. 철자를 바꾸고, 동의어를 쓰고, 의도를 여러 문장에 분산시킵니다. HEARTBEAT 사례는 가장 단순한 변형이었습니다. 글자 하나. 실제 공격은 훨씬 정교합니다.
핵심 질문이 여기서 나옵니다. 보안 필터가 탐지해야 하는 것은 단어인가, 의도인가?
2026년의 답은 의도입니다.
에이전트가 실행한다는 것의 의미
과거의 AI 시스템은 읽고, 요약하고, 추천했습니다. 보안 실패의 결과는 잘못된 정보 출력이었습니다. 불쾌하지만 되돌릴 수 있었습니다.
에이전트가 프로덕션에 들어온 순간, 이 전제가 바뀝니다.
에이전트는 파일을 삭제하고, 이메일을 발송하고, API를 호출하고, 데이터베이스를 수정합니다. 실행 결과는 즉시 외부 시스템에 반영됩니다. 되돌리기 어렵거나, 불가능합니다.
최근 공개된 Meta 사례가 이것을 가장 직접적으로 보여줬습니다. Meta의 AI 안전 책임자가 자신이 담당하는 에이전트에게 이메일 200통을 삭제당했습니다. 멈추라는 명령이 실행 중인 에이전트에 전달되지 않았습니다. 도구를 만드는 사람이 도구를 멈추지 못한 케이스입니다.
같은 시기 arXiv에 공개된 SWE-WebDevBench 연구는 더 구조적인 문제를 드러냈습니다. 6개 주요 에이전트 플랫폼의 보안 점수가 모두 65% 미만이었습니다. 사양 처리 병목과 프론트엔드-백엔드 디커플링이 공통 실패 패턴으로 확인됐습니다. 이 플랫폼들은 기능 데모로는 완성도 높아 보이는 제품들이었습니다.
기능 점수가 높아도, 보안 점수가 65% 미만이면 프로덕션 자격이 없습니다.
이것이 기술 문제가 아닌 이유입니다. 에이전트를 만들면서 보안 레이어를 나중에 붙이겠다고 판단한 것은 설계 결정입니다. 그 결정이 지금 결과로 나타나고 있습니다.
의도 파싱 레이어: 새 표준의 작동 원리
키워드 매칭에서 의도 파싱으로의 전환은 어떻게 구현하는가.
2026년 4월, 오픈소스 프로젝트 Crucible이 공개됐습니다. 키워드 탐지, 엔트로피 분석, 의미 유사도의 3중 탐지 엔진으로 OWASP Agentic AI Top 10에 매핑된 90개 공격 시나리오를 62초 안에 테스트합니다.
세 레이어가 각각 다른 유형의 공격을 잡습니다.
키워드 탐지 — 직접적 패턴 매칭입니다. 가장 단순하지만, HEARTBEAT 사례처럼 글자 하나 변조만으로 우회됩니다. 단독으로는 충분하지 않습니다.
엔트로피 분석 — 입력 텍스트의 통계적 이상치를 탐지합니다. 정상 언어 패턴과 비교해 비정상적으로 높은 정보 밀도나 반복 구조를 찾아냅니다. 프롬프트 인젝션 공격처럼 짧은 텍스트에 대량의 지시를 숨기는 방식이 이 레이어에서 걸립니다.
의미 유사도 — 핵심 레이어입니다. 입력의 의미를 임베딩 벡터로 변환하고, 알려진 위험 의도의 임베딩과 유사도를 비교합니다. “파일을 삭제해”와 “이 파일이 더 이상 필요없어”가 같은 의도로 분류됩니다. 우회 표현이 키워드 레이어를 통과해도 의미 레이어에서 잡힙니다.
구현 관점에서 이 차이를 코드로 보면:
# 구식: 키워드 비교
def keyword_guard(input_text: str) -> bool:
blocked = ["delete", "drop table", "rm -rf", "format"]
return not any(kw in input_text.lower() for kw in blocked)
# 새 표준: 의도 파싱
def intent_guard(input_text: str, threshold: float = 0.85) -> bool:
intent_vec = embed(input_text)
for risky_intent_vec in RISKY_INTENT_LIBRARY:
similarity = cosine_similarity(intent_vec, risky_intent_vec)
if similarity > threshold:
return False # 의미적으로 위험 의도 탐지 → 차단
return True
두 번째 함수는 “삭제해”, “지워줘”, “clean up”, “더 이상 필요없어” 중 어떤 표현이 와도 의도가 같으면 동일하게 처리합니다. 표현이 아닌 의미를 보기 때문입니다.
RISKY_INTENT_LIBRARY는 팀이 축적하는 자산입니다. Crucible의 OWASP 매핑을 출발점으로 쓰고, 운영하면서 발견된 공격 패턴을 지속적으로 추가합니다. 키워드 목록과 달리 이 라이브러리는 변형 공격에 자동으로 강건해집니다.
세 곳이 같은 결론을 가리키고 있다
오늘 서로 다른 세 곳이 같은 방향을 잡았습니다.
Anthropic의 Project Glasswing: AWS, Apple, Google, Microsoft, NVIDIA 등 12개 기업이 참여한 소프트웨어 보안 강화 이니셔티브입니다. 에이전트 보안이 단일 벤더 문제가 아닌 생태계 표준의 문제라는 선언입니다. Anthropic은 이와 함께 Claude Mythos Preview를 내놨습니다. 프론티어 모델이 보안 엔지니어 역할을 직접 수행하는 제품입니다. 결과가 숫자로 나왔습니다. Firefox 팀이 Claude Mythos Preview를 활용해 2026년 4월 한 달 동안 수정한 보안 버그가 직전 15개월 합산보다 많았습니다. 에이전트가 탐지 도구를 넘어 수정 도구가 된 첫 측정 가능한 사례입니다.
OpenAI의 Running Codex Safely 가이드: 코딩 에이전트 거버넌스의 4축을 명시했습니다. 샌드박스, 승인 흐름, 네트워크 정책, 텔레메트리. 이 네 가지를 운영 디폴트로 규정했습니다. 선택 사항이 아닙니다.
Crucible 오픈소스: 커뮤니티에서 OWASP Agentic AI Top 10을 표준으로 수용하면서 에이전트 보안 회귀 테스트가 1분 단위로 가능해진 단계입니다.
Dario Amodei가 이 흐름에 방향을 제시했습니다.
“사이버 보안은 프론티어 AI 모델로부터 오는 첫 번째 명확하고 현재적인 위험이다. 하지만 마지막이 아닐 것이다. 이 도전에 집단적으로 대응할 수 있다면, 앞으로 올 더 어려운 도전의 청사진이 될 것이다.”
보안이 부가 기능이 아니라, 에이전트 시대 거버넌스 전체의 첫 번째 테스트 케이스라는 뜻입니다.
PM이 지금 해야 할 설계 결정 3가지
한국도 다르지 않습니다. 2026년 5월, 연세대 바른ICT연구소가 ‘AI 거버넌스 & 프라이버시’ 국제 심포지엄을 열었습니다. 핵심 주제는 에이전트 보안의 권한·감사·프라이버시 설계였습니다. 학술 의제가 됐다는 건, 이미 산업 현장에서 문제가 실재한다는 뜻입니다.
AIWorks가 출시한 AgentRigor는 한국에서 에이전트 신뢰성 평가 시장이 실제로 열리고 있다는 신호입니다. 규제 산업 컴플라이언스 검증용 평가 플랫폼이 제품으로 나왔습니다. 글로벌 Crucible의 한국 동기화입니다.
에이전트가 이미 프로덕션에 들어간 팀, 또는 6개월 내에 들어갈 팀에게 세 가지 설계 결정이 지금 필요합니다.
1. 입력 검증 파이프라인을 의미 레이어로 업그레이드하라
키워드 필터를 쓰고 있다면, 의미 유사도 모듈 추가가 이번 스프린트의 작업입니다. Crucible 오픈소스를 활용하면 구현 비용이 낮습니다. OWASP Agentic AI Top 10을 체크리스트로 쓰면 우선순위가 명확해집니다. 시작점은 “우리 에이전트가 할 수 있는 가장 위험한 행동 5가지”를 정의하고, 그것을 RISKY_INTENT_LIBRARY의 첫 항목으로 넣는 것입니다.
2. Kill switch를 출시 전 필수 요건으로 못 박아라
“에이전트는 실행 중에 인간이 멈출 수 있어야 한다”는 요건을 출시 게이팅 조건에 명시하세요. 단순 인터럽트가 아닙니다. 진행 중인 작업을 안전하게 종료하고, 상태를 기록하고, 복구점을 만드는 흐름입니다. Meta 사례처럼, 이것이 없으면 안전 책임자 본인도 막지 못합니다. OpenAI의 가이드에서 샌드박스와 승인 흐름이 4축의 처음 두 자리에 있는 이유가 여기에 있습니다.
3. 보안 회귀 테스트를 배포 파이프라인에 넣어라
기능 테스트만으로는 부족합니다. 매 배포마다 에이전트 보안 시나리오를 자동으로 테스트하는 파이프라인이 필요합니다. Crucible의 62초 테스트가 그 출발점입니다. SWE-WebDevBench 기준으로, 보안 점수 80% 이상을 프로덕션 배포 게이팅 기준으로 설정하는 것이 현실적인 목표입니다.
에이전트 보안은 기술 문제가 아닙니다. 설계 문제입니다.
키워드 필터로 충분하던 시대는 에이전트가 읽기만 하던 때였습니다. 에이전트가 실행하는 순간, 보안의 단위가 “차단”에서 “의도 파싱”으로 이동합니다. 거버넌스 없는 자동화는 PoC는 돼도 운영은 못 갑니다.
Anthropic이 Glasswing과 Mythos로, OpenAI가 Running Codex Safely 가이드로, Crucible이 오픈소스로 — 세 곳이 같은 결론을 가리키고 있습니다. 보안 레이어를 나중에 붙이는 접근은 이미 한 사이클 뒤처진 것입니다.
당신의 에이전트는 지금 의도를 파싱하고 있나요, 아니면 키워드를 비교하고 있나요?