게시일: 2024년 10월 21일 오후 4시(PDT)
설명:
Amazon.ApplicationLoadBalancer.Identity.AspNetCore 리포지토리는 Application Load Balancer(ALB) OpenId Connect 통합과 함께 사용할 수 있는 Middleware를 포함하며, 이는 AWS Fargate, Amazon Elastic Kubernetes Service(Amazon EKS), Amazon Elastic Container Service(Amazon ECS), Amazon Elastic Compute Cloud(Amazon EC2), AWS Lambda 등 모든 ASP.NET Core 배포 시나리오에서 사용할 수 있습니다. JWT 처리 코드에서는 서명 검증을 수행하지만 JWT 발행자 및 서명자 ID 검증은 수행하지 못합니다. 서명자 생략을 인프라 소유자가 ALB 대상에 대해 인터넷 트래픽을 허용하는 시나리오(권장 구성이 아님)와 결합하면 신뢰할 수 없는 엔터티의 JWT 서명이 허용되고 행위자는 유효한 OIDC 페더레이션 세션을 ALB 대상에 모방할 수 있습니다.
영향을 받는 버전: 모든 버전
해결 방법
해당 리포지토리/패키지는 수명이 종료되어 더 이상 적극적으로 지원되지 않습니다.
대안
보안 모범 사례로서, ELB 대상(예: EC2 인스턴스, Fargate 태스크 등)에 퍼블릭 IP 주소가 포함되지는 않았는지 확인하세요.
JWT의 서명자 속성을 검증하는 포크된 코드 또는 파생 코드가, 서비스가 사용하도록 구성된 Application Load Balancer의 ARN과 일치하는지 확인하세요.
참고 사항
- ALB 설명서에 따르면, ‘보안을 보장하려면 요청에 따라 권한을 부여하기 전에 서명을 확인하고 JWT 헤더의 서명자 필드에 예상 Application Load Balancer ARN이 포함되어 있는지 확인해야 합니다.’
- Python 예시
- GitHub 보안 공지
- CVE-2024-10125
조정된 취약성 공개 프로세스에서 이 문제에 협력해 주신 Miggo Security 님께 감사드립니다.
보안 관련 질문이나 우려 사항이 있는 경우 이메일(aws-security@amazon.com)을 통해 문의하세요.