AWS를 위한 적대적 노출 검증
핵심 요약
- 적대적 노출 검증은 공격자가 하는 방식대로 노출을 시험해, 공격자가 어떤 노출을 사용할 수 있는지 증명하는 작업입니다.
- AWS에서 공격자의 이동은 API 호출이므로, 검증은 각 호출을 결정하는 권한 부여를 해석하는 것을 뜻합니다. 이는 계정에서 아무것도 실행하지 않고 읽기 전용으로 수행할 수 있습니다.
- AWS에서 검증할 가치가 있는 노출은 컨트롤 플레인의 노출입니다. IAM 권한 상승, 교차 계정 신뢰, 구성에 노출된 자격 증명, 그리고 권한 있는 역할로 이어지는 퍼블릭 진입점입니다.
- 대부분의 AEV 벤더는 네트워크, 엔드포인트, 또는 침해 및 공격 시뮬레이션에서 출발했고, 각자 그 출발점에서 클라우드에 접근합니다. 각 벤더에게 AWS 컨트롤 플레인에서 증거를 어떻게 만들어 내는지, 그리고 각 단계마다 SCP, 경계, 신뢰 정책을 해석하는지 물어보세요.
- AEV는 CTEM 프로그램의 검증 단계입니다. 결과물은 증명된 경로의 짧은 목록이며, 각 경로에는 이를 차단하는 변경과 변경 배포 후의 확인이 함께 따라옵니다.
적대적 노출 검증, 줄여서 AEV는 공격자가 하는 방식대로 노출을 시험해, 보안 팀이 어떤 발견 항목이 악용될 수 있고 어떤 것이 그렇지 않은지 알게 하는 작업입니다. Gartner는 침해 및 공격 시뮬레이션과 자동화된 침투 테스트에서 발전한 도구 범주에 이 용어를 사용합니다. 공통된 생각은 검증이 스캐너가 보고하는 내용에 증거를 더해, 팀이 실제로 성립함이 확인된 발견 항목에 대응할 수 있게 한다는 것입니다.
이 글은 이것이 특히 AWS에서 무엇을 뜻하는지 다룹니다. 클라우드 컨트롤 플레인은 방법과 결과물을 모두 바꾸기 때문입니다.
AWS에 고유한 방식의 검증이 필요한 이유
네트워크에서 노출을 검증한다는 것은 트래픽을 보내는 것을 뜻합니다. 도구가 호스트에 도달할 수 있는지, 인증할 수 있는지, 이동할 수 있는지를 봅니다. 증거는 성공한 연결이나 탈취한 자격 증명입니다. AWS 컨트롤 플레인에는 도달할 호스트가 없습니다. 공격자의 모든 이동은 API 호출이며, 호출의 성공 여부는 AWS가 함께 평가하는 정책 문서 집합이 결정합니다. 호출자의 자격 증명 정책, 권한 경계, 계정이 속한 조직 단위의 서비스 제어 정책, 대상의 신뢰 정책 또는 리소스 정책, 그리고 각 문의 조건 키입니다.
여기서 두 가지 결과가 나옵니다. 첫째, 경로를 실행하지 않고도 검증할 수 있습니다. 이 문서들을 읽기 전용으로 해석하면 호출이 낳을 것과 같은 허용 또는 거부가 나오기 때문입니다. 둘째, 자격 증명 정책만 읽는 도구는 공격 표면을 과대평가합니다. SCP와 경계가 자격 증명 정책이 부여하는 것처럼 보이는 권한의 상당 부분을 제거하기 때문입니다.
AWS에서 검증할 대상
실제 계정에서 우리가 보는 증명된 경로의 대부분은 네 가지 노출에서 나옵니다.
IAM 권한 상승. 더 높은 권한의 역할에 도달할 수 있게 하는 권한이나 조합을 가진 주체입니다. 컴퓨팅 생성 작업과 함께하는 iam:PassRole, 정책 연결과 인라인 정책 쓰기, 신뢰 정책 재작성, 액세스 키 생성 등이 해당합니다. AWS 권한 상승 맵은 이들을 CloudTrail 이벤트, 그리고 각각을 차단하는 변경과 함께 정리합니다.
교차 계정 신뢰. 다른 계정, 벤더, 또는 와일드카드를 신뢰하는 역할로, 신뢰하는 쪽은 권한이 높고 신뢰받는 쪽은 누구의 예상보다 취약한 경우입니다. 두세 번의 sts:AssumeRole 홉으로 이루어진 체인이 샌드박스를 프로덕션에 연결할 수 있습니다.
구성에 노출된 자격 증명. EC2 사용자 데이터, Lambda 환경 변수, CloudFormation 출력, 컨테이너 정의에 들어 있는 액세스 키와 토큰입니다. 노출된 키 하나가 그 키의 주체가 도달할 수 있는 모든 것에 대한 진입점이 됩니다.
퍼블릭 진입점. 함수 URL, 쓰기 권한이 있는 퍼블릭 버킷, 인스턴스 프로파일이 붙은 인터넷 노출 인스턴스, 그리고 권한 있는 역할을 호출하는 API 게이트웨이입니다. 노출은 그 뒤의 역할이 어딘가로 이어질 때만 심각하며, 이를 확인하는 것이 바로 검증입니다.
AWS용 AEV 도구가 해야 할 일
읽기 전용 연결로 그래프를 만들어, 배포할 에이전트도 부여할 쓰기 권한도 없게 합니다. 그래프를 추론해 다중 홉 및 교차 계정 체인을 포함한 후보 체인을 만듭니다. 모든 단계에서 권한 부여의 모든 계층을 평가해 각 체인을 검증하고, 그 결과를 증거로 기록합니다. 증명된 경로를 도달 대상에 따라 순위를 매겨, 팀이 영향 범위를 먼저 보게 합니다. 각 경로마다 이를 차단하는 구체적인 변경을 제시하고, 변경이 배포된 뒤에는 경로를 다시 평가해 사라졌음을 확인합니다. 계정은 계속 변하므로 일정에 따라 실행합니다.
이 도구가 될 필요가 없는 것도 두 가지 있습니다. 증거를 만들기 위해 계정에서 무언가를 실행할 필요가 없습니다. 컨트롤 플레인에서는 권한 부여 결과가 곧 증거이기 때문입니다. 그리고 모든 발견 항목의 기록 시스템일 필요도 없습니다. 그 역할은 이미 CSPM이나 CNAPP가 맡고 있으며, 검증 도구의 일은 그 발견 항목 중 어느 것이 증명된 경로 위에 있는지 알려 주는 것입니다.
주요 AEV 벤더의 AWS 접근 방식
이 범주와 연관된 벤더들은 서로 다른 출발점에서 이 분야에 들어왔고, 각자 그 위에 제품을 쌓아 왔습니다. 아래 요약은 각 벤더를 그들의 공개 자료가 쓰는 표현대로 설명합니다. 이를 근거로 무언가를 결정하기 전에 세부 사항을 벤더에게 확인하세요.
| 벤더 | 출발점 | AWS에서의 접근 방식 |
|---|---|---|
| Pentera | 내부 네트워크, 자격 증명, 외부 공격 표면 전반에 걸친 자동화된 보안 검증 | 자격 증명 탈취와 역할 권한 상승을 포함해, AWS 및 Azure 계정을 대상으로 공격자 기법을 에뮬레이션하는 클라우드 모듈 |
| Horizon3.ai | 네트워크 내부에서의 자율 침투 테스트 | AWS 및 Azure 환경을 대상으로 공격 기법을 실행하는 클라우드 침투 테스트 |
| XM Cyber | 공격 그래프 모델링과 지속적인 노출 관리 | 온프레미스와 클라우드 전반의 그래프 기반 공격 경로 모델링과 초크 포인트 분석 |
| Cymulate | 침해 및 공격 시뮬레이션 | 통제를 시험하기 위한 공격 기법 시뮬레이션, 엔드포인트 및 이메일과 함께 클라우드 시나리오 제공 |
| Picus | 침해 및 공격 시뮬레이션 | 공격 기법 시뮬레이션을 통한 통제 검증, 플랫폼에 클라우드 범위 추가 |
| Pathbreak | 실무자들이 직접 찾아낸 AWS 컨트롤 플레인 공격 경로 | 실제 권한 부여를 해석해 각 경로를 읽기 전용으로 검증하고, 영향 범위 기준 순위, 각 경로를 차단하는 변경, 해결 후 확인을 제공 |
유용한 구분은 기법을 에뮬레이션해 얻는 증거와 권한 부여를 해석해 얻는 증거 사이에 있습니다. 에뮬레이션은 익스플로잇이 호스트를 겨냥한 코드인 경우에 자연스럽게 맞습니다. 권한 부여 해석은 익스플로잇이 권한인 경우에 적용되며, AWS에서는 컨트롤 플레인의 대부분이 여기에 해당합니다. 또한 읽기 전용이므로 매일 일정에 따라 실행할 수 있습니다.
CTEM 프로그램에서 AEV의 위치
지속적 위협 노출 관리에는 다섯 단계가 있습니다. 범위 설정, 발견, 우선순위 지정, 검증, 실행입니다. AEV는 검증 단계입니다. 입력은 발견 단계에서 나온 우선순위 목록이고, 출력은 증명된 소수의 노출이며, 각각에 담당자와 변경이 붙습니다. CTEM 검증 글은 AWS 계정에서 이것이 어떤 모습인지 실제 수치와 함께 보여 주고, AEV 대 BAS 글은 통제 테스트와의 차이를 다룹니다.
자주 묻는 질문
적대적 노출 검증이란 무엇인가요?
적대적 노출 검증은 공격자가 하는 방식대로 보안 노출을 시험해, 어떤 노출이 중요한 대상에 도달하는 데 사용될 수 있는지 확인하는 작업입니다. 스캐너가 보이는 모든 것의 긴 목록을 만드는 반면, 이는 짧은 노출 목록에 대한 증거를 만듭니다. Pathbreak는 적대적 노출 검증을 AWS에 적용하여, 각 공격 경로를 실제 권한 부여에 비추어 읽기 전용으로 입증합니다.
AEV는 침해 및 공격 시뮬레이션과 같은 것인가요?
아니요. 침해 및 공격 시뮬레이션은 보안 통제가 알려진 기법을 탐지하거나 차단하는지 시험합니다. AEV는 존재하는 노출을 통해 공격자가 목표에 도달할 수 있는지, 그리고 어떤 변경이 이를 막을지 시험합니다. 많은 AEV 벤더가 BAS에서 출발했기 때문에 두 용어가 혼용됩니다. Pathbreak는 AWS용 AEV 플랫폼으로, 공격 경로를 검증하고 각 경로를 끊는 변경 사항을 알려 줍니다.
AEV를 하려면 AWS 계정에서 익스플로잇을 실행해야 하나요?
컨트롤 플레인에서는 그렇지 않습니다. AWS에서 공격자의 모든 이동은 정책 문서가 결정하는 API 호출이므로, 이 문서들을 읽기 전용으로 해석하면 호출이 낳을 것과 같은 허용 또는 거부를 얻습니다. Pathbreak는 아무것도 실행하지 않고 이 방식으로 검증합니다.
AWS에서 노출 검증은 얼마나 자주 실행해야 하나요?
IAM과 신뢰 관계는 배포할 때마다 바뀌므로 매일이 합리적인 기준입니다. 읽기 전용으로 자동화된 검증은 변경 기간 없이 일정에 따라 실행할 수 있습니다. Pathbreak는 연결된 모든 AWS 계정에서 이 검증을 매일 실행합니다.