30
Kibana + Winlogbeatで実現: Windowsのログ分析入門 10回 セキュリティ共有勉強会 Future Architect 中井 祐季 1

Kibana + Winlogbeatで実現:Windowsのログ分析入門

Embed Size (px)

Citation preview

Kibana + Winlogbeatで実現:

Windowsのログ分析入門

第10回セキュリティ共有勉強会

Future Architect

中井祐季

1

目的

Kibanaを使ったセキュリティログ分析について知ってもらいたい

2

自己紹介

名前:中井祐季所属:フューチャーアーキテクト株式会社

金融ビジネスグループコンサルタント

興味:英語、神話、語源趣味:爬虫類

3

最近の攻撃

例えばActiveDirectoryでリソース管理をしていれば、ActiveDirectoryに「調査」を仕掛け、攻撃の準備をされているかも知れない。

4

最近は特定の情報や企業を狙った「標的型攻撃」が報道されている

Active Directory ログ分析の課題

解決!

0 5 10 15 20 25 30

ログを保存していない

その他

ログ運用のための社内調整に時間がかかる

ルールや基準が存在しない

分析のための工数が割けない

分析に関する十分なノウハウがない

5

出典:ログを活用したActive Directoryに対する攻撃の検知と対策https://www.jpcert.or.jp/research/AD.html

ログに出るのは知っている。でも、本当に監査できているか?

Elastic Stackを使う!

elasticsearch

logstashkibana可視化・分析 集積・正規化

beats

保存・蓄積集積

Elastic Stackとはデータの検索、分析、正規化をするためのツール群

6

Elastic Stackを使う!

elasticsearch

logstashkibana可視化・分析 集積・正規化

beats

保存・蓄積集積

取り込んだデータから様々なグラフを自由に作成できるKibana

7

Elastic Stackを使う!

elasticsearch

logstashkibana可視化・分析 集積・正規化

beats

保存・蓄積集積

エッジマシンから様々なデータをElasticsearchに取り込んでくれるBeats

8

Elastic Stackを使う!

elasticsearch

logstashkibana可視化・分析 集積・正規化

beats

保存・蓄積集積

ログを好きな形に正規化し、Elasticsearchに取り込んでくれるLogstash

Input

Filter

Output

9

Elastic Stackを使う!

elasticsearch

logstashkibana可視化・分析 集積・正規化

beats

保存・蓄積集積

BeatsやLogstashをはじめとしたデータを保存、蓄積してくれるElasticsearch

You know, for search

Data

10

Elastic Stackを使う!

elasticsearch

logstashkibana可視化・分析 集積・正規化

beats

保存・蓄積集積

今回使うのはこの3つ!

11

環境

Inte

rnet

Windows 2012 R2 Base

Active

DirectoryWinlogbeat

Centos 7

JavaKibana

Elasticsearch

Windows 2012 R2 Base

(踏み台)ドメイン参加

TCP 5601

TCP 9200

TCP 3389

12

Elastic Stackの構築は簡単!

Java

インストール

Kibana/Elasticsearch

インストール

Kibana/Elasticsearch

サービス起動

リポジトリ登録

Kibana/Elasticsearch

yml編集

Kibana/Elasticsearch

サービス化

今回はたったの6Stepで準備完了

13

*ルート権限必要

Winlogbeatの構築

winlogbeat

ダウンロード

Program Filesに移動

ファイル名の変更

ymlの編集

サービス化

サービススタート

winlogbeat-6.0.0-rc1~→Winlogbeat

PowerShellで実行

こちらもたったの6Stepで準備完了

Elasticsearchに取り込み完了

14参考:Elasticsearch Homepage

https://www.elastic.co/guide/en/beats/winlogbeat/6.0/winlogbeat-installation.html

