来源:
https://www.notion.so/Introduction-f99633ba66ba4ee3af1a4d832208dc99
重点:由图库改为ES进行存储
一、总览
OpenCTI是一个开源平台,允许组织管理他们的网络威胁情报知识和观察结果。它的创建是为了结构化、存储、组织和可视化关于网络威胁的技术和非技术信息。
数据使用基于[STIX2标准]的知识模式进行结构化(https://oasis-open.github.io/cti-documentation/)。它被设计成一个现代的web应用程序,包括一个[GraphQL API](https://graphql.org/)和一个面向UX的前端。此外,OpenCTI还可以与其他工具和应用程序集成,如[MISP](https://github.com/MISP/MISP), [TheHive](https://github.com/TheHive-Project/TheHive), [MITRE ATT&CK](https://github.com/mitre/cti)等。
# #目标
目标是创建一个全面的工具允许用户集成技术信息(如ttp,可见)和非技术信息(如提出归因,受害者研究、行业活动和本地化),而把每一块信息的主要来源(报告、MISP事件等),并提供链接等特性之间的信息,第一个和最后一个看到日期,水平的信心和描述字段。该工具能够使用[MITRE攻击与ck框架](https://attack.mitre.org/)(通过[专用连接器](https://github.com/OpenCTI-Platform/connectors))来帮助构建数据结构。用户也可以选择实现自己的数据集。
一旦分析人员将数据集成到OpenCTI中,新的关系[可能会从现有关系中推断出来](../引用/推断),以促进对这些信息的理解和表示。这允许用户从原始数据中提取和利用有意义的知识。
OpenCTI不仅允许[imports](../usage/import),而且还允许[exports of data](../usage/export)在不同的格式下(CSV, STIX2 bundles,等等)。[Connectors](https://github.com/OpenCTI-Platform/connectors)目前正在开发中,以加速工具与其他平台之间的交互。
二、架构
OpenCTI平台依靠几个外部数据库和服务才能正常工作。
(1)GraphQL API
API是OpenCTI平台的核心部分,允许客户端(包括前端)与数据库和代理(消息传递系统)进行交互。它内置在NodeJS中,实现了[GraphQL](https://graphql.org/)查询语言。由于API还没有完整的文档记录,您可以通过GraphQL平台探索可用的方法和参数。请参见OpenCTI[演示实例](https://demo.opencti.io/graphql)。
(2)写入worker
worker是独立的Python进程,使用来自RabbitMQ broker的消息来完成异步写查询。您可以启动尽可能多的workers来提高写性能。在某种程度上,写性能将受到数据库吞吐量(ElasticSearch)的限制,如果您在使用3或4个worker时没有达到预期的性能,那么启动更多worker将是无用的,您必须考虑增强数据库节点的硬件(或将您的设置扩展到集群)。
(3)连接器
连接器是软件(Python进程)的第三方部分,可以在平台上扮演四种不同的角色:
EXTERNAL_IMPORT:从远程数据源提取数据,将其转换为STIX2,并将其插入到OpenCTI平台上。MITRE, MISP, CVE, AlienVault, FireEye, etc.
INTERNAL_IMPORT_FILE:通过UI或API从OpenCTI上上传的文件中提取数据。提取指标从pdf, STIX2导入,等。
INTERNAL_ENRICHMENT:监听新的OpenCTI实体或用户请求,从远程数据源提取数据来充实。通过外部服务、实体更新等来丰富可观察对象。
INTERNAL_EXPORT_FILE:根据列出实体或一个实体及其关系,从OpenCTI数据生成导出。STIX2导出,PDF导出,CSV列表生成等。
STREAM:使用平台的数据流。History, Synchronizer, Tanium等。
三、OpenCTI生态系统
https://www.notion.so/OpenCTI-Ecosystem-868329e9fb734fca89692b2ed6087e76
1、Python的OpenCTI客户端
pycti库旨在帮助OpenCTI用户和开发人员与OpenCTI平台GraphQL API进行交互。
Python库要求Python >= 3。
2、链接器
2.1数据导入
(1)OpenCTI AlienVault Connector
https://github.com/OpenCTI-Platform/connectors/tree/master/alienvault
OpenCTI AlienVault连接器可用于从Alien Labs Open Threat Exchange (OTX)平台导入知识。连接器利用OTX DirectConnect API获取订阅脉冲的威胁数据。
注意:需要加入OTX威胁情报社区。
(2)OpenCTI网络威胁联盟连接器
https://github.com/OpenCTI-Platform/connectors/tree/master/cyber-threat-coalition
OpenCTI Cyber Threat Coalition connector导入由网络威胁联盟团队发布的指标。
网络威胁联盟是一个专家团队,在COVID-19危机期间收集和分享与大流行相关的网络威胁情报
技术信息
连接器从经过审查的黑名单(https://blacklist.cyberthreatcoalition.org/vetted/)导入指示器。
所有导入的指标将链接到一份名为“COVID-19网络威胁联盟(CTC)黑名单”的独特报告。
(3)OpenCTI CrowdStrike连接器
OpenCTI CrowdStrike连接器可用于从CrowdStrike Falcon平台导入知识。该连接器利用intel api获取CrowdStrike的情报信息,包括参与者、指标、报告和YARA规则的数据。
注:需要订阅CrowdStrike Falcon平台。订阅详细信息规定了连接器实际可用的数据。
(4)连接器:OpenCTI的CYBERCRIME-TRACKER.NET
连接器使用:http://cybercrime-tracker.net/rss.xml下的跟踪器的RSS feed
它将解析所有的条目并:
为每个条目生成一个指示符,指示相关的恶意软件。
将域、url、IP地址作为observable添加到OpenCTI中,并创建相应的关系。
(5)OpenCTI FireEye连接器
该连接器连接到FireEye Intel API V3,并从给定的日期收集所有数据。
(6)OpenCTI卡巴斯基连接器
OpenCTI卡巴斯基连接器可以用于从卡巴斯基威胁情报门户导入知识。连接器利用卡巴斯基威胁情报门户API检索情报发布在卡巴斯基威胁情报门户,这包括报告pdf, IoCs和YARA规则。
注意:使用卡巴斯基威胁情报门户服务需要许可证。
(7)OpenCTI的LastInfoSec连接器!
OpenCTI LastInfoSec连接器将使用/v2/stix21/getlasthour API。
这个LastInfosec的威胁feed包含stix2.1报告每小时更新url,哈希值,域指示器。
要求:如果你想使用LastInfoSec的智能,你需要一个API密钥。您可以通过contact@lastinfosec.com联系LastInfoSec团队
(8)OpenCTI Malpedia连接器
这个连接器从Malpedia 库导入知识。
连接器为以下OpenCTI可观察对象/指示器类型添加数据:
yara
file-sha256
连接器添加了以下实体:
Malware
Intrusion-Set
References
(9)OpenCTI MISP Connector
MISP connector是一个独立的Python进程,必须能够访问OpenCTI平台和RabbitMQ。RabbitMQ的凭据和连接参数由API直接提供,在平台设置中配置。
网友评论