Wiz 실무 스터디 가이드

데이터 엔지니어 · AI 엔지니어를 위한 핵심 요약

#CNAPP #CloudSecurity #CSPM 📅 2026.03 🔒 AI 보안 전문가

1. Wiz란?

Wiz는 클라우드 네이티브 애플리케이션 보호 플랫폼(CNAPP)으로, 에이전트리스(agentless) 방식으로 클라우드 인프라 전반의 취약점, 구성 오류, 권한 위험, 그리고 데이터 위협을 통합 탐지합니다. CSPM, CIEM, CWPP, KSPM 기능을 하나의 플랫폼으로 제공하며, AI 기반 그래프 분석을 통해 위험을 컨텍스트 중심으로 평가합니다.

3대 핵심 능력

🔍 에이전트리스 스캔

클라우드 API를 통해 VM, 컨테이너, 서버리스 함수를 스캔. 에이전트 설치 없이 전체 인벤토리 가시성 확보.

🧠 그래프 기반 위험 분석

클라우드 리소스 간 연결 관계를 그래프로 모델링하여 실제 공격 경로와 위험도를 컨텍스트 기반으로 산출.

⚡ 자동 우선순위 지정

취약점, 구성 오류, 과도한 권한 등을 통합 분석하여 가장 위험한 문제부터 해결할 수 있도록 우선순위 제공.

2. 왜 써야 하는가?

기존 클라우드 보안 도구 대비 Wiz의 차별점은 통합성과 컨텍스트 기반 위험 평가입니다. 아래 비교표를 참고하세요.

기능 Wiz Prisma Cloud CrowdStrike Falcon Aqua Security
에이전트리스 스캔 ✅ 기본 ✅ (일부) ❌ (에이전트 필요) ✅ (하이브리드)
그래프 기반 위험 분석 ✅ 핵심 ❌ ❌ ❌
CSPM + CIEM + CWPP ✅ 통합 ✅ (모듈형) ❌ (CWPP 중심) ✅ (CWPP + CSPM)
AI/ML 기반 우선순위 ✅ 강력 ✅ 보통 ✅ (엔드포인트) ✅ 보통
멀티 클라우드 지원 AWS, Azure, GCP, OCI, Alibaba AWS, Azure, GCP AWS, Azure, GCP AWS, Azure, GCP
💡 인사이트: Wiz는 특히 클라우드 네이티브 환경에서의 취약점 연쇄 공격(예: Log4j → S3 버킷 오픈 → 데이터 유출)을 그래프로 시각화하여, 단순 CVSS 점수보다 실질적인 위험을 파악할 수 있게 해줍니다.

3. 핵심 개념

Wiz의 아키텍처는 에이전트리스 스캐너, 클라우드 API 통합, 그래프 데이터베이스, 그리고 위험 엔진으로 구성됩니다. 아래 다이어그램은 데이터 흐름을 단순화한 것입니다.

┌─────────────────────────────────────────────────────────┐ │ Wiz Cloud Platform │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │ │ │ Cloud API │ │ Agentless │ │ Graph │ │ │ │ Connector │───▶│ Scanner │───▶│ Engine │ │ │ │ (AWS, Azure, │ │ (VM, K8s, │ │ (위험 경로 │ │ │ │ GCP, etc.) │ │ Serverless) │ │ 분석) │ │ │ └──────────────┘ └──────────────┘ └─────┬─────┘ │ │ │ │ │ ┌──────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ Risk Engine │ │ Dashboard │ │ │ │ (우선순위화) │───▶│ & Alerting │ │ │ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────┘

주요 구성 요소

4. 퀵스타트

Wiz CLI와 Python SDK를 사용하여 첫 번째 취약점 스캔을 실행해보겠습니다.

4.1 설치

# Wiz CLI 설치 (macOS/Linux)
curl -sSL https://cli.wiz.io/install.sh | bash

# Python SDK 설치
pip install wiz-sdk

4.2 설정

Wiz 콘솔에서 API 클라이언트를 생성하고 환경 변수를 설정합니다.

# 환경 변수 설정
export WIZ_CLIENT_ID="your-client-id"
export WIZ_CLIENT_SECRET="your-client-secret"
export WIZ_API_URL="https://api.us1.wiz.io"   # 리전에 따라 변경

# CLI 로그인 (자동)
wiz login

4.3 첫 예제: 취약점 목록 조회 (Python)

import os
from wiz_sdk import WizClient

client = WizClient(
    client_id=os.environ["WIZ_CLIENT_ID"],
    client_secret=os.environ["WIZ_CLIENT_SECRET"],
    api_url=os.environ["WIZ_API_URL"]
)

# 취약점 쿼리 (GraphQL)
query = """
query {
  vulnerabilities(first: 5) {
    nodes {
      id
      severity
      title
      affectedResource { name }
    }
  }
}
"""
result = client.query(query)
for vuln in result["data"]["vulnerabilities"]["nodes"]:
    print(f"[{vuln['severity']}] {vuln['title']} - {vuln['affectedResource']['name']}")
⚠️ 주의: Wiz API는 GraphQL 기반입니다. 복잡한 필터와 집계가 가능하므로, 공식 API 문서를 참고하여 효율적인 쿼리를 작성하세요.

5. 핵심 설정 레퍼런스

Wiz Connector 및 스캔 정책 설정 시 자주 사용되는 파라미터입니다.

설정 항목 설명 기본값 권장값
scan_schedule 전체 계정 스캔 주기 24h 12h (민감 환경)
excluded_tags 스캔 제외 리소스 태그 [] ["wiz:exclude=true"]
max_concurrent_scans 동시 스캔 가능한 계정 수 5 10 (대규모 환경)
risk_threshold 알림 생성 위험 점수 임계값 70 50 (엄격)
graph_depth 공격 경로 분석 깊이 (홉 수) 3 5 (심층 분석)
🔧 팁: excluded_tags를 활용하면 개발/테스트 환경을 스캔에서 제외하여 비용과 노이즈를 줄일 수 있습니다.

6. 실무 팁 & 트러블슈팅

자주 겪는 문제와 해결책

문제 원인 해결책
스캔 결과가 비어 있음 IAM 역할에 필요한 권한 누락 ReadOnlyAccess + SecurityAudit 정책 연결 확인
API 호출 시 401 오류 Client ID/Secret 만료 또는 잘못된 리전 URL Wiz 콘솔에서 API 키 재발급, WIZ_API_URL 확인
그래프 분석이 너무 느림 리소스 수가 많거나 graph_depth가 큼 graph_depth를 3으로 낮추고, 필터 조건 추가
취약점 우선순위가 비현실적 비즈니스 컨텍스트 미반영 Wiz Tags로 중요 리소스 표시, Risk Engine 커스텀 규칙 설정
⚠️ 주의: Wiz는 에이전트리스 방식이지만, 스냅샷 기반 스캔은 일부 OS에서 임시 디스크 공간을 사용할 수 있습니다. 대규모 스캔 전에 영향을 평가하세요.

7. 참고 자료