もっと詳しく

このチュートリアルに従って、Ubuntu 22.04 に Malcolm ネットワーク トラフィック分析ツールをインストールする方法を学習してください。 マルコム 完全なパケット キャプチャ アーティファクト (PCAP ファイル) と Zeek ログ用のネットワーク トラフィック分析ツール スイートです。 PCAP ファイルまたは Zeek ログは、ブラウザーを介して Malcolm にアップロードしたり、フォワーダーを介して転送したり、ライブ トラフィックをキャプチャしたり、OpenSearch ダッシュボードまたは Arkime を介して視覚化するためにトラフィックを解析および正規化したりできます。

Malcolm ネットワーク トラフィック分析ツールとその機能の詳細については、そのページをご覧ください。

Ubuntu 22.04 に Malcolm ネットワーク トラフィック分析ツールをインストールする

Malcolm は、それらを Linux システムに簡単に展開するために使用できるスクリプトを提供します。

Malcolm インストール スクリプトを入手するには、2 つの方法があります。

  1. どちらかをダウンロードすることで install.py そしてその malcolm_YYYYMMDD_HHNNSS_xxxxxxx.tar.gz から Malcolm Github リリース ページ。
  2. または、Malcolm Github リポジトリのクローンを作成するだけです。

このチュートリアルでは、2 番目の方法を使用して、Malcolm ネットワーク トラフィック分析ツールを Ubuntu 22.04 にインストールします。

したがって、Ubuntu 22.04 に Malcolm ネットワーク トラフィック分析ツールをインストールするには、

システム要求

マルコムの展開を確認す​​る システム要求。

私たちの環境では、これらは使用しているシステム リソースです。

CPU コア;

sudo dmidecode -t 4 | grep -i 'core count'
	Core Count: 4

羊;

free -h
               total        used        free      shared  buff/cache   available
Mem:            15Gi        14Gi       153Mi       7.0Mi       723Mi       372Mi
Swap:             0B          0B          0B

ディスクスペース;

df -hT -P /
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sda1      ext4  150G   14G  131G  10% /

マルコム システム アカウントの作成

Malcolm を実行するためのアカウントを作成します。

useradd -m -d /opt/malcolm -s /bin/bash -G sudo malcolm
passwd malcolm

以下で Malcolm を構成するときに必要になるため、ユーザーの ID を取得します。

id malcolm

サンプル出力;

uid=1001(malcolm) gid=1001(malcolm) groups=1001(malcolm),27(sudo)

システム アップデートを実行します。

システム パッケージ キャッシュが最新であることを確認します。

sudo apt update

Ubuntu 22.04 に Git パッケージをインストールします。

Malcolm Github リポジトリのクローンを作成するには、git が必要です。

sudo apt install git

Malcolm Github リポジトリのクローンを作成する

以下のコマンドを実行して、Malcolm Github リポジトリのクローンを作成します。

su - malcolm
git clone https://github.com/idaholab/Malcolm

必要な Malcolm パッケージをインストールし、システム チューナブルをセットアップする

次に、複製された Malcolm Github リポジトリ ディレクトリに移動します。

cd Malcolm

Malcolm インストール スクリプトは、scripts ディレクトリの下にあります。 したがって、インストールを開始するには、以下のコマンドを実行します。

sudo ./scripts/install.py

Malcolm は Docker 上で実行されます。 したがって、スクリプトが実行されると、

  • 必要な Docker パッケージをインストールするように求められます。 プロンプトが表示されたら、同意してインストールを続行します。
  • Docker パッケージのインストールが完了すると、root 以外のユーザー アカウントを Docker グループに追加するかどうかを尋ねられます。 そしてぜひ、標準ユーザーアカウントをグループに追加してください!
  • 次に、Docker Compose をインストールします。
Installing required packages: ['apache2-utils', 'make', 'openssl', 'python3-dialog']

"docker info" failed, attempt to install Docker? (Y/n): y

