OpenCTI 即 Open Cyber Threat Intelligence Platform,开源网络威胁情报平台。它的创建是为了构建、存储、组织和可视化有关网络威胁的技术和非技术信息。它使用基于 STIX 2 标准的知识模式来执行数据的结构化。并被设计为现代 Web 应用程序,包括 GraphQL API 和面向 UX的前端。此外,OpenCTI 可以与其他工具和应用程序集成,如 MISP、TheHive、MITRE ATT&CK 等。
OpenCTI 是由法国国家网络安全机构 (ANSSI)、CERT-EU 和 Luatix 非营利组织合作开发的产品。
官方文档地址:
https://github.com/OpenCTI-Platform/docker
https://luatix.notion.site/OpenCTI-Public-Knowledge-Base-d411e5e477734c59887dad3649f20518
官方提供四种部署方式
-
虚拟机模板
-
容器部署
-
云部署
-
手动部署
推荐使用docker部署,兼容性更优,部署更便捷;
部署机器配置:
-
8核CPU
-
16G内存
-
200G硬盘
本文以使用docker安装方式为例:
1.安装docker&docker-compose
yum install -y yum-utils device-mapper-persistent-data lvm2 git
curl -sSL https://get.daocloud.io/docker | sh
sudo systemctl daemon-reload
sudo systemctl restart docker
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
2.验证docker及docker-compose的安装,成功输出版本号即为容器部分安装无问题
docker version
docker-compose version
3.拉取最新的OpenCTI
git clone https://github.com/OpenCTI-Platform/docker.git
cd docker
4.配置环境,有两种方式:
-
配置docker-compose.yml
-
配置环境变量,(这里采取更方便的配置环境变量)
yum install -y jq
5.批量写入需要修改的数据,注意修改密码
(cat <<EOF
[email protected]
OPENCTI_ADMIN_PASSWORD=PLEASECHANGEME
OPENCTI_ADMIN_TOKEN=$(cat /proc/sys/kernel/random/uuid)
MINIO_ROOT_USER=$(cat /proc/sys/kernel/random/uuid)
MINIO_ROOT_PASSWORD=$(cat /proc/sys/kernel/random/uuid)
RABBITMQ_DEFAULT_USER=guest
RABBITMQ_DEFAULT_PASS=guest
CONNECTOR_HISTORY_ID=$(cat /proc/sys/kernel/random/uuid)
CONNECTOR_EXPORT_FILE_STIX_ID=$(cat /proc/sys/kernel/random/uuid)
CONNECTOR_EXPORT_FILE_CSV_ID=$(cat /proc/sys/kernel/random/uuid)
CONNECTOR_IMPORT_FILE_STIX_ID=$(cat /proc/sys/kernel/random/uuid)
CONNECTOR_IMPORT_REPORT_ID=$(cat /proc/sys/kernel/random/uuid)
EOF
) > .env
注意要修改掉上面的账号密码!
OPENCTI_ADMIN_EMAIL是登录账户邮箱
OPENCTI_ADMIN_PASSWORD是登录账户密码
注意要修改掉上面的账号密码!
注意要修改掉上面的账号密码!
示例配置:
(cat <<EOF
[email protected]
OPENCTI_ADMIN_PASSWORD=123123123
OPENCTI_ADMIN_TOKEN=$(cat /proc/sys/kernel/random/uuid)
MINIO_ROOT_USER=$(cat /proc/sys/kernel/random/uuid)
MINIO_ROOT_PASSWORD=$(cat /proc/sys/kernel/random/uuid)
RABBITMQ_DEFAULT_USER=guest
RABBITMQ_DEFAULT_PASS=guest
CONNECTOR_HISTORY_ID=$(cat /proc/sys/kernel/random/uuid)
CONNECTOR_EXPORT_FILE_STIX_ID=$(cat /proc/sys/kernel/random/uuid)
CONNECTOR_EXPORT_FILE_CSV_ID=$(cat /proc/sys/kernel/random/uuid)
CONNECTOR_IMPORT_FILE_STIX_ID=$(cat /proc/sys/kernel/random/uuid)
CONNECTOR_IMPORT_REPORT_ID=$(cat /proc/sys/kernel/random/uuid)
EOF
) > .env
6.调整内存参数,避免ES过多消耗内存
echo "vm.max_map_count=1048575" /etc/sysctl.conf
7.镜像较多,拉取时间较长
docker-compose pull
docker-compose up -d
8.没报错的话就是成功了,然后访问http://IP:8080
9.使用.env中的账号密码登录即可,新版语言也是支持简体中文的,框架搭建成功。
登录账号:123@123.com
登陆密码:123123123
OpenCTI搭建完成后是没有数据的,数据是需要通过连接器导入的,OpenCTI已经将大部分适配的数据源打包为镜像,地址:
连接器:
https://github.com/OpenCTI-Platform/connectors
连接器的数据源比较多,配置和开发详见:
https://www.notion.so/Connector-Development-06b2690697404b5ebc6e3556a1385940
连接器配置
以AlienVault为例,AlienVault公司的业务主要针对中小型企业提供统一安全管理平台(USM)、开源威胁情报交换平台(OTX)等网络安全产品,AlienVault开源威胁交换(OTX)是全球权威的开放威胁信息共享和分析网络。OTX提供了一个由威胁研究人员和安全专业人员组成的全球社区,有来自140个国家的5万多名参与者,每天贡献400多万个威胁指标。
1.首先到平台注册,获取API key
2.添加关注组
3.然后打开connectors-master/external-import/alienvault文件,修改docker-compose.yml文件,红色框出部分是需要更改的部分,示例如下:
-
OPENCTI_URL=http://localhost
-
变更为OPENCTI_URL=http://opencti:8080
-
OPENCTI_TOKEN=ChangeMe
-
变更为OPENCTI_TOKEN=${OPENCTI_ADMIN_TOKEN}
-
CONNECTOR_ID=ChangeMe
-
访问UUID在线生成,生成UUID V4复制替换ChangeMe
-
ALIENVAULT_API_KEY=ChangeMe
-
复制API key替换ChangeMe
-
ALIENVAULT_INTERVAL_SEC=1800
-
为拉取更新时间,单位为秒,可自定义
4.修改后,对openCTI的docker-compose.yml文件进行修改:
cd /docker
nano docker-compose.yml
-
复制修改好的内容,如下:
connector-alienvault:
image: opencti/connector-alienvault:5.2.1
environment:
- OPENCTI_URL=http://opencti:8080
- OPENCTI_TOKEN=${OPENCTI_ADMIN_TOKEN}
- CONNECTOR_ID=这里填写自己生成的UUID V4
- CONNECTOR_TYPE=EXTERNAL_IMPORT
- CONNECTOR_NAME=AlienVault
- CONNECTOR_SCOPE=alienvault
- CONNECTOR_CONFIDENCE_LEVEL=15 # From 0 (Unknown) to 100 (Fully trusted)
- CONNECTOR_UPDATE_EXISTING_DATA=false
- CONNECTOR_LOG_LEVEL=info
- ALIENVAULT_BASE_URL=https://otx.alienvault.com
- ALIENVAULT_API_KEY=这里填API的KEY
- ALIENVAULT_CREATE_OBSERVABLES=true
- ALIENVAULT_CREATE_INDICATORS=true
- ALIENVAULT_PULSE_START_TIMESTAMP=2020-05-01T00:00:00 # BEWARE! Could be a lot of pulses!
- ALIENVAULT_REPORT_TYPE=threat-report
- ALIENVAULT_REPORT_STATUS=New
- ALIENVAULT_GUESS_MALWARE=false # Use tags to guess malware.
- ALIENVAULT_GUESS_CVE=false # Use tags to guess CVE.
- ALIENVAULT_EXCLUDED_PULSE_INDICATOR_TYPES=FileHash-MD5,FileHash-SHA1 # Excluded Pulse indicator types.
- ALIENVAULT_ENABLE_RELATIONSHIPS=true # Enable/Disable relationship creation between SDOs.
- ALIENVAULT_ENABLE_ATTACK_PATTERNS_INDICATES=true # Enable/Disable "indicates" relationships between indicators and attack patterns
- ALIENVAULT_INTERVAL_SEC=7200 # 这里别太短,按秒算
restart: always
5.执行docker-compose up -d进行镜像的更新和拉取;
等待若干分钟(和机器性能相关),在平台>数据>连接器中检验是否配置成功。
原文始发于微信公众号(无界信安):OpenCTI入门笔记(一):搭建框架和导入数据
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论