AIを活用したPaperCut攻撃が第2のRCEとグローバルな被害ネットワークを明らかに
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
ロシア語を話す脅威アクターがウクライナのインフラに対してターゲティングキャンペーンを実施し、特にデータ交換エコシステムとGraylogログサーバーに焦点を当てました。攻撃者はLog4Shellに基づくJNDIインジェクションチェーンを使用し、リモートコード実行を達成し、リバースシェルを展開しました。MikroTikとFortinetシステムに対して複数のエクスプロイトが試みられたものの、主な成功したアクセスは再利用可能なCommonsBeanutils2の逆直列化チェーンに依存していました。
調査
調査は、研究者が約17時間にわたって公開IPアドレス上に露出していたオペレーターステージングディレクトリを発見したことから始まりました。アナリストは攻撃者の作業ファイルを回収し、エクスプロイトスクリプト、ペイロードビルダー、シェル履歴、偵察出力を含んでいました。この露出により、初期のmasscan偵察からGraylogインスタンスでのコード実行成功に至るまでの完全な攻撃チェーンを再構築することが可能になりました。
緩和策
組織は、Graylogの配置を優先的にパッチし、JNDIルックアップが無効化されるか、適切なJavaセキュリティ制御によって厳しく制限されていることを確認する必要があります。アプリケーションサーバーからの無許可のLDAPおよびRMI接続をブロックするために、厳格なイグレスフィルタリングを強制するべきです。また、安全なAPIエンドポイントでのCSRF保護を施し、Javaベースのサービスからの異常な子プロセスをモニターするべきです。
応答
疑わしいJNDIアクティビティまたはウェブサービスから発生する予期しない子プロセスが検出された場合は、直ちに影響を受けたホストを隔離します。特に注目すべきは、 /api/system/sessions エンドポイントであり、承認されていないSSHキー、リバースシェル、またはピボットに使用された可能性のある恒久的トンネルのホストレベルのフォレンジック分析を実施すること。
攻撃の流れ
この部分はまだ更新中です。
検出
Log4j RCE [CVE-2021-44228] ポストエクスプロイテーション検出パターン(Windows)
Log4j RCE [CVE-2021-44228] ポストエクスプロイテーション検出パターン(Linux)
データ流出の可能性 / Bash経由のリバースシェル(コマンドライン経由)
疑わしいJava子プロセス[Linux](コマンドライン経由)
標準ツール経由のリモートファイルアップロード/ダウンロード(コマンドライン経由)
検出するためのIOCs(HashSha256):PaperCut攻撃者のAIツールキット内部:エージェント指示、エクスプロイトコード、2回目のRCE、45カ国以上の被害者
検出するためのIOCs(SourceIP):PaperCut攻撃者のAIツールキット内部:エージェント指示、エクスプロイトコード、2回目のRCE、45カ国以上の被害者
検出するためのIOCs(DestinationIP):PaperCut攻撃者のAIツールキット内部:エージェント指示、エクスプロイトコード、2回目のRCE、45カ国以上の被害者
MakeCB2.classを介してJavaサービスから生成されたリバースシェルの検出[Linuxプロセス作成]
ロシア語を話すオペレーターによるウクライナ国家データ交換システムへのターゲティングの検出[Linuxファイルイベント]
シミュレーション実行
-
攻撃のナラティブ&コマンド: 敵対者は国家交換ウェブアプリケーションの脆弱性を悪用しようとしています。管理トラフィックと同化するため、特定のヘッダを使用します
X-Requested-By: cli。彼らはセッション管理エンドポイント/api/system/sessionsを標的にし、fire3.shという悪意のあるシェルスクリプトの実行を試みます。この脅威アクターによって使用される特定のツールキットの特徴として知られているレスポンス内のUXP Verifier文字列の存在は、ウェブサーバー経由でリモートコードを実行する目的です。 -
回帰テストスクリプト:
#!/bin/bash # 検出ルールをトリガーするためのシミュレーション脚本 # 四つの検出基準に一致するリクエストをシミュレートします TARGET_URL="http://localhost/api/system/sessions" echo "[+] ターゲット攻撃リクエストをシミュレート中..." # 正確なヘッダーとリクエストパスを模倣するためにcurlを使用します。 # 注意:実際のサーバーの 'ResponseBody' を簡単に制御することはできないため、 # インターセプトプロキシやモックウェブサービスによって生成されたログを仮定します。 # 'UXP Verifier' が返される。 curl -X POST "$TARGET_URL" -H "X-Requested-By: cli" -H "Content-Type: application/json" -d '{"filename": "fire3.sh", "payload": "echo "UXP Verifier""}' --verbose echo "[+] シミュレーションコマンドが送信されました。" -
クリーンアップコマンド:
# システムに持続的な変更は加えられていませんが、モックサーバーが開始された場合: # pkill -f "python3 -m http.server" echo "[+] クリーンアップ完了。"