SSHをインターネットに公開してサーバーを運用している人なら、誰でもログに同じパターンを目にしているはずです。世界中のIPアドレスから、自動化されたスキャナーが延々とログインを試み続けます。その後に続く一般的なイメージとしては、攻撃者がシェルを奪取し、システム内を物色しながらコマンドを打ち込む、というものでしょう。しかし、11台の研究用ハニーポットで記録された実態は、それとはまったく異なるものでした。
チェコ工科大学プラハ校の研究者らが実施した調査では、11台のSSHハニーポットが5月下旬から6月上旬にかけての15日間、ドイツ・フランクフルトのクラウドサーバー上で稼働しました。これらのハニーポットは合計177,622件の認証済みセッションを記録しており、いずれもログインに成功した攻撃者によるものです。
これらのセッションの内訳は、著しく偏った結果を示しました。クライアントがログインして1つのコマンドを実行し、出力を読み取ってから切断するという「非対話型セッション」が、全体の99.23%を占めていたのです。
一方、ハニーポットの研究分野が本来対象としてきた対話型シェルセッションは、わずか0.10%にとどまりました。残りのわずかな部分はファイル転送が占めています。非対話型セッションには特有の動作パターンがあります。クライアントは認証を行い、SSHのexecリクエストを通じて単一のコマンドを発行し、サーバーは端末を割り当てることなくチャネルを閉じます。この一連のやり取りは1秒未満で完了し、人間がタイピングするよりも速い速度です。これらはスキャナーやエクスプロイトスクリプトがマシン速度で動作しているものであり、ホストに関する特定の事実を確認するためだけにログインし、そのまま立ち去っているのです。
他者のセンサーでも成立する結果
これらのハニーポットは、大規模言語モデルを用いて現実的なシェル出力を生成するオープンソースツール「AdvancedShelLM」の改造版で稼働していました。ローカルでホストされたモデルがほとんどのセッションを処理し、バックアップとして2つのOpenAIモデルが使用されました。バックエンドはハニーポットが返す応答を制御するものであり、今回の測定対象である「攻撃者が送信したトラフィック」自体には、このモデルは影響を及ぼしません。
この結果が自分たちの環境固有のものではないことを確認するため、研究者らは数千台のCowrieセンサーを基盤とするハニーポットサービスの運営者であるCZ.NICが保有する独立したデータセットと比較を行いました。このデータセットには、同じ期間中に記録された25万件を超えるログイン済みセッションが含まれていました。少なくとも1つのコマンドを伴うセッションのうち、92.67%がちょうど1つのコマンドのみを伴っていました。このパターンは、別の運営者が管理するハードウェア上でも同様に確認されたのです。
トラフィックの大半は偵察活動
最も一般的な非対話型コマンド上位10種は、そのトラフィックの41.59%を占めており、その大半はマシンに関する基本情報を収集するものでした。オペレーティングシステムとカーネル情報を報告するunameのバリエーションが、リストの首位を占めていました。他にも、プロセッサ数、ログイン中のユーザー、グラフィックハードウェア、システムの稼働時間を尋ねるコマンドが確認されています。これらのコマンドは、そのマシンが再度調査する価値があるかどうかを自動化されたキャンペーンが判断するための情報を収集しています。
自分が「罠」かどうかを確認するスキャナーも存在
比較的少数のコマンド群は、これとは異なる役割を担っていました。一部のスキャナーは、応答してくる相手が実際にコマンドを実行しているかどうかを検証していたのです。研究チームは、この種のセッションを2,178件記録しました。あるキャンペーンでは、base64エンコードされた文字列を送信してデコードを試みており、これは正常に動作するシステムであれば既知の答えが返る操作です。他にも、単純な算術演算を要求したり、バイナリの中身をダンプしたり、ファイルを書き込んでから読み戻したりするものがありました。
これは、言語モデルを基盤とする新しい世代のハニーポットにとって重要な意味を持ちます。モデルは、もっともらしく見えるが実際には誤ったシェル出力を生成してしまう可能性があるからです。計算結果を検証したり、文字列をデコードしたり、ファイルが実際に保持されているかを確認したりするスキャナーであれば、たった1つのコマンドでその違いを見抜くことができます。こうしたハニーポットが成功するかどうかは、この検証を突破できるかどうかにかかっているのです。
ハニーポット運営者が攻撃者をフィンガープリンティングするという話は、以前からよく知られています。しかし今回、その逆のパターンも確認されました。一部のセッションでは、Cowrieやkippoといったプロセスをリストアップしたりシステムファイルが書き込み可能かどうかをテストしたりするなど、既知のハニーポットの痕跡を探る動きが見られたのです。ただし件数は少なく、著者らはこの点について慎重な扱いをしています。
スキャナーが検証していたのは、出力結果とマシンの状態でした。研究チームは、すべてのセッションについてプロンプトインジェクション文字列の有無、およびAIやモデル名への言及の有無をスクリーニングしましたが、いずれも検出されませんでした。攻撃者が言葉巧みに言語モデルを出し抜こうとしているのではないかという懸念については、少なくとも現時点でのこのデータからは、それを裏付ける根拠はほとんど見当たりません。
数年前から定着している習性
過去の記録は、この傾向がすでに定着した行動であることを示しています。CZ.NICのアーカイブは2017年まで遡り、4億件を超えるセッションを保有していますが、非対話型トラフィックは2018年頃から一貫して過半数を占めています。2024年10月には急激な変化が1つ確認されており、非対話型の割合はわずか1か月で97.4%まで上昇し、全体の件数の急増と合わせて17ポイント以上の跳ね上がりを見せました。
この結果は、ハニーポットの評価方法に対して警鐘を鳴らすものでもあります。多くの設計は「エンゲージメント」、つまり攻撃者がどれだけ長く滞在し、どれだけ多くのコマンドを実行したかを基準に成功度を測っています。しかし、ほぼすべてが1秒未満の単発コマンドで構成されるトラフィックストリームでは、こうした指標はほとんど機能しません。対話型シェルしか提供せず、非対話型リクエストを拒否するハニーポットは、そのハニーポット自身が作り出した「攻撃者の行動」の一種を記録しているに過ぎないのです。
ログを埋め尽くすログイン試行の大半は、いわば選別作業です。自動化されたクライアントがホストの実在を確認し、後で使うために記録した上で立ち去っていきます。この結果の価値は、そのパターンを認識し、ノイズをキャンペーン単位でグループ化することで、1000件の1秒間の接触を、その背後にあるわずか一握りの作戦へと集約できる点にあります。
翻訳元: https://www.helpnetsecurity.com/2026/07/03/research-non-interactive-ssh-attacks/