用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/killvxk/cybersecurity-skills-zh --skill implementing-threat-intelligence-lifecycle-management命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
通过分析 Zeek dns.log 中的高熵子域名查询、超量查询量、超长查询长度以及异常 DNS 记录类型,检测 DNS 隧道和数据外泄中的隐蔽通道通信。适用于:当需要狩猎基于 DNS 的 C2 或数据外泄通道、调查异常 DNS 查询模式、或响应涉及 DNS 隧道工具(iodine、dnscat2、DNSExfiltrator)的威胁情报时使用。
实施 Google 的 BeyondCorp 零信任访问模型,通过 IAP、Access Context Manager 和 Chrome Enterprise Premium,消除网络边界的隐式信任,强制执行基于身份的访问控制,实现无 VPN 的安全应用访问。适用于将传统 VPN 替换为零信任架构、部署 Identity-Aware Proxy、配置设备信任策略、或为远程办公实施上下文感知访问控制时使用。
在授权的安全评估过程中,使用 Burp Suite 的扫描器、Intruder 和 Repeater 工具识别和验证跨站脚本(XSS)漏洞。适用于 Web 应用渗透测试中检测反射型、存储型和 DOM 型 XSS,验证自动化扫描器报告的 XSS 发现,以及评估 CSP 和 XSS 过滤器的有效性时使用。
基于 SOC 职业分类
正在显示 SKILL.md
| name | implementing-threat-intelligence-lifecycle-management |
| description | 实现结构化威胁情报生命周期,涵盖规划、收集、处理、分析、传播和反馈阶段,为组织决策生产可操作情报。 |
| 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 |
威胁情报生命周期是将原始数据转化为可操作情报的结构化迭代过程。基于军事和政府机构使用的情报周期,它由六个阶段组成:指导(需求收集)、收集(数据获取)、处理(规范化和去重)、分析(情境化和评估)、传播(向相关方分发)和反馈(评估和优化)。本技能涵盖为成熟 CTI 计划构建每个阶段的工具、指标和集成点。
pymisp、stix2、requests、pandas 库优先情报需求(PIR)定义组织需要了解的内容。示例:哪些威胁行为者针对我们的行业?哪些漏洞正在被主动利用?我们的品牌或凭据是否在暗网上被交易?PIR 驱动收集计划并确保情报生产具有相关性。
收集管理框架将情报需求映射到收集来源,跟踪收集缺口,确保覆盖整个威胁态势。来源包括 OSINT、商业 Feed、ISAC 共享、内部遥测和行业联系人的人力情报。
战略情报为高层决策提供信息(威胁态势、风险趋势、地缘政治背景)。操作情报支持安全运营(活动跟踪、行为者 TTP、攻击时机)。战术情报实现即时防御(IOC、检测规则、黑名单)。
import json
from datetime import datetime
from enum import Enum
class Priority(Enum):
CRITICAL = 1
HIGH = 2
MEDIUM = 3
LOW = 4
class IntelligenceRequirement:
def __init__(self, requirement_id, question, priority, stakeholder,
intelligence_level, collection_sources=None):
self.id = requirement_id
self.question = question
self.priority = priority
self.stakeholder = stakeholder
self.level = intelligence_level
self.sources = collection_sources or []
self.created = datetime.now().isoformat()
self.status = "active"
self.last_answered = None
def to_dict(self):
return {
"id": self.id,
"question": self.question,
"priority": self.priority.name,
"stakeholder": self.stakeholder,
"intelligence_level": .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()
import requests
from datetime import datetime, timedelta
class CollectionPipeline:
def __init__(self, config):
self.config = config
self.collected_data = []
def collect_cisa_kev(self):
"""收集 CISA 已知被利用漏洞目录。"""
url = "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json"
resp = requests.get(url, timeout=30)
if resp.status_code == 200:
data = resp.json()
vulns = data.get("vulnerabilities", [])
self.collected_data.append({
"source": "CISA KEV",
"type": "vulnerability",
"count": len(vulns),
"collected_at": datetime.now().isoformat(),
"data": vulns,
})
print(f"[+] CISA KEV:{len(vulns)} 个已知被利用漏洞")
return vulns
return []
def collect_otx_pulses(self, api_key, days=7):
"""收集最近的 OTX 脉冲。"""
headers = {"X-OTX-API-KEY": api_key}
since = (datetime.now() - timedelta(days=days)).isoformat()
url = f"https://otx.alienvault.com/api/v1/pulses/subscribed?modified_since="
resp = requests.get(url, headers=headers, timeout=)
resp.status_code == :
pulses = resp.json().get(, [])
.collected_data.append({
: ,
: ,
: (pulses),
: datetime.now().isoformat(),
})
()
pulses
[]
():
url =
resp = requests.post(url, data={: , : }, timeout=)
resp.status_code == :
data = resp.json().get(, [])
.collected_data.append({
: ,
: ,
: (data),
: datetime.now().isoformat(),
})
()
data
[]
():
summary = {
: (.collected_data),
: (d.get(, ) d .collected_data),
: [
{: d[], : d[], : d[]}
d .collected_data
],
}
summary
pipeline = CollectionPipeline({})
pipeline.collect_cisa_kev()
pipeline.collect_abuse_ch()
(json.dumps(pipeline.get_collection_summary(), indent=))
class IntelligenceProcessor:
def __init__(self):
self.processed_items = []
self.dedup_hashes = set()
def process_collection(self, raw_data, source_name):
"""规范化和去重收集到的情报。"""
processed = []
duplicates = 0
for item in raw_data:
normalized = self._normalize(item, source_name)
if normalized:
item_hash = self._compute_hash(normalized)
if item_hash not in self.dedup_hashes:
self.dedup_hashes.add(item_hash)
normalized["processed_at"] = datetime.now().isoformat()
processed.append(normalized)
else:
duplicates += 1
self.processed_items.extend(processed)
print(f"[+] 已从 {source_name} 处理 {len(processed)} 个条目"
f"(已删除 {duplicates} 个重复项)")
return processed
def _normalize(self, item, source):
"""将条目规范化为标准格式。"""
return {
"source": source,
"type": item.get("type", ),
: item.get(, item.get(, )),
: item.get(, ),
: item.get(, ),
: item.get(, []),
: item.get(, item.get(, )),
: item,
}
():
hashlib
key =
hashlib.sha256(key.encode()).hexdigest()
processor = IntelligenceProcessor()
class IntelligenceAnalyzer:
def __init__(self, requirements, processed_data):
self.requirements = requirements
self.data = processed_data
def answer_requirement(self, requirement_id):
"""生产回答特定需求的情报。"""
req = next((r for r in self.requirements if r.id == requirement_id), None)
if not req:
return None
# 根据需求类型过滤相关数据
relevant = self.data # 实践中按需求主题过滤
analysis = {
"requirement_id": requirement_id,
"question": req.question,
"intelligence_level": req.level,
"data_points_analyzed": len(relevant),
"produced_at": datetime.now().isoformat(),
"key_findings": [],
"confidence": "medium",
"recommendations": [],
}
return analysis
def produce_daily_brief(self):
"""生产每日威胁情报简报。"""
brief = {
"date": datetime.now().strftime("%Y-%m-%d"),
"total_items_processed": len(.data),
: [],
: [
{: r., : r.question[:], : r.status}
r .requirements r.status ==
],
}
brief
class IntelligenceDisseminator:
def __init__(self):
self.distribution_log = []
def distribute_report(self, report, channels, classification="TLP:GREEN"):
"""通过适当渠道向相关方分发情报报告。"""
for channel in channels:
entry = {
"report_id": report.get("requirement_id", "daily"),
"channel": channel,
"classification": classification,
"distributed_at": datetime.now().isoformat(),
"status": "sent",
}
self.distribution_log.append(entry)
print(f" [+] 已分发至 {channel}")
def collect_feedback(self, report_id, stakeholder, rating, comments=""):
"""收集相关方对情报产品的反馈。"""
feedback = {
"report_id": report_id,
"stakeholder": stakeholder,
"rating": rating, # 1-5
"comments": comments,
"received_at": datetime.now().isoformat(),
}
print(f"[+] 已收到来自 {stakeholder} 的反馈:{rating}/5")
return feedback
def calculate_metrics(self):
metrics = {
: (.distribution_log),
: {},
}
entry .distribution_log:
channel = entry[]
channel metrics[]:
metrics[][channel] =
metrics[][channel] +=
metrics
disseminator = IntelligenceDisseminator()