こんにちは、ホアンです。
セキュリティ情報の管理(SIEMシステム)と可視化に関することを研究しています。
Linuxではelasticsearch-5.5.2、logstash-5.5.2、kibana-5.5.2の三つのツールを使用しています。
複数のログデータの相関分析を自動化することを目的としてELK stackを用いてSIEM構築し、SIEMシステムの有効性を検証する予定です。
そのため、まず、特定の過去のプロキシのログとファイアウォールのログのみで実験を行います。
elasticsearchにデータを投入してから、Kibanaでの可視化の結果は以下のようになりました。
・proxyのlogはMcafee からの収集されたデータです。プロキシのログのconfファイル:
input {
stdin {
add_field => ["log_type", "proxy_logs"]
}
}
filter {
grok {
match => [
"message", "(?:%{SYSLOGFACILITY} )?%{SYSLOGHOST:logsource}+(?: %{SYSLOGPROG}:|) Virus Found Alert%{CRLF} DateTime: [%{HTTPDATE:timestamp}]%{CRLF} Cliet IP Address: %{IPORHOST:clientip}%{CRLF} Virus Name%{NONSHARP:virusname}%{CRLF} URL: %{NONSHARP:virusurl}%{CRLF3}%{GREEDYDATA:mcafee}"
]
}
date {
match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z" ]
}
}
output {
# stdout { codec => rubydebug }
elasticsearch {
hosts => [ "localhost:9200" ]
}
}
・ファイアウォールのログのconfファイル:
input {
stdin {
add_field => ["log_type", "firewall_logs"]
}
}
filter {
grok {
match => [
"message", "%{TIMESTAMP_ISO8601:timestamp} %{IPORHOST:srcip}:%{NUMBER:srcport} %{IPORHOST:dstip}:%{NUMBER:dstport} %{NUMBER:protocol} %{QUOTEDSTRING:dstcountry}"
]
}
date {
match => [ "timestamp", "YYYY-MM-dd HH:mm:ss" ]
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => [ "localhost:9200" ]
}
}
・proxy logsの例 とfirewall logsの例は以下のようになりました。
同じ期間内に異なるログの相関分析を行いたいですが、KibanaまたはELK stack でデータを処理方法・表示方法等を教えて頂けませんか。 例えば、グラフの表示、地図での位置を表示、異なるログの関係が比較できる表示方法等です。
ご指導よろしくお願いします。