SecurityHeroblog

初めて見るアドレスからファイルが三つ — 表札に見覚えがあった

昨日、私たちのハニーポットに、五日間一度も現れなかった新しいアドレスが登場しました。ところがフォルダ名も、ファイル名の付け方も、以前のアドレスとまったく同じでした。初めて見るアドレスを初日に見分けられた理由と、それによって言えること・言えないことを分けて書きました。

近所に新しい店が一軒できたとしましょう。今まで一度も見たことのない場所、初めて見る屋号です。ところが入ってみると、なぜか見覚えがあります。看板の書体が同じで、メニュー表の番号の振り方が同じで、しかもメニュー名のひとつは文字までまったく同じです。

ここから二つのことが言えます。ひとつは 「同じマニュアルで開いた店だ」 — これは正しい。もうひとつは 「店主が移ってきたのだ」 — これは分かりません。同じフランチャイズ本部からマニュアルを受け取った、互いに顔も知らない別の店主かもしれないからです。

昨日、私たちのサーバーに記録されたのが、まさにその新しい店でした。

10.4秒、そして初めて見るアドレス

事実 昨日08時24分58秒、ATK-377ED5(94.154.x.x)がTelnetでログインに成功しました。Telnetは非常に古い遠隔接続方式です。平たく言えば インターネットの向こうからその機械のコマンドプロンプトを直接叩けるように開けておく通路 ですが、パスワードが暗号化されずそのまま流れていきます。

事実 滞在時間は 約10.4秒 です。その間にコマンド8行を入力し、ファイル3個を取得していきました。1.3秒に1行のペース です。ラーメンの湯を火にかけて蓋をする間に全部終わった計算になります。

事実 持ち去られた3つのファイルは、すべて hxxp://176[.]65[.]139[.]196/bins/ の下から来ました。アドレスはわざと壊して表記しています(hxxp://、[.]) — そのままコピーして貼り付けても接続されません。

事実 そしてこのアドレス 176[.]65[.]139[.]196 は、8/16・8/17・8/18・8/19・8/20 の五日分の記録のどこにもありません。 昨日が初めてです。

ファイル三つが何だったのか

事実 3つの正体は次のとおりです。

ファイル サイズ 正体
kla[.]sh 3,013バイト Bourne-Again シェルスクリプト
px86 133,452バイト ELF 32-bit LSB Intel 80386 · statically linked · stripped
pmips 244,420バイト ELF 32-bit MSB MIPS-I · statically linked · stripped

聞き慣れない言葉が三つあるので、その場で解きます。

  • シェルスクリプト — コマンドを順番に書いておいたメモ用紙です。一行ずつ人が打つ代わりに、ファイルひとつを実行すれば書かれた順に動きます。3,013バイトなら、A4一枚ほどの文字量です。
  • ELF — Linuxで使う実行ファイル形式です。Windowsの .exe に相当すると考えてください。
  • statically linked · stripped(静的リンク・シンボル除去) — 静的リンクは 必要な部品を全部中に抱えて持ち歩く という意味です。外から何も借りないので、どのLinuxに持っていっても動きます。シンボル除去は、人が読める名札を消したという意味で、解析を難しくします。

事実 3つを合わせると 380,885バイト です。これが10秒あまりで入ってきました。

事実 px86 は一般的なPC系、pmips はルーター・ネットワークカメラのような機器系で動く実行ファイルです。互いに互換性のない規格です。アーカイブ五日分を見ると、ELFファイルが落とされたのは常に pmips 一種類・一個ずつでした。ひとつのセッションが二つの規格を一緒に取得していったのは昨日が初めてです。

表札に見覚えがあった理由

ここで新しい店の話に戻ります。

事実 私たちは監視リストにURLを12個載せていました。すべて hxxp://31[.]77[.]227[.]121/bins/ の下の parm・parm5・parm6・parm64・parm7・pm68k・pmips・pmpsl・pppc・psh4・pspc・x86_64 です。規則が見えますか。/bins/ というフォルダ名、そして p の後ろにCPUの種類を付けたファイル名。

事実 この12個は、ただで手に入ったものではありません。UPXという圧縮で包まれていたファイルを 解いて初めて 出てきたアドレスです。圧縮された外側だけを見ても、アドレスはひとつも見えません。

事実 昨日初めて見たアドレス 176[.]65[.]139[.]196 が使ったフォルダ名も /bins/ であり、ファイル名も p + CPUの種類でした。pmips はリストにあった名前と 文字までまったく同じです。

推定 だからこそ、初めて見るアドレスなのに初回観測で即座に同じ系統だと見分けられました。メニュー表をあらかじめ書き写しておかなかったら、昨日の記録には「初めて見るIPからファイル三つ」とだけ書かれていたでしょう。

事実 ひとつはっきりさせておきます。昨日のその3つのアドレスは、セッションにそのまま見えていました。 圧縮を解いて突き止めたのではありません。圧縮解除が与えてくれたのはアドレスではなく 規則 でした。

事実 そして 看板が同じだということはマニュアルが同じという意味であって、店主が同じという意味ではありません。 このファイル名の規則はソースが公開されている系統なので、互いに何の関係もない運営者たちがそれぞれ同じように使います。

事実 一方、以前のアドレス 31[.]77[.]227[.]121/bins/ 系統の12個からは、昨日もダウンロードが 0件 です。8/20に続いて二日目です。

推定 「古い店が閉じて新しい店へ移った」と言いたくなる場面です。しかしその言葉は口にしません。古いアドレスが止まったのか、その要求が私たちのハニーポット側にだけ来なかったのか、データが区別してくれません。

昨日一日を時間順に

一日分を順に並べると、こうなります。08:24の行の秒単位に注目してください。 そして各行の末尾のダウンロード件数が互いにどれほど違うかも、あわせて見ていただくとよいでしょう。

  1. 事実 ATK-E07AC3(183.95.x.x) Telnetログイン成功。約85.0秒・コマンド31個・ダウンロード1件。意図3種 — ファイルダウンロード・実行権限付与・ダウンロード後実行。completeness 16。8/20ブリーフの主題だった4セッションと数値の形が同一。TTY録画あり(内容は含まない)。Telnetのためフィンガープリント・クライアント値は空文字列
  2. 事実 ATK-A64398(112.46.x.x) Telnetログイン成功。約5.1秒のうちにコマンド19個(毎秒約3.7個)・ダウンロード2件。意図2種 — ファイルダウンロード・実行権限付与。completeness 17。取得したのは9バイトのASCIIテキスト2つ(1193dde1… · a9b1c85a…)で、URLは記録されていない
  3. 事実 ATK-4CA329(223.123.x.x) Telnetログイン成功。約63.0秒・コマンド17個。意図5種で昨日の最多 — 偵察(システム)・ファイルダウンロード・実行権限付与・ダウンロード後実行・永続化(SSH鍵の埋め込み)。ところがダウンロードは0件。completeness 17。8/18・8/19・8/20に続いて4度目の同じ形
  4. 事実 昨日の主題セッション。ATK-377ED5(94.154.x.x) Telnetログイン成功。約10.4秒・コマンド8個・ダウンロード3件。意図3種 — ファイルダウンロード・実行権限付与・ダウンロード後実行。completeness 22 で、意図が記録されたセッションの中で最高値。3検体の合計380,885バイトが10秒あまりで入ってきた
  5. 事実 ATK-377ED5 が唯一の配信元である検体はちょうど3件で、セッションのダウンロード数も3である。① hxxp://176[.]65[.]139[.]196/bins/kla[.]sh — 3,013バイトのBourne-Againシェルスクリプト(bb36568c…) ② hxxp://176[.]65[.]139[.]196/bins/px86 — 133,452バイトのELF 32-bit LSB Intel 80386, statically linked·stripped(979bd80a…) ③ hxxp://176[.]65[.]139[.]196/bins/pmips — 244,420バイトのELF 32-bit MSB MIPS-I, statically linked·stripped(ed6bae21…)
  6. 事実 ホスト 176[.]65[.]139[.]196 は 8/16~8/20 の5つのブリーフのどこにもない。昨日が初観測である。またアーカイブでELFが落とされたURLは hxxp://31[.]77[.]227[.]121/bins/pmips ひとつだけで、常に1セッションに1個ずつだった — ひとつのセッションがx86とMIPSを一緒に取得していったのは昨日が初めて
  7. 事実 ATK-792ADF(218.154.x.x) Telnetログイン成功。約23.7秒・コマンド48個(昨日の最多)・ダウンロード12件(昨日の最多)・completeness 43 で昨日全体の最高値。ところが意図の配列が空である — ひとつも分類されなかった。このエイリアスが唯一の配信元である検体は1バイトのファイル(01ba4719…、11回)と202バイトのPOSIXシェルスクリプト(0c99433c…、1回)で、11+1=12 でダウンロード数と一致する
  8. 事実 hxxp://5[.]182[.]210[.]174/ok から1,608バイトのBourne-Againシェルスクリプトが落とされたが、昨日一日に互いに異なるハッシュ2つが記録された — c850a285… と 7a5dcc03…。どちらも1,608バイト、どちらも配信元 ATK-10149C 一箇所・各1回。同じURL・同じサイズが 8/18・8/19 には 6aa5054a…、8/20 には b7728639… だった。四日にわたってハッシュ4種で、そのうち2種が昨日一日のうちに出た
  9. 事実 306バイトのPOSIXシェルスクリプト(a6296a79…、hxxp://185[.]93[.]89[.]72/wget)が配信元5箇所から5回観測。配信元は ATK-3F4FA3 · ATK-42B427 · ATK-D9B325 · ATK-E07AC3 · ATK-338C04。8/17・8/18(13箇所)・8/19(7箇所)・8/20(8箇所)に続いて五日連続で同じハッシュ・同じURLであり、配信元の数は最低値
  10. 事実 389バイトのOpenSSH RSA公開鍵(a8460f44…)が互いに異なる配信元10箇所から10回観測。URL未記録。8/16 10箇所 → 8/17 12箇所 → 8/18 16箇所 → 8/19 12箇所 → 8/20 8箇所 → 昨日10箇所で、六日連続で同じハッシュ
  11. 事実 圧縮を解いて初めて出てきた12個のURL(31[.]77[.]227[.]121/bins/ 系統)からは、昨日もダウンロードが0件 — 8/20に続いて二日連続。この12件は監視リストに載り続けている
  12. 事実 意図分類 — 偵察(システム)1,154回、実行権限付与181回、ファイルダウンロード109回、ダウンロード後実行107回、痕跡削除12回、永続化(SSH鍵の埋め込み)11回、偵察(ネットワーク)1回。全コマンド1,910個のうち偵察(システム)が約60.4%。「偵察 — ネットワーク」は8/20には項目自体がなかったが昨日1回再び現れ、「防御の無力化」は昨日も項目がない
  13. 事実 セッション1,845件 / ユニーク接続元205箇所 / ログイン試行1,519回 / コマンド1,910個 / TTY録画1,250件。ポート2222(SSH)1,564件、ポート2223(Telnet)281件 — Telnetは全体の約15.2%だが、完結性上位5セッションは昨日もすべてTelnet(8/20 11.4%、8/19 22%、8/18 18%)
  14. 事実 認証情報の組み合わせ nobody/nobody は互いに異なるIP4箇所からしか出ていないのに試行は151回 — 一箇所あたり約37.8回。逆に admin/admin はIP18箇所から35回で一箇所あたり約2回。同じ「頻出の組み合わせ」でも叩き方が正反対である
  15. 事実 SSHクライアントのフィンガープリント・クラスタは計38個(8/17 33 → 8/18 36 → 8/19 37 → 8/20 37 → 昨日38)。最大クラスタは f555226df1963d1d3c09daf865abdc9a(SSH-2.0-libssh_0.9.6)、昨日IP11箇所・累計169箇所。リストに載った8個のクラスタはすべて検体の配信なし — 8/20には配信したクラスタが1個あったが昨日は0個。0425c279610910d2d9aef3b285e59b86(SSH-2.0-PuTTY_Release_0.70)は昨日IP3箇所・累計3箇所で、累計と当日が同じである

事実 表の中で目に留まる行が二つあります。ひとつは05:51の ATK-4CA329 — 意図が5種でもっとも幅広いのに ダウンロードは0件 です。もうひとつは14:00の ATK-792ADF — コマンドもダウンロードも昨日の最多なのに 意図がひとつも分類されていません。 どちらも昨日の主題にしなかった理由がここにあります。数字は大きくても、何が起きたのかを説明する根拠がありません。

フィンガープリントが取れる層と、実際に破られる層

事実 SSHで入ってくる接続には クライアントのフィンガープリント が残ります。接続プログラムが最初に差し出す挨拶の構成がツールごとに少しずつ違うので、その値をまとめると「接続元は違っても同じプログラム」だと分かります。昨日このフィンガープリントの束は38個で、アーカイブ五日のうち最多でした。

事実 ところが昨日の完結性上位5セッションは すべてTelnet であり、フィンガープリント・クライアント値はすべて空文字列です。Telnetにはその挨拶の手続きがそもそもありません。

事実 リストに載った8個のフィンガープリントの束は、ひとつも検体を落としていません。8/20にはひとつあったのに、昨日は0個です。

推定 整理すると、フィンガープリントが取れる層(SSH・1,564セッション)と 実際にファイルが落ちてくる層(Telnet・281セッション)が、昨日も分かれていました。セッション数だけ見ればTelnetは15.2%です。その比重で防御の順序を決めると、実際に破られた100%を見逃します。

事実 そしてフィンガープリントは ビルドのフィンガープリントであって人のフィンガープリントではありません。 同じディストリビューションの既定の接続プログラムを使う、互いに知らない人たちも同じ値を持ちます。

どうやって入ってきたか — 昨日もパスワードです

事実 昨日のログイン試行は 1,519回 です。観測区間を一日として見れば、1分に一度 ドアノブを回してみた計算になります。接続元は205箇所なので、一箇所あたり平均約7.4回です。

事実 互いに異なるIP3箇所以上で観測された組み合わせだけを抜き出すと、こうなります。

ID パスワード 観測されたIP数
admin admin 18箇所
345gs5662d34 345gs5662d34 10箇所
root root 8箇所
root admin 5箇所
nobody nobody 4箇所
oracle oracle 4箇所
user user 4箇所
root 12345 4箇所
root 1234 4箇所
root 3245gs5662d34 4箇所
ubuntu 123456789 3箇所
admin abc123 3箇所
portal portal 3箇所
kali kali 3箇所
ubuntu rootroot 3箇所
root qwe123456 3箇所
chris 123456 3箇所
root password 3箇所
clawdbot clawdbot 3箇所
admin 1qaz@WSX 3箇所

事実 ここで叩き方が分かれます。admin/admin はIP18箇所から35回 — 一箇所が二回ほど 入れてみて去ります。逆に nobody/nobody はIP4箇所だけなのに151回 — 一箇所が三十八回ずつ 叩きました。広く一回ずつなでる側と、狭く掘り下げる側が、同じ日に一緒に来ました。

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

事実 昨日もCVEやエクスプロイトを参照した侵入経路はありませんでした。すべて認証情報でした。

残していったもの

昨日観測された検体とアドレスのすべてです。値を押すとコピーされます — ハッシュは読むためにあるのではなく、ブロックリストに入れるためにあります。hxxp:// と [.] はそのままにしてあります。

sha256
bb36568c1f0a4f4d604cc67f8692506291eb1ffd217a451ffc846c94daa094403,013バイトのBourne-Againシェルスクリプト · 配信元1箇所(ATK-377ED5)・1回 · 新規の配布元から落とされた最初のファイル
url
hxxp://176[.]65[.]139[.]196/bins/kla[.]sh上のスクリプトのアドレス。このホストはアーカイブ 8/16~8/20 になかった新規の配布元である
sha256
979bd80a9ffde500946e02911d2824eab5fb25c265086b6569e6fff6977d21a6133,452バイトのELF 32-bit LSB Intel 80386, statically linked·stripped · 配信元1箇所(ATK-377ED5)・1回 · アーカイブにx86 ELFのダウンロード記録はなかった — 昨日が初めて
url
hxxp://176[.]65[.]139[.]196/bins/px86上の実行ファイルのアドレス
sha256
ed6bae2157415fa2477745b620368c5056d2a57a0c8a98648cd9352f8f3e248d244,420バイトのELF 32-bit MSB MIPS-I, statically linked·stripped · 配信元1箇所(ATK-377ED5)・1回 · ファイル名 pmips は監視リストの 31[.]77[.]227[.]121/bins/pmips と同じだが、ホストが異なり、サイズも 8/16 の51,104バイト・8/19 の52,272バイトの約4.7倍である
url
hxxp://176[.]65[.]139[.]196/bins/pmips上の実行ファイルのアドレス。フォルダの規則とファイル名の規則が監視リストと重なる
sha256
c850a2851bfe46c6761f09b21368f167afa8b2745800618ebbb926caf7fa80ba1,608バイトのBourne-Againシェルスクリプト · 配信元 ATK-10149C・1回 · 下の 7a5dcc03… と同じURL・同じサイズなのにハッシュが異なる — 昨日一日で二種類
sha256
7a5dcc03b6274d723da5ff6fe15a8a4b332daa6f56a928fd64f65d04f4ba1f0b1,608バイトのBourne-Againシェルスクリプト · 配信元 ATK-10149C・1回 · 8/18・8/19 は 6aa5054a…、8/20 は b7728639… で、同じURL・同じサイズ・異なるハッシュが四日目
url
hxxp://5[.]182[.]210[.]174/ok上の二つのスクリプトのアドレス。アドレスもサイズもそのままなのに中身だけが変わる
sha256
a6296a79f44e21b76604d2d2bbf795d2cf380f70e39d45fbf166707ff3b4a6a4306バイトのPOSIXシェルスクリプト · 配信元5箇所(ATK-3F4FA3 · ATK-42B427 · ATK-D9B325 · ATK-E07AC3 · ATK-338C04)・5回 · 8/17~8/20 と同じハッシュ・同じURLで五日連続であり、配信元の数は最低
url
hxxp://185[.]93[.]89[.]72/wget上のスクリプトのアドレス。五日連続で同じアドレス
sha256
a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2389バイトのOpenSSH RSA公開鍵 · 配信元10箇所・10回 · URL未記録 · 8/16~8/20 と同じハッシュで六日連続
sha256
01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b1バイトのファイル(中身を判別する手がかりがない) · 配信元1箇所(ATK-792ADF)・11回 · URL未記録 · このセッションのダウンロード12件のうち11件がこのファイルである
sha256
0c99433c7d433d65ab890dcee20b330f262379d532bc76f91e18f09ecfa5fb54202バイトのPOSIXシェルスクリプト · 配信元1箇所(ATK-792ADF)・1回 · URL未記録
sha256
4af5a5c98ad132095c6fbe7b02c242153a190a01cc321e50a916a0ca46fbaa629バイトのASCIIテキスト · 配信元1箇所(ATK-BECAD3)・5回 · URL未記録 · 8/18・8/19・8/20 にも同じハッシュ・同じエイリアス
sha256
1193dde1c831808bf6f2db6f5b850b846b8a7f870873ec3b8a347f21cc5d96e39バイトのASCIIテキスト · 配信元1箇所(ATK-A64398)・1回 · URL未記録
sha256
a9b1c85a7bd78dd1112ecc75c9070ea8c53078831a17aa09ebeb287fe6e21b729バイトのASCIIテキスト · 配信元1箇所(ATK-A64398)・1回 · URL未記録 · 上の 1193dde1… とともにこのセッションのダウンロード2件を成す

事実 リストの中で hxxp://5[.]182[.]210[.]174/ok の二行が目に留まります。アドレスも同じ、サイズも1,608バイトで同じなのに、ハッシュだけが違います。同じ場所に置かれたファイルが静かに入れ替わったという意味 です。8/18・8/19・8/20・昨日は二回 — 四日にわたって四種類であり、そのうち二つが昨日一日のうちに出ました。「このファイルは危険」とハッシュに名札を付けて防ぐやり方がなぜ何度も後手に回るのか、この二行が答えです。何が変わったのかは、中身を含めないので言えません。

事実 そして389バイトのOpenSSH RSA公開鍵が、六日目も同じハッシュで出ています。昨日は配信元10箇所です。389バイトなら ショートメッセージ二行ほど の大きさです。この小さなファイルが authorized_keys(許可された鍵のリスト)に一行として入ると、パスワードなしで入ってこられる鍵 が玄関にひとつ掛かります。パスワードを全部変えても、その鍵は残ります。

攻撃の段階に移すと

観測された行動を MITRE ATT&CK という国際的な分類表に対応させると、こうなります。IDを押すと原文の説明を直接見られます — 私たちの言葉を信じずに確認していただいて構いません。すべて[推定]です。 私たちが見たのはコマンドであって、攻撃者の意図ではありません。

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

事実 最後の行 T1027.002(圧縮・パッキングによる隠蔽)には但し書きを付けなければなりません。これは監視リストの12個を生み出した 以前のUPX圧縮検体 に基づく項目です。昨日落とされたELF二つは、記録が statically linked stripped までしか残っておらず、パッキングが被せられていたかどうかは、このデータでは言えません。

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

推定 2016年から続く Mirai ボットネット系統 と侵入の構造が同じです。Telnetの初期パスワードで入った後、ウェブサーバーの /bins/ パスからCPUの種類別の実行ファイルをダウンロードし、合うものを動かす方式です。昨日取得された名前(px86・pmips)と監視リスト12個の名前の規則がこの方式と一致し、完結セッション5件がすべてTelnet・パスワード経路であるという点も符合します。米国司法省の起訴・有罪答弁の記録が残っており、複数のベンダーの公開分析レポートがある事案です。

推定 Gafgyt(Bashlite)系統 とも噛み合います。シェルスクリプトが先に落ちてきて、そのスクリプトがCPUの種類別の静的リンク実行ファイルを順に試す構造です。昨日の組み合わせ — シェルスクリプト kla[.]sh ひとつ + 静的リンク・シンボル除去のELF二つ(x86・MIPS)が同じ /bins/ の下から一つのセッションで一緒に落ちてきたこと — が、この構造と同じです。

事実 ところが、この二つの事例がひとつだけ確かに指し示すことがあります。どちらもソースが公開された系統なので、互いに無関係な運営者がそれぞれ同じ規則の配布元を立てるのはよくあることです。 フランチャイズのマニュアルがインターネットに丸ごと出回っているようなものです。だから「新しい店が同じ看板で登場した」という昨日の観測はこれらの事例と方向が同じであり、「二つの店の店主が同じ人物なのか」は、これらの事例が答えてくれません。

では何をすべきか

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

  1. Telnetのような遠隔接続を切ります。 昨日Telnetは全セッションの15.2%ですが、完結セッション5件はすべてTelnetです。Telnetはパスワードがそのまま流れていき、鍵認証という選択肢そのものがありません — 切る以外に方法がありません。ルーター・ネットワークカメラの設定で「リモートアクセス」「Telnet」「遠隔管理」を探して切っておいてください。
  2. 既定のアカウント・初期パスワードを変えます。 ログイン試行1,519回、完結セッション5件はすべてログイン成功です。コマンド1,910個は すべてログインに成功した後に 実行されたものです。上の表の組み合わせをお使いなら、それで全部です。
  3. 機器が外からファイルを取得できないようにします。 昨日はファイルダウンロード109回、実行権限付与181回、ダウンロード後実行107回です。外へ出ていく接続が塞がれていたなら、ATK-377ED5 はダウンロードの段階で切れます。特に昨日落ちてきた二つの実行ファイルは静的リンクなので、ディストリビューション・バージョンと無関係に動きます。 ここが最後に断ち切れる地点でした。
  4. ログイン失敗の回数を制限します。 nobody/nobody ひとつの組み合わせを四箇所が一箇所あたり三十八回ずつ叩いたのに、何も引っかかりませんでした。しかもセッションひとつが5〜10秒で終わるので、「長くつながっている接続」を基準に定めたしきい値には、そもそも引っかかりません。
  5. ~/.ssh/authorized_keys ファイルが変わったら通知を受け取ります。 昨日は鍵の埋め込みの意図が11回、同じハッシュの公開鍵を残した配信元が10箇所です。ATK-4CA329 は検体を一件も保存できなかったセッションなのに、鍵の埋め込みの段階まで分類されました。ウイルス対策ソフトが捕まえる実行ファイルがなく、鍵ファイルを直接覗かなければ、破られたという事実そのものが分かりません。
  6. ログを機器の外に保存します。 痕跡削除が12回観測されました(8/18 19 → 8/19 13 → 8/20 8 → 昨日12)。昨日のようにセッションが10秒で、残るものが実行ファイル二つだけという類型は、ログがなければ 初めて見る配布元があったということすら突き止められません。 TTY録画1,250件が残っていたからこそ、10秒のうちの流れをたどり直せました(内容はこの記事に含めません)。

事実 「パスワードの代わりに鍵認証を使ってください」は、昨日のデータでは 中程度 の推奨です。昨日ログインに成功した完結セッションはすべてTelnetであり、Telnetには鍵認証がありません。そして1,519回のうちSSHの取り分がどれだけかをデータが分けてくれないので、「鍵認証を有効にしていたら昨日の侵入は防げた」と言う根拠がありません。

昨日一日の全体

セッション 1,845件
ユニークIP 205箇所
ログイン試行 1,519回
実行されたコマンド 1,910個
SSH (2222) 1,564件
Telnet (2223) 281件

接続元一箇所あたり平均約9.0セッション、約7.4回の試行です。

昨日観測された配布元・C2(176[.]65[.]139[.]196、185[.]93[.]89[.]72、5[.]182[.]210[.]174 など)はC-TASへ通報しました。新しいアドレスである 176[.]65[.]139[.]196 が昨日の通報分の核心です。転送レイヤの成功のみ確認されており、KISA側での取り込みの有無は別途確認が必要です。

60秒で見る

同じ観測分を短い動画にもしました。動画は なぜファイル二つを両方とも取得していったのか に焦点を当てています。

私たちが分からないこと

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

  • 三つのファイルが本当にその一つのセッションが取得したものなのか。 ATK-377ED5 のダウンロード数が3で、このエイリアスだけを配信元として持つ検体がちょうど3件ですが、データがセッションと検体を1:1で結び付けてくれるわけではありません。ATK-792ADF(12件=11+1)・ATK-A64398(2件)も同じやり方の対応付けです。
  • 176[.]65[.]139[.]196 と 31[.]77[.]227[.]121 が同じ運営者・同じインフラなのか。 確認できるのは、/bins/ というフォルダの規則と p+CPU名の規則が同じで、pmips という名前が文字まで一致するというところまでです。公開ソース系統なので、無関係な運営者も同じ規則を使います。
  • 以前のアドレスが二日連続で0件である理由。 配布元が止まったのか、私たちのハニーポットにその要求が来なかったのかを区別できません。「新しいホストへ移った」と言う根拠も、このデータにはありません。
  • 昨日 pmips が大きくなったのか。 244,420バイトで 8/16(51,104)・8/19(52,272)の約4.7倍ですが、ホストが異なります。名前だけが同じ、互いに別のファイルである可能性があります。
  • なぜ x86 と MIPS の二種類だけを取得していったのか。 このサーバーをその二つに絞って判断した結果なのか、もっと試したが失敗したのかを、データが区別してくれません。コマンドの原文とTTYリプレイがないので、順序も分かりません。
  • ATK-792ADF の意図がなぜひとつも分類されなかったのか。 completeness 43 で昨日の最高値であり、コマンド48個・ダウンロード12件なのに、意図の配列が空です。分類器が捉えられなかったのか、分類対象ではないコマンドだったのか、説明がありません。このセッションを主題にしなかった理由でもあります。
  • completeness の値がなぜその値なのか。 算式がデータにありません。ATK-792ADF は意図が0個なのに43で、意図5種の ATK-4CA329 は17です。8/18・8/19・8/20 にも同じ項目が未解決のまま残っています。
  • hxxp://5[.]182[.]210[.]174/ok が一日に二種類を送り出した理由。 要求ごとに新しく作られるのか、短い周期で入れ替えられるのかが分からず、中身を含めないので何が変わったのかも言えません。
  • 1バイトのファイルが11回繰り返し保存された理由。 ダウンロード失敗の結果なのか、意図された動作なのかが分かりません。8/17 にも同じ形がありました。
  • ATK-4CA329 がダウンロードに失敗したのか、取得したが保存されなかったのか。 意図には「ファイルダウンロード」「ダウンロード後実行」があるのに、ダウンロード数は0です。8/18・8/19・8/20 に続いて4度目です。
  • コマンド総数1,910個と意図分類の合計1,575回が食い違う理由。 ひとつのコマンドが複数の意図に分類されるのか、分類されないコマンドがあるのか、説明がありません。
  • 8/16~8/20 の配信元が昨日の配信元と重なるのか。 エイリアス(ATK-XXXXXX)はソルトを混ぜて作ります。ATK-10149C・ATK-BECAD3 が以前のブリーフにも同じ検体とともに出てきますが、ソルト処理の方式が文書化されていないため、日付をまたいだ同一接続元の根拠としては使いませんでした。したがって公開鍵を埋め込んだ配信元の数(10 → 12 → 16 → 12 → 8 → 10箇所)も合算できません。
  • フィンガープリントのリストが上位いくつかなのか全数なのか。 クラスタの総計は38なのにリストは8個です。したがって「昨日検体を配信したクラスタがない」というのは、その8個の範囲内での 事実です。
  • SSH-2.0-ZGrab ZGrab SSH Survey(フィンガープリント dd9bcf09…、昨日IP2箇所・累計34箇所)の性格。 公開されているインターネットスキャナのツール名ですが、研究・測定目的なのか攻撃の準備なのかを、このデータでは区別できません。
  • 0425c279…(SSH-2.0-PuTTY_Release_0.70)が本当に昨日初めて観測されたのか。 当日3箇所 = 累計3箇所なのでそう見えますが、累計集計の開始時点が明示されていません。
  • 9バイトのASCIIテキスト3種(4af5a5c9…・1193dde1…・a9b1c85a…)が何なのか。 中身がブリーフにありません。4af5a5c9… は配信元が1箇所なのに観測は5回です。
  • 同じハッシュの公開鍵を10箇所が残した理由。 同じツールを使った結果なのか、鍵を共有した結果なのかが分かりません。8/16~8/20 にも同じ項目が未解決です。
  • Discord Webhook URL 1件。 どのセッション・どの検体と結び付くのかが明示されていないため、昨日の事実関係には入れませんでした。8/20 も同じ理由で除外しました。
  • 集計の数値が一日全体を覆っているのか。 主要なセッションがUTC 00:25~14:00 にまたがっており、生成時刻は15:05Zです。観測区間が明示されていません。上で「1分に一度」と書いたのも、一日全体を仮定した計算です。
  • tty_recordings_available(127)・samples_on_honeypot(43)と集計上のTTY録画(1,250件)の関係。 説明がありません。
  • C-TAS通報の取り込み・活用の有無。 転送レイヤの成功のみ確認されました。
  • 背景となる脆弱性統計(CVE 4,555件 / 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データベースを持っていません。推定しません。新しい配布元 176[.]65[.]139[.]196 のホスティング事業者も同様に分かりません。
  • 地理的位置 — 同じです。IPの地理情報は、そもそも帰属の根拠にもなりません。
  • VPN・Tor・クラウドかどうか — 判別する手段がありません。
  • VirusTotal の検知結果 — 未連携です。昨日確保したELF2件(979bd80a…・ed6bae21…)がどの系統として検知されるのか、このデータでは言えません。検体の分類は MalwareBazaar のタグを使います。
  • User-Agent — SSH・TelnetにはUser-Agentそのものが存在しません。HTTP攻撃は別のソースです。
  • CVEとの結び付き — SSH・Telnet攻撃は脆弱性を参照しない場合がほとんどで、昨日の観測分もパスワードを狙ったものでした。

近所に新しい店ができました。店主が誰なのかは最後まで分かりません。ところが看板の書体とメニュー名に見覚えがあるということは分かります — 以前のメニュー表を書き写しておいたからです。書き写していなかったら、昨日の記録には「初めて見るアドレス、ファイル三つ」とだけ書かれていたでしょう。

いま家にあるルーターやネットワークカメラも、毎日その看板の前を通り過ぎています。誰もメニュー表を書き留めておかないなら、私たちが知っていることはずっと0のままです。


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