おうちではじめる セキュアなハニーポットの戦略
おうちではじめるセキュアなハニーポット戦略
この記事で扱うこと
- ハニーポットとは
- ハニーポットのいいところ
- 自宅でホストする意味
- リスク・課題
- 自宅でセキュアに運用するための戦略
- やってみる
ハニーポットとは
ハニーポットは脆弱性があるように見せかけられたおとりのサーバです。意図的に構築された脆弱性によって、攻撃者の攻撃や動きを観測することができます。例えば以下のような情報が収集できます。
- 攻撃者の送信元IPアドレス(踏み台などでなりすましている可能性も高いです。)
- 攻撃された際のクエリ
- どの脆弱性に対してどの程度攻撃がされたか(統計)
また、ハニーポットはハイインタラクション(対話型)なものとローインタラクションなものがあります。対話型(脆弱性の構築がより巧妙)であるほど、攻撃者の動向や手法について詳しく調査することができます。
一方で、脆弱性の作り込みが高度であるほど、セキュリティ管理のためのバージョンアップや各種設定のコストが増加します。どのようなサービスの脆弱性をホストするか、どのレベルで攻撃を収集するかでホストするハニーポットを決定します。
ハニーポットのいいところ
自分がハニーポットをホストしてみたいと思った理由です。PaaSを利用することが多く、インターネットの治安の悪さを認識していないように思えてきたのでやってみます。
- Webアプリにおける危険性は、開発やバグハントで多く認知する機会がある一方、マシンレベルで攻撃を認知する機会は少ない。
- 最近はクラウドで、AWS ECSやLambda、Azure App Serviceなどサーバレスで実行できるものが多い一方、マシンレベルでのセキュリティリスクを認識していないとそこの利点がわからない。
- インターネットの治安の悪さがわかるらしい。
自宅でホストする意味
高リスクなマシンを自宅でホストすることにどのような意味があるでしょうか。
高コストなクラウドコンピューティング費用を払い続ける必要がない。
ハニーポットに必要なスペックはピンキリです。諸々入っていて便利なT-Pot(この後、立ち上げ方法を解説するサービス)の要求スペックは、16GB/256GB SSDです。
- EC2 r6g.large 46.50$/月 おおよそ 7000円/月
- LightSail 16GBRAM 84$/月 おおよそ 12500円/月
年間にすればラップトップもモニターも買えそうです。しかし、RaspberryPi5 16GBなら、22400円一括払いで手に入ります。
身をもってインターネットの治安の悪さを体感できる。
自宅でホストすると、気が引き締められます。
AWSであれば、東京にあるサーバに攻撃が来ているだけです。面白くありません。自宅ならば、目の前のラズベリーパイに攻撃が来ます。
身をもって攻撃を体感することで、様々な対策の重要性を考えることができるのではないでしょうか。ネットワーク隔離においても、AWSであればVPCを作成するだけですが、自宅回線内での隔離となるとルータの設定が必要になります。
リスク・課題
自宅でハニーポットをホストするための戦略として、どのようなリスク・課題があるか考えなければいけません。
- 絶対に自宅のネットワークを侵害されては困る
最悪、ハニーポットが乗っ取られたとしても、それ以外の私的なネットワークに侵入されては困ります。 - 乗っ取られて外部にご迷惑をおかけする可能性
マルウェアに感染し、ボットネットでDDoSの攻撃に利用される、などがあれば法的な問題に発展する可能性もあります。そうならないよう、設定、アップデートするだけでなく、何かあった際に調査できるログを残しておくことも必要です。 - グローバルIPがない/変わる
集合住宅の回線などではグローバルIPが振ってこない場合があります。また、一般的な回線でも固定IPはオプションの場合が多いのではないでしょうか。DDNSなどを利用することである程度どうにかはなりますね。 - ISPの契約
契約しているISPによっては、トラフィックの増加などを理由に自宅サーバのホストを禁止しています。
自宅で運用するための戦略
5つの対策を取ります。
- AWSのElasticIPへのトラフィックをポートフォワーディングする。
- 自宅回線のグローバルIPがなくても、変わっても運用できます。
- 外出中にハニーポットが乗っ取られた際もEC2を操作することで、ハニーポットへのincomingの通信を遮断できます。
- 管理ポートへのアクセスなど不要なトラフィックはEC2でRejectできます。
- EC2の無料枠で運用できます。(t2.micro)
- EC2でパケットキャプチャを行い、S3を経由して自宅のArkimeで解析できるようにする。
- インシデントが発生した際に即座に解析ができ、解決に役立つ。
- ログはS3に残っているので、ハニーポットが侵害されても残ります。
- S3のストレージ料金は格安です。(月100円以下で運用できています。)
- ArkimeやT-Pot管理画面へのアクセスはCloudFlare Zero Trustを利用する。
- 外出先でも解析ができます。
- 認証のロジックの開発で脆弱性を生むことを避けられます。
- 家庭内ネットワークから隔離する。
- 普段利用しているネットワークとハニーポットを設置しているネットワークから隔離する。
- 普段利用しているネットワークにルータを設置し、新しいセグメントを作成。
- ハニーポットのセグメントから、普段利用しているセグメントへの通信を禁止する。(ローカルネットワークにおける、他のセグメントへの通信はすべて禁止する。)
- すべての通信をVPN経由にする。
- WireGuardのAllowedIPsを0.0.0.0/0,::0にすることですべての通信をVPN経由にする。
- すべての通信がEC2でキャプチャされ、ログに残る。
- 集合住宅共用であろう、IPアドレスから外に出ることがなくなる。
やってみる
詳しい内容についてはそれぞれの記事で解説しています。
1. EC2にWireGuardでVPNを構築する。
ハニーポットとEC2を接続するVPNを構築します。
2. ラズパイでT-Potを構築する。
ラズパイ4 4GBでT-Potを構築するほか、WireGuardサーバでポートフォワーディングします。
3. EC2でキャプチャしたパケットをS3に転送する。
EC2でパケットをキャプチャし、AWSCLIを利用し、S3にアップロードします。
4. ラズパイでArkimeを動かして、S3に保存されたパケットを解析する。
ラズパイ4 4GBでArkimeを構築するほか、AWSCLIを利用してS3のバケットとローカルのファイルを同期します。CronやSystemdを利用して、Arkimeにパケットを取り込みます。
(5). CloudFlaredでArkimeに外出先からアクセスできるようにする。
CloudFlaredの使用方法、ユースケースについては以下の記事で解説しています。CloudFlare Tunnelの設定やAccessの設定について触れています。
※T-Potの管理画面にCloudFlare Tunnelを設定すると、Nginxがヘッダーサイズに関するエラー返す問題については、nginx.confを変更することで対応できます。対応方法は近日中に別途記事を執筆する予定です。
6. Arkimeを使ってみる。
簡単なArkimeの使用方法を紹介しています。SSHのブルートフォース攻撃の検知やSMBに対する攻撃を例にクエリを紹介しています。ハニーポットからのDDoSの検知などは今後追加する予定です。
良いハニーポットライフを!
Discussion