おとりサーバー「ハニーポット」を公開!どんなサイバー攻撃が来るのか検証してみた

おとりサーバー「ハニーポット」を公開!どんなサイバー攻撃が来るのか検証してみた

インターネットに公開したサーバーへ、どんな接続や操作が来るのか。我々は、接続相手の操作を記録するおとり「ハニーポット」を公開し、約40時間のログを調べた。AI向けの指示も置き、それに従う操作があるかを確かめた。

使ったのは、遠隔操作用のSSH接続を受け付けるハニーポットのCowrieだ。OSやファイル、コマンドの応答を模倣し、ログイン後の入力やファイル転送を記録する構成にした。

AI向けの指示を置いたCowrieがログインを受け入れた記録は1,400件で、うち87.5%は、同じ送信元IPからのechoの反復に対応する記録だった。

繰り返し以外には、CPUやGPUを調べるコマンド、複数の機種に対応するとみられるファイル群、SSHの認証用の鍵を書き込もうとする入力が見つかった。指示への反応とともに、ログイン後の行動を見ていく。

おとりサーバーを、どういう構成で公開したのか

別の隔離実験では、Cowrieにサーバーの所有者を名乗る指示を置き、既知のAIに調査させた。目印の文字列「マーカー」を表示するechoコマンドを求めると、指示ありでは20試行中3試行、指示なしでは20試行中0試行で実行された。

公開観測の条件と、ログの数え方をまとめる。

  • 観測対象:AI向けの指示を置いた「罠あり」と、置かない「罠なし」のCowrieを観測した。罠ありではログインメッセージや管理文書にマーカーの表示を求める指示を置いた。
  • 公開・集計期間:罠ありのCowrieは2026年10月16日に公開。17日夕方から19日朝までの約40時間を、2台とも同じ期間で別々に集計した。
  • 比較の条件:2台は認証条件や返すOS情報も異なるため、件数差をAI向け指示だけの効果とは解釈しない。
  • 接続・認証:接続から切断までを1セッションと数える。「認証成功」は観測用の条件でログインを受け入れた記録だ。1接続で何度もログインを試す場合があるため、接続数と認証数は別々に数えた。
  • 送信元IP:接続元のネットワーク上のアドレスを数える。同じIPを複数人が使う場合がある。
  • コマンド入力:Cowrieは長いコマンドを部分ごとに記録することがあるため、同じセッションの入力をまとめて操作を確認した。
  • 集計からの除外:隔離実験の記録は混ぜず、動作確認のセッションと、回収時に二重保存された同一のログを除いた。接続の識別情報を照合し、新しい接続で繰り返された操作は別々に数えた。

公開用と管理用の接続を分ける

我々がログ回収などの管理に使う接続経路は、公開用のSSH接続と分けた。おとりサーバーから外部へ出る通信も制限した。

公開観測とログ回収の構成
インターネットからの接続接続・認証・ログイン後の操作を観測
罠ありのCowrieログインメッセージ・管理文書にAI向けの指示を配置。
罠なしのCowrieAI向けの指示を追加しない。
ログ保存・分析回収時点のログを保存し、接続ごとに操作を照合

約40時間で、どれくらいアクセスがあったか

約40時間の記録罠ありのCowrie罠なしのCowrie
接続の記録6,8697,817
送信元IPの種類168332
認証成功(ログインを受け入れた記録)1,40099
コマンド入力のあるセッション1,34689
ファイルのアップロード231

罠ありのコマンド入力の記録は1,648件だった。

同じechoが、6時間以上繰り返されていた

10月17日21時13分から18日3時35分まで、同じ送信元IPから、xsecという文字列を表示する`echo xsec`が繰り返し入力された。

入力時刻の間隔の中央値は約19秒だった。ログインやコマンドの応答を確かめる用途は考えられるが、誰が何のために繰り返したかは分かっていない。

認証成功の大半は、一つの反復だった

認証成功の内訳(100%)1,400件
87.5%
同じechoの反復:1,225件(87.5%)それ以外:175件(12.5%)

元の記録を保存したうえで反復を分け、残り175件のログインで何が行われたかを調べた。

同じ送信元IPから、罠なしのCowrieにも同じechoが入力されていた。こちらは3セッションだった。表示を求めていたのはマーカーとは異なるxsecという文字列で、我々が置いた指示に従った記録ではない。

相手は、こちらがおとりだと確かめているのか

サーバーの環境をまとめて調べる長いコマンドも送られていた。入力には、次の確認が含まれていた。

  • 環境の情報:OS、CPUの種類とコア数、GPU、稼働時間、ログイン履歴をまとめて確認する。
  • 別の取得方法:コマンドが使えなければ、別の場所の同名コマンドや、情報が保存されたファイルを調べる。
  • 応答と実行可否:存在しない名前のコマンドを呼び出してエラー文を保存しようとする。短いスクリプトをファイルに書き、実行できるかも試す。

