2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Workbee運用方法

Last updated at Posted at 2020-04-11

以前に投稿したWorkerbeeの運用方法の一例紹介となります。
Workerbeeの運用に必要なHoneypotの構築については以前にアップロードした記事をご参照下さい。
Honeytrap + WOWHoneypot をDockerで構築
https://qiita.com/sec-chick/items/83cf1ff2708b874d78cc

目次

  1. Workerbeeのインストール
  2. Slackの設定およびAPIキー取得
  3. VirusTotalのAPIキー取得
  4. Workerbeeの設定
  5. Workerbeeの利用方法
  6. Workbeeの運用方法

1. Workerbeeのインストール

以下のコマンドをコンソールに入力し、必要なツールをダウンロードします。

$ cd 任意のフォルダ
$ git clone https://github.com/sec-chick/Workerbee.git

以降、Workerbeeの設定に必要な設定およびAPIキー取得を行なっていきます。

2. Slackの設定およびAPIキー取得

2.1 Slackの設定

Slackのアカウントを作成済みである場合、2.2へスキップしてください。

  1. 以下のURLへアクセスします。
    https://slack.com/signin

  2. ワークスペースを新規作成をクリックします。

slack1.png
  1. メールアドレスを入力します。
slack2.png
  1. 入力したメールアドレスに届いたメールからアクティベートを行います。

  2. 社名またはチーム名を入力し、次へをクリックします。

slack3.png
  1. 以降も入力していき、ワークスペースおよびチャンネルを作成します。

  2. 作成後、Slack連携に必要なAPIキーが表示されるので、該当の

2.2 APIキー取得

  1. 自分のワークスペースへアクセスします。
  2. ワークスペースアクセス後、右側のメニューから「Apps」を選択し、「Bots」をインストールします。
slack_bot.png 3. slackに追加をクリックします。 bots.png 4. ユーザ名を入力し、「ボットインテグレーション」を追加するをクリックします。 username.png 5. 表示されたAPI Keyを利用するので、コピーしておきます。 apikey.png

2.3 Honeypot用のチャンネル作成

Honeypot用のチャンネルを作成していきます。
必要に応じて、以下のチャンネルを作成してください。
・WOWHoneypot用(HTTP)
・WOWHoneypot用(HTTPS)
・Honeytrap用
・マルウェア解析用(Honeytrap)

以下にチャンネルの作成方法を記載します。ここではPCブラウザでの作成を想定しています。

  1. 左のチャンネルの右にある「+」をクリックし、「チャンネルを作成する」をクリックします。
slack5.png 2. チャンネル名を入力し、作成をクリックします。 slack6.png

3. VirusTotalのAPIキー取得

こちらはマルウェア解析を必要としない人は4までスキップしてください。

  1. VirusTotalへアクセスします。
    https://www.virustotal.com/
  2. VirusTotalの右上にある「Sign in」をクリックします。
VirusTotal_Top.png 3. 「New? Join the community」をクリックします。 virustotal_signin.png 4. 必要な項目を入力し、赤枠のチェックを入れた後、「Join us」をクリックします。 join.png 5. 入力したメールアドレスにVirusTotalからメールが届いているので、リンクをクリックします。 6. リンククリック後、「Sign in」し、登録したログイン情報でログインを行います。 VirusTotal_Top.png 7. 右上のアイコンマークをクリックし、「API Key」をクリックします。 virustotal_api.png 7. アクセス後、APIキーが表示されるので、コピーしておきます。

4. Workerbeeの設定

Workerbeeの設定ファイルである config.py を埋めていきます。

config.py
# -*- coding: utf-8 -*-
# Path
workerbee_path = '' # ①
uri_path_list_csv= workerbee_path + '/uri_path.csv' # ②

# malware
malware_result_file= workerbee_path + '/malware_result_file.csv'
malware_path=workerbee_path + '/malware'

# API KEY
SLACK_API_TOKEN='' # ③
vt_apikey = '' # ④

# Error File
error_file=workerbee_path + '/error.csv'


# slack channel ⑤
slack_channel_new_malware='#'
slack_channel_honeytrap ='#'
slack_channel_wowhoneypot='#'
slack_channel_wowhoneypotssl='#'

