Singularity XDR은 AI 기반 자율 탐지·대응(Autonomous) 플랫폼입니다. 엔드포인트, 클라우드, 네트워크를 단일 데이터 레이크로 통합하여 실시간 보안 분석을 수행합니다. AI 엔진이 위협을 자체 판단하고 차단까지 수행하는 ‘완전 자율 모드’가 핵심입니다.
딥러닝 모델이 1초 이내에 악성 행위 분류. 실시간 엔드포인트 이벤트 스트리밍 처리.
사전 정의된 플레이북 없이 AI가 프로세스 종료, 격리, 롤백을 자동 실행.
모든 원격지 로그를 중앙 수집. Parquet 기반 컬럼 스토리지로 고속 쿼리.
기존 EDR/XDR 대비 AI 자율성과 데이터 엔지니어링 친화적 아키텍처가 차별점입니다.
| 기능 | SentinelOne Singularity | CrowdStrike Falcon | Microsoft Defender XDR |
|---|---|---|---|
| AI 자율 대응 | 완전 자율 (Autonomous) | 부분 자동화 | 수동/플레이북 |
| 데이터 수집 형식 | Parquet + 스트리밍 | JSON (중앙집중) | Kusto 기반 |
| 오프라인 AI 추론 | 에이전트 내 추론 | 클라우드 의존 | 하이브리드 |
| API 우선 | REST & gRPC | REST | Graph API |
| 엔지니어 SDK | Python SDK (공식) | 실험적 SDK | Azure SDK |
sentinelone-sdk Python 패키지로 이벤트를 실시간 소비할 수 있어 AI/데이터 엔지니어에게 적합합니다.
에이전트 → 수집기 → AI 분석 → 자율 대응 → 데이터 레이크로 이어지는 단일 파이프라인.
Storyline : 프로세스·네트워크·파일 이벤트를 실시간 그래프로 연결. Ranger : 위협 점수를 매기는 AI 추론 엔진.
# 1. 공식 Python SDK 설치 (가상환경 권장)
pip install sentinelone-sdk
# 2. CLI 도구 설치 (선택)
# macOS / Linux
curl -sSL https://s1-public.s3.amazonaws.com/cli/install.sh | bash
s1 --version
# 환경 변수로 설정 (권장)
export S1_MGMT_URL="https://your-instance.sentinelone.net"
export S1_API_TOKEN="your_api_token_here"
# 또는 Python에서 직접
import sentinelone
client = sentinelone.Client(
base_url="https://your-instance.sentinelone.net",
token="your_api_token_here"
)
import sentinelone
from sentinelone.models import ThreatStatus
client = sentinelone.Client.from_env()
# 최근 24시간 위협 조회 (자율 대응 로그)
threats = client.threats.list(
created_at__gte="2026-03-01T00:00:00Z",
status=ThreatStatus.UNRESOLVED,
limit=10
)
for t in threats:
print(f"[{t.severity}] {t.threat_name} → {t.agent_computer_name} (AI verdict: {t.ai_verdict})")
# CLI 명령어 동등 예시
print("\n# 동등 CLI: s1 threat list --status unresolved --limit 10")
from_env() 대신 Vault/Secret Manager 사용. SDK는 rate-limit (초당 1000 요청) 을 준수해야 합니다.
| 설정 키 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| agent.log.level | string | info | debug / info / warn / error |
| agent.autonomous.mode | string | detect | detect / protect / mitigate |
| data.retention.days | int | 90 | 데이터 레이크 보관 기간 |
| ai.storyline.enabled | bool | true | 실시간 그래프 연결 활성화 |
| collector.batch.size | int | 500 | 이벤트 배치 전송 크기 |
| api.rate.limit | int | 1000 | 초당 API 요청 제한 |
이 외에도 sentinelone-sdk 의 Configuration 클래스를 통해 세부 파라미터를 관리할 수 있습니다.
service-account롤을 생성하고 자동 갱신 스크립트를 구성하세요.
s1 agent status --verbose로 연결 확인.
client.events.stream() 을 사용하면 실시간 이벤트를 Kafka/Pulsar로 바로 스트리밍 가능. AI 보안 데이터 레이크 구축에 필수.
# 에이전트 상태 진단 CLI
s1 agent list --filter "isActive:false" --columns computerName,lastActiveAt
# Python SDK로 이벤트 스트림 구독
for event in client.events.stream(event_types=["Process", "Network"]):
process_data = event.dict()
# Kafka produce 등
print(process_data["event_time"], process_data["process_name"])
Iceberg 테이블 포맷과 SQL-on-Lake 쿼리 예제를 확인하세요.