
Sha1-Huludは私たちの生活に再び潜り込み、急速に広がり、これまで以上の破壊を引き起こしています。SFシリーズ「デューン」の有名な砂虫にちなんで命名されたこの攻撃は世界的な組織にも影響を与えています。2025年9月16日に初めて広範囲に拡散して以来、このワームは、以下の手法で急速に増殖し、高い影響を与える能力を実証してきました:
- npm パッケージ開発者の侵害された GitHub 認証情報を悪用し、人気の npm パッケージを武器化します。この記事の執筆時点で、約800の感染パッケージが報告されており、その多くは広く使用されているものです。
- 侵害された npm パッケージがダウンロード・インストールされると、GitHub、npmパッケージリポジトリ、および AWS や Azure などのクラウドプロバイダの認証情報を収集します。
- 収集された認証情報をGitHubの公開リポジトリに公開します。この記事の執筆時点で、 25,000以上のリポジトリが作成されています。
- 収集した認証情報を悪用し、さらに多くの npmパッケージを侵害します。
この変種には以下のような新しい動作があります:
- 有用な認証情報が収集できない場合、マシンのホームディレクトリ内のデータを削除します
- 侵害されたホスト上でC2コマンドを実行するためにGitHubリポジトリのディスカッション機能を使用し、コード実行にはセルフホストのGitHub Actionsランナーを利用します。
- 流出した認証情報を含む gitリポジトリに新しい命名規則を使用:名前に「aoy7angy5kwcq64fb7」のような UUID を使用し、「Sha1-Hulud: The Second Coming」のような異なる複数の説明を設定します
検出機会と必要なログ
適切な監視視点からログを収集していれば、SHA1-Huludを検出するさまざまな機会があります:
GitHub
GitHub Enterprise 監査ロギングは必須です。検出機会は以下の通りです:
- ランダムな UUID で命名された新しいパブリックリポジトリの作成、説明文は “Sha1-Hulud: The Second Coming”
- 「SHA1HULUD」という名前でのセルフホストランナーの登録
- GitHub Discussions と相互作用する、またはそれを使用する GitHub Actions ワークフローの作成
エンドポイント
エンドポイントでの検出の鍵となるログ・ソースには、ファイル監視とプロセス監視があります(プロセス監視にはコマンドライン監査が含まれるべきです)。検出機会は以下の通りです:
- setup_bun.jsプレインストールスクリプトの実行を示すプロセス活動
- 侵害された NPMパッケージのダウンロードまたはインストールを示すファイルの活動
- 影響を受けたマシン上のユーザーのホームディレクトリのファイルの迅速な削除
- github アクション用のローカルランナーのプロセスアクティビティインストール
クラウドプロバイダー
主なログソースには、AWS CloudTrailログとMicrosoft Entra IDログがあります。クラウドログの主な検出機会は、Trufflehogのようなツールを使用してクラウド認証情報の収集を検出することです。
SHA1-Huludマルウェアの分析は現在進行中であり、新しい情報については、マルウェア分析の参考資料を再度確認することを推奨します。
検出の機会をいくつか探ってみましょう。
Sumo Logic クラウド SIEM のお客様に関連するクエリと組み込みルール
GitHubにフォーカス
これらの検出はGitHubの活動に焦点を当てており、GitHub Enterprise監査のロギングが必要です。GitHub Enterprise監査ログを取り込む手順については、 Sumo Logic のドキュメント をご参照ください。
手法:盗み出された秘密情報は、ランダムなUUIDにちなんで命名された新しいパブリックリポジトリにアップロードされ、説明文は「Sha1-Hulud: The Second Coming」です 。
Step Securityの分析では、SHA1_Huludは「ホストのフィンガープリンティングを行い、クラウドボルトを漁り秘密情報をスキャンし、すべてをJSONブロブとしてランダムなUUIDにちなんで命名された新しいパブリックリポジトリに流出させ、説明文は『Sha1-Hulud: The Second Coming』とする」とあります。
クエリ流出した認証情報用に作成されたリポジトリを検索します
This query will return new git repositories created over the time period specified. As mentioned above, the name of the repository will be a random string such as “aoy7angy5kwcq64fb7” and its description could be “Sha1-Hulud: The Second Coming.” Ideally, we could search for the description, but the GitHub create-repo.create logs do not include the repository description. You will need to scan the output for repository names that are UUIDs, perhaps refining your search for repositories with names of 18 or more characters.
_index=sec_record_audit metadata_product="GitHub Enterprise Audit" normalizedAction="create"
| where metadata_deviceEventId = "create-repo.create"
| count by user_username, repository
手法:C2コマンドを実行するために、侵害されたホスト上に「SHA1HULUD」という名前の新しいセルフホストランナーを作成します
wiz.ioの分析 では、SHA1-Huludは「感染したマシンを『SHA1HULUD』という名前のセルフホストランナーとして登録する」と報告しています。
クエリー:セルフホスト型ランナー登録のレビュー
このクエリーは、指定された期間内に登録されたセルフホストランナーを返します。上のリポジトリ作成クエリと同様、GitHub のログには有用な情報の一部が欠けています:ランナーの名前です。そのため、リポジトリ、ユーザー名、ユーザーエージェント文字列などの他のメタデータを異常な活動についてスキャンする必要があります。
_index=sec_record_audit metadata_product="GitHub Enterprise Audit"
| where metadata_deviceEventId = "create-repo.register_self_hosted_runner"
| count by repository, user_username
エンドポイント重視
手法:npm プリインストールスクリプトによるマルウェアのインストール
StepSecurityが彼らの記事で説明しているように、侵害されたnpmパッケージは、プリインストールスクリプトを介して被害者のマシンにSHA1-Huludをインストールします:「攻撃はnpmがパッケージをインストールした瞬間に始まり、package.jsonの次のエントリがトリガーとなります。
{
"scripts": {
"preinstall": "node setup_bun.js"
}
}
クエリ:SHA1-Hulud プリインストールスクリプトのコマンドライン
次のクエリは、SHA1-Hulud プレインストールスクリプトのコマンドラインに一致するプロセス作成レコードを検索します:
_index=sec_record_endpoint action="ProcessCreate"
| where commandLine matches /node\s+setup_bun\.js/
手法:ユーザーのホームディレクトリから削除された書き込み可能なファイル
Koiの分析によるとマルウェアが認証や永続性の確立に失敗すると、被害者のホームディレクトリ全体を破壊しようとします。具体的には、このマルウェアは、現在のユーザーが所有するホームフォルダ下の書き込み可能なファイルをすべて削除します。
クエリ:ユーザーのホームディレクトリからのファイル削除数 (Windows)
以下のクエリは、ユーザーのホームディレクトリで発生するファイル削除を伴う、イベントID 23または26(ファイル削除イベント)のMicrosoft Sysmonログを検索します:
_index=sec_record_endpoint
| where metadata_deviceeventId = "Microsoft-Windows-Sysmon/Operational-23" or metadata_deviceeventid = "Microsoft-Windows-Sysmon/Operational-26"
| where changetarget matches /C:\\Users.*/
| count by device_hostname
注記:理想的には、関心のあるファイルアクティビティは、 Microsoft Sysmon (イベントID 23)または Microsoft Object Access Auditing (イベントID 4600 および 4663)などのログソースを介したファイルシステム監視で検出されます。ただし、監視対象ディレクトリが監査用に設定されていることを確認する必要があります。言い換えれば、すべてのファイル操作がログ記録されていることを確実にするのは困難です。他のログソースタイプに依存する必要があるかもしれません。この場合、Koiの分析レポートで言及のあるコマンドラインを検索します:
クエリ:ホームディレクトリからのファイル削除を示すコマンドライン (Windows)
次のクエリは、SHA1-Hulud が使用する既知のコマンドラインに(正規表現を使用して)一致するコマンドラインを持つプロセス作成記録を検索します:
_index=sec_record_endpoint action="ProcessCreate"
| where commandLine matches /del\s+\/F\s+\/Q\s+\/S\s+C:\\Users/
クラウド重視
手法:Trufflehog を使用したクラウド認証情報の取得
Aikidoによると、その後、自動化ツール(TruffleHog)を使用して、パスワード、APIキー、クラウドトークン、GitHubまたはnpm認証情報などの機密情報を検索します。
ルール:Trufflehog の使用とクラウド機密情報の列挙を検出するSumo Logic ルール
Sumo Logicは、Trufflehogの使用を含む、機密情報の収集を検出するためのSIEMルールを提供します。例には以下が含まれます:
– Trufflehog AWS Credential Verification が検出されました:match-s00925
– Trufflehog AWS 認証情報検証を実行する初回確認 IP アドレス:first-s00086
– AWS CloudTrail – 非 Amazon IP からの GetSecretValue: MATCH-S00246
– AWS Secrets Manager の列挙:match-s00825
推奨の緩和策と改善策
Panther Labs、StepSecurity、Aikidoによるものなど、ここで参照された複数の記事には、秘密鍵のローテーション、セルフホストランナーの削除、npmパッケージの使用の監査、CI/CDログやリポジトリの作成のレビューなど、詳細な改善ガイダンスが含まれています。
終わりに
SHA1-Hulud攻撃は、エンドポイントだけでなく、CI/CDパイプラインやクラウドプレゼンスも含め、組織で使用されている様々なテクノロジーにまたがる包括的なロギングの重要性を示すもう1つの例です。包括的なロギングは、ログソースの監視ポイントに最も適した検出ルールを活用するのに役立ち、複雑な攻撃を早期に検出する最善の機会を提供します。


