Post

OpenCTI

OpenCTI

OpenCTI is best understood as “a knowledge base and hub that organizes threat intelligence so that people and organizations can actually use it.” Instead of focusing on internal software architecture, the core idea is how it helps you collect, connect, and operationalize threat intelligence.

What is OpenCTI?

OpenCTI is a threat intelligence platform that aggregates cyber threat information scattered across different sources into a single place and links adversaries, campaigns, TTPs, and IoCs in a graph-like structure. Put simply, it is a knowledge base that lets you see at a glance “which techniques APT group X uses, what infrastructure they rely on, and which organizations they target,” rather than just a flat list of IoCs. Instead of a simple IoC list, it expresses “Who, Why, How, Whom, and When” in a contextualized way.

It normalizes information from heterogeneous sources such as threat intelligence feeds, MISP, commercial intelligence, and internal incident data into a common model. This turns threat-related knowledge that each team previously managed separately in spreadsheets, wikis, and documents into a single, structured repository.

What is it for?

The first purpose is “to provide context around threats.” If you only look at IoCs, they are just lists of IPs/domains/hashes. In OpenCTI, you can see which attack campaigns those IoCs belong to, and which groups and TTPs those campaigns are related to. This helps you understand not just individual detection or blocking events, but “which adversary you are actually fighting against.”

The second purpose is “to share and reuse intelligence across security tools.” Once curated, intelligence can be distributed to SIEM, EDR, SOAR, firewalls, and other systems, and reused in detection rules, blocking policies, and playbooks. As an organization grows, if you manage intelligence separately in each tool without a central hub, consistency quickly breaks down.

What can you do from a user perspective?

1) Aggregate and structure threat intelligence in one place

From a user’s point of view, the first step is collecting intelligence.

  • Ingest IoCs from external feeds (commercial/free), MISP, open-source reports, and internal incidents into OpenCTI
  • Link collected IoCs to “campaigns, groups, malware, TTPs” to give them context
  • Explore which IoCs are associated with which groups/campaigns/tools as a graph

Through this, you move beyond a simple list and can structurally see “which threats are continuously affecting the organization.”

2) Model and track adversaries and campaigns

In OpenCTI, you can create objects for specific APT groups or ransomware gangs and manage them.

  • Create a group (or Intrusion Set)
  • Link malware/tools, TTPs (ATT&CK), and infrastructure (IP/domain) used by that group
  • Create time-bounded campaigns (e.g., “2025 Q1 Campaign”) as objects and track their history

This allows you to see, as accumulated knowledge, “how this group changes its tactics over time and rotates infrastructure,” and quickly compare new incidents with past campaigns.

3) Promote incident IoCs into intelligence

Leaving IoCs from real incidents only in logs is wasteful. In OpenCTI you can:

  • Input hashes/domains/IPs/URLs collected during incidents
  • Link them to relevant malware, tools, TTPs, and target organization information
  • Organize them into a single attack campaign or case

As a result, “this incident is just one ransomware case” becomes “part of a campaign associated with a specific group/tactics.” This intelligence is reused later for detection tuning, hunting, and red team exercises.

4) Automate with detection and blocking systems

Users can integrate OpenCTI with detection and blocking tools to reduce repetitive work.

  • Automatically distribute validated IoCs to SIEM/EDR/firewalls/email gateways
  • When new IoCs related to a given group/campaign appear, automatically update corresponding rules or blocklists
  • Integrate with SOAR to automate “which response playbook to execute when an alert matching this intelligence fires”

Ultimately, OpenCTI plays a central role in building a loop of “intelligence → detection/blocking → feedback (new intelligence).”

5) Provide a common language for analysts and engineers

One of OpenCTI’s benefits from a user’s perspective is that analysts, offensive engineers, and defensive engineers share the same views and models.

  • Everyone communicates using common languages such as MITRE ATT&CK and STIX
  • Red teams share models of the groups/campaigns they emulate through OpenCTI
  • Blue teams design detection and hunting strategies based on the same models

Key entities and relationships, STIX 2 / ATT&CK

  • SDO (core entities): Intrusion Set (APT group), Campaign, Attack Pattern (ATT&CK TTP), Malware, Tool, Vulnerability, Identity (organization), Location, etc.
  • SCO (observed data): IPv4, Domain, URL, file hash, email, and other IoCs.
  • SRO (relationships): intrusion-set “uses” malware/tool, campaign “targets” identity, indicator “indicates” intrusion-set, malware “communicates-with” ipv4-addr.

ATT&CK data is provided in STIX and is modeled in OpenCTI as sets of TTPs plus infrastructure and targets.

  • Threat Intelligence (CTI): IoCs plus context linking adversaries, motivations, TTPs, targets, and time.
  • TIP: Platform for collecting, normalizing, analyzing, and integrating intelligence. OpenCTI is an open-source TIP.
  • STIX/TAXII: STIX is a JSON-based format, TAXII is the transport protocol. OpenCTI’s internal schema adheres to STIX 2.1.
  • ATT&CK: A knowledge base that systematizes TTPs. OpenCTI imports it via connectors to use as a modeling foundation.

