テック技報最新号へ →
セキュリティ

SSH 鍵を盗まれても横に広がらせない(HashKnownHosts と短命の SSH 証明書、Panchan ワーム事例)

暗号資産採掘ワーム Panchan は、盗んだ SSH 秘密鍵と known_hosts の接続先一覧を使って次のサーバーへ広がる。known_hosts をハッシュ化して行き先を読めなくし、鍵そのものを短命の証明書に置き換えると、この横展開の材料を減らせる。

@MalwareBibleJP · 2026-10-19
#ssh#linux#lateral-movement#hardening#malware#known_hosts

背景

  • SANS ISC の DShield ハニーポットで Panchan の検体が捕獲された。2022 年に見つかった Go 製の P2P 型ボットネットで、SSH 鍵の窃取などで拡散し、ルートキットで居座り、Discord の Webhook を指令・監視用の通信先に使っていた。
  • ワームは動いているユーザーの ~/.ssh/known_hosts に載っているホストへ、盗んだ秘密鍵で接続を試みる。パッチ未適用で対策の甘いシステムが多いため、今も広がっていると報告者は説明している。

やること

  1. known_hosts をハッシュ化する: ~/.ssh/config に次を書くと、新しく記録するホスト名とアドレスがハッシュ化され、ファイルが漏れても接続先が一見してわからない。
    Host *
        HashKnownHosts yes

    既存の記録はハッシュ化されないので、ssh-keygen -H で別途変換する(元ファイルは known_hosts.old として残るので、確認後に消す)。

  2. 長期の秘密鍵を短命の証明書に置き換える: HashiCorp Vault などで署名した有効期限の短い SSH 証明書を使えば、盗まれた鍵の再利用は極めて難しくなる。
  3. インターネットに出す SSH を絞る: パスワード認証と root ログインを無効にして公開鍵認証だけにし、接続元を特定 IP や踏み台サーバーに限る。認証失敗を繰り返す IP は Fail2Ban で遮断し、可能なら多要素認証を足す。

感染の兆候(点検項目)

注意点

  • HashKnownHosts は接続先を隠すだけで、鍵が盗まれること自体は防がない。ハッシュ化後は ssh-keygen -F <ホスト名> で個別に検索できるが、一覧として目で見ることはできなくなる。
  • 解析側の小技として、報告者は検体に strings と grep をかけるだけで miner.go・spreader.go などのソースファイル名や Discord API の URL が見つかったとしている。

出典

X の元の投稿を開く