网络威胁情报:MISP工具的使用与威胁评分
1. MISP工具的安装与环境配置
在使用MISP工具进行网络威胁情报分析之前,需要进行一系列的安装和配置操作。
- 安装依赖库 :
sudo -u apache ${PATH_TO_MISP}/venv/bin/pip install maec lief python-magic pathlib
sudo -u apache ${PATH_TO_MISP}/venv/bin/pip install git+https://github.com/kbandla/pydeep.git
- 启动misp-modules :
sudo -u apache ${PATH_TO_MISP}/venv/bin/misp-modules -l 0.0.0.0 -s &
sudo sed -i -e '$i \sudo -u apache /var/www/MISP/venv/bin/misp-modules -l 127.0.0.1 -s &\n' /etc/rc.local
- 数据库操作 :
- 打开MySQL控制台,删除并重新创建MISP数据库:
mysql -u <username> -p <password>
delete database misp;
create database misp;
exit
2. 将修改后的数据库模式添加到新创建的misp数据库中:
mysql -u <username> -p misp < mod_schema.sql
其中, mod_schema.sql 可以在相关GitHub链接中找到。
2. MISP的用户界面与API
MISP具有基于PHP的前端界面,可以通过Web浏览器访问,它有许多重要功能,可参考官网 https://www.misp-project.org/ 获取完整信息。
- Feed管理 :
- 登录MISP门户后,可在“feeds”标签页查看默认配置的数据源。Feed是提供JSON、CSV、XML或纯文件格式IOC的基于Web的本地源。
- 可以在“Add Feeds”标签页配置更多数据源。
- 中央调度器 :
- 中央调度器用于下载和解析配置的数据源。可以选择下载时间和重复频率。
- 其中,“threat_scoring” 任务不是默认安装的,是通过修改后端数据库添加的。
- 事件管理 :
- 下载和解析后的Feed数据会存储在名为“Events”的逻辑实体中。事件可以理解为IOC的集合,可以为不同的Feed或不同类型的IOC(如IP、域名等)创建单独的事件。
- 点击事件的详细图标,可以查看该事件包含的IOC。
- MISP API(PyMISP) :
- MISP提供稳定的API,可以获取事件和IOC(在MISP中称为属性),并与安全工具共享。
- API需要设置认证密钥,该密钥可以在用户登录MISP Web门户的界面中找到。
- 以下是使用MISP API获取特定事件详细信息的示例代码:
# 代码链接:https://github.com/MISP/PyMISP/tree/2c882c1887807ef8c8462f582415470448e5d68c/examples
# 初始化MISP API对象并调用get_api方法
运行代码后,可以获取与指定事件ID关联的所有IOC,还可以将输出保存为JSON文件。
3. 威胁评分
威胁评分是威胁情报中的重要部分,因为收集的IOC通常包含大量误报信息,如果直接将这些信息提供给SIEM工具,会导致大量误报警报。
- 评分标准 :
| 评分因素 | 权重 | 详细说明 |
| ---- | ---- | ---- |
| 日期 | 30% | 1 - 3个月的IOC得3分,4个月的得2.9分,以此类推 |
| 相关性 | 54% | IOC在多个事件或数据源中出现的频率,如在35%的数据源中出现得5.4分 |
| 标签 | 15% | 根据IOC关联的标签数量分配权重,标签越多得分越高 |
| 评论 | 1% | 有评论的IOC得0.1分,无评论得0分 |
- 评分配置文件 :这些评分标准不是硬编码在程序逻辑中的,而是配置在JSON文件中,用户可以随时修改,代码会根据更新的值分配分数。
- 威胁评分算法 :
- 算法的思路是从MISP的属性后端表中读取所有IOC,并根据上述逻辑为每个IOC分配威胁分数。
- 由于IOC数量众多,为了提高效率,使用Python的多进程处理。根据底层机器的处理器核心数,将IOC分成相等的块,每个核心处理一个块。
- 以下是部分代码示例:
# 代码链接:https://github.com/PacktPublishing/Hands-On-Penetration-Testing-with-Python
# 读取所有IOC并进行多进程处理
- 运行代码:
python3.6 TS.py
代码执行过程中,会将执行和调试信息记录在 TS.log 文件中。同时,每个处理器核心会独立进行数据库的读写操作。
4. STIX和TAXII以及外部查询
-
STIX和TAXII :
- 在威胁情报共享中,不同组织可能使用不同的平台管理数据,这给数据共享带来了困难。STIX和TAXII通过提供一个使用通用格式存储和检索情报的平台,解决了这个问题。
- STIX是用于交换威胁情报数据的协议,由TAXII服务器提供服务。TAXII服务器能够理解STIX内容并将其提供给客户端。
- MISP可以与TAXII服务器集成,共享的内容会存储在TAXII服务器和MISP数据库中。详细信息可参考 https://github.com/MISP/MISP-Taxii-Server 。
- TAXII服务器有Python编写的客户端,方便集成。不同的TAXII服务器实现包括:
-
外部查询 :
有许多付费和开源的外部查询网站提供API,可以用于自动化IOC查询。例如,使用Cymon的API进行IOC查询的代码示例:
import requests
from urllib.parse import urljoin
from urllib.parse import urlparse
cymon_url='https://api.cymon.io/v2/ioc/search/'
type_="ip-src"
ip="31.148.219.11"
if type_ in ["ip-src","ip-dst","domain|ip","ip-dst|port","ip-src|port","ip"]:
cymon_url=urljoin(cymon_url,"ip/")
cymon_url=urljoin(cymon_url,ip)
response = requests.get(cymon_url, data={}, headers=headers)
print(response)
可以在这些网站上搜索并阅读API文档,实现IOC查询的自动化。
通过以上步骤和方法,可以利用MISP工具进行网络威胁情报的收集、分析和共享,同时通过威胁评分和外部查询提高情报的准确性和可用性。
以下是MISP使用流程的mermaid流程图:
graph LR
A[安装依赖库] --> B[启动misp-modules]
B --> C[数据库操作]
C --> D[使用MISP UI管理Feed和事件]
D --> E[使用MISP API获取数据]
E --> F[进行威胁评分]
F --> G[利用STIX和TAXII共享数据]
G --> H[进行外部查询]
在整个网络威胁情报处理过程中,每个步骤都紧密相连,共同构成了一个完整的体系,帮助组织更好地应对网络威胁。
网络威胁情报:MISP工具的使用与威胁评分(续)
5. 威胁评分的深入分析
在前面我们介绍了威胁评分的基本标准和算法,下面进一步深入分析其在实际应用中的效果和优化方向。
- 评分效果评估 :
- 通过对大量IOC进行威胁评分后,可以筛选出得分较高的IOC,这些IOC更有可能是真正的恶意指标。将这些高得分的IOC提供给SIEM工具,可以有效减少误报,提高安全监控的效率。
- 可以定期对评分结果进行回顾和验证,检查高得分IOC是否确实与实际的安全事件相关,从而评估评分算法的准确性。
- 评分算法优化 :
- 可以根据实际情况调整评分标准的权重。例如,如果发现某个时间段内新出现的IOC更具威胁性,可以适当提高“日期”因素的权重。
- 可以引入更多的评分因素,如IOC的来源可信度、相关的攻击类型等,以提高评分的准确性。
6. MISP与其他安全工具的集成
MISP可以与多种安全工具集成,进一步提升安全防护能力。
- 与SIEM集成 :
- 将MISP中经过威胁评分筛选后的IOC提供给SIEM工具,可以使SIEM工具更准确地检测和响应安全事件。
- 具体操作步骤如下:
1. 在MISP中配置好威胁评分算法,筛选出高得分的IOC。
2. 使用MISP API将这些IOC导出为适合SIEM工具接收的格式(如CSV、JSON等)。
3. 在SIEM工具中配置数据导入规则,将导出的IOC数据导入到SIEM系统中。
4. 在SIEM工具中设置相应的规则和告警策略,对导入的IOC进行监控和告警。
- 与防火墙集成 :
- 将MISP中的恶意IP地址等IOC信息同步到防火墙中,可以阻止这些恶意IP的访问。
- 操作步骤如下:
1. 在MISP中筛选出需要同步的IP地址等IOC信息。
2. 使用MISP API将这些IOC信息导出为防火墙可识别的格式。
3. 在防火墙中配置数据导入功能,将导出的IOC信息导入到防火墙的访问控制列表中。
4. 防火墙会根据导入的IOC信息,自动阻止相应的IP地址访问。
7. 数据安全与隐私保护
在使用MISP进行威胁情报处理时,需要注意数据安全和隐私保护。
- 数据加密 :
- 对MISP数据库中的敏感数据进行加密存储,防止数据泄露。可以使用数据库自带的加密功能或第三方加密工具。
- 对传输过程中的数据进行加密,如使用SSL/TLS协议对MISP的Web界面和API进行加密传输。
- 访问控制 :
- 对MISP系统的访问进行严格的权限控制,只允许授权人员访问和操作。可以设置不同的用户角色和权限,如管理员、分析师、普通用户等。
- 对敏感数据的访问进行审计和记录,以便及时发现和处理异常访问行为。
8. 总结与展望
通过使用MISP工具,结合威胁评分、STIX和TAXII以及外部查询等技术,可以有效地收集、分析和共享网络威胁情报,提高组织的安全防护能力。
- 总结 :
- MISP提供了丰富的功能和接口,方便进行威胁情报的管理和处理。
- 威胁评分算法可以有效减少IOC中的误报,提高安全监控的准确性。
- STIX和TAXII解决了不同组织之间威胁情报共享的问题。
- 外部查询网站的API可以实现IOC查询的自动化。
- 展望 :
- 随着网络威胁的不断变化和发展,需要不断优化威胁评分算法和MISP的功能,以更好地应对新的威胁。
- 加强MISP与其他安全工具的集成,实现更全面的安全防护。
- 推动威胁情报共享的标准化和规范化,促进整个行业的安全水平提升。
以下是MISP与其他安全工具集成的mermaid流程图:
graph LR
A[MISP] --> B[SIEM]
A --> C[防火墙]
B --> D[安全监控与告警]
C --> E[访问控制]
在未来的网络安全领域,MISP工具将发挥越来越重要的作用,通过不断地优化和完善,为组织提供更强大的网络威胁情报支持。
| 集成工具 | 集成优势 | 操作步骤 |
|---|---|---|
| SIEM | 提高安全监控准确性,减少误报 | 配置评分算法、导出IOC、导入SIEM、设置规则告警 |
| 防火墙 | 阻止恶意IP访问 | 筛选IOC、导出格式、导入防火墙、配置访问控制 |
通过以上对MISP工具的深入介绍和分析,希望能帮助读者更好地理解和应用网络威胁情报技术,提升组织的网络安全防护能力。在实际应用中,需要根据具体情况进行灵活调整和优化,以达到最佳的安全效果。
MISP工具与威胁评分实战
超级会员免费看
734

被折叠的 条评论
为什么被折叠?



