LLM (대규모 언어 모델)을 활용한 AI 에이전트에게 사내 API 호출, 데이터베이스 접근, 브라우저 자동 조작 등의 실행 권한을 부여하는 사례가 늘고 있습니다.
한편, 기존의 웹 애플리케이션이나 배치 처리와는 달리, Prompt Injection (프롬프트 인젝션)이나 자율적인 판단 실수로 인해 의도치 않은 데이터 업데이트/삭제 또는 기밀 정보 유출이 발생할 위험이 존재합니다.
-
AI 에이전트에게 조작 권한을 부여할 때의 보안 설계 원칙
-
도입 전에 확인해야 할 보안 체크리스트
-
Python을 사용한 Human-in-the-Loop (인간의 승인) 및 안전한 Tool 호출 구현 예시
-
사내 시스템에 AI 에이전트(LangChain, LlamaIndex, 자체 제작 에이전트 등) 도입을 검토 중인 엔지니어/아키텍트
-
REST API나 데이터베이스 연동을 포함하는 LLM 애플리케이션 설계자
Direct / Indirect Prompt Injection
외부 입력 데이터나 참조 문서에 포함된 악의적인 지시로 인해 에이전트가 시스템 관리자의 의도와 다른 Tool(API)을 호출할 위험.
- 과도한 권한 부여 (Excessive Agency)
에이전트에게 단일하고 강력한 API 키나 서비스 계정 권한을 부여한 결과, 모든 데이터 열람 및 변조가 가능해지는 위험.
- 비결정적 동작으로 인한 오작동
모델의 출력 흔들림(fluctuation)으로 인해 예상치 못한 인수로 파괴적인 API가 실행될 위험.
운영 환경이나 사내 환경에 배포하기 전에, 다음 항목들을 확인해야 합니다.
-
에이전트 고유의 초권한 계정이 아닌, 실행 사용자 ID를 위임하여 처리하고 있는지 (OAuth 2.0 Token Exchange 등)
-
최소 권한의 원칙(Principle of Least Privilege)에 따라 읽기 전용 API와 업데이트용 API가 명확히 분리되어 있는지
-
Tool에 전달되는 인자(Argument) (JSON schema 등)가 타입 판별 및 검증 처리(validation process)를 거치는지
-
에이전트가 획득한 외부 텍스트(이메일, 웹페이지 등)를 그대로 시스템 프롬프트에 연결하고 있지 않은지
-
데이터 삭제/업데이트, 고액 트랜잭션 등의 파괴적 작업 전에 “Human-in-the-Loop (인간의 승인)” 단계를 거치는 구조인지
-
1회 작업 실행 시 Tool 호출 횟수나 타임아웃 상한이 설정되어 있는지
-
“사용자 입력”, “LLM 사고 과정 로그”, “실제 호출된 Tool 이름 및 인자”, “실행 결과”가 추적 가능한 상태로 보존되는지
다음은 AI 에이전트가 API를 실행하기 전에, 위험도가 높은 작업(예: 사용자 삭제나 데이터 업데이트)을 감지하고 인간의 승인 단계를 거치도록 하는 기본적인 백엔드 구현 예시입니다.
※ 이 코드는 개념을 보여주기 위한 구현 예시입니다. 실제 운영 환경에 도입할 때는 프레임워크 사양이나 환경에 맞춰 필요한 오류 처리 및 인증을 추가해야 합니다.
import json
from typing import Dict, Any, Callable
# 자체 정의 Tool 실행 제어 클래스 구조 예시
...
“절대로 다른 데이터를 삭제하지 마세요”와 같은 시스템 프롬프트 지시는 Prompt Injection에 의해 돌파될 가능성이 있습니다. 권한 통제 및 입력 검사는 반드시 프로그램 측면(백엔드 또는 API 게이트웨이)에서 실시해야 합니다.
LLM과의 상호작용이나 Tool 호출 인자에는 개인 식별 정보(PII)가 포함될 수 있습니다. 로그를 출력하거나 저장할 때는 기밀 정보가 포함되지 않도록 필터링 또는 마스킹을 수행하는 설계가 필요합니다.
사용하는 LLM 프레임워크나 API 사양은 빈번하게 업데이트됩니다. 사용 중인 라이브러리나 모델의 표준 기능(Function Calling 사양 등)을 사용할 경우에는 항상 최신 공식 문서를 참조해야 합니다.
AI 에이전트에게 사내 시스템 조작 권한을 부여할 때는 단순히 프롬프트를 조정하는 것에 그치지 않고, **“최소 권한 부여”, “입력/인자 검증”, “중요 작업에 대한 Human-in-the-Loop 통합”**과 같은 시스템적인 안전장치를 구축하는 것이 필수적입니다. 본 기사의 체크리스트와 구현 패턴을 기반으로 견고한 에이전트 기반을 설계하시기 바랍니다.