开源情报分析及情报源质量评估

本文介绍了如何通过学习开源情报分析(OSINT)在网络安全中识别和评估威胁情报,包括处理威胁情报数据、提取威胁指标(IOC)、构建情报源评价模型(HITS算法)以及结果可视化。代码示例展示了如何使用HITS算法评估数据集中的情报源质量,并展示最权威的情报源。
摘要由CSDN通过智能技术生成

实验要求:

1. 目标理解 :学习并理解开源情报分析( OSINT )的基本概念和方法,特别是在网络安全领域内对威胁情报的识别、提取和评估。
2. 数据处理 :处理和分析来自威胁情报平台的数据集,该数据集包含多种情报类型(如 IPv4 、域名等),每种情报包含威胁类别、描述、时间戳、地理位置和信誉度等属性。
3. IOC 提取 :使用自动化技术,如正则表达式和深度学习方法,从技术文档或公共资源中提取威胁指标( Indicator of Compromise, IOC )。
4. 情报源评估 :构建情报源之间的引用关系图,运用图挖掘技术和算法(如 HITS 算法)来评估情报源的质量,计算每个情报源的权威值( Authority )和枢纽值( Hub )。
5. 结果可视化 :将评估结果进行可视化展示,特别是展示最权威的情报源,以便于理解哪些情报源在网络中具有较高的信誉度和引用度。
6. 报告撰写 :完成实验后,需要撰写一份报告,总结实验过程、方法、结果和分析,展示实验的发现和学习成果。
https://www.ceati.org.cn/redownload数据集好像不方便下载

import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt

# 设置随机种子以便结果可复现
np.random.seed(0)

# 为1000个情报源生成模拟数据
sources = [f"source_{i}" for i in range(1, 1001)]
num_relations = 10000
source_col = np.random.choice(sources, size=num_relations)
target_col = np.random.choice(sources, size=num_relations)
relations = pd.DataFrame({'source': source_col, 'target': target_col}).drop_duplicates()
relations = relations[relations['source'] != relations['target']]

# 从关系中创建有向图
G = nx.from_pandas_edgelist(relations, 'source', 'target', create_using=nx.DiGraph())

# 为每个边简化处理,设置权重为1
for edge in G.edges():
    G[edge[0]][edge[1]]['weight'] = 1

# 使用HITS算法计算每个节点的hub值和authority值
hubs, authorities = nx.hits(G, max_iter=100, tol=1e-08, nstart=None, normalized=True)

# 将hub和authority数据转换为DataFrame
df_hubs = pd.DataFrame(list(hubs.items()), columns=['source', 'hub_value'])
df_authorities = pd.DataFrame(list(authorities.items()), columns=['source', 'authority_value'])

# 对authorities DataFrame进行排序,以识别最具权威性的情报源
top_authorities = df_authorities.sort_values(by='authority_value', ascending=False).head(20)

# 可视化
fig, ax = plt.subplots(figsize=(12, 8))
ax.barh(top_authorities['source'], top_authorities['authority_value'], color='skyblue')
ax.set_xlabel('Authority Value')
ax.set_ylabel('Source')
ax.set_title('权威值最高的20个威胁情报源')
plt.gca().invert_yaxis()  # 最高值在顶部
plt.show()


这段代码展示了从生成模拟数据集开始,计算每个源的hub值和authority值,最后基于它们的authority值可视化前20个源的整个过程。它为评估和可视化给定数据集内威胁情报源的质量提供了一个全面的方法。请记住,对于实际应用,你需要调整数据生成部分以加载和预处理你的实际威胁情报数据。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值