How to use it in practice: step-by-step workflow

1) Dashboard and initial exploration

After logging in, you review recent activities, threats, and IoC summaries on the dashboard. In the Threats/Observations menus, you filter groups, campaigns, and IoCs (by time, tags, confidence).

2) Connect intelligence sources and ingest data

Admins configure connectors for MISP, ATT&CK, and CVE. Users manage the quality of incoming data through review/validation.

3) Register Observables and Indicators

From Observations → Add, create Observables (IP/domain/hash). Promote them into Indicators (YARA/Sigma patterns) via “Create Indicator.” Process multiple items via batch jobs.

4) Model threat groups and campaigns

In Threats, create new Intrusion Sets/Campaigns/Malware. In the Knowledge tab, link IoCs, TTPs, and victimology. Example: add malware, infrastructure, and ATT&CK relationships to APT X and let OpenCTI auto-build the graph.

Create Incident Response cases and link IoCs, groups, TTPs, and assets. Aggregate multiple cases into Groupings to produce reports.

6) Perform analysis and graph exploration

Open reports in Reports/Analyses and view tables and graphs. Add new relationships to enrich the knowledge base.

7) Deploy to other systems

Use Sentinel/Elastic connectors to auto-sync IoCs based on tags and confidence. Integrate SOAR to run intelligence-driven playbooks.

Offensive use cases

For red team operators, OpenCTI serves as a knowledge store for attack scenario design. Since the MITRE ATT&CK framework is mapped into OpenCTI, searching for a specific APT group (e.g., APT29) shows tools, techniques, and sub-techniques as a graph. This lets you quickly gather the technical details needed to emulate real threat actors. You can benchmark APTs as Intrusion Sets, create “APT-X Simulation” Campaigns, connect TTPs and infrastructure, and rebuild attack chains from incident IoCs to reuse them as exercise scenarios.

Example: modeling an APT group
Intrusion Set (APT-X) → uses Malware (Cobalt Strike) → communicates-with Domain (C2) → targets Identity (financial sector).

Defensive use cases

OpenCTI acts as an intelligence hub. You collect, correlate, and then distribute to SIEMs and EDRs. SOAR playbooks can, for example, query additional IoCs and update policies automatically when group-related IoCs are detected.

Example: SIEM integration
OpenCTI IoCs → injected into Sentinel rules. Alerts → enriched in OpenCTI with TTP/group context.

Example of modeling an APT/ransomware group

  • Intrusion Set: Group-R (ransomware).
  • Campaign: “Group-R 2025 RDP campaign.”
  • Attack Patterns: RDP brute-force (T1110), data exfiltration (T1567).
  • Malware/Tool: ransomware binary, loader.
  • Observables: C2 IPs/domains/hashes.

When new IoCs are added, they can be automatically associated with the campaign.

Example flow: incident IoCs → detection/hunting

  1. Register Observables (hashes/IPs).
  2. Enrich them (VirusTotal/Shodan).
  3. Create a Case and link it to groups/TTPs.
  4. Package IoCs and deploy them to SIEM/EDR.
  5. Use this context to prioritize future similar incidents.

OpenCTI는 “위협 인텔 정보를 사람과 조직이 쓸 수 있게 정리해 주는 지식 베이스 겸 허브”라고 보면 이해하기 좋습니다. 소프트웨어 내부 구조보다, 위협 인텔을 어떻게 모으고, 연결하고, 활용하게 도와주는지가 핵심입니다.

OpenCTI는 무엇인가

OpenCTI는 여러 곳에 흩어져 있는 사이버 위협 정보를 한 곳에 모아서, 공격자·캠페인·TTP·IoC를 그래프 형태로 연결해 주는 위협 인텔리전스 플랫폼입니다. 쉽게 말해, “APT 그룹 X가 어떤 기법을 쓰고, 어떤 인프라를 쓰며, 어떤 조직을 노렸는지”를 한 눈에 볼 수 있게 하는 지식 베이스입니다. 단순 IoC 목록이 아니라, “누가(Who), 왜(Why), 어떻게(How), 누구를(Whom), 언제(When)”를 문맥 있게 표현합니다.

Threat Intelligence 피드, MISP, 상용 인텔, 내부 인시던트 데이터 등 서로 다른 소스에서 온 정보를 공통된 모델로 정리해 줍니다. 그래서 팀마다 제각각 엑셀·위키·문서로 관리하던 위협 관련 지식이 하나의 정리된 저장소로 바뀝니다.

무엇을 위해 존재하는가