OSや、コマンドを解釈するシェルによって、エラー文や使える機能は変わる。Cowrieにも未対応のコマンドや書き方があるため、応答の違いからおとりだと気づく可能性はある。ただし、同じ確認はソフトウェアを実行する機種を選ぶ場合にも使える。今回の入力だけでは、おとりの検知が目的だったか、どう判定したかまでは分からない。

この型の長文入力は、罠ありで37件、罠なしで4件。送信元IPはそれぞれ3種類と4種類だった。

ファイルとSSH鍵を持ち込んだ相手は、何をしたか

罠ありのCowrieでは、同じ送信元IPからの3セッションで、毎回7ファイルがアップロードされた。コマンドをまとめたシェルスクリプト2本と、ARMやx86などCPUの種類を示す名前のファイル5本だ。異なるCPUのサーバーに対応する配布物のように見える。

同じ7ファイルを、別の時刻に3回送信していた

公開機への送信時刻(JST、分単位)1セッションのファイル数
10月17日19時19分7
10月17日19時42分7
10月19日0時01分7

全23件のアップロードのうち、21件がこの3回分だった。残り2件は、SSHサーバーのプログラムと同じsshdという名前のファイルだ。名前だけでは、どのようなプログラムなのかは分からない。

この3セッションの入力には、スクリプトの実行に加え、SSH認証用の公開鍵を書き込む処理が含まれていた。鍵を書いたファイルを変更しにくくする指定もあった。

この入力は、再び接続する手段を残す「永続化」を狙ったものと読める。

Cowrieに残ったのは、接続元から送られたコマンドとファイル転送の記録だ。実際のOSでプログラムが動いたり、認証設定が変わったりした成功記録とは分けて扱った。取得したファイルも実行していない。

AI向けの罠に、反応はあったのか

罠ありでコマンド入力のあった1,346セッションを調べ、マーカーの文字列や指示を置いたファイル名を検索した。一致する入力記録は0件だった。

検索で確認できるのは、指定した文字列を含む入力だ。ログインメッセージを読んだだけの場合や、別の書き方でファイルを読んだ場合は、この検索では捉えられない。0件という結果だけで、AIエージェントが接続しなかったとは判定できない。

長いコマンドや規則的な操作も、従来の自動実行スクリプトで送れる。公開観測では入力する側のツールが見えないため、コマンドの見た目だけでAI利用と分類することは避けた。

ハニーポットの運用には、いくらかかったか

10月16〜20日の構築・観測・ログ回収までに使ったクラウド料金は、約3,560円だった。公開観測2台と準備用1台をまとめた費用で、ログの保管や閲覧も含む。

CPU・メモリ・保管・通信の料金内訳

コア時間・GiB時間・GiB月は、CPUのコア数や容量に利用時間を掛け、複数台分を合算した使用量を示す。

用途使用料金今回の使用量
サーバーのCPU1,768円401.4コア時間
サーバーのメモリ944円1,605.62GiB時間
ディスク746円36.52GiB月
ネットワークの監視・分析85円3項目・各182リソース時間
外向き通信の中継4円0.14GiB・2.37時間
サーバーの有料通信8円0.56GiB
閲覧機能と認証情報の保管4円処理・通信・保管
ログの検索・保管など0円—

費用の約4分の3はサーバーのCPUとメモリだった。

攻撃する側にも、設備や通信、調査に費用や時間がかかる。攻撃者は、侵入のしやすさや得られる利益を見て、どのサイトやサーバーに手間をかけるか選んでいるのではないか。広く接続を試し、見込みのある対象に絞る進め方も考えられる。

今回のCPUやGPUの確認も、攻撃を続ける価値を判断するためだった可能性がある。ただし、今回のログだけでは、その目的までは特定できない。

運用してみて、何を残す必要があったか

  • ログイン件数だけでは、操作の違いは分からない。 同じ文字列の反復に加え、環境確認やファイルの持ち込み、認証用の鍵を書き込もうとする操作があった。接続・入力・ファイル転送を同じセッションで追うと、その違いを確かめられる。
  • 集計時点のログを残すと、件数を確かめ直せる。 ログは15分ごとに回収し、アーカイブと、内容の同一性を照合するハッシュを保存した。観測中も増え続けるログを回収時点の状態で残すことで、同じデータに戻って確認できる。
  • 今回の記録からAI利用の有無は判定できない。 指定した文字列の検索では、指示を読んで実行しなかった場合を捉えられず、長い入力や規則的な操作は従来のスクリプトでも送れる。

サーバーの設定やアクセス制御の検証について、お気軽にご相談ください。

ブログ一覧へ