はじめに
始めまして。サイオステクノロジーのNです。
皆さんはハニーポットについてご存知でしょうか?
Wikipediaには以下のように書かれています。
ハニーポット は、コンピュータセキュリティにおいて、悪意のある攻撃を受けやすいように設定した機器を、おとりとしてネットワーク上に公開することにより、サイバー攻撃を誘引し、攻撃者の特定や攻撃手法を分析する手法、あるいは、そのような用途で使用するシステムをいう。
ざっくり言うと「わざと脆弱性のあるサーバを用意し、攻撃を観察するもの」です。
以下の図のようなハニーポットの環境を外部に公開したとします。
ハッカーはインターネットを介してAzureのVMに攻撃をします。
VMで構築したハニーポットがハッカーからの攻撃の情報を収集します。
その内容を管理者(ハニーポットを作成した人)がどんな攻撃がきたか確認できます。
今回はそんなハニーポットを構築編と調査編の2本立てでお送りします。
今回の構築作業ではハニーポットの構築作業について説明します。次回、調査編では実際にハニーポットで収集した攻撃について見ていきたいと思います。
使用するハニーポットについて
ハニーポットにも様々な種類はありますが、今回はT-PotというハニーポットをAzureのVMに構築していきます。
URL: https://github.com/telekom-security/tpotce
T-Podとは
T-Podは様々なハニーポットが詰まったハニーポットの集合体です。
今回使用したバージョン: T-Pot 20.06.2では19個ものハニーポットが含まれています。
細かい動作等に関しては以下の図が参考になります。
全部は紹介しきれないため、攻撃が多かった3つのハニーポットについて解説します。
Dionaea
URL: https://github.com/DinoTools/dionaea
Dionaeaは日本語でハエトリグサという意味になります。
攻撃者からマルウェアのコピーを手に入れるための、マルウェア収集用のハニーポットになります。
T-Potでは以下のポートをListenしています。
- 42/TCP
- 81/TCP
- 135/TCP
- 445/TCP
- 1433/TCP
- 1723/TCP
- 1883/TCP
- 3306/TCP
- 5060/TCP
- 5061/TCP
- 27017/TCP
- 69/UDP
- 5060/UDP
Honeytrap
URL: https://github.com/armedpot/honeytrap
TCPとUDPの各種ポートに対するハニーポットで、各種サービスに対する攻撃を観察することができます。
どこかのポートをListenしているわけではなく、他のハニーポットでListenしていないPortにアクセスが来た場合、動的に動作します。
Cowrie
URL: https://github.com/cowrie/cowrie
SSHとTelnetに特化したOSSのハニーポットになります。
T-Potでは以下のポートをListenしています。
- 22/TCP
- 23/TCP
ハニーポットの構築
先にSSHの鍵を用意しておきます。
Terminalやコマンドプロンプトで以下のようにしてSSHの鍵を作成します。
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/tpod
鍵の準備ができたらAzureの準備をしていきましょう。
Azureのポータル画面からVirtual Machinesを選択し、作成していきます。
使用したいサブスクリプションとリソースグループを作成したら任意の仮想マシン名、地域などをつけます。ここでは仮想マシン名は「t-pod」、リージョンは「米国西部2」としました。
可用性オプションはなしで、イメージは公式インストール手順で推奨されている「Debian 10 (Buster)」にしました。
t-podの推奨スペックは8 GBRAM、SSD128GB以上とされていたため、インスタンスサイズは「D2s_v3(v2cpu、8GBRAM)」を選択しましたが、後々メモリが足らず16GBに変更しました…。
お金に余裕がある場合は16GB以上のRAMを積んだものを使用するのが良いかと思います。
管理者アカウントの認証の種類を「SSH 公開キー」にし、任意のユーザ名を入力します。
SSH公開キーのソースを「既存の公開キーを使用」にし、SSH公開キーに先ほど作成した「 ~/.ssh/tpod.pub」の内容を貼り付けます。
パブリック受信ポートはなしで次へ。
ディスクは今回「Standard SSD」を使用します。
ネットワークは先にグローバルIPのみ許可したネットワークセキュリティグループを作成しておきましょう。
管理、詳細、タグは必要であれば設定し、作成および確認から仮想マシンを立ち上げましょう。
作成が終了したらディスクサイズを変更するため一度マシンを停止します。
停止し終えたら左の欄の設定からディスク、「t-pod_OsDisk_xxxxxxxxxx」をクリックします。
次に「サイズ及びパフォーマンス」からディスクサイズを「128GiB」に変更します。
完了したら仮想マシンを起動させましょう。
ターミナルでの操作
お好きなターミナルで、SSHしましょう。私はWSLを用いてSSHしました。
$ ssh -i ~/.ssh/tpod azure-user@xxx.xxx.xxx.xxx
xxxの部分は仮想マシンのグローバルIPに置き換えてください。
ここからはGitHubに公開されている公式手順の作業です。
SSHができたら次にgitをインストールします。
azure-user@t-pod:~$ sudo su - azure-user@t-pod:~# apt update && apt upgrade -y azure-user@t-pod:~# apt install -y git
その後公式の手順に沿ってインストールをしていきます。
azure-user@t-pod:~# git clone https://github.com/telekom-security/tpotce Cloning into 'tpotce'... remote: Enumerating objects: 11472, done. remote: Counting objects: 100% (242/242), done. remote: Compressing objects: 100% (160/160), done. remote: Total 11472 (delta 105), reused 174 (delta 73), pack-reused 11230 Receiving objects: 100% (11472/11472), 67.35 MiB | 32.98 MiB/s, done. Resolving deltas: 100% (6243/6243), done. azure-user@t-pod:~# cd tpotce/iso/installer/ azure-user@t-pod:~/tpotce/iso/installer# ./install.sh --type=user
しばらくするとインストールタイプを選択画面が表示されます。
今回は「Standard」を選択しました。
その後、ハニーポット用のユーザー名とパスワードを入力する画面が表示されるので適時入力します。
入力が終わるとインストールが走っていきます、5~10分くらいかかる感じでしょうか。
コーヒーでも入れて待ちましょう☕
インストールが終わると自動的に再起動され、SSHが切断されます。
今回使用しているT-Podは管理画面に64294、SSHに64295、Web UIに64297のTCPポートを使用するため、これら以外のポートを開けてあげましょう。
VMインスタンスに紐付けているネットワークセキュリティグループを変更します。
以下の画像のようにして、ポートを開放をするのが良いかと思います。
ここまでできたらSSHと管理画面にアクセスしてみましょう。
SSH
xxxの部分は仮想マシンのグローバルIPに置き換えてください。
$ ssh -i ~/.ssh/tpod azure-user@xxx,xxx,xxx,xxx -p 64295
もしくは~/.ssh/configに書くことでもアクセス出来ます。
Host tpod HostName xxx.xxx.xxx.xxx User azure-user Port 64295 IdentityFile ~/.ssh/tpod
$ ssh tpod Linux peculiarburglar 4.19.0-17-cloud-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64 Last login: Tue Aug 31 16:04:45 2021 from xxx.xxx.xxx.xxx [azure-user@peculiarburglar:~]$
ターミナルでは以下のようにして現在起動しているコンテナを確認出来ます。
[azure-user@peculiarburglar:~]$sudo /opt/tpot/bin/dps.sh
管理画面
お好きなブラウザで「 https://xxx.xxx.xx.xxx:64297 」と入力します。
今回はFireFoxを使用しました。
ブラウザで 警告: 潜在的なセキュリティリスクありと表示されますが、気にせず「詳細情報」から「危険性を承知で続行」を押します。
するとログインが求められるのでtpodをインストールした際のユーザ名とパスワードでログインします。
ログインし、以下のような画面がでれば構築は完了です!
最後に
今回は構築編を書かせていただきました。
次回はどんな攻撃が来たか、簡単にまとめてみたいと思います。
みなさんも構築してハニーポッターになってください!