첫 번째 목적은 “위협에 대한 맥락을 주는 것”입니다. IoC만 보면 IP/도메인/해시 리스트에 불과하지만, OpenCTI에서는 그 IoC가 어떤 공격 캠페인과 연결되고, 그 캠페인이 어떤 그룹과 어떤 TTP와 관련 있는지를 함께 보여줍니다. 따라서 탐지나 차단이 단발 이벤트가 아니라, “어떤 적과 싸우고 있는지”까지 이해하는 데 도움을 줍니다.

두 번째 목적은 “보안 도구들 사이에서 인텔을 공유하고 재사용하게 하는 것”입니다. 한 번 정리한 인텔을 SIEM, EDR, SOAR, 방화벽 등 다양한 시스템으로 배포해서, 탐지 규칙·차단 정책·플레이북에 재사용할 수 있게 하는 허브 역할을 합니다. 조직 규모가 커질수록, 이 중앙 허브 없이 각 도구에 인텔을 따로 관리하면 곧바로 일관성이 무너집니다.

사용자 관점에서 할 수 있는 일

1) 위협 인텔을 한 곳에 모으고 구조화하기

사용자 관점에서 가장 먼저 하는 일은 인텔을 모으는 것입니다.

  • 외부 피드(상용/무료), MISP, 오픈소스 리포트, 내부 인시던트에서 나온 IoC를 OpenCTI로 수집
  • 수집된 IoC를 “캠페인, 그룹, 악성코드, TTP”와 연결해서 문맥을 부여
  • 어떤 IoC가 어떤 그룹/캠페인/도구와 연관 있는지 그래프로 탐색

이 과정을 통해 단순한 리스트를 넘어, “어떤 위협이 조직에 지속적으로 영향을 주고 있는지”를 구조적으로 볼 수 있습니다.

2) 공격자와 캠페인을 모델링하고 추적하기

OpenCTI에서는 특정 APT 그룹이나 랜섬웨어 갱단을 객체로 만들어 관리할 수 있습니다.

  • 그룹(또는 Intrusion Set)을 만들고
  • 이 그룹이 사용하는 악성코드/툴, TTP(ATT&CK), 인프라(IP/도메인) 등과 연결
  • 시간대별 캠페인(예: 2025 Q1 캠페인)을 객체로 만들어 히스토리 관리

이렇게 하면, “이 그룹은 시간이 지나면서 어떤 전술을 바꾸고, 인프라를 어떻게 교체하는지”를 축적된 지식으로 볼 수 있고, 새 인시던트가 발생했을 때 과거 캠페인과 빠르게 비교할 수 있습니다.

3) 인시던트에서 나온 IoC를 인텔로 승격시키기

실제 침해사고에서 나오는 IoC는 그냥 로그에만 두기 아깝습니다. OpenCTI에서는:

  • 인시던트에서 수집한 해시/도메인/IP/URL 등을 입력
  • 관련 악성코드, 도구, TTP, 타깃 조직 정보와 연결
  • 이를 하나의 공격 캠페인 혹은 케이스로 정리

그 결과, “이번 사고는 그냥 랜섬웨어 1건”이 아니라, “특정 그룹/전술과 연관된 캠페인의 일환”으로 관리됩니다. 이 인텔은 향후 탐지 튜닝, 헌팅, 레드팀 연습에 재사용됩니다.

4) 탐지·차단 시스템과 연동해 자동화하기

사용자는 OpenCTI를 탐지·차단 도구와 연동해 반복 작업을 줄일 수 있습니다.

  • 검증된 IoC를 SIEM/EDR/방화벽/메일 게이트웨이에 자동으로 배포
  • 특정 그룹/캠페인과 연관된 IoC가 새로 생기면, 관련 규칙이나 차단 리스트를 자동 갱신
  • SOAR와 연동해 “이 인텔에 해당하는 경보가 뜨면 어떤 대응 플레이북을 실행할지” 자동화

결국 “인텔 → 탐지/차단 → 피드백(새 인텔)”의 루프를 만드는 데 OpenCTI가 중추 역할을 합니다.

5) 분석가·엔지니어 간 공통 언어 제공

사용자 입장에서 OpenCTI의 장점 중 하나는, 분석가/오펜시브 엔지니어/디펜시브 엔지니어가 같은 화면과 모델을 공유한다는 점입니다.

  • 모두가 MITRE ATT&CK, STIX 같은 공통 언어 위에서 대화
  • 레드팀은 자신들이 모방하는 그룹/캠페인 모델을 OpenCTI로 공유
  • 블루팀은 같은 모델을 보며 탐지·헌팅 전략을 설계