#mode setting ⑥
slack_flag='OFF' # slack送信フラグ ON/OFF

ここでは、主に入力する必要がある箇所を①〜⑤について記載します。
また、必要に応じて、各フォルダの格納場所やファイルの読み込みなどは変更してください。

① workerbee_path

この変数にはWorkerbeeをダウンロードしたフォルダを指定します。

# cd Workerbeeをインストールしたフォルダ
# pwd

pwdで表示されたパスを workerbee_path の中に入力してください。
例:

workerbee_path = '/home/ubuntu'

② uri_path_list_csv

標準では「/uri_path/uri_path.csv」になっていますが、自分で一から作成する場合は「/uri_path.csv」に変更してください。

③ SLACK_API_TOKEN

2.2 で作成したAPIキーを入力します。

SLACK_API_TOKEN = 'SlackのAPIキー'

④ vt_apikey

3 で作成したAPIキーを入力します。

vt_apikey = 'VirusTotalのAPIキー'

⑤ slack channel

2.3 で作成したチャンネルを入力していきます。

slack_channel_new_malware

マルウェア解析結果を通知するチャンネル名を入力します。

slack_channel_honeytrap

Honeytrapの解析結果を通知するチャンネル名を入力します。

slack_channel_wowhoneypot

WOWHoneypot(HTTP)を通知するチャンネル名を入力します。

slack_channel_wowhoneypotssl

WOWHoneypot(HTTPS)を通知するチャンネル名を入力します。
例:

slack_channel_new_malware='#Malware'
slack_channel_honeytrap ='#Honeytrap'
slack_channel_wowhoneypot='#wowhoneypot'
slack_channel_wowhoneypotssl='#wowhoneypotssl'

⑥ slack_flag

ここではslackへの連携を行うかどうかの設定を行います。
設定変更を行う場合は'ON'へ変更してください。

例:

slack_flag='ON' # slack送信フラグ ON/OFF

5. Workerbeeの利用方法

5.1 基本的なコマンド

WOWHoneypotの分析方法

WOWHoneypotの分析を行う場合、「wowhoneypot_csv_write.py 」および「wowhoneypot_slack.py 」を利用します。
「wowhoneypot_csv_write.py」では、解析しやすくするためのcsvファイルを作成します。
その後、作成したcsvファイルを利用して「wowhoneypot_csv_write.py 」を実行することでSlackへ通知が発生します。

ツールの説明

wowhoneypot_csv_write.py:
第1引数にWOWHoneyupotの「access_log」を指定し、第2引数で出力するファイル先を指定します。

wowhoneypot_csv_write.py:
第1引数にwowhoneypot_csv_write.pyで出力したcsvファイルを指定し、第2引数で解析対象(wowhoneypot もしくは wowhoneypotssl)を指定します。
第2引数の指定はHTTPの場合は「wowhoneypot」を指定し、HTTPSの場合は「wowhoneypotssl」を指定します。

使用例

コマンド例:
WOWHoneypot(HTTP)を分析

# python3 /home/ubuntu/Workerbee/wowhoneypot_csv_write.py /home/ubuntu/docker/log/wowhoneypot/access_log  /home/ubuntu/docker/log/wowhoneypot/wowhoneypot_payload.csv
# python3 /home/ubuntu/Workerbee/wowhoneypot_slack.py /home/ubuntu/docker/log/wowhoneypot/wowhoneypot_payload.csv wowhoneypot

コマンド例:
WOWHoneypot(HTTPS)を分析

# python3 /home/ubuntu/Workerbee/wowhoneypot_csv_write.py /home/ubuntu/docker/log/wowhoneypotssl/access_log  /home/ubuntu/docker/log/wowhoneypot/wowhoneypot_payload.csv
# python3 /home/ubuntu/Workerbee/wowhoneypot_slack.py /home/ubuntu/docker/log/wowhoneypotssl/wowhoneypot_payload.csv wowhoneypotssl

Honeytrapの分析方法

Honeytrapの分析を行う場合、「honeytrap_csv_write.py」および「honeytrap_slack.py」を利用します。
「honeytrap_csv_write.py」では、解析しやすくするためのcsvファイルを作成します。
その後、作成したcsvファイルを利用して「honeytrap_slack.py」を実行することでSlackへ通知が発生します。

