侵害ホストを「中継点」に変える新型インプラント
セキュリティ企業Blackpointは、インシデント対応中に新たな悪意あるインプラント「RoadK1ll」を発見した。このマルウェアは、攻撃者が一度侵害したホストを足がかりに、通常はネットワーク外から到達できない内部システムやサービスへと静かに侵入拡大(ラテラルムーブメント)するための専用ツールだ。
Node.js製・WebSocket通信で検知を回避
RoadK1llはNode.jsで実装された軽量なリバーストンネリングインプラントで、カスタムWebSocketプロトコルを使って攻撃者のインフラとの接続を維持する。
注目すべきは、感染ホスト側でインバウンドリスナー(外部からの着信待ち受け)を開かない点だ。代わりに感染ホスト側からアウトバウンドのWebSocket接続を攻撃者制御のサーバーへ確立し、そのトンネル越しにTCPトラフィックを中継する。
Blackpointは次のように説明している。「攻撃者はRoadK1llを利用して、外部から直接アクセスできない内部サービス・管理インターフェース・他ホストへの接続を開くよう指示できる。これらの接続は侵害済みマシンから発信されるため、そのマシンが持つネットワーク上の信頼と位置情報を引き継ぎ、ペリメーター(境界防御)を実質的に回避する」
WebSocketはHTTPSと同じポート(443番)を利用することも多く、通常の業務通信に紛れ込みやすい。また、1本のトンネル上で複数の同時接続をサポートするため、複数の内部ターゲットと並行してやり取りすることも可能だ。
シンプルなコマンドセット
RoadK1llがサポートするコマンドは最小限に絞られている。
コマンド 機能
CONNECT
指定ホスト・ポートへのTCP接続を開く
DATA
アクティブな接続を通じて生トラフィックを転送
CONNECTED
接続成功を確認
CLOSE
アクティブな接続を終了
ERROR
失敗情報をオペレーターへ返す
このシンプルさが、ツールの軽量性・柔軟性・展開のしやすさを実現している。
切断時の再接続機能、ただし永続化機能は持たない
WebSocketチャネルが切断された場合、RoadK1llは自動で再接続を試みる。これにより攻撃者はノイズを生じさせることなく持続的なアクセスを維持できる。
一方で、Blackpointはレジストリキー・スケジュールタスク・サービス登録といった従来型の永続化機構は持たない点も指摘している。プロセスが生きている間だけ動作するという設計だ。研究者らはこれを「より現代的で目的特化型の秘匿通信実装」と評価しており、防御側の検知をより困難にしている。
検出指標(IoC)
BlackpointはRoadK1llのハッシュ値および攻撃者が使用したIPアドレスを含む、ホストベースの侵害指標(IoC)を公開している。企業のセキュリティチームは、自社ネットワークにおけるNode.jsプロセスからの不審なアウトバウンドWebSocket接続を監視することが対策として有効だ。
日本企業への示唆
このようなラテラルムーブメント型攻撃は、外部からの侵入を防ぐファイアウォールや境界防御だけでは防げない。ゼロトラスト・アーキテクチャの導入や、ネットワーク内部のEDR(エンドポイント検知・対応)強化、異常なアウトバウンド通信の可視化が重要な対策となる。
元記事: New RoadK1ll WebSocket implant used to pivot on breached networks