CyberArk 보안 감사
CyberArk Privileged Access Management (PAM) 플랫폼을 위한 포괄적인 PowerShell 기반 보안 평가 도구입니다. 오펜시브 보안 전문가, 레드팀원, 침투 테스터를 위해 설계되었습니다.
이 도구는 네트워크를 통해 원격으로 CyberArk 서버에 대해 실행되도록 설계되었습니다. CyberArk 서버 자체에서 실행할 필요가 없습니다. 모든 검사는 PVWA API, 포트 스캐닝 및 웹 테스트를 통해 네트워크를 통해 수행됩니다.
이 도구는 CIS 벤치마크 준수, 공급업체 모범 사례, 블랙박스 테스트, 네트워크 보안 분석, CVE 특정 취약점 점검(2025 CVE 포함), 머신 ID 보안, 시크릿 관리, 제로 스탠딩 권한(ZSP) 평가, ID 거버넌스 및 향상된 보안 점검을 포함한 보안 검사를 수행합니다.
| 기능 | 설명 |
|---|
| 원격 감사 | 모든 검사가 네트워크를 통해 원격으로 수행 - CyberArk 서버에 설치할 필요 없음 |
| OPSEC 모드 | 지연, 지터 및 탐지 노출 감소를 통한 은밀 스캐닝 |
| 프록시 지원 | 모든 트래픽을 Burp Suite, ZAP 또는 기타 인터셉트 프록시를 통해 라우팅 |
| 타이밍 공격 | 응답 시간 분석을 통한 사용자 열거 및 블라인드 인젝션 탐지 |
| JWT 보안 | none 알고리즘 우회, 키 혼동, 취약한 서명 알고리즘 테스트 |
| WebSocket 테스트 | 실시간 엔드포인트 발견 및 Cross-Site WebSocket Hijacking 테스트 |
| WAF 우회 | 인코딩 우회, HTTP Parameter Pollution, 요청 스머글링 테스트 |
| User-Agent 순환 | 무작위 또는 사용자 지정 User-Agent 문자열로 지문 수집 우회 |
| 병렬 실행 | 더 빠른 스캔을 위한 선택적 병렬 실행 |
| 조용한 모드 | 자동화 및 스크립팅을 위한 콘솔 출력 감소 |
| 자격 증명 보안 | 사용 후 메모리 정리가 포함된 안전한 자격 증명 처리 |
| 포괄적인 보고 | HTML 대시보드, 7개의 CSV 파일 및 프로그램 사용을 위한 구조화된 JSON |
| PoC 증거 | 침투 테스트를 위한 요청/응답 증명이 HTML 보고서에 포함됨 |
| 선택적 실행 | 특정 검사 범주만 실행 가능 (portscan, CVE, blackbox, authenticated, network) |
| 오탐지 감소 | SPA catch-all 오탐지를 제거하기 위한 기준 지문 수집 |
| ID 인증 테스트 | StartAuthentication/ForgotUsername 정보 공개 및 열거 검사 |
| 요구사항 | 최소 | 권장 |
|---|---|---|
| PowerShell | 7.0 | 7.x (최신) |
| .NET Framework | 4.5 | 4.8+ |
| 운영 체제 | Windows 10/Server 2016 | Windows 11/Server 2022 |
| 메모리 | 2 GB 이상 | 4 GB 이상 |
| 감사 단계 | 필요한 접근 권한 |
|---|---|
| 1단계 (인증되지 않음) | PVWA에 대한 네트워크 접근 (HTTPS/443) |
| 2단계 (인증됨) | Vault Admin 또는 Auditor 역할을 가진 CyberArk API 자격 증명 |
이 스크립트는 완전히 자체 포함되어 있으며 네이티브 PowerShell 및 .NET Framework 기능만 사용합니다. 추가 도구나 모듈을 설치할 필요가 없습니다.
스크립트는 다음을 활용합니다:
System.Net.Sockets.TcpClient, System.Net.Security.SslStream - 네트워크 및 TLS 분석용Invoke-WebRequest, Invoke-RestMethod - HTTP/API 테스트용System.Security.Cryptography.X509Certificates - 인증서 분석용PowerShell을 열고 다음을 실행하세요:```powershell $PSVersionTable.PSVersion
주 버전이 **7 이상**인지 확인하세요. 그렇지 않다면, [PowerShell 7.x를 다운로드](https://github.com/PowerShell/PowerShell/releases)하세요.
> **참고:** 이 스크립트는 PowerShell 7.0 이상이 필요합니다. Windows PowerShell 5.1은 지원되지 않습니다.
### 2단계: 스크립트 다운로드
**옵션 A: 저장소 클론 (권장)**```powershell
git clone https://github.com/Logisek/HuntCyberArk.git
cd HuntCyberArk
옵션 B: 직접 다운로드```powershell
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/Logisek/HuntCyberArk/main/CyberArk-Security-Audit.ps1" -OutFile "CyberArk-Security-Audit.ps1"
### 3단계: 실행 정책 설정 (필요한 경우)
스크립트 실행 오류가 발생하면 일시적으로 스크립트 실행을 허용하세요:```powershell
# Check current policy
Get-ExecutionPolicy
# Set for current session only (recommended)
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
# Or unblock the downloaded script
Unblock-File -Path .\CyberArk-Security-Audit.ps1
적절한 TLS 테스트를 위해 PowerShell 세션이 TLS 1.2+를 지원하는지 확인하십시오:```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
### 5단계: 연결 확인
PVWA 서버에 도달할 수 있는지 확인하세요:```powershell
# Test basic connectivity
Test-NetConnection -ComputerName pvwa.domain.com -Port 443
# Test HTTPS endpoint
Invoke-WebRequest -Uri "https://pvwa.domain.com/PasswordVault/" -UseBasicParsing -TimeoutSec 10
PowerShell 7은 향상된 성능과 더 나은 TLS 지원을 제공합니다:```powershell
winget install Microsoft.PowerShell
## 감사 단계 및 인증 요구사항
감사는 두 단계로 실행되며, 각 단계마다 다른 인증 요구사항이 있습니다:
### 1단계: 인증되지 않은 검사 (자격 증명 불필요)
자격 증명 없이 실행할 수 있는 외부/블랙박스 테스트:
- 네트워크 보안 (포트 스캐닝, 볼트 포트 노출)
- TLS/SSL 구성 및 인증서 분석
- 블랙박스 웹 보안 (노출된 엔드포인트, 정보 노출)
- PVWA 보안 헤더 및 쿠키 보안
- CVE 특정 취약점 테스트 (2025 CVE 포함)
- API 보안 테스트 (인증되지 않은 엔드포인트)
- 구성 요소 버전 탐지
- 타이밍 공격 탐지
- JWT/OAuth2 보안 테스트
- WebSocket 엔드포인트 발견
- WAF 우회 테스트
- CyberArk Identity/Privilege Cloud 인증 엔드포인트 테스트 (StartAuthentication, ForgotUsername)
**사용 사례**: 침투 테스트, 외부 보안 평가, 신속한 정찰
### 2단계: 인증된 검사 (CyberArk API 자격 증명 필요)
CyberArk REST API 접근이 필요한 심층 구성 감사:
- Safe 구성 및 권한
- 계정 및 자격 증명 관리 설정
- 플랫폼 구성
- 사용자 계정 및 볼트 권한
- 인증 방법 설정
- 구성 요소 상태
- Master Policy, PSM, CPM, PTA 구성
- 머신 ID 보안 (서비스 계정, AppID)
- 시크릿 관리 (CP/CCP 구성)
- 제로 스탠딩 권한 (JIT 접근 평가)
- ID 거버넌스 (고립된 ID, 권한 표류)
- 클라우드 보안 (AWS/Azure/GCP 통합)
- 재해 복구 (DR Vault, HA 클러스터 상태)
- 규정 준수 매핑 (NIST, SOC 2, PCI-DSS)
- Secrets Hub 통합 (클라우드 네이티브 시크릿 동기화)
- 원격 접속 / Alero 보안
- Kubernetes 시크릿 보안
- DevSecOps 파이프라인 보안
- Privilege Cloud / SaaS 특정 검사
- CyberArk Identity / Idaptive 통합
- 사용자 정의 플러그인 보안
- 백업 보안
- HSM 통합
- PTA 고급 탐지
- 타사 통합 (SIEM, ITSM, SOAR)
- 운영 위생 지표
- 공격 경로 시뮬레이션
- 공급망 무결성
- 네트워크 분할
**필요한 권한**: Vault Admin 또는 Auditor 역할 권장
## 기능
### 보안 점검 카테고리
| Category | Control Prefix | Description |
|----------|---------------|-------------|
| CIS Benchmark | 1.x - 8.x | CIS CyberArk PAM Benchmark v1.0 규정 준수 |
| Vendor Best Practices | V1.x - V8.x | CyberArk 보안 강화 권장 사항 |
| Blackbox Testing | BB1 - BB11 | 인증 없는 외부 보안 테스트 |
| Network Security | NET1 - NET7 | 포트 스캐닝 및 네트워크 노출 분석 |
| TLS Security | TLS1 - TLS4 | SSL/TLS 구성 및 암호 분석 |
| CVE Checks | CVE1 - CVE23 | 알려진 CyberArk 취약점 탐지 (2018-2025) |
| Security Bulletins | CA25-x | CyberArk 보안 게시판 점검 |
| API Security | API1 - API5 | REST API 보안 테스트 |
| Authentication Security | AUTH1 - AUTH2 | CyberArk Identity/Privilege Cloud 인증 엔드포인트 테스트 |
| **Advanced Security** | | |
| Machine Identity | MID1 - MID9 | 서비스 계정, AppID 및 AIM Provider 보안 |
| Secrets Management | SEC1 - SEC14 | Credential Provider/CCP 및 Conjur 보안 |
| Zero Standing Privileges | ZSP1 - ZSP5 | JIT 접근 및 권한 평가 |
| Identity Governance | IGA1 - IGA8 | 라이프사이클 및 권한 관리 |
| EPM Integration | EPM1 - EPM6 | Endpoint Privilege Manager 점검 |
| Cloud Security | CLD1 - CLD6 | Secure Cloud Access 점검 |
| Disaster Recovery | DR1 - DR5 | HA 및 DR 구성 |
| Compliance Mapping | COMP1 - COMP4 | NIST, SOC2, PCI-DSS 정렬 |
| Audit Logging | AUD1 - AUD4 | SIEM 및 로깅 검증 |
| **Security Posture Expansion** | | |
| Secrets Hub | SH1 - SH6 | 클라우드 시크릿 동기화 상태, 지연 시간, 버전 표류 |
| Remote Access / Alero | RA1 - RA6 | 공급업체 초대, MFA, 세션 제한, 장치 바인딩 |
| Kubernetes Secrets | K8S1 - K8S8 | Secrets Provider, RBAC, 파드 보안, Conjur 팔로워 |
| DevSecOps Pipeline | DSO1 - DSO6 | CI/CD 시크릿 검색, 확산 탐지, 단기 토큰 |
| Privilege Cloud | PC1 - PC5 | 커넥터 상태, 테넌트 격리, ISP 통합 |
| CyberArk Identity | IDN1 - IDN6 | SSO 통합, 적응형 MFA, 세션 위험 점수 |
| Custom Plugins | PLG1 - PLG5 | PSM/CPM 플러그인 보안, 디지털 서명, ACL |
| Backup Security | BKP1 - BKP5 | 암호화, 파일 권한, 복원 테스트 |
| HSM Integration | HSM1 - HSM4 | HSM 상태, 키 래핑, 파티션 격리 |
| PTA Deep Dive | PTAD1 - PTAD6 | 사용자 정의 규칙, ML 품질, UEBA, 알림 피로 |
| Third-Party Integration | TPI1 - TPI5 | SIEM/ITSM/SOAR 연결, 자격 증명 상태 |
| Operational Hygiene | OPS1 - OPS8 | 온보딩 대기열, CPM 실패, PSM 지표, 라이선스 |
| Attack Path Simulation | APS1 - APS6 | PtH, NTLM 릴레이, Kerberoasting, 권한 상승 |
| Supply Chain Integrity | SCI1 - SCI5 | 파일 해시, 패치 최신성, 코드 서명 |
| Network Segmentation | NSG1 - NSG5 | 볼트 격리, 구성 요소 ACL, 동서 모니터링 |
### 상세 점검 범위
#### CIS Benchmark 규정 준수 (1.x - 8.x)
- 전용 Vault 서버 구성
- 방화벽 규칙 및 서비스 강화
- Master Policy 비밀번호 설정
- 비밀번호 복잡성 및 만료
- Safe 접근 및 권한
- 자동 비밀번호 관리
- MFA 및 LDAP 보안
- PSM 세션 녹화
- 감사 로깅 및 SIEM 통합
- TLS 구성
#### Vendor Best Practices (V1.x - V8.x)
- Master Policy 설정 (유효 기간, 일회용 비밀번호, 독점 접근)
- PSM 녹화, 키스트로크 로깅, 클립보드 제한
- 계정 발견 및 온보딩 규칙
- PTA 이상 탐지
- 연결 구성 요소 보안
- 연결된 계정 (로그온/조정)
- PVWA HTTP 보안 헤더
- CPM 서비스 구성
#### 블랙박스 보안 테스트 (BB1 - BB11)
- 노출된 민감 엔드포인트 (Swagger, API 문서, 관리 페이지)
- 정보 노출 (버전, 스택 추적)
- 기본 자격 증명 테스트
- 위험한 HTTP 메서드 (PUT, DELETE, TRACE)
- 쿠키 보안 속성 (Secure, HttpOnly, SameSite)
- CORS 잘못된 구성
- 백업/구성 파일 노출
- 디렉터리 목록
- SSL/TLS 인증서 문제
- 속도 제한 탐지
- 알려진 취약점 패턴
#### CyberArk Identity / Privilege Cloud 인증 보안 (AUTH1 - AUTH2)
- **StartAuthentication 정보 노출**: 다음을 포함한 민감 데이터 노출 탐지:
- 사전 인증 응답의 세션 ID 노출
- 인증 챌린지를 통한 사용자 열거 (유효 vs 무효 사용자)
- MFA 메커니즘 노출 (UP, SMS, EMAIL, OATH, QR 등)
- 인증 응답의 이메일/PII 노출
- 테넌트 ID 노출
- 인증 구성 세부 정보
- **ForgotUsername 엔드포인트 열거**: 비밀번호 복구를 통한 사용자 이름 열거 테스트:
- 기능 가용성 탐지
- 유효 vs 무효 사용자에 대한 차등 응답 분석
#### 네트워크 보안 (NET1 - NET7)
- **포트 스캐닝**: CyberArk 특정 포트에 대한 종합 스캔
- PVWA (443, 80)
- Vault (1858, 1859)
- 관리 (RDP, SSH, WinRM)
- 데이터베이스 (MSSQL, MySQL, PostgreSQL, Oracle)
- 프로토콜 (SMB, NetBIOS, LDAP, SNMP)
- Vault 포트 (1858) 보안 분석
- DNS 보안 구성
#### TLS/SSL 보안 (TLS1 - TLS4)
- 취약한 프로토콜 탐지 (SSLv2, SSLv3, TLS 1.0, TLS 1.1)
- 암호 제품군 강도 분석
- 취약한 암호 탐지 (RC4, DES, 3DES, MD5, NULL, EXPORT)
- 인증서 유효성 검사
- 키 크기 확인
- 서명 알고리즘 확인
#### CVE 특정 취약점 점검 (CVE1 - CVE23)
- **CVE-2018-9842**: 포트 1858을 통한 Vault 메모리 노출
- **CVE-2018-9843**: PVWA 역직렬화 RCE (사전 인증)
- **CVE-2019-7442**: SAML 인증의 XXE
- **CVE-2021-31796**: 원격 자격 증명 파일 악용 (노출된 .cred 파일을 프로브하고 VerificationsFlag를 분석하여 비밀번호 복호화 가능 여부 확인)
- **CVE-2021-37151**: MFA 응답 길이를 통한 CyberArk Identity 사용자 이름 열거 (중간) - StartAuthentication 정보 노출 검사를 통해 탐지
- **CVE-2022-22700**: X-CFY-TX-TM 타이밍 헤더를 통한 CyberArk Identity 사용자 이름 열거 (중간) - StartAuthentication 정보 노출 검사를 통해 탐지
- **CWE-200**: StartAuthentication 엔드포인트 정보 노출 (세션 ID, MFA 메커니즘, 테넌트 ID, 인증 구성)
- **CWE-203**: 관찰 가능한 불일치를 통한 ForgotUsername 엔드포인트 사용자 이름 열거
- **CVE-2024-42340**: CWE-602 클라이언트 측 강제 우회
- **CVE-2024-42339**: IDOR / 민감 정보 노출
- **CVE-2024-54840**: PVWA 호스트 헤더 주입 (중간)
- **CVE-2024-57967**: PVWA LDAP 매핑 권한 상승 (중간)
- **CVE-2025-22270**: 역할 관리의 EPM HTML 주입
- **CVE-2025-22271**: EPM X-Forwarded-For 스푸핑
- **CVE-2025-22272**: modalDlgMsgInternal을 통한 EPM XSS
- **CVE-2025-22273**: EPM 비밀번호 변경 무차별 대입
- **CVE-2025-22274**: EPM 애플리케이션 정의 주입
- **CVE-2025-49827**: Secrets Manager IAM 인증 우회 (치명적)
- **CVE-2025-49828**: Secrets Manager 원격 코드 실행 (높음)
- **CVE-2025-49829**: Secrets Manager 유효성 검사 누락 (보통)
- **CVE-2025-49830**: Secrets Manager 경로 탐색 및 파일 노출 (높음)
- **CVE-2025-49831**: Secrets Manager 네트워크 우회 (치명적)
- 보안 게시판: CA25-25, CA25-29, CA25-32, CA25-34, CA25-35
- 추가 점검: 경로 탐색, Log4Shell 지표, 레거시 API 버전
- 타사: ag-grid 프로토타입 오염 (CVE-2024-38996), Log4Shell (CVE-2021-44228)
#### API 보안 테스트 (API1 - API5)
- **BOLA/IDOR**: 객체 수준 권한 위반
- **인젝션 테스트**: SQL 인젝션, LDAP 인젝션
- **대량 할당**: 권한 속성 주입
- **API 버전 관리**: 레거시 API 엔드포인트 탐지
#### 고급 보안 점검
- 구성 요소 버전 탐지 및 CVE 매핑
- 세션 보안 (고정, 동시 세션)
- 헤더 주입 (호스트 헤더, CRLF)
- SOAP 엔드포인트에서 XXE 취약점 테스트
#### 머신 ID 보안 (MID1 - MID9)
- 서비스 계정 열거 및 권한 분석
- 머신 ID 비밀번호 순환 검증
- 과도한 권한 서비스 계정 탐지
- 인증서 기반 인증 구성
- AppID 보안 검증 (허용된 머신, OS 사용자 제한)
- 오래된 머신 ID 탐지
- AIM Provider 배포 확인
- AIM Provider 구성 보안
- AIM Provider 볼트 연결
#### 시크릿 관리 (SEC1 - SEC14)
- Credential Provider (CP/CCP) 배포 확인
- AppID 인증 방법 강도 분석
- 허용된 머신 구성 검증
- 캐시 TTL 및 새로고침 간격 설정
- CCP TLS/mTLS 구성
- 시크릿 순환 정책 시행
- 고립/관리되지 않은 시크릿 탐지
- 자격 증명 확산 분석
- Conjur 통합 상태
- MAML 정책 검증
- 인증자 구성 (LDAP, OIDC, IAM, K8s)
- Conjur 데이터베이스 암호화
- API 키 순환 정책
- Conjur 감사 로깅
#### 제로 스탠딩 권한 (ZSP1 - ZSP5)
- 영구 권한 접근 탐지
- 이중 통제 워크플로 검증
- 동시 세션 제한 확인
- 체크인/체크아웃 시행
- 스탠딩 권한 감소 권고
- JIT 대비 점수
#### ID 거버넌스 (IGA1 - IGA8)
- 고립된 ID 탐지
- 권한 표류 분석
- 비활성 사용자 계정 탐지
- 과도한 Safe 멤버십 분석
- 접근 인증 상태
- 역할/그룹 멤버십 확산
- 대기 계정 대기열 기간
- 계정 소유권 격차 탐지
#### EPM 통합 (EPM1 - EPM6)
*EPM URL 및 선택적 인증 필요*
- EPM 통합 상태 확인
- 기본 정책 보안 평가
- 애플리케이션 제어 모드 검증
- 자격 증명 도난 방지 상태
- 권한 상승 요청 정당성 요구사항
- EPM 감사 로깅 구성
#### 클라우드 보안 (CLD1 - CLD6)
- 클라우드 공급자 통합 상태 (AWS, Azure, GCP)
- 페더레이션 ID 구성
- 클라우드 시크릿 동기화 정책 검증
- CIEM 통합 평가
- 클라우드 IAM 역할 바인딩 분석
- 멀티 클라우드 정책 일관성
#### 재해 복구 (DR1 - DR5)
- DR Vault 복제 상태
- HA 클러스터 상태 확인
- 구성 요소 중복성 평가
- 백업 구성 검증
- 비상 계정(break-glass) 가용성
#### 규정 준수 매핑 (COMP1 - COMP4)
- NIST 사이버보안 프레임워크 매핑
- SOC 2 Type II 정렬 지표
- PCI-DSS 관련 통제
- CyberArk Blueprint 성숙도 점수
#### 감사 로깅 (AUD1 - AUD4)
- SIEM 통합 상태
- 감사 로그 보존 구성
- 중요 이벤트 경고 검증
- 감사 데이터 무결성 확인
#### Active Directory 보안 (AD1 - AD7) - zBang 영감
*도메인 연결 및 `-IncludeADChecks` 매개변수 필요*
- **Shadow Admin 발견**: 권한 있는 객체에 직접 ACL 권한이 있는 계정 탐지
- **Skeleton Key 탐지**: 도메인 컨트롤러에서 Skeleton Key 악성 코드 지표 확인
- **SID History 분석**: 권한 있는 SID History 속성을 가진 계정 식별
- **위험한 SPN 구성**: SPN이 있는 사용자 계정 찾기 (Kerberoasting 대상)
- **제한 없는 위임**: 제한 없는 Kerberos 위임이 있는 계정 발견
- **프로토콜 전환을 통한 제한 위임**: S4U2Self 악용 가능성 탐지
- **위임 권한 감사**: 포괄적인 위임 구성 요약
#### Secrets Hub (SH1 - SH6)
*`-IncludeSecretsHubChecks` 및 선택적으로 `-SecretsHubUrl` 필요*
- Secrets Hub 동기화 상태 모니터링
- 동기화 지연 시간 측정
- 소스와 대상 간 버전 표류 탐지
- 동기화 실패율 분석
- 대상 구성 검증
- Secrets Hub 감사 로깅
#### 원격 접속 / Alero (RA1 - RA6)
*`-IncludeRemoteAccessChecks` 및 선택적으로 `-AleroUrl` 필요*
- 공급업체 초대 워크플로 보안
- 세션 시간 제한 구성
- 생체인증/장치 바인딩 요구사항
- 원격 접속 감사 로그 완전성
- 정기적 접근 검토 시행
- 원격 접속에 대한 MFA 강제
#### Kubernetes 시크릿 (K8S1 - K8S8)
*`-IncludeK8sChecks` 및 선택적으로 `-K8sNamespace`, `-ConjurApplianceUrl` 필요*
- Secrets Provider 배포 모드 확인
- 파드 보안 컨텍스트 검증
- 서비스 계정 JWT 인증
- Kubernetes 시크릿 순환
- 시크릿에 대한 RBAC 구성
- 마운트된 시크릿 권한
- Conjur 팔로워 상태
- Kubernetes 감사 로깅
#### DevSecOps 파이프라인 (DSO1 - DSO6)
*`-IncludeDevSecOpsChecks` 필요*
- CI/CD 시크릿 검색 패턴
- 파이프라인 시크릿 확산 탐지
- 단기 토큰 사용 검증
- 파이프라인 감사 로깅
- 빌드 아티팩트 내 시크릿 탐지
- 파이프라인 ID 바인딩
#### Privilege Cloud (PC1 - PC5)
*`-IncludePrivilegeCloudChecks` 또는 `-PrivilegeCloudTenant` 또는 `-IsPrivilegeCloud` 필요*
- Privilege Cloud 커넥터 상태
- Identity Security Platform 통합
- Privilege Cloud API 보안
- 테넌트 격리 검증
- 클라우드 커넥터 중복성
#### CyberArk Identity (IDN1 - IDN6)
*`-IncludeIdentityChecks` 또는 `-IdentityTenantUrl` 필요*
- PVWA와의 SSO 통합
- 적응형 MFA 정책 구성
- ID 라이프사이클 동기화
- 세션 위험 점수
- Identity 감사 통합
- 권한 있는 애플리케이션 카탈로그 정책
#### 사용자 정의 플러그인 (PLG1 - PLG5)
*`-IncludePluginChecks` 필요*
- 사용자 정의 PSM 커넥터 보안
- 사용자 정의 CPM 플러그인 주입 위험
- 승인되지 않거나 오래된 구성 요소 탐지
- 플러그인 디지털 서명 검증
- 사용자 정의 스크립트 파일 권한
#### 백업 보안 (BKP1 - BKP5)
*`-IncludeBackupSecurityChecks` 및 선택적으로 `-BackupPath` 필요*
- Vault 백업 암호화
- 백업 파일 권한
- 전송 중 백업 암호화
- 백업 복원 테스트
- 백업 보존 정책
#### HSM 통합 (HSM1 - HSM4)
*`-IncludeHSMChecks` 및 선택적으로 `-HSMProvider` 필요*
- HSM 연결 및 상태
- HSM 키 래핑 구성
- HSM 파티션 격리
- HSM 펌웨어 최신성
#### PTA 심층 분석 (PTAD1 - PTAD6)
*`-IncludePTADeepDive` 필요*
- PTA 사용자 정의 탐지 규칙
- PTA ML 모델 품질
- PTA 알림 피로 (위양성 분석)
- PTA 탐지 규칙 커버리지
- PTA UEBA 통합
- PTA 자동화된 대응 조치
#### 타사 통합 (TPI1 - TPI5)
*`-IncludeThirdPartyChecks` 및 선택적으로 `-ServiceNowUrl`, `-SIEMUrl` 필요*
- ITSM (ServiceNow) 통합
- SOAR 자동화된 대응 플레이북
- SIEM PAM 이벤트 상관관계
- SIEM 로그 포워더 상태
- 통합 자격 증명 상태
#### 운영 위생 (OPS1 - OPS8)
*`-IncludeOperationalChecks` 필요*
- 계정 온보딩 대기열 메트릭
- CPM 비밀번호 변경 실패율
- PSM 세션 성공/실패 비율
- CPM 조정 백로그
- 플랫폼 연결 오류
- Vault 사용률 및 용량
- 라이선스 준수
- 구성 요소 가동 시간
#### 공격 경로 시뮬레이션 (APS1 - APS6)
*`-IncludeAttackPathChecks` 필요*
- 워크스테이션에서 PAM으로의 권한 상승 경로
- Pass-the-Hash 공격 표면
- NTLM 릴레이 위험
- 캐시된 자격 증명 추출 저항력
- Kerberoasting 노출
- 권한 상승 경로
#### 공급망 무결성 (SCI1 - SCI5)
*`-IncludeSupplyChainChecks` 필요*
- 구성 요소 파일 해시 검증
- 패치 최신성 확인
- 타사 라이브러리 취약점
- 디지털 서명 검증
- 구성 요소 출처 확인
#### 네트워크 분할 (NSG1 - NSG5)
*`-IncludeNetworkSegmentationChecks` 필요*
- Vault 네트워크 격리
- PSM에서 Vault로의 통신 제한
- PVWA에서 백엔드 분할
- 동서 트래픽 모니터링
- 구성 요소별 네트워크 ACL
## 요구사항
### 소프트웨어 요구사항
| 구성 요소 | 버전 | 비고 |
|-----------|---------|-------|
| PowerShell | 7.0+ | PowerShell 7.x 필요 (Windows PowerShell 5.1 지원 안 함) |
| .NET Framework | 4.5+ | TLS/SSL 및 네트워크 작업에 필요 |
| CyberArk PVWA | v12+ | 전체 호환성을 위한 REST API v12 이상 |
### 단계별 접근 요구사항
| 단계 | 요구사항 | 목적 |
|-------|-------------|---------|
| 1단계 | PVWA에 대한 네트워크 접근 | 블랙박스 테스트, 포트 스캐닝, TLS 분석 |
| 2단계 | CyberArk API 자격 증명 | 구성 감사, 정책 점검 |
### 인증된 검사를 위한 자격 증명 요구사항
2단계(인증된 검사)의 경우 다음 역할 중 하나의 CyberArk 자격 증명이 필요합니다:
- **Vault Admin**: 모든 구성 및 보안 설정에 대한 전체 액세스
- **Auditor**: 감사 구성에 대한 읽기 전용 액세스 (보안 평가에 권장)
- **Safe Owners**: 소유한 Safe로 제한 (부분 감사 범위)
### 사용된 Windows 기능
스크립트는 다음 Windows/PowerShell 기능을 사용합니다 (설치 필요 없음):
| 기능 | 사용 목적 |
|---------|----------|
| `System.Net.Sockets.TcpClient` | 포트 스캐닝, Vault 포트 보안 |
| `System.Net.Security.SslStream` | TLS/SSL 프로토콜 및 암호 열거 |
| `Invoke-WebRequest` / `Invoke-RestMethod` | HTTP 테스트, API 호출 |
## 빠른 시작```powershell
# 1. Verify PowerShell version (need 7.0+)
$PSVersionTable.PSVersion
# 2. Enable TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# 3. Run unauthenticated scan (no credentials needed)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -UnauthenticatedOnly
# 4. Run full scan with authentication
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP
자격 증명 없이 외부 보안 점검을 실행합니다:```powershell
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -UnauthenticatedOnly
### 인증을 통한 전체 감사```powershell
# Full audit with LDAP authentication
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP
# Full audit with pre-supplied credentials
$cred = Get-Credential
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -Credential $cred
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -SkipPortScan
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -SkipAuthenticatedChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -SkipCVEChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -SkipSecretsChecks
-SkipMachineIdentity -SkipIGAChecks
-SkipCloudChecks
### 특정 검사 카테고리만 실행
`-Only*` 매개변수를 사용하여 특정 검사 카테고리만 실행하세요:```powershell
# Run ONLY port scanning
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OnlyPortScan
# Run ONLY CVE vulnerability checks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OnlyCVEChecks
# Run ONLY network security checks (ports, TLS, DNS)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OnlyNetworkChecks
# Run ONLY unauthenticated blackbox checks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OnlyBlackboxChecks
# Run ONLY authenticated API checks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OnlyAuthenticatedChecks -Credential $cred
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com"
-AuthType LDAP -OutputPath "C:\Reports"
-Credential $cred -SkipPortScan
-SkipCVEChecks -SkipAPITests
-PortScanTimeout 2000 `
-VerboseOutput
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com"
-AuthType LDAP -OutputPath "C:\Reports"
-ComplianceMapping -IncludeEPMChecks
-EPMUrl "https://epm.domain.com"
### 일반적인 시나리오```powershell
# External penetration test (no access, no credentials)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -UnauthenticatedOnly
# Internal security audit (with CyberArk credentials)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP
# Quick check (skip intensive scans)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -SkipPortScan -SkipCVEChecks
# Fast parallel port scanning (4.5x faster on PowerShell 7+)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -ParallelExecution -MaxThreads 10
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OPSECMode -UnauthenticatedOnly
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -Proxy "http://127.0.0.1:8080" -IgnoreCertificateErrors
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -IncludeTimingAttacks -UnauthenticatedOnly
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -IncludeJWTTests
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -IncludeWebSocketTests
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -IncludeWAFEvasion
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -RequestDelay 3 -Jitter 30 -RandomizeUserAgent
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -QuietMode -NoLogo -UnauthenticatedOnly
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com"
-OPSECMode -Proxy "http://127.0.0.1:8080"
-IncludeTimingAttacks -IncludeJWTTests
-IncludeWebSocketTests -IncludeWAFEvasion
-UnauthenticatedOnly
### CyberArk 도구 통합 시나리오```powershell
# AD Security Audit (zBang-inspired) - detect shadow admins, Kerberos issues
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP -IncludeADChecks
# AD Security with specific Domain Controller
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -IncludeADChecks -DomainController "dc01.domain.com"
# Conjur/Secrets Manager integration check
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -IncludeConjurChecks -ConjurUrl "https://conjur.domain.com"
# Comprehensive audit with CyberArk tools integration
.\CyberArk-Security-Audit.ps1 `
-PVWA "https://pvwa.domain.com" `
-AuthType LDAP `
-IncludeADChecks `
-IncludeConjurChecks `
-ConjurUrl "https://conjur.domain.com" `
-ComplianceMapping
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -OutputPath "C:\SecurityReports\CyberArk"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -UnauthenticatedOnly -QuietMode -NoLogo
-OutputPath "C:\Reports"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -ComplianceMapping -OutputPath "C:\ComplianceReports"
$auditResults = .\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP
$auditResults.ReportMetadata.RiskScore $auditResults.Findings | Where-Object { $_.Severity -eq "Critical" } $auditResults.Reports.HTML # Path to HTML report $auditResults.Reports.CSV # Array of CSV file paths $auditResults.Reports.JSON # Path to JSON report
**생성된 출력 파일:**
감사 실행 후, 출력 디렉토리에서 다음 파일들을 찾을 수 있습니다:```
C:\SecurityReports\CyberArk\
├── CyberArk_Security_Audit_20260116_143022.html # Interactive HTML dashboard
├── CyberArk_Security_Audit_20260116_143022.json # Comprehensive JSON data
├── CyberArk_Security_Audit_20260116_143022_Executive_Summary.csv
├── CyberArk_Security_Audit_20260116_143022_Full_Findings.csv
├── CyberArk_Security_Audit_20260116_143022_Failed_Findings.csv
├── CyberArk_Security_Audit_20260116_143022_Remediation_Tracker.csv
├── CyberArk_Security_Audit_20260116_143022_Skipped_Checks.csv
├── CyberArk_Security_Audit_20260116_143022_CIS_Compliance_Matrix.csv
└── CyberArk_Security_Audit_20260116_143022_Component_Summary.csv
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeSecretsHubChecks -SecretsHubUrl "https://secretshub.cyberark.cloud"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeRemoteAccessChecks -AleroUrl "https://alero.cyberark.cloud"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeK8sChecks -K8sNamespace "cyberark" -ConjurApplianceUrl "https://conjur.domain.com"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeDevSecOpsChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IsPrivilegeCloud -PrivilegeCloudTenant "my-tenant"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeIdentityChecks -IdentityTenantUrl "https://aab1234.id.cyberark.cloud"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeBackupSecurityChecks -BackupPath "D:\VaultBackups"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeHSMChecks -HSMProvider "Thales"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludePTADeepDive
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeThirdPartyChecks -ServiceNowUrl "https://company.servicenow.com" -SIEMUrl "https://splunk.domain.com"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeOperationalChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeAttackPathChecks -IncludeADChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeSupplyChainChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeNetworkSegmentationChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com"
-AuthType LDAP -IncludeSecretsHubChecks
-IncludeRemoteAccessChecks -IncludeK8sChecks
-IncludeDevSecOpsChecks -IncludeIdentityChecks
-IncludePluginChecks -IncludeBackupSecurityChecks
-IncludeHSMChecks -IncludePTADeepDive
-IncludeThirdPartyChecks -IncludeOperationalChecks
-IncludeAttackPathChecks -IncludeSupplyChainChecks
-IncludeNetworkSegmentationChecks `
-ComplianceMapping
## Parameters
| 매개변수 | 필수 | 기본값 | 설명 |
|-----------|----------|---------|-------------|
| PVWA | 예 | - | PVWA 서버 URL (예: https://pvwa.domain.com) |
| AuthType | 아니요 | CyberArk | 인증 방법: CyberArk, LDAP, RADIUS, SAML |
| OutputPath | 아니요 | 현재 디렉터리 | 보고서 출력 디렉터리 |
| Credential | 아니요 | 프롬프트 | 인증용 PSCredential |
| **건너뛰기 매개변수** | | | |
| SkipPortScan | 아니요 | False | 네트워크 포트 스캔 건너뛰기 |
| SkipCVEChecks | 아니요 | False | CVE 특정 취약점 테스트 건너뛰기 |
| SkipAPITests | 아니요 | False | API 보안 테스트 건너뛰기 |
| SkipAuthenticatedChecks | 아니요 | False | 모든 2단계 인증 검사 건너뛰기 |
| SkipSecretsChecks | 아니요 | False | 시크릿 관리 검사 건너뛰기 (SEC1-SEC14) |
| SkipMachineIdentity | 아니요 | False | 머신 ID 검사 건너뛰기 (MID1-MID9) |
| SkipIGAChecks | 아니요 | False | ID 거버넌스 검사 건너뛰기 (IGA1-IGA8) |
| SkipCloudChecks | 아니요 | False | 클라우드 보안 검사 건너뛰기 (CLD1-CLD6) |
| SkipDRChecks | 아니요 | False | 재해 복구 검사 건너뛰기 (DR1-DR5) |
| SkipDefaultCredentialTests | 아니요 | False | 기본/취약 자격 증명 테스트 건너뛰기 (BB3) |
| SkipSecretsHubChecks | 아니요 | False | Secrets Hub 검사 건너뛰기 (SH1-SH6) |
| SkipRemoteAccessChecks | 아니요 | False | 원격 액세스/Alero 검사 건너뛰기 (RA1-RA6) |
| SkipK8sChecks | 아니요 | False | Kubernetes 검사 건너뛰기 (K8S1-K8S8) |
| SkipDevSecOpsChecks | 아니요 | False | DevSecOps 검사 건너뛰기 (DSO1-DSO6) |
| SkipPrivilegeCloudChecks | 아니요 | False | Privilege Cloud 검사 건너뛰기 (PC1-PC5) |
| SkipIdentityChecks | 아니요 | False | CyberArk Identity 검사 건너뛰기 (IDN1-IDN6) |
| SkipPluginChecks | 아니요 | False | 사용자 정의 플러그인 검사 건너뛰기 (PLG1-PLG5) |
| SkipBackupSecurityChecks | 아니요 | False | 백업 보안 검사 건너뛰기 (BKP1-BKP5) |
| SkipHSMChecks | 아니요 | False | HSM 통합 검사 건너뛰기 (HSM1-HSM4) |
| SkipPTADeepDive | 아니요 | False | PTA 심층 검사 건너뛰기 (PTAD1-PTAD6) |
| SkipThirdPartyChecks | 아니요 | False | 타사 통합 검사 건너뛰기 (TPI1-TPI5) |
| SkipOperationalChecks | 아니요 | False | 운영 위생 검사 건너뛰기 (OPS1-OPS8) |
| SkipAttackPathChecks | 아니요 | False | 공격 경로 시뮬레이션 검사 건너뛰기 (APS1-APS6) |
| SkipSupplyChainChecks | 아니요 | False | 공급망 무결성 검사 건너뛰기 (SCI1-SCI5) |
| SkipNetworkSegmentationChecks | 아니요 | False | 네트워크 세분화 검사 건너뛰기 (NSG1-NSG5) |
| **모드 매개변수** | | | |
| UnauthenticatedOnly | 아니요 | False | 1단계만 실행 (자격 증명 불필요) |
| IncludeEPMChecks | 아니요 | False | EPM 통합 검사 포함 |
| ComplianceMapping | 아니요 | False | 규정 준수 프레임워크 매핑 생성 |
| **선택적 실행** | | | |
| OnlyPortScan | 아니요 | False | 포트 스캔 검사만 실행 |
| OnlyCVEChecks | 아니요 | False | CVE 취약점 검사만 실행 |
| OnlyAuthenticatedChecks | 아니요 | False | 인증된 API 검사만 실행 |
| OnlyNetworkChecks | 아니요 | False | 네트워크 보안 검사만 실행 (TLS, 포트, DNS) |
| OnlyBlackboxChecks | 아니요 | False | 인증되지 않은 블랙박스 검사만 실행 |
| **CyberArk 도구 매개변수** | | | |
| IncludeADChecks | 아니요 | False | Active Directory 보안 검사 활성화 (zBang 기반) |
| IncludeConjurChecks | 아니요 | False | Conjur/Secrets Manager 통합 검사 활성화 |
| ConjurUrl | 아니요 | - | 통합 검사를 위한 Conjur 서버 URL |
| DomainController | 아니요 | - | AD 보안 쿼리를 위한 도메인 컨트롤러 |
| **레드팀 매개변수** | | | |
| OPSECMode / Stealth | 아니요 | False | 지연 및 노이즈 감소를 통해 OPSEC/스텔스 모드 활성화 |
| Proxy | 아니요 | - | 트래픽 라우팅을 위한 프록시 URL (예: http://127.0.0.1:8080) |
| ProxyCredential | 아니요 | - | 인증된 프록시의 자격 증명 |
| IgnoreCertificateErrors | 아니요 | False | SSL/TLS 인증서 유효성 검사 건너뛰기 |
| RequestDelay | 아니요 | 0 | 요청 간 지연 시간(초) (0-60) |
| Jitter | 아니요 | 0 | 타이밍 변동을 위한 무작위 지터 비율 (0-100) |
| UserAgent | 아니요 | - | 사용자 정의 User-Agent 문자열 |
| RandomizeUserAgent | 아니요 | False | 일반적인 User-Agent 문자열 순환 |
| IncludeTimingAttacks | 아니요 | False | 타이밍 기반 취약점 탐지 활성화 |
| IncludeJWTTests | 아니요 | False | JWT/OAuth2 보안 테스트 활성화 |
| IncludeWebSocketTests | 아니요 | False | WebSocket 엔드포인트 검색 활성화 |
| IncludeWAFEvasion | 아니요 | False | WAF/IDS 우회 테스트 활성화 |
| NoLogo | 아니요 | False | 배너 표시 숨기기 |
| QuietMode | 아니요 | False | 콘솔 출력 감소 (정보 메시지 숨김) |
| EnablePasswordSpraying | 아니요 | False | 비밀번호 스프레이 활성화 (명시적 확인 필요) |
| **성능 매개변수** | | | |
| ParallelExecution | 아니요 | False | 더 빠른 스캔을 위한 병렬 실행 활성화 |
| MaxThreads | 아니요 | 5 | 최대 동시 스레드 (1-20) |
| **EPM 매개변수** | | | |
| EPMUrl | 아니요 | - | EPM 통합 검사를 위한 EPM 서버 URL |
| **보안 태세 매개변수** | | | |
| IncludeSecretsHubChecks | 아니요 | False | Secrets Hub 클라우드 동기화 검사 활성화 |
| SecretsHubUrl | 아니요 | - | 통합 검사를 위한 Secrets Hub URL |
| IncludeRemoteAccessChecks | 아니요 | False | 원격 액세스/Alero 검사 활성화 |
| AleroUrl | 아니요 | - | 벤더 액세스 검사를 위한 Alero URL |
| IncludeK8sChecks | 아니요 | False | Kubernetes/컨테이너 시크릿 검사 활성화 |
| K8sNamespace | 아니요 | default | 시크릿 검사를 위한 Kubernetes 네임스페이스 |
| ConjurApplianceUrl | 아니요 | - | K8s 통합을 위한 Conjur 어플라이언스 URL |
| IncludeDevSecOpsChecks | 아니요 | False | DevSecOps 파이프라인 보안 검사 활성화 |
| IncludePrivilegeCloudChecks | 아니요 | False | Privilege Cloud/SaaS 특정 검사 활성화 |
| IsPrivilegeCloud | 아니요 | False | 대상이 Privilege Cloud SaaS임을 나타냄 |
| PrivilegeCloudTenant | 아니요 | - | Privilege Cloud 테넌트 식별자 |
| IncludeIdentityChecks | 아니요 | False | CyberArk Identity/Idaptive 검사 활성화 |
| IdentityTenantUrl | 아니요 | - | CyberArk Identity 테넌트 URL |
| IncludePluginChecks | 아니요 | False | 사용자 정의 플러그인 보안 검사 활성화 |
| IncludeBackupSecurityChecks | 아니요 | False | 백업 보안 검사 활성화 |
| BackupPath | 아니요 | - | 분석을 위한 Vault 백업 파일 경로 |
| IncludeHSMChecks | 아니요 | False | HSM 통합 검사 활성화 |
| HSMProvider | 아니요 | - | HSM 공급자 유형 (Thales, nCipher, SafeNet, AWSCloudHSM, AzureHSM, 기타) |
| IncludePTADeepDive | 아니요 | False | 고급 PTA 탐지 검사 활성화 |
| IncludeThirdPartyChecks | 아니요 | False | SIEM/ITSM/SOAR 통합 검사 활성화 |
| ServiceNowUrl | 아니요 | - | ITSM 검사를 위한 ServiceNow URL |
| SIEMUrl | 아니요 | - | 이벤트 상관관계 검사를 위한 SIEM URL |
| IncludeOperationalChecks | 아니요 | False | 운영 위생 지표 활성화 |
| IncludeAttackPathChecks | 아니요 | False | 공격 경로 시뮬레이션 검사 활성화 |
| IncludeSupplyChainChecks | 아니요 | False | 공급망 무결성 검사 활성화 |
| IncludeNetworkSegmentationChecks | 아니요 | False | 네트워크 세분화 검사 활성화 |
| **기타 매개변수** | | | |
| PortScanTimeout | 아니요 | 1000 | 포트 스캔 연결 시간 초과 (ms) |
| VerboseOutput | 아니요 | False | 상세 로깅 활성화 |
## 출력
스크립트는 세 가지 형식으로 포괄적인 보고서를 생성하며, 상세한 보안 평가 보고서 작성을 지원하도록 설계되었습니다.
### 보고서 형식
#### 1. HTML 보고서 (대화형 대시보드)
최신 대화형 HTML 보고서에는 다음이 포함됩니다.
- **목차**: 모든 보고서 섹션으로 빠르게 이동
- **요약 보고서**: 전체 위험 등급, 규정 준수 비율, 주요 지표
- **주요 위험 섹션**: 비즈니스 영향이 있는 상위 10개 심각/높음 발견 항목
- **CIS 벤치마크 규정 준수 매트릭스**: 통제별 규정 준수 상태
- **상세 발견 항목 표**: 전체 증거 및 수정 단계가 포함된 확장 가능한 행
- 아무 발견 항목이나 클릭하면 증거, 기술 세부 정보, 위험 설명, 비즈니스 영향, CVSS 점수, 수정 단계 및 참조가 표시됩니다.
- **개념 증명 (PoC)**: 침투 테스트 보고서를 위한 요청/응답 증거 (사용 가능한 경우)
- **수정 로드맵**: 우선순위 일정 (24시간/1주/30일/90일)
- **구성 요소 분석**: CyberArk 구성 요소별로 그룹화된 발견 항목 (Vault, CPM, PSM, PVWA, PTA)
- **건너뛴 검사**: 후속 지침이 있는 수동 확인 요구 사항
- **인쇄 친화적**: 인쇄 시 모든 발견 항목 자동 확장
#### 2. CSV 보고서 (7개 별도 파일)
다양한 대상을 위해 여러 CSV 파일을 생성합니다.
| 파일 | 목적 | 대상 |
|------|---------|----------|
| Executive_Summary.csv | 상위 수준 지표 및 위험 개요 | 리더십, 관리진 |
| Full_Findings.csv | 모든 20개 이상 필드가 포함된 전체 발견 항목 | 보안 분석가 |
| Failed_Findings.csv | 실패한 검사만, 심각도별 정렬 | 수정 팀 |
| Remediation_Tracker.csv | AssignedTo, Status, DueDate가 포함된 실행 가능한 추적기 | IT 운영 |
| Skipped_Checks.csv | 수동 확인이 필요한 검사 | 감사자 |
| CIS_Compliance_Matrix.csv | 통제별 규정 준수 상태 | 규정 준수 담당자 |
| Component_Summary.csv | 구성 요소별로 그룹화된 발견 항목 | 구성 요소 소유자 |
#### 3. JSON 보고서 (구조화된 데이터)
프로그래매틱 분석을 위한 포괄적인 구조화된 데이터:```json
{
"reportInfo": { "title", "generatedAt", "version" },
"auditMetadata": { "target", "auditDate", "auditorInfo" },
"executiveSummary": {
"overallRiskRating": "Fair",
"riskScore": 45,
"keyMetrics": { "totalChecks", "passed", "failed", "compliance%" },
"findingsBySeverity": { "critical", "high", "medium", "low" },
"keyRisks": [ /* top 10 findings */ ],
"immediatePriorities": [ /* critical recommendations */ ]
},
"complianceAnalysis": {
"overallCompliance": 78.5,
"cisControlsCompliance": { /* per-control matrix */ }
},
"componentAnalysis": { /* findings by component */ },
"categoryAnalysis": { /* findings by category */ },
"remediationRoadmap": {
"immediate": { "timeframe": "24-48 hours", "findings": [] },
"urgent": { "timeframe": "1 week", "findings": [] },
"standard": { "timeframe": "30 days", "findings": [] },
"routine": { "timeframe": "90 days", "findings": [] }
},
"detailedFindings": { "failed", "passed", "all" },
"skippedChecks": { "summary", "requiresFollowUp", "all" },
"appendix": { "glossary", "severityDefinitions", "riskScoreExplanation" }
}
각 발견은 이제 보고서 작성을 위한 종합 정보를 포함합니다:
| Field | Description |
|---|---|
FindingID | 고유 식별자 (예: CA-20260116-A1B2C3D4) |
Category | 보안 카테고리 (예: 안전 구성, 인증) |
CISControl | CIS 벤치마크 제어 참조 |
AffectedComponent | CyberArk 구성 요소 (Vault, CPM, PSM, PVWA, PTA) |
Evidence | 발견을 뒷받침하는 기술적 증거 |
TechnicalDetails | 상세 기술 설명 |
RiskDescription | 이것이 보안 위험인 이유 설명 |
BusinessImpact | 비즈니스 수준 영향 설명 |
CVSSScore | 예상 CVSS 점수 범위 |
RemediationSteps | 단계별 수정 지침 |
ComplianceRefs | 규정 준수 프레임워크 참조 |
References | 문서 링크 |
PoCRequest | HTTP 요청 개념 증명 (사용 가능한 경우) |
PoCResponse | HTTP 응답 개념 증명 (사용 가능한 경우) |
발견은 심각도에 따라 점수가 매겨집니다:
위험 등급:
출력은 전문적인 보안 평가 보고서 작성을 돕기 위해 설계되었습니다:
⚠️ 경고: 이 도구는 활성 보안 테스트를 수행하며, 다음을 유발할 수 있습니다:
-EnablePasswordSpraying 플래그를 통한 명시적 사용자 확인 필요이 스크립트를 실행하기 전에 항상 적절한 승인을 받으십시오.
레드 팀 작전 중 탐지 범위를 줄이기 위해 -OPSECMode를 사용하십시오.
오류: File cannot be loaded because running scripts is disabled on this system
해결 방법:```powershell
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
Unblock-File -Path .\CyberArk-Security-Audit.ps1
#### PowerShell 버전 오류
**오류**: `This script requires PowerShell 7 or higher.`
**해결 방법**:```powershell
# Check current version
$PSVersionTable.PSVersion
# Install PowerShell 7
winget install Microsoft.PowerShell
# Or download from: https://github.com/PowerShell/PowerShell/releases
오류: 요청이 중단되었습니다: SSL/TLS 보안 채널을 생성할 수 없습니다
해결 방법:```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13
#### 인증서 유효성 검사 오류
**오류**: `The underlying connection was closed: Could not establish trust relationship`
**해결 방법**: 이는 일반적으로 PVWA의 인증서 문제(예: 자체 서명 인증서)를 나타냅니다. 스크립트는 이를 자동으로 보안 문제로 포착하고 평가를 계속 진행하여 완전한 범위를 제공합니다. 스크립트는 운영 연속성을 위해 인증서 유효성 검사 우회를 포함합니다:```powershell
# The script automatically bypasses certificate validation for assessment continuity
# while capturing certificate issues as findings
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
오류: Authentication failed: The remote server returned an error: (401) Unauthorized
해결 방법:
-AuthType LDAP, -AuthType CyberArk 등)$cred = Get-Credential $body = @{ username = $cred.UserName; password = $cred.GetNetworkCredential().Password } | ConvertTo-Json Invoke-RestMethod -Uri "https://pvwa.domain.com/PasswordVault/api/Auth/LDAP/Logon" -Method POST -Body $body -ContentType "application/json"
#### 포트 스캔 타임아웃
**오류**: 포트 스캔이 너무 오래 걸리거나 타임아웃 발생
**해결 방법**:```powershell
# Increase timeout (default is 1000ms)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -PortScanTimeout 3000
# Or skip port scanning entirely
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -SkipPortScan
오류: 보고서 파일을 쓸 수 없습니다
해결 방법:```powershell
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OutputPath "C:\Reports"
New-Item -ItemType Directory -Path "C:\Reports" -Force
### 도움말 얻기
위에서 다루지 않은 문제가 발생한 경우:
1. 자세한 출력으로 실행: `-VerboseOutput`
2. 생성된 JSON 보고서에서 상세 오류 정보 확인
3. 관련 오류에 대해 Windows 이벤트 로그 검토
4. 오류 세부 정보 및 환경 정보와 함께 GitHub에 이슈 열기
## 참고 자료
### CyberArk 문서
- [CyberArk 보안 강화 가이드](https://docs.cyberark.com/)
- [CyberArk REST API 문서](https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/WebServices/Implementing%20Privileged%20Account%20Security%20Web%20Services%20.htm)
### CyberArk 오픈 소스 보안 도구
- [zBang](https://github.com/cyberark/zBang) - 권한 계정 위협(섀도 관리자, Kerberos, SPN)에 대한 위험 평가 도구
- [Conjur](https://github.com/cyberark/conjur) - 비밀 관리 플랫폼
- [ACLight](https://github.com/cyberark/ACLight) - 섀도 관리자 검색(zBang의 일부)
- [Ansible Security Automation Collection](https://github.com/cyberark/ansible-security-automation-collection) - CyberArk Ansible 통합
## 라이선스.
이 도구는 보안 평가 목적으로 있는 그대로 제공됩니다. 책임감 있고 윤리적으로 사용하십시오.