SecurityHeroblog

107か所がそれぞれちょうど一度ずつ — 誰も二度は触らなかった

8月30日、異なる発信元107か所が同じIDと同じパスワード一つを持ってやって来ました。ところが一か所が叩いた回数は平均1.05回でした。昨日は九か所だったものが一日で107か所になり、同じ389バイトの鍵ファイルも同じ107か所から出てきました。

学校の廊下にロッカーがずらりと並んでいます。錠は数字を回して合わせる方式です。

誰かが他人のロッカーの番号を突き止めようとしているとしましょう。一人がずっと張りついて回していれば、すぐにバレます。通りかかった子が見ます。先生が見ます。「同じ子がしょっちゅうその前に立っていれば見つかる」 — 私たちが安全だと感じる理由は、たいていこれです。錠が頑丈だからではなく、長くしがみついていると目につくからです。

ところが、こうしたらどうなるでしょうか。百人が廊下をただ通り過ぎます。それぞれ一度だけ回してみて去ります。誰も二度は触りません。

見ている側からすると、何も起きていません。 誰も怪しい振る舞いをしなかったのですから。

2026年8月30日の一日、私たちのサーバーに残った記録が、まさにその形です。

まず耳慣れない言葉を一つだけ解いておきます。ハニーポットは、わざと隙のある状態にしてインターネット上に出しておく囮サーバーです。本当の業務はしません。誰が入ってきて何をするのかを丸ごと記録するために開けてある機械です。以下の数字はすべて、そこに刻まれたものです。

この日私たちが選んだ主題は、数字三つが重なったことです

事実 この日、私たちのハニーポット01には異なる発信元282か所が入ってきました。そのなかから、こんな値が三つ出てきました。

  • IDとパスワードが同一の文字列 345gs5662d34 / 345gs5662d34 を投げてきた場所 — 107か所、試行112回
  • 389バイトの同一の鍵ファイル(a8460f44…)を残して去った場所 — 107か所、112回
  • 接続プログラムの指紋 f555226df…(SSH-2.0-libssh_0.9.6)が記録された場所 — 106か所

事実 そして112回を107か所で割ると一か所あたり1.05回です。一か所が平均して一度だけ叩いたという意味です。

推定 107・107・106は282か所のそれぞれ37.9%・37.9%・37.6%です。この日訪れた十か所のうち約四か所が同じ側に集まっていました。同じ道具を使い、同じ一覧を読み、同じファイルを持ってきた一つの散らばった群れが一日に押し寄せたものと読みます。

事実 ただしここで一本、線を引かなければなりません。この三つの値は私たちが並べて見たものであって、データが互いに結びつけてくれたものではありません。 生データのなかに「この107か所とあの107か所は同じ場所だ」と書いてくれる欄はありません。規模の似た別々の三つの群れだった可能性を排除できません。これは末尾で改めて取り上げます。

事実 昨日(8月29日)同じ認証情報を投げてきた場所は9か所でした。私たちが確認できる8月16日〜29日の区間で最大値は8月27日の26か所です。この日の107か所は昨日の約11.9倍、これまでの最大値の4.1倍です。

推定 数字がこれだけ跳ねると、普通は「攻撃が激しくなった」と書きます。ところがこの日の要点は強度ではありません。一か所が一度ずつしかやらなかったという点です。廊下を通りながら一度ずつ回してみて去ったのと同じです。規模は大きくなったのに、個々の振る舞いはむしろ大人しくなりました。

一日を時間順に

