Skip to content

インストール

S03D4-164 edited this page Apr 30, 2020 · 3 revisions

前提条件

本インストール手順はLinux (Ubuntu)で動作を確認しております。

SysmonSearchはバージョンv7.xのElasticsearch、Kibanaをサポートしております。

ここから、Elasticsearch v7.xをダウンロードし、解凍してください。 解凍したディレクトリを$ES_HOMEと呼びます。

ここから、Kibana v7.xをダウンロードし解凍してください。 解凍したディレクトリを$KIBANA_HOMEと呼びます。

SysmonSearchリポジトリをクローンしてください。

$ git clone https://github.com/JPCERTCC/SysmonSearch.git

Elasticsearchサーバセットアップ

Elasticsearchの設定ファイルを編集してください。

$ vim $ES_HOME/config/elasticsearch.yml

例:
# イベントログを送信するクライアントが接続可能な IP アドレスを設定してください
network.host: 0.0.0.0
http.port: 9200
# IP アドレスを設定した場合、以下のようなノードの設定が必要になります
node.name: node-1
cluster.initial_master_nodes: ["node-1"]

# 認証を有効にしたい場合、以下を編集してください。
# xpack.security.enabled=true
# xpack.security.transport.ssl.enabled=true
# xpack.security.audit.enabled=true
# デフォルトでは Elasticsearch のビルトインアカウントが存在します。(ユーザ名:elastic、パスワード:changeme)
# $ES_HOME/bin/elasticsearch-setup-passwords でパスワードを設定することを推奨します。

Elasticsearchを起動します。

$ $ES_HOME/bin/elasticsearch

Kibanaサーバセットアップ

Kibanaの設定ファイルを編集してください。

$ vim KIBANA_HOME/config/kibana.yml

例:
elasticsearch.hosts: ["http://<ElasticsearchサーバのIPアドレス>:9200"]

#スクリプトの実行のため、以下の設定を追加してください。
csp.rules:
  - "script-src 'self' 'unsafe-eval' 'sha256-M2M+sgC2bZ4r73FO1LV5JmHiS5COwEb2Uqw7EbsHmBY='"

# Elasticsearch の認証を有効にした場合、以下を編集してください
# elasticsearch.username: ユーザ名
# elasticsearch.password: パスワード

Kibanaが起動することを確認します。

$ $KIBANA_HOME/bin/kibana

SysmonSearchプラグインの設置

sysmon_search_pluginを $KIBANA_HOME/plugins 内にコピーし、$KIBANA_HOME/optimize 配下のファイルを削除します。

$ cp -r sysmon_search_plugin/ $KIBANA_HOME/plugins/
$ rm -rf $KIBANA_HOME/optimize/*

sysmon_search_pluginの設定ファイルの必要な箇所を編集します。

$ vim $KIBANA_HOME/plugins/sysmon_search_plugin/conf.js

例:
//elasticsearch server URL
"elasticsearch_url":"[ElasticsearchサーバのIPアドレス]"
//elasticsearch server Port
"elasticsearch_port": "9200",
//monitor rule file path
"savepath": "[scriptを配置したパス]/rule_files",
//stixioc import server URL
"import_server_url": "[stixioc-import-serverのIPアドレス]",
//stixioc server port
"import_server_port": "56020",
//internal time (hour)
"refine_time_range": "1",
//maximum object number
"max_object_num": "30",
// Elasticsearch の認証を有効にした場合、以下を編集してください
"elasticsearch_user": "elastic",
"elasticsearch_password": "changeme",

Kibanaを再起動します。


StixIocサーバセットアップ

以下はPython3のvenvモジュールがインストールされている環境を想定しています。

必要なPythonモジュールをインストールするための環境をvenvで作成し、有効化します。

$ python3 -m venv venv
$ source venv/bin/activate

以下のコマンドを実行し、Pythonモジュールをインストールします。

$ pip install tornado openioc-to-stix git+https://github.com/oasis-open/cti-stix-slider.git pyyaml elasticsearch

stixioc-import-serverディレクトリに、logsディレクトリを作成します。

$ mkdir stixioc-import-server/logs

stixioc-import-serverを起動します。

$ cd stixioc-import-server
$ python server.py

ポート番号やログの設定などを変更したい場合、server.confを編集してください。

stixioc-import-serverディレクトリで以下のコマンドを実行することで、SticIocサーバの動作を確認できます。

# localhost で実行している場合
$ curl localhost:56020/convert/ioc -F 'file=@data/sample.ioc.xml'

Pythonスクリプト

統計スクリプトの設定の必要な箇所を編集します。

$ vim script/collection_statistical_data_setting.py

例:
ELASTICSEARCH_SERVER = "[ElasticserachサーバのIPアドレス]"

# INDEX_NAME_ORG にはインデックス名から年月日を削ったものを設定してください
# インデックス名が winlogbeat-yyyy.mm.dd の場合
INDEX_NAME_ORG = "winlogbeat"
# インデックス名が winlogbeat-7.5.1-yyyy.mm.dd の場合
INDEX_NAME_ORG = "winlogbeat-7.5.1"

WINLOGBEAT_YML = "[sysmon_search_plugin/winlogbeat.ymlの絶対パス]"

アラートスクリプトの設定の必要な箇所を編集します。

$ vim script/collection_alert_data_setting.py

例:
ELASTICSEARCH_SERVER = "[ElasticserachサーバのIPアドレス]"
RULE_FILE_DIRECTORY = "[scriptを配置したパス]/rule_files/*"
WINLOGBEAT_YML = "[sysmon_search_plugin/winlogbeat.ymlの絶対パス]"

以下をcrontabに設定します。

VENV_DIR=[absolute path of venv directory]
SCRIPT_DIR=[absolute path of script directory]
0,30 * * * * $VENV_DIR/bin/python3 $SCRIPT_DIR/collection_statistical_data.py
0,30 * * * * $VENV_DIR/bin/python3 $SCRIPT_DIR/collection_alert_data.py
0 1 * * * DATE=`date -d "-1 day" "+%Y.%m.%d"`; $VENV_DIR/bin/python3 $SCRIPT_DIR/collection_statistical_data.py $DATE

クライアントのセットアップ

クライアントのセットアップを参照してください。

Clone this wiki locally