AWS에서의 CTEM 검증 단계, 실제 수치로 보기
핵심 요약
- CTEM에는 다섯 단계가 있습니다. 범위 설정, 발견, 우선순위 지정, 검증, 실행입니다. AWS에서 프로그램은 보통 우선순위 지정과 검증 사이에서 멈춥니다. 순위가 매겨진 수천 개의 발견 항목은 있지만, 그중 어느 것을 공격자가 사용할 수 있는지에 대한 증거는 없습니다.
- AWS에서의 검증은 각 후보 경로를 AWS가 평가하는 권한 부여에 비추어 읽기 전용으로 해석하는 것을 뜻합니다. 순위가 매겨진 긴 목록을 증명된 짧은 목록으로 바꿉니다.
- 랩 수치: 후보 공격 경로 4,942개. 검증과 영향 범위 기준 순위 매기기를 거친 뒤, 하나의 역할에 대한 하나의 Deny 문이 남은 4,087개 경로 중 3,893개를 제거했고, 두 가지 변경으로 위험의 80퍼센트가 제거되었습니다.
- 실행 단계가 검증에서 필요로 하는 것은 세 가지입니다. 증명된 경로, 이를 차단하는 구체적인 변경, 그리고 변경 배포 후의 확인입니다.
- 지속적이라는 것은 일정에 따라 실행된다는 뜻입니다. 읽기 전용 검증은 변경 기간 없이 매일 실행할 수 있으므로, 구성 변화는 발생한 그날 포착됩니다.
지속적 위협 노출 관리는 다섯 단계로 이루어진 프로그램 구조입니다. 범위 설정은 어떤 시스템을 프로그램에 포함할지 정합니다. 발견은 그 안의 노출을 찾습니다. 우선순위 지정은 노출의 순위를 매깁니다. 검증은 순위가 매겨진 노출 중 어느 것을 공격자가 사용할 수 있는지 증명합니다. 실행은 증명된 노출을 담당자가 해결하도록 합니다. 정의는 다른 곳에서 충분히 다루고 있으므로, 이 글은 네 번째 단계를 AWS에서 실제 계정의 수치와 함께 다룹니다.
AWS 프로그램이 멈추는 지점
AWS에서 발견 단계는 잘 갖춰져 있습니다. CSPM이나 스캐너는 오후 한나절 만에 수천 개의 발견 항목을 만들어 냅니다. 퍼블릭 버킷, 지나치게 넓은 정책, 사용하지 않는 키, 누락된 암호화, 와일드카드 신뢰를 가진 역할 등입니다. 우선순위 지정도 잘 갖춰져 있어, 심각도 점수, 악용 가능성 점수, 자산 중요도 태그로 목록을 정렬합니다.
멈춤은 다음 단계에서 옵니다. 순위가 매겨진 3,000개의 발견 항목은 여전히 3,000개의 발견 항목이며, 순위는 추정치입니다. SCP가 이미 울타리를 친 역할에 대한 치명적 발견 항목은 아무것도 바꾸지 않습니다. 벤더 계정을 신뢰하는 역할에 대한 중간 수준의 발견 항목이 프로덕션으로 들어가는 경로일 수도 있습니다. 검증 없이 팀은 점수로 작업을 고르게 되며, 그 점수는 공격의 성립 여부를 결정하는 권한 부여를 읽지 않고 계산된 것입니다.
AWS 컨트롤 플레인에서 검증의 모습
AWS에서 공격자의 이동은 API 호출입니다. 각 호출은 AWS가 함께 평가하는 문서 집합에 의해 허용되거나 거부됩니다. 호출자의 자격 증명 정책, 권한 경계, 조직 단위의 서비스 제어 정책, 대상의 신뢰 정책 또는 리소스 정책, 그리고 각 문의 조건입니다. 검증은 후보 체인을 만든 뒤, 체인의 모든 단계에 대해 AWS가 하는 방식대로 이 문서들을 해석하는 것을 뜻합니다. 모든 단계가 허용으로 해석되면 경로는 증명됩니다. 어느 한 단계라도 거부로 해석되면 경로는 목록에서 제거됩니다.
이 중 어느 것도 무언가를 실행할 필요가 없습니다. 증거는 권한 부여 결과이며, 정책을 읽는 데는 읽기 권한만 있으면 됩니다. 이것이 이 단계를 실제로 지속적으로 만드는 이유입니다. 변경 기간 없이 모든 계정에서 매일 실행할 수 있습니다.
랩 계정의 수치
Pathbreak 랩 계정은 홈페이지에 나오는 수치의 바탕이 되는 환경입니다. 그곳에서 검증 단계가 만들어 낸 결과는 다음과 같습니다.
| 단계 | 결과 |
|---|---|
| 그래프에서 나온 후보 공격 경로 | 4,942 |
| 최상위 해결책을 계산할 때 범위에 있던 경로 | 4,087 |
| 하나의 역할에 대한 하나의 Deny 문으로 제거된 경로 | 4,087개 중 3,893개 |
| 상위 두 가지 변경으로 제거된 위험 | 80퍼센트 |
| 한 줄 명령으로 끝난 해결 | 81퍼센트 |
이 수치는 검증이 무엇을 위한 것인지 보여 줍니다. 수천 개의 후보 경로는 수천 개의 독립된 문제가 아니었습니다. 대부분이 같은 소수의 역할을 거쳐 갔기 때문에, 올바른 주체에 적용한 소수의 변경이 증명된 경로 대부분을 한 번에 차단했습니다. 심각도순 목록이었다면 같은 계정을 비슷한 무게의 4,942개 항목으로 보여 주었고, 팀은 하나씩 해결하러 나섰을 것입니다.
실행 단계가 검증에서 필요로 하는 것
다섯 번째 단계는 역할 담당자가 대응할 수 없는 발견 항목을 받을 때 실패합니다. 검증은 세 가지를 넘겨야 합니다. 첫째, 증명된 경로입니다. 각 홉의 이름이 붙은 체인으로 제공되어, 담당자가 왜 그 역할이 경로 위에 있는지 볼 수 있어야 합니다. 둘째, 이를 차단하는 구체적인 변경입니다. Deny 문, iam:PassedToService 조건, 더 좁은 신뢰 정책, 권한 제거처럼, 바로 적용할 수 있는 변경 그 자체로 작성되어야 합니다. 셋째, 확인입니다. 변경이 배포된 뒤 경로를 다시 평가해 결과를 기록하므로, 티켓은 증거를 근거로 종료됩니다.
랩에서는 해결의 81퍼센트가 한 줄 명령이었습니다. 이는 실행 단계에서 중요합니다. IAM 정책의 한 줄 변경은 몇 분 만에 리뷰를 통과하지만, 역할 계층 재설계는 다음 분기로 넘어가기 때문입니다.
단계를 지속적으로 만들기
계정은 배포할 때마다 변합니다. 새 역할, 넓어진 신뢰 정책, 와일드카드에 대한 iam:PassRole을 받은 파이프라인이 생기면, 지난달 닫혔던 경로가 다시 열립니다. 검증 단계는 일정에 따라 실행되고 무엇이 바뀌었는지 보고할 때만 계속 쓸모가 있습니다. 그래야 팀이 새로 증명된 경로를 나타난 날 바로 보고, 확인된 해결이 이후 되돌아간 경우도 볼 수 있습니다.
읽기 전용 검증은 이를 저렴하게 만듭니다. 에이전트도, 변경 기간도 없고, 테스트 자체로 인한 프로덕션 위험도 없으므로, 모든 계정에서의 매일 실행이 기본입니다.
CTEM 플랫폼에 AWS에 대해 물어볼 것
경로의 모든 단계에 대해 SCP, 권한 경계, 신뢰 정책, 조건 키를 해석하나요? 경로가 도달하는 대상을 기준으로, 계정 전반에 걸쳐 순위를 매기나요? 각 경로를 차단하는 변경을 제시하고, 이후 그 변경을 확인하나요? 계정에서 아무것도 실행하지 않고 매일 실행할 수 있나요? 이 답들이 실행 단계에서 플랫폼이 여러분의 팀에 무엇을 넘겨줄지 알려 줍니다.
Pathbreak는 AWS에서의 이 단계를 위해 만들어졌습니다. AWS를 위한 AEV 글은 검증 방법을 더 깊이 다루고, 분석과 검증 글은 하나의 체인을 도달 가능 단계에서 증명 단계까지 따라갑니다.
자주 묻는 질문
CTEM의 검증 단계란 무엇인가요?
검증은 지속적 위협 노출 관리의 네 번째 단계입니다. 발견 단계에서 우선순위가 매겨진 노출을 받아, 그중 어느 것을 공격자가 중요한 대상에 도달하는 데 사용할 수 있는지 증명합니다. 그래서 실행 단계가 증명된 경로를 다룰 수 있습니다. Pathbreak는 AWS의 검증 단계를 담당합니다.
검증은 우선순위 지정과 어떻게 다른가요?
우선순위 지정은 추정된 심각도, 악용 가능성, 자산 가치로 발견 항목의 순위를 매깁니다. 검증은 발견 항목을 거치는 경로가 실제로 성립하는지 시험하며, AWS에서는 각 단계의 전체 권한 부여를 해석해 이를 수행합니다. 우선순위가 높은 발견 항목이 검증에서 실패할 수 있고, 중간 수준의 발견 항목이 가장 피해가 큰 증명된 경로 위에 있을 수 있습니다. Pathbreak는 입증된 경로를 계정을 넘나들며 무엇에 도달하는지에 따라 순위를 매깁니다.
AWS에서 CTEM 검증을 하려면 침투 테스트가 필요한가요?
아니요. AWS 컨트롤 플레인에서 공격자의 모든 이동은 정책 문서가 결정하는 API 호출이므로, 이 문서들을 해석해 읽기 전용으로 증거를 만들 수 있습니다. 수동 테스트는 애플리케이션 로직과 컨트롤 플레인 밖에 있는 환경 부분에 대해서는 여전히 가치가 있습니다. Pathbreak는 이 증거를 읽기 전용으로 만들어 내며, 수동 테스트를 보완합니다.
검증 단계는 얼마나 자주 실행해야 하나요?
자주 바뀌는 AWS 계정이라면 매일 실행해야 하며, 대부분의 계정이 여기에 해당합니다. 읽기 전용 검증에는 운영 위험이 없으므로, 일정에 따라 실행하며 새로 증명된 경로와 되돌아간 해결을 나타나는 즉시 보고할 수 있습니다. Pathbreak는 기본적으로 이를 매일 실행합니다.