OpenCTI Threat Intelligence
| Pack name | OpenCTI Threat Intelligence |
| Version | 1.0.1 |
| Vendor | OpenCTI |
| Capabilities | Connector (pull · enrichment) |
| Categories | Threat Intelligence · Security |
Overview
Pack cung cấp connector kéo threat intelligence indicator từ OpenCTI về enrichment store của SecOps, bao gồm:
- 1 pull connector (
opencti-ti) — truy vấn GraphQL API của OpenCTI, đồng bộ indicator theo watermarkmodified - Enrichment entity
threat_indicator— IOC dạng IP, domain, URL, file hash kèm score, confidence, MITRE tactic/technique, malware family, TLP marking
Yêu cầu trước khi cài đặt
| Yêu cầu | Chi tiết |
|---|---|
| OpenCTI 5.12+ | GraphQL API bật sẵn tại https://<opencti-host>/graphql |
| API token | Settings → Security → Users → chọn user → copy Token. User cần quyền đọc Indicators và Stix Core Relationships |
| Kết nối mạng | SecOps collector phải tới được host OpenCTI. Connector đặt allow_private_hosts=True nên hỗ trợ OpenCTI đặt trong mạng nội bộ |
| Quyền platform | Role Content Pack Manager để cài pack, Log Source Manager để tạo connector |
⚠️ URL phải trỏ thẳng vào endpoint GraphQL, ví dụ
https://opencti.corp.local/graphql. Nhập URL gốc (https://opencti.corp.local) sẽ khiến Test Connection fail.
Cài đặt
- Vào Marketplace → tìm "OpenCTI Threat Intelligence" → Install
- Vào Data Collection → Data Connectors → Add Connection → chọn connector type
opencti-ti - Điền cấu hình (bảng bên dưới) → Test Connection → Save
- Kiểm tra Enrichment → Threat Indicators sau chu kỳ poll đầu tiên
Cấu hình connector
| Field | Key | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|---|
| OpenCTI URL | opencti_url | string | ✅ | Endpoint GraphQL, ví dụ https://opencti.corp.local/graphql |
| OpenCTI Token | opencti_token | password | ✅ | API token của user OpenCTI (gửi dạng Authorization: Bearer <token>) |
| Poll Interval (minutes) | time_interval | int | ✅ | Chu kỳ đồng bộ, khuyến nghị 15 phút |
| Lookback Hours | lookback_hours | int | — | Cửa sổ lấy dữ liệu lần chạy đầu (chưa có watermark). Hợp lệ 1–24, mặc định 24 |
Khi đẩy cấu hình qua API, kiểu dữ liệu phải khớp chính xác:
opencti_url/opencti_tokenlà chuỗi có nháy,time_interval/lookback_hourslà số không nháy.{ "opencti_url": "https://opencti.corp.local/graphql", "opencti_token": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "time_interval": 15, "lookback_hours": 24 }
Cách connector hoạt động
Mỗi chu kỳ poll, connector chạy 3 truy vấn GraphQL rồi hợp nhất kết quả:
| # | Truy vấn | Mục đích | Bộ lọc |
|---|---|---|---|
| 1 | indicators | Lấy indicator mới tạo hoặc vừa được sửa | revoked = false, pattern_type = stix, modified > since — sắp xếp modified asc, phân trang 100 record |
| 2 | stixCoreRelationships | Tìm quan hệ indicates mới phát sinh (indicator được gắn thêm vào malware / attack pattern) | relationship_type = indicates, created_at > since |
| 3 | indicators theo ID | Lấy đầy đủ những indicator chỉ xuất hiện ở truy vấn 2 mà chưa có ở truy vấn 1 | batch 100 ID mỗi lần |
Kết quả truy vấn 1 và 3 được merge theo id (ưu tiên bản từ truy vấn 1 vì mới hơn). Sau khi yield hết record, watermark được đẩy về thời điểm bắt đầu job chứ không phải timestamp của record cuối — tránh bỏ sót indicator được sửa trong lúc job đang chạy.
idem_key của mỗi record là {instance_id}:ti:{indicator_id} → indicator được cập nhật thay vì nhân bản qua các lần đồng bộ.
Truy vấn 2 giải quyết trường hợp indicator không đổi nhưng vừa được gắn quan hệ với một malware hoặc technique mới — nếu chỉ dựa vào
modifiedthì thông tin MITRE / malware family sẽ không bao giờ được cập nhật.
Enrichment Entity — threat_indicator
| Field | Nguồn OpenCTI | Mô tả |
|---|---|---|
id | id | STIX ID của indicator |
pattern | pattern | Pattern STIX gốc, ví dụ [ipv4-addr:value = '203.0.113.10'] |
pattern_type | pattern_type | Luôn là stix (connector chỉ lấy pattern STIX) |
observable_value | Trích từ pattern | Giá trị IOC thuần (IP / domain / URL / hash) — đây là field dùng để đối chiếu log |
indicator_type | x_opencti_main_observable_type | IPv4-Addr, Domain-Name, Url, StixFile… |
indicator_types | indicator_types | Danh sách phân loại STIX gốc |
threat_type | Derived | Ưu tiên indicator_types[0]; nếu trống thì suy từ malware family (malware), rồi từ label theo từ khóa (phishing, botnet, c2, malware, scanning, exploit); cuối cùng fallback malicious-activity |
malware_family | Quan hệ tới Malware | Tên họ malware liên quan |
mitre_tactics | Quan hệ tới AttackPattern | Danh sách TAxxxx |
mitre_techniques | Quan hệ tới AttackPattern | Danh sách Txxxx |
score | x_opencti_score | Điểm tin cậy IOC, mặc định 50 nếu OpenCTI không trả |
confidence | confidence | Độ tin cậy nguồn, mặc định 0 |
detection | x_opencti_detection | Indicator có được đánh dấu dùng cho detection hay không, mặc định false |
revoked | revoked | Luôn false (đã lọc ở query) |
valid_from / first_seen | valid_from | Thời điểm indicator bắt đầu có hiệu lực |
valid_until | valid_until | Thời điểm hết hiệu lực |
modified | modified | Lần sửa gần nhất trên OpenCTI |
description | description | Mô tả indicator |
labels | objectLabel[].value | Nhãn phân loại của OpenCTI |
markings | objectMarking[].definition | TLP marking (TLP:CLEAR, TLP:AMBER…) |
observable_valueđược trích bằng regex lấy giá trị trong dấu nháy sau dấu=của pattern STIX. Pattern phức hợp (nhiều điều kiệnAND/OR) chỉ lấy được giá trị đầu tiên — cân nhắc lọc bớt loại pattern này ở phía OpenCTI nếu cần độ chính xác cao.
Troubleshooting
| Triệu chứng | Nguyên nhân | Cách xử lý |
|---|---|---|
| Test Connection fail | URL thiếu /graphql | Nhập đầy đủ https://<host>/graphql |
| Test Connection fail, log báo 401 | Token sai hoặc user bị disable | Tạo lại token trong Settings → Security → Users |
Save cấu hình bị chặn: Lookback hours cannot exceed 24 | lookback_hours > 24 | Đặt lại trong khoảng 1–24 |
Save bị chặn: Lookback hours must be a valid integer | Nhập chuỗi vào field int | Nhập số nguyên, hoặc để trống để dùng mặc định 24 |
| Đồng bộ 0 record | Không có indicator nào modified trong cửa sổ lookback | Bình thường với tenant ít cập nhật. Kiểm tra bằng cách sửa 1 indicator trên OpenCTI rồi chờ chu kỳ kế tiếp |
| Thiếu indicator dù đã tạo trên OpenCTI | Indicator có pattern_type khác stix hoặc đang revoked | Connector chỉ lấy pattern STIX chưa bị thu hồi — đây là hành vi thiết kế |
mitre_techniques / malware_family trống | Indicator chưa có quan hệ indicates tới AttackPattern / Malware | Bổ sung quan hệ trên OpenCTI; chu kỳ kế tiếp truy vấn 2 sẽ kéo về |
| Sync chậm / timeout | Tenant có lượng indicator lớn, phân trang 100/lần | Tăng time_interval, giảm lookback_hours cho lần khởi tạo |
Checklist sau khi cài:
- Connector type
opencti-tixuất hiện trong danh sách Log Source - Test Connection trả về thành công
- Sau 1 chu kỳ poll, Enrichment → Threat Indicators có dữ liệu
-
observable_valuecủa record mẫu đúng định dạng IOC mong đợi
Hỗ trợ
- Lỗi platform/Góp ý pack: Dùng tính năng feedback trên trang Marketplace
Last updated: 2026-07-30 · Vendor: OpenCTI · Author: secops-team
CrowdStrike Falcon
Thu thập detection và endpoint inventory của CrowdStrike Falcon qua Falcon Management API, chuẩn hóa cả hai luồng theo Field Standard, kèm sẵn detection rule, dashboard và report để vận hành Falcon như một data source của SIEM thay vì phải mở riêng console.
SentinelOne Singularity
Pack cung cấp giám sát endpoint toàn diện từ nền tảng SentinelOne Singularity trên SecOps platform.