SecurityHeroblog

結びつける指紋がないとき残るもの — セッションの形

昨日ハニーポットで完結したテルネットセッション4件が、コマンド数31個、ダウンロード1件、滞在時間68秒台まで同じでした。テルネットには接続プログラムの指紋が存在せず、普段使っている束ね方が通用しませんでした。指紋なしで何を手がかりに束ねたのか、その束ねがどこまでしか語らないのかを整理しました。

試験監督をしたことがある人たちが語る話があります。名前を伏せた答案用紙が4枚集まったとき、正解した問題が同じなのはまだしも、間違えた問題と間違え方まで同じなら — 誰が書いたかはわからなくても、4枚が同じところから出てきたということはわかります。筆跡鑑定をする必要もありません。答案用紙の形がすでに語ってくれるからです。

昨日うちのハニーポットから出てきたのが、まさにその4枚でした。

4か所、同じ数字

事実 昨日の完結性上位5セッションのうち 4件 が完全に同じ数値を持ちます。ATK-7B6CFE(221.162.x.x)、ATK-2E51DB(1.165.x.x)、ATK-127D9E(223.80.x.x)、ATK-CC119E(220.134.x.x) — 4つともテルネットログインに成功し、実行したコマンドは 31個、ダウンロードは 1件、分類された意図は 3種(ファイルダウンロード・実行権限付与・ダウンロード後実行)、completeness 値は 16 で同じです。滞在時間も 67.9秒・68.1秒・75.8秒・68.6秒に集中しています。

事実 そしてこの4つの別名は、すべて同じ検体(sha256 a6296a79…、306バイトの POSIX シェルスクリプト)の配送元リストに入っています。

推定 各セッションのダウンロードが1件で、4つの別名がすべてそのリストにあるので、その1件がこのスクリプトである可能性が高いです。ただしデータがセッションと検体を1:1でつないでくれるわけではありません。

ところが指紋がありません

ここで普段使っている方法が行き詰まります。

SSH で入ってくる接続には クライアント指紋 というものが残ります。接続プログラムが最初に差し出す挨拶の構成がツールごとに少しずつ違うので、この値をハッシュで束ねれば「発信元は違っても同じプログラム」ということがわかります。昨日のブリーフのテーマもそれでした — 指紋ひとつで異なる発信元をひとつのツールとして束ねました。

事実 ところが昨日の完結セッション5件は すべてテルネット で、データの指紋・クライアント値がすべて空文字列です。テルネットにはそうした挨拶の手続きがそもそもありません。昨日記録された SSH 指紋クラスタは37個ですが、この4セッションはそのどこにも入りません。

推定 残った軸は2つだけでした。セッションの形(コマンド数・ダウンロード数・意図の組み合わせ・滞在時間)と 同じ検体ハッシュ。名札がなくても、答案用紙の形が同じなら出どころが同じだというところまでは言えます。

事実 ただしここまでです。 セッション形態が同じだということは、同じツール・同じスクリプトを使ったという意味であって、同じ組織・同じ人物という意味ではありません。公開されているボットのソースをそれぞれダウンロードして動かしている、互いに何の関係もない運用者たちも同じ形を残します。同じ問題集を解いた4人が互いを知らないのと同じです。

事実 そして5番目のセッション ATK-B4B2E2(124.221.x.x)はこの束から外れます。意図が5種(偵察が追加され、永続化のための SSH 鍵の埋め込みを含む)とより広く、completeness 17 で昨日の最高値ですが、ダウンロードは 0件 です。

