AI News HubLIVE
站内改写2 分で読了

Manticore-projects/aurscan: Claude LLMを使用してAURパッケージのマルウェアをスキャン

aurscanは、ビルド前にAURパッケージのPKGBUILDをClaudeまたはローカルLLMで分析し、悪意のあるコードを検出するGoツールです。静的ルールとAI判断を組み合わせ、CHAOS RATやAtomic Archなどのサプライチェーン攻撃を防ぎます。yayラッパーを通じて透過的に統合され、複数のバックエンド(Claude、API、ローカルモデル)に対応し、fail-closedで安全性を確保します。

ソースHacker News AI著者: aiNohY6g

aurscanは、Manticore-projectsが開発したオープンソースツールで、Arch Linuxのユーザーリポジトリ(AUR)のパッケージをビルド前にスキャンし、悪意のあるコードを検出します。AnthropicのClaude言語モデル(またはローカル代替モデル)を使用して、PKGBUILDファイル、.installスクリプト、.SRCINFO、補助スクリプトを審査し、makepkgが1行でも実行する前に悪意のあるビルドをブロックします。

このツールの設計は、実際のサプライチェーン攻撃に基づいています。2025年7月、AURのfirefox-patch-bin、librewolf-fix-bin、zen-browser-patched-binがアップロードされ、source=()エントリがパッチに偽装され、実際には攻撃者のGitHubリポジトリを指し、ビルド時にCHAOS RATを実行しました。これらは一見普通のブラウザ修正に見え、約46時間後にようやく発見されました。2026年6月のAtomic Archキャンペーンでは、攻撃者が1500以上の放棄されたAURパッケージを乗っ取り、Gitコミット偽造を使って信頼できるメンテナーを装い、npm install atomic-lockfile(その後bun install js-digest)を実行するインストール後のステップを追加し、Rust資格情報窃取ツールとeBPFルートキットを展開しました。aurscanのプロンプトと静的ルールは、これらの攻撃のシグネチャを直接エンコードしています。

aurscanは2段階の検出メカニズムを採用しています。第1段階では、高速な決定論的静的ルール(オフラインで無料)を実行し、curl|bash、リバースシェル、資格情報アクセス、systemdの永続化、Atomic Arch攻撃シグネチャなどの既知のパターンを照合します。第2段階では、静的ルールのヒットとパッケージのAUR評判がClaudeまたはローカルモデルに渡され、微妙なケースについて判断します。モデルが設定されていない場合でも、静的ルールだけでfail-closedの判定が行われ、完全にオフラインでも保護されます。

このツールは、syayラッパーを介してyay AURヘルパーとシームレスに統合されます。syayは透過的にyayのエディタをaurscan-editにリダイレクトし、yayがビルドしようとするすべてのAURパッケージがスキャンされるようにします。さまざまなyayコマンド(-S、-Syu、インタラクティブ検索)に対応しています。スキャン結果は、クリーン、疑わしい、悪意のいずれかで、それぞれに対応する終了コード(0、1、2)があります。悪意のあるコードが検出された場合、ユーザーは中止(デフォルト)、aur-generalメーリングリストへの報告、または「INSTALL」と入力して強制的に続行を選択できます。

インストールは簡単です:リポジトリをクローンし、install.shを実行(Goが必要)、次にyayをsyayにエイリアスします。更新も同様です。認証方式は自動検出され、優先順位は高いものから:Claude Code CLI(APIキー不要)、ANTHROPIC_API_KEY、OpenAI互換のローカルエンドポイント、カスタム実行可能ファイルです。このツールは、スキャンごとのトークン数とコストを含む詳細な使用統計も提供します。

ローカルモデルに関しては、aurscanは信頼性の高い結果を得るために少なくとも14Bパラメータのモデル(例:qwen3:14b)を推奨し、32Bモデル(例:qwen2.5-coder:32b)が最適です。小さなモデル(3B以下)はほぼランダムな結果を生成するため、実用的ではありません。重要な設定パラメータには、コンテキストウィンドウ(8192以上を推奨)とタイムアウト(CPU推論では15分かかる場合があります)が含まれます。モデルの品質に関係なく静的ルールは常に実行され、モデルエラーやタイムアウトはfail-closedで疑わしいと判定されるため、ユーザーは常に保護されます。