服は毎回新しく買っていたのに、歩き方は六日目も同じだった
9月3日、五日前にブロックリストへ書き留めておいたファイル四つがそのまま再び入ってきました。ところが指紋を取ってみると三つはアーカイブ18日分に一度もなかった新しいファイルで、たった一つだけが六日目も1ビットたりとも変わっていない同じファイルでした。服を着替えても変わらないものが何なのか、その日のデータが四行で見せてくれました。

遠くから誰かが歩いてきます。顔はまだ見えません。初めて見る服を着ています。
ところがもう分かります。ああ、あいつだ。
服を見て分かったのではありません。歩く格好、カバンを掛ける角度、手を振る癖。顔が見えなくてもそれらが先に到着します。服は変えられますが、歩き方はなかなか変わらないからです。
セキュリティで「このファイルは危険だ」と書き留めておく作業が、まさにこの問題です。私たちは手帳に何を書き留めるかを選ばなければなりません。服の色を書けば明日には外れます。歩き方を書けばもう少し持ちます。
2026年9月3日、私たちのサーバーにファイル四つが入ってきました。五日前にすでに一度書き留めておいた四つでした。ところが指紋を取ってみると三つは初めて見るファイルで、一つだけがそのままでした。
まず耳慣れない言葉を一つだけ解いておきます。ハニーポットはわざと甘く作ってインターネットに出しておいた囮サーバーです。本物の業務はしません。誰が入ってきて何をするのかを丸ごと記録するために開けておいた機械です。以下の数字はすべてそこに刻まれたものです。
サーバーは二台で、性格が正反対です
事実 01番は人が実際に入ってきてコマンドを打てるサーバーです。扉が二つ付いています。一つは SSH、一つは Telnet です。どちらも遠くにあるコンピューターに接続してコマンドを送る方法です。Telnet のほうがはるかに古い方式で、パスワードが暗号化されないまま流れていきます。
事実 02番はドアノブだけ付けておいたサーバーです。誰かが叩けば「ここに扉がありますよ」と返事をするだけです。中には入れません。ですからこちら側にはログイン成功も、コマンドも、パスワードの記録も、そもそも存在しません。 ここで「接触」という言葉は、扉を叩いた回数であって開いた回数ではありません。
事実 ところが02番にも例外がたった一つあります。ADB です。ADB は「Android Debug Bridge」の略で、Android 機器をコンピューターに接続してアプリを入れたり取り出したりする開発者用の通路です。02番で実際にファイルが運び込まれ得る通路はここ一つだけです。
この記事に出てくるファイル四つは、すべて02番の話です。
その日一日を時間順に
時間順に並べるとこうなります。上の四行には時刻がないことをまず見てください。 02番の記録には時計がまったく付いていません。その下からは秒単位まで残っています。
- 事実 センサー02がADBセッション32件から検体4件を確保した。4件すべて出所がATK-5A7674の一箇所で、それぞれ3回ずつ観測された。02のどの項目にもタイムスタンプがなく、一日のうちいつなのかを言えない
- 事実 その4件のうちd7188b8c…(153,208バイト)は8/28・8/30のブリーフに記されたハッシュと完全に同じだ。残り3件(7a48c93c… 46,582B · 608ee011… 235,292B · d4e8c642… 334,752B)のハッシュはアーカイブ18日分に一件もない
- 事実 8/28・8/30の記録のサイズと比べると46,525→46,582(+57) · 239,388→235,292(−4,096) · 334,816→334,752(−64) · 153,208→153,208(0)である。二つ目の差4,096はちょうど4KBだ。この数値が何を意味するのかは元データに根拠がない
- 事実 02のサービス別接触42,714件 + ADBセッション32件 = 42,746件で総計と合う。ADBは全体の0.07%だ。02で投入内容が残ったチャネルはこの日もADB一つだけだ
- 事実 センサー01: ATK-CA5936(130.12.x.x, SSH) ログイン成功。3.844秒、コマンド1個なのに意図は5種、ダウンロード2件(399バイトのOpenSSH秘密鍵43728fbf… · 54バイトASCII 00b6f15c…)。指紋16443846…4397 / SSH-2.0-Go。8/19・8/24・8/25・8/28・8/30のブリーフと別名・指紋・数値が同じだ
- 事実 センサー01: ATK-86979F(212.132.x.x, Telnet) ログイン成功。60.4秒、コマンド22個、ダウンロード11件 — 11件すべて1バイトの空ファイル(01ba4719…)だ。このセッションの意図は「防御無力化」一つだけで、この日の「防御無力化」総計も1回だ
- 事実 センサー01: ATK-9CF939・ATK-93FAFF・ATK-D0D176 の三つのTelnetセッションが10時間にわたって別々に入ってきたが、三つともログイン成功・コマンド17個・ダウンロード0件・意図5種・完結性17で完全に同じだ。継続時間も61.1秒 · 61.9秒 · 70.9秒だ。Telnetなので接続プログラムの指紋は一行も残っていない
- 事実 センサー01の固有出発地457箇所 — アーカイブ18日分の最高だった8/27の442箇所を超え、19日中で最多だ。セッションは2,378件で一箇所あたり5.20回だ。ポートは2223(Telnet)1,381 · 2222(SSH)997でTelnetが58.1%だ
- 事実 意図の漏斗: 偵察—システム488 → 実行権限付与164 → ファイルダウンロード37 / ダウンロード後実行37 → 永続化—SSH鍵の埋め込み10 → 痕跡削除7 → 防御無力化1。段階ごとに3〜4倍ずつ狭まる。意図に分類された745件はこの日のコマンド6,001個の12.4%だ
事実 真ん中の三行をもう一度見てください。61.1秒 · 61.9秒 · 70.9秒。 コマンドは三つとも17個、ダウンロードは三つとも0件です。ところが入ってきた時刻は 02時52分 · 10時00分 · 12時51分と、10時間にわたって散らばっています。
推定 来る時間は合わせていないのに、やることは合っています。 人が座ってやる作業の形ではありません。あらかじめ組んでおいた同じ手順が三回再生されたものと読みます。
ファイル四つ — 三つは新しい服、一つはそのまま
事実 02番がこの日確保したファイルは 4件です。8月28日も4件で、8月30日も同じ4種の構成でした。
ここでハッシュという言葉を解いておきます。ハッシュ(sha256)はファイル全体を計算して取り出した64桁の値です。ファイルの中の文字一つが違うだけで値が丸ごと変わります。ですから「このファイルとあのファイルは同じものか」をこの値で判定します。人の指紋のようなものだと思ってください。
事実 その日の四つの指紋を8/28・8/30の記録と突き合わせてみました。結果はこうです。
| 8/28・8/30のサイズ | 9/03のサイズ | 差 | 指紋(sha256) |
|---|---|---|---|
| 46,525バイト | 46,582バイト | +57 | 7a48c93c… — アーカイブ18日分になし |
| 239,388バイト | 235,292バイト | −4,096 | 608ee011… — アーカイブ18日分になし |
| 334,816バイト | 334,752バイト | −64 | d4e8c642… — アーカイブ18日分になし |
| 153,208バイト | 153,208バイト | 0 | d7188b8c… — 8/28・8/30と完全に同一 |
事実 四行のうち三行の指紋が初めて見る値です。私たちが持っている8月16日から9月2日までの18日分の記録のどこにもありません。
事実 そして一番下の行だけが1ビットも変わっていません。 8月28日から9月3日まで、六日目も同じファイルです。
推定 差の数字に比べるものを付けておきます。+57バイトは日本語で二十数文字ほどの分量です。−64バイトは今しがた言った sha256 ハッシュ値一行(64文字)ぶんです。服でいえばボタン一つ変わった程度です。
事実 真ん中の行の 4,096バイトはちょうど4KBです。きっちり割り切れる値なので目に引っかかります。
事実 ですからここで止まります。この数字がなぜちょうど4,096なのか、私たちは知りません。 元データにその根拠がありません。きっちり割り切れるという事実だけ書き留めておきます。
事実 もう一つはっきりさせておきます。上の表の上下の行が「同じ位置の新しい版」だと元データが言ってくれたことはありません。 私たちが知っているのはたった二つです。サイズ四つの配置が似ているということ、そしてそのうち一つは指紋まで同じだということ。
推定 ところがこれが防御する側にはそのまま問題になります。8月28日に四つの指紋を書き取っておいたなら、9月3日にそのリストは4分の3が外れます。 四行のうち一行だけが今も当たります。
推定 歩き方の話に戻ります。服の色を書き留めておいたわけです。 三着は新しく買って着てきて、一着だけがそのままでした。
名札も毎回違いました
事実 これらのファイルを置いていった出発地の別名も毎回違います。
| 日付 | 出発地の別名 |
|---|---|
| 8月28日 | ATK-F4738A 1箇所 |
| 8月30日 | ATK-E23F05 · ATK-1D7F04 2箇所 |
| 9月3日 | ATK-5A7674 1箇所 |
事実
そしてここで線を一本引きます。 別名(ATK-XXXXXX)は記事と記事のあいだで同じマスキング出発地を指すために付けた目印です。身元ではありません。 別名が違うということはマスキングされた出発地が違うという意味であり、それ以上は言いません。
推定 ですからこの記事では「同じ人物」という言葉は使いません。歩き方が同じに見えるからといって同じ人物とは限りません。同じ塾で同じことを習った人たちかもしれません。 広く出回っている同じツールを、互いに何の関係もない人たちがそれぞれ回しても同じ形が出てきます。
そのファイルが入ってきた扉は全体の0.07%でした
事実 02番サーバーがこの日受けた接触は 42,746件です。
推定 一日をぎっしり埋めて割ると約2秒に一度です。何の宣伝もしていない機械なのにそうです。
事実 そのうちADBセッションは 32件です。全体の 0.07% です。同じ日、VNC(画面共有)ポート一つは 41,705回叩かれました。
推定 比べてみると 1,303倍です。そしてファイルが残ったほうは32件の扉でした。
事実 サイズも比べておきます。この日02番が受け取った4件の合計は 769,834バイトです。同じ日に01番から出た検体6種を全部合わせると 1,158バイトです。
推定 665倍の差です。人が実際に入ってきてコマンドまで打ったサーバーのほうがはるかに軽いのです。8月28日・30日にも同じ非対称がありました。
推定
そしてこの日の4件のうち最も長く変わっていない d7188b8c… は153,208バイトです。同じ日に01番へ降りてきた306バイトのシェルスクリプトを500個ほどつなぎ合わせた大きさです。
事実 ただしこのファイルが何なのかは、この記事では言いません。 02番の記録にはファイルの種類・分類を書く欄がまったくありません。私たちが持っているのはサイズと指紋だけです。
書き取っておくべき値
事実
この日観測されたファイルを以下に写します。値を押すとコピーされます — 読むためにあるのではなく、ブロックリストに入れるためにある値です。アドレスはわざと壊して書きました(hxxp://、[.])。そのままコピーして貼り付けても接続されません。上の四行が02番、下が01番です。そして「アドレス未記録」と書かれた行がいくつあるか数えてみてください。
7a48c93c5cb63a09505a009260d1cca8203285e0c1c6ff5b0df9cbb47082086546,582バイト。センサー02、出所ATK-5A7674の一箇所・3回。配布アドレス未記録。アーカイブ18日分になかった新規ハッシュだ。8/28・8/30の同じ位置のファイルは46,525バイトだった(+57)608ee011537005f368c9731f4c4dee6a247b620cde52908ed0678df28c617971235,292バイト。センサー02、出所ATK-5A7674の一箇所・3回。配布アドレス未記録。新規ハッシュだ。8/28・8/30の同じ位置のファイルは239,388バイトで差がちょうど4,096バイトだ。この差の意味は判断しないd4e8c642ac8485d2ac316f16b5ed2285c93734c62a3e1bc2852a49f3737053c5334,752バイトでこの日最大の検体。センサー02、出所ATK-5A7674の一箇所・3回。配布アドレス未記録。新規ハッシュだ。8/28・8/30の同じ位置のファイルは334,816バイトだった(−64)d7188b8c575367e10ea8b36ec7cca067ef6ce6d26ffa8c74b3faa0b14ebb8ff0153,208バイト。センサー02、出所ATK-5A7674の一箇所・3回。この日の4件のうち唯一アーカイブにあったハッシュだ — 8/28(ATK-F4738A)・8/30(ATK-E23F05・ATK-1D7F04、4回)に同じ値・同じサイズで記録されている。8/28〜9/03の六日間、1ビットも変わっていないa6296a79f44e21b76604d2d2bbf795d2cf380f70e39d45fbf166707ff3b4a6a4306バイトのPOSIXシェルスクリプト。センサー01、出所7箇所・7回(ATK-092C8D · ATK-BA4E6C · ATK-09B617 · ATK-C74CDE · ATK-0E5703 · ATK-0D0AD8 · ATK-1C06A2)。9/02のブリーフが「17日目」と記録したそのファイルなので、この日で18日目だhxxp://185[.]93[.]89[.]72/wget上のスクリプトが置かれていた場所。この日01番のダウンロードのうち外部アドレスが記録された唯一の項目だa8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2389バイトのOpenSSH RSA公開鍵。センサー01、出所5箇所・5回(ATK-A32B09 · ATK-839EB6 · ATK-FDF87F · ATK-DD04E4 · ATK-7EBF4C)。アドレス未記録なので外部からダウンロードしたものではなくセッション内で作られたものと見る。8/16以降、複数の日に同じハッシュで繰り返し登場し、出所は107箇所だった8/30に比べて大きく減った01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b1バイトの空ファイル。センサー01、出所ATK-86979Fの一箇所・11回。この回数はそのセッションのダウンロード11件と正確に一致する — この日の完結性最高のセッションが受け取ったファイル11個がすべてこれだった。8/17・8/22と同じパターンだ43728fbfb98bb39ff61a2db0fc2905bd6937997062b05b9ab8b186fdee18c09a399バイトのOpenSSH秘密鍵。センサー01、出所ATK-CA5936の一箇所・1回。アドレス未記録。8/19・8/23・8/24・8/25・8/28・8/30・9/01と同じハッシュ・同じ別名だ00b6f15c2274420217ed3098a9f5f00545bf1793d7a324fd18a7809cbbf5b12b54バイトのASCIIテキスト。センサー01、出所ATK-CA5936の一箇所・1回。上の秘密鍵と同じ別名・同じセッション時間帯だ。内容は記録にないので何かを判断しない4af5a5c98ad132095c6fbe7b02c242153a190a01cc321e50a916a0ca46fbaa629バイトのASCIIテキスト。文字九つ分の分量だ。センサー01、出所ATK-BECAD3の一箇所・7回。8/23・8/24・8/25・8/30にも同じハッシュがある事実 アドレスが記されている行は十一行のうち一つだけです。残りはすべて「アドレス未記録」です。
推定 防御する側にはこれが厄介です。塞ぐアドレスがなければブロックリストに載せるものもありません。 通報する配布元も残りません。残るのは指紋だけですが、先ほど見たようにその指紋の4分の3は六日で着替えられていました。
事実 そしてこの日の01番の検体6種には実行バイナリが一件もありません。 空ファイル、シェルスクリプト、ASCIIテキスト二種、公開鍵、秘密鍵だけです。
このパスワードをお使いですか
事実 この日のログイン試行は 2,047回です。
推定 一日をぎっしり埋めて割ると約42秒に一度です。ご飯を一食食べる30分のあいだに、四十回以上ドアノブが回されたという意味です。
事実 以下はそのうち互いに異なるIP 3箇所以上で観測された組み合わせだけを抜き出した20種です。
| ID | パスワード | 出発地数 |
|---|---|---|
admin |
admin |
22箇所 |
root |
123456 |
9箇所 |
root |
12345 |
7箇所 |
root |
1234 |
7箇所 |
root |
admin |
6箇所 |
root |
root |
6箇所 |
root |
12345678 |
6箇所 |
root |
vizxv |
5箇所 |
345gs5662d34 |
345gs5662d34 |
5箇所 |
enable\x00 |
linuxshell\x00 |
4箇所 |
root |
default |
4箇所 |
root |
(空のパスワード) | 4箇所 |
root |
7ujMko0admin |
4箇所 |
admin |
123456 |
4箇所 |
root |
Password1 |
4箇所 |
root |
1q2w3e4r |
4箇所 |
root |
111111 |
4箇所 |
root |
123 |
4箇所 |
root |
123123 |
4箇所 |
root |
123456789 |
4箇所 |
事実
いくつかは回数まで残っています。admin/admin は互いに異なる22箇所が 96回、root/admin は6箇所が 77回、root/vizxv は5箇所が 73回、enable\x00/linuxshell\x00 は4箇所が 69回試行しました。パスワードをまったく空にした試行も4箇所から30回ありました。
事実 この日観測された組み合わせはこの20個がすべてではありません。基準を超えなかった組み合わせが594個さらにあります。その594個は個数だけを数え、値は載せていません。
推定 理由はこうです。一、二箇所からしか出なかった組み合わせは、どこかで実際に流出した本物の誰かのアカウントかもしれません。 ここに書き写せば、その人に二度目の被害を与えることになります。ですから数えるだけにします。上に載せた20個はすべて4箇所以上で繰り返された、誰のものでもない工場出荷時の初期値の系列です。
事実 594個は私たちが持っている18日分のうち六番目に大きい値です。前に 8/18(1,388) · 8/25(1,017) · 8/23(1,007) · 8/16(934) · 8/30(897) があります。
推定
表で注目すべきは root/vizxv、root/7ujMko0admin、root/default のような値です。人が作ったパスワードではありません。 機器を作った会社が工場で入れておいた値です。ですから「自分が決めたパスワードではないから安全だ」という感覚が、まさに逆に働きます。管理者が一度もログインしたことのない機器が最も危険です。
国際分類表に対応させると
攻撃者が使った手口には、世界中が共通で使う番号が付いています。MITRE ATT&CK というリストです。以下で ID を押すと原文の説明に飛びます — 私たちの言葉を信じずに直接確認してくださいという意味で付けておきます。
- T1110.001Brute Force: Password Guessing — ログイン試行2,047回、原文引用可能な組み合わせ20種推定
- T1078.001Valid Accounts: Default Accounts — admin/admin(22箇所)、root/vizxv(5箇所)など機器の工場出荷初期値の系列推定
- T1082System Information Discovery — 「偵察 — システム」488回推定
- T1046Network Service Discovery — 「偵察 — ネットワーク」1回推定
- T1105Ingress Tool Transfer — 「ファイルダウンロード」37回、02番のADB検体4件推定
- T1222.002File and Directory Permissions Modification: Linux — 「実行権限付与」164回推定
- T1098.004Account Manipulation: SSH Authorized Keys — 「永続化 — SSH鍵の埋め込み」10回、389バイト公開鍵5箇所推定
- T1070Indicator Removal — 「痕跡削除」7回推定
- T1562Impair Defenses — 「防御無力化」1回(ATK-86979Fセッション)推定
- T1021.005Remote Services: VNC — 02番の接触41,705件 / 出所135箇所推定
- T1021.001Remote Services: Remote Desktop Protocol — 02番の接触568件 / 出所102箇所推定
- T1021.002Remote Services: SMB/Windows Admin Shares — 02番の接触388件 / 出所48箇所推定
事実 十二行がすべて「推定」バッジです。私たちが見たのはコマンドの意図分類と個数であって、攻撃者が自ら明かした目的ではないからです。
事実 そして下の三行にはもう一つ但し書きが付きます。02番はドアノブだけ付いたサーバーなので、ログイン成功という出来事自体がありません。 あの4万件は「叩いた」であって「入ってきた」ではありません。
昨日一日の全体
事実 センサー01(人が実際に入ってこられるほう)基準です。
| 項目 | 2026-09-03 | 比べるもの |
|---|---|---|
| セッション | 2,378件 | 一日で割ると約36秒に一件 |
| 固有出発地 | 457箇所 | アーカイブ19日中で最多。 従来の最高は8/27の442箇所 |
| 一箇所あたりセッション | 5.20回 | 一箇所が平均五回叩いて抜けた |
| ログイン試行 | 2,047回 | 約42秒に一度ずつIDとパスワードを入れてみた |
| コマンド | 6,001個 | 約14秒に一つ |
| ポート2223 (Telnet) | 1,381セッション | 全体の 58.1% |
| ポート2222 (SSH) | 997セッション | 全体の41.9% |
| TTY録画 | 1,597件 | セッションの67.2% |
| コマンド意図の合計 | 745回 | コマンド6,001個の 12.4% |
推定 一番下の行がこの表で最も静かな数字です。コマンド八つのうち七つには意味が付いていません。 私たちが「これは何をしようとしたコマンドだ」と分類できたのは12.4%だけです。
事実 その745個の内訳はこうです。「意図」は打たれたコマンドが何をしようとしたのかを分類した値です。
| 意図 | 回数 |
|---|---|
| 偵察 — システム | 488回 |
| 実行権限付与 | 164回 |
| ファイルダウンロード | 37回 |
| ダウンロード後実行 | 37回 |
| 永続化 — SSH鍵の埋め込み | 10回 |
| 痕跡削除 | 7回 |
| 防御無力化 | 1回 |
| 偵察 — ネットワーク | 1回 |
| 合計 | 745回 |
推定 上から下へ下りていく形を見てください。488 → 164 → 37 → 10 → 7 → 1。 段階ごとに3〜4倍ずつ狭まります。見て回るところまでは全部やるのに、実際に何かを置いていくところまで行くのはごく少数です。
事実 「実行権限付与」は、ダウンロードしたファイルに「これは実行してよいプログラムだ」という印を付ける作業です。Linux ではファイルを受け取っただけでは動きません。印を別に付けなければなりません。
事実 そして「ファイルダウンロード」37回と「ダウンロード後実行」37回が正確に同じ数字です。ダウンロードされたものは例外なく実行段階につながったという意味です。
事実 隣に立てておいた02番サーバーの数字も写しておきます。もう一度言いますが、ここでの「接触」は叩いた回数です。
| サービス | ポート | 接触 | 固有出発地 | 一箇所あたり平均 |
|---|---|---|---|---|
| VNC | 5900 | 41,705件 | 135箇所 | 309回 |
| RDP | 3389 | 568件 | 102箇所 | 5.6回 |
| SMB | 445 | 388件 | 48箇所 | 8.1回 |
| LDAP | 389 | 36件 | 5箇所 | 7.2回 |
| MSSQL | 1433 | 17件 | 12箇所 | 1.4回 |
| ADB | (未記録) | 32件 | (未記録) | 確保検体4件 |
事実 六行の合計が42,746で総計と正確に一致します。一番上と一番下を並べて見てください。41,705件から出たファイルは0個、32件から出たファイルは4個です。
事実 ADBの行に「未記録」が二つあります。この日のサービス別内訳表にADB項目がまったくないため、ポート番号と固有出発地数が分かりません。 8月27日・30日の記録にはありました。ここでの0は「なし」ではなく「書かれていない」です。
事実 VNC側にはもう一つ形があります。この日02番でイベントが最も多い上位7箇所の数字は 7,183 / 7,131 / 6,323 / 5,094 / 5,035 / 5,007 / 5,000 です。ところが8位は182です。
推定 7位と8位のあいだが 27.5倍の崖です。上位7箇所を合わせた40,773件は02番全体の接触の 95.4%、VNC接触の 97.8% です。この七箇所がVNC暴走の実体と見えます。
事実 ただしここで止まります。この七箇所が互いに関連があるのかは分かりません。 数字が似ているというだけで同じ主体だとは書けませんし、確認する手段もありません。そしてこの日ファイル4件を残したATK-5A7674は、この上位リストにありません。
事実 扉を叩いた側がどんな規格で話しかけたのかも写しておきます。プロトコル語彙とは、接続する側が「私はこのバージョンで話します」とまず提案する値です。
- VNCで提案されたバージョンは
003.003が40,826件、003.008が645件です。バージョンが記録された41,471件のうち98.4%が旧バージョンです。234件はバージョンの記録がありません。 - SMB方言は記録された327件のうち
SMB 2.???がたった1件で、残り326件(99.7%)がNT LM 0.12·LANMAN1.0·LM1.2X002·PC NETWORK PROGRAM 1.0のような SMB1以前の語彙です。388件のうち61件は記録がありません。 - RDP接続クッキーは記録された440件のうち433件(98.4%)が、整形の結果
<ip>として残りました。クッキーの位置にIP形式の文字列が入っていたという意味です。残りはhelloが3件と、九文字のランダム文字列と見られる値が4件です。568件のうち128件はクッキーの記録がありません。
推定 SMB1を切ってあるサーバーなら、あの326件は交渉段階でそのまま終わります。そしてクッキーの位置にユーザー名の代わりに接続対象のIPをそのまま入れることは、人ではなくリストをなめる自動化ツールの痕跡として読めます。ただしクッキー内のIP文字列はマスキング対象なので原文を載せず、その値が何を指すのかも判断しません。
ツールはそのままなのにIPは毎日変わります
事実 SSHで入ってくる接続は、プログラムごとに最初の挨拶が少しずつ違います。その挨拶を要約した値をクライアント指紋と呼びます。どのプログラムで接続したのかを指す値です。
事実 この日の指紋クラスタは 39個と集計され、そのうち12種が記録に載りました。12種のこの日の出発地を合わせると 288箇所で、01番の固有出発地457箇所の 63% です。
事実
1位は acaa53e0…(SSH-2.0-OpenSSH_7.4)で、この日 255箇所、累積1,005箇所です。
推定 数字だけ見ると「255箇所が一つの群れだ」と書きたくなります。書きません。この値は広く使われているLinuxディストリビューションにそのまま入っている既定のクライアントの文字列です。互いに何の関係もない人たちが同じ値を持つのが普通です。言えるのは 「255箇所が同じツールを使っている」 までであり、「255箇所が一つの組織だ」 はこのデータでは成り立ちません。
事実
ところが12種のうち実際に検体を残したクラスタは一つだけです。16443846…4397(SSH-2.0-Go)で、この日4箇所・累積19箇所です。そしてこれが上のタイムラインの ATK-CA5936セッションの指紋です。
推定
ここでこの記事の冒頭に戻ります。ツールはそのままなのに、そのツールを持った出発地は毎日変わります。 この日の02番のファイル四つも同じ形でした。名札は ATK-F4738A → ATK-E23F05・ATK-1D7F04 → ATK-5A7674 と毎回違ったのに、四つを一セットで持ってくるということと、そのうち一つの指紋は六日目も同じでした。
推定 顔が毎回変わるなら、顔を書き留めておく手帳は役に立ちません。
事実 そしてこの日はもう一つ限界が付きます。セッションの58.1%であるTelnetには、指紋というものがまったくありません。 SSHは接続するときに互いに挨拶をやり取りしますが、Telnetにはその手順自体がありません。上のタイムラインのTelnetセッション四件で指紋の欄が空いている理由です。
では何をすべきか
推定 「この統制がなかったら」の七つを、この日のデータが最も強く裏付ける順に並べます。
1. 工場出荷時のアカウントとありふれたパスワードをなくす — この日の完結性上位五セッションは例外なくログインに成功したあとに始まります。そして上の表の20種がすべて初期値か数字の羅列です。最も安価な自動化に最初に突破される場所です。
2. パスワードの代わりに鍵で入らせる — この日の試行2,047回はすべてパスワード経路でした。そして 「SSH鍵の埋め込み」が10回観測されました。Linuxサーバーには authorized_keys(許可された鍵のリスト)というファイルがあります。ここに公開鍵が一行入れば、その対を持つ人はパスワードをまったく聞かれずに入ってきます。平たく言えばパスワードなしで開く合鍵を玄関に掛けておくということです。そしてパスワードを変えてもその鍵はそのまま残ります。 この日、検体を一件も残せなかったセッションでさえ、鍵の埋め込み段階には到達しました。
3. 管理ポートをインターネットにそのまま開けておかない — 何の宣伝もしていない機械二台に、一日で 4万5千件台の接触が入ってきました。この日の01番の固有出発地457箇所は19日中で最多です。脆弱性が一つもなくてもこれだけの圧力が常時かかります。 VPNや踏み台ホストの後ろに移せば、この圧力の大部分はそもそも到達しません。
4. Androidデバッグ通路(ADB)を切っておく — この日の要点です。接触では42,746件のうち32件、0.07% です。ところがこの日確保された検体四つはすべてここから出ました。叩かれた回数順に防御の優先順位を決めると、この扉をちょうど一番最後に見ることになります。 開発時に少しだけ点けておいて切らなかったケースが典型的です。
5. サーバーから外へ出ていく接続を制限する — 侵入と武器の搬入は分離されています。この日の「ファイルダウンロード」37回と「ダウンロード後実行」37回がその場所です。互いに異なる 7箇所が同じ外部アドレス(hxxp://185[.]93[.]89[.]72/wget)から同じ306バイトのスクリプトを引っ張ってきました。出ていく通信を既定で塞いでおけば、ログインが突破されても次の段階が切れます。この日の01番の検体合計は1,158バイトだけですが、配布元が生きている限りサイズはいつでも大きくなります — 実際に同じ日、02番は769,834バイトを受け取りました。
6. ログをサーバーの外に別途残す — 痕跡を消そうとする意図がこの日 7回、防御を無力化しようとする意図が 1回観測されました。回数は少ないです。それでも消したあとに入ってきた人は、何が消されたのかすら分かりません。 ログをサーバーの外へ即座に送り出さなければ、事故が起きたあとに復元できるのは「いつ突破されたのか分からない」という事実だけです。
7. 「何回間違えたらロック」だけに頼らない — この項目はこの日、両面です。01番は一箇所あたりのセッションが 5.20回です。一箇所が五回ほど叩いて抜けるので、「5回失敗したら遮断」のような閾値はほとんど発動しなかったでしょう。逆に02番のVNCは一箇所あたり 309回で、上位7箇所は5千件ずつでした。ここに速度制限があれば大部分が切られました。同じ措置がある扉ではほぼ無効で、ある扉では決定的です。 IP一つあたりの閾値だけで防御を設計すると、01番のように広く浅く広がる試行には引っかかりません。
事実
2番に但し書きを付けます。SSH鍵の埋め込みは外へ出ていく接続を必要としません。 5番をいくら締めてもこれは防げません。サーバーをお使いなら ~/.ssh/authorized_keys ファイルを一度開いてみてください。自分で入れた記憶のない行があれば、それが他人の鍵です。 パスワードを変えることでは消えません。
以前にもあったこと
推定 ADB.Miner(2018年)。 Android Debug Bridge(5555/tcp)が開いた機器をスキャンして採掘コードをばらまいたワームです。認証なしで開いたADB通路がファイル投入経路になるという構造が、この日の02番と同じです。ただし同じ系列だと言っているのではありません。 この日の検体の種類・分類が私たちにないため、言えるのは経路の形が同じだというところまでです。(根拠: セキュリティ企業の脅威インテリジェンス公開レポート — 360 Netlab)
推定
Miraiボットネット(2016年)。 Telnetと機器の工場出荷時の既定アカウント辞書でIoT機器を大量感染させた事例で、その後ソースコードが公開されて派生系列が広がりました。この日引用した上位の組み合わせ(root/vizxv、root/7ujMko0admin、admin/admin、root/default)がその公開された既定アカウント辞書と重なる系列です。そしてこの日のセッションの58.1%がTelnetでした。ただし辞書が重なるということはツールの系譜を示唆するだけで、運用主体を特定しません。 (根拠: 米国CISA(当時US-CERT)アラート TA16-288A · 公開されたソースコード)
推定
RealVNC認証方式ネゴシエーション回避の脆弱性 CVE-2006-2369(2006年)。 この日02番で提案された画面共有バージョン41,471件のうち40,826件(98.4%)が 003.003 でした。RFB 3.3は認証方式を選ぶ権限がサーバー側にある旧バージョンなので、この系列の欠陥や認証なしの画面共有サーバーを併せて狙うスキャナーが好みそうな値です。ただしこれはプロトコル定義と公開CVEに基づく背景説明であり、この日観測された接触がこの脆弱性を攻撃したという根拠は私たちにありません。 (根拠: MITRE/NVD登載CVE)
私たちは観測で終わらせません
事実
この日確保した配布アドレス hxxp://185[.]93[.]89[.]72/wget と02番の新規ハッシュ三件は、C-TAS(韓国インターネット振興院のサイバー脅威情報分析・共有体系)へ通報する対象です。
事実 ただし但し書きを付けます。私たちが確認できるのは送信が成功したというところまでです。 受け取る側に実際に取り込まれたかどうかは、この記録では言えません。
私たちが分からないこと
この記事で最も重要な部分です。上に書いたことよりも書けなかったことのほうが多いのです。
- [核心] 02番の記録には時計がまったくありません。 この日の検体4件が一日のうちいつ、何分間隔で入ってきたのかを言えません。タイムラインの02番の行をすべて「時刻不明」にした理由です。
- [核心] 四つをADB経路と見たのは私たちがつなぎ合わせた推論です。 「02番でファイルが運び込まれ得る通路はADBだけで、残りは低対話型なのでファイルを受け取らない」という構造から出たものです。元データがこのダウンロードを特定のサービスに明示的に結びつけてくれたわけではありません。
- [核心] この四つが何なのか分かりません。 02番の記録にはファイルの種類・分類を書く欄がまったくありません。実行ファイルなのかライブラリなのか単なるデータなのかを判断する根拠がなく、サイズと指紋だけで記述しました。
- 三件が8/28・8/30の三件と「同じ位置の新しい版」なのか、まったく別のファイルなのかは分かりません。 元データが両者を結びつけてくれません。私たちが知っているのは、サイズ四つの配置が似ていて、そのうち一つは指紋まで同じだということだけです。サイズの差(+57 / −4,096 / −64)が何を意味するのかも根拠がありません。
- 別名が8/28・8/30・9/03でそれぞれ違うということは、マスキングされた出発地が違うという意味であり、それ以上は言いません。 別名は記事間の照合用の目印であって身元ではありません。
- この日のサービス別内訳表に ADB項目がなく、ポート番号と固有出発地数が分かりません。 収集失敗と明示されたわけではありませんが、8/27・8/30に比べればこの通路の情報量が減ったという事実は書き留めておきます。
- TTY録画の数値が 1,597件と249件の二通りで残っています。二つの値の定義が説明されておらず、何が記録されたもので何が保管されたものなのかを区別できません。
- 「SSH鍵の埋め込み」は10回なのに、389バイトの公開鍵は5箇所・5回です。 二つの数値が合わない理由を元データが説明しません。鍵を埋め込もうとした試みがファイル保存まで至らなかった場合があるように見えますが、根拠はありません。
- 指紋クラスタは 39個なのに記録に載ったのは12種です。リストの出発地の合計288箇所は01番の固有出発地の63%であり、残り169箇所がどう散らばっているのかは分かりません。 そしてこの日のセッションの58.1%であるTelnetには指紋自体が存在しません。
- 399バイトの秘密鍵(
43728fbf…)が攻撃者が仕込んだものなのか、サーバーにあったものを持ち出そうとしたものなのか区別できません。 ダウンロードのリストにありますがアドレスの欄は空です。8月19日から十六日目も同じ状態です。 - 別経路で確保された指標は、この日の事案と結びつけていません。 圧縮を解いて初めて現れる配布アドレス12件、そしてDiscordのWebhookアドレス1件がそれです。この日のダウンロードのどの項目とも結びついていません。Webhookのトークン文字列はそれ自体が悪用可能な値なので本文に写しません。
- 背景統計として持っているCVE 6,607件 · CISA KEV 390件 · ランサムウェア連携確認98件は、KISAセキュリティ公示から抜き出した背景の文脈です。この日のSSH・Telnet・プロトコル交渉の観測と直接結びつかないため、事実関係には入れていません。
- 二つのサーバーの固有出発地の共通部分が分からないため、合算した固有出発地は最大777箇所という上限としてのみ言えます。02番の中でも固有出発地320箇所とサービス別の合計302箇所が異なります — 一つの出発地が複数のサービスにまたがり得るため、単純に足せません。
- C-TAS通報は転送層で成功したというところまでしか確認できません。
- 最後に、ハニーポットは扉を開けてやるように作られたサーバーです。 ログイン成功は「このパスワードが実際の運用サーバーでも通じる」という意味ではなく、**「このパスワードが試されている」**という意味です。
そして以下はそもそも確認する手段がないものです。推定しません。
- ASN・ISP — 関連するデータベースがありません。どの通信会社・どのホスティング帯域なのか確認できません。
- 地理情報 — 同じくありません。そしてIPの地理情報はそれ自体が帰属の根拠になりません。いかなる国家・企業・個人もこの日の攻撃者として名指ししません。
- VPN・Tor・クラウドかどうか — 判別手段がありません。02番の上位7つの出発地の規模が似ている点を解釈しなかった理由もこれです。
- VirusTotal — 連携していません。検体の分類はMalwareBazaarのタグを使いますが、この日の02番の四件にはそのタグすらありません。 四件の悪性かどうかと分類を、この記事では言えません。
- User-Agent — 二つの観測面ともHTTPではありません。01番はSSH・Telnet、02番はSMB・RDP・VNC・MSSQL・LDAP・ADBです。上で引用したRDPクッキー・SMB方言・VNCバージョンはUser-Agentの代替物ではなく、プロトコルが定めておいた交渉語彙です。
- CVEとの結びつけ — SSH・Telnetの攻撃は概ね特定の脆弱性を参照せず、資格情報を使います。02番もプロトコル交渉の段階なので同様です。この日の観測のどこにも特定の脆弱性を結びつけられません。
推定 まとめると、この日はこうです。ドアノブは二つのサーバーで4万5千回以上回されました。実際に物が残った扉は32回開いた扉一つで、そこから出た四つのうち三つは初めて見るファイル、一つは六日目もそのままでした。
推定 冒頭の歩き方の話に戻ります。8月28日に私たちは四つの指紋を手帳に書きました。五日後、その手帳は四行のうち一行しか当たりませんでした。 服は着替えられますから。
推定 だからといって指紋を書くなという話ではありません。書くけれども、それ一つに防御を賭けるなという話です。 四つが一セットで来るということ、そのうち一つは変わらないということ、そしてそれが一日三十二回開く扉から入ってくるということ — こういう形は服より長持ちします。
機械を一台でもインターネットにつないでおられるなら、今日は二つだけやってみればいいのです。点けておいた記憶もない管理・開発者用の通路が開いているか確認すること、そして ~/.ssh/authorized_keys を一度開いてみること。後のほうは数秒で済みます。
観測日は2026年9月3日(UTC)の一日です。出発地IPはブリーフのマスキング形式(130.12.x.x)をそのまま写し、復元していません。配布アドレスは接続されないように変形して記しました(hxxp://、[.])。資格情報は互いに異なるIP 3箇所以上で観測された組み合わせ20種のみを引用し、その基準を超えなかった組み合わせ594種は個数だけを明かして値を載せていません — 一、二箇所からしか出なかった組み合わせは実際の流出アカウントかもしれないからです。ASN・国籍・行為者の帰属は確認手段がないため推定しません。
