FUJITSU Advent Calendar 2019 の19日目の記事です。
(注意)この記事は個人の見解であり、所属する会社、組織を代表するものではありません。
昨年の記事「VagrantとAnsibleを用いたフロー情報の可視化環境作成」のアップデートです。
https://qiita.com/t_umeno/items/b1c887782522450bad9d
昨年からの変更点
設定
ansible/ELK6/playbooks/settings/config.yml
を編集することで、以下を設定できます。
- VMのdisksize (デフォルト 100GB)
- ElasticStackの種類
- 6.x (デフォルト)
- 7.x
- opendistro for Elasticsearch 1.3.0 (docker)
- opendistro for Elasticsearch 1.3.0 (apt)
- Elasticsearch, Kibanaが動作するVM数
- 1 (デフォルト)
- 3
- 5
- opendistro for Elasticsearchが動作するdockerコンテナ数
- 1 (デフォルト)
- 3
- 5
- snortの使用有無 (デフォルト 使用しない)
- ntpサーバのIPアドレス (イントラネットなどインターネット上のntpサーバに到達しない場合に設定する)
詳細は下記URLを参照してください。
https://github.com/t-umeno/visualize_network_traffic/blob/master/README.ja.md
発表
JANOG44 meeting 初心者歓迎! Light Lightning Talk大会で発表しました。
ダッシュボード
ダッシュボードを追加しました。
例:
- bar3 nDPIによってプロトコル種別(http, SSL等)や通信サービス(Google, Amazon, WindowsUpdate等)を表示します。
- bar2_silkAppLabel silkAppLabelによるプロトコル種別表示(SSL/TLS, DNS, SSH等)を表示します。
はじめに
Wiresharkで1GB以上のPCAPファイルを追うのは困難です。
課題
ネットワークのフロー情報から有用な情報を得たい。一方で、netflowやIPFIXのフロー情報の可視化環境構築は手間がかかります。
解決方法
VagrantやAnsibleを用いてElasticStackやGrafanaを使ったフロー情報の可視化するVM(Ubuntu 18.04ベース)を作成しました。
VagrantとAnsibleで作成するVMの構成
- ネットワークインタフェースで受信したパケットをYAFでIPFIX形式のフロー情報に変換
- super_mediatorでIPFIXをJSON形式のファイルに変換
- JSON形式のファイルをLogstashを経由してElasticsearchに入力
- Elasticsearchでフロー情報検索
- Elasticsearchの検索結果をKibana および Grafanaで可視化
動作環境
- メモリ8GB以上のWindows,Mac,Linux
- 対象となるネットワークに接続可能なNIC
- git
- Git for Widnows https://gitforwindows.org/ を使用する場合は、改行コードを一切変更しない設定(Checkout as-is, commit as-is)でインストールしてください。
- VirtualBox
- Vagrant
- vagrant-disksize plugin
- vagrant-proxyconf plugin (http proxy使用環境)
- vagrant-vbguest (オプション)
- firefox or chrome (IE, edge不可)
リポジトリ
インストール方法等の詳細
発表資料
JANOG44 meeting 初心者歓迎! Light Lightning Talk大会
資料
2018/06/16のセキュリティマイスター道場(SecDojo) ~夏場所~ のLT枠の発表資料(2018/11/08 修正)
Ansible Night in Osaka 2018.11 LT
Kibana 表示例
##ダッシュボード(bar2)
- フロー数推移(当日、1日前、1週間前)
- DNS問い合わせ名
- オクテット数推移
- フロー数(IP,Port,MAC,TCPフラグ,プロトコル番号で分類)
- http Host
- http Referer
- http Get
- http UserAgent
- http ServerString
##JSONファイルに含まれる情報は追加表示可能
例
- SSL証明書有効期限
- SIPの電話番号
Grafana 表示例
- フロー数
- オクテット数(順方向、逆方向)
- パケット数(順方向、逆方向)
- フロー数、オクテット数、パケット数でアラートを送信する際に使用
URL
CERT NetSA Security Suite
YAF
super_mediator