9. ハニーポット
9.1. ハニーポットの基礎
9.1.1. ハニーポットとは
ハニーポットは不正な攻撃者の行動・手法などを観察/分析する受動的/能動的な目的で設置される罠システムのこと。 仮想または実際のコンピューターシステムやネットワークを用いて構築する。
ハニーポット設置の目的は以下の通り。
- 攻撃検出 ... ハニーポットは攻撃者の活動を引き寄せ、検出し、その情報を解析/分析する
- 研究と分析 ... ハニーポットを攻撃のトレンドや攻撃手法の研究に使用する。
9.1.2. ハニーポットの分類
ハニーポットはその動作環境と仕組みの組み合わせによって種別を分類することができる。
動作環境ではサーバで動作するサーバ型、クライアントで動作するクライアント型がある。 仕組みでは実在環境を用意する高対話型、システムエミュレートする低対話型がある。
- 高対話型ハニーポット ... 実際のOSやアプリケーションを利用し、そこに残存している脆弱性などをそのまま不正攻撃者に対して弱点として見せる形式のハニーポット
- 低対話型ハニーポット ... 特定のOSやアプリケーションをエミュレーションして監視する形式のハニーポット
9.1.3. ハニーポットの種類
高対話型ハニーポットの特徴と種類
高対話型ハニーポットの特徴は以下の通り。
- 攻撃者に関する情報が多い
- システムやネットワークの構築に手間がかかる
- 実際にOSやアプリケーションが攻撃を受けてしまう可能性がある
高対話型ハニーポットは不正な攻撃者に関して詳細な情報を取得・分析したい場合や、効果的な対策を講じたいような場合に向いている。 また高対話型ハニーポットは以下の通り。
種類 | 説明 | URL |
---|---|---|
Dionaea | 脆弱性を模したサービスを展開して、マルウェアを収集するためのハニーポット | https://github.com/DinoTools/dionaea |
Honeyd | 仮想ネットワーク内で複数のハニーポットを展開 | https://github.com/DataSoft/Honeyd |
Glastopf | Webアプリケーション型のハニーポット | https://github.com/mushorg/glastopf |
低対話型ハニーポットの特徴と種類
低対話型ハニーポットの特徴は以下の通り。
- システムやネットワークの構築が比較的簡便
- 得られる情報量に限りがある
また低対話型ハニーポットは以下の通り。
種類 | 説明 | URL |
---|---|---|
Cowrie | 中規模の対話型SSHとTelnetのハニーポット。ブルートフォース攻撃やシェルの対話が記録されるようになっている。 | https://github.com/micheloosterhof/cowrie |
Honeytrap | ハニーポットの実行や監視をするためのハニーポット | https://github.com/honeytrap/honeytrap |
WOWHoneypot | Webハニーポット。日本製 | |
Kippo | SSHハニーポットで攻撃者がSSHにアクセスしようとする試行を記録する | https://github.com/desaster/kippo |
Snort | ネットワーク侵入検知システム兼ハニーポット | |
Thug | Webハニーポット | https://github.com/buffer/thug |
9.1.4. ハニーポットの分類ごとの特徴
サーバ型×低対話型ハニーポット
サーバ上にハニーポット環境を構築し、攻撃者からの攻撃を待ち受けるタイプのハニーポット。
特徴は以下の通り。
- 脆弱なサーバ環境をエミュレートしてログを記録しているため、不正なファイルを設置されたり、ファイルを盗まれたりする可能性が低い
- ハニーポット自体に脆弱性があった場合は攻撃を受ける可能性がある
- ハニーポットを検出する仕組みによって攻撃検出を回避される場合がある
サーバ型×高対話型ハニーポット
サーバ上に故意に脆弱な環境を構築し重要そうなファイルなどを設置し攻撃を待ち受けるタイプのハニーポット。
特徴は以下の通り。
- 低対話型のものよりも攻撃ログが正確に記録されやすい
- 攻撃された後のリカバリができるようにアウトバンド通信の制限や設定を適切にする必要がある。
- ハニーポット運用玄人向けの構成
クライアント型×低対話型ハニーポット
通常のPC上にインストールしたハニーポットソフトウェアを利用してさまざまな環境(ユーザーエージェントなど)をエミュレートして悪性のウェブサイトにアクセスしたり、脆弱なソフトウェア(Flash や Adobe Acrobat Reader など)のエミュレートをしてファイルを開き、どのようにマルウェア感染をするかなどのログを取得するタイプのハニーポット。
特徴は以下の通り。
- 脆弱なサーバ環境をエミュレートしてログを記録しているため、不正なファイルを設置されたり、ファイルを盗まれたりする可能性が低い
- ハニーポット自体に脆弱性があった場合は攻撃を受ける可能性がある
クライアント型×高対話型ハニーポット
故意にセキュリティパッチの当たっていないOSやソフトウェアを利用し、悪意のウェブサイトにアクセスしたり、悪性のファイルを開いたりするタイプのハニーポット。
運用のためには通常は利用していないPCを利用し、現状回復が容易にできるようにしておく必要がある。
9.1.5. ハニーポット運用の目的
ハニーポット運用のためには、まずは目的を明確にしてからハニーポットを選定する必要がある。 それは取得したい情報の種類や目的を明確化することにより、より効果的な運用を行うためである。
ハニーポット運用の目的と運用例は以下の通り。
例 | 運用対象 |
---|---|
ランサムウェアwanna cryが現在も活動しているか知りたい | ・Wannacry(pt)が観測できるよう改良された Dionaeaハニーポットを利用する |
Wordpressを運用しているため、Wordpressへの攻撃を観測したい | ・Dockerコンテナ上で動くHoneyPressハニーポットを利用する |
Wordpressプラグインとして利用できるwp-smart-honeypotを利用する | |
Apache Struts2を利用しているサービスを運用しているため、Struts2への攻撃を監視したい | CVE2017-5638 の脆弱性を悪性した攻撃を検出する StrutsHoneypotを利用する |
2016年に流行したIOTボットの活動の調査をしたい | telnet/sshへの攻撃観測できるCowrieハニーポットを利用する |
MongoDBなどのデータベースを狙った攻撃を知りたい | MongoDB-Honeyproxyを利用する |
目的が複数あるので複数のハニーポットを使用したい | 複合ハニーポットのT-Potを利用する |
9.2. 主要なハニーポット一覧
9.2.1. 低対話ハニーポット
Dionaea
攻撃者からマルウェアのコピーを手に入れることを目的としたマルウェア収集用ハニーポット。
可視化にはDionaeaFRを導入する。
提供サービスは以下の通り。
ポート | サービス |
---|---|
21/TCP | FTP |
42/TCP | NameServer |
80/TCP | HTTP |
135/TCP | MSRPC |
443/TCP | HTTPS |
445/TCP | Microsoft-ds |
1433/TCP | MSSQL |
3306/TCP | MySQL |
5060/TCP | SIP |
5061/TCP | SIP-TLS |
ログなどは以下のディレクトリに保存される。
ディレクトリ | 説明 |
---|---|
/opt/dionaea/binaries/ | マルウェアが配置されるディレクトリ |
/opt/dionaea/bistreams/ | 攻撃者からの通信の記録が保存されるディレクトリ |
/opt/dionaea/log/ | Dinaeaのログが保存されるディレクトリ |
/opt/dionaea/rtp/ | SIP のセッションデータが記録される |
/opt/dionaea/wwwroot/ | Webドキュメントルート |