개요
Confused Deputy 공격은 합법적이고 신뢰된 프로그램(Deputy)을 이용하여 공격자가 본래 갖지 않은 권한으로 시스템 리소스에 접근하게 만드는 보안 취약점입니다. 소프트웨어가 권한을 구분하지 않고 요청을 처리할 때 발생하며, 잘못된 권한 검증 로직을 악용해 **간접적인 권한 상승(Elevation of Privilege)**을 유도하는 전형적인 설계 결함 기반 공격입니다.
1. 개념 및 정의
Confused Deputy는 1988년 Norman Hardy가 소개한 개념으로, “Deputy(대리인)” 역할의 프로그램이 자신의 권한과 요청자의 권한을 구분하지 못하고 행동할 때 발생하는 보안 사고입니다. 이로 인해, 권한이 낮은 주체가 고권한 소프트웨어를 통해 민감한 리소스에 접근할 수 있습니다.
2. 공격 시나리오 및 특징
특징 | 설명 | 예시 |
권한 혼동 | 프로그램이 요청자의 권한과 자신의 권한을 혼동 | 클라우드 API 처리 오용 |
간접 권한 상승 | 공격자가 우회적으로 고권한 작업 실행 | 백엔드 경로를 통한 파일 접근 |
설계 결함 악용 | 올바른 권한 전달 방식 부재 | 사용자 입력에 대한 검증 누락 |
Confused Deputy는 보안 기능을 갖춘 시스템조차 우회 가능한 '허점'을 노리는 공격입니다.
3. 구성 요소
구성 요소 | 설명 | 예시 |
Deputy(대리자) | 높은 권한을 가진 프로그램 또는 서비스 | 컴파일러, API 게이트웨이 |
Requester(요청자) | 낮은 권한을 가진 사용자 또는 외부 엔티티 | 클라이언트 앱, 웹 유저 |
Resource(리소스) | 보호되어야 하는 대상 자산 | 시스템 파일, DB 정보 등 |
Credential(자격정보) | 액세스 제어를 위한 인증 수단 | API 키, 세션 토큰 |
보안이 철저한 리소스라도, Deputy의 설계 미흡으로 공격자가 접근 가능해질 수 있습니다.
4. 실제 사례 및 기술 예시
사례 | 설명 | 보안 실패 원인 |
컴파일러 로그 덮어쓰기 | 사용자가 파일 경로를 입력받아 로그 파일을 덮어씀 | 컴파일러가 사용자 권한 대신 시스템 권한 사용 |
클라우드 스토리지 접근 | 인증된 백엔드 API가 외부 요청을 위임받아 내부 스토리지에 접근 | 권한 검증 누락 및 직접 접근 허용 |
웹 서버 경로 조작 | 웹 서버가 사용자 입력을 신뢰하고 경로에 사용 | 디렉터리 트래버설 공격 가능 |
Confused Deputy는 설계 레벨에서 주체와 권한 경계를 명확히 하지 않을 때 항상 발생할 수 있습니다.
5. 방어 방법 및 보안 대책
대책 | 설명 | 적용 예 |
Capability 기반 접근 제어 | 주체가 사용할 자원에 대한 명시적 권한 전달 방식 | 세션에 자원 URI 포함하여 위임 처리 |
입력 검증 및 필터링 | 외부로부터 전달되는 인자에 대한 신뢰성 검증 | 경로 인젝션, 명령어 삽입 방지 |
최소 권한 원칙 적용 | Deputy가 항상 요청자의 권한으로만 작업 수행 | 프로세스 격리, 프록시 처리 등 |
권한 위임 제한 | 고권한 기능을 외부 요청으로부터 직접 수행하지 않음 | 서명 기반 API 토큰 사용 |
근본적으로는 시스템 설계 초기부터 권한 흐름 모델링 및 위임 추적 구조가 필요합니다.
6. 관련 개념과 비교
개념 | Confused Deputy | TOCTOU | Privilege Escalation |
개요 | 권한 구분 실패로 인한 간접 권한 획득 | 시간차 검증/실행 간 권한 변경 | 일반 사용자 권한 → 관리자 권한 |
주체 | Deputy가 실수 | 파일/프로세스의 경합 조건 | 악성 코드, 커널 취약점 |
방어 | 권한 위임 검증, Capability 사용 | 원자적 작업, 락 | 커널 보안 정책, RBAC |
Confused Deputy는 설계 단에서 발생하고, 예방 또한 설계 수준에서 접근해야 합니다.
7. 결론
Confused Deputy 공격은 시스템 내 합법적인 기능을 권한 검증 없이 무분별하게 위임 처리할 때 발생하는 보안 허점입니다. 특히 클라우드, API 기반 시스템, 마이크로서비스 등 다양한 외부 요청이 존재하는 환경에서는 반드시 권한 분리 원칙, 최소 권한 정책, 위임 추적을 설계에 포함해야 합니다. 예방은 어렵지 않지만, 이를 간과할 경우 고신뢰 시스템조차 쉽게 공격받을 수 있습니다.
'Topic' 카테고리의 다른 글
XML 데이터베이스(XML Database) (1) | 2025.04.16 |
---|---|
큐브리드(Cubrid) (0) | 2025.04.16 |
FIDO 2.0 (0) | 2025.04.16 |
Chinese Wall 모델 (0) | 2025.04.16 |
Take-Grant 모델 (0) | 2025.04.16 |