Attempt to install Docker using official repositories? (Y/n): y
Installing required packages: ['apt-transport-https', 'ca-certificates', 'curl', 'gnupg-agent', 'software-properties-common']
Installing docker packages: ['docker-ce', 'docker-ce-cli', 'containerd.io']
Installation of docker packages apparently succeeded

Add a non-root user to the "docker" group?: y

Enter user account: kifarunix 

Add another non-root user to the "docker" group?: no

"docker-compose version" failed, attempt to install docker-compose? (Y/n): y

Install docker-compose directly from docker github? (Y/n): y
Download and installation of docker-compose apparently succeeded
...
  • 次に、いくつかのカーネル チューナブルを更新するように求められます。 すべてのプロンプトを受け入れます。
fs.file-max increases allowed maximum for file handles
fs.file-max= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y


fs.inotify.max_user_watches increases allowed maximum for monitored files
fs.inotify.max_user_watches= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y


fs.inotify.max_queued_events increases queue size for monitored files
fs.inotify.max_queued_events= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y


fs.inotify.max_user_instances increases allowed maximum monitor file watchers
fs.inotify.max_user_instances= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y


vm.max_map_count increases allowed maximum for memory segments
vm.max_map_count= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y


net.core.somaxconn increases allowed maximum for socket connections
net.core.somaxconn= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y


vm.swappiness adjusts the preference of the system to swap vs. drop runtime memory pages
vm.swappiness= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y


vm.dirty_background_ratio defines the percentage of system memory fillable with "dirty" pages before flushing
vm.dirty_background_ratio= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y


vm.dirty_ratio defines the maximum percentage of dirty system memory before committing everything
vm.dirty_ratio= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y


/etc/security/limits.d/limits.conf increases the allowed maximums for file handles and memlocked segments
/etc/security/limits.d/limits.conf does not exist, create it? (Y/n): y
  • それが完了すると、スクリプトは終了します。

Malcolm システム構成の実行

上記のインストール スクリプトが完了したら、Malcolm の構成に進みます。

sudo ./scripts/install.py --configure

構成の開始時。

  • Malcolm を実行するユーザーを選択します。 作成しました マルコム 上記のユーザー アカウントで、その UID と GID は 1001. したがって、UID/GID 1000 のユーザーにはノーと言います。
Malcolm processes will run as UID 1000 and GID 1000. Is this OK? (Y/n): n
  • malcolm システム アカウントのユーザー ID とグループ ID を入力します。
Enter user ID (UID) for running non-root Malcolm processes; 1001
Enter group ID (GID) for running non-root Malcolm processes; 1001

確認;

Malcolm processes will run as UID 998 and GID 998. Is this OK? yes
  • OpenSearch と logstash の設定。
Setting 10g for OpenSearch and 3g for Logstash. Is this OK? yes
Setting 3 workers for Logstash pipelines. Is this OK? (Y/n): yes
  • システムまたは Docker の再起動時に Malcolm を再起動します。
Restart Malcolm upon system or Docker daemon restart? Yes