ツールの説明

honeytrap_csv_write.py:
第1引数にHoneytrapの「attackers.json」を指定し、第2引数で出力するファイル先を指定します。

honeytrap_slack.py:
第1引数にhoneytrap_csv_write.pyで出力したcsvファイルを指定します。

使用例

コマンド例:

# python3 honeytrap_csv_write.py /home/ubuntu/docker/log/honeytrap/log/attackers.json /home/ubuntu/docker/log/honeytrap/log/honeytrap_payload.csv
# python3 honeytrap_slack.py /home/ubuntu/docker/log/honeytrap/log/honeytrap_payload.csv

Honeytrapのマルウェア分析を行う場合

Honeytrapの分析を行う場合、「honeytrap_malware_check.py」および「honeytrap_virustotal.py」を利用します。
「honeytrap_malware_check.py」では、マルウェアの可能性があるファイルを保存するファイルをなっています。また、ファイル保存とともに、マルウェアに関する情報をcsvファイルに出力されます。出力先は「config.py」で指定したファイル先となります。
「honeytrap_virustotal.py」では「honeytrap_malware_check.py」で収集したマルウェアについてVirusTotalの結果を追記します。

ツールの説明

honeytrap_virustotal.py:
第1引数にHoneytrapの「attackers.json」を指定し、第2引数で出力するファイル先を指定します。

honeytrap_virustotal.py:
引数の指定は特に必要ありません。

コマンド例:

# python3 honeytrap_malware_check.py  /home/ubuntu/docker/log/honeytrap/log/attackers.json
# python3 honeytrap_virustotal.py

6 Workerbeeの運用方法

ここではWorkerbeeの運用例について紹介します。今回、紹介する運用方法は以下の通りです。
① 日次分析
Honeytrap,WOWHoneypot(HTTP,HTTPS)の日次分析を行い、自動的にSlackへ連携する
② マルウェアの自動分析
1時間に1回、Honeytrapのログに対してマルウェアの検知がないか確認し、新規マルウェアがあった場合、Slackへ連携する

これらを実現するために Logtotateによるログのローテーションおよびcronによる定期的な実行を行います。

5.2 Logrotateの設定

/etc/logrotate.d にログローテーション用の設定ファイルを作成します。
なお、ファイル名については必要に応じて変更してください。

$ sudo vim /etc/logrotate.d/wowhoneypot
$ sudo vim /etc/logrotate.d/wowhoneypotssl
$ sudo vim /etc/logrotate.d/honeytrap

ファイルの中身は以下の①〜③をそれぞれ入力します。

/etc/logrotate.d/wowhoneypot
/home/ubuntu/docker/log/wowhoneypot/access_log { # 対象のログファイル
    ifempty
    dateext
    dateformat _%Y%m%d 
    missingok          # ログファイルがなくてもエラーを出さない
    delaycompress      # ログの圧縮作業を次回のローテーション時まで遅らせる
    daily              # 毎日ローテートする
    rotate 10
}

/etc/logrotate.d/wowhoneypotssl
/home/ubuntu/docker/log/wowhoneypotssl/access_log { # 対象のログファイル
    ifempty
    dateext
    dateformat _%Y%m%d 
    missingok          # ログファイルがなくてもエラーを出さない
    delaycompress      # ログの圧縮作業を次回のローテーション時まで遅らせる
    daily              # 毎日ローテートする
    rotate 10
}

/etc/logrotate.d/honeytrap
/home/ubuntu/docker/log/honeytrap/log/attackers.json { # 対象のログファイル
    ifempty
    dateext
    dateformat _%Y%m%d 
    missingok          # ログファイルがなくてもエラーを出さない
    delaycompress      # ログの圧縮作業を次回のローテーション時まで遅らせる
    daily              # 毎日ローテートする
    rotate 10
}

5.3 Cronの設定

自動化するために自分が実施しているCronの設定を紹介します。
ここではUbuntuでのCronの設定方法について記載します。他のOSを利用している人は適宜読み替えて頂ければと思います。

ディレクトリおよびファイル名は以下のように設定しています。
ディレクトリ :
/home/[自分で設定したユーザ名]/Workerbee : Honeypot分析ツールであるWorkerbeeの格納
/home/[自分で設定したユーザ名]/cron : cronで実行するスクリプトファイル

ファイル:
/home/[自分で設定したユーザ名]/cron/daily_report.sh : 日次分析用スクリプトファイル

以下の設定では[自分で設定したユーザ名]をubuntuとして説明していきます。

まずは、cronで必要となるスクリプトファイルを作成します。
以下のコマンドを入力し、以下のスクリプトファイルを入力してください。
※作成するフォルダの場所は適宜変更してください。

# mkdir ~/cron
# cd ~/cron

①日次分析用のcron設定
1.日次分析用のcronファイルを作成します。

# cd ~/cron
# vim daily_report.sh
daily_report.sh
#!/bin/bash
docker-compose -f /home/ubuntu/docker/docker-compose.yml restart
python3 /home/ubuntu/Workerbee/wowhoneypot_csv_write.py /home/ubuntu/docker/log/wowhoneypot/access_log_`date +%Y%m%d`  /home/ubuntu/docker/log/wowhoneypot/wowhoneypot_payload_`date +%Y%m%d`.csv
python3 /home/ubuntu/Workerbee/wowhoneypot_slack.py /home/ubuntu/docker/log/wowhoneypot/wowhoneypot_payload_`date +%Y%m%d`.csv wowhoneypot
python3 /home/ubuntu/Workerbee/wowhoneypot_csv_write.py /home/ubuntu/docker/log/wowhoneypotssl/access_log_`date +%Y%m%d`  /home/ubuntu/docker/log/wowhoneypotssl/wowhoneypotssl_payload_`date +%Y%m%d`.csv
python3 /home/ubuntu/Workerbee/wowhoneypot_slack.py /home/ubuntu/docker/log/wowhoneypotssl/wowhoneypotssl_payload_`date +%Y%m%d`.csv wowhoneypotssl
python3 /home/ubuntu/Workerbee/honeytrap_csv_write.py /home/ubuntu/docker/log/honeytrap/log/attackers.json_`date +%Y%m%d` /home/ubuntu/docker/log/honeytrap/log/honeytrap_payload_`date +%Y%m%d`.csv
python3 /home/ubuntu/Workerbee/honeytrap_slack.py  /home/ubuntu/docker/log/honeytrap/log/honeytrap_payload_`date +%Y%m%d`.csv
python3 /home/ubuntu/Workerbee/honeytrap_malware_check.py  /home/ubuntu/docker/log/honeytrap/log/attackers.json
python3 /home/ubuntu/Workerbee/honeytrap_virustotal.py

2.cronに設定を行います。ここでは前日分の分析を0:15 に実行する用に設定しています。/etc/cron.d の配下にdaily_honeypotという名前で作成します。

sudo vim /etc/cron.d/daily_honeypot

ファイルの中身は以下となります。

/etc/cron.d/daily_honeypotdaily_honeypot
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
15 00 * * * root sh /home/ubuntu/cron/daily_report.sh > /home/ubuntu/python/both.log 2>&1

② マルウェア分析用のCron
1.マルウェア分析用ののcronファイルを作成します。

# cd ~/cron
# vim malware_analysis.sh 

ファイルの中身は以下となります。

malware_analysis.sh
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
docker-compose -f /home/ubuntu/docker/docker-compose.yml restart
/usr/bin/python3 /home/ubuntu/Workerbee/honeytrap_malware_check.py  /home/ubuntu/docker/log/honeytrap/log/attackers.json

2.cronに設定を行います。ここでは前日分の分析を0:15 に実行する用に設定しています。/etc/cron.d の配下にhourly_malware_analysisという名前で作成します。

sudo vim /etc/cron.d/hourly_malware_analysis

ファイルの中身は以下となります。

/etc/cron.d/hourly_malware_analysis
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
00 1-23 * * * root sh /home/ubuntu/cron/malware_analysis.sh > /home/ubuntu/cron/both_now.log 2>&1

以上でCronの設定が完了となります。

何かご不明な点がありましたら、コメントやDMを頂けると幸いです。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?