| name | yay-security-check |
| description | yayのパッケージアップデート前にセキュリティ診断を行う |
| allowed-tools | ["Bash"] |
yay パッケージアップデート セキュリティ診断
yayでアップデート可能なパッケージを診断する。以下のステップで実施すること。アップデートの実行は絶対に行わない(診断のみ)。
ステップ1: アップデート対象パッケージの取得
yay -Qu
アップデート対象パッケージの一覧を取得する。対象がなければ「アップデート対象パッケージはありません」と報告して終了する。
ステップ2: AURパッケージの特定
yay -Qm
外部(AUR)パッケージを取得し、ステップ1のアップデート対象と照合してAURパッケージを特定する。
ステップ3: 各パッケージ情報の確認
アップデート対象の各パッケージについて以下を確認する:
yay -Si <pkg>
確認項目:
- リポジトリ(公式リポジトリ か AUR か)
- メンテナー
- 署名(Validatedかどうか)
- 依存関係
ステップ4: AURパッケージのPKGBUILD診断
AURパッケージについて PKGBUILDを取得して診断する:
yay -Gp <pkg>
以下の観点でPKGBUILDをチェックする:
ソースURL
- ソースが公式・信頼できるドメイン(github.com, gitlab.com, 公式プロジェクトサイト等)からか
- 短縮URLや不審なドメインが使われていないか
チェックサム
- sha256sumsまたはb2sumsが設定されているか
SKIPが使われていないか(スキップは危険)
不審なコマンド
prepare()/build()/package()関数内を重点的に確認:
curl/wget による外部通信(ソースとは別の追加ダウンロード)
eval、base64 -d 等の難読化・動的実行
/etc/、/usr/lib/、/usr/bin/ 等システムディレクトリへの不審な書き込み
$HOME、$PATH 等の環境変数の不審な操作
- バックグラウンド実行(
&、nohup)
- 権限昇格(
sudo、chmod 777)
メンテナ信頼性
AURページのURLを示す(ブラウザで投票数・コメント・フラグ状態を確認するよう案内する):
https://aur.archlinux.org/packages/<pkg>
ステップ5: 診断結果の報告
以下のフォーマットで各パッケージの結果を報告する:
## 診断結果
### <パッケージ名> [公式/AUR] - <現在バージョン> → <新バージョン>
判定: OK / 要注意 / 危険
<公式パッケージの場合>
- リポジトリ: <repo名>
- 署名: あり/なし
<AURパッケージの場合>
- メンテナ: <名前>
- ソースURL: OK/要確認 (<URL>)
- チェックサム: OK/SKIP/未設定
- 不審なコマンド: なし/あり(詳細: <内容>)
- AURページ: https://aur.archlinux.org/packages/<pkg>
---
## 総合判定
- 安全にアップデート可能: <パッケージ名リスト>
- 要注意(確認推奨): <パッケージ名リスト>
- 危険(アップデート非推奨): <パッケージ名リスト>
## 判定基準
- OK: 公式リポジトリ、またはAURで不審点なし
- 要注意: チェックサムSKIP、メンテナ情報不明、ソースURL要確認など
- 危険: 不審なコマンド検出、難読化あり、不審な外部通信など
アップデートコマンドは実行しない。あくまで診断情報の提供のみを行う。