本页内容
- 先决条件
- 更新系统
- 安装 Java
- 安装并配置 ElasticSearch
- 在 Ubuntu 22.04 上安装 Cortex
- 配置 Cortex
- 访问 Cortex Web 界面
- 结语
Cortex 是由 TheHive Project 创建的一款免费开源的可观测分析(observable analysis)工具。安全专业人员与 SOC 分析师通过使用单一工具发起查询,即可分析已收集的事件。它提供基于 Web 的界面,可用于分析 IP 与电子邮件地址、URL、域名、文件及哈希值。Cortex 针对 VirusTotal、Joe Sandbox、DomainTools、PassiveTotal、Google Safe Browsing、Shodan 和 Onyphe 等流行服务提供了上百个分析器(analyzer)。
本教程将向您展示如何在 Ubuntu 22.04 上安装 Cortex 引擎。
先决条件
- 一台运行 Ubuntu 22.04 的服务器,内存至少 16GB。
- 服务器已配置 root 密码。
更新系统
首先,建议将您的所有系统软件包更新并升级到最新版本。您可以通过运行以下命令来更新所有软件包。
apt update -y
apt upgrade -y
所有软件包更新完成后,即可进入下一步。
安装 Java
在开始之前,必须在您的服务器上安装 Java JDK。如尚未安装,可使用以下命令进行安装。
apt install openjdk-11-jre-headless -y
安装成功后,您可以使用以下命令验证 Java 的安装情况。
java --version
您将看到如下输出。
openjdk 11.0.17 2022-10-18 OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu222.04) OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu222.04, mixed mode, sharing)
接下来,使用以下命令设置 Java 环境变量。
echo JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64" | tee -a /etc/environment
接下来,使用以下命令激活该环境变量。
source /etc/environment
完成后,即可继续安装并配置 ElasticSearch。
安装并配置 ElasticSearch
Cortex 还需要在您的服务器上安装 ElasticSearch。首先,使用以下命令安装所有必需的依赖项。
apt install wget gnupg2 apt-transport-https git ca-certificates curl jq software-properties-common lsb-release python3-pip iproute2 -y
接下来,使用以下命令添加 ElasticSearch 的 GPG 密钥。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor > /etc/apt/trusted.gpg.d/elasticsearch-keyring.gpg
然后,使用以下命令将 ElasticSearch 仓库添加到 APT。
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list
接下来,使用以下命令更新仓库并安装 ElasticSearch。
apt update -y
apt install elasticsearch -y
安装完成后,编辑 ElasticSearch 配置文件并定义您的集群名称。
nano /etc/elasticsearch/elasticsearch.yml
将以下行修改为:
cluster.name: my-application
保存并关闭文件,然后创建一个 jvm.options 文件。
nano /etc/elasticsearch/jvm.options.d/jvm.options
添加以下行:
-Xms1g -Xmx1g -Dlog4j2.formatMsgNoLookups=true
完成后保存并关闭文件。然后,重启 ElasticSearch 服务以应用更改。
systemctl restart elasticsearch
您可以使用以下命令检查 ElasticSearch 的状态。
systemctl status elasticsearch
您将看到如下输出。
? elasticsearch.service - Elasticsearch
Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2023-02-06 15:35:54 UTC; 2s ago
Docs: https://www.elastic.co
Main PID: 10788 (java)
Tasks: 80 (limit: 38396)
Memory: 1.3G
CPU: 1min 46.185s
CGroup: /system.slice/elasticsearch.service
??10788 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.t>
??10999 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
Feb 06 15:35:21 ubuntu2204 systemd[1]: Starting Elasticsearch...
Feb 06 15:35:54 ubuntu2204 systemd[1]: Started Elasticsearch.
完成后,即可继续安装 Cortex。
在 Ubuntu 22.04 上安装 Cortex
默认情况下,Ubuntu 默认仓库中不包含 Cortex 软件包。因此,您需要将 Cortex 官方仓库添加到 APT。
首先,使用以下命令下载并导入 Cortex 与 thehive 的 GPG 密钥。
wget -qO- "https://raw.githubusercontent.com/TheHive-Project/Cortex/master/PGP-PUBLIC-KEY" | gpg --dearmor -o /etc/apt/trusted.gpg.d/cortex.gpg
wget -qO- https://raw.githubusercontent.com/TheHive-Project/Cortex/master/PGP-PUBLIC-KEY | gpg --dearmor -o /etc/apt/trusted.gpg.d/thehive.gpg
接下来,使用以下命令将 Cortex 仓库添加到 APT。
echo 'deb https://deb.thehive-project.org release main' | tee -a /etc/apt/sources.list.d/thehive-project.list
接下来,使用以下命令更新仓库并安装 Cortex。
apt update -y
apt install cortex -y
Cortex 软件包安装完成后,即可继续配置 Cortex。
配置 Cortex
接下来,您需要创建一个密钥(secret)并在 Cortex 配置文件中定义它。首先,使用以下命令创建一个密钥。
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1
您应当看到如下输出。
LkSc1rXTf4mx8TWEdmQJytdrJYunwiLwHSaDS7gUR6g4P8B07JKuLWgMNIxI9bcm
接下来,编辑 Cortex 配置文件并在其中定义您的密钥。
nano /etc/cortex/application.conf
按如下方式定义您的密钥:
play.http.secret.key="LkSc1rXTf4mx8TWEdmQJytdrJYunwiLwHSaDS7gUR6g4P8B07JKuLWgMNIxI9bcm"
完成后保存并关闭文件。然后,使用以下命令启动并启用 Cortex 服务。
systemctl enable --now cortex
您可以使用以下命令检查 Cortex 的状态。
systemctl status cortex
您将看到如下输出。
? cortex.service - cortex
Loaded: loaded (/etc/systemd/system/cortex.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-02-06 15:40:21 UTC; 12s ago
Docs: https://thehive-project.org
Main PID: 12544 (java)
Tasks: 49 (limit: 38396)
Memory: 491.9M
CPU: 32.669s
CGroup: /system.slice/cortex.service
??12544 java -Duser.dir=/opt/cortex -Dconfig.file=/etc/cortex/application.conf -Dlogger.file=/etc/cortex/logback.xml -Dpidfile.p>
??13051 /usr/bin/python3 /usr/bin/pip show cortexutils
Feb 06 15:40:21 ubuntu2204 systemd[1]: Started cortex.
此时,Cortex 已启动并在 9001 端口监听。您可以使用以下命令进行检查。
ss -antpl | grep 9001
您应当在如下输出中看到 Cortex 的监听端口。
LISTEN 0 100 *:9001 *:* users:(("java",pid=12544,fd=293))
完成后,即可进入下一步。
访问 Cortex Web 界面
Cortex 现已安装并配置完成。接下来,打开您的 Web 浏览器,使用地址 http://your-server-ip:9001 访问 Cortex Web 界面。您应当在以下界面看到数据库更新提示。

点击「Update Database」按钮以更新数据库。您应当看到账户创建界面。

填写您的登录名、姓名、密码,然后点击「Create」按钮。您将被重定向到 Cortex 登录页面:

输入您的用户名和密码,点击「Sign In」按钮。您应当在以下界面看到 Cortex 仪表板。

接下来,您需要向 Cortex 添加您的组织(Organization)。点击「Add organization」按钮。您应当看到组织创建界面。

填写您的组织名称,点击「Save」按钮。您应当在以下界面看到您新创建的组织。

点击您新创建的组织。您应当看到如下界面。

点击「Add User」按钮。您应当看到用户创建界面。

填写您的用户名和角色,点击「Save user」按钮以创建用户。您应当看到如下界面。

结语
恭喜!您已成功在 Ubuntu 22.04 服务器上安装并配置了 Cortex 引擎。您现在可以将 Cortex 用作您组织的可观测分析与主动响应引擎。如有任何疑问,欢迎随时向我提问。