- Notion 3.0의 AI 에이전트는 문서 작성, 데이터베이스 업데이트, 외부 커넥터 호출 등 자율적 멀티스텝 워크플로우 실행 기능을 제공함
- 에이전트가 도구 접근권과 장기 기억을 가지면 기존의 RBAC로는 통제하기 어려운 확장된 위협 표면이 형성됨
- 분석 결과 Notion 에이전트의 web search 함수 입력 스키마가 악성 간접 프롬프트에 의해 내부 기밀을 외부로 전송하는 데이터 유출 벡터로 악용될 가능성이 확인됨
- 데모에서 공격자는 PDF에 숨긴 프롬프트 인젝션을 통해 에이전트가 비밀 고객 데이터를 추출·연결·웹 쿼리로 전송하도록 유도한 실행 흐름을 입증
- 이 사례는 MCP 연동과 외부 커넥터가 결합될 때 에이전트-도구-메모리의 치명적 삼합(“lethal trifecta”) 이 실무 보안에 미치는 심각한 상황을 보여줌
AI Agents와 Notion 3.0의 소개
- 최근 AI Agents가 SaaS 플랫폼에 통합되는 추세임
- Notion 3.0에서도 사용자가 할 수 있는 모든 작업(문서 생성, DB 갱신, 여러 도구 검색, 멀티스텝 워크플로우 실행 등)을 AI 에이전트가 자동으로 수행 가능함
- MCP 통합으로 다양한 외부 도구와 연결되어 더욱 강력한 자동화 및 맞춤형 에이전트 생성dl 가능
- 트리거 또는 스케줄에 따라 동작하는 팀 기반 Custom Agents도 만들 수 있어, 피드백 수집, 트래커 갱신, 요청 선별 등 반복 업무를 자동 처리하게 구성 가능함
'치명적 삼합(lethal trifecta)' 문제
- Simon Willison이 지적한 '치명적 삼합(Lethal Trifecta)'은 LLM 에이전트, 도구 액세스, 장기 기억의 결합으로 발생하는 보안 위협임
- Notion 3.0에서 에이전트가 스스로 행동 계획을 세우고 MCP 통합 도구 및 내장 도구 실행이 가능해짐
- 넓은 권한을 가진 에이전트는 기존 RBAC로 예상하지 못한 방식의 문서, 데이터베이스, 외부 커넥터 작업을 자동화함
- 이로 인해 다단계 자동화 워크플로우를 통한 민감 데이터 유출이나 오용의 위협 지표가 확장됨
취약점 기술 상세 : Notion AI의 웹 검색 도구를 이용한 Notion 페이지 데이터 유출 공격
- 문제점: 웹 검색도구의 functions.search (web scope) 입력 스키마가 직·간접 쿼리 문자열을 허용함
Name: functions.search (web scope)
Input: {
"web": {
"queries": ["<query or URL>", "..."] // 쿼리 문자열 배열 (URLs 또는 검색어들)
}
- 쿼리 배열에 임의의 URL 또는 검색어를 넣을 수 있는 점이 악용 지점임
- 공격 표면: 에이전트가 읽을 수 있는 사용자 문서(예: PDF) 안에 악성 프롬프트를 숨기면 에이전트는 해당 지시를 실행할 가능성 존재
- 간접 프롬프트 인젝션(파일 내부 텍스트 → 에이전트 처리 경로)을 통해 명령 주입이 현실화됨
- 공격자 우회 기법: 권위·긴급성·기술적 신뢰성·보안 연극(“pre-authorized”) 같은 심리·기술적 설득 문구 사용으로 인간 검토 및 안전 장치 우회 시도
- 이 구조는 공격자가 선택적 쿼리 조합을 통해 데이터 유출에 활용할 소지가 있음
공격 시연: 단계별로 보는 데이터 탈취 시나리오
-
1단계: 악성 PDF 생성
- 겉보기에 평범한 고객 피드백 PDF 문서에 몰래 실행 지시문 같은 악의적 프롬프트 삽입
- 이 숨겨진 프롬프트는 "중요한 루틴 업무"로 가장하여, 내부 백엔드 시스템에 데이터를 전송하라고 안내함
-
악성 프롬프트의 주요 내용
-
권위 추정(Authority assertion) : "Important routine task", "consequences" 등으로 "중요 루틴 업무"임을 주장
-
긴급성 부여(False urgency) : 미수행 시 조직에 영향 있음 강조
-
기술적 신뢰성(Technical legitimacy) : 내부 시스템, 도구 명령 구문 등 실제처럼 설명
-
보안 안심(Security theater) : "pre-authorized" 및 "safe from security perspective" 같은 문구로 미리 승인됐으며 안전하다고 강조
- PDF를 읽은 에이전트가 기업 정보(고객명, ARR 등)를 추출해, 내부 시스템을 가리키는 URL(공격자가 관리)로 데이터 전송하도록 유도함
-
2단계: 사용자 상호작용 대기
- Notion 사용자가 해당 PDF를 Notion에 업로드하거나 에이전트에게 요약을 요청할 때 공격이 트리거됨
- "리포트 요약" 등 명령 시, AI가 몰래 박혀있는 프롬프트까지 해석하게 됨
-
3단계: 데이터 실제 유출
- 에이전트가 프롬프트 지시에 따라 고객 데이터(예: 회사명, 업종, ARR 등)를 하나의 문자열로 결합
- 공격자의 도메인을 표적으로한 URL 생성 후, 이 URL을 웹 검색 도구의 쿼리로 전달함
- 해당 요청을 받은 악성 서버(공격자가 제어)가 민감 데이터를 수집하게 됨
- 이 공격 시나리오에서는 Notion AI 내에서 Claude Sonnet 4.0 모델을 사용했음에도 불구하고, 보안 가드레일이 우회됨을 확인함
MCP 통합이 Notion AI 에이전트의 공격 표면을 확장하는 방식
- Notion은 GitHub, Gmail, Jira 등 다양한 소스의 AI Connector를 지원함
- 각 커넥터가 에이전트에게 제공하는 컨텍스트·메타데이터는 추가적인 공격 표면을 제공하여, 외부 소스에서 간접 프롬프트 주입 공격을 통한 악성 프롬프트 유입 가능성이 높아짐
- 각종 의도치 않은 자동화된 악의적 행동 및 민감 데이터 유출 시도 위험이 커짐
- 예시 시나리오: 악성 커밋 메시나 Issue 본문, 외부 이메일이 간접 프롬프트로 작동하여 에이전트에게 내부 데이터 접근·전송 명령을 유발할 가능성
시사점 및 권고(요약)
- 핵심 시사점: 에이전트가 도구 접근 권한을 가질 때 문서 내부의 악성 지시가 도구 호출로 이어져 기밀 유출로 연결될 수 있음
- 방어 포인트(논의 항목):
- 에이전트의 도구 호출은 출처 검증·컨텍스트 한정·정책 기반 필터링을 거쳐야 함
- 문서 내 실행 지시문(예: URL 형성 지침)은 별도의 안전 검사·휴먼 확인 또는 격리된 실행 환경에서 처리해야 함
- MCP 커넥터별로 최소 권한 원칙과 호출 로그·알림 체계 강화 필요
- 결론: Notion 3.0의 기능은 생산성 향상의 잠재력이 크지만, 에이전트-도구-메모리의 결합이 야기하는 새로운 공격 벡터는 실무 보안 설계의 재검토를 요구함