SecurityHeroblog

叩いた先は109か所のまま、ベルだけ24倍鳴った

9月10日、リモートデスクトップのポートを叩いた記録が1日で34,811件でした。8月26日から9月8日までの14日分をすべて足した21,483件の1.62倍ですが、叩いてきた先は109か所で普段の範囲内でした。訪ねてきた先が増えたのではなく、1か所が319回ずつ押した日の記録です。

家の電話に不在着信が300件たまっているとしましょう。

これを読み解く方法は二つあります。300人が1回ずつかけたのかもしれませんし、3人が100回ずつかけたのかもしれません。不在着信の数字だけ見れば、どちらの場合も同じ300件です。

通話数を数えてはいけません。番号を数えてこそ区別がつきます。

昨日、私たちのサーバーで起きたことがまさにこれです。ベルは24倍多く鳴ったのに、かけてきた番号は109個で普段と同じでした。


まず、ベルが何回鳴ったのか

事実 私たちはハニーポットサーバーを2台動かしています。ハニーポットはわざと開けておいて誰が何をするのか見守るおとりサーバーです。そのうちの1台(センサー02)のリモートデスクトップポートを叩いた記録が昨日34,811件でした。リモートデスクトップは家から会社のコンピュータ画面をそのまま呼び出すあの機能で、ポート番号は3389です。

事実 数字だけでは感覚がつかめないので、隣に比べるものを置きます。8月26日から9月8日までの14日間にこの扉が叩かれた回数をすべて足すと21,483件です。1日平均1,534回ほどです。

事実 昨日1日がその14日分の合計の1.62倍です。直前の最高値だった8月31日の3,410件と比べると10.21倍、9月8日の1,443件と比べると24.1倍です。

事実 1日を秒で割ってみるとこうなります。34,811回なら2.5秒に1回ずつ1日中ベルが鳴った計算です。

事実 14日分を順に並べると、昨日がどれほど飛び抜けた値なのかが目に見えます。

日付 叩いた回数
8月26〜30日 1,221 · 1,425 · 2,114 · 1,064 · 2,139
8月31日 3,410(直前の最高値)
9月1〜5日 2,030 · 808 · 568 · 795 · 918
9月6〜8日 1,474 · 2,074 · 1,443
9月10日 34,811

事実 9月9日が抜けているのにお気づきでしょう。その日の記録ファイルが私たちのアーカイブにありません。 そのためこの記事の「直前」はすべて9月8日基準です。9日に何があったのかは、この記事では答えられません。

ところが、かけてきた番号は109個だった

事実 ここが昨日の核心です。その34,811回を作った固有の送信元は109か所でした。過去14日間、この値は102か所から164か所の間を行き来していました。昨日の値はその範囲の内側で、むしろ2番目に少ない値です。

事実 割ってみると答えが出ます。

日付 叩いた回数 叩いた先 1か所あたり 1か所基準の間隔
8月31日 3,410件 164か所 20.8回 1時間9分に1回
9月8日 1,443件 110か所 13.1回 1時間50分に1回
9月10日 34,811件 109か所 319.4回 4分30秒に1回

推定 電話の話に戻ります。9月8日には110人がそれぞれ1日に13回ほどかけました。昨日は同じ109人がそれぞれ319回ずつかけたわけです。1人が4分30秒ごとに1回ずつ、深夜0時から深夜0時まで休まずかけ直した計算になります。かけた人数はそのままなのに、1人がやる仕事が24.4倍になりました。

推定 9月6日の記事では、ちょうど反対の形を書きました。あの日は人が増えて、1人がやる仕事は薄くなりました。昨日は人はそのままで、1人が厚くなりました。合計だけ見ればどちらも「増えた」ですが、防ぐ方法はそれぞれ違います。

発信者名の欄に書かれていたもの

事実 リモートデスクトップは接続を開始するとき、短い文字列を一つ一緒に送ります。「クッキー」と呼ばれる欄ですが、かける側が自分で埋める値です。携帯の画面に出る発信者名と同じ性質のものです。

事実 昨日その欄に書かれてきた値です。

書かれてきた値 回数
mstsc 32,042
<ip> 418
hello 16
Administr 6
空の値 4
Test 3

事実 合計32,489件です。昨日のリモートデスクトップ接触34,811件の93.3%で、残りの2,322件(6.7%)にはこの欄が空でした。mstsc一つが全接触の92.0%、値が記録されたものだけで見ると**98.6%**です。

事実 mstscは、Windowsにもともと入っているリモートデスクトッププログラムの実行ファイル名と同じ文字列です。

事実 そしてこの名前は昨日突然現れました。 直前3日間の同じ欄はこうでした。

日付 書かれてきた値
9月6日 hello 897 · <ip> 427 · Administr 3 · 空の値 3 · nmap 1 · eltons 1 — mstsc 0件
9月7日 hello 1,391 · <ip> 448 · mstsc 11 · eltons 2 · 空の値 2 · Test 2
9月8日 hello 845 · <ip> 442 · 空の値 5 · ランダムな9桁 3 — mstsc 0件

事実 私たちの記録でこの名前の1日最大は11回(9月7日)でした。昨日は32,042回です。

推定 Administr 6件は、この欄が9文字で切れる位置にアカウント名を書いたときに出る形だと読んでいます。Administratorの頭9文字ですから。ただし私たちはネゴシエーションの原文を書き出していないため、確定できません。

推定 ここで一度立ち止まります。この欄の値がmstscだということは相手がそう書いて送ってきたという意味であって、相手が実際にそのプログラムを使ったという証拠ではありません。発信者名に「宅配」と出たからといって宅配業者だとは限らないのと同じです。私たちが持っているのは文字列の分布だけです。

一つの番号が全部かけたのか

