Prowler는 AWS, GCP, Kubernetes(K8s) 등의 클라우드 환경을 대상으로 보안 점검을 수행하는 오픈소스 도구입니다.
보안 취약점을 자동으로 검사하고, 클라우드 보안 모범 사례(Best Practices)에 따라 구성 오류를 발견하여 보고서를 생성할 수 있습니다. Prowler의 개요, 기능, 사용법, 그리고 실전 활용 사례를 소개합니다.
1. Prowler란?
📌 Prowler의 정의
Prowler는 AWS 및 GCP, K8s 등 다양한 클라우드 환경에서 보안 설정이 올바르게 적용되었는지 점검하는 오픈소스 툴입니다. 클라우드 환경에서 잘못된 보안 설정이나 정책 위반을 감지하고, 그에 대한 보고서를 생성하여 관리자에게 알릴 수 있습니다.
📌 Prowler의 주요 특징
✅ 오픈소스: 누구나 무료로 사용할 수 있으며, GitHub에서 소스 코드 제공
✅ 멀티 클라우드 지원: AWS, GCP, Kubernetes 보안 점검 가능
✅ 보안 프레임워크 적용: CIS Benchmarks, GDPR, ISO27001 등 국제 보안 기준 지원
✅ 자동화 가능: CI/CD 파이프라인 및 보안 모니터링 워크플로우에 통합 가능
✅ 다양한 출력 포맷: JSON, CSV, HTML, PDF 등 다양한 형식의 보고서 생성
2. Prowler의 주요 기능
Prowler는 클라우드 보안 취약점 점검을 위한 다양한 기능을 제공합니다.
✅ 2.1 AWS 보안 점검
AWS 보안 점검 시 아래 항목을 분석하여 취약점을 탐지합니다.
- IAM (Identity & Access Management)
- Root 계정 MFA 설정 여부
- IAM 정책의 과도한 권한 부여 여부
- IAM 사용자 및 그룹 권한 분석
- S3 (Simple Storage Service)
- 퍼블릭 액세스 설정 여부
- 버킷 암호화 상태 점검
- 버킷 접근 제어 리스트(ACL) 검사
- EC2 & 네트워크
- 보안 그룹 설정 분석 (예:
0.0.0.0/0
허용 여부) - 인스턴스 접근 제어 정책 검토
- VPC 플로우 로그 활성화 여부 확인
- 보안 그룹 설정 분석 (예:
- 로그 및 모니터링
- AWS CloudTrail 활성화 여부
- AWS Config 설정 상태
- GuardDuty 및 AWS Security Hub 활성화 여부
✅ 2.2 GCP 보안 점검
GCP 환경에서는 IAM, 방화벽 규칙, 저장소 보안 설정 등을 분석합니다.
- IAM 정책 점검
- Cloud Storage 공개 접근 확인
- Firewall 규칙 설정 분석
- Cloud Logging & Monitoring 활성화 여부 확인
✅ 2.3 Kubernetes (K8s) 보안 점검
- RBAC(Role-Based Access Control) 설정 검사
- Kubernetes 네트워크 정책 점검
- Pod 및 컨테이너의 보안 설정 확인
- ETCD 데이터 암호화 여부 점검
3. Prowler 설치 및 실행 방법
📌 3.1 설치 방법
Prowler는 Docker를 사용하여 쉽게 실행할 수 있습니다.
Docker 기반 실행
docker run -it --rm ghcr.io/prowler-cloud/prowler:latest -h
AWS 보안 점검 실행
docker run -it --rm ghcr.io/prowler-cloud/prowler:latest -M aws
GCP 보안 점검 실행
docker run -it --rm ghcr.io/prowler-cloud/prowler:latest -M gcp
Kubernetes 보안 점검 실행
docker run -it --rm ghcr.io/prowler-cloud/prowler:latest -M k8s
📌 3.2 AWS 보안 점검 예제
AWS 환경에서 보안 점검을 수행하고 결과를 JSON으로 출력하는 예제입니다.
prowler -M aws -f json -o results.json
출력 결과 (JSON)
{
"id": "IAM-01",
"title": "Root account MFA is not enabled",
"severity": "critical",
"status": "FAIL"
}
4. Prowler의 활용 사례
📌 4.1 정기적인 클라우드 보안 점검
- 기업 내 AWS, GCP, Kubernetes의 보안 상태를 정기적으로 점검
- CIS Benchmarks 및 기타 규정 준수 여부 확인
- 자동화된 점검 스케줄링 (예:
cron
을 사용한 매일 점검)
예제: AWS 환경을 매일 자동 점검
0 2 * * * prowler -M aws -o /var/reports/aws-security-report.json
📌 4.2 보안 이벤트 탐지 후 대응 자동화
- AWS Lambda 또는 CI/CD 파이프라인에 통합하여 보안 이벤트 탐지 후 조치
- 예를 들어, S3 버킷이 퍼블릭 설정으로 변경되었을 때 즉시 알림
📌 4.3 Slack, Discord 등과 연동하여 알람 발송
Prowler 결과를 Slack 또는 Discord로 자동 전송하여 보안팀이 즉시 확인할 수 있도록 구성 가능
prowler -M aws -o json | curl -X POST -H "Content-Type: application/json" -d @- https://hooks.slack.com/services/XXX/YYY/ZZZ
5. Prowler의 장점과 단점
✅ Prowler의 장점
- 오픈소스 & 무료: 추가 비용 없이 사용 가능
- 멀티 클라우드 지원: AWS, GCP, Kubernetes 보안 점검 가능
- 규정 준수 지원: CIS Benchmarks, GDPR, ISO27001 등 국제 보안 기준 적용
- 자동화 가능: CI/CD 및 DevSecOps 파이프라인에 쉽게 통합 가능
❌ Prowler의 한계
- 초기 설정 필요: 클라우드 환경에 맞게 인증 및 설정 필요
- 제한된 커버리지: 일부 클라우드 서비스의 보안 점검이 포함되지 않을 수 있음
- 심층적인 보안 분석 부족: 네트워크 침입 탐지 및 이상 행동 감지 기능은 부족
Prowler는 AWS, GCP, Kubernetes 환경에서 클라우드 보안 점검을 자동화할 수 있는 강력한 오픈소스 도구입니다. 정기적으로 클라우드 환경을 점검하고, 자동화된 보안 워크플로우를 구축하는 데 유용하게 활용할 수 있습니다.
🔐 보안 강화는 선택이 아닌 필수입니다!
Prowler API 주요 기능 요약
Prowler API는 클라우드 보안 스캐닝 및 모니터링을 위한 RESTful API를 제공하며, AWS, GCP, Azure 등 다양한 클라우드 환경에서 보안 및 규정 준수를 자동화하는 기능을 포함합니다. 아래는 주요 기능입니다.
1. 사용자 관리 (User Management)
- 사용자 목록 조회 (
GET /api/v1/users
)- 사용자 계정 정보 조회 (필터 및 정렬 기능 포함)
- 사용자 생성 (
POST /api/v1/users
)- 새 사용자 계정 등록 (초대 토큰 사용 가능)
- 사용자 정보 조회 (
GET /api/v1/users/{id}
)- 특정 사용자 정보 상세 조회
- 사용자 정보 업데이트 (
PATCH /api/v1/users/{id}
)- 일부 정보만 수정 가능
- 사용자 삭제 (
DELETE /api/v1/users/{id}
)- 특정 사용자 계정 삭제
2. 토큰 관리 (Token Management)
- 토큰 생성 (
POST /api/v1/tokens
)- 사용자 인증 후 액세스 토큰 발급
- 토큰 갱신 (
POST /api/v1/tokens/refresh
)- 기존 토큰을 갱신하여 새 액세스 토큰 획득
3. 클라우드 제공업체 관리 (Provider Management)
- 클라우드 제공업체 목록 조회 (
GET /api/v1/providers
)- AWS, GCP, Azure 등의 클라우드 계정 목록 확인
- 새 클라우드 제공업체 추가 (
POST /api/v1/providers
)- 클라우드 계정 추가
- 클라우드 계정 상세 조회 (
GET /api/v1/providers/{id}
)- 특정 클라우드 제공업체 정보 조회
- 클라우드 제공업체 삭제 (
DELETE /api/v1/providers/{id}
)- 클라우드 계정 삭제
- 클라우드 계정 연결 확인 (
POST /api/v1/providers/{id}/connection
)- 클라우드 계정 연결 상태 점검
4. 스캔 및 보안 점검 (Scan & Security Audits)
- 스캔 목록 조회 (
GET /api/v1/scans
)- 모든 보안 스캔 기록 확인 (필터 적용 가능)
- 수동 보안 스캔 실행 (
POST /api/v1/scans
)- 특정 환경에서 수동 보안 점검 수행
- 특정 스캔 결과 조회 (
GET /api/v1/scans/{id}
)- 특정 스캔의 세부 정보 조회
- 스캔 업데이트 (
PATCH /api/v1/scans/{id}
)- 특정 스캔 데이터 수정
- 자동 스캔 일정 등록 (
POST /api/v1/schedules/daily
)- 지정된 클라우드 환경에서 정기적인 보안 점검 실행 설정
5. 리소스 및 발견된 취약점 관리 (Resource & Findings)
- 리소스 목록 조회 (
GET /api/v1/resources
)- 스캔을 통해 발견된 클라우드 리소스 정보 확인
- 리소스 세부 정보 조회 (
GET /api/v1/resources/{id}
)- 특정 클라우드 리소스의 상세 정보 확인
- 취약점 목록 조회 (
GET /api/v1/findings
)- 보안 점검 결과에서 발견된 보안 취약점 목록 조회
- 취약점 세부 정보 조회 (
GET /api/v1/findings/{id}
)- 특정 보안 취약점 상세 조회
- 취약점 요약 통계 조회 (
GET /api/v1/overviews/findings_severity
)- 전체 시스템에서 취약점 개수 및 심각도 분포 확인
6. 규정 준수 및 정책 관리 (Compliance & Policy Management)
- 컴플라이언스 개요 조회 (
GET /api/v1/compliance-overviews
)- 클라우드 환경에서 적용된 보안 정책 및 규정 준수 상태 확인
- 특정 컴플라이언스 세부 조회 (
GET /api/v1/compliance-overviews/{id}
)- 특정 정책의 상세 정보 확인
- 서비스별 보안 점검 데이터 조회 (
GET /api/v1/overviews/services
)- 특정 클라우드 서비스의 보안 점검 결과 요약 확인
7. 역할 및 권한 관리 (Role-Based Access Control)
- 역할 목록 조회 (
GET /api/v1/roles
)- 시스템 내에서 정의된 모든 역할 정보 확인
- 새로운 역할 생성 (
POST /api/v1/roles
)- 사용자 및 관리자 권한 설정을 위한 역할 추가
- 특정 역할 정보 조회 (
GET /api/v1/roles/{id}
)- 특정 역할의 권한 및 설정 확인
- 역할 업데이트 (
PATCH /api/v1/roles/{id}
)- 기존 역할 정보 수정
- 역할 삭제 (
DELETE /api/v1/roles/{id}
)- 특정 역할 제거
8. 작업 관리 (Task Management)
- 작업 목록 조회 (
GET /api/v1/tasks
)- 시스템에서 실행된 모든 작업 목록 확인
- 특정 작업 조회 (
GET /api/v1/tasks/{id}
)- 특정 작업의 세부 정보 확인
- 작업 취소 (
DELETE /api/v1/tasks/{id}
)- 아직 실행되지 않은 작업을 취소
Prowler API는 클라우드 보안 및 규정 준수를 자동화하기 위한 강력한 기능을 제공하며, 사용자 관리, 스캔, 취약점 탐지, 역할 기반 접근 제어, 규정 준수 모니터링을 포함한 다양한 보안 기능을 제공합니다. 이를 활용하여 기업은 클라우드 환경에서의 보안 태세를 개선하고, 지속적인 보안 점검 및 정책 관리가 가능합니다.
댓글