Kibanaの画面Kibanaにアクセス(http://KibanaのIP:5601)するとDiscover画面はこんな感じになる

ログの詳細

ログの件数

検索バー

ナビゲーション

15

タイムフレームの設定

シナリオ「ログの削除」は痕跡を隠ぺいするための不審な行動として確認したほうがいいので、以下のシナリオを考えてみる。

本当にKibanaで簡単に確認することができるか?

demo_admin

怪しいタスク 全ログ作成 生成

16

タスク作成ログ

削除

グラフの作成イベントログの削除なんて怪しい行動を見張らない手はないので、EventID1102

データがあればここにグラフが出る

イベントログ削除のeventIDは1102

17※棒グラフ作成の場合

怪しいタスクを作成、ログを削除

イベントログを消しちゃう

18

確認できるか?

イベントログが消されてるのがわかる!

さっき作ったグラフを確認してみると、、、

カーソルをあてると設定した詳しい情報も見える

19

追跡してみる削除のログが出てる前の時間を指定

ユーザがdemo_adminと分かっているので指定

20

追跡してみる削除のログが出てる前の時間を指定

ユーザがdemo_adminと分かっているので指定

21

追跡してみる削除のログが出てる前の時間を指定

ユーザがdemo_adminと分かっているので指定

22

ログは消されてもElasticsearchに残っている!過去分に遡ってフォレンジック調査が可能!

結果イベントログの削除の特定からユーザの不審な行動を確認することができた。

分析ノウハウ JPCERTを参考にグラフを作成

分析用工数環境構築 12 Step+グラフ作成グラフから得られる情報を追うだけ!

構築用コスト オープンソースなのでタダ!

23

JPCERTの活用

イベントID 説明

4698 スケジュールされたタスクの作成

1102 イベントログの消去

4624 ログインの成功

4625 ログインの失敗

4768 Kerberos認証(TGT要求)

4769 Kerberos認証(ST要求)

4776 NTLM認証

4672 特権の割り当て

今回はeventID:1102を例にとって見たが他にも調査すべきログの例をJPCERTが公開している。他にもActive Directoryに対する攻撃の対策方法なども記載されているので確認しましょう!

24

25

ありがとうございました。

26

Appendix

Elastic Stack構築詳細

$ yum -y install java-1.8.0-openjdk$ java --version

$ yum -y install elasticsearch$ yum –y install kibana

$ systemctl start elasticsearch$ systemctl start kibana

$vi /etc/yum.repos.d/elastic.repo

$ vi /etc/elasticseach/elasticsearch.yml$ vi /etc/kibana/kibana.yml

$ systemctl enable elasticsearch$ systemctl enable kibana

Java

インストール

Kibana/Elasticsearch

インストール

Kibana/Elasticsearch

サービス起動

リポジトリ登録

Kibana/Elasticsearch

ymlの編集

Kibana/Elasticsearch

サービス化

[elastic-6.x-prerelease]name=Elastic repository for 6.x prerelease packagesbaseurl=https://artifacts.elastic.co/packages/6.x-prerelease/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

#kibana.ymlserver.host: KibanaのIPelasticsearch.url: “http://ElasticsearchのIP:9200”

#elasticsearch.ymlnetwork.host: ElasticsearchのIP

27

ローカルで動かす場合はymlファイルの変更はしなくても動く

Winlogbeat設定

28

winlogbeat

ダウンロード

Program Filesに移動

ファイル名の変更

ymlの編集

サービス化

サービススタート

#winlogbeat.ymloutput.elasticsearch:

# Array of hosts to connect to.hosts: [“ElasticsearchのIP:9200"]

$ cd ‘C:\Program Files\Winlogbeat’$ .\install-service-winlogbeat.ps1

$ net start winlogbeat

ローカルで動かす場合はymlファイルの変更はしなくても動く

グラフの作成

y軸はカウント

x軸は時間

時間は@timestampフィールドから取得日単位で表示

さらにevent_idというフィールドの情報だけを表示する同じように項目を追加してuserも表示されるようにする

29

y軸のMax,Minの設定

(発表中のグラフ詳細)

イベントログ出力設定

30

イベントログの初期設定状態では監査が無効になっているものがあるので有効化する必要がある

①”gpedit.msc”を検索し、実行

②ここまで展開する

③ここの項目を一つずつ選択

④構成する監査イベントを選択する 今回の設定項目 変更後の設定

特殊なログオン 成功および失敗

その他のオブジェクト アクセス イベント 成功および失敗

Kerberos サービス チケット操作 成功および失敗

Kerberos 認証サービス 成功および失敗

資格情報の確認 成功および失敗