ストーム-0940がITおよびソフトウェアベンダーへのARTEX攻撃を拡大
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Storm-0940として追跡されている中国に関連する脅威アクターが、AI自律型侵入テストエージェントARTEXを利用して、ITおよびソフトウェアベンダーを標的にしています。攻撃は、Okta、Entra、Cognitoなどの認証プロバイダーに焦点を当て、認証の弱点を特定し、顧客データへのアクセスを得ることを目的としています。このアクターは、IPローテーションや頻繁なユーザーエージェントの変更を含む高度に自動化された適応的な行動を示し、検出を回避します。
調査
Wiz研究チームは、HTTPアクセスログ、AWS Cognito、Entra、Oktaからの認証プロバイダーテレメトリ、そしてARTEX関連のアーティファクトを分析することによりこの活動を特定しました。この調査により、ソースマップを通じたアプリケーションマッピング、認証の試行、アカウント回復ワークフロの乱用を含む再現可能なプレイブックが明らかになりました。このキャンペーンは最近のサプライチェーン活動にリンクしており、世界中の複数のソフトウェアセクターを標的にしていました。
緩和策
防御者は、認証およびアカウント回復エンドポイントに対して厳格なレート制限を実施する必要があります。特にOAuthフローやJWT検証など、認証プロバイダーの設定を強化することが露出を減らすために重要です。また、異常なスパイクや自動化された偵察に関連したパターンを監視するべきです。
対応
この活動が検出された場合、セキュリティチームは即座に失敗したログインの急増や異常なアクセス拒否イベントの数を調査すべきです。認証プロバイダーテレメトリをウェブサーバーログと関連付けて、自動化された偵察行動を特定します。適切な場合は、迅速にIPブロックを適用し、新しいインフラストラクチャや多様なユーザーエージェントからの続行試行を監視します。
検出に焦点を当てた対応の詳細を追加し、キャンペーンの攻撃シーケンスを明確にする
攻撃フロー
この部分はまだ更新中です。
検出
ウェブサービスユーザーおよびグループからのシェルコマンド実行による疑わしい持続性活動(via auditd)
疑わしいユーザーエージェントパターン(via web)
可能性のあるファイル含有パターン(via web)
可能性のあるOSコマンドインジェクションパターン(via webserver)
URLにおける可能性のあるパストラバーサルパターン(via webserver)
可能性のあるSSH Known Hostsディスカバリー試行 [Linux](via cmdline)
疑わしいウェブサーバーディレクトリで作成されたスクリプトファイル [Linux](via file_event)
IOCs(SourceIP)を検出する: ITおよびソフトウェアベンダーをターゲットにしたARTEX:Storm-0940が拡大する
IOCs(DestinationIP)を検出する: ITおよびソフトウェアベンダーをターゲットにしたARTEX:Storm-0940が拡大する
プロプライエタリアプリにおけるアカウント回復乱用の検出 [AWS Cloudtrail]
企業OktaおよびEntra IDへのパスワードスプレー攻撃 [Microsoft Windows Security Event Log]
ITおよびソフトウェアベンダーを標的にしたARTEX関連活動の検出 [Webserver]
シミュレーション実行
-
攻撃のストーリー & コマンド: 敵対者は標的のAPIサーフェスをマップするために偵察を行っています。彼らはまず、OpenAPIドキュメントをダウンロードしようとします(
/swagger/?format=openapi)。これは潜在的な隠れエンドポイントを識別するためです。ウェブサーバーのルーティングの堅牢性を確認するため、また「隠された」パスや構成エラーの可能性を探るため、攻撃者は直ちに完全にランダムな存在しないURI(/zzz-nonexistent-xyz123)へのリクエストを行います。この特定のシーケンスは、ARTEXキャンペーンの動作指紋に一致するように設計されています。 -
回帰テストスクリプト:
#!/bin/bash # ARTEX シミュレーション・スクリプト # ターゲット: ローカルホストウェブサーバー TARGET_URL="http://localhost" echo "[+] ARTEX偵察シミュレーションを開始します..." # ステップ1: selection1をトリガー(Swaggerドキュメントにアクセス) echo "[+] OpenAPIドキュメントへのアクセスを試みています..." curl -s -o /dev/null -w "%{http_code}" "$TARGET_URL/swagger/?format=openapi" echo -e "n[+] Selection 1がトリガーされました。" # ステップ2: selection4をトリガー(存在しないリソースを調査) # これはルールが必要とする'AND'条件です echo "[+] 存在しないリソースを探索中..." curl -s -o /dev/null -w "%{http_code}" "$TARGET_URL/zzz-nonexistent-xyz123" echo -e "n[+] Selection 4がトリガーされました。" echo "[+] シミュレーション完了。SIEMを確認して検出してください。" -
クリーンアップコマンド:
# シミュレーションによる永続的な変更はありません。 # テスト中に作成されたファイルがある場合は削除してください: rm -f simulation_test_output.log