家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

ハニーポットの構築メモ(その2)

2.Cowrieのインストール

cowrieは2222番ポートで待ち受けます。ポートの変更は1.Wowhoneypotの手順の中で合わせて実施しています。

 

実行したコマンド

sudo apt-get install git python-virtualenv libssl-dev libffi-dev build-essential libpython-dev python2.7-minimal authbind
git clone https://github.com/micheloosterhof/cowrie.git
cd cowrie/
sudo apt-get install virtualenv
virtualenv cowrie-env
source cowrie-env/bin/activate
pip install --upgrade pip
pip install --upgrade -r requirements.txt
cd cowrie/etc
cp cowrie.cfg.dist cowrie.cfg

 

ここまで実施するとcowrieが起動できるようになります。
bin/cowrie startを実行することで、22番ポートで攻撃を待ち受けるようになります。 

 

参考:Cowrieについて 

Cowrie=どうも「カウリー」と読むようです。Cowrieの関連ファイルを以下に記載します。

Cowrie関連ファイル

cowrie.cfg Cowrieの設定ファイル
share/cowrie/fs.pickle 偽ファイルシステム
data/userdb.txt アクセスを許可/拒否するアカウント情報
honeyfs/ 偽のファイルシステムのファイル内容
honeyfs/etc/issue.net ログインバナー
honeyfs/etc/motd ログイン後のバナー
var/log/cowrie/cowrie.json JSON形式のトランザクション
var/log/cowrie/cowrie.log ログファイル
var/lib/cowrie/tty/ セッションログ。bin bin/playlogユーティリティで再生できます。
var/lib/cowrie/downloads/ 攻撃者からハニーポットに転送されたファイルがここに格納されます
share/cowrie/txtcmds/ 偽のコマンドファイル
bin/createfs 偽のファイルシステムを作るために使われる
bin/playlog セッションログを再生するユーティリティ

※しばらく稼働させているとvar/lib/cowrie/downloads/には複数ファイルが格納されていました。
VirusTotalで確認したところ、トロイの木馬と判定されるファイルが含まれていることも確認できました。

f:id:iestudy:20190725220156p:plain

VirusTotal判定結果

  

3.ログの管理

Wowhoneypot及びCowrieは以下に攻撃ログが記録されます。

  • Wowhoneypot:インストールディレクトリ/wowhoneypot/log/access_log
  • Cowrie: インストールディレクトリ/cowrie/var/log/cowrie/cowrie.log

同じファイルにログが蓄積されていくので日ごとにログを分け、分けたファイルをDropbox上に移動するようにします。

 

3-1.Dropboxへディレクトリを同期する

ハニーポット上のログファイルをファイルをDropboxに同期することで、Zapierを使った他のWebサービスとの連携ができるようになります。
Dropbox以下のディレクトリを以下の用途で分類しました。

ディレクトリ階層と用途
Dropbox
┗―――Twitter・・・Zapier経由でTwitterに投稿するファイルを格納
┗―――analysis・・・Wowhoneypotのログを成形したファイルを格納
┗―――http・・・Wowhoneypotの生ログを格納
┗―――ssh・・・Cowrieの生ログを格納

 

Dropbox連携手順

  • 事前にDropboxのアカウントを用意して、ログインをしておきます。
  • UbuntuにDropboxデーモンをインストールします。
    wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
    →~/.dropbox-dist というディレクトリが作られます。

 

  • DropboxデーモンとDropboxアカウントを紐づけます。
    .dropbox-dist/dropboxdを実行すると以下のメッセージが表示されます。ブラウザで Dropbox にログイン中であることを確認し、https://www.dropbox.com/cli_link?host_id=xxxxxxx」にブラウザでアクセスします。ログインが成功するとアカウントの紐づけは完了します。ここで一旦Dropboxを停止します。

 

このクライアントはどのアカウントにもリンクされていません...
このコンピュータをリンクするには、https://www.dropbox.com/cli_link?host_id=xxxxxxx にアクセスしてください。

3-2.Dropbox管理コマンドダウンロード

dropbox.pyをダウンロードすることで、以下のコマンドでDropboxの起動・停止ができます。起動時は生成されるDropboxディレクトリにファイルを移動すると、Dropbox上に同期されます。

  • ./dropbox.py start
  • ./dropbox.py stop

実行したコマンド

wget -O dropbox.py "http://www.dropbox.com/download?dl=packages/dropbox.py"

chmod 777 dropbox.py

 

3-3.日時のログのバックアップ(cron)

以下のシェルを日時で実行することで、Wowhoneypot及びCowrieのログをDropbox上にバックアップします。

 

ログを移動するシェル

task.sh

!/bin/sh
mv /home/ubuntu/wowhoneypot/log/access_log /home/ubuntu/Dropbox/http/$(date +%Y%m%d)_access.log
mv /home/ubuntu/cowrie/var/log/cowrie/cowrie.log /home/ubuntu/Dropbox/ssh/$(date +%Y%m%d)_ssh.log
/home/ubuntu/cowrie/bin/cowrie stop
/home/ubuntu/cowrie/bin/cowrie start

ログを成形するシェル

logwork.sh

!/bin/sh
cat /home/ubuntu/Dropbox/http/$(date +%Y%m%d)_access.log | tr ' ' '\t' > /home/ubuntu/Dropbox/sep.log
cut -f 10 /home/ubuntu/Dropbox/sep.log | base64 -d > /home/ubuntu/Dropbox/analysis/$(date +%Y%m%d)_attack.log
cat /home/ubuntu/Dropbox/ssh/$(date +%Y%m%d)_ssh.log | grep 'login attempt' | cut -d ' ' -f 8 | sort | uniq -c | sort -nr | head -n 10 > /home/ubuntu/Dropbox/Twitter/$(date +%Y%m%d)_ssh_attack_Top10.log

実行したコマンド

chmod +x task.sh
chmod +x logwork.sh 

 

上記のシェルをcronにより日時で実行することで日ごとのログをDropboxに同期します。

実行したコマンド

crontab -e

 

3-4.DropboxとGoogle Driveを連携(ハニーポットのログ容量削減)

3-3.までの構成では、ハニーポットとDropbox上に同じログファイルが保持され続けストレージ容量をひっ迫します。3-4.では自動化ツールのサービスである「Zapier」を使って、Dropbox上に同期されたログをGoogle Driveに同期(退避)し、その後Crontabでハニーポット上のDropboxディレクトリを削除することで、ログ容量の問題に対応します。
また、日常の攻撃状況を簡単に確認するために、成形したログの中身をTwitterに投稿します。

 

Zapierについては、以下のページで概要をまとめています。

自動化ツール「Zapier」 - 家studyをつづって

 

Zapierで以下のようなZapを作成することで、ログファイルを自動で退避します。

f:id:iestudy:20190624223704p:plain

作成したZapのイメージ

今回はTwitterへの投稿及び、ログの退避の2つのZapを作成しました。

f:id:iestudy:20190629001159p:plain

作成したZapのイメージ(2種類)

 

Zapは実行までにタイムラグ(フリープランでは15分毎)が発生する場合があるので、ハニーポット上でDropboxディレクトリの中身を削除するコマンド(rm -f /Dropboxディレクトリのパス/*)は、午前1時頃などに時間をずらして実行します。

 

続きの記事では、その他ハニーポットに追加した機能等を順次記載していきます。

iestudy.hatenablog.com