Cortex XDR는 팔로알토 네트웍스의 차세대 엔드포인트 탐지 및 대응(EDR) 플랫폼으로, 네트워크, 클라우드, 엔드포인트 데이터를 통합 분석하여 정교한 위협을 탐지하고 자동으로 대응합니다. AI/ML 기반 분석과 확장된 탐지 및 대응(XDR) 기능을 통해 기존 SIEM/SOAR와 차별화됩니다.
실시간 행동 분석, IOC 매칭, 머신러닝 모델로 알려지지 않은 위협까지 탐지. 엔드포인트, 네트워크, 클라우드 이벤트를 상관 분석.
자동화된 플레이북 (SOAR)으로 위협 격리, 프로세스 종료, 파일 삭제 등 실시간 대응. Cortex XSOAR와 긴밀하게 통합.
통합된 이벤트 스토어와 그래프 기반 분석으로 침투 경로 추적. AI가 연관된 알람을 자동 그룹화하여 분석 시간 단축.
기존 EDR/SIEM 대비 Cortex XDR의 강점을 표로 정리했습니다.
| 영역 | Cortex XDR | 기존 EDR (예: CrowdStrike) | 전통 SIEM (Splunk 등) |
|---|---|---|---|
| 데이터 통합 | 엔드포인트 + 네트워크 + 클라우드 + 이메일 | 주로 엔드포인트 | 로그 수집에 의존, 상관 분석 별도 |
| AI/ML 탐지 | 내장 딥러닝, 행동 기반 탐지 | ML 보조 수준 | 룰 기반, 사용자 정의 ML 필요 |
| 자동 대응 (SOAR) | 네이티브 통합, 플레이북 자동 실행 | 제한적, 별도 SOAR 필요 | 별도 SOAR 연동 필수 |
| 조사 UX | 그래프 기반 스토리라인, 원클릭 액션 | 리스트 기반, 수동 조사 | 대시보드 중심, 깊이 부족 |
| 운영 비용 | 단일 에이전트, 통합 관리 콘솔 | 멀티 에이전트 가능 | 고비용, 유지보수 복잡 |
Cortex XDR 아키텍처는 에이전트 → 데이터 레이크 → 분석 → 대응의 흐름으로 구성됩니다. 아래 ASCII 다이어그램을 참고하세요.
설치부터 첫 사용자 정의 탐지까지 3단계로 진행합니다.
# 1. Cortex XDR 콘솔에서 설치 스크립트 다운로드
# (Settings > Endpoints > Download Agent)
# 2. 에이전트 설치 (RHEL/CentOS 예)
sudo rpm -ivh cortex-xdr-agent-.rpm
# 3. 등록 확인
sudo /opt/cortex-xdr/bin/cortex-xdr-agent -v
sudo systemctl status cortex-xdr-agent
# 4. (선택) 프록시 설정
sudo /opt/cortex-xdr/bin/cortex-xdr-agent --set-proxy http://proxy.company.com:8080
Cortex XDR은 Python SDK(cortex-xdr-py)를 제공합니다. 아래는 인증 및 XQL 쿼리 예제입니다.
# 설치
# pip install cortex-xdr-py
from cortex_xdr import CortexXDR
# 인증 (API Key 발급 필요)
client = CortexXDR(
api_key_id="your_key_id",
api_key="your_api_key_private",
fqdn="your-tenant.xdr.us.paloaltonetworks.com"
)
# 최근 1시간 동안의 모든 알람 조회
query = """
dataset = xdr_data
| filter event_type = ENRICHED_ALERT
| filter _time >= now() - 1h
| fields alert_name, agent_hostname, alert_severity
| limit 50
"""
result = client.xql_query(query)
for row in result['reply']['data']:
print(f"[{row['alert_severity']}] {row['alert_name']} - {row['agent_hostname']}")
# Cortex XDR API를 활용한 탐지 룰 생성 (curl 예제)
curl -X POST "https://api-tenant.xdr.us.paloaltonetworks.com/public_api/v1/detections/rules" \
-H "x-xdr-auth-id: your_api_key_id" \
-H "Authorization: Bearer your_api_key_secret" \
-H "Content-Type: application/json" \
-d '{
"rule_name": "Suspicious PowerShell from Temp",
"severity": "high",
"query": "dataset = xdr_data | filter event_type = PROCESS and process_name = \"powershell.exe\" and process_command_line contains \"temp\"",
"alert_description": "PowerShell 실행이 temp 디렉토리에서 감지됨",
"run_every": 60
}'
| 설정 항목 | 설명 | 권장값 / 예시 |
|---|---|---|
| 에이전트 수집 정책 | 파일, 네트워크, 레지스트리 등 수집 대상 | 기본 + 네트워크 연결 전체 수집 |
| 데이터 보존 기간 | Cortex Data Lake 보관 일수 | 13개월 (규정 준수 시 12개월 이상) |
| 탐지 민감도 | ML 모델의 임계값 (Low/Medium/High) | 처음에는 Medium, 안정화 후 High |
| 자동 차단 액션 | 위협 등급별 차단 수준 (kill, quarantine, isolate) | Critical → isolate, High → kill |
| XSOAR 플레이북 | 자동 대응 워크플로우 트리거 조건 | 알람 등급 High 이상, 특정 IOC 매칭 시 |
| API Rate Limit | API 호출 제한 (분당) | 기본 600/min, 추가 요청 시 증설 가능 |
| 문제 | 원인 | 해결 |
|---|---|---|
| 에이전트가 콘솔에 나타나지 않음 | 프록시/방화벽 차단, 인증서 문제 | cortex-xdr-agent --check-connectivity로 진단, 443 포트 아웃바운드 허용 |
| XQL 쿼리 속도 느림 | 인덱스 없음, 과도한 필드 선택 | 시간 범위 제한, | fields로 필요한 컬럼만 지정 |
| 알람 과다 발생 (False Positive) | 민감도 높음, 사용자 정의 룰 오류 | 예외 리스트 추가, BiOC 튜닝, 머신러닝 피드백 제출 |
| SOAR 플레이북 실행 실패 | API 권한 부족, 변수 바인딩 오류 | Playbook 디버그 로그 확인, XSOAR에서 수동 트리거 테스트 |
# 연결 테스트 및 에러 핸들링
from cortex_xdr import CortexXDR, CortexXDRException
try:
client = CortexXDR(
api_key_id="your_key_id",
api_key="your_api_key_private",
fqdn="your-tenant.xdr.us.paloaltonetworks.com"
)
# 간단한 핑 (가용성 확인)
result = client.xql_query("dataset = xdr_data | limit 1")
print("✅ 연결 성공", result['reply']['status'])
except CortexXDRException as e:
print(f"❌ Cortex API 오류: {e}")
except Exception as e:
print(f"❌ 일반 오류: {e}")