昨日の記録

  1. 事実 ATK-7B6CFE(221.162.x.x) テルネットログイン成功。約67.9秒・コマンド31個・ダウンロード1件。意図3種 — ファイルダウンロード・実行権限付与・ダウンロード後実行。TTY 録画あり(内容は非収録)。テルネットのため SSH クライアント指紋なし
  2. 事実 ATK-2E51DB(1.165.x.x) テルネットログイン成功。約68.1秒・コマンド31個・ダウンロード1件。意図・completeness(16)・ダウンロード数が ATK-7B6CFE と完全に同一。前のセッション終了から約2時間47分後
  3. 事実 ATK-127D9E(223.80.x.x) テルネットログイン成功。約75.8秒・コマンド31個・ダウンロード1件。やはり同一の意図の組み合わせ・同一の completeness。前のセッション開始から約1時間24分後
  4. 事実 ATK-CC119E(220.134.x.x) テルネットログイン成功。約68.6秒・コマンド31個・ダウンロード1件。4番目に同じ形態。間隔は2時間47分・1時間24分・13分24秒と一定ではない
  5. 事実 ATK-B4B2E2(124.221.x.x) テルネットログイン成功。約84.3秒・コマンド17個。意図5種(偵察-システム・ファイルダウンロード・実行権限付与・ダウンロード後実行・永続化 SSH 鍵の埋め込み)なのにダウンロードは0件。completeness 17 で昨日の最高値
  6. 事実 306バイトの POSIX シェルスクリプト(a6296a79…、hxxp://185[.]93[.]89[.]72/wget)が互いに異なる出どころ8か所から9回観測。delivered_by に上記4セッションの別名がすべてあり、残る4か所は ATK-91BE20・ATK-CAD57F・ATK-15AAF6・ATK-215E05
  7. 事実 このハッシュ・この URL は 8/17・8/18(出どころ13か所)・8/19(出どころ7か所)にも同一に記録されている。昨日は8か所 — 4日連続で同じハッシュ、同じ配布元
  8. 事実 389バイトの OpenSSH RSA 公開鍵(a8460f44…)が出どころ8か所から8回観測。URL は未記録。8/16 10か所 → 8/17 12か所 → 8/18 16か所 → 8/19 12か所 → 昨日8か所と5日連続で同一ハッシュであり、出どころ数は2日目の減少
  9. 事実 hxxp://5[.]182[.]210[.]174/ok から1,608バイトの Bourne-Again シェルスクリプトが落とされた(b7728639…、出どころは ATK-10149C 1か所・1回)。8/18・8/19 は同じ URL・同じ1,608バイトなのにハッシュが 6aa5054a… だった — ファイルが差し替えられた
  10. 事実 8/19 に実際のダウンロードが発生した hxxp://31[.]77[.]227[.]121/bins/ 系の URL は、昨日のダウンロード記録に1件もない。この12個の URL は監視指標として引き続き掲載されている
  11. 事実 意図分類 — 偵察(システム)2,100回、実行権限付与172回、ファイルダウンロード43回、ダウンロード後実行41回、永続化(SSH 鍵の埋め込み)9回、痕跡削除8回。「防御の無力化」と「偵察 — ネットワーク」は項目自体がない。全コマンド2,723個のうち偵察(システム)が約77%
  12. 事実 セッション2,607件 / 固有発信元185か所 / ログイン試行2,251回 / コマンド2,723個 / TTY 録画2,185件。ポート2222(SSH)2,310件、ポート2223(テルネット)297件 — テルネットは約11.4%なのに完結セッション5件はすべてテルネット
  13. 事実 SSH クライアント指紋クラスタは計37個。最大は f555226df1963d1d3c09daf865abdc9a(SSH-2.0-libssh_0.9.6)、昨日は IP 8か所・累計155か所、検体の配送なし。リスト9個のうち検体を配送したクラスタは 98ddc5604ef6a1006a2b49a58759fbe6(SSH-2.0-Go、昨日は IP 2か所・累計13か所)ひとつだけ
  14. 事実 8/19 の完結セッション3件を束ねていた指紋 16443846184eafde36765c9bab2f4397(SSH-2.0-Go)は、昨日の指紋リストにない

少数が何度も入ってきた日

事実 昨日はセッション2,607件に対し、固有発信元が 185か所 しかありませんでした。アーカイブ4日間のうちセッションは最も多く、発信元は最も少ないです(8/18 2,027件/249か所、8/19 1,361件/216か所)。発信元1か所あたり約 14.1セッション です。

事実 ログイン試行は2,251回、発信元あたり平均約12.2回です。互いに異なる IP 3か所以上で観測された組み合わせだけを抜き出すとこうなります。

ID パスワード 観測された IP 数
admin admin 14か所
345gs5662d34 345gs5662d34 8か所
root 1234 6か所
root 123456 5か所
root root 5か所
support support 5か所
alex 12345678 4か所
root 3245gs5662d34 4か所
root password 4か所
ubuntu ubuntu 4か所
user user 4か所

事実 そして 440個 の組み合わせは載せていません。互いに異なる IP 3か所未満でしか観測されなかったものです(8/16 934 → 8/17 830 → 8/18 1,388 → 8/19 848 → 昨日440で、5日間のうち最小)。1か所からしか出ていない組み合わせは、どこかで実際に流出した誰かのアカウントである可能性があるため、値は書かず 個数だけ を数えます。

事実 昨日も CVE やエクスプロイトを参照した経路は観測されませんでした。すべて認証情報の経路でした。

残していったもの

sha256
a6296a79f44e21b76604d2d2bbf795d2cf380f70e39d45fbf166707ff3b4a6a4306バイトの POSIX シェルスクリプト · 出どころ8か所・9回 · 昨日のテーマである4セッションの別名がすべて配送元にある · 8/17・8/18・8/19 と同一ハッシュで4日連続
url
hxxp://185[.]93[.]89[.]72/wget上記スクリプトをダウンロードしたアドレス。4日連続で同じ URL
sha256
a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2389バイトの OpenSSH RSA 公開鍵 · 出どころ8か所・8回 · URL 未記録 · 8/16〜8/19 と同一ハッシュで5日連続
sha256
b7728639ed5087692d5cbf214f16c968b0a5a6e7c185b0f07d6a25e645d8dfe51,608バイトの Bourne-Again シェルスクリプト · 出どころは ATK-10149C 1か所・1回 · 8/18・8/19 は同じ URL・同じサイズなのにハッシュが 6aa5054a… だった
url
hxxp://5[.]182[.]210[.]174/ok上記スクリプトをダウンロードしたアドレス。URL とサイズはそのままなのにファイルが変わった
sha256
4af5a5c98ad132095c6fbe7b02c242153a190a01cc321e50a916a0ca46fbaa629バイトの ASCII テキスト · 出どころ1か所(ATK-BECAD3)・8回 · URL 未記録 · 8/18・8/19 にも同じハッシュ
sha256
3631b048df83cc9de347152cebd93e695012381670cb65294967729ac66b9c1d12バイトの ASCII テキスト · 出どころ1か所(ATK-C146AD)・1回 · URL 未記録 · 8/19 にも同じハッシュ・同じ別名

アドレスは わざと壊して書いています(hxxp://、[.])。そのまま貼り付けても接続されません。

事実 hxxp://5[.]182[.]210[.]174/ok の行に目が留まります。アドレスもそのまま、サイズも1,608バイトのままなのに、ハッシュだけが変わりました。同じ場所に置かれたファイルが静かに差し替えられたという意味です。何が変わったのかは内容を収録していないので言えません。

事実 逆に、8/19 に実際のダウンロードがあった hxxp://31[.]77[.]227[.]121/bins/ 系の12個の URL は、昨日は1件も観測されませんでした。この12個は圧縮された検体を展開して初めて出てくるアドレスで、表面には一つもなかった指標です。

推定 あらかじめ抽出して監視リストに載せておいたからこそ、「昨日は静かだった」も観測結果として残ります。監視していなければ、8/19 の復活も、昨日の沈黙もデータにはならなかったでしょう。ただし配布元が止まったのか、こちらにだけ来なかったのかは区別できません。

攻撃段階に移すと

観測された行動を MITRE ATT&CK の技法に移すとこうなります。すべて[推定]です — 私たちが見たのはコマンドであって、攻撃者の意図ではありません。

  • T1110.001Brute Force: Password Guessing推定
  • T1078Valid Accounts推定
  • T1059.004Command and Scripting Interpreter: Unix Shell推定
  • T1082System Information Discovery推定
  • T1105Ingress Tool Transfer推定
  • T1222.002File and Directory Permissions Modification: Linux and Mac推定
  • T1098.004Account Manipulation: SSH Authorized Keys推定
  • T1070Indicator Removal推定

どこかで見た気がするなら

推定 2016年から続く Mirai ボットネット系 と侵入構造が同じです。テルネットの初期認証情報で入った後、ウェブサーバーからシェルスクリプトをダウンロードし、CPU アーキテクチャ別のバイナリを順に試す方式です。昨日監視リストに載った12個のファイル名の規則(parm、parm5、parm64、pmips、psh4、x86_64 …)がこの慣習と一致し、完結セッション5件がすべてテルネット・認証情報の経路であるという点も符合します。ソースが公開されている系統なので、互いに無関係な運用者が同じルーチンを回すことが多いという点も、昨日の観測と方向が同じです。

米国司法省の起訴・有罪答弁の記録が残っており、複数のベンダーによる公開分析レポートがある事案です。ただし 昨日のテーマ — 指紋なしにセッションの形で束ねたということ — は、この事例が検証してくれる部分ではありません。 似ているという言葉で済ませてはいけない場面なので、別途書き添えておきます。

で、何をすべきか

推定 昨日のデータが示す順序です。

  1. テルネットを切ります。 昨日テルネットは全セッションの約11.4%で、4日間のうち最も比率が低いのに、完結セッション5件はすべてテルネットです。セッション数の比率で優先順位を決めると、実際に破られる11%を見逃します。テルネットは認証情報が平文で流れ、鍵認証という選択肢が存在しません — プロトコルを切る以外に方法がありません。
  2. 初期パスワードを変えます。 ログイン試行2,251回、完結セッション5件はすべてログイン成功です。上の表の組み合わせをお使いなら、それがすべてです。
  3. ログイン失敗回数を制限します。 発信元あたり平均14.1セッションなのに、何ひとつ引っかかりませんでした。しかもセッションひとつが1分ちょっとなので、「長くつながっている接続」を基準にした閾値にはそもそも引っかかりません。
  4. 機器から外に出ていく接続を塞ぎます。 アウトバウンドが塞がれていたら、4つのセッションはダウンロード段階ですべて途切れます。ただしこれだけでは足りません — ATK-B4B2E2 はダウンロードが0件なのに、鍵の埋め込み段階まで分類されました。
  5. ~/.ssh/authorized_keys ファイルの変更を通知で受け取ります。 昨日は鍵の埋め込み意図が9回、同じハッシュの公開鍵を残した出どころが8か所です。パスワードをすべて変えても、すでに入った鍵は残ります。
  6. ログを機器の外に保存します。 痕跡削除が8回観測されました。昨日4か所が同じ形だったという事実そのものを突き止められたのは、TTY 録画2,185件が残っていたからです(内容はこの記事に含めません)。

昨日1日の全体

セッション 2,607件
固有 IP 185か所
ログイン試行 2,251回
実行されたコマンド 2,723個
SSH (2222) 2,310件
テルネット (2223) 297件

コマンド2,723個は すべてログインに成功した後に 実行されたものです。

昨日観測された配布元・C2(185[.]93[.]89[.]72、5[.]182[.]210[.]174 など)は C-TAS に通報しました。転送レイヤの成功のみ確認されており、KISA 側の登載可否は別途確認が必要です。

60秒で見る

同じ観測分を短い映像にもしました。

私たちが分からないこと

このブログは、わかっていることとわかっていないことを分けて書きます。昨日の観測分で確認できなかったことです。

  • 4つのセッションが同じコマンドを同じ順序で実行したのか。 数値は完全に一致しますが、コマンドの原文と TTY リプレイがブリーフにありません。確認できるのは、コマンド数・ダウンロード数・意図の組み合わせ・completeness 値が同じだというところまでです。
  • そのダウンロード1件が本当に a6296a79… なのか。 可能性は高いものの、データがセッションと検体を1:1でつないでくれません。
  • 意図の配列が実行順序を意味するのか。 明示されていないため、段階の進行順序としては解釈しませんでした。
  • セッションの形が同じだということが、同じ組織という意味なのか。 違います。同じツール・同じスクリプトを使ったという意味であり、公開ソースのボットをそれぞれ回している無関係な運用者たちも同じ形を残します。
  • ATK-B4B2E2 がダウンロードに失敗したのか、受け取ったが保存されなかったのか。 意図には「ファイルダウンロード」・「ダウンロード後実行」があるのに download_count は0です。8/18(ATK-C17F4E)・8/19(ATK-103570)に続いて3度目の同じ形態です。
  • completeness 値(4セッションが16、ATK-B4B2E2 が17)がなぜその値なのか。 算式がデータにありません。8/18・8/19 にも同じ項目が未解決のまま残っています。
  • コマンド総計2,723個と意図分類の合計2,373回が食い違う理由。 1つのコマンドが複数の意図に分類されるのか、分類されないコマンドがあるのか、説明がありません。
  • 4つのセッションの開始間隔が不規則な理由。 2時間47分 → 1時間24分 → 13分です。一定の周期で回る自動化なのか、複数の発信元がそれぞれの時刻に回ったのかはわかりません。
  • 8/16〜8/19 の出どころが昨日の出どころと重なるのか。 別名(ATK-XXXXXX)はソルトを混ぜて作ります。ATK-CAD57F・ATK-215E05・ATK-10149C・ATK-BECAD3・ATK-C146AD が以前のブリーフにも同じ検体とともに出てきますが、ソルト処理の方式が文書化されていないため、日付をまたいだ同一発信元の根拠としては使いませんでした。
  • したがって公開鍵を埋め込んだ出どころ数(10 → 12 → 16 → 12 → 8か所)を合算することはできず、2日連続で減った理由もデータからはわかりません。
  • hxxp://5[.]182[.]210[.]174/ok のファイルがなぜ変わったのか。 サイズは同じでハッシュだけが違います。内容を収録していないので、何が変わったのかも言えません。
  • hxxp://31[.]77[.]227[.]121/bins/ 系が昨日0件だった理由。 配布元が止まったのか、私たちのハニーポットにその要求が来なかったのかを区別できません。
  • 8/19 の完結セッションを束ねていた指紋 16443846… が昨日のリストにない理由。 指紋リストが上位いくつかだけを収めたものなのか全数なのかが明示されていません(クラスタ総数は37なのにリストは9個です)。
  • 9バイト・12バイトの ASCII テキストが何なのか。 内容がブリーフにありません。4af5a5c9… は配送元が1か所なのに観測は8回です。
  • Discord Webhook URL 1件。 どのセッション・どの検体とつながるのかが明示されていないため、昨日の事実関係には入れませんでした。
  • 同じハッシュの公開鍵を8か所が残した理由。 同じツールを使った結果なのか、鍵を共有した結果なのかはわかりません。8/16〜8/19 にも同じ項目が未解決のまま残っています。
  • 集計数値が1日全体をカバーしているのか。 主要なセッションが UTC 02:15〜07:43 にまたがっているのに、生成時刻は 15:05Z です。観測区間が明示されていません。
  • tty_recordings_available(116)・samples_on_honeypot(36)と集計 TTY 録画(2,185件)の関係。 説明がありません。
  • C-TAS 通報の登載・活用の可否。 転送レイヤの成功のみ確認されました。
  • 背景の脆弱性統計(CVE 4,532件 / CISA KEV 344件 / ランサムウェア連携が確認されたもの95件、EPSS 上位 CVE-2018-13379・CVE-2022-26134・CVE-2021-44228・CVE-2023-4966・CVE-2024-3400)。 KISA セキュリティ公示に基づく背景統計であり、昨日の観測分と直接つながるものではありません。

そしてそもそも 確認する手段がないもの です。これは知らないこととは違います — 推定しないほうが正解です。

  • ASN・ISP — GeoIP・ASN データベースを持っていません。推定しません。
  • 地理位置 — 同じです。IP の地理情報はそもそも帰属の根拠にもなりません。
  • VPN・Tor・クラウドかどうか — 判別する手段がありません。
  • VirusTotal の検知結果 — 未連携です。検体の分類は MalwareBazaar のタグを使います。
  • User-Agent — SSH・テルネットには User-Agent 自体が存在しません。HTTP 攻撃は別ソースです。
  • CVE との関連 — SSH・テルネット攻撃は脆弱性を参照しない場合がほとんどで、昨日の観測分も認証情報を狙ったものでした。

名前を伏せた答案用紙が4枚集まりました。誰が座っていたのかは最後までわかりません。それでも、4枚が同じところから出てきたということはわかります — 指紋ではなく形が語ってくれたからです。今インターネットに開かれている機器も、毎日答案用紙を1枚ずつ出しています。その形を誰も集めて見ないのなら、私たちが知っていることはずっと0のままです。


この記事は 2026-08-20 のハニーポット観測分をもとに作成されました。発信元 IP はブリーフのマスキング形態そのままで表記し、配布アドレスは接続されないよう変形(defang)しています。引用した認証情報は、互いに異なる IP 3か所以上で観測された組み合わせのみを含めており、それ未満でしか観測されなかった440個の組み合わせは個数だけを明かし、値は載せていません。