기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon ECS 서비스에 대한 노출 문제 해결
AWS Security Hub는 Amazon Elastic Container Service(Amazon ECS) 서비스에 대한 노출 조사 결과를 생성할 수 있습니다.
노출 조사 결과와 관련된 Amazon ECS 서비스와 해당 식별 정보는 조사 결과 세부 정보의 리소스 섹션에 나열됩니다. 이러한 리소스 세부 정보는 Security Hub 콘솔에서 검색하거나 Security Hub API의 GetFindingsV2 작업을 통해 프로그래밍 방식으로 검색할 수 있습니다.
노출 조사 결과와 관련된 리소스를 식별한 후 필요하지 않은 경우 리소스를 삭제할 수 있습니다. 필수적이지 않은 리소스를 삭제하면 노출 프로필과 AWS 비용을 줄일 수 있습니다. 리소스가 필요한 경우 다음 권장 문제 해결 단계를 수행하여 위험을 완화하세요. 문제 해결 주제는 특성 유형에 따라 구분됩니다.
단일 노출 조사 결과에는 여러 문제 해결 주제에서 식별된 문제가 포함됩니다. 반대로, 하나의 문제 해결 주제만 처리하여 노출 조사 결과를 해결하고 심각도 수준을 낮출 수 있습니다. 위험 해결 방법은 조직의 요구 사항과 워크로드에 따라 달라집니다.
참고
이 주제에 제공된 문제 해결 지침에 따라 다른 AWS 리소스에서 추가 상담이 필요할 수 있습니다.
Amazon ECS 서비스의 구성 오류 특성
다음은 Amazon ECS 서비스에 대한 잘못된 구성 특성과 제안된 수정 단계입니다.
Amazon ECS 서비스는 승격된 권한으로 구성된 작업 정의를 사용합니다.
승격된 권한으로 실행되는 Amazon ECS 컨테이너는 호스트 시스템과 유사한 기능을 제공하므로 호스트 리소스 및 기타 컨테이너에 액세스할 수 있습니다. 이 구성은 손상된 컨테이너를 사용하여 의도한 범위를 벗어나 리소스에 액세스하거나 수정할 수 있는 위험을 증가시켜 잠재적으로 컨테이너 이스케이프, 기본 호스트에 대한 무단 액세스, 동일한 호스트의 다른 컨테이너에 영향을 미치는 위반으로 이어질 수 있습니다. 표준 보안 원칙에 따라 최소 권한을 부여하는 것이 AWS 좋습니다. 즉, 작업을 수행하는 데 필요한 권한만 부여하는 것입니다.
작업 정의 검토 및 수정
노출에서 작업 정의 ARN을 식별합니다. Amazon ECS 콘솔에서 작업 정의를 엽니다. 작업 정의에서 컨테이너 정의에서 true로 설정된 권한 플래그를 찾습니다. 권한 모드가 필요하지 않은 경우 권한 플래그 없이 새 작업 정의 개정을 생성합니다. 권한 모드가 필요한 경우 무단 수정을 방지하기 위해 읽기 전용 파일 시스템을 사용하도록 컨테이너를 구성하는 것이 좋습니다.
Amazon ECS 서비스에는 IAM 역할을 수임할 수 있는 컨테이너가 있습니다.
IAM 역할을 사용하면 Amazon ECS 태스크가 임시 자격 증명을 사용하여 다른 AWS 서비스에 안전하게 액세스할 수 있습니다. 컨테이너가 다른 AWS 리소스와 상호 작용해야 하는 Amazon ECS 태스크에는 태스크 실행 역할이 필요할 수 있습니다. 컨테이너 기능에 필요한 경우도 있지만 잘못 구성된 역할은 컨테이너가 손상된 경우 공격자가 악용할 수 있는 과도한 권한을 부여하여 AWS 리소스에 대한 무단 액세스, 데이터 도용 또는 인프라의 무단 수정을 허용할 수 있습니다. 표준 보안 원칙에 따라는 최소 권한 액세스를 구현하고 Amazon ECS 작업에 연결된 IAM 역할을 검토하는 것이 AWS 좋습니다.
연결된 역할 검토
IAM 대시보드로 이동하여 식별된 역할을 선택합니다. IAM 역할에 연결된 권한 정책을 검토합니다. 작업에 다른 AWS 서비스와의 상호 작용이 필요한 경우 작업 실행 역할을 유지하고 최소 권한 적용을 고려하세요. 그렇지 않으면 실행 역할 없이 새 작업 정의 개정을 생성합니다.
Amazon ECS 서비스는 컨테이너가 루트 파일 시스템에 액세스할 수 있도록 허용하는 작업 정의를 사용합니다.
호스트 루트 파일 시스템에 액세스할 수 있는 Amazon ECS 컨테이너는 호스트 시스템에서 중요한 파일을 잠재적으로 읽거나 수정하거나 실행할 수 있습니다. 이 구성은 손상된 컨테이너를 사용하여 의도한 범위를 벗어나 리소스에 액세스하거나 수정할 수 있는 위험을 증가시켜 호스트 파일 시스템에 민감한 데이터가 노출될 수 있습니다. 표준 보안 원칙에 따라 최소 권한을 부여하는 것이 AWS 좋습니다. 즉, 작업을 수행하는 데 필요한 권한만 부여하는 것입니다.
호스트 파일 시스템 액세스 권한이 있는 컨테이너 검토 및 수정
노출 조사 결과에서 작업 정의 ARN을 식별합니다. Amazon ECS 콘솔에서 작업 정의를 엽니다. 작업 정의에서 호스트 경로 매핑을 정의하는 볼륨 섹션을 찾습니다. 태스크 정의를 검토하여 컨테이너 기능에 호스트 파일 시스템 액세스가 필요한지 확인합니다. s 호스트 파일 시스템 액세스가 필요하지 않은 경우 새 태스크 정의 개정을 생성하고 호스트 경로를 사용하는 볼륨 정의를 제거합니다. 호스트 파일 시스템 액세스가 필요한 경우 무단 수정을 방지하기 위해 읽기 전용 파일 시스템을 사용하도록 컨테이너를 구성하는 것이 좋습니다.
Amazon ECS 서비스는 호스트의 프로세스 네임스페이스를 공유하도록 구성된 작업 정의를 사용합니다.
노출된 네임스페이스로 실행되는 Amazon ECS 컨테이너는 호스트 시스템 리소스 및 기타 컨테이너 네임스페이스에 액세스할 수 있습니다. 이 구성을 통해 손상된 컨테이너가 격리 경계를 벗어날 수 있으며, 이로 인해 프로세스, 네트워크 인터페이스 또는 기타 리소스가 의도한 범위를 벗어날 수 있습니다. 프로세스 ID(PID) 네임스페이스는 프로세스 간 분리를 제공합니다. 시스템 프로세스가표시되는 것을 방지하고 PID 1을 포함한 PID를 재사용할 수 있습니다. 호스트의 PID 네임스페이스를 컨테이너와 공유하면 컨테이너는 호스트 시스템의 모든 프로세스를 볼 수 있습니다. 이렇게 하면 호스트와 컨테이너 간의 프로세스 수준 격리의 이점이 줄어듭니다. 이러한 요인으로 인해 호스트 자체의 프로세스에 대한 무단 액세스가 발생할 수 있으며, 여기에는 프로세스 조작 및 종료 기능이 포함됩니다. 표준 보안 원칙에 따라는 컨테이너에 적절한 네임스페이스 격리를 유지할 AWS 것을 권장합니다.
노출된 네임스페이스로 작업 정의 업데이트
노출의 리소스 탭을 열고 노출된 네임스페이스로 작업 정의를 식별합니다. Amazon ECS 콘솔에서 작업 정의를 엽니다. 호스트와 프로세스 ID 네임스페이스를 공유하는 호스트 값이 있는 pidMode 설정을 찾습니다. 작업 정의에서 pidMode: 호스트 설정을 제거하여 컨테이너가 적절한 네임스페이스 격리로 실행되도록 합니다.
Amazon ECS 서비스는 환경 변수에서 일반 텍스트 자격 증명으로 구성된 작업 정의를 사용합니다.
환경 변수에 일반 텍스트 자격 증명이 있는 Amazon ECS 컨테이너는 공격자가 작업 정의, 컨테이너 환경 또는 컨테이너 로그에 액세스할 경우 손상될 수 있는 민감한 인증 정보를 노출합니다. 이렇게 하면 유출된 자격 증명을 사용하여 다른 AWS 서비스 또는 리소스에 액세스할 수 있으므로 상당한 보안 위험이 발생합니다.
일반 텍스트 자격 증명 바꾸기
노출 조사 결과에서 일반 텍스트 자격 증명으로 작업 정의를 식별합니다. Amazon ECS 콘솔에서 작업 정의를 엽니다. 컨테이너 정의에서 AWS 액세스 키, 데이터베이스 암호 또는 API 토큰과 같은 민감한 값을 포함하는 환경 변수를 찾습니다.
자격 증명을 전달하려면 다음 대안을 고려하세요.
-
AWS 액세스 키를 사용하는 대신 IAM 작업 실행 역할 및 작업 역할을 사용하여 컨테이너에 권한을 부여합니다.
-
보안 인증 정보를 AWS Secrets Manager에 보안 암호로 저장하고 작업 정의에서 참조합니다.
작업 정의 업데이트
자격 증명을 안전하게 처리하는 작업 정의의 새 개정을 생성합니다. 그런 다음 새 작업 정의 개정을 사용하도록 Amazon ECS 서비스를 업데이트합니다.
Amazon ECS 서비스에는 열린 보안 그룹이 있습니다.
보안 그룹은 Amazon ECS 작업에 대한 가상 방화벽 역할을 하여 인바운드 및 아웃바운드 트래픽을 제어합니다. IP 주소에서 무제한 액세스를 허용하는 개방형 보안 그룹은 컨테이너를 무단 액세스에 노출시켜 자동 스캔 도구 및 대상 공격에 노출될 위험을 높일 수 있습니다. 표준 보안 원칙에 따라 보안 그룹 액세스를 특정 IP 주소 및 포트로 제한하는 것이 AWS 좋습니다.
보안 그룹 규칙 검토 및 현재 구성 평가
Amazon ECS 보안 그룹의 리소스를 엽니다. 와 같은 광범위한 IP 범위에서 개방되고 액세스할 수 있는 포트를 평가합니다(0.0.0.0/0 or ::/0)
.
보안 그룹 규칙 수정
보안 그룹 규칙을 수정하여 신뢰할 수 있는 특정 IP 주소 또는 범위에 대한 액세스를 제한합니다. 보안 그룹 규칙을 업데이트할 때는 각 필수 소스 IP 범위에 대한 규칙을 생성하거나 특정 포트에 대한 액세스를 제한하여 서로 다른 네트워크 세그먼트에 대한 액세스 요구 사항을 분리하는 것이 좋습니다.
보안 그룹 규칙 수정
대체 액세스 방법에 대해 다음 옵션을 고려하세요.
-
세션 관리자는 인바운드 포트, SSH 키 관리 또는 접속 호스트 유지 관리 없이 Amazon EC2 인스턴스에 대한 보안 쉘 액세스를 제공합니다.
-
NACLs 서브넷 수준에서 추가 보안 계층을 제공합니다. 보안 그룹과 달리 NACLs은 상태 비저장이며 인바운드 및 아웃바운드 규칙을 모두 명시적으로 정의해야 합니다.
Amazon ECS 서비스에는 퍼블릭 IP 주소가 있습니다.
작업에 할당된 퍼블릭 IP 주소가 있는 Amazon ECS 서비스는 인터넷에서 직접 액세스할 수 있습니다. 이는 공개적으로 사용 가능해야 하는 서비스에 필요할 수 있지만 공격 표면과 무단 액세스 가능성을 높입니다.
퍼블릭 IP 주소가 있는 서비스 식별
노출 조사 결과에서 작업에 할당된 퍼블릭 IP 주소가 있는 Amazon ECS 서비스를 식별합니다. 서비스 구성ENABLED
에서 값이 인 assignPublicIp
설정을 찾습니다.
작업 정의 업데이트
퍼블릭 IP 주소를 비활성화하는 작업 정의의 새 개정을 생성합니다. 그런 다음 새 작업 정의 개정을 사용하도록 Amazon ECS 서비스를 업데이트합니다.
프라이빗 네트워크 액세스 패턴 구현
웹 애플리케이션을 실행하는 인스턴스의 경우 Load Balancer(LB)를 사용하는 것이 좋습니다. LBs는 퍼블릭 서브넷에서 실행되고 인터넷 트래픽을 처리하는 동안 인스턴스가 프라이빗 서브넷에서 실행되도록 구성할 수 있습니다.
Amazon ECS 서비스는 호스트 네트워킹 모드가 활성화된 상태로 구성된 작업 정의를 사용합니다.
호스트 네트워킹 모드로 실행되는 Amazon ECS 컨테이너는 네트워크 네임스페이스를 호스트와 공유하므로 호스트의 네트워크 인터페이스, 포트 및 라우팅 테이블에 직접 액세스할 수 있습니다. 이 구성은 컨테이너에서 제공하는 네트워크 격리를 우회하여 컨테이너에서 실행되는 서비스를 외부 네트워크에 직접 노출하고 컨테이너가 호스트 네트워크 설정을 수정할 수 있도록 합니다. 표준 보안 원칙에 따라는 컨테이너에 적절한 네트워크 격리를 유지할 AWS 것을 권장합니다.
호스트 네트워킹 모드 비활성화
노출 조사 결과에서 호스트 네트워킹 모드를 사용하여 작업 정의를 식별합니다. Amazon ECS 콘솔에서 작업 정의를 엽니다. 작업 정의에서 호스트 값이 있는 networkMode 설정을 찾습니다.
호스트 네트워킹 모드를 비활성화하려면 다음 옵션을 고려하세요.
-
awsvpc
네트워크 모드는 각 작업에 고유한 탄력적 네트워크 인터페이스를 제공하여 가장 강력한 수준의 네트워크 격리를 제공합니다. -
bridge
네트워크 모드는 포트 매핑이 특정 컨테이너 포트를 호스트에 노출하도록 허용하면서 격리를 제공합니다.
작업 정의 업데이트
업데이트된 네트워크 모드 구성을 사용하여 작업 정의의 새 개정을 생성합니다. 그런 다음 새 작업 정의 개정을 사용하도록 Amazon ECS 서비스를 업데이트합니다.
Amazon ECS 서비스와 연결된 IAM 역할에는 관리 액세스 정책이 있습니다.
Amazon ECS 태스크에 연결된 관리 액세스 정책이 있는 IAM 역할은 컨테이너 작업에 일반적으로 필요한 권한을 초과하는 광범위한 권한을 제공합니다. 이 구성은 손상된 컨테이너를 사용하여 AWS 환경 전체에서 리소스에 액세스하거나 수정할 수 있는 위험을 높입니다. 표준 보안 원칙에 따라는 작업이 작동하는 데 필요한 권한만 부여하여 최소 권한 액세스를 구현하는 것이 AWS 좋습니다.
관리 정책 검토 및 식별
n 리소스 ID에서 IAM 역할 이름을 식별합니다. IAM 대시보드로 이동하여 식별된 역할을 선택합니다. IAM 역할에 연결된 권한 정책을 검토합니다. 정책이 AWS 관리형 정책인 경우를 찾습니다AdministratorAccess
. 그렇지 않으면 정책 문서에서 문이 "Effect": "Allow", "Action": "*", and "Resource": "*"
함께 있는 문을 찾습니다.
최소 권한 액세스 구현
관리 정책을 인스턴스가 작동하는 데 필요한 특정 권한만 부여하는 정책으로 바꿉니다. 불필요한 권한을 식별하기 위해 IAM Access Analyzer를 사용하여 액세스 기록을 기반으로 정책을 수정하는 방법을 이해할 수 있습니다. 또는 새 IAM 역할을 생성하여 기존 역할을 사용하는 다른 애플리케이션에 영향을 주지 않도록 할 수 있습니다. 이 시나리오에서는 새 IAM 역할을 생성한 다음 새 IAM 역할을 인스턴스와 연결합니다.
보안 구성 고려 사항
인스턴스에 서비스 수준 관리 권한이 필요한 경우 위험을 완화하기 위해 다음과 같은 추가 보안 제어를 구현하는 것이 좋습니다.
-
MFA는 추가 형식의 인증을 요구하여 보안 계층을 추가합니다. 이렇게 하면 자격 증명이 손상되더라도 무단 액세스를 방지할 수 있습니다.
-
조건 요소를 설정하면 소스 IP 또는 MFA 수명과 같은 요인에 따라 관리 권한을 사용할 수 있는 시기와 방법을 제한할 수 있습니다.
작업 정의 업데이트
새 IAM 역할 또는 업데이트된 IAM 역할을 참조하는 작업 정의의 새 개정을 생성합니다. 그런 다음 새 작업 정의 개정을 사용하도록 Amazon ECS 서비스를 업데이트합니다.
Amazon ECS 서비스의 취약성 특성
다음은 Amazon ECS의 연결성 특성과 제안된 문제 해결 단계입니다.
Amazon ECS 서비스에는 악용 가능성이 높은 네트워크 배포 가능 소프트웨어 취약성이 있는 컨테이너가 있습니다.
-
노출 이해
패키지 취약성 조사 결과는 일반적인 취약성 및 노출(CVE)에 노출된 AWS 환경의 소프트웨어 패키지를 식별합니다.CVEs 공격자는 이러한 패치되지 않은 취약성을 악용하여 데이터의 기밀성, 무결성 또는 가용성을 손상시키거나 다른 시스템에 액세스할 수 있습니다. ECR 컨테이너 이미지에는 패키지 취약성 조사 결과가 있을 수 있습니다.
-
노출 문제 해결
-
패키지 버전 업데이트
Lambda 함수의 패키지 취약성 조사 결과를 검토합니다. Amazon Inspector에서 제안한 대로 패키지 버전을 업데이트합니다. 자세한 내용은 Amazon Inspector 사용 설명서의 Amazon Inspector 조사 결과에 대한 세부 정보 보기를 참조하세요. Amazon Inspector Amazon Inspector 콘솔에서 결과 세부 정보의 문제 해결 섹션에 패키지를 업데이트하기 위해 실행할 수 있는 명령이 표시됩니다.
-
기본 컨테이너 이미지 업데이트
기본 컨테이너 이미지를 정기적으로 재구축하고 업데이트하여 컨테이너를 최신 상태로 유지합니다. 이미지를 다시 빌드할 때 공격 표면을 줄이기 위해 불필요한 구성 요소를 포함하지 마십시오. 컨테이너 이미지 재구축에 대한 지침은 자주 이미지 재구축을 참조하세요
.
-
Amazon ECS 서비스에는 소프트웨어 취약성이 있는 컨테이너가 있습니다.
Amazon ECS 컨테이너에 설치된 소프트웨어 패키지는 일반적인 취약성 및 노출(CVEs. 우선 순위가 낮은 취약성은 우선 순위가 높은 취약성에 비해 심각도 또는 악용 가능성이 낮은 보안 약점을 나타냅니다. 이러한 취약성은 즉각적인 위험을 초래하지 않지만 공격자는 패치되지 않은 이러한 취약성을 악용하여 데이터의 기밀성, 무결성 또는 가용성을 손상시키거나 다른 시스템에 액세스할 수 있습니다.
영향을 받는 컨테이너 이미지 업데이트
특성의 취약성 탭에서 참조 섹션을 검토합니다. 공급업체 설명서에는 특정 수정 지침이 포함될 수 있습니다.
다음 일반 지침에 따라 적절한 문제 해결을 적용합니다.
-
영향을 받는 패키지의 패치 버전을 사용하도록 컨테이너 이미지를 업데이트합니다.
-
애플리케이션의 영향을 받는 종속성을 최신 보안 버전으로 업데이트합니다.
컨테이너 이미지를 업데이트한 후 컨테이너 레지스트리로 푸시하고 새 이미지를 사용하도록 Amazon ECS 작업 정의를 업데이트합니다.
향후 고려 사항
컨테이너 이미지의 보안 태세를 더욱 강화하려면 Amazon ECS 작업 및 컨테이너 보안 모범 사례를 따르는 것이 좋습니다. Amazon Inspector는 컨테이너에서 CVEs 자동으로 스캔하도록 구성할 수 있습니다. Amazon Inspector는 자동 문제 해결을 위해 Security Hub와 통합할 수도 있습니다. 컨테이너 중단을 최소화하려면 Systems Manager Maintenance Windows를 사용하여 정기적인 패치 적용 일정을 구현하는 것이 좋습니다.