Malcolm をいつ再起動するかを選択します。 ここには 4 つのオプションがあります。 いいえ、失敗時、常に、停止しない限り. デフォルトのオプションを選択し、 停止しない限り.

  • Malcolm を HTTPS でセットアップするかどうかを選択します。 私たちは選択します はい (SSL 証明書は後のステップで生成されます)
  • Malcolm をプロキシの背後で実行するかどうかを選択します。 キャディ、Traefik などのいくつかのオプションが与えられます。 いいえ.
  • [デフォルト ネットワーク]で、Enter キーを押してデフォルトを受け入れます。
  • LDAP を使用するかどうかを尋ねられたら、選択します。 番号 今のところ。
  • OpenSearch インデックス スナップショットを /opt/malcolm/Malcom/opensearch-backup にローカルに保存しますか? デフォルトを受け入れるか、単に新しいパスを入力するかを選択できます。 /opt/malcolm/.
  • OpenSearch インデックス スナップショットの圧縮を選択します (はい)
  • データベースが特定のサイズを超えたときに最も古いインデックスを削除するように求められたら、データが失われないように[いいえ]を選択します。
  • Suricata を使用してすべての PCAP ファイルを自動的に分析する: はい
  • Zeek ですべての PCAP ファイルを自動的に分析します。 はい
  • 無効にする ログ内のソース IP アドレスと宛先 IP アドレスをローカルでリバース DNS ルックアップします。
  • 有効 MAC アドレスのハードウェア ベンダー OUI ルックアップ。
  • 一部のフィールドで文字列ランダム性スコアリングを実行します。 はい
  • OpenSearch ポートを外部ホストに公開します。 番号
  • Logstash ポートを外部ホストに公開します。 番号
  • Logstash ログを外部 OpenSearch インスタンスに転送します。 番号
  • Filebeat TCP ポートを外部ホストに公開します。 番号
  • Zeek でファイル抽出を有効にします。 はい
  • 選ぶ 面白い 抽出動作として。
  • 選択する 検疫 ファイルの保存方法として。
  • 抽出されたファイル/PE ファイルを ClamAV でスキャンします。 はい
  • 解凍したファイル/PE ファイルを Yara でスキャンします。 はい
  • 抽出されたファイル/PE ファイルを Capa でスキャンします。 はい
  • 抽出されたファイル ハッシュを VirusTotal で検索します。 番号
  • 更新されたスキャナー署名を定期的にダウンロードします。 はい
  • Malcolm はネットワーク トラフィックを PCAP ファイルにキャプチャする必要があります。 はい
  • Malcolm がネットワーク トラフィックに使用するキャプチャ インターフェイスを (カンマ区切りで) 指定します。 enp0s8
  • netsniff-ng を使用してパケットをキャプチャしますか? (はい/いいえ): はい
  • tcpdump を使用してパケットをキャプチャしますか? (y/N): 番号
  • 次に、Elasticsearch (ポート 9200)、Logstash (5044)、Arkime (8005) に関連するトラフィックを無効にします。 not port 9200 and not port 5044 and not port 8005.

Malcolm が /home/$USER/Malcolm にインストールされました。

Malcolm を開始および停止し、認証関連の設定を変更するためのスクリプトは、/home/$USER/Malcolm/scripts にあります。

システムの再起動を実行して、システムの変更の一部を適用します。

sudo systemctl reboot -i

マルコム ユーザー アカウントの作成

Malcolm Github リポジトリ ディレクトリに戻ります。

su - malcolm
cd ~/Malcolm

認証セットアップ スクリプトを実行します。