주요 객체와 관계, STIX 2 / ATT&CK 연관

  • SDO(주요 객체): Intrusion Set(APT 그룹), Campaign, Attack Pattern(ATT&CK TTP), Malware, Tool, Vulnerability, Identity(조직), Location 등.
  • SCO(관측 객체): IPv4, Domain, URL, File 해시, Email 등 IoC.
  • SRO(관계): intrusion-set “uses” malware/tool, campaign “targets” identity, indicator “indicates” intrusion-set, malware “communicates-with” ipv4-addr.

ATT&CK 데이터는 STIX로 제공되며, OpenCTI에서 TTP 집합 + 인프라 + 타깃으로 모델링합니다.

관련 개념: Threat Intel, TIP, STIX/TAXII, ATT&CK

  • Threat Intelligence(CTI): IoC + 문맥(공격자·동기·TTP·타깃·시점) 연결 정보.
  • TIP: 인텔 수집·정규화·분석·연동 플랫폼. OpenCTI는 오픈소스 TIP.
  • STIX/TAXII: STIX(JSON 포맷), TAXII(교환 프로토콜). OpenCTI 내부 스키마는 STIX 2.1 준수.
  • ATT&CK: TTP 체계화 지식 베이스. OpenCTI 커넥터로 가져와 모델링 기반 제공.

실제 사용하는 방법: 단계별 워크플로우

1) 대시보드와 초기 탐색

로그인 후 대시보드에서 최근 활동·위협·IoC 요약 확인. Threats/Observations 메뉴로 그룹·캠페인·IoC 필터링(시간·태그·신뢰도).

2) 인텔 소스 연결과 데이터 수집

관리자가 MISP·ATT&CK·CVE 커넥터 설정. 사용자는 들어온 데이터 Review/Validate로 품질 관리.

3) Observables/Indicators 등록

Observations → Add로 IP/도메인/해시 Observable 생성. “Indicator 생성”으로 패턴(YARA/Sigma) 승격. 배치 작업으로 다수 처리.

4) 위협 그룹·캠페인 모델링

Threats에서 새 Intrusion Set/Campaign/Malware 생성. Knowledge 탭에서 IoC·TTP·Victimology 연결. 예: APT X에 멀웨어·인프라·ATT&CK 관계 추가 → 그래프 자동 완성.

5) 인시던트/케이스 연결

Incident Response 케이스 생성 후 IoC·그룹·TTP·자산 연결. 여러 케이스를 Grouping으로 리포트화.

6) 분석과 그래프 탐색

Reports/Analyses에서 리포트 열어 표·그래프 확인. 새 관계 추가로 지식 보강.

7) 시스템 배포

Sentinel/Elastic 커넥터로 태그·신뢰도 기준 IoC 자동 동기화. SOAR 연동으로 인텔 기반 플레이북 실행.

오펜시브 관점 활용

레드팀 운영자에게 OpenCTI는 공격 시나리오 설계를 위한 지식 저장소입니다. MITRE ATT&CK 프레임워크가 OpenCTI에 매핑되어 있으므로, 특정 APT 그룹(예: APT29)을 검색하면 그들이 사용하는 도구, 기법, 서브 테크닉이 그래프로 시각화됩니다. 이를 통해 실제 위협 행위자의 행동을 모사(Adversary Emulation)할 때 필요한 구체적인 기술적 세부 사항을 신속하게 파악할 수 있습니다. Intrusion Set으로 APT 벤치마킹, Campaign으로 “APT-X Simulation” 생성, TTP·인프라 연결. 인시던트 IoC로 공격 체인 재구성 → 연습 시나리오 재사용이 가능합니다.

예시: APT 그룹 모델링
Intrusion Set(APT-X) → uses Malware(Cobalt Strike) → communicates-with Domain(C2) → targets Identity(금융권).

디펜시브 관점 활용

인텔 허브 역할을 합니다. 수집→상관 분석→SIEM/EDR 배포. SOAR 플레이북: 그룹 IoC 탐지 시 추가 IoC 조회·정책 업데이트에 활용 될 수 있습니다.

예시: SIEM 연동
OpenCTI IoC → Sentinel 룰 주입. 경보 → OpenCTI로 TTP/그룹 문맥 추가.

APT/랜섬웨어 모델링 예시

  • Intrusion Set: Group-R(랜섬웨어).
  • Campaign: “Group-R 2025 RDP 캠페인”.
  • Attack Pattern: RDP brute-force(T1110), 데이터 유출(T1567).
  • Malware/Tool: 랜섬웨어 바이너리, 로더.
  • Observables: C2 IP/도메인/해시.
    새 IoC 입력 시 캠페인 연관 자동 매핑.

인시던트 IoC → 탐지/헌팅 흐름 예시

  1. Observable 등록(해시/IP).
  2. Enrichment( VirusTotal/Shodan).
  3. Case 생성, 그룹/TTP 연결.
  4. IoC 패키징 → SIEM/EDR 배포.
  5. 유사 인시던트 시 우선순위 결정.
This post is licensed under CC BY 4.0 by the author.