Ubuntu20.04でSuricataとElasticStackを使用してSIEMを構築する方法
序章
このシリーズの以前のチュートリアルでは、侵入検知(IDS)および侵入防止(IPS)システムとしてのSuricataのインストール、構成、および実行について説明しました。 また、Suricataのルールと独自のルールの作成方法についても学びました。
このチュートリアルでは、SuricataをElasticsearch、Kibana、Filebeatと統合して、ElasticスタックとUbuntu 20.04を使用して独自のセキュリティ情報およびイベント管理(SIEM)ツールの作成を開始する方法について説明します。 SIEMツールは、イベントデータを収集、集約、保存、および分析して、ネットワークとサーバー上のセキュリティの脅威と疑わしいアクティビティを検索するために使用されます。
独自のSIEMツールを構築するために使用するコンポーネントは次のとおりです。
- Elasticsearch は、Suricataサーバーからのセキュリティイベントを保存、インデックス作成、関連付け、検索します。
- Kibana を使用して、Elasticsearchに保存されているセキュリティイベントログを表示およびナビゲートします。
- Filebeat を使用して、Suricataの
eve.json
ログファイルを解析し、各イベントをElasticsearchに送信して処理します。 - Suricata は、ネットワークトラフィックをスキャンして疑わしいイベントを検出し、無効なパケットをログに記録するかドロップします。
まず、ElasticsearchとKibanaをインストールして、特定の認証設定で構成します。 次に、FilebeatをSuricataシステムに追加して、eve.json
ログをElasticsearchに送信します。
最後に、SSHとWebブラウザーを使用してKibanaに接続し、Suricataのイベントとアラートを表示するKibanaダッシュボードをロードして操作する方法を学習します。
前提条件
このチュートリアルシリーズをフォローしている場合は、Ubuntu20.04サーバーでSuricataを実行しているはずです。 このサーバーは、Suricataサーバーと呼ばれます。
- それでもSuricataをインストールする必要がある場合は、 Ubuntu20.04にSuricataをインストールする方法を説明するこのチュートリアルに従うことができます。
- また、アラートを生成したり、トラフィックをドロップしたりするために、いくつかのSuricata署名をロードして構成する必要があります。 独自の署名を作成する方法のガイドについては、このシリーズのSuricata署名の理解チュートリアルに従ってください。 または、「Suricataのインストール方法」チュートリアルのステップ3 — Suricataルールセットの更新に従って、包括的な署名セットをダウンロードできます。
ElasticsearchとKibanaをホストするための2番目のサーバーも必要になります。 このサーバーは、Elasticsearchサーバーと呼ばれます。 これは、Ubuntu20.04サーバーである必要があります。
- ルート以外のsudoユーザーでセットアップされた4GBのRAMと2つのCPU。 これを実現するには、 Ubuntu20.04を使用したサーバーの初期設定に従います。
このチュートリアルでは、両方のサーバーがプライベートIPアドレスを使用して通信できる必要があります。 WireGuard などのVPNを使用してサーバーを接続するか、ホスト間にプライベートネットワークを備えたクラウドプロバイダーを使用できます。 実験のために、Elasticsearch、Kibana、Filebeat、およびSuricataを同じサーバーで実行することもできます。
ステップ1—ElasticsearchとKibanaをインストールする
このチュートリアルの最初のステップは、ElasticsearchサーバーにElasticsearchとKibanaをインストールすることです。 開始するには、次のコマンドを使用してElasticGPGキーをサーバーに追加します。
- curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
次に、Elasticソースリストをsources.list.d
ディレクトリに追加します。ここで、apt
は新しいソースを検索します。
- echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
次に、サーバーのパッケージインデックスを更新し、ElasticsearchとKibanaをインストールします。
- sudo apt update
- sudo apt install elasticsearch kibana
パッケージのインストールが完了したら、ip address show
コマンドを使用して、サーバーのプライベートIPアドレスを見つけて記録します。
- ip -brief address show
次のような出力が表示されます。
Outputlo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 159.89.122.115/20 10.20.0.8/16 2604:a880:cad:d0::e56:8001/64 fe80::b832:69ff:fe46:7e5d/64
eth1 UP 10.137.0.5/16 fe80::b883:5bff:fe19:43f3/64
この出力のプライベートネットワークインターフェイスは、強調表示されたeth1
デバイスであり、IPv4アドレス10.137.0.5/16
が付いています。 デバイス名とIPアドレスは異なります。 ただし、アドレスは次の予約済みアドレスブロックからのものになります。
10.0.0.0
から10.255.255.255
(10/8プレフィックス)172.16.0.0
から172.31.255.255
(172.16 / 12プレフィックス)192.168.0.0
から192.168.255.255
(192.168 / 16プレフィックス)
これらのブロックがどのように割り当てられるかについて詳しく知りたい場合は、 RFC 1918仕様をご覧ください)
ElasticsearchサーバーのプライベートIPアドレス(この場合は10.137.0.5
)を記録します。 このチュートリアルの残りの部分では、このアドレスをyour_private_ip
と呼びます。 ネットワークインターフェイスの名前(この場合はeth1
)にも注意してください。 このチュートリアルの次のパートでは、SuricataサーバーからのプライベートIPアドレスで接続をリッスンするようにElasticsearchとKibanaを構成します。
ステップ2—Elasticsearchを設定する
Elasticsearchは、デフォルトでローカル接続のみを受け入れるように構成されています。 さらに、認証が有効になっていないため、Filebeatなどのツールはログを送信できません。 チュートリアルのこのセクションでは、Elasticsearchのネットワーク設定を構成してから、Elasticsearchの組み込みのxpack
セキュリティモジュールを有効にします。
Elasticsearchネットワーキングの設定
ElasticsearchサーバーとSuricataサーバーは分離しているため、プライベートネットワークインターフェイスで接続をリッスンするようにElasticsearchを構成する必要があります。 また、プライベートネットワークインターフェースでElasticsearchにアクセスできるようにファイアウォールルールを設定する必要があります。
nano
またはお好みのエディターを使用して、/etc/elasticsearch/elasticsearch.yml
ファイルを開きます。
- sudo nano /etc/elasticsearch/elasticsearch.yml
以下に強調表示されているように、50〜60行目の間にコメントアウトされた#network.host: 192.168.0.1
行を見つけ、その後にnetwork.bind_host
設定を構成する新しい行を追加します。
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
#
#network.host: 192.168.0.1
network.bind_host: ["127.0.0.1", "your_private_ip"]
#
# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
your_private_ip
アドレスの代わりにプライベートIPを使用してください。 この行により、Elasticsearchがローカルアドレスで引き続き利用可能になり、Kibanaがアクセスできるようになります。また、サーバーのプライベートIPアドレスでも使用できるようになります。
次に、nano
ショートカットCTRL+v
を使用して、ファイルの最後に到達するまで移動します。
次の強調表示された行をファイルの最後に追加します。
. . .
discovery.type: single-node
xpack.security.enabled: true
discovery.type
設定により、Elasticsearchは、他のElasticsearchサーバーのクラスターではなく、単一のノードとして実行できます。 xpack.security.enabled
設定は、Elasticsearchに含まれているセキュリティ機能の一部をオンにします。
編集が完了したら、ファイルを保存して閉じます。 nano
を使用している場合は、CTRL+X
、Y
、ENTER
の順に使用して確認できます。
最後に、ファイアウォールルールを追加して、Elasticsearchサーバーがプライベートネットワークインターフェースで到達可能であることを確認します。 前提条件のチュートリアルに従い、Uncomplicated Firewall(ufw
)を使用している場合は、次のコマンドを実行します。
- sudo ufw allow in on eth1
- sudo ufw allow out on eth1
別の名前を使用している場合は、eth1
の代わりにプライベートネットワークインターフェイスを使用してください。
次に、Elasticsearchデーモンを起動し、xpack
セキュリティモジュールで使用するパスワードを設定します。
Elasticsearchを開始する
Elasticsearchのネットワークとxpack
セキュリティ設定を構成したので、変更を有効にするためにネットワークを開始する必要があります。
次のsystemctl
コマンドを実行して、Elasticsearchを開始します。
- sudo systemctl start elasticsearch.service
Elasticsearchの起動が終了したら、このチュートリアルの次のセクションに進み、Elasticsearchに組み込まれているデフォルトユーザーのパスワードを生成します。
Elasticsearchパスワードの設定
xpack.security.enabled
設定を有効にしたので、デフォルトのElasticsearchユーザーのパスワードを生成する必要があります。 Elasticsearchの/usr/share/elasticsearch/bin
ディレクトリには、これらのユーザーのランダムなパスワードを自動的に生成できるユーティリティが含まれています。
次のコマンドを実行してディレクトリにcd
し、すべてのデフォルトユーザーのランダムパスワードを生成します。
- cd /usr/share/elasticsearch/bin
- sudo ./elasticsearch-setup-passwords auto
次のような出力が表示されます。 続行するように求められたら、y
を押してから、RETURN
またはENTER
を押します。
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y
Changed password for user apm_system
PASSWORD apm_system = eWqzd0asAmxZ0gcJpOvn
Changed password for user kibana_system
PASSWORD kibana_system = 1HLVxfqZMd7aFQS6Uabl
Changed password for user kibana
PASSWORD kibana = 1HLVxfqZMd7aFQS6Uabl
Changed password for user logstash_system
PASSWORD logstash_system = wUjY59H91WGvGaN8uFLc
Changed password for user beats_system
PASSWORD beats_system = 2p81hIdAzWKknhzA992m
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = 85HF85Fl6cPslJlA8wPG
Changed password for user elastic
PASSWORD elastic = 6kNbsxQGYZ2EQJiqJpgl
ユーティリティを再度実行することはできなくなりますので、これらのパスワードは安全な場所に記録してください。 このチュートリアルの次のセクションではkibana_system
ユーザーのパスワードを使用し、このチュートリアルのFilebeatの構成ステップではelastic
ユーザーのパスワードを使用する必要があります。
チュートリアルのこの時点で、Elasticsearchの構成は完了です。 次のセクションでは、Kibanaのネットワーク設定とそのxpack
セキュリティモジュールを構成する方法について説明します。
ステップ3—Kibanaの設定
このチュートリアルの前のセクションでは、ElasticsearchサーバーのプライベートIPアドレスで接続をリッスンするようにElasticsearchを構成しました。 Suricataサーバー上のFilebeatsがKibanaに到達できるように、Kibanaについても同じことを行う必要があります。
まず、KibanaがElasticsearchにデータを保存するために使用するいくつかのシークレットを生成することにより、Kibanaのxpack
セキュリティ機能を有効にします。 次に、Elasticsearchに接続するためにKibanaのネットワーク設定と認証の詳細を構成します。
Kibanaでxpack.security
を有効にする
Kibanaでxpack
のセキュリティ設定を開始するには、いくつかの暗号化キーを生成する必要があります。 Kibanaはこれらのキーを使用して、セッションデータ(Cookieなど)、および保存されているさまざまなダッシュボードとデータのビューをElasticsearchに保存します。
/usr/share/kibana/bin
ディレクトリに含まれているkibana-encryption-keys
ユーティリティを使用して、必要な暗号化キーを生成できます。 ディレクトリに対してcd
に対して以下を実行し、キーを生成します。
- cd /usr/share/kibana/bin/
- sudo ./kibana-encryption-keys generate -q
-q
フラグはツールの命令を抑制し、次のような出力のみを受け取るようにします。
Outputxpack.encryptedSavedObjects.encryptionKey: 66fbd85ceb3cba51c0e939fb2526f585
xpack.reporting.encryptionKey: 9358f4bc7189ae0ade1b8deeec7f38ef
xpack.security.encryptionKey: 8f847a594e4a813c4187fa93c884e92b
出力を安全な場所にコピーします。 次に、それらをKibanaの/etc/kibana/kibana.yml
構成ファイルに追加します。
nano
またはお好みのエディターを使用してファイルを開きます。
- sudo nano /etc/kibana/kibana.yml
nano
ショートカットCTRL+v
を使用して、ファイルの最後に到達するまで移動します。 コピーした3行のxpack
行をファイルの最後に貼り付けます。
. . .
# Specifies locale to be used for all localizable strings, dates and number formats.
# Supported languages are the following: English - en , by default , Chinese - zh-CN .
#i18n.locale: "en"
xpack.encryptedSavedObjects.encryptionKey: 66fbd85ceb3cba51c0e939fb2526f585
xpack.reporting.encryptionKey: 9358f4bc7189ae0ade1b8deeec7f38ef
xpack.security.encryptionKey: 8f847a594e4a813c4187fa93c884e92b
ファイルを開いたままにして、Kibanaのネットワーク設定を構成する次のセクションに進みます。
Kibanaネットワークの構成
ElasticsearchサーバーのプライベートIPアドレスで使用できるようにKibanaのネットワークを構成するには、/etc/kibana/kibana.yml
のコメントアウトされた#server.host: "localhost"
行を見つけます。 行はファイルの先頭近くにあります。 以下で強調表示されているように、サーバーのプライベートIPアドレスを使用して新しい行を追加します。
# Kibana is served by a back end server. This setting specifies the port to use.
#server.port: 5601
# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
#server.host: "localhost"
server.host: "your_private_ip"
your_private_ip
アドレスの代わりにプライベートIPを使用してください。
編集が完了したら、ファイルを保存して閉じます。 nano
を使用している場合は、CTRL+X
、Y
、ENTER
の順に使用して確認できます。
次に、KibanaがElasticsearchへの接続に使用するユーザー名とパスワードを構成する必要があります。
Kibanaクレデンシャルの設定
KibanaがElasticsearchへの認証に使用するユーザー名とパスワードを設定する方法は2つあります。 1つ目は、/etc/kibana/kibana.yml
構成ファイルを編集し、そこに値を追加することです。 2番目の方法は、Kibanaの keystore に値を保存することです。これは、Kibanaがシークレットを保存するために使用できる難読化されたファイルです。
このチュートリアルでは、Kibanaの構成ファイルを直接編集する必要がないため、キーストア方式を使用します。
代わりにファイルを編集する場合は、ファイルで構成する設定はelasticsearch.username
とelasticsearch.password
です。
構成ファイルを編集する場合は、このセクションの残りの手順をスキップしてください。
kibana-keystore
ユーティリティを使用してキーストアにシークレットを追加するには、最初にcd
を/usr/share/kibana/bin
ディレクトリに追加します。 次に、次のコマンドを実行してKibanaのユーザー名を設定します。
- sudo ./kibana-keystore add elasticsearch.username
次のようなプロンプトが表示されます。
Enter value for elasticsearch.username: *************
プロンプトが表示されたら、コピーして貼り付けるか、ユーザー名を慎重に入力して、kibana_system
と入力します。 入力する各文字は、*
アスタリスク文字でマスクされます。 ユーザー名の入力が完了したら、ENTER
またはRETURN
を押します。
ここで、パスワードに対して同じコマンドを繰り返します。 このチュートリアルの前のセクションで生成したkibana_system
ユーザーのパスワードを必ずコピーしてください。 参考までに、このチュートリアルでは、パスワードの例は1HLVxfqZMd7aFQS6Uabl
です。
次のコマンドを実行して、パスワードを設定します。
- sudo ./kibana-keystore add elasticsearch.password
プロンプトが表示されたら、パスワードを貼り付けて、転記エラーを回避します。
Enter value for elasticsearch.password: ********************
Kibanaを開始する
Kibanaのネットワークとxpack
セキュリティ設定を構成し、キーストアにクレデンシャルを追加したので、変更を有効にするためにそれを開始する必要があります。
次のsystemctl
コマンドを実行して、Kibanaを再起動します。
- sudo systemctl start kibana.service
Kibanaが起動したら、このチュートリアルの次のセクションに進むことができます。ここでは、ログをElasticsearchに送信するようにSuricataサーバーでFilebeatを構成します。
ステップ4—Filebeatのインストール
ElasticsearchとKibanaプロセスが正しいネットワークと認証設定で構成されたので、次のステップはSuricataサーバーにFilebeatをインストールしてセットアップすることです。
Filebeatのインストールを開始するには、次のコマンドを使用してElasticGPGキーをSuricataサーバーに追加します。
- curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
次に、Elasticソースリストをsources.list.d
ディレクトリに追加します。ここで、apt
は新しいソースを検索します。
- echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
次に、サーバーのパッケージインデックスを更新し、Filebeatパッケージをインストールします。
- sudo apt update
- sudo apt install filebeat
次に、ElasticsearchとKibanaの両方に接続するようにFilebeatを構成する必要があります。 nano
またはお好みのエディターを使用して、/etc/filebeat/filebeat.yml
構成ファイルを開きます。
- sudo nano /etc/filebeat/filebeat.yml
100行目あたりのファイルのKibana
セクションを見つけます。 コメントアウトされた#host: "localhost:5601"
行の後に、KibanaインスタンスのプライベートIPアドレスとポートを指す行を追加します。
. . .
# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
# This requires a Kibana endpoint configuration.
setup.kibana:
# Kibana Host
# Scheme and port can be left out and will be set to the default (http and 5601)
# In case you specify and additional path, the scheme is required: http://localhost:5601/path
# IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
#host: "localhost:5601"
host: "your_private_ip:5601"
. . .
この変更により、FilebeatがKibanaに接続して、ElasticsearchでさまざまなSIEMインデックス、ダッシュボード、および処理パイプラインを作成し、Suricataログを処理できるようになります。
次に、130行目あたりのファイルのElasticsearch Output
セクションを見つけ、Elasticsearchサーバーの値と一致するようにhosts
、username
、およびpassword
設定を編集します:
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["your_private_ip:9200"]
# Protocol - either `http` (default) or `https`.
#protocol: "https"
# Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
username: "elastic"
password: "6kNbsxQGYZ2EQJiqJpgl"
. . .
your_private_ip
値の代わりに、ElasticsearchサーバーのプライベートIPアドレスをhosts
行に置き換えます。 username
フィールドのコメントを解除し、elastic
ユーザーに設定したままにします。 password
フィールドをchangeme
から、このチュートリアルの ElasticsearchPasswordsセクションで生成したelastic
ユーザーのパスワードに変更します。
編集が完了したら、ファイルを保存して閉じます。 nano
を使用している場合は、CTRL+X
、Y
、ENTER
の順に使用して確認できます。
次に、次のコマンドを使用してFilebeatsの組み込みSuricataモジュールを有効にします。
- sudo filebeat modules enable suricata
FilebeatがElasticsearchとKibanaに接続するように構成され、Suricataモジュールが有効になったら、次のステップはSIEMダッシュボードとパイプラインをElasticsearchにロードすることです。
filebeat setup
コマンドを実行します。 すべてをロードするのに数分かかる場合があります。
- sudo filebeat setup
コマンドが終了すると、次のような出力が表示されます。
OutputOverwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead.
See more: https://www.elastic.co/guide/en/machine-learning/current/index.html
It is not possible to load ML jobs into an Elasticsearch 8.0.0 or newer using the Beat.
Loaded machine learning job configurations
Loaded Ingest pipelines
エラーがない場合は、systemctl
コマンドでFilebeatを起動してください。 実行されると、Suricataのeve.json
ログからElasticsearchへのイベントの送信が開始されます。
- sudo systemctl start filebeat.service
Suricataログを処理するようにFilebeat、Kibana、Elasticsearchを構成したので、このチュートリアルの最後のステップは、Kibanaに接続してSIEMダッシュボードを探索することです。
ステップ5—KibanaのSIEMダッシュボードをナビゲートする
Kibanaは、Elasticスタックのグラフィカルコンポーネントです。 ブラウザでKibanaを使用して、Suricataのイベントとアラートデータを探索します。 ElasticsearchサーバーのプライベートIPアドレスを介してのみ利用できるようにKibanaを構成したため、Kibanaに接続するにはSSHトンネルを使用する必要があります。
SSHでKibanaに接続する
SSHには、サーバー上のリモートIPアドレスとポートへの接続を介してローカルポート上のネットワークトラフィックを転送できるオプション-L
があります。 このオプションを使用して、ブラウザからKibanaインスタンスにトラフィックを転送します。
Linux、macOS、およびWindows 10以降の更新バージョンでは、組み込みのSSHクライアントを使用してトンネルを作成できます。 Kibanaに接続するたびに、このコマンドを使用します。 この接続はいつでも閉じてから、SSHコマンドを再度実行してトンネルを再確立できます。
ローカルデスクトップまたはラップトップコンピューターのターミナルで次のコマンドを実行して、KibanaへのSSHトンネルを作成します。
- ssh -L 5601:your_private_ip:5601 sammy@203.0.113.5 -N
SSHに対するさまざまな引数は次のとおりです。
-L
フラグは、ポート5601
でローカルシステムへのトラフィックをリモートサーバーに転送します。- コマンドの
your_private_ip:5601
の部分は、トラフィックが転送されるElasticsearchサーバー上のサービスを指定します。 この場合、そのサービスはKibanaです。your_private_ip
の代わりにElasticsearchサーバーのプライベートIPアドレスを使用してください 203.11.0.5
アドレスは、サーバーへの接続とサーバーの管理に使用するパブリックIPアドレスです。 代わりにElasticsearchサーバーのパブリックIPアドレスを使用してください。-N
フラグは、SSHにではなくインタラクティブな/bin/bash
シェルのようなコマンドを実行し、代わりに接続を開いたままにするように指示します。 これは通常、この例のようにポートを転送するときに使用されます。
いつでもトンネルを閉鎖したい場合は、CTRL+C
を押してください。
Windowsでは、端末は次のスクリーンショットのようになります。
注:SSHキーを使用していない場合は、パスワードの入力を求められる場合があります。 プロンプトに入力または貼り付けて、ENTER
またはRETURN
を押します。
macOSおよびLinuxでは、端末は次のスクリーンショットのようになります。
ポートフォワードを設定してSSH経由でElasticsearchサーバーに接続したら、ブラウザを開いてhttp://127.0.0.1:5601にアクセスします。 Kibanaのログインページにリダイレクトされます。
ブラウザがKibanaに接続できない場合は、端末に次のようなメッセージが表示されます。
Outputchannel 3: open failed: connect failed: No route to host
このエラーは、SSHトンネルがサーバー上のKibanaサービスに到達できないことを示しています。 Elasticsearchサーバーに正しいプライベートIPアドレスを指定していることを確認し、ブラウザでページをリロードします。
ユーザー名にelastic
を使用し、ユーザー用にこのチュートリアルの前半でコピーしたパスワードを使用して、Kibanaサーバーにログインします。
KibanaSIEMダッシュボードの閲覧
Kibanaにログインすると、Filebeatが構成したSuricataダッシュボードを探索できます。
Kibanaウェルカムページの上部にある検索フィールドに、検索語type:dashboard suricata
を入力します。 この検索では、次のスクリーンショットに従って、SuricataイベントダッシュボードとSuricataアラートダッシュボードの2つの結果が返されます。
[Filebeat Suricata] Events Overview
の結果をクリックして、ログに記録されたすべてのSuricataイベントの概要を表示するKibanaダッシュボードにアクセスします。
Suricata Alertsダッシュボードにアクセスするには、検索を繰り返すか、イベントダッシュボードに含まれているAlerts
リンクをクリックします。 ページは次のスクリーンショットのようになります。
各ダッシュボードに表示されるイベントとアラートを確認する場合は、ページの一番下までスクロールして、各イベントとアラートを一覧表示する表を見つけます。 各エントリを展開して、Suricataからの元のログエントリを表示し、アラートの送信元IPと宛先IP、攻撃の種類、SuricataシグニチャIDなどのさまざまなフィールドを詳細に調べることができます。
Kibanaには、ブラウザウィンドウの左側にあるメニューを使用してアクセスできるセキュリティダッシュボードのセットも組み込まれています。 ネットワークダッシュボードに移動して、マップに表示されるイベントの概要と、ネットワーク上のイベントに関する集計データを確認します。 ダッシュボードは次のスクリーンショットのようになります。
ネットワークダッシュボードの一番下までスクロールして、指定した検索時間枠に一致するすべてのイベントを一覧表示するテーブルを表示できます。 また、各イベントを詳細に調べたり、イベントを選択してKibanaタイムラインを生成したりして、特定のトラフィックフロー、アラート、またはコミュニティIDを調査するために使用することもできます。
結論
このチュートリアルでは、ElasticsearchとKibanaをスタンドアロンサーバーにインストールして構成しました。 プライベートIPアドレスで使用できるように両方のツールを構成しました。 また、各ツールに含まれているxpack
セキュリティモジュールを使用して、ElasticsearchとKibanaの認証設定を構成しました。
ElasticsearchとKibanaの設定手順を完了した後、SuricataサーバーにFilebeatをインストールして設定しました。 Filebeatを使用してKibanaのダッシュボードにデータを入力し、ElasticsearchへのSuricataログの送信を開始しました。
最後に、ElasticsearchサーバーへのSSHトンネルを作成し、Kibanaにログインしました。 新しいSuricataイベントとアラートダッシュボード、およびネットワークダッシュボードを見つけました。
このシリーズの最後のチュートリアルでは、KibanaのSIEM機能を使用してSuricataアラートを処理する方法について説明します。 その中で、特定のアラートを追跡するケース、ネットワークフローを相互に関連付けるタイムライン、および追跡または分析する特定のSuricataイベントに一致するルールを作成する方法について説明します。