時間順に並べるとこうなります。行が多いのですが、「観測区間全体」と書かれた上のほうの行の数字が互いにどれだけ似ているかだけ見ていただければ十分です。下のほうの五行は、実際の時刻が刻まれたセッションです。

  1. 事実 ハニーポット01(Cowrie、高対話型): セッション1,623件・ユニーク発信元282か所・ログイン試行1,332回・コマンド1,686個・TTY録画982件。ポート2222(SSH)1,386 / 2223(telnet)237
  2. 事実 認証情報 345gs5662d34/345gs5662d34(IDとパスワードが同じ文字列)が異なる発信元107か所から112回試行された。一か所あたり1.05回だ
  3. 事実 389バイトのOpenSSH RSA公開鍵(sha256 a8460f44…)が出所107か所から112回観測された。取得元アドレスの欄が空になっている — 外部からダウンロードされたものではなく、セッション内で作られたファイルだ(8/17ブリーフと同じ判断)
  4. 推定 上の二つの値(107か所・112回 / 107か所・112回)が完全に一致する。ただしデータが二つの項目を互いに接続してくれないため、これは数値が同じだという意味であって、同じ集団だと確認されたわけではない
  5. 事実 SSH接続プログラムの指紋 f555226df1963d1d3c09daf865abdc9a(SSH-2.0-libssh_0.9.6)がこの日106か所、累計366か所で観測された。昨日のブリーフの累計値は289か所だったので、一日で77か所増えた
  6. 推定 106か所・107か所はこの日のセンサー01全体のユニーク発信元282か所のそれぞれ37.6%・37.9%だ。十か所のうち約四か所が同じ道具・同じ認証情報の側に集まっていたという意味だ
  7. 事実 コマンド意図の分類: 偵察(システム)769 / 実行権限の付与186 / 永続化(SSH鍵の埋め込み)116 / 痕跡の削除114 / ダウンロード後の実行42 / ファイルのダウンロード42 / 防御の無力化1 / 偵察(ネットワーク)1。全コマンド1,686個のうち偵察が45.6%だ
  8. 推定 「SSH鍵の埋め込み」116回と公開鍵ファイルの観測112回が近接する。鍵を埋め込もうとする試みが、ほぼ例外なくファイルの形で残ったという意味に読める
  9. 事実 引用基準(異なるIP3か所以上)を満たさず値を載せなかった認証情報の組み合わせが897種ある。確認区間の最大値ではない(8/18 1,388種、8/25 1,017種、8/23 1,007種)
  10. 事実 文字列「3245gs5662d34」がroot(48か所)・test(5か所)・daniel(4か所)・inventory(4か所)の四つのIDのパスワードとして使われた。「345gs5662d34」はIDとパスワードが同じ形だ。二つの文字列は一文字(「2」)違いだ
  11. 事実 ATK-B0D364(211.53.x.x、telnet)ログイン成功。コマンド22個、ファイル11件保存、TTY録画あり。意図は「防御の無力化」一つだけ — この日全体でこの意図が観測された唯一の1回だ。完結性42でこの日の最高。持ち去られたファイル11件はすべて1バイトの空ファイル(01ba4719…)だ
  12. 事実 ATK-1D684D(154.201.x.x、telnet)ログイン成功。コマンド17個、意図5種(偵察(システム)・ファイルのダウンロード・実行権限の付与・ダウンロード後の実行・永続化(SSH鍵の埋め込み))、保存されたファイル0件、TTY録画あり
  13. 事実 ATK-FA7100(183.208.x.x、telnet)ログイン成功。コマンド31個、意図3種、ファイル1件。この別名は306バイトのPOSIXシェルスクリプト(a6296a79…、hxxp://185[.]93[.]89[.]72/wget)を残した9つの出所のうちの一つだ
  14. 事実 ATK-525D2A(69.165.x.x、telnet)ログイン成功。コマンド17個、意図5種、保存されたファイル0件。四時間前のATK-1D684Dとコマンド数・意図の組み合わせ・ファイル数がすべて同じだ
  15. 事実 ATK-CA5936(130.12.x.x、SSH)ログイン成功。コマンドは1個なのに意図が5種、ファイル2件(399バイトのOpenSSH秘密鍵 43728fbf… + 54バイトのテキスト 00b6f15c…)。指紋16443846…4397 / SSH-2.0-Go。8/19・8/24・8/25・8/28のブリーフと別名・指紋・数値が同一だ
  16. 事実 接続プログラムの指紋9種のうち「検体を実際に置いていった」と表示されているのは16443846184eafde36765c9bab2f4397(SSH-2.0-Go、この日3か所・累計27か所)一つだけだ。この日の発信元1位であるf555226df…(106か所)は、そうではないと表示されている
  17. 事実 ハニーポット02(Beelzebub+adbhoney、低対話型): 接触55,925件・ユニーク発信元250か所。VNC(5900)53,360件が全体の95.4%なのに出所は45か所だけだ — 一か所あたり平均1,186回。逆にRDP(3389)は2,139件に出所127か所で、一か所あたり16.8回だ
  18. 推定 02の上位発信元9か所(各5,064〜7,535件)の合計は53,291件でVNC接触53,360件にほぼ一致し、02全体の接触の95.3%だ。ただしデータが発信元とサービスを接続してくれない
  19. 事実 02のVNCネゴシエーションで相手が提案したバージョンは003.003が53,312回、003.008が33回だ。プロトコルが定めた語彙だけが記録されたものであり、やり取りされた原文はない
  20. 事実 02のRDPクッキーの値はhello 1,458回・<ip> 501回・空の値6回、そして9桁のランダム文字列3種(udzoENWbp・veuBbKTeU・nYXElrYly)がそれぞれ1回だ。SMB方言の提案8種のうちSMB 2.???は2回だけで、残りはNT LM 0.12以下の旧バージョンだ
  21. 事実 02はADBセッション25件から検体4件(46,525・239,388・334,816・153,208バイト、合計773,937バイト)を確保した。同じ日に01が確保した検体6種の合計は1,158バイトだ
  22. 推定 02の検体4件はすべてATK-E23F05・ATK-1D7F04の二つの別名が残したものだ。データがこのダウンロードがADB経路だったと明示してはいないが、02でファイルの内容が残りうる通路はADBだけだ

事実 表のなかで目に留まるのは一番下のセッションです。14:55の3.64秒です。ログインしてコマンドをたった一つ打って出ていったのに、そのなかに偵察・ダウンロード・実行権限・実行・永続化まで五つの意図がすべて入っていました。そしてこの別名・この指紋・この数値は、8月19日、24日、25日、28日の記録とまったく同じです。

推定 人が座ってやる仕事ではありません。あらかじめ組んでおいた一行がそのまま再生されたものと読みます。01:10と05:19の二つのセッションも同様です。四時間離れているのに、コマンド17個、意図5種、保存されたファイル0件が同じです。

107か所が持ってきたメモは、すべて同じものでした

事実 この日のログイン試行は1,332回です。一日いっぱいで割ると約1分に一度、誰かがIDとパスワードを入れてみました。異なる発信元は282か所です。

事実 以下はそのうち異なるIP3か所以上から観測された組み合わせだけを抜き出した20種です。一か所からだけ出てきた組み合わせは、実際にどこかから流出した本物のアカウントである可能性があるため、値を載せません。

ID パスワード 試行した発信元の数
345gs5662d34 345gs5662d34 107か所
root 3245gs5662d34 48か所
admin admin 25か所
root root 6か所
root 12345 6か所
root password 6か所
root Password@123 5か所
root admin 5か所
guest guest 5か所
test 3245gs5662d34 5か所
root 123456 4か所
root ASDzxc123 4か所
root 1234 4か所
root 123 4か所
root Oracle@123456 4か所
root 123456Cc 4か所
daniel danieldaniel 4か所
daniel 3245gs5662d34 4か所
inventory inventory 4か所
inventory 3245gs5662d34 4か所

事実 この20種のほかに、単一・少数の出所からだけ出てきた組み合わせが897種あります。個数だけを記し、値は書きません。 ちなみにこの数字は確認区間の最大値ではありません(8月18日1,388種、8月25日1,017種、8月23日1,007種)。

事実 表をよく見ると、3245gs5662d34 という文字列が四行にわたって出てきます。root(48か所)・test(5か所)・daniel(4か所)・inventory(4か所)のパスワードとして使われました。そして一番上の行の 345gs5662d34 とは一文字(「2」)違いです。

推定 何の意味もなさそうな文字列です。人が思いついて入れる値ではありません。どこかで出回っている一覧をそのまま読んでいるという意味に読みます。一文字違いの双子の文字列が同じ日に一緒に出てくることも、その一覧が複数の版にコピーされて出回っているという側に近いです。

推定 ここでこの日の対比がはっきりします。一方には107か所が共有する組み合わせ一つがあります。もう一方にはそれぞれ一、二か所からだけ出てきた897種があります。廊下でたとえるなら、全員が同じメモを持っている群れと、それぞれ違うメモを持っている群れが、同じ日に同じ廊下を通り過ぎたわけです。

そしてロッカーの内側に一覧を貼っていきました

事実 ログインに成功したあと、最も多く観測された行動の一つが**「永続化 — SSH鍵の埋め込み」116回です。そして同じ日に389バイトの同一の公開鍵ファイル**(a8460f44…)が107か所から112回出てきました。

ここで言葉を二つ解いておきます。

指紋(sha256) は、ファイル全体を計算して取り出した64桁の値です。ファイルのなかの文字が一つ変わるだけで値が丸ごと変わります。だから、二つのファイルが同じか違うかをこの値で判定します。

公開鍵はこうです。Linuxサーバーには authorized_keys(許可された鍵の一覧)というファイルがあります。ここに公開鍵を一行書いておくと、その対を持っている人はパスワードをまったく訊かれずにそのまま入ってこられます。ロッカーでたとえるなら、扉の内側に「この鍵はそのまま通過」と書いて貼っておくのと同じです。そしてここが肝心なのですが、番号を変えても、その紙は貼られたままです。 パスワードは扉の前で確認するものであり、この一覧はサーバーのなかに保存されたものなので、互いに別の代物だからです。

事実 389バイトはショートメッセージ二、三行ほどの大きさです。そしてこのファイルの指紋は8月16日からこの日まで15日連続で同じです。

事実 ところが、このファイルを残していった場所の数はずっと揺れていました。

日付 残していった出所の数
8/18 16か所
8/19 12か所
8/23 6か所
8/25 21か所
8/27 26か所
8/29 9か所
8/30 107か所

事実 この日の107か所は私たちが確認できる範囲で、一日あたりの出所数の最大値です。直前の最大値だった8月27日の26か所の4.1倍です。

推定 そしてこのファイルには取得元アドレスの欄が空になっています。 外部からダウンロードされたものではなく、セッション内で作られたファイルだという意味です。これが防御する側には厄介なところです。ブロックリストに載せるアドレスがありません。外へ出ていく通信をすべて塞いでも、これは塞げません。扉を開けることに成功したその瞬間に、サーバーのなかで完結する出来事だからです。

推定 鍵の埋め込みの意図116回と、実際のファイル112件が近接します。埋め込もうとする試みが、ほぼ例外なくファイルの形で残ったという意味に読みます。

道具の指紋は一日で十二倍になりました

事実 SSHで入ってくる接続は、プログラムごとに挨拶が少しずつ違います。その挨拶を要約した値をクライアント指紋と呼びます。どのプログラムで接続したのかを指し示す値です。

事実 この日の指紋クラスタは43個でした。そのうち f555226df1963d1d3c09daf865abdc9a(SSH-2.0-libssh_0.9.6)はこの日106か所、累計366か所で観測されました。昨日の同じ値はその日9か所、累計289か所でした。一日でその日の発信元数が約11.8倍になり、累計は77か所増えました。確認できる過去の値は8月19日10か所、8月24日19か所、8月29日9か所です。106か所は桁が違います。

事実 ところが、この指紋には逆方向の値が一つ付いています。この日の指紋9種のうち**「検体を実際に置いていった」と表示されているのは 16443846…(SSH-2.0-Go)一つだけであり、そちらはこの日3か所・累計27か所です。発信元1位の f555226df…(106か所)はそうではないと表示されています。**

推定 この値をどう読むべきかが、この日の未解決の点です。もしこの表示が公開鍵のようなテキストファイルまで含めて数えるものだとすれば、「106か所の群れがその公開鍵を埋め込んだ」という読み方は成立しません。定義をブリーフの入力だけからは知ることができないため、読み方を確定せずそのままにしておきます。

事実 そしてもう一本、線を引きます。これはビルドの指紋であって、人の指紋ではありません。 同じディストリビューションに入っている既定のlibssh 0.9.6を使う、互いに何の関係もない人でも同じ値を持ちます。だから「同じ道具」とだけ書き、「同じ組織」とは書きません。

置いていったファイル

書き取っておく値です。値を押すとコピーされます — 読むためにあるのではなく、ブロックリストに入れるためにある値です。アドレスはわざと壊して書いてあります(hxxp://、[.])。そのままコピーして貼り付けても接続されません。

sha256
a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2389バイトのOpenSSH RSA公開鍵。取得元アドレスは未記録。この日の出所107か所・112回。8/16から15日連続で同じハッシュであり、一日あたりの出所数としては確認範囲の最大値(8/18 16か所 → 8/19 12か所 → 8/23 6か所 → 8/25 21か所 → 8/27 26か所 → 8/29 9か所 → この日107か所)。露出した別名はATK-2D4437・ATK-6E9915・ATK-5BEFFC・ATK-BAEAE9・ATK-0C3344・ATK-6FC532・ATK-FBBAD0・ATK-DD0713・ATK-676891・ATK-6D2EF3の十か所で、残りの97か所は別名が露出していない
sha256
01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b1バイトの空ファイル(ファイル種別の表示なし)。出所1か所・11回。この日の完結性1位のセッション(ATK-B0D364)が持ち去ったファイル11件のすべてがこれだ。8/17・8/22のブリーフの「入ってきはしたが配送には失敗した形跡」と同じハッシュ
url
hxxp://185[.]93[.]89[.]72/wget306バイトのPOSIXシェルスクリプトが置かれていた場所。異なる9か所がここから同じファイルを引いていった
sha256
a6296a79f44e21b76604d2d2bbf795d2cf380f70e39d45fbf166707ff3b4a6a4上の場所から取得された306バイトのPOSIXシェルスクリプト。別名9か所(ATK-5168DD・ATK-B72F17・ATK-4572AE・ATK-722BBC・ATK-BFB306・ATK-982D34・ATK-FA7100・ATK-D62131・ATK-3DA3FF)
sha256
43728fbfb98bb39ff61a2db0fc2905bd6937997062b05b9ab8b186fdee18c09a399バイトのOpenSSH秘密鍵。取得元アドレスは未記録。出所1か所・1回(ATK-CA5936)。8/19・8/23・8/24・8/25・8/28と同一ハッシュ・同一別名。このファイルが埋め込まれたものなのか、サーバーから持ち出そうとしたものなのかをデータが区別してくれない
sha256
00b6f15c2274420217ed3098a9f5f00545bf1793d7a324fd18a7809cbbf5b12b54バイトのテキスト。出所1か所・1回(ATK-CA5936)。上の秘密鍵と同じ別名・同じセッションの時間帯。内容はブリーフに含めていないため、何であるかを判断しない
sha256
4af5a5c98ad132095c6fbe7b02c242153a190a01cc321e50a916a0ca46fbaa629バイトのテキスト。取得元アドレスは未記録。出所1か所・8回(ATK-BECAD3)
sha256
0d3c687ffc30e185b836b99bd07fa2b0d460a090626f6bbbd40a95b98ea70257ハニーポット02・取得元アドレスは未記録。46,525バイト。出所2か所・4回(ATK-E23F05・ATK-1D7F04)。ファイル種別の情報なし
sha256
76ae6d577ba96b1c3a1de8b21c32a9faf6040f7e78d98269e0469d896c29dc64ハニーポット02・取得元アドレスは未記録。239,388バイト。出所2か所・4回(ATK-E23F05・ATK-1D7F04)
sha256
a1b6223a3ecb37b9f7e4a52909a08d9fd8f8f80aee46466127ea0f078c7f5437ハニーポット02・取得元アドレスは未記録。334,816バイト。この日の二つのセンサーを通じて最も大きい検体だ。出所2か所・4回(ATK-E23F05・ATK-1D7F04)
sha256
d7188b8c575367e10ea8b36ec7cca067ef6ce6d26ffa8c74b3faa0b14ebb8ff0ハニーポット02・取得元アドレスは未記録。153,208バイト。出所2か所・4回(ATK-E23F05・ATK-1D7F04)

推定 この一覧を上から下へ読むと、アドレスが書かれた行はたった一つだということが見えます。残りはすべて「取得元アドレスは未記録」です。指紋は確保したのに、ブロックリストに載せるアドレスがないという意味です。指紋はファイルがそのままであるときにだけ役に立ちます。なかの一文字を変えるだけで、値が丸ごと変わります。

国際的な分類表に対応させると

攻撃者が使った手口には、世界中が共通で使う番号が付いています。MITRE ATT&CKという一覧です。以下でIDを押すと原文の説明に飛びます — 私たちの言葉を信じず、直接確認してくださいという意味で付けてあります。

  • T1110Brute Force — ログイン試行1,332回。ただしこの日の最大の組み合わせは一か所あたり1.05回の分散型なので、伝統的な総当たりとは形が異なる推定
  • T1078Valid Accounts — 完結セッション5件すべてがログイン成功推定
  • T1082System Information Discovery — 「偵察 — システム」769回推定
  • T1098.004Account Manipulation: SSH Authorized Keys — 「永続化 — SSH鍵の埋め込み」116回 + 389バイトの公開鍵112回推定
  • T1222.002File and Directory Permissions Modification: Linux and Mac — 「実行権限の付与」186回推定
  • T1105Ingress Tool Transfer — 「ファイルのダウンロード」42回、hxxp://185[.]93[.]89[.]72/wget 9か所推定
  • T1059.004Command and Scripting Interpreter: Unix Shell — 「ダウンロード後の実行」42回、POSIXシェルスクリプトの検体推定
  • T1070Indicator Removal — 「痕跡の削除」114回推定
  • T1562Impair Defenses — 「防御の無力化」1回(ATK-B0D364のセッション)推定
  • T1046Network Service Discovery — 「偵察 — ネットワーク」1回。別途、ハニーポット02の五つのサービスへの接触もこの範疇に読めるが、発信元とサービスがデータ上で接続されないため断定しない推定
  • T1021.005Remote Services: VNC — 02の5900ポートへの接触53,360件。接触・ネゴシエーションの段階であり、認証成功は存在しない推定
  • T1021.001Remote Services: Remote Desktop Protocol — 02の3389ポートへの接触2,139件。同様に接触の段階だ推定

事実 十二行のうち最も大きい数字は三番目、偵察(システム)769回です。この日のコマンド1,686個の**45.6%**です。入ってきてやったことの半分近くが「ここがどんな機械なのか」を確認する作業でした。その次が実行権限の付与186回(11.0%)、そして鍵の埋め込み116回と痕跡の削除114回が、ほぼ同じ規模で並んでいます。

推定 鍵を埋め込む回数と痕跡を消す回数が、二つ差で並んでいます。侵入ツールが**「また入ってくる道を作ること」と「入ってきた跡を消すこと」を一まとまり**として実行する形と読みます。

推定 そして十二行すべてが「推定」バッジです。私たちが見たものはコマンドの意図の分類と個数であって、攻撃者が自ら明かした目的ではないからです。

昨日一日の全体

事実 センサー01(高対話型ハニーポット)基準です。

項目 2026-08-30 比べるもの
セッション 1,623件 一日で割ると約53秒に一件
ユニーク発信元 282か所 このうち107か所が同じ認証情報の側に集まっていた
ログイン試行 1,332回 約1分に一度ずつドアノブを回してみた
コマンド 1,686個 約51秒に一つ
ポート2222 (SSH) 1,386セッション 全体の85.4%
ポート2223 (telnet) 237セッション 全体の14.6%
プロトコル SSH 1,386 / telnet 237 上のポートの数値と正確に一致する
TTY録画 982件 —
コマンド意図の合計 1,271回 偵察(システム)769・実行権限186・SSH鍵の埋め込み116・痕跡の削除114・ダウンロード後の実行42・ファイルのダウンロード42・防御の無力化1・偵察(ネットワーク)1

推定 数字が一つ、噛み合わないように見えます。セッションの85.4%がSSHなのに、ログインに成功して実際に作業をしたセッション5件のうち4件はtelnetです。telnetはとても古い遠隔接続の方式です。インターネットの向こうからその機械のコマンド画面を直接叩けるように開けておく通路ですが、パスワードが暗号化されずそのまま流れます。叩いているのはSSH側のほうがはるかに多いのに、なかまで入ってきて何かをしたのはtelnetが多かったのです。

事実 隣に立てておいた二台目のサーバー(センサー02)の数字も移しておきます。こちらは低対話型なので、ログイン成功・コマンド・認証情報がそもそも存在しません。 数えるのは「どの扉を何回叩いたか」だけです。入ってきた記録ではありません。

サービス ポート 接触 ユニーク発信元 一か所あたり平均
VNC 5900 53,360件 45か所 1,186回
RDP 3389 2,139件 127か所 16.8回
LDAP 389 213件 36か所 5.9回
SMB 445 151件 26か所 5.8回
MSSQL 1433 37件 5か所 7.4回
ADB — セッション25件 — 検体4件を確保

事実 全体では接触55,925件、ユニーク発信元250か所です。一日で割ると約1.5秒に一度、何かがこのサーバーを叩いていました。

推定 同じサーバーなのに、二つの扉の前の絵が正反対です。VNC側は45か所が一か所あたり1,186回ずつ張りついていました。一日で割ると一か所が73秒ごとに一度ずつ、一日じゅう同じ扉ばかりつかんでいたという意味です。RDP側は127か所が一か所あたり17回ほど通り過ぎました。少数が一つの扉にしがみつくパターンと、多数が浅くなぞるパターンが、同じ日に同じサーバーへ同時に来ました。

事実 プロトコルが語ってくれたこともあります。VNC接触53,360件のうち53,312件が003.003バージョンを提案しました。 新しいほうの003.008は33件だけです。SMB方言の提案8種のうち SMB 2.??? は2回だけで、残りは NT LM 0.12 以下の旧バージョンでした。RDP接続のクッキーには hello 1,458回、<ip> 501回、空の値6回、そして9桁のランダム文字列三種類(udzoENWbp・veuBbKTeU・nYXElrYly)がそれぞれ1回刻まれました。

推定 ほぼすべてが同じ古いバージョンを提案したというのは、人の手ではなく同じスクリプトが繰り返し叩いた痕跡と読みます。ただしこれらの値は、プロトコルが定めた語彙にすぎません。相手の実際の道具や意図をこの値で断定はしません。

事実 ファイルの大きさで二つのセンサーが大きく分かれました。02はADBセッション25件から検体4件を確保し、合計が773,937バイトです。同じ日に01が確保した検体6種の合計は1,158バイトです。668倍の差です。

推定 01は一日じゅう混み合っていたのに、残ったファイルはほとんどありませんでした。02は静かな通路一つから大きなファイルが四つ出てきました。接触の数で危険を測ると、順序が逆転します。ただしこの4件が何であるかは判断しません。 ファイル種別の情報がありません。

事実 そしてこの日、センサー02では**「一つの発信元が複数のサービスをまとめてなぞったか」を計算できません。** サービス別のユニーク発信元の合計(45+127+36+26+5=239)が全体のユニーク発信元250より小さいため、重なりがあったかどうかを逆算できません。0と書けば偽になるので、値なしとしておきました。

それで何をすべきか

推定 ブリーフが整理した「この統制がなかったら」の六つを、この日のデータが最も強く支える順に置きます。

1. パスワードで開ける扉を、鍵で開ける扉に変える — この日の中心です。セッションの85.4%がSSHでした。SSHはパスワードの代わりに鍵だけで開けるように施錠できるプロトコルです。パスワード認証を切って鍵認証だけを許可していたら、この日107か所が投げたあの組み合わせ112回はすべて扉の前で終わります。 回数を数える防御と、数えること自体を無意味にする防御は違います。

2. 管理ポートをインターネットにそのまま開けておかない — 脆弱性がなくても対象になります。何の宣伝もしていないサーバーに、一日のあいだにRDP 127か所・VNC 45か所・LDAP 36か所・SMB 26か所・MSSQL 5か所が張りつきました。二つのセンサーを合わせると最大532か所です(重なりが分からないため上限です)。管理ポートをVPNや踏み台ホストの後ろへ移すか、接続可能な発信元を制限すれば、この日観測された接触の大部分は認証段階に届くことすらなく消えます。

3. authorized_keys を一度開けてみる — 鍵の埋め込み116回、同じ公開鍵ファイルが107か所から112回です。サーバーをお使いなら ~/.ssh/authorized_keys ファイルを開けてみてください。自分で入れた覚えのない行があれば、それが他人の鍵です。パスワードを変えることでは消えません。 インシデント対応でパスワードだけを初期化してこのファイルを見なければ、「対応完了」の判を押したあとも扉は開いたままです。

4. 既定のアカウントとありふれたパスワードをなくす — 上の表の20種は、異なるIP3か所以上が実際に叩いた組み合わせです。ここに値を載せなかった897種がさらにあります。この辞書は特定の組織を狙って作られたものではなく、どこにでも通用する既定値の寄せ集めです。 標的になるために目立つ必要はない、という意味です。この日観測されたコマンド1,686個はすべてログインに成功したあとに実行されました。

5. サーバーから外へ出ていく接続を制限する — ファイルのダウンロード42回とダウンロード後の実行42回が正確に同じ数字です。ダウンロードされたものは事実上例外なく実行段階につながったという意味です。出ていく通信を既定で遮断し、必要な宛先だけを許可していれば、ダウンロード段階で切れます。実際にこの日の完結セッション5件のうち2件(ATK-1D684D・ATK-525D2A)は、意図の上ではダウンロードまで行ったのに、保存されたファイルは0件でした。

6. 「何回間違えたらロック」だけに頼らない — この日の最大の組み合わせは一か所あたり1.05回です。「IP一つがN回失敗したら遮断」という方式は発動条件に到達すらしません。 あったとしても、このパターンは防げなかった可能性が高いです。ただしこれはこのパターンに限った話です。反対の根拠も同じ日のデータのなかにあります。全体平均は一か所あたり4.7回で、admin/admin は25か所が46回で一か所あたり1.8回です。そしてセンサー02のVNCは45か所が一か所あたり1,186回でした — ここでは頻度制限が明らかに効果を発揮したはずの区間です。 だからこの項目は「捨てろ」ではなく「これだけでは足りない」です。

事実 そして5番に但し書きを付けます。この日の中心だったSSH鍵の埋め込みは外へ出ていく接続を必要としません。 アウトバウンドをすべて塞いでも、これは塞げません。

7. ログをサーバーの外に別途残す — 痕跡を消そうとする意図が114回観測されました。私たちが上のタイムラインを書けるのも、TTY録画982件と突き合わせられるのも、ログがサーバーの外に残っているからです。ログがその機械のなかにしかなければ、消されたあとには、消されたという事実すら残りません。

以前にもあったこと

推定 Miraiボットネット(2016年)。 telnetの既定認証情報の辞書一つで多数の機器を掌握し、CPUの種類ごとに別々に作った実行ファイルをダウンロードさせた事例です。この日観測されたtelnetの完結セッション4件、そして展開しないと現れない指標のCPU別ファイル名のパターン(parm5・parm6・parm7・pm68k・pmips・pmpsl・pppc・psh4・pspc・x86_64)が、形の上では同じ系列です。ただし私たちの観測分がMirai系列だと断定する根拠はありません — 検体に分類を付ける手段(VirusTotal)がありません。(根拠: 米国US-CERT/CISAアラート TA16-288A、公開されたソースコード)

推定 FritzFrog P2P SSHボットネット(2020年)。 SSH認証情報の総当たりで入り込んだあと、authorized_keys に自分の公開鍵を追加して入り続ける道を確保した事例です。この日の鍵の埋め込み116回と、同じハッシュの389バイトの公開鍵が107か所から出てきたパターンが、この手法と重なります。手法の類似であって、同じキャンペーンだという根拠はありません。 (根拠: セキュリティ企業の公開レポート — Guardicore/Akamai)

私たちが分からないこと

この記事で最も重要な部分です。上に書いたことよりも、書けなかったことのほうが多いのです。

  • [核心] 107か所・107か所・106か所が同じ集団だという確認はありません。 私たちが三つの値を並べて観察したのであって、データが互いに結びつけてくれた事実ではありません。異なる三つの集団の規模がたまたま似ていた可能性を排除できません。
  • そして上の推定と衝突する根拠が、同じデータのなかにあります。 指紋 f555226df…(106か所)は「検体を置いていった」ではないと表示されています。この表示の正確な定義(悪性の実行ファイルだけを数えるのか、公開鍵のようなテキストファイルも含むのか)を、ブリーフの入力だけからは知ることができません。後者を含むのであれば、「この群れが公開鍵を埋め込んだ」という読み方は成立しません。
  • 公開鍵 a8460f44… の出所が26か所(8/27) → 9か所(8/29) → 107か所(この日) と動いた理由を、データで説明できません。キャンペーンが大きくなったのか、私たちの収集範囲が変わったのか、ボットネットの世代が入れ替わったのかを区別する根拠がありません。
  • 指紋クラスタの総数は昨日の45個からこの日43個へ減ったのに、同じ日の最大クラスタの発信元数は9か所から106か所へ増えました。 多様性が減って一方に偏ったのか、集計基準が違うのかを判断できません。
  • 公開鍵のハッシュが同じだということは**「同じファイル」という意味であって「同じ運用者」という意味ではありません。** この鍵の対になる秘密鍵を誰が、何人が握っているのかはデータにありません。
  • 399バイトの秘密鍵(43728fbf…)が攻撃者が埋め込んだものなのか、サーバーにあったものを持ち出そうとしたものなのか区別されません。 ダウンロードの一覧にあるのに、取得元アドレスは空です。8月19日のブリーフから十二日目、同じ状態です。
  • TTY録画の数が982件と205件の二つの値で異なって記されています。 録画されたもののうち実際に閲覧可能なものが205件なのか、二つの値が別のものを数えているのか、説明がありません。
  • センサー02で一つの発信元が複数のサービスをまとめてなぞったかを計算できません。 サービス別のユニーク発信元の合計(239)が全体のユニーク発信元(250)より小さく、重なりを逆算できません。
  • センサー02の検体4件がADBの通路から入ってきたものなのかをデータが明示していません。 02でファイルの内容が残りうる通路がADBだけだという定義に寄りかかった推論です。またこの4件はファイル種別の情報がないため、何であるかを判断しません。
  • 別途確保されたDiscord Webhookのアドレスがこの日のセッション・検体のどれと結びつくのか分かりません。 この日のどのダウンロードのアドレス欄にも現れなかったため、この日の事案と結びつけて記述しませんでした。
  • 展開しないと現れない配布アドレス12件は、この日観測された hxxp://185[.]93[.]89[.]72/wget とホストが異なります。 同じキャンペーンかどうかを確認する手段がありません。
  • 背景統計として持っているCVE 6,580件・CISA KEV 388件・ランサムウェア確認98件は、KISAセキュリティ告知に基づく背景の文脈です。この日のハニーポット観測と結びついたものではありません。SSH・telnetの経路でCVEを参照した形跡は観測されていません。
  • C-TASへの申告は転送レイヤーで成功したというところまでしか確認されません。 KISA側に実際に取り込まれたかどうかは別途の確認が必要です。
  • 別名(ATK-XXXXXX)はブリーフのあいだで同じマスキング発信元を指し示す目印にすぎず、身元ではありません。 ATK-CA5936のように十日以上にわたって再び現れる別名も、そのあいだにそのアドレスを使う主体が変わった可能性を排除できません。
  • 二つのセンサーを合わせたユニーク発信元532か所は上限です。 同じIPが両方に現れたかどうか分かりません。
  • 最後に、ハニーポットは扉を開けてやるように作られたサーバーです。 ログイン成功は「この認証情報が実際の運用サーバーでも通用する」という意味ではなく、**「この認証情報が試されている」**という意味です。

そして以下は、そもそも確認する手段がないものです。推定しません。

  • ASN・ISP — 関連するデータベースがありません。どの通信事業者・どのホスティング帯域なのかを確認できません。
  • 地理情報 — 同じくありません。そしてIPの地理情報は、そもそも帰属の根拠になりません。いかなる国・企業・個人も、この日の攻撃者として名指ししません。
  • VPN・Tor・クラウドかどうか — 判別する手段がありません。282か所・250か所のうち、どれが経由地でどれが起点なのかを区別できません。
  • VirusTotal — 連携されていません。この日確保した検体10種(01の6種 + 02の4種)にマルウェアの系統名を付けることができません。検体の分類はMalwareBazaarのタグを使います。
  • User-Agent — 二つの観測面ともHTTPではありません。01はSSH・telnet、02はSMB・RDP・VNC・MSSQL・LDAP・ADBです。
  • CVEとの結びつき — SSH・telnetの攻撃はほとんどが特定の脆弱性を参照せず、認証情報を使います。02もプロトコルのネゴシエーション段階なので同様です。この日、いかなるCVEもこの観測と結びつきません。

推定 まとめると、この日はこうです。セッション1,623件、ログイン試行1,332回、コマンド1,686個。そして異なる107か所が同じID、同じパスワード、同じ鍵ファイル一つを持ってやって来ました。一か所あたり1.05回ずつです。

廊下に立って長くつかんでいる人はいませんでした。みな通り過ぎながら一度ずつ回してみて去りました。「同じ子がしょっちゅう触っていれば見つかる」という監視は、この日一度も発動する機会がありませんでした。

ですから、この日のデータが指し示しているのは、監視を細かくしろという側ではありません。数字を数えることと、扉を変えることは別の仕事です。 サーバーを一台でもお持ちなら、今日、二つだけやってみればいいのです。~/.ssh/authorized_keys を一度開けてみること、そしてパスワードで開ける扉を鍵だけで開けるように施錠すること。前者は数秒で済みます。

観測日は2026年8月30日(UTC)の一日です。発信元IPはブリーフのマスキング形式(211.53.x.x、130.12.x.x)をそのまま移したもので、復元していません。配布アドレスは接続されないよう変形して記しました(hxxp://、[.])。認証情報は異なるIP3か所以上から観測された組み合わせ20種だけを引用し、その基準を満たさなかった組み合わせ897種は個数だけを明かして値を載せていません。ASN・国籍・行為者の帰属は確認する手段がないため推定しません。