|
本誌2022年3月号では、「Zeekでサイバーセキュリティ監視を簡単に実装」という記事で、Zeekの機能と導入方法について解説しました。今回は、その学習をさらに深め、ELK(Elasticsearch、Kibana、Beats、Logstash)との統合方法について解説します。 このために、ログを監視、収集し、Elasticsearchに転送できるFilebeatというツールを使用します。FilebeatとZeekを連携させ、Zeekで収集されたデータがKibanaダッシュボードに転送され、一元管理されるように設定します。 FilebeatをインストールするまずZeekを使ってFilebeatをインストールしましょう。apt sudo apt でファイルビートをインストール次に、 sudo nano /etc/filebeat/filebeat.ymlここで設定する必要があるのは2つだけです。Filebeatの入力セクションで、typeを これらの手順を完了すると、セットアップの最初の部分は図 1 に示す内容のようになるはずです。 図1: Filebeatの設定(a) 次に変更する必要があるのは、Elasticsearchの出力セクションの「Output」です 同じセクションで、下部にあるユーザー名とパスワードのフィールドのコメントを解除し、インストール後のELK設定時に生成されたElasticsearchユーザーのユーザー名とパスワードを入力します。これらの手順を完了したら、図2を参照して設定を確認してください。 図2: Filebeatの設定(b) インストールと設定が完了したら、Zeek がログを JSON 形式で保存するように設定する必要があります。これを行うには、Zeek インスタンスが停止していることを確認してください。停止していない場合は、以下のコマンドを実行して停止してください。 cd /opt/zeek/bin ここで、 ファイルを root として開き、次の行を追加します。 ポリシー/チューニング/json-logs.zeek を @load します。 設定が正しいことを確認するには、図 3 を参照してください。 図3: local.zeekファイル Zeek の構成の一部を変更したため、再デプロイする必要があります。これは、次のコマンドを実行して実行できます。 cd /opt/zeek/bin 次に、FilebeatでZeekモジュールを有効にして、Zeekログを転送できるようにします。以下のコマンドを実行してください。 sudo filebeatモジュールでzeekを有効にするもうすぐ完了です。最後のステップは、 この .yml ファイルでは、これらのログが保存されるディレクトリを指定する必要があります。これらのログは現在のフォルダに保存されており、 たとえば、 変数パス: [ “/opt/zeek/logs/current/dns.log”, “/opt/zeek/logs/*.dns.json” ] 残りのファイルについてもこの手順を繰り返します。必要なファイルの一部については既にこの手順を実行しました。また、主要な必須ファイルはすべて追加しました。皆さんも同様に実行できます。図4をご覧ください。 図4: zeek.yml の設定 それではFilebeatを起動しましょう。以下のコマンドを実行してください。 sudoファイルビートのセットアップ すべてが完了したら、Kibana ダッシュボードに移動して、Filebeat 経由で Zeek からデータを受信しているかどうかを確認しましょう。 ダッシュボードにアクセスしてください。収集したデータの統計分析を明確に確認できます(図5および6)。 図6: Kibanaのダッシュボード(ネットワーク) 次に、「Discover」タブに移動し、クエリを使用して結果をフィルタリングして調べましょう。 このクエリは、特定の期間内に受信したすべてのデータをフィルタリングし、Zeek という名前のモジュールのデータのみを表示します (図 7)。 図7: event.moduleクエリでフィルタリングされたデータ 謝辞著者らは、VIT-AP School of Computer Science and Engineering の Sibi Chakkaravarthy Sethuraman 氏と Sudhakar 氏に感謝します。 |