./scripts/auth_setup
  • 管理者のユーザー名/パスワードを保存する 為に ローカル マルコム・アクセス? はい
  • 管理者パスワードとユーザー名を設定します。
  • Web トラフィック HTTPS 用の自己署名 SSL 証明書を (再) 生成します。 はい
  • リモート ログ フォワーダーの自己署名証明書を (再) 生成します。 はい
  • Logstash イベントをセカンダリの外部 OpenSearch インスタンスに転送するためのユーザー名/パスワードを保存します。 番号.
  • メールアラート送信者アカウントのユーザー名/パスワードを保存します (https://opensearch.org/docs/latest/monitoring-plugins/alerting/monitors/#authenticate-sender-account を参照): 番号

Malcolm Docker イメージのダウンロード

次に、以下のコマンドを実行して、Docker ハブから Malcolm Docker イメージをダウンロードします。

cd ~/Malcolm
docker-compose pull

インターネットの速度によっては、イメージのプルが完了するまでに数分かかる場合があります。

必要な画像がすべてダウンロードされたら、次のように一覧表示できます。

docker images

サンプル出力;

REPOSITORY                        TAG       IMAGE ID       CREATED       SIZE
malcolmnetsec/zeek                6.1.0     f866620ebd58   3 weeks ago   1.29GB
malcolmnetsec/dashboards          6.1.0     13775018c809   3 weeks ago   1.08GB
malcolmnetsec/arkime              6.1.0     5b7f6018db22   3 weeks ago   794MB
malcolmnetsec/logstash-oss        6.1.0     a8b93b43dbb3   3 weeks ago   1.46GB
malcolmnetsec/suricata            6.1.0     fa25601e29c4   3 weeks ago   285MB
malcolmnetsec/filebeat-oss        6.1.0     b4d1c83bf3de   3 weeks ago   648MB
malcolmnetsec/file-monitor        6.1.0     fa9438234b42   3 weeks ago   589MB
malcolmnetsec/nginx-proxy         6.1.0     bb9720d9d456   3 weeks ago   124MB
malcolmnetsec/file-upload         6.1.0     fdbd62ce5a92   3 weeks ago   259MB
malcolmnetsec/htadmin             6.1.0     623e193fd419   3 weeks ago   242MB
malcolmnetsec/opensearch          6.1.0     a1bbcaae7647   3 weeks ago   1.21GB
malcolmnetsec/pcap-monitor        6.1.0     0e0cb91f32a1   3 weeks ago   214MB
malcolmnetsec/api                 6.1.0     54a99d983b37   3 weeks ago   173MB
malcolmnetsec/pcap-capture        6.1.0     9a1664dc488f   3 weeks ago   121MB
malcolmnetsec/freq                6.1.0     e4691604218f   3 weeks ago   131MB
malcolmnetsec/dashboards-helper   6.1.0     ef14087c003d   3 weeks ago   169MB
malcolmnetsec/name-map-ui         6.1.0     90f49b94bfe3   3 weeks ago   123MB

マルコム サービスの実行

これで、スタートアップ スクリプトを使用して Malcolm サービスを開始できます。 ./scripts/start.

このスクリプトは、開始、停止、再起動、Malcolm データのワイプなどに使用できます。

./scripts/start --help
usage: start 
Malcolm control script
options:
  -v [DEBUG], --verbose [DEBUG]
                        Verbose output
  -f , --file 
                        docker-compose YML file
  -s , --service 
                        docker-compose service (only for status and logs operations)
  -l [CMDLOGS], --logs [CMDLOGS]
                        Tail Malcolm logs
  --start [CMDSTART]    Start Malcolm
  --restart [CMDRESTART]
                        Stop and restart Malcolm
  --stop [CMDSTOP]      Stop Malcolm
  --wipe [CMDWIPE]      Stop Malcolm and delete all data
  --auth [CMDAUTHSETUP]
                        Configure Malcolm authentication
  --status [CMDSTATUS]  Display status of Malcolm components

引数なしで start スクリプトを実行するだけで、Malcolm を開始できます。

./scripts/start

必要なすべての Malcolm サービスを開始するには、数分かかります。

開始スクリプトは、フォアグラウンドで Malcolm を起動し、コンソールにデバッグ メッセージを入力します。

Started Malcolm


In a few minutes, Malcolm services will be accessible via the following URLs:
------------------------------------------------------------------------------
  - Arkime: https://localhost/
  - OpenSearch Dashboards: https://localhost/dashboards/
  - PCAP upload (web): https://localhost/upload/
  - PCAP upload (sftp): sftp://[email protected]:8022/files/
  - Host and subnet name mapping editor: https://localhost/name-map-ui/

  - Account management: https://localhost:488/

NAME                          COMMAND                  SERVICE             STATUS               PORTS
malcolm-api-1                 "/usr/local/bin/dock…"   api                 running (starting)   5000/tcp
malcolm-arkime-1              "/usr/local/bin/dock…"   arkime              running (starting)   8081/tcp
malcolm-dashboards-1          "/usr/local/bin/dock…"   dashboards          running (starting)   5601/tcp
malcolm-dashboards-helper-1   "/usr/local/bin/dock…"   dashboards-helper   running (starting)   28991/tcp
malcolm-file-monitor-1        "/usr/local/bin/dock…"   file-monitor        running (starting)   8440/tcp
malcolm-filebeat-1            "/usr/local/bin/dock…"   filebeat            running (starting)   127.0.0.1:5045->5045/tcp
malcolm-freq-1                "/usr/local/bin/dock…"   freq                running (starting)   10004/tcp
malcolm-htadmin-1             "/usr/local/bin/dock…"   htadmin             running (starting)   80/tcp
malcolm-logstash-1            "/usr/local/bin/dock…"   logstash            running (starting)   127.0.0.1:5044->5044/tcp
malcolm-name-map-ui-1         "/usr/local/bin/dock…"   name-map-ui         running (starting)   8080/tcp
malcolm-nginx-proxy-1         "/usr/local/bin/dock…"   nginx-proxy         running (starting)   0.0.0.0:443->443/tcp, 0.0.0.0:488->488/tcp, 127.0.0.1:5601->5601/tcp, 127.0.0.1:9200->9200/tcp
malcolm-opensearch-1          "/usr/local/bin/dock…"   opensearch          running (starting)   9650/tcp
malcolm-pcap-capture-1        "/usr/local/bin/dock…"   pcap-capture        running              
malcolm-pcap-monitor-1        "/usr/local/bin/dock…"   pcap-monitor        running (starting)   30441/tcp
malcolm-suricata-1            "/usr/local/bin/dock…"   suricata            running (starting)   8711/tcp
malcolm-upload-1              "/usr/local/bin/dock…"   upload              running (starting)   127.0.0.1:8022->22/tcp
malcolm-zeek-1                "/usr/local/bin/dock…"   zeek                running (starting) 
....

プレス Ctrl+z マルコムをバックグラウンドで実行します。 入力するだけで、いつでも前面に表示できます fg.

Malcolm コンテナのステータスを確認します。

docker ps -a
CONTAINER ID   IMAGE                                   COMMAND                  CREATED         STATUS                           PORTS                                                                                            NAMES
1a164697dc9d   malcolmnetsec/nginx-proxy:6.1.0         "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           0.0.0.0:443->443/tcp, 127.0.0.1:5601->5601/tcp, 0.0.0.0:488->488/tcp, 127.0.0.1:9200->9200/tcp   malcolm-nginx-proxy-1
d94fdbdc5edc   malcolmnetsec/filebeat-oss:6.1.0        "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           127.0.0.1:5045->5045/tcp                                                                         malcolm-filebeat-1
41a1664e9863   malcolmnetsec/suricata:6.1.0            "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           8711/tcp                                                                                         malcolm-suricata-1
18ddca5a001a   malcolmnetsec/dashboards:6.1.0          "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           5601/tcp                                                                                         malcolm-dashboards-1
6cc30e2dc8ea   malcolmnetsec/file-upload:6.1.0         "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           80/tcp, 127.0.0.1:8022->22/tcp                                                                   malcolm-upload-1
21de5caca01e   malcolmnetsec/zeek:6.1.0                "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)                                                                                                            malcolm-zeek-1
c7d9b3da48e8   malcolmnetsec/dashboards-helper:6.1.0   "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           28991/tcp                                                                                        malcolm-dashboards-helper-1
d41224f2d9fc   malcolmnetsec/logstash-oss:6.1.0        "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           9001/tcp, 127.0.0.1:5044->5044/tcp, 9600/tcp                                                     malcolm-logstash-1
3de2293aac1b   malcolmnetsec/arkime:6.1.0              "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           8000/tcp, 8005/tcp, 8081/tcp                                                                     malcolm-arkime-1
286a51eff770   malcolmnetsec/pcap-monitor:6.1.0        "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           30441/tcp                                                                                        malcolm-pcap-monitor-1
9372ec08a576   malcolmnetsec/file-monitor:6.1.0        "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           3310/tcp, 8440/tcp                                                                               malcolm-file-monitor-1
13cb9b77965d   malcolmnetsec/api:6.1.0                 "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           5000/tcp                                                                                         malcolm-api-1
dd079184f941   malcolmnetsec/pcap-capture:6.1.0        "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes                                                                                                                      malcolm-pcap-capture-1
a00f79a8e1b9   malcolmnetsec/htadmin:6.1.0             "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           80/tcp                                                                                           malcolm-htadmin-1
17750ddd1a72   malcolmnetsec/name-map-ui:6.1.0         "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           8080/tcp                                                                                         malcolm-name-map-ui-1
add53463e7f8   malcolmnetsec/opensearch:6.1.0          "/usr/local/bin/dock…"   9 minutes ago   Up 1 second (health: starting)   9200/tcp, 9300/tcp, 9600/tcp, 9650/tcp                                                           malcolm-opensearch-1
b84ee0a208a8   malcolmnetsec/freq:6.1.0                "/usr/local/bin/dock…"   9 minutes ago   Up 9 minutes (healthy)           10004/tcp                                                                                        malcolm-freq-1

かなりの数のポートが公開されています。

sudo ss -atlnp | grep -i docker
LISTEN 0      65535        0.0.0.0:488       0.0.0.0:*    users:(("docker-proxy",pid=8971,fd=4))   
LISTEN 0      65535      127.0.0.1:9200      0.0.0.0:*    users:(("docker-proxy",pid=8833,fd=4))   
LISTEN 0      65535      127.0.0.1:5044      0.0.0.0:*    users:(("docker-proxy",pid=8307,fd=4))   
LISTEN 0      65535      127.0.0.1:5045      0.0.0.0:*    users:(("docker-proxy",pid=6610,fd=4))   
LISTEN 0      65535      127.0.0.1:8022      0.0.0.0:*    users:(("docker-proxy",pid=6969,fd=4))   
LISTEN 0      65535        0.0.0.0:443       0.0.0.0:*    users:(("docker-proxy",pid=9030,fd=4))   
LISTEN 0      65535      127.0.0.1:5601      0.0.0.0:*    users:(("docker-proxy",pid=8922,fd=4))

したがって、ブラウザ経由でさまざまな Malcolm サービスにアクセスできます。 (localhost をシステムの IP アドレスに置き換えることができます);

  • アルキメ: https://localhost/
  • OpenSearch ダッシュボード: https://localhost/dashboards/
  • PCAP アップロード (ウェブ): https://localhost/upload/
  • PCAP アップロード (sftp): sftp://[email protected]:8022/ファイル/
  • ホストとサブネットのネーム マッピング エディター: https://localhost/name-map-ui/
  • アカウント管理: https://localhost:488/

マルコム・アーキメのウェブインターフェース

OpenSearch ダッシュボード

Ubuntu に Malcolm ネットワーク トラフィック分析ツールをインストールする

マルコム キャプチャ ファイルとログ アーカイブのアップロード ページ。

Ubuntu に Malcolm ネットワーク トラフィック分析ツールをインストールする

ホストとネットワーク セグメント名のマッピング。

Ubuntu に Malcolm ネットワーク トラフィック分析ツールをインストールする

アカウント管理;

Ubuntu に Malcolm ネットワーク トラフィック分析ツールをインストールする

これで、Malcolm を使用してネットワーク トラフィックの分析を開始できます。

今のところ、Ubuntu 22.04 に Malcolm ネットワーク トラフィック分析ツールをインストールするのに必要なことはこれだけです。

参考文献。

マルコム・クイックスタート

その他のチュートリアル

Debian 11 に Arkime (Moloch) フル パケット キャプチャ ツールをインストールする

Zeek を使用してネットワーク トラフィックを分析する

Brim Security を使用してネットワーク トラフィックを分析する

The post Ubuntu 22.04 に Malcolm ネットワーク トラフィック分析ツールをインストールする appeared first on Gamingsym Japan.