
클라우드 침투 테스트를 위한 상황 인식 자동화
CloudFox는 낯선 클라우드 환경에서 상황 인식을 얻는 데 도움을 줍니다. 침투 테스터 및 기타 공격적 보안 전문가가 클라우드 인프라에서 악용 가능한 공격 경로를 찾을 수 있도록 설계된 오픈 소스 명령줄 도구입니다.
CLOUDFOX 업데이트 필요: (2025년 12월):
cloudfox를 사용 중이라면 v1.17.0 이상을 사용해야 합니다. 모든 이전 버전은 AWS의 공개 서비스 매핑 파일 형식 변경 후 작동이 중단되었습니다.
개요
RedSec 디스코드 서버에 참여하세요.
CloudFox는 모듈식(한 번에 하나의 명령어 실행 가능)이지만, aws all-checks 명령어를 사용하면 적절한 기본값으로 다른 AWS 명령어를 실행할 수 있습니다:
cloudfox aws --profile [프로필-이름] all-checks

CloudFox는 제한된 읽기 전용 권한을 가진 주체가 실행하도록 설계되었지만, 시뮬레이션된 침해 시나리오(즉, 목표 기반 침투 테스트)에서 악용할 수 있는 공격 경로를 찾는 데 목적이 있습니다.
CloudFox는 weirdAAL 또는 enumerate-iam을 사용하는 방식과 유사하게 "발견된" 자격 증명과 함께 사용할 수 있습니다. 실패한 검사는 조용히 실패하므로 반환된 데이터는 "발견된" 자격 증명이 해당 데이터를 검색하는 데 필요한 액세스 권한을 가지고 있음을 의미합니다.
전체 문서는 위키를 참조하세요.
| 제공자 | CloudFox 명령어 |
|---|---|
| AWS | 34 |
| Azure | 4 |
| GCP | 60 |
| Kubernetes | 지원 예정 |
옵션 1: 플랫폼에 맞는 최신 바이너리 릴리스를 다운로드하세요.
옵션 2: homebrew를 사용하는 경우: brew install cloudfox
옵션 3: Go 설치 후, go install github.com/BishopFox/cloudfox@latest를 사용하여 원격 소스에서 설치하세요.
옵션 4: 개발자 모드:
Go를 설치하고, CloudFox 저장소를 클론한 후 소스에서 컴파일하세요. ```
**Option 5:** 버그 수정 테스트 ```
git clone [email protected]:BishopFox/cloudfox.git
git checkout seth-dev
go build .
./cloudfox [rest of the command options]
-l 플래그를 사용하여 개행으로 구분된 프로필 이름 목록이 포함된 파일 경로를 지정하거나 -a 플래그로 저장된 모든 프로필을 전달할 수 있습니다.SecurityAudit + CloudFox 사용자 정의 정책추가 정책 참고 사항(2022년 9월 기준):
| 정책 | 참고 사항 |
|---|---|
| CloudFox 사용자 정의 정책 | CloudFox가 사용하는 모든 권한의 전체 목록을 포함하며 그 외에는 아무것도 없음 |
arn:aws:iam::aws:policy/SecurityAudit | 대부분의 CloudFox 검사를 포함하지만 apprunner:*, grafana:*, lambda:GetFunctionURL, lightsail:GetContainerServices와 같은 최신 서비스 또는 권한은 누락됨 |
arn:aws:iam::aws:policy/job-function/ViewOnlyAccess | 대부분의 CloudFox 검사를 포함하지만 AppRunner:*, grafana:*, lambda:GetFunctionURL, lightsail:GetContainerServices와 같은 최신 서비스 또는 권한이 누락되고 iam:SimulatePrincipalPolicy도 누락됨 |
arn:aws:iam::aws:policy/ReadOnlyAccess | AppRunner만 누락되었지만 "s3:Get*"과 같은 항목도 부여하여 과도하게 허용적일 수 있음 |
arn:aws:iam::aws:policy/AdministratorAccess | CloudFox와 함께 사용해도 문제없지만, 침투 테스터로서 이 수준의 액세스 권한을 받았다면 그 자체로 문제가 될 수 있습니다 :) |
gcloud auth application-default login)최소 권한 (단일 프로젝트):
단일 프로젝트의 기본 열거를 위해 roles/viewer 역할은 대부분의 리소스에 대한 읽기 액세스를 제공합니다 (로깅, 모니터링, 컴퓨팅/네트워크 보기 포함).
포괄적 권한 (조직 전체):
조직 전체의 철저한 보안 평가를 위해:
| 범위 | 역할 | 목적 |
|---|---|---|
| 조직 | roles/resourcemanager.organizationViewer | 조직 구조 및 메타데이터 보기 |
| 조직 | roles/iam.securityReviewer | 조직 전체의 IAM 정책 검토 |
| 조직 | roles/cloudasset.viewer | 모든 리소스에 대한 Cloud Asset Inventory 쿼리 |
| 조직 | roles/cloudidentity.groupsViewer | Google 그룹 및 멤버십 열거 |
| 폴더 | roles/resourcemanager.folderViewer | 폴더 계층 구조 및 메타데이터 보기 |
| 프로젝트 | roles/viewer | 대부분의 프로젝트 리소스에 대한 읽기 액세스 (logging.viewer, monitoring.viewer, compute.viewer 포함) |
| 도구 프로젝트 | roles/serviceusage.serviceUsageAdmin | (선택 사항) CloudFox 작업을 위한 API 할당량 관리 |
참고: 기본
roles/viewer역할에는roles/logging.viewer,roles/monitoring.viewer,roles/compute.networkViewer의 권한이 포함되어 있으므로 별도로 부여할 필요가 없습니다.
평가하려는 각 프로젝트에서 API를 활성화해야 합니다. GCP API는 프로젝트 범위로 지정됩니다.
| API | 서비스 이름 | 목적 |
|---|---|---|
| Cloud Identity API | cloudidentity.googleapis.com | 그룹 열거, 상속된 역할 분석 |
| Cloud Asset API | cloudasset.googleapis.com | 프로젝트 간 리소스 검색 |
| Cloud Resource Manager API | cloudresourcemanager.googleapis.com | 조직 매핑, IAM 열거 |
| IAM API | iam.googleapis.com | IAM 분석, 권한 상승 탐지 |
| Compute Engine API | compute.googleapis.com | 인스턴스 열거, 네트워크 보안 |
| Secret Manager API | secretmanager.googleapis.com | 시크릿 열거 |
| Cloud Functions API | cloudfunctions.googleapis.com | 서버리스 열거 |
| Cloud Run API | run.googleapis.com | 서버리스 열거 |
| Kubernetes Engine API | container.googleapis.com | 컨테이너 보안 분석 |
| BigQuery API | bigquery.googleapis.com | 데이터 보안 분석 |
자세한 설정 지침은 GCP 설정 가이드를 참조하세요.