피드로 돌아가기
InfoQSecurity
원문 읽기
Trailing Slash를 통한 AWS HTTP API 인증 우회 및 구조적 결함 분석
A Trailing Slash Bypassed AWS API Gateway Authorization
AI 요약
Context
AWS HTTP API의 Route Matching 레이어와 Lambda Authorizer 레이어 간의 Path Normalization 불일치로 인한 보안 취약점 발생. Greedy Path Matching 설정으로 인해 Trailing Slash가 포함된 요청이 인증 레이어를 통과한 후 백엔드 통합 과정에서 Auth Context가 누락되는 구조적 한계 노출.
Technical Solution
- HTTP API의 Greedy Path Matching 특성을 이용한 /v1/accounts/ 경로 요청으로 인증 레이어 우회
- Path Rewriting 과정에서 발생한 Auth Context 드롭으로 인한 userId 값의 undefined 처리
- 백엔드 Lambda의 Authorizer 신뢰 기반 설계로 인해 undefined 상태를 시스템 계정 권한으로 오인하여 전체 데이터 노출
- HTTP API에서 REST API로 전환하여 보다 엄격한 Path Matching 메커니즘 확보
- Authorizer에만 의존하던 검증 로직을 개별 Lambda 함수 내부의 독립적 userId Validation 구조로 변경
- Non-canonical Path 요청을 Authorization 레이어 진입 전 단계에서 즉시 거부하는 원칙 적용
실천 포인트
1. 보호된 모든 Route에 대해 Trailing Slash 포함 여부에 따른 응답 결과 차이 전수 조사
2. 백엔드 Lambda 함수 내에서 requestContext.authorizer 필드의 존재 여부 및 유효성 독립 검증 로직 구현
3. 보안 민감도가 높은 엔드포인트의 경우 비용 상승을 감수하더라도 Strict Path Matching을 지원하는 REST API 채택 검토
4. Canonical Path 정규화 프로세스를 인증 레이어 최상단에 배치하여 비정상 경로 요청 사전 차단