| name | implementing-threat-intelligence-lifecycle-management |
| description | Build out a full CTI program around the six-phase threat intelligence lifecycle (direction, collection, processing, analysis, dissemination, feedback), including defining intelligence requirements, building a collection pipeline, normalizing data, and tracking dissemination feedback. Use when standing up or maturing a threat intelligence program, defining intelligence requirements, or designing collection-to-dissemination workflows for a CTI team. |
| domain | cybersecurity |
| subdomain | threat-intelligence |
| tags | ["threat-intelligence","lifecycle","intelligence-cycle","collection","analysis","dissemination","strategic-intelligence","cti-program"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
| nist_csf | ["ID.RA-01","ID.RA-05","DE.CM-01","DE.AE-02"] |
| mitre_attack | ["T1591","T1592","T1593","T1589"] |
Implementing Threat Intelligence Lifecycle Management
Overview
The threat intelligence lifecycle is a structured, iterative process for transforming raw data into actionable intelligence. Based on the intelligence cycle used by military and government agencies, it comprises six phases: Direction (requirements gathering), Collection (data acquisition), Processing (normalization and deduplication), Analysis (contextualization and assessment), Dissemination (distribution to stakeholders), and Feedback (evaluation and refinement). This skill covers building each phase with tooling, metrics, and integration points for a mature CTI program.
When to Use
- When deploying or configuring implementing threat intelligence lifecycle management capabilities in your environment
- When establishing security controls aligned to compliance requirements
- When building or improving security architecture for this domain
- When conducting security assessments that require this implementation
Prerequisites
- Python 3.9+ with
pymisp, stix2, requests, pandas libraries
- MISP or OpenCTI as threat intelligence platform
- Ticketing system (Jira, ServiceNow) for requirements management
- SIEM integration (Splunk, Elastic) for indicator operationalization
- Understanding of intelligence analysis techniques (ACH, Diamond Model)
Key Concepts
Intelligence Requirements (IR)
Priority Intelligence Requirements (PIRs) define what the organization needs to know. Examples: Which threat actors target our sector? What vulnerabilities are being actively exploited? Are our brand or credentials being traded on dark web? PIRs drive collection planning and ensure intelligence production is relevant.
Collection Management Framework
A collection management framework maps intelligence requirements to collection sources, tracks collection gaps, and ensures coverage across the threat landscape. Sources include OSINT, commercial feeds, ISAC sharing, internal telemetry, and human intelligence from industry contacts.
Intelligence Levels
Strategic intelligence informs executive decision-making (threat landscape, risk trends, geopolitical context). Operational intelligence supports security operations (campaign tracking, actor TTPs, attack timing). Tactical intelligence enables immediate defense (IOCs, detection rules, blocklists).
Workflow
Step 1: Define Intelligence Requirements
import json
from datetime import datetime
enum Enum
():
CRITICAL =
HIGH =
MEDIUM =
LOW =
:
():
. = requirement_id
.question = question
.priority = priority
.stakeholder = stakeholder
.level = intelligence_level
.sources = collection_sources []
.created = datetime.now().isoformat()
.status =
.last_answered =
():
{
: .,
: .question,
: .priority.name,
: .stakeholder,
: .level,
: .sources,
: .created,
: .status,
: .last_answered,
}
:
():
.requirements = []
():
.requirements.append(requirement)
()
():
filtered = [r r .requirements r.status == ]
priority:
filtered = [r r filtered r.priority == priority]
level:
filtered = [r r filtered r.level == level]
filtered
():
data = [r.to_dict() r .requirements]
(output_file, ) f:
json.dump(data, f, indent=)
()
mgr = RequirementsManager()
mgr.add_requirement(IntelligenceRequirement(
, ,
Priority.CRITICAL, , ,
[, , ],
))
mgr.add_requirement(IntelligenceRequirement(
, ,
Priority.CRITICAL, , ,
[, , , ],
))
mgr.add_requirement(IntelligenceRequirement(
, ,
Priority.HIGH, , ,
[, , ],
))
mgr.add_requirement(IntelligenceRequirement(
, ,
Priority.HIGH, , ,
[, , ],
))
mgr.export_requirements()