事実 昨日センサー02に最も多く接触した別名はATK-E37B01(149.50.x.x)で34,229件でした。このサーバーの1日全体100,752件のうち**34.0%**です。

事実 2位からは8,090 · 7,995 · 7,323 · 5,364 · 5,316 · 2,844 · 2,840 · 2,163と続き、10位からは681 · 648 · 238とがくんと落ちます。**上位12か所が作ったものが77,731件(77.2%)**で、残りの599か所が作ったものは全部合わせて23,021件です。1か所あたり平均38.4件です。

推定 1位の34,229件と昨日のリモートデスクトップ総量34,811件は582件差です。数字がこれほど合致すると、昨日増えた分の大部分がこの1か所から出たと読みたくなります。

事実 ところが言えません。 私たちのデータには、送信元ごとにどのサービスを叩いたのかが書かれていません。この別名がリモートデスクトップを叩いたのか画面共有を叩いたのか、データが教えてくれません。数字が近いという状況証拠だけです。


隣の回線はどうだったか

事実 このサーバーは扉を六つ開けてあります。昨日1日の接触は100,752件、固有の送信元は611か所でした。1日を秒で割ると0.86秒に1回です。六つのサービスの接触を足すとちょうど100,752で、総計と一致します。

扉(サービス) ポート 叩いた回数 叩いた先 1か所あたり
VNC(画面共有) 5900 65,487件(65.0%) 387か所 169.2回
RDP(リモートデスクトップ) 3389 34,811件(34.6%) 109か所 319.4回
SMB(ファイル共有) 445 198件 42か所 4.71回
LDAP(アカウント照会) 389 166件 12か所 13.8回
MSSQL(データベース) 1433 59件 43か所 1.37回
ADB(Androidデバッグ) (未記録) 31件 (未記録) —

事実 同じ日の同じサーバーなのに、扉ごとに性格がまるで違います。データベースの扉は43か所がきっちり59回叩きました。1か所が1.37回ずつだけ触って通り過ぎたわけです。アカウント照会の扉は12か所だけなのに166回で少数集中型であり、この166件は14日バンド(5〜222件)の内側の上寄りです。

事実 昨日跳ねたのは画面共有ではありません。画面共有は65,487件 · 387か所で、9月8日の65,322件 · 416か所と事実上同じです。接触は0.25%増え、送信元は7.0%減りました。

事実 この扉は8月26日 40,791 → 9月6日 48,605 → 9月7日 58,811 → 9月8日 65,322と上がり続けていた曲線でしたが、2日目も65,400付近で止まった形です。

相手が自ら名乗ったバージョン

事実 画面共有は接続する前に、お互い「私は何番のバージョンで話すよ」とすり合わせをします。昨日相手が提案したバージョンは003.003が63,144回、003.008が1,852回でした。バージョンが記録された64,996件の**97.2%**が最も古い方です。491件はバージョンが記録されませんでした。

事実 ファイル共有の方も同じ形です。相手が提案した方言(会話方式)は336件ですが、そのうち最新系列のSMB 2.???は**2件(0.6%)**だけです。残りの334件はNT LM 0.12 73 · LANMAN1.0 65 · LM1.2X002 65 · PC NETWORK PROGRAM 1.0 33 · Windows for Workgroups 3.1 33 · LANMAN2.1 33 · LANMAN 32のような古い語彙でした。

推定 最も古いバージョンを先に差し出すのは、古いシステムからまで応答を引き出そうとする汎用ツールの振る舞いに近いものです。手当たり次第に電話をかけながら、一番聞き取りやすい言葉で先に話しかけるのと似ています。私たちのサーバーが旧式だという意味でもなく、特定の脆弱性を狙ったという意味でもありません。 昨日の接触をいかなるCVEとも結びつけません。

このサーバーが昨日拾ったファイル一つ

事実 センサー02が昨日保存したファイルはたった一つです。46,582バイトのもの(7a48c93c…)で、別名ATK-2DD9A8が1回置いていきました。

事実 このハッシュは、9月3日の記録に**「アーカイブ18日分に一度もなかった新規ファイル」**として書かれていたものと同じ値・同じサイズです。そのとき配達した別名はATK-5A7674でした。1週間ぶりの2度目の観測です。

事実 そしてここでもう一度立ち止まる必要があります。このサーバーは扉を実際には開けてやりません。 低対話型なのでログイン成功も、コマンドも、認証情報も、そもそも存在しません。ここで言えるのは**「どの扉を何か所が何回叩いたか」と「相手が何と言って話しかけてきたか」まで**です。ベルが何回鳴ったかは数えますが、出たことがないので、何の話をしようとしていたのかは記録されようがありません。


実際に出る電話機 — センサー01

隣にあるサーバー1台は電話に出ます。 扉が実際に開き、開いた後の行動が残ります。

事実 昨日こちらにはセッション2,412件が入ってきました。固有の送信元296か所、ログイン試行2,017回、コマンド2,293個、画面録画1,783件です。

事実 ログイン試行2,017回は1日で割ると43秒に1回ほどです。コマンド2,293個は38秒に1回です。急ぎもせず休みもしない速度です。

事実 ポート別では2222番(SSH)2,071件 + 2223番(Telnet)341件 = 2,412で総計と正確に一致します。SSHが85.9%、Telnetが14.1%で、セッションの**73.9%**に画面録画が残りました。

事実 扉が開いた後に何があったのかを種類別に数えるとこうなります。

何をしたか 回数 比べるもの
偵察 — システムの調査 1,700回 全コマンド2,293個の74.1%
実行権限の付与 191回 ダウンロード23回の8.3倍
ダウンロード後の実行 23回 —
ファイルのダウンロード 23回 上と正確に同じ
永続化 — SSH鍵の埋め込み 18回 —
痕跡の削除 17回 —
防御の無力化 1回 昨日たった1回

