설명 (Description)
멀티 에이전트 시스템(Multi-Agent Systems)은 자율적인 에이전트들 간의 지속적인 통신에 의존한다.
이러한 통신은 다음과 같은 방식으로 이루어진다.
- API
- 메시지 버스 (Message Bus)
- 공유 메모리
이 구조는 공격 표면(Attack Surface)을 크게 확장시킨다.
또한 다음과 같은 특성 때문에 보안이 더 어려워진다.
- 분산형 아키텍처
- 서로 다른 수준의 자율성
- 에이전트 간 신뢰 수준의 차이
이 때문에 전통적인 경계 기반 보안(Perimeter Security) 모델은 효과적이지 않다.
취약점의 정의
Insecure Inter-Agent Communication은 에이전트 간 통신에서 다음 보안 요소가 부족할 때 발생한다.
- 인증(Authentication)
- 무결성(Integrity)
- 기밀성(Confidentiality)
- 권한 제어(Authorization)
이러한 보호가 없으면 공격자는 다음을 수행할 수 있다.
- 메시지 가로채기 (Interception)
- 메시지 위조 (Spoofing)
- 메시지 변조 (Manipulation)
- 메시지 차단 (Blocking)
이 위협은 여러 계층에서 발생할 수 있다.
- 전송 계층 (Transport)
- 라우팅 계층 (Routing)
- 서비스 탐색 계층 (Discovery)
- 의미적 계층 (Semantic Layer)
또한 다음과 같은 사이드 채널 공격도 포함된다.
- 타이밍 분석
- 행동 패턴 분석
이를 통해 에이전트의 데이터나 의사결정을 추론할 수 있다.
다른 취약점과의 차이
ASI03 (Identity & Privilege Abuse)
- 자격 증명 및 권한 오용에 초점
ASI06 (Memory & Context Poisoning)
- 저장된 메모리 및 지식 오염
ASI07
- 에이전트 간 실시간 메시지 자체를 공격
결과적으로 다음 문제가 발생할 수 있다.
- 잘못된 정보 전달
- 권한 혼란
- 분산 에이전트 시스템 전체의 조작
관련 위협 매핑
Agentic Threats & Mitigations에서 다음과 대응된다.
- T12 – Agent Communication Poisoning
- T16 – Insecure Inter-Agent Protocol Abuse
취약점의 일반적인 사례 (Common Examples)
1️⃣ 암호화되지 않은 통신 채널
암호화되지 않은 메시지를 MITM 공격자가 가로채고 숨겨진 명령을 삽입할 수 있다.
결과:
- 에이전트 목표 변경
- 의사결정 조작
2️⃣ 메시지 변조로 인한 컨텍스트 오염
메시지를 수정하거나 삽입하여 에이전트 간 작업 경계를 흐리게 만들고 데이터 유출 또는 목표 혼란을 유발한다.
3️⃣ Replay 공격
이전에 전송된 위임 메시지 또는 신뢰 메시지를 재사용하여 에이전트가 이미 만료된 권한을 다시 승인하게 만든다.
4️⃣ 프로토콜 다운그레이드 및 Descriptor 위조
공격자가 다음을 수행한다.
- 약한 통신 프로토콜 사용 강제
- 에이전트 descriptor 위조
결과:
- 악성 명령이 정상 메시지처럼 보이게 된다.
5️⃣ 메시지 라우팅 공격
서비스 탐색(Discovery) 과정에서 트래픽을 조작하여 악성 에이전트와 연결되도록 유도한다.
6️⃣ 메타데이터 분석 공격
트래픽 패턴 분석을 통해 다음을 파악할 수 있다.
- 에이전트 의사결정 주기
- 에이전트 관계 구조
이를 이용해 공격자가 행동을 예측하거나 조작할 수 있다.
공격 시나리오 예시 (Example Attack Scenarios)
1️⃣ 암호화되지 않은 통신을 통한 Semantic Injection
HTTP 같은 인증되지 않은 채널에서 MITM 공격자가 메시지를 수정하여 에이전트가 편향된 결과를 생성하게 만든다.
2️⃣ 메시지 변조를 통한 신뢰 오염
에이전트 기반 거래 시스템에서 평판 메시지를 변조하여 잘못된 에이전트를 신뢰하도록 만든다.
3️⃣ Replay 공격을 통한 컨텍스트 혼란
이전의 긴급 협력 메시지를 재전송하여 오래된 프로세스를 실행하게 만든다.
결과:
- 리소스 오배분
4️⃣ 프로토콜 다운그레이드를 통한 목표 조작
암호화되지 않은 구형 프로토콜을 강제로 사용하게 만들어 공격자가 목표와 위험 파라미터를 삽입한다.
5️⃣ MCP Descriptor Poisoning
악성 MCP 서버가 위조된 agent descriptor를 광고하여 민감한 데이터를 공격자 인프라로 전달하도록 만든다.
6️⃣ A2A 등록 위조
공격자가 가짜 에이전트를 discovery 서비스에 등록하여 특권 통신을 가로챈다.
7️⃣ Semantics Split-Brain
하나의 명령이 서로 다른 에이전트에서 다르게 해석되어 충돌하지만 정상처럼 보이는 행동을 발생시킨다.
예방 및 대응 가이드라인
1️⃣ 안전한 에이전트 통신 채널
- End-to-End 암호화
- 에이전트별 인증
- 상호 인증(mTLS)
- PKI 인증서 핀닝
- Forward Secrecy 적용
2️⃣ 메시지 무결성 및 의미 보호
- 메시지 디지털 서명
- Payload 및 컨텍스트 해시
- 숨겨진 자연어 명령 탐지
- 의도 변화(intent diff) 분석
3️⃣ Replay 공격 방지
다음 요소를 사용한다.
- Nonce
- 세션 ID
- 타임스탬프
또한 메시지 지문(Message Fingerprint)을 유지하여 재사용 메시지를 탐지한다.
4️⃣ 프로토콜 보안
- 구형 통신 프로토콜 비활성화
- 에이전트별 신뢰 협상
- 프로토콜 인증과 에이전트 ID 결합
5️⃣ 메타데이터 분석 방지
다음 기술을 사용한다.
- 고정 크기 메시지
- 패딩 메시지
- 일정하지 않은 통신 주기
이를 통해 공격자가 트래픽 분석으로 에이전트 행동을 추론하는 것을 어렵게 만든다.
6️⃣ 프로토콜 버전 고정
허용된 프로토콜 버전을 정의한다.
예:
- MCP
- A2A
- gRPC
또한:
- 다운그레이드 시도 차단
- 스키마 검증 수행
7️⃣ Discovery 및 라우팅 보호
- 모든 discovery 메시지 인증
- 디렉토리 접근 제어
- 라우팅 이상 탐지
8️⃣ 에이전트 레지스트리 검증
신뢰 가능한 레지스트리를 사용하여 다음을 검증한다.
- 에이전트 신원
- 출처
- descriptor 무결성
또한 Agent Card 서명 검증을 수행한다.
9️⃣ Typed 계약 및 스키마 검증
메시지를 다음 방식으로 정의한다.
- 버전 관리된 메시지 스키마
- 명확한 수신 대상
다음 경우 메시지를 거부한다.
- 스키마 검증 실패
- 호환성 없는 다운그레이드
참고 자료
- Federated Learning 모델 오염 공격 연구 (USENIX Security 2020)
- Byzantine 공격 최적화 연구 (NDSS)
- Multi-Agent Consensus 보안 연구