ハッシュの賞味期限は一日だった — 傷まなかったのは先頭の一行だけ
昨日、私たちのハニーポットに一昨日とまったく同じアドレスから、まったく同じ名前のファイルが再び降ってきました。ところが実行ファイル三つは中身が丸ごと入れ替わっており、先頭のローダースクリプト一つだけが二日連続で同じでした。ブロックリストに書き込む値ごとに賞味期限が違うということを、昨日のデータが自ら測ってくれました。

冷蔵庫を開けると牛乳と塩が一緒に入っています。どちらも口に入れるものですが、もつ時間が違います。牛乳は数日で傷み、塩は何年置いてもそのままです。
だから冷蔵庫を整理するとき、私たちは品物ごとに違う日付を見ます。全部を同じ日に捨てもしないし、全部をそのまま置いておきもしません。
セキュリティで使うブロックリストも冷蔵庫とまったく同じです。リストにはいろいろな種類の値が混ざって入ります。ファイルの指紋、アドレス、ファイル名、行動の順序。ところがこれらの値の賞味期限は互いに違います。 あるものは一日で傷み、あるものは九日もちます。
昨日、私たちのサーバーに残った記録がその賞味期限を実際に測ってくれました。
昨日、リストが一つ、一日で傷みました
事実
まず数字から置きます。一昨日(8/23)、私たちは実行ファイル三つの指紋を書き取りました。c71d74ce…(48,352バイト) · 344bbdca…(57,104バイト) · 9f1897ce…(58,848バイト)。昨日、同じアドレスから同じ名前で降ってきたファイル三つの指紋はこうです。29fb2896…(40,372バイト) · 95f5156a…(55,648バイト) · 6210a1c6…(57,456バイト)。
事実 三つとも違います。 一つも一致しません。
ここで馴染みのない言葉を一つ解いておきます。ハッシュ(指紋)はファイル全体を計算して取り出した64桁の値です。ファイルの中の文字が一つ変わるだけで値が丸ごと変わります。だから「このファイルは危険」を記録するときにこの値を使います。人の指紋のようにファイルごとに一つ付くものだと考えてください。
事実
ファイルが置かれていたアドレスは一昨日と同じ hxxp://176[.]65[.]139[.]202 です。アドレスはわざと壊して書いています(hxxp://、[.]) — コピーして貼り付けても接続されません。ファイル名も daredevil.armv7l・daredevil.mips・daredevil.mipsel で一昨日と同じです。入ってきたエイリアスも ATK-31C779(94.154.x.x)で同じ、入ってきた経路もテルネットで同じです。
事実 同じ場所、同じ名前、違う中身。サイズはそれぞれ 7,980 · 1,456 · 1,392バイトずつ減りました。一つ目は元のサイズの約16.5%が削られ、残りの二つは2%台です。
推定 一昨日に書き取った指紋三つで作ったブロックリストは、24時間で全部外れました。 牛乳だったのです。
昨日一日を時間順に
時間順に並べるとこうなります。一番上の五行の時刻に注目してください。 時・分ではなく秒単位で連なっています。
- 事実 昨日の主題セッション①。ATK-31C779(94.154.x.x)、テルネットのログイン成功。約4.79秒間にコマンド3個、ダウンロード3件。意図4種 — 偵察(システム) · ファイルダウンロード · 実行権限の付与 · ダウンロード後実行。completeness 22。TTY録画あり(内容は非掲載)。テルネットなので指紋・クライアント値は空文字列である
- 事実 主題セッション②。最初のセッション終了の約18.4秒後に再侵入。約4.70秒、コマンド3個、ダウンロード4件、意図は同じ4種、completeness 25
- 事実 主題セッション③。二度目の終了の約71.9秒後。約4.73秒、コマンド3個、ダウンロード4件、completeness 25 — ② とすべての値が同じである
- 事実 主題セッション④。昨日このエイリアスのセッションの中で最も長く(約11.55秒)最も重い — コマンド6個、ダウンロード6件、completeness 33(昨日の最高値)。前後のセッションの二倍の分量である
- 事実 主題セッション⑤。約4.99秒、コマンド3個、ダウンロード3件、completeness 22。最初のセッション開始からここまで約2分55.3秒、セッション5件の継続時間の合計は約30.8秒である。5回すべて login_success=true であり、どの時点でもブロックされていない
- 事実 ATK-31C779 が唯一の配送元である検体は6種である — ① hxxp://176[.]65[.]139[.]202:80/telnet.sh、2,107バイトのPOSIXシェルスクリプト(ad19b70c…、6回) ② daredevil.armv7l、40,372バイトのELF 32-bit LSB ARM EABI4(29fb2896…、5回) ③ daredevil.mips、55,648バイトのELF 32-bit MSB MIPS-I(95f5156a…、5回) ④ daredevil.mipsel、57,456バイトのELF 32-bit LSB MIPS-I(6210a1c6…、3回) ⑤ daredevil.armv5l、50,096バイトのELF 32-bit LSB ARM version 1(eb05c127…、1回) ⑥ daredevil.armv6l、55,772バイトのELF 32-bit LSB ARM EABI4(06c0d953…、1回)。ELF 5種はすべて statically linked · no section header であり、各1個ずつ合わせると261,451バイトである
- 事実 一昨日(8/23)この配布元から出たELF 3種の指紋・サイズは c71d74ce…(48,352) · 344bbdca…(57,104) · 9f1897ce…(58,848) であり、昨日の同名の3種は 29fb2896…(40,372) · 95f5156a…(55,648) · 6210a1c6…(57,456) で指紋がすべて異なり、サイズはそれぞれ 7,980 · 1,456 · 1,392バイトずつ減った。一方ローダー telnet.sh は ad19b70c…・2,107バイトで二日連続同一である
- 事実 8/19 の主題エイリアス ATK-CA5936 が五日ぶりに再登場した。昨日このエイリアスが唯一の配送元である検体は399バイトのOpenSSH秘密鍵(43728fbf…、1回)と54バイトのASCIIテキスト(00b6f15c…、1回)で、8/19 に記録された指紋と完全に同じである。ただし 8/19 には二つのファイルが各3回であり、昨日は各1回である
- 事実 SSHクライアント指紋のクラスタが計41個で確認範囲最多である(8/17 33 → 8/18 36 → 8/19 37 → 8/20 37 → 8/21 38 → 8/22 40 → 8/23 40 → 昨日 41)。最大のクラスタは f555226df1963d1d3c09daf865abdc9a(SSH-2.0-libssh_0.9.6)で昨日のIPは19か所・累計216か所であり、当日・累計ともに最大値である。リスト9個のうち検体を実際に送り込んだクラスタは 16443846184eafde36765c9bab2f4397(SSH-2.0-Go、昨日のIP 4か所・累計28か所)一つだけで、8/21・8/22・8/23 は0個だった
- 事実 389バイトのOpenSSH RSA公開鍵(a8460f44…)を互いに異なる送信元19か所が残した。8/16~8/23 と同じ指紋なので九日連続である。送信元の数は 8/20 8か所 → 8/21 10か所 → 8/22 8か所 → 8/23 6か所と三日続けて減っていたが昨日19か所に反発し、意図分類の「永続化 — SSH鍵の設置」も 8/21 11回 → 8/22 9回 → 8/23 7回 → 昨日22回と揃って反発した
- 事実 hxxp://185[.]93[.]89[.]72/wget の306バイトPOSIXシェルスクリプト(a6296a79…)が昨日も同じ指紋で出た — 8/17~8/23 に続き八日連続である。ただし送信元は4か所で、8/17 6か所 · 8/18 13か所 · 8/19 7か所 · 8/20 8か所 · 8/21 5か所 · 8/22 15か所 · 8/23 6か所と比べて最低値である
- 事実 hxxp://5[.]182[.]210[.]174/ok から1,608バイトのBourne-Againシェルスクリプトがまた新しい指紋(7fc87b54…)で降ってきた。送信元は ATK-10149C 一か所・1回で、一昨日と同じエイリアスである。このURLの累計指紋は 8/18 以来8種になった — サイズは毎回1,608バイトで同じである
- 事実 集計値: セッション809件、ユニーク送信元201か所、ポート2222(SSH) 512件 · 2223(テルネット) 297件、ログイン試行410回、コマンド612個、TTY録画258件。テルネットの比率は約36.7%で 8/23 の18.2%の二倍である。意図の分布は偵察(システム) 130回、実行権限の付与123回、ファイルダウンロード54回、ダウンロード後実行47回、永続化(SSH鍵の設置) 22回、痕跡削除21回であり、合計397回でコマンド総数612個と215回の差がある
- 事実 原文を載せず個数だけを数えた認証情報の組み合わせが308件である。アーカイブ8件の記録の値(8/16 934 · 8/17 830 · 8/18 1,388 · 8/19 848 · 8/20 440 · 8/21 806 · 8/22 703 · 8/23 1,007)のどれよりも少ない。引用基準(互いに異なるIP 3か所以上)を超えた組み合わせは6個だけである
事実 表で真っ先に目に入るのは一番上の五行です。13時25分50秒に始まり、13時28分46秒に終わりました。 約2分55秒の中に五回です。そのうち実際につながっていた時間を全部足しても約30.8秒しかありません。残りは出ては入るまでの空き時間です。
3分の中に五回、五回とも開きました
事実
昨日の主題としたのはエイリアス ATK-31C779(94.154.x.x)です。テルネットで入ってきました。テルネットは非常に古い遠隔接続の方式です。平たく言えばインターネットの向こうからその機械のコマンド画面を直接叩けるように開けておいた通路なのですが、パスワードが暗号化されずそのまま流れていきます。
事実 五回の間隔は約 18.4秒 · 71.9秒 · 30.8秒 · 23.5秒です。カップ麺にお湯を注いで待つ3分、その中に五回が全部収まります。
事実 そして五回ともログインに成功しました。 五回とも何も止めませんでした。
事実 四つ目のセッションだけ形が違います。他の四つは約4.7~5.0秒にコマンド3個なのに、四つ目だけ約11.55秒にコマンド6個、ダウンロード6件です。前後のセッションのちょうど二倍の分量です。completeness の値も33で昨日最も高い値です。
推定 5秒のものを四回、11秒のものを一回。人が手で打てばこんなに均等にはなりません。決められた手順がそのまま再生されたという方に近いです。
事実
ただしここで線を引かなければなりません。私たちは送信元IPをそのまま置かず、ATK- で始まるエイリアスに置き換えて記録します。このときソルト(salt)という値を混ぜるため、日付が違えば同じIPでも別のエイリアスになります。一昨日の記録の ATK-31C779 と昨日の記録の ATK-31C779 は、同じ一日の中でだけつなげて見られる値です。
何を持っていったのか — 昨日は五種類でした
事実 昨日、このエイリアス一か所だけが配送元として記録されたファイルは六個です。
| ファイル | サイズ | 正体 | 一昨日との比較 |
|---|---|---|---|
telnet.sh |
2,107バイト | POSIXシェルスクリプト | 指紋・サイズそのまま |
daredevil.armv5l |
50,096バイト | ELF 32-bit LSB ARM version 1 | 昨日が初めて |
daredevil.armv6l |
55,772バイト | ELF 32-bit LSB ARM EABI4 | 昨日が初めて |
daredevil.armv7l |
40,372バイト | ELF 32-bit LSB ARM EABI4 | 指紋の入れ替え |
daredevil.mips |
55,648バイト | ELF 32-bit MSB MIPS-I(ビッグエンディアン) | 指紋の入れ替え |
daredevil.mipsel |
57,456バイト | ELF 32-bit LSB MIPS-I(リトルエンディアン) | 指紋の入れ替え |
馴染みのない言葉が四つあるので、その場で解いておきます。
- シェルスクリプト — コマンドを順番に書き留めておいたメモ用紙です。人が一行ずつ打つ代わりにファイル一つを実行すれば、書かれた順に動きます。2,107バイトならA4一枚に満たない文字量です。
- ELF — Linuxで使う実行ファイルの形式です。Windowsの
.exeに当たるものだと考えてください。 - statically linked(静的リンク) — 必要な部品を全部中に入れて持ち歩くという意味です。外から何も借りないので、そのCPUを使うLinuxであれば種類・バージョンに関係なく動きます。
- no section header(セクションヘッダーなし) — ファイル内の区画を分けて書いておいた案内板を取り外したという意味です。中を解析する側を難しくさせます。
事実
armv5l・armv6l・armv7l・mips・mipsel はすべてCPUの種類です。互いに互換性がありません。一昨日は三種類でしたが、昨日は五種類になりました。どれが合うか分からないので全部揃えておく方式であり、その揃えておく枠が昨日二つ増えました。
事実 そして昨日も一般的なPC・サーバーで動くx86系は一件もありません。 ARM・MIPS系はルーター・IPカメラ・NASのような機器でよく使われる規格です。オフィスの机の上ではなく、天井や壁に付いている機械の方です。
事実 五個を一つずつ合わせると261,451バイトです。約255KB、スマートフォンの写真一枚より小さいです。これが5秒のセッションの中で入ってきます。
そして傷まなかったもの — 先頭の一行
事実
telnet.sh は指紋 ad19b70c…、サイズ2,107バイトです。一昨日と一文字も違いません。 昨日この配布元で唯一変わらなかったファイルです。
事実 このファイルはローダーです。実行ファイルを直接抱えているのではなく、「どこから何を受け取って実行しろ」を書き留めたメモ用紙の役割をします。昨日観測された手順で先頭に来る一枚です。
推定 つまり昨日は二つのことが同時に起きました。運ばれたリストの中身は一日で全部入れ替わり、そのリストを手にしているメモ用紙はそのままでした。 指紋で作ったブロックリストがどこを狙っていたかによって、昨日の結果は正反対に分かれます。
事実 昨日のデータで測れる値の賞味期限をそのまま並べるとこうです。アーカイブで同じ値が連続して確認された日数です。
| リストに書く値 | 連続確認 | 昨日の状態 |
|---|---|---|
daredevil.* ELFの指紋 |
1日 | 一日で3種すべて入れ替え |
hxxp://5[.]182[.]210[.]174/ok の指紋 |
1日 | また新しい指紋。8/18 以来累計8種 |
telnet.sh の指紋 ad19b70c… |
2日 | そのまま |
配布元 176[.]65[.]139[.]202 |
2日 | そのまま |
9バイトのASCII 4af5a5c9… |
7日 | そのまま |
hxxp://185[.]93[.]89[.]72/wget の a6296a79… |
8日 | そのまま。送信元は4か所で最低 |
389バイトの公開鍵 a8460f44… |
9日 | そのまま。送信元は19か所で最多 |
事実 同じ表の中に一日ものと九日ものが一緒に入っています。 牛乳と塩を同じ棚に入れて同じ日付を貼っておいたようなものです。
事実
hxxp://5[.]182[.]210[.]174/ok は特に引っかかります。サイズは毎回1,608バイトでまったく同じなのに指紋だけがずっと変わります。8/18 以降このアドレス一つから累計八種類が出ています。
どうやって入ってきたのか — 昨日もパスワードです
事実 昨日のログイン試行は410回です。アーカイブ8件の記録のどの値よりも低いです(8/17 1,168 · 8/18 1,581 · 8/19 975 · 8/20 2,251 · 8/22 3,324 · 8/23 1,187)。
推定 一日全体を覆う数値として置けば、約3分30秒に一度の割合で誰かがドアノブを回してみた計算になります。セッション809件は約1分47秒に一度の割合です。静かな方でした。
事実 ところが破られたのは静かな日に破られました。 昨日の完結性上位5件のセッションはすべてログイン成功であり、その5件すべてが同じエイリアスです。
事実 互いに異なるIP 3か所以上で観測された組み合わせだけを抜き出すとこうです。
| ID | パスワード | 観測されたIP数 |
|---|---|---|
| 345gs5662d34 | 345gs5662d34 | 19か所 |
| admin | admin | 15か所 |
| root | 3245gs5662d34 | 11か所 |
| root | (空のパスワード) | 4か所 |
| root | root | 3か所 |
| root | 123456 | 3か所 |
事実 四行目を見てください。パスワード欄が空です。 互いに異なる四か所がそれぞれ「ただの空欄」でログインを試みました。それが通る機械があると知っているという意味です。
事実 そして308個の組み合わせは載せませんでした。互いに異なるIP 3か所未満からしか出なかったものです。一か所からしか出ていない組み合わせは、どこかで実際に流出した誰かのアカウントである可能性があるため、値は書かず個数だけ数えます。308件はアーカイブ8日のうち最も少ない値です。
事実
数字が一つ、三か所で重なります。345gs5662d34 の組み合わせの送信元が19か所、最大のSSH指紋クラスタの昨日のIPが19か所、389バイトの公開鍵を残した送信元が19か所です。
推定 同じ19か所かもしれません。ところがデータはこの三つの値を互いにつないでくれません。偶然重なったものと区別する方法がないので、ここでは「同じ」とは書きません。
五日ぶりに戻ってきた二つのファイル
事実
昨日の記録に、8/19 の主題エイリアスだった ATK-CA5936 が再び出てきました。残したファイルは399バイトのOpenSSH秘密鍵(43728fbf…)と54バイトのASCIIテキスト(00b6f15c…)の二つです。どちらも 8/19 に記録された指紋と完全に同じです。 ただし 8/19 には各3回で、昨日は各1回です。
事実
同じ日のSSH指紋クラスタのうち検体を実際に送り込んだクラスタはたった一つでした。16443846184eafde36765c9bab2f4397(SSH-2.0-Go)です。8/19 の記録が ATK-CA5936 の指紋として書き留めた値と同じです。8/21・8/22・8/23 はこうしたクラスタが0個だったので、四日ぶりです。
事実 ここでも線を引きます。指紋クラスタは接続プログラムが最初に差し出す挨拶文の構成で作ります。つまりこれはビルドの指紋であって人の指紋ではありません。 同じディストリビューション・同じライブラリを使う互いに知らない人たちも同じ値を持ちます。「同じ道具」までは言えても「同じ組織」とは言えません。
事実 そして肝心の、昨日最も完結性の高い侵入五件にはこの方法が使えません。テルネットなので指紋とクライアント値が空文字列だからです。テルネットにはその挨拶の手順がそもそもありません。
事実
一方、389バイトのOpenSSH RSA公開鍵(a8460f44…)は九日連続で同じ指紋で出ました。送信元の数は三日続けて減っていたのが昨日19か所に反発し、「SSH鍵の設置」の意図も7回から22回へと揃って跳ねました。389バイトならショートメッセージ二、三行の分量です。この小さなファイルが authorized_keys(許可された鍵のリスト)に一行入ると、パスワードなしで入ってこられる鍵が玄関に一つ掛かります。パスワードを全部変えてもその鍵は残ります。
残していったもの
昨日観測された検体とアドレスのすべてです。値を押すとコピーされます — 指紋は読むためにあるのではなく、ブロックリストに入れるためにあります。hxxp:// と [.] はそのままにしてあります。どの行が一日ものでどの行が九日ものなのか、説明欄も一緒に見てください。
ad19b70c4e523ef24baf5e062d2200e139b619b56049219d41cd0397faff2c402,107バイトのPOSIXシェルスクリプト(ローダー) · 送信元1か所(ATK-31C779) · 6回 · 8/23 と指紋・サイズが完全に同一である。昨日この配布元で唯一変わらなかったファイルhxxp://176[.]65[.]139[.]202:80/telnet.sh上記ローダーのアドレス。二日連続で同じ場所・同じ内容29fb2896608e2b8250ae782a68c1c10e0fc02b2e312da5a603cd8d491f4d0f8940,372バイトのELF 32-bit LSB ARM EABI4 · statically linked · no section header · 送信元1か所(ATK-31C779) · 5回 · 8/23 の c71d74ce…(48,352バイト)を置き換えた新規の指紋hxxp://176[.]65[.]139[.]202/daredevil.armv7l名前は一昨日と同じで中身だけ入れ替わった95f5156abcddb7fba0f4adb0915769fbad23256ac6344c791f10fdf08a1057ba55,648バイトのELF 32-bit MSB MIPS-I(ビッグエンディアン) · statically linked · no section header · 送信元1か所(ATK-31C779) · 5回 · 8/23 の 344bbdca…(57,104バイト)を置き換えた新規の指紋hxxp://176[.]65[.]139[.]202/daredevil.mips名前は一昨日と同じで中身だけ入れ替わった6210a1c6ff3c633555c8578b34caf5df58462fdfc65226b75ac2a0773e682a2b57,456バイトのELF 32-bit LSB MIPS-I(リトルエンディアン) · statically linked · no section header · 送信元1か所(ATK-31C779) · 3回 · 8/23 の 9f1897ce…(58,848バイト)を置き換えた新規の指紋hxxp://176[.]65[.]139[.]202/daredevil.mipsel名前は一昨日と同じで中身だけ入れ替わったeb05c12761cf7d2da32e0d6c1079e41f4239c94300d87e39c678bd345dc25b2250,096バイトのELF 32-bit LSB ARM version 1 · statically linked · no section header · 送信元1か所(ATK-31C779) · 1回 · 一昨日この配布元になかったアーキテクチャであるhxxp://176[.]65[.]139[.]202/daredevil.armv5l昨日新しくできた枠①06c0d953a56629d869230c7962836b020e0977e8086c1fbfb7e6470a6047dbc055,772バイトのELF 32-bit LSB ARM EABI4 · statically linked · no section header · 送信元1か所(ATK-31C779) · 1回 · 一昨日この配布元になかったアーキテクチャであるhxxp://176[.]65[.]139[.]202/daredevil.armv6l昨日新しくできた枠②。ELF 5種を一つずつ合わせると261,451バイトであるa6296a79f44e21b76604d2d2bbf795d2cf380f70e39d45fbf166707ff3b4a6a4306バイトのPOSIXシェルスクリプト · 送信元4か所(ATK-BF4E13 · ATK-EEF0E3 · ATK-338C04 · ATK-E74D5F) · 4回 · 8/17~8/23 と同じ指紋で八日連続であり、送信元の数は8日のうち最低であるhxxp://185[.]93[.]89[.]72/wget八日連続で同じアドレス・同じ指紋a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2389バイトのOpenSSH RSA公開鍵 · 送信元19か所(ATK-EF2527 · ATK-E2942E · ATK-D9A633 · ATK-CC691B · ATK-53EC65 · ATK-9C026E · ATK-9AAD87 · ATK-2A9957 · ATK-51B27B · ATK-2476C1 ほか、記録には10か所までしか表記されていない) · 19回 · URL未記録 · 8/16~8/23 と同じ指紋で九日連続。8/17・8/18 の記録はこのファイルを「外部からのダウンロードではなくセッション内で生成されたもの」として書いていた7fc87b548727d0d5cbef66216e496bb18b2b877075896fb7df181554e23b8e271,608バイトのBourne-Againシェルスクリプト · 送信元1か所(ATK-10149C) · 1回 · 新規の指紋。サイズは常に1,608バイトなのに指紋は 8/18 以来累計8種目であるhxxp://5[.]182[.]210[.]174/ok場所もサイズもそのままなのに中身だけ変わり続けるアドレス43728fbfb98bb39ff61a2db0fc2905bd6937997062b05b9ab8b186fdee18c09a399バイトのOpenSSH秘密鍵 · 送信元1か所(ATK-CA5936) · 1回 · URL未記録 · 8/19 と同じ指紋・同じエイリアスであり、五日ぶりの再観測である。設置されたものなのか持ち出そうとしたものなのかは記録が区別してくれない00b6f15c2274420217ed3098a9f5f00545bf1793d7a324fd18a7809cbbf5b12b54バイトのASCIIテキスト · 送信元1か所(ATK-CA5936) · 1回 · URL未記録 · 上記の秘密鍵と同じエイリアスであり 8/19 と同じ指紋である。内容が記録にないため何であるかは判断しない4af5a5c98ad132095c6fbe7b02c242153a190a01cc321e50a916a0ca46fbaa629バイトのASCIIテキスト · 送信元1か所(ATK-BECAD3) · 4回 · URL未記録 · 8/18~8/23 にも同じ指紋があったので七日連続である。内容は非掲載事実 このリストを上から下へ読むと、昨日の話がそのまま見えます。上の六行は昨日新しく書き直さなければならなかった値であり、下の三行は七日・八日・九日目の同じ値です。同じリストに入っていますが、もつ時間が違います。
攻撃の段階に移すと
観測された行動を MITRE ATT&CK という国際的な分類表に対応させるとこうです。IDを押すと原文の説明を直接見られます — 私たちの言葉を信じずに確認していただいて構いません。すべて[推定]です。 私たちが見たのはコマンドであって攻撃者の意図ではありません。
- T1110Brute Force — ログイン試行410回、引用基準を超えた組み合わせ6個 + 非引用308件推定
- T1078.001Valid Accounts: Default Accounts — admin/admin、root/root、root/123456 などで完結セッション5件すべてログイン成功推定
- T1082System Information Discovery — 「偵察 — システム」130回推定
- T1105Ingress Tool Transfer — 「ファイルダウンロード」54回、「ダウンロード後実行」47回、検体12種推定
- T1222.002File and Directory Permissions Modification: Linux — 「実行権限の付与」123回推定
- T1098.004Account Manipulation: SSH Authorized Keys — 「永続化 — SSH鍵の設置」22回、389バイトの公開鍵が送信元19か所推定
- T1070Indicator Removal — 「痕跡削除」21回推定
- T1608.001Stage Capabilities: Upload Malware — 176[.]65[.]139[.]202 という一つのホストが二日連続でローダー1種とアーキテクチャ別ELFを一緒に送り出し、その間にELFだけが入れ替わった推定
- T1027.002Obfuscated Files or Information: Software Packing — 圧縮を解いて初めて出た指標が記録にある推定
事実
最後の行には但し書きを付けなければなりません。T1027.002 の根拠である「圧縮を解いて初めて出た指標」は別のホスト(31[.]77[.]227[.]121)の検体から出たものです。昨日の daredevil 五個が圧縮されているかどうかは記録にありません。 ですからこの行は昨日の検体についての判断ではありません。T1070(痕跡の消去)もコマンドの原文がないため何を消したのか言えず、下位テクニックを付けませんでした。
どこかで見た気がするなら
推定
2016年から続く Miraiボットネット系およびその派生と配布の形が重なります。テルネットのデフォルトアカウントで入った後にローダーのシェルスクリプトを受け取り、CPUの種類ごとに別々にビルドした静的リンクの実行ファイルを順番にダウンロードして、合うものを実行する方式です。昨日観測された armv5l・armv6l・armv7l・mips・mipsel の構成とx86の不在は、サーバーではなく組込みLinux機器を狙うこの系統の配布の形と一致します。ソースが公開された後、派生系が頻繁に再ビルドして指紋がしきりに変わる点も昨日の観測と重なります。米国CISA(旧US-CERT)のアラート TA16-288A と複数ベンダーの公開分析レポートが残っている事案です。
推定 Gafgyt(Bashlite/Lizkebab/Torlus)系とも噛み合います。テルネット・SSHの弱い認証情報で入った後、シェルコマンドだけでアーキテクチャ別のバイナリを受け取って実行する構造です。数行のコマンドで全工程が終わる短いセッションの形が、昨日の約4.7~11.5秒と重なります。
事実
ただし私たちのデータには、マルウェアの系統名を判定する根拠がありません。 ですから「形が似ている」までしか書きません。daredevil は観測されたファイル名にすぎず、系統名やキャンペーン名ではありません。
では何をすべきか
推定 昨日のデータが指し示す順序です。
- デフォルトアカウント・初期パスワードを変えます。 昨日の完結セッション5件はすべてログイン成功です。上の表の六つの組み合わせのどれか一つでもお使いなら、それがすべてです。ログイン成功から実行ファイルの確保まで約4.7秒で終わりました。
- テルネットのような遠隔接続を切ります。 昨日のテルネットは297件です。全体のセッションが 8/23 の1,523件から809件へと半分以下に減ったのに、テルネットは 8/19 299 · 8/20 297 · 8/21 281 · 8/23 277 と同じ帯にそのままいます。総量に関係なく常に叩かれているという意味です。そしてテルネットはパスワードがそのまま流れていき、鍵認証という選択肢自体がありません — 切る以外に方法がありません。ルーター・ホームカメラの設定で「遠隔接続」「Telnet」「リモート管理」を探して切っておけば大丈夫です。
- 機器が外からファイルを受け取れないようにブロックします。 昨日はファイルダウンロード54回、実行権限の付与123回、ダウンロード後実行47回です。ログインはすでに破られた後なので、ここが実際の被害を止める最後の地点です。外へ出る道がなければローダーのメモ用紙だけが残り、実行ファイル261,451バイトは到着できません。
- ログイン失敗・反復接続を制限します。 同じ送信元が3分の中に五回入ってきたのに何も引っかかりませんでした。ただしこれ一つでは半分しか止まりません —
345gs5662d34の組み合わせは19か所からちょうど19回、root/3245gs5662d34は11か所から11回と、一か所あたりきっちり一度ずつです。このように散らして叩く側にはIP単位の制限がかかりません。二つの形が同じ日に一緒に観測されました。 ~/.ssh/authorized_keysファイルが変わったら通知を受け取ります。 昨日は鍵の設置の意図が22回、同じ指紋の公開鍵を残した送信元が19か所です。設置された鍵はパスワードを全部変えてもそのまま残ります。- ログを機器の外に保存します。 痕跡削除の意図が昨日21回で、8/23 の7回から三倍になりました。ログが機械の外に出ていなければ、消された後は元に戻せません。そして昨日この記事が成立した理由がログです — 一昨日の記録が残っていたからこそ「名前は同じなのに指紋が分かれた」を知ることができました。一日分だけ見れば、昨日のファイル六個はすべて「初めて見るもの」として記録されます。
- 指紋のリストには賞味期限があると前提して運用します。 昨日がその証拠です。実行ファイルの指紋は24時間もたず、ローダーの指紋一つは二日目も有効でした。リストを指紋だけで埋めず、変わりにくい値(アドレス、名前の規則、行動の順序)を一緒に置く方が、昨日のデータが指し示す方向です。
事実 「パスワードの代わりに鍵認証を使ってください」は、昨日のデータでは中程度の推奨です。ログインが成功した完結セッションがすべてテルネットであり、テルネットには鍵認証がないからです。
昨日一日の全体
| セッション | 809件 |
| ユニークIP | 201か所 |
| ログイン試行 | 410回 |
| 実行されたコマンド | 612個 |
| SSH (2222) | 512件 |
| テルネット (2223) | 297件 |
送信元一か所あたり平均約4.0セッション、約2.0回の試行です。
事実 8/23 と並べて置くと、セッションは 1,523→809、ログイン試行は 1,187→410 へと減りました。セッション809件は確認された値(8/20 2,607 · 8/22 3,553 · 8/23 1,523)のうち最低です。ところがテルネットだけは 277→297 でそのままです。 総量が抜けた結果、テルネットの比率は18.2%から約36.7%へと二倍になりました。
推定 テルネットの側は全体の流行と無関係に別に回っている流れに見えます。静かな日だからといって露出リスクが減るわけではありません。 昨日がその例です — 最も静かな日にアーキテクチャが三種から五種に増えました。
昨日観測された配布元・C2(176[.]65[.]139[.]202、185[.]93[.]89[.]72、5[.]182[.]210[.]174)はC-TASへ通報しました。トランスポート層の成功までしか確認されておらず、KISA側での取り込みの有無は別途確認が必要です。
60秒で見る
同じ観測分を短い映像にもしました。映像は変わった三つと変わらなかった一つを並べて見せる方に焦点を合わせました。
私たちが分からないこと
このブログは分かっていることと分からないことを分けて書きます。昨日の観測分で確認できなかったものです。
- どのセッションで何を受け取ったのか。 主題セッション5件のダウンロードの合計は20件(3+4+4+6+3)ですが、このエイリアスが唯一の配送元である検体6種の観測回数の合計は21件(6+5+5+3+1+1)です。1件が食い違います。 記録がセッションと検体を一つずつつないでくれません。特にローダー
telnet.shの観測6回がセッション5件より多い理由を確認できません。 - ELF三つの指紋が変わった理由。 コンパイルオプションが変わったのか、接続先アドレスのような設定値が新たに埋め込まれたのか、まったく別のコードなのか、判断する根拠がありません。サイズがそれぞれ 7,980 · 1,456 · 1,392バイト減ったという事実だけが確認されます。検体の内部を解析した結果はこの記録にありません。
- ローダーの中に何が書かれているのか。
telnet.shが二日連続で同じ指紋であることは確認できますが、その中でどのアーキテクチャをどの順序で試すのかは分かりません。一昨日3種・昨日5種という差が、ローダーを変えずに配布元にファイルを足しただけで生じたものなのかも確認できません。 176[.]65[.]139[.]196(8/21)と176[.]65[.]139[.]202(一昨日・昨日)が同じ運営者なのか。 前の三つの区切りが同じという以外に根拠がありません。私たちには事業者情報すらありません。8/23 に残したこの項目が昨日もそのままです。- 8/19 の
ATK-CA5936と昨日のATK-CA5936が同じ人物なのか。 エイリアスが同じなので同じマスキング済み送信元を指しているのは確かです。しかしエイリアスは身元ではありません。 五日の間にそのアドレスを使う主体が変わった可能性を排除できません。 - 399バイトの秘密鍵が設置されたものなのか、持ち出そうとしたものなのか。 記録がこの二つを区別してくれません。ダウンロードのリストにはありますが、アドレス欄が空です。8/19 に残した同じ項目がそのまま残っています。
- 指紋クラスタのリストが上位いくつかなのか全数なのか。 クラスタの総数は41なのにリストは9個です。したがって「検体を送り込んだクラスタが昨日は一つだけ」というのは、その9個の範囲内での事実です。
- TTY録画の数値二つがなぜ違うのか。 集計値は258なのに別の欄には156と書かれています。二つの値の定義の違いが説明されていないため、どちらが実際の保有数なのか断定しません。いずれの場合も録画の内容はこの記事に含めません。
- コマンド612個と意図分類の合計397回の差215。 約35.1%が分類されていません。その中に昨日述べなかった別の意図があるかもしれません。
- 三か所の「19か所」が同じ集合なのか。 認証情報の組み合わせ
345gs5662d34、libssh_0.9.6の指紋クラスタ、389バイトの公開鍵がすべて19です。記録が三つの値をつないでくれないため、偶然の一致と区別できません。 - Discord Webhookのアドレス1件。 昨日の検体から出たものなのか累計リストなのか明示されていないため、昨日の記述には使いませんでした。
- C-TAS通報の取り込み・活用の有無。 トランスポート層の成功だけが確認されました。
- 背景となる脆弱性の統計。 追跡CVE 6,579件 · CISA KEV 386件 · ランサムウェア確認98件はKISAのセキュリティ告知から取った背景の数値です。昨日のハニーポット観測と直接つながりません — 昨日のSSH・テルネット攻撃でCVEを参照した痕跡はありません。
そしてそもそも確認する手段がないものです。これは分からないこととは違います — 推定しない方が正解です。
- ASN・ISP — GeoIP・ASNデータベースを持っていません。推定しません。
- 地理的位置 — 同様です。加えてIPの地理情報はそもそも帰属の根拠にもなりません。どの国・どの企業・どの個人もこの記事で攻撃者として名指しされていません。
- VPN・Tor・クラウドの判別 — 判別する手段がありません。
- VirusTotalの検知結果 — 未連携です。昨日の
daredevilELF五個がアンチウイルスでどう検知されるのか、どの系統と呼ばれるのか言えません。 検体の分類はMalwareBazaarのタグを使います。 - User-Agent — SSH・テルネットにはUser-Agentそのものが存在しません。HTTP攻撃は別のソースです。
- CVEとの紐付け — SSH・テルネット攻撃は脆弱性を参照しない場合がほとんどであり、昨日の観測分もすべて認証情報でした。
- 原文資料 — この記事の根拠には、コマンドの原文・ペイロードの内容・TTYセッションの再生は含まれていません。送信元IPは後ろ二つの区切りが伏せられており、エイリアスはソルトを混ぜた値なので元に戻す対象ではありません。
冷蔵庫の話から始めました。
昨日分かったのはちょうどその程度です。私たちが一昨日書き取った指紋三つは一日で傷みました。 アドレスもそのまま、名前もそのままだったのに、中身だけが入れ替わりました。そして狙う機器の枠が三つから五つに増えました。
傷まなかったものもありました。先頭のメモ用紙一枚、telnet.sh 2,107バイト。八日目も同じ306バイトのスクリプト。九日目も同じ389バイトの公開鍵。同じリストの中に一日ものと九日ものが一緒に入っています。
牛乳と塩を同じ棚に入れて同じ日付を貼っておくと、毎朝まだ使えるものを捨てるか、傷んだものをそのまま置いておくことになります。リストを作るときこの値が何日ものなのかを一緒に書いておくこと、昨日のデータが勧めているのはそれ一つです。
そして昨日3分の間に五回持っていった五個は、すべてPC用ではなく機器用でした。今この記事を表示してくれているルーター、リビングの隅のホームカメラ、机の下のNAS。それらの機械の上で動くものです。
この記事は 2026-08-24 のハニーポット観測分を基に作成されました。送信元IPはブリーフのマスキング形式のまま表記し、配布アドレスは接続されないよう変形(defang)しています。引用した認証情報は互いに異なるIP 3か所以上で観測された6つの組み合わせのみを含めており、それ未満でしか観測されなかった308個の組み合わせは個数だけを明かし値は載せていません。