事実 合計1,973で、全コマンドの86.0%です。**偵察一つが全コマンドの74.1%**です。9月6日の1,374回、8月28日の995回より大きい値です。

事実 「実行権限の付与」はファイルに**「これは実行してもいいファイルだよ」という印を付ける動作**です。Linuxではこの印がないと、プログラムであってもそのままでは動きません。

事実 「ファイルのダウンロード」23回と「ダウンロード後の実行」23回が正確に同じです。 ダウンロードしたものは例外なく実行段階に進んだという意味です。この二つの値が合致するのは、8月22日以降ほとんどの日に繰り返されています。

18分の間に3回、同じ形で

事実 0時41分45秒から44分45秒まで、180秒のTelnetセッションがありました(ATK-B108F9、180.233.x.x)。ログインに成功し、コマンド26個、ダウンロード1件です。順序はファイルのダウンロード → 実行権限の付与 → 実行の3段階でした。

事実 同じ形が18分の間に3回繰り返されました。0時55分57秒にATK-F5E7E2(85秒 · コマンド31個)、0時59分12秒にATK-B949E7(68秒 · コマンド31個)です。3件ともhxxp://185[.]93[.]89[.]72/wgetの306バイトのシェルスクリプトを配達した8つの別名の中に入っています。

事実 8時19分36秒から20分39秒まで、63秒のセッション一つは、意図が5種類(偵察 · ファイルのダウンロード · 実行権限の付与 · ダウンロード後の実行 · SSH鍵の埋め込み)も付いた昨日唯一のセッションでした(ATK-6BC9D8、108.165.x.x)。ところが保存されたダウンロードは0件です。 ダウンロードの意図は分類されたのに、ファイルがありません。

事実 11時08分00秒から09分06秒まで、66秒のセッション(ATK-6C52B2、91.81.x.x)は昨日、完全性スコアが最も高く(42点)、ダウンロードが11件でした。ところが付いた意図は**「防御の無力化」一つだけ**です。昨日の防御無力化コマンドの総計が1回ですから、その1回がこのセッションです。

事実 このセッションが11回受け取っていったものは、すべて1バイトの空ファイルでした。1バイトなら文字一つ分です。最も多く動いたのに手にしたのは空ファイルというこの形は、8月17日 · 8月22日 · 9月6日の記録にもあります。

昨日入ってきたものを全部足しても705バイト

事実 昨日このサーバーに保存されたファイルは4種で、実行バイナリは0個です。四つのサイズを全部足すと705バイト — ショートメッセージ4〜5行分です。隣のサーバーが昨日拾ったファイル一つ(46,582バイト)の66分の1です。

事実 四つとも全部以前に見たことのあるハッシュです。389バイトの公開鍵(a8460f44…)はアーカイブ24個のファイルすべてにあり、昨日だけで17個の別名が17回配達しました。306バイトのシェルスクリプト(a6296a79…)は23個のファイルに同じハッシュであり、昨日は8個の別名が配達しました。1バイトの空ファイルは13個のファイルに、9バイトのテキストは22個のファイルに記録されています。

事実 389バイトのものはSSH公開鍵です。分かりやすく言えばパスワードなしで入ってこられる合鍵です。サーバーのauthorized_keys(許可された鍵の一覧)というファイルにこの値を1行書き込めば、その鍵を持つ側は以後パスワードを聞かれずに入ってきます。

最も多く来た印と、物を置いていった印

事実 接続してきたプログラムごとに指紋が一つずつ残ります。相手のプログラムが「私はこういう方式で会話する」と先に知らせてくる値を一まとまりに要約した値です。

事実 昨日記録された指紋12個のうち、最も多くの場所から来たのはacaa53e0…(SSH-2.0-OpenSSH_7.4)で112か所でした。このサーバー全体の送信元296か所の**37.8%**です。ところが、このまとまりが置いていった検体は1件もありません。

事実 昨日実際にファイルを置いていった印は16443846…(SSH-2.0-Go)一つだけで、この印を付けて来た場所は3か所でした。

事実 この値はプログラムのビルドの指紋であって、人の指紋ではありません。 同じディストリビューションが標準で入れてくれるSSHを使う人たちは、互いに何の関係もなくても同じ値を持ちます。112か所を一つの組織として読んではいけません。

事実 そしてTelnetにはこの指紋がそもそも残りません。だから上に書いた目立ったセッション5件は指紋の欄がすべて空文字列です。これらのセッションをどのまとまりにも紐づけられません。

どんなパスワードで入ろうとしたのか

事実 昨日試されたID・パスワードの組み合わせは1,836種でした。そのうちここに載せるのは8種だけです。残りの1,828種は個数だけ数えます。

理由は一つです。互いに異なるIP3か所未満でしか見られなかった組み合わせは、実際にどこかで流出した本物のアカウントである可能性があります。 そういう値は私たちの記事に書き写しません。

以下の8種は反対側です。複数の場所で繰り返されたので、**「誰のものでもない出荷時デフォルト値」**と見なせるものです。

ID パスワード 互いに異なる送信元
345gs5662d34 345gs5662d34 17か所
admin admin 16か所
root 3245gs5662d34 9か所
root 123456 7か所
admin (空の値) 3か所
support support 3か所
root root 3か所
root default 3か所

推定 ここで数字を一つ付けてみます。この8種の試行を全部足すと101回です。昨日のログイン試行が2,017回でしたから、残りの1,916回が1,828種に散らばっています。 組み合わせあたり平均1.05回です。

推定 同じパスワードを何度も叩いたのではなく、互いに異なるパスワードを1回ずつなぞっていった形です。昨日使われた組み合わせの99.6%が1日に事実上1回ずつだけ使われました。これは私たちを狙って作った一覧ではなく、どこでも通じる値を順番に入れてみる辞書です。


昨日1日の全体

事実 電話に実際に出る方(センサー01)の1日集計です。

項目 昨日 比べるもの
セッション 2,412件 1か所あたり8.1件
固有の送信元 296か所 —
ログイン試行 2,017回 43秒に1回 · 組み合わせ1,836種
コマンド 2,293個 38秒に1回 · 意図が付いたものは1,973個(86.0%)
ポート2222(SSH) 2,071セッション 全体の85.9%
ポート2223(Telnet) 341セッション ところが目立ったセッション5件がすべてこちら
画面録画 1,783件 セッションの73.9% · 閲覧可能なものは250件
保管された検体 115個 昨日新たに保存されたものは4種・705バイト

事実 隣のサーバー(センサー02)の100,752件は数える単位が違うので足しません。 こちらは「セッション」で、あちらは「接触」です。元データも同じ理由で合算を禁止しています。

事実 2台のサーバーを合わせた固有の送信元は最大907か所です。2台のサーバーに同じ場所が重なって来たのかをデータが教えてくれないので、単純に足した上限です。重なった分だけ実際の数字は小さくなります。アーカイブ24日分の最大が9月6日の897か所でしたから、昨日が新たな最大値です。

事実 そしてこのサーバー2台はどこにもアドレスを知らせたことがありません。 宣伝したことも、リンクを貼ったこともありません。

時間順に並べるとこうなります。「アーカイブ照合」と書かれた行に注目してください — 昨日1日だけ見ても見えず、過去の記録と並べて置いてこそ見えるものです。

  1. 事実 接触100,752件 / 固有の送信元611か所。サービス別にVNC(5900) 65,487件 · RDP(3389) 34,811件 · SMB(445) 198件 · LDAP(389) 166件 · MSSQL(1433) 59件 · ADB 31件であり、この六つを足すとちょうど100,752で総計と一致する。RDPが全体の34.6%、VNCが65.0%だ
  2. 事実 RDP 34,811件は観測14日分(8/26~9/8: 1,221 · 1,425 · 2,114 · 1,064 · 2,139 · 3,410 · 2,030 · 808 · 568 · 795 · 918 · 1,474 · 2,074 · 1,443)の合計21,483件の1.62倍だ。直前の最高値は8/31の3,410件で、今日はその10.21倍、9/8の1,443件と比較すると24.1倍だ
  3. 事実 RDPの固有の送信元は109か所だ。14日バンドは102~164か所であり、今日の値は2番目に少ない。送信元あたりの接触数は34,811 ÷ 109 = 319.4回で、9/8の13.1回(1,443÷110) · 8/31の20.8回(3,410÷164)とは桁が違う
  4. 事実 RDPネゴシエーションで記録されたクッキー値はmstsc 32,042 · <ip> 418 · hello 16 · Administr 6 · 空の値 4 · Test 3で合計32,489件であり、RDPセッション34,811件の93.3%だ。残りの2,322件(6.7%)にはクッキー値が記録されなかった。mstsc一つがRDP全体の92.0%、記録されたクッキーの98.6%だ
  5. 事実 クッキーの分布が1日でひっくり返った。9/6はhello 897 · <ip> 427 · Administr 3 · 空の値 3 · nmap 1 · eltons 1でmstscが0件、9/7はhello 1,391 · <ip> 448 · mstsc 11 · eltons 2 · 空の値 2 · Test 2、9/8はhello 845 · <ip> 442 · 空の値 5 · ランダムな9桁 3でmstscが0件だった。今日はmstsc 32,042 · hello 16だ
  6. 推定 mstscはWindows標準のリモートデスクトップクライアントの実行ファイル名と同じ文字列だ。この値はクライアントが接続要求に自ら書き込むフィールドに入って来たものであって、相手が実際にそのプログラムを使ったという証拠ではない。'Administr' 6件は、このフィールドが9文字で切れる位置にアカウント名を書いたときに出る形だと読める — 原文フレームは書き出さないため確定できない
  7. 事실 最多接触の別名ATK-E37B01(149.50.x.x)が34,229件で、02全体100,752件の34.0%だ。2位からは8,090 · 7,995 · 7,323 · 5,364 · 5,316 · 2,844 · 2,840 · 2,163であり、10位からは681 · 648 · 238と急落する。上位12か所の合計は77,731件(77.2%)であり、残りの599か所が23,021件、1か所あたり平均38.4件だ
  8. 推定 1位の別名の34,229件とRDP総量34,811件は582件差だ。今日のRDP急増分の大部分がこの1つの送信元から出た可能性が高いと読む。ただしデータに送信元別のサービスマッピングがないため、この別名がRDPを叩いたのかVNCを叩いたのか確定できない — 数字が合致するという状況証拠だけだ
  9. 事実 VNCは65,487件 · 387か所で、9/8の65,322件 · 416か所と事実上同じだ(接触 +0.25%、送信元 −7.0%)。8/26 40,791 → 9/6 48,605 → 9/7 58,811 → 9/8 65,322と上がっていた曲線が2日目も65,400付近で止まった形だ。今日跳ねたのはVNCではなくRDPだ
  10. 事実 VNCネゴシエーションで相手が提案したRFBバージョンは003.003が63,144回、003.008が1,852回で、記録された64,996件の97.2%が最も古い003.003だ(491件はバージョン未記録)。SMBは提案された方言がNT LM 0.12 73 · LANMAN1.0 65 · LM1.2X002 65 · PC NETWORK PROGRAM 1.0 33 · Windows for Workgroups 3.1 33 · LANMAN2.1 33 · LANMAN 32 · SMB 2.??? 2で、合計336件中SMB2系列は2件(0.6%)だけだ
  11. 推定 最も古いバージョン・方言を先に提案するのは、古いシステムからまで応答を引き出そうとする汎用スキャナーの振る舞いに近い。私たちのサーバーが旧式だという意味でも、特定の脆弱性を狙ったという意味でもない — CVEと結びつける根拠は私たちにはない
  12. 事実 サービスごとに形が正反対だ。VNCは387か所が65,487回(送信元あたり169.2回)、RDPは109か所が34,811回(319.4回)である一方、MSSQLは43か所が59回(1.37回)、SMBは42か所が198回(4.71回)だ。LDAPだけが12か所で166回(13.8回)と少数集中型であり、LDAP 166件は14日バンド(5~222件)の内側の上寄りだ
  13. 事実 02が今日保存したファイルは7a48c93c…(46,582バイト、ATK-2DD9A8、1回)の1件であり、集計上の検体数1と一致する。このハッシュは9/3のブリーフに「アーカイブ18日分になかった新規」と記録されたものと同じ値・同じサイズであり、当時の配達別名はATK-5A7674(3回)だった。1週間ぶりの2度目の観測だ
  14. 事実 セッション2,412件 / 固有の送信元296か所 / ログイン試行2,017回 / コマンド2,293個 / TTY録画1,783件。ポート2222(SSH) 2,071件 + ポート2223(Telnet) 341件 = 2,412でセッション総計と正確に一致する。SSHが85.9%、Telnetが14.1%であり、セッションの73.9%にTTY録画が残った
  15. 事実 偵察 — システム 1,700 · 実行権限の付与 191 · ダウンロード後の実行 23 · ファイルのダウンロード 23 · 永続化(SSH鍵の埋め込み) 18 · 痕跡の削除 17 · 防御の無力化 1。合計1,973で全コマンド2,293個の86.0%であり、偵察一つが全コマンドの74.1%だ。9/6の偵察1,374 · 8/28の995より大きい値だ。「ファイルのダウンロード」23回と「ダウンロード後の実行」23回が正確に同じなのは、8/22以降ほとんどの日に繰り返される形だ
  16. 推定 互いに異なるIP3か所以上で観測され、原文を引用できる組み合わせは8個だけであり、単一出処のため個数だけ数えた組み合わせが1,828個だ。引用可能な8個の試行の合計は101回なので、残りの1,916回が1,828個の組み合わせに散らばっている — 組み合わせあたり平均1.05回だ。今日観測された互いに異なる組み合わせ1,836個のうち99.6%が1日に事実上1回ずつだけ使われたという意味だ
  17. 事実 ATK-B108F9(180.233.x.x)のTelnetセッション。ログイン成功、コマンド26個、ダウンロード1件、TTY録画あり。意図はファイルのダウンロード → 実行権限の付与 → ダウンロード後の実行の3段階だ。同じ形が00:55:57のATK-F5E7E2(85秒・コマンド31個)と00:59:12のATK-B949E7(68秒・コマンド31個)で18分の間に3回繰り返され、3件ともhxxp://185[.]93[.]89[.]72/wgetの306バイトのシェルスクリプトを配達した8個の別名に入っている
  18. 事実 ATK-6BC9D8(108.165.x.x)のTelnetセッション。ログイン成功、コマンド17個、意図5種(偵察 · ファイルのダウンロード · 実行権限の付与 · ダウンロード後の実行 · 永続化 SSH鍵の埋め込み)が付いた今日唯一のセッションだ。ところがダウンロード件数は0だ — ダウンロードの意図は分類されたのに保存されたファイルがない
  19. 事実 ATK-6C52B2(91.81.x.x)のTelnetセッション。completeness 42で今日の最高値であり、ダウンロード11件だが、付いた意図は「防御の無力化」一つだけだ。今日の防御無力化コマンドの総計が1回なので、その1回がこのセッションだ。受け取っていった11件はすべて1バイトの空ファイル01ba4719…だ — 同じ「最も多く動いたのに受け取ったのは空ファイル」という形が8/17 · 8/22 · 9/6のブリーフにもある
  20. 事実 今日保存された4種に実行バイナリが0個だ。a8460f44…(389バイトのOpenSSH RSA公開鍵)はアーカイブ24個のファイルすべてにあり、今日17個の別名が17回配達した。a6296a79…(306バイトのPOSIXシェルスクリプト、hxxp://185[.]93[.]89[.]72/wget)は23個のファイルに同じハッシュであり、今日8個の別名が配達した。01ba4719…(1バイト)は13個のファイルに、4af5a5c9…(9バイトのASCII)は22個のファイルに記録されている。四つのファイルサイズを全部足すと705バイトだ
  21. 事実 指紋12個のうち今日IPが最も多いのはacaa53e0a7d7ac7d1255103f37901306(SSH-2.0-OpenSSH_7.4)で112か所 — 01全体の送信元296か所の37.8%だが検体の配達はない。今日検体を配達した指紋は16443846184eafde36765c9bab2f4397(SSH-2.0-Go、今日3か所)一つだけだ。Telnetにはhasshが残らないため、目立ったセッション5件は指紋・クライアントがすべて空文字列だ
  22. 事実 固有IPの上限907か所。センサー間の固有IPの積集合が分からないため上限であり、実際の値はそれ以下だ。アーカイブ24日分(8/16~9/8)のうち最大は897か所(9/6)であり、9/8は850か所だったので今日が新たな最大値だ。このサーバー2台はどこにもアドレスを知らせたことがない

上で繋げて読むべきなのは3行目と8行目です。一つは「叩いてきた先はいつも通り109か所」で、もう一つは「ところが1か所が全体の34%を作った」です。同じ話の前と後ろなのに、私たちのデータはその二つを繋いでくれません。


扉の前に置かれたもの

事実 防御にお使いいただけるよう値をそのまま書き写します。値をクリックするとコピーされます。 アドレスは接続されないよう変形(defang)してありますので、そのままお使いください。上の2行と下の2行を比べてみてください — 上側は24日間ずっと変わらなかった値で、下側は昨日1日が初めてではない再登場です。

sha256
a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2389バイトのOpenSSH RSA公開鍵 · センサー01 · 昨日17個の別名が17回配達 · アドレス欄が空いており、セッション内で直接埋め込まれたものと見られるが確定不可 · アーカイブ24個のファイルすべてに同じハッシュ
sha256
a6296a79f44e21b76604d2d2bbf795d2cf380f70e39d45fbf166707ff3b4a6a4306バイトのPOSIXシェルスクリプト · センサー01 · 昨日8個の別名が配達 · アーカイブ23個のファイルに同じハッシュ
url
hxxp://185[.]93[.]89[.]72/wget上記306バイトのスクリプトの配布元。昨日18分の間に繰り返されたセッション3件がすべてこの8個の別名の中にある
sha256
01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b1バイトの空ファイル · センサー01 · 別名1か所(ATK-6C52B2)が11回 · 昨日の完全性最高セッションが受け取っていったものはすべてこれだ · アーカイブ13個のファイルに記録
sha256
4af5a5c98ad132095c6fbe7b02c242153a190a01cc321e50a916a0ca46fbaa629バイトのASCIIテキスト · センサー01 · 別名1か所(ATK-BECAD3)が6回 · アーカイブ22個のファイルに記録された常時ハッシュ
sha256
7a48c93c5cb63a09505a009260d1cca8203285e0c1c6ff5b0df9cbb47082086546,582バイト · センサー02 · 別名1か所(ATK-2DD9A8)が1回 · このセンサーのダウンロードにはアドレス欄自体がない · 9/3に「新規」と記録されたものと同じハッシュ・同じサイズであり、1週間ぶりの2度目の観測

事実 サイズの感覚を付けておきます。389バイトはショートメッセージ2〜3行、306バイトは2行、9バイトは英字9文字、1バイトは文字一つの分量です。昨日センサー01が受け取った四つを全部合わせても705バイトです。

事実 一番下の46,582バイトのものは、上の四つを全部合わせたものの66倍です。ただしこのサーバー側の記録にはファイルの種類を書く欄がそもそもないため、これが何なのかはここでは言えません。

攻撃者が使った手口を国際分類表に対応させると

MITRE ATT&CKは攻撃手口ごとに番号を付けてある国際的な一覧です。昨日見た行動をその番号に合わせるとこうなります。IDを押すと原文の説明に飛びます — 私たちの言葉を信じず、直接確認していただくためにリンクを貼ります。

  • T1595Active Scanning — 02のRDP 34,811件・VNC 65,487件の接触とプロトコルネゴシエーション段階の観測推定
  • T1133External Remote Services — インターネットに露出した3389・5900・445・389・1433に対する接触推定
  • T1110Brute Force — 01のログイン試行2,017回、組み合わせ1,836個推定
  • T1082System Information Discovery — コマンドの意図「偵察 — システム」1,700回推定
  • T1105Ingress Tool Transfer — 「ファイルのダウンロード」23回、保存されたファイル4種推定
  • T1222.002File and Directory Permissions Modification: Linux — 「実行権限の付与」191回推定
  • T1098.004Account Manipulation: SSH Authorized Keys — 「永続化 SSH鍵の埋め込み」18回、389バイトの公開鍵17回配達推定
  • T1070Indicator Removal — 「痕跡の削除」17回推定
  • T1562Impair Defenses — 「防御の無力化」1回(ATK-6C52B2のセッション)推定

9行すべてに**[推定]**バッジが付いているのを見てください。私たちの手にあるのはコマンドの「意図分類の結果」と「何回だったか」までです。コマンドの原文はありません。分類表に当てはめる作業は常に解釈であり、解釈には解釈だと書きます。


以前にこういうことがあった

推定 BlueKeep公開直後の3389スキャン急増(2019)。 リモートデスクトップに深刻な欠陥(CVE-2019-0708)が公開されると、インターネット全域でこのポート一つを叩く回数が一桁の倍数で跳ね上がったことがあります。昨日の私たちの記録の形 — 他の扉はそのままなのに扉一つだけが10倍に跳ねること — が、そのときと同じ系列です。ただし昨日の観測をこの脆弱性と結びつける根拠は私たちにはありません。 こちらのセンサーはネゴシエーション段階で止まり、CVEと紐づけるデータもありません。(出典の類型: ベンダーのセキュリティアドバイザリ · CISAアラート · NVD)

推定 WannaCry / EternalBlue以降のSMB1スキャンの常態化(2017)。 ファイル共有プロトコルの古いバージョンを狙った事件の後、その古い語彙を先に投げてみるツールがインターネットに常時回るようになりました。昨日私たちが受けた方言の提案336件のうち334件がその古い系列でした。背景の文脈としてのみ使います。 私たちの観測は「相手がどんな言葉で先に話しかけてきたか」までであり、実際に攻撃を試みたのかは分かりません。(出典の類型: ベンダーのセキュリティアドバイザリ MS17-010 · 各国CERTの勧告)

推定 Miraiボットネット(2016)。 Telnetのデフォルトアカウント辞書でIoT機器に入った後、すぐにファイルをダウンロードさせていた方式です。昨日センサー01で見た形 — ログイン成功後63〜180秒以内にファイルを受け取って実行権限を与える順序、そしてadmin/admin · root/rootのようなデフォルト値の使用 — が同じ系列です。ただし昨日受け取っていったファイルには実行バイナリが一つもありませんでした。 (出典の類型: 政府機関のアラート US-CERT/CISA TA16-288A · その後の米司法省の起訴資料)


それで何をすべきか

電話の話に戻ります。昨日ベルは24倍多く鳴りましたが、実際に分かれ目となった地点は「出たかどうか」です。 以下の項目はすべてその話です。

1. 管理ポートをインターネットにそのまま開けておいている · 可能性が高い 昨日1日でリモートデスクトップに34,811件・109か所、画面共有に65,487件・387か所、ファイル共有に198件・42か所、アカウント照会に166件・12か所、データベースに59件・43か所が事前の接触なしにいきなり届きました。電話に出る方にも2222番に2,071件、2223番に341件が入ってきました。このサーバー2台はどこにもアドレスを知らせたことがありません。 開けておくだけで1日10万件規模の接触が来ます。昨日リモートデスクトップは一つの送信元が319.4回ずつ叩きました。アカウント一つが弱ければ、その回数がすべて試行に変わります。 VPNや踏み台ホストの後ろに移せば、この接触の大部分は認証段階の手前で切れます。

2. デフォルトアカウント・脆弱なパスワードをそのまま使っている · 可能性が高い 上の表の8行はすべて、機器やディストリビューションが出荷時に入れておく値です。admin/adminが互いに異なる16か所から38回、root/123456が7か所、root/rootが3か所、root/defaultが3か所、support/supportが3か所、admin/空のパスワードが3か所から14回試行されました。昨日目立ったセッション5件はすべてログインに成功したセッションです。 この組み合わせのうち一つでも実際のサーバーに残っていれば、その日のうちに扉が開きます。開いたセッションたちは63〜180秒以内に次の段階へ進みました。

3. パスワードログインを許可していて鍵方式を使っていない · 可能性が高い 昨日試された組み合わせの幅が1,836種です。パスワードの扉が開いている限り、この辞書は毎日また来ます。 ところが侵入した側は鍵方式の有用性をすでに知っています。昨日「SSH鍵の埋め込み」が18回、389バイトの公開鍵が互いに異なる17か所から入ってきました。authorized_keys(許可された鍵の一覧)に他人の鍵が1行入れば、パスワードを変えてもその鍵で入り続けられます。 昨日埋め込まれたその公開鍵は、アーカイブ24日分すべてに同じハッシュであります。

4. 外へ出ていく接続を遮断していない · 可能性が高い 「ファイルのダウンロード」23回と「ダウンロード後の実行」23回が正確に同じでした。 ダウンロードする行為が例外なく実行段階につながったという意味です。実際にhxxp://185[.]93[.]89[.]72/wgetから306バイトのシェルスクリプトが8個の別名にダウンロードされました。ログインはすでに破られた後なので、サーバーが外へ出ていく接続を断つことが、実際の被害を防ぐ最後の地点です。出ていく接続が遮断されていたなら、昨日のダウンロード23回はすべて失敗していた段階です。

5. 回数ベースの遮断(fail2banなど)だけを信じている · 可能性は中程度 ここが昨日のデータが二つに分かれる地点です。センサー02のリモートデスクトップは1か所が319.4回ずつ叩いたので、送信元単位のレート制限があったなら確実に引っかかります。 ところが電話に出る方は組み合わせあたり平均1.05回です。「一つのアカウントで5回間違えたらロック」のようなアカウント単位の防御は、昨日一度も発動しなかった可能性が高いです。 だから「高い」ではなく「中程度」です。防御の種類によって結果が正反対に分かれます。 送信元単位の制限がなければ、3389の1ポートだけで1日3万件がログとセッションのリソースをそのまま食います。

6. ログをサーバーの中だけに置いている · 可能性は中程度 「痕跡の削除」の意図が昨日17回、「防御の無力化」が1回分類されました。消そうとする意図が実際に観測されました。 私たちがそれを見られたのは、画面1,783件がサーバーの外で別途録画されたからです。サーバーの中のログだけを根拠にすると、その17回が通り過ぎた場所で事件の再構成ができません。昨日目立ったセッションは63秒・66秒・68秒・85秒・180秒のものでした。人が画面を見て気づける長さではありません。


私たちが分からないこと

このブログが他と違う点はここです。分からないことを分からないと書きます。

昨日のテーマそのものに対する疑い

  • [確認不可] 昨日のリモートデスクトップ34,811件が一つの送信元から出たものなのか確定できません。 最多の別名ATK-E37B01の34,229件と582件差だという状況証拠だけです。データに送信元別のサービスの対応がなく、サービス一覧は送信元を教えてくれず、上位送信元の一覧はサービス別に分かれていません。
  • [確認不可] 名前の欄がmstscにひっくり返ったのがツールが変わったのか、同じツールの設定が変わったのか、まったく別の側が新たに来たのかを判断する根拠がありません。私たちが持っているのは文字列の分布だけです。
  • [確認不可] Administr 6件がAdministratorが9文字で切れたものだという解釈は推定です。 ネゴシエーションの原文を書き出さないため確定できません。
  • [確認不可] 一つの送信元が複数の扉を一緒になぞったのかを計算できません。 サービス別の送信元の合計(387+109+42+12+43=593)が全体611か所より18小さいのですが、ADB側の送信元が一覧に行がないためだと見られるものの、データがそうだと言ってくれるわけではありません。この値を0として使えば虚偽になるので「算出不可」としておきます。
  • [確認不可] アーカイブに9月9日のファイルがありません。 そのためこの記事の「直前」の比較はすべて9月8日基準であり、比較バンドは8月26日〜9月8日の14日分です。9日に何があったのかは、この記事では答えられません。

昨日のデータで説明がつかないもの

  • [確認不可] ATK-6BC9D8は「ファイルのダウンロード」・「ダウンロード後の実行」の意図が付いたのにダウンロード件数が0です。ダウンロードが失敗したのか、すでにあったハッシュなので保存されなかったのか、分類器がコマンドを過剰に分類したのか区別できません。
  • [確認不可] ATK-6C52B2は完全性42・ダウンロード11件なのに、付いた意図が**「防御の無力化」一つだけ**です。残りのコマンド21個が何だったのかは分類結果としてのみ残り、原文は私たちの手にありません。
  • [確認不可] 昨日の「SSH鍵の埋め込み」18回、389バイトの公開鍵を配達した別名17個、345gs5662d34/345gs5662d34の組み合わせの送信元17か所が互いに同じ集合なのかをデータが繋いでくれません。 数字が近いということ以上は言えません。
  • [確認不可] センサー02が保存した46,582バイトのファイルがどの経路で入ってきたものなのか明示されていません。 このサーバーでファイルを保存できる経路がAndroidデバッグ側だけであり、検体数が1で合うという状況証拠だけです。ファイルの種類を書く欄がないため何なのかも分かりません。
  • [確認不可] 指紋一覧の「これまでに見たIP数」の欄が依然として単調増加ではありません。 f555226d…は8月29日289か所 → 8月30日366か所 → 9月8日226か所 → 昨日158か所です。9月5日の記事が指摘した「累積が累積ではない」状態が5日後もそのままです。この欄を累積として読んではいけません。
  • [確認不可] Telnetには接続プログラムの指紋が残らないため、昨日目立ったセッション5件はすべて指紋の欄が空です。 これらのセッションを42個の指紋のまとまりのどこにも紐づけられません。
  • [確認不可] 昨日保存されたファイル4種の内容は私たちの手にありません。 306バイトのスクリプトが何をするのか、1バイトの空ファイルと9バイトのテキストがなぜ繰り返しダウンロードされてくるのかを判断する根拠がありません。
  • [確認不可] 「アーカイブにあったハッシュ」という判断は、8月16日〜9月8日の記録24件と照合したものであって、元ログの全数照合ではありません。 記録に載らなかった検体はこの比較に引っかかりません。

わざと載せなかったもの · 結びつけなかったもの

  • [除外] 展開しなければ現れない配布アドレス12件と、別経路で確保されたDiscord Webhookアドレスは昨日の保存分から出たものではありません。 昨日のセンサー01の4種には圧縮実行ファイルが一つもありません。背景の材料としてのみ残し、昨日の事案と結びつけて使いませんでした。
  • [除外] 背景統計として入ってきた追跡CVE 7,619件 · CISA KEV 395件 · ランサムウェア確認99件は、KISAセキュリティ告知から抽出した値です。昨日観測されたいかなる接触・セッション・検体とも結びつかないため、記述の根拠として使いませんでした。
  • [確認不可] 観測した配布元はC-TASに通報しますが、確認できるのは送信が成功したというところまでです。実際に登載されたかどうかは別途確認が必要です。

そもそも判断しないもの

  • ASN・ISP — 関連するデータベースがありません。推定しません。
  • 地理情報 — 上と同じです。IPの地理情報はそもそも帰属の根拠にもなりません。昨日登場したマスキングIPのどれにも国・地域を付けません。
  • VPN・Tor・クラウドかどうか — 判別する手段がありません。
  • 検体が悪性かどうか — VirusTotalを連携していません。検体の分類はMalwareBazaarのタグを使いますが、昨日のデータにはそのタグがありません。
  • 接続プログラムの印 — 指紋はビルドの指紋であって、人の指紋ではありません。 同じディストリビューションの標準SSHを使う無関係な人も同じ値を持ちます。112か所のまとまりを一つの主体として読んではいけません。
  • User-Agent — 二つの観測面ともHTTPではありません。センサー01はSSH・Telnet、センサー02はSMB・RDP・VNC・MSSQL・LDAP・ADBです。
  • CVEとの紐づけ — SSH・Telnetの攻撃はたいていCVEを参照せず、センサー02もネゴシエーション段階なので同様です。昨日のリモートデスクトップ34,811件をいかなる脆弱性とも結びつけません。
  • 送信元の身元 — 別名(ATK-XXXXXX)は記事と記事の間で同じ送信元を指す印にすぎず、身元ではありません。 マスキングされた箇所は復元せず、いかなる国・企業・個人も攻撃者として名指ししません。

昨日ベルは34,811回鳴りました。14日分を全部足したものより多かったです。ところが叩いてきた先は109か所で、この2週間の中でも少ない方でした。

ですから昨日の記録は**「より多くの場所が訪ねてきた」ではなく「同じ場所がはるかに頻繁にかけてきた」です。この二つは違う文であり、防ぐ方法も違います。1か所が4分30秒ごとにかけ直す形は、送信元単位のレート制限に確実に引っかかります。 反対に隣のサーバーで起きたこと — 1,836種類のパスワードを1回ずつなぞっていった形 — は、「何回間違えたらロックする」という規則が発動すらしません。**

そしてその32,042回は、発信者名の欄にmstscと書いて送ってきました。その欄はかける側が書く欄です。 名前を見てふるい落とせる扉だったなら、昨日が一番よく通り抜けられた日だったでしょう。私たちが数えられたのは誰が何と言ったかではなく、何回鳴ったかまでです。

観測日は2026-09-10であり、センサー01・02いずれも1日集計基準です。送信元IPは後ろ2つを伏せて書いており、復元しません。配布アドレスは接続されないよう変形(defang)しました。認証情報は互いに異なるIP3か所以上で繰り返し観測された8種のみを引用し、3か所未満でしか見られなかった1,828種は個数だけを数えて値は書きませんでした。