本页内容

  • 先决条件
  • 更新系统
  • 安装 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 界面。您应当在以下界面看到数据库更新提示。

在 Ubuntu 22.04 上安装并配置 Cortex 可观测分析工具

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

在 Ubuntu 22.04 上安装并配置 Cortex 可观测分析工具

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

在 Ubuntu 22.04 上安装并配置 Cortex 可观测分析工具

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

在 Ubuntu 22.04 上安装并配置 Cortex 可观测分析工具

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

在 Ubuntu 22.04 上安装并配置 Cortex 可观测分析工具

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

在 Ubuntu 22.04 上安装并配置 Cortex 可观测分析工具

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

在 Ubuntu 22.04 上安装并配置 Cortex 可观测分析工具

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

在 Ubuntu 22.04 上安装并配置 Cortex 可观测分析工具

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

在 Ubuntu 22.04 上安装并配置 Cortex 可观测分析工具

结语

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