0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ハニーポット】Web に対する攻撃の観測環境( WOWHoneypot の導入)

Last updated at Posted at 2025-03-11

SSH & Telnet に関する ハニーポットは、こちらの記事で導入を解説済みですが、今回はWebに対する攻撃の観察として、WOWHoneypot と呼ばれる「サーバ型・低対話型の入門用 Web ハニーポット」を、Ubuntu 上にインストールし、動作確認を行う手順を解説します。

WOWHoneypot とは

WOWHoneypot は不正アクセスや攻撃を観測するための簡易ハニーポットとして、Web を通じた攻撃をログに残すことが可能です。低対話型のため扱いやすく、ハニーポット運用の入門としても適しているとも言えます。但し、2025年現在からすると、最終更新が2020年6月と5年近くが経過し少し古めで、メンテナンス上の問題があるとも言いえるかもしれません。ご利用は、常々自己責任でという事になるかと思います。

WOWHoneypotは、主に以下の特徴を持つ Web ハニーポットです:

  • サーバ側で動作する低対話型ハニーポット
    攻撃者のアクセスを受け取り、実際に本物のアプリケーションが動作しているかのように最低限のレスポンスを返します。
  • HTTPリクエストの観測
    攻撃者からのリクエスト内容やパラメータ、ヘッダ情報などを記録できます。
  • 軽量かつ単純な構成
    Python スクリプトを起動するだけで動作するため、導入が容易で、初めてハニーポットを運用する方にも向いています。

インストール前の準備

本記事では Ubuntu 24.04 LTS を例にしています。多少のバージョンが異なる場合も、大きな変更はないかと思いますが、環境に応じて適宜ご確認ください。

Ubuntu 自体のOSのパッケージを最新化しておきます。

$ sudo apt update
$ sudo apt dist-upgrade

依存関係で必要なくなったパッケージは削除します。

$ sudo apt autoremove

Python や Git などをインストールしておきます。netstatコマンドも使えるように、net-toolsをインストールしておきます。

$ sudo apt install -y git python3 python3-pip python3-venv
$ sudo apt install -y net-tools

WOWHoneypot のダウンロード

WOWHoneypot のソースコードは GitHub で公開されています。好きなディレクトリへ移動し、git clone で取得します。ここでは /opt を例にします。

$ cd /opt
$ sudo git clone https://github.com/morihisa/WOWHoneypot.git
# 所有者を現在のユーザーに変更(必要に応じて)
$ sudo chown -R $USER:$USER WOWHoneypot
$ cd WOWHoneypot

Python で作られたアプリケーションである WOWHoneypot は、依存関係を分離するために仮想環境で動作させる事が望ましいです。以下の手順で env_wowhoney という仮想環境を作成し、有効化します。

$ pwd
/opt/WOWHoneypot

$ python3 -m venv env_wowhoney
$ source env_wowhoney/bin/activate
(env_wowhoney) $

WOWHoneypot の起動 & 動作確認

起動は、Pythonスクリプトを実行するだけです。

(env_wowhoney) $ python3 ./wowhoneypot.py

WOWHoneypot が起動している状態で、別の端末や同一ホストのブラウザから、下記のようにアクセスしてみます。

http://<ホストIP>:8080/

WOWHoneypot が正常に動作していれば、ブラウザ上で何らかのレスポンスやページが表示されます。

image.png

ログの確認

WOWHoneypot は、攻撃リクエストやアクセス内容をログファイルに記録します。リポジトリのドキュメントなどを確認し、下記の場所に出力されます。

  • log/access.log:アクセスログが記録
  • log/wowhoneypot.log:WOWHoneypot の動作ログが記録

実際にログをチェックする際は tail コマンドなどで確認してみます。ブラウザからのアクセスに併せて、何等かログが出ていれば一旦はOKです。

(env_wowhoney) $ tail -f log/access.log
・・中略・・
[2025-03-11 15:30:18+0900] <接続元のIP> <接続先のIP>:8080 "GET /favicon.ico HTTP/1.1" 200 False R0VUIC9mYXZpY29uLmljbyBIVFRQLzEuMQpIb3N0OiAxOTIuMTY4L~

まとめ

本記事では、WOWHoneypot を Ubuntu 上に導入し、基本的な起動から動作確認までを解説しました。

  • 依存ライブラリのインストール:関係するライブラリ(主にPython環境)
  • GitHub からクローン & 起動WOWHoneypot.py を実行し、 Web サーバとして起動
  • ブラウザやツールでアクセス:ブラウザからのアクセスとログの動作を確認

WOWHoneypot は低対話型でシンプルな Web ハニーポットのため、初めてハニーポットを扱う方にも導入しやすいのが魅力です。軽量な構成でありながら攻撃の観測に活用できるので、本格的なハニーポット運用やセキュリティ研究への第一歩として試してみてください。

補足

  • Pythonスクリプト本体のバグ
    最終メンテナンスから5年近くたっているせいか、Python3.12の環境で素直にPythonコードを実行すると、random.seed(datetime.now())のコードが TypeError を引き起こしていたので、以下の通り修正しました。修正前後の diff の結果を残しておきます。
$ diff wowhoneypot.py_ORG wowhoneypot.py
418c418
<     random.seed(datetime.now())
---
>     random.seed(datetime.now().timestamp())
  • Accessログのデコード
    ログはBase64でエンコードされているので、解析のためにはデコードが必要です。Splunkで解析する場合は、DECRYPT2というAppsが便利です。

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?