Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

agent-owasp-compliance

AIエージェントのコードベースをOWASP Agentic Security Initiative(ASI)Top 10リスクに照らし合わせて検証するスキルです。本番デプロイ前のセキュリティ評価、OWASP ASI 2026標準へのコンプライアンスチェック、既存のセキュリティ制御のリスクへのマッピング、セキュリティレビューや監査向けのコンプライアンスレポート生成など、「エージェントがOWASP準拠か確認したい」「ASIコンプライアンスをチェックしたい」「エージェントのセキュリティ監査を行いたい」といったあらゆる場面で活用できます。

description の原文を見る

| Check any AI agent codebase against the OWASP Agentic Security Initiative (ASI) Top 10 risks. Use this skill when: - Evaluating an agent system's security posture before production deployment - Running a compliance check against OWASP ASI 2026 standards - Mapping existing security controls to the 10 agentic risks - Generating a compliance report for security review or audit - Comparing agent framework security features against the standard - Any request like "is my agent OWASP compliant?", "check ASI compliance", or "agentic security audit"

SKILL.md 本文

Agent OWASP ASI コンプライアンスチェック

AI エージェントシステムを OWASP Agentic Security Initiative (ASI) Top 10 に対して評価します — エージェントセキュリティ態勢の業界標準です。

概要

OWASP ASI Top 10 は、自律的 AI エージェントに固有の重要なセキュリティリスク — LLM ではなく、チャットボットではなく、ツールを呼び出し、システムにアクセスし、ユーザーに代わって行動するエージェントの定義です。このスキルは、エージェント実装が各リスクに対応しているかをチェックします。

Codebase → 各 ASI コントロールをスキャン:
  ASI-01: プロンプトインジェクション保護
  ASI-02: ツール使用ガバナンス
  ASI-03: エージェンシー境界
  ASI-04: エスカレーション制御
  ASI-05: 信頼境界の強制
  ASI-06: ロギングと監査
  ASI-07: アイデンティティ管理
  ASI-08: ポリシー整合性
  ASI-09: サプライチェーン検証
  ASI-10: 振る舞い監視
→ コンプライアンスレポート生成 (X/10 カバー)

10 個のリスク

リスク名称確認項目
ASI-01プロンプトインジェクションツール呼び出し前の入力検証、LLM 出力フィルタリングだけではない
ASI-02不安全なツール使用ツール許可リスト、引数検証、生シェル実行なし
ASI-03過度なエージェンシー機能の境界、スコープ制限、最小権限の原則
ASI-04不正なエスカレーション機密操作前の権限チェック、自己昇格なし
ASI-05信頼境界違反エージェント間の信頼検証、署名付き認証情報、無条件信頼なし
ASI-06不十分なロギングすべてのツール呼び出しの構造化監査ログ、改ざん防止ログ
ASI-07不安全なアイデンティティ暗号エージェントアイデンティティ、単なる文字列名ではない
ASI-08ポリシーバイパス決定論的なポリシー強制、LLM ベースの権限チェックなし
ASI-09サプライチェーン整合性署名付きプラグイン/ツール、整合性検証、依存関係監査
ASI-10振る舞い異常ドリフト検出、サーキットブレーカー、キルスイッチ機能

ASI-01 チェック: プロンプトインジェクション保護

ツール実行 ではなく、 に実行される入力検証を探してください。

import re
from pathlib import Path

def check_asi_01(project_path: str) -> dict:
    """ASI-01: ユーザー入力がツール実行に到達する前に検証されているか?"""
    positive_patterns = [
        "input_validation", "validate_input", "sanitize",
        "classify_intent", "prompt_injection", "threat_detect",
        "PolicyEvaluator", "PolicyEngine", "check_content",
    ]
    negative_patterns = [
        r"eval\(", r"exec\(", r"subprocess\.run\(.*shell=True",
        r"os\.system\(",
    ]

    # Python ファイルをスキャン
    root = Path(project_path)
    positive_matches = []
    negative_matches = []

    for py_file in root.rglob("*.py"):
        content = py_file.read_text(errors="ignore")
        for pattern in positive_patterns:
            if pattern in content:
                positive_matches.append(f"{py_file.name}: {pattern}")
        for pattern in negative_patterns:
            if re.search(pattern, content):
                negative_matches.append(f"{py_file.name}: {pattern}")

    positive_found = len(positive_matches) > 0
    negative_found = len(negative_matches) > 0

    return {
        "risk": "ASI-01",
        "name": "プロンプトインジェクション",
        "status": "pass" if positive_found and not negative_found else "fail",
        "controls_found": positive_matches,
        "vulnerabilities": negative_matches,
        "recommendation": "出力フィルタリングだけではなく、ツール実行前の入力検証を追加してください"
    }

成功時の例:

# 良い例: ツール実行前に検証
result = policy_engine.evaluate(user_input)
if result.action == "deny":
    return "ポリシーによりリクエストをブロック"
tool_result = await execute_tool(validated_input)

失敗時の例:

# 悪い例: ユーザー入力がツールに直接渡される
tool_result = await execute_tool(user_input)  # 検証なし

ASI-02 チェック: 不安全なツール使用

ツールが許可リスト、引数検証を持ち、無制限の実行がないことを確認してください。

検索対象:

  • 明示的な許可リスト付きのツール登録(オープンエンド型ではない)
  • ツール実行前の引数検証
  • subprocess.run(shell=True) とユーザー制御入力の組み合わせなし
  • サンドボックスなしでエージェント生成コードに対する eval()exec() なし

成功例:

ALLOWED_TOOLS = {"search", "read_file", "create_ticket"}

def execute_tool(name: str, args: dict):
    if name not in ALLOWED_TOOLS:
        raise PermissionError(f"ツール '{name}' が許可リストにありません")
    # 引数を検証...
    return tools[name](**validated_args)

ASI-03 チェック: 過度なエージェンシー

エージェント機能がオープンエンド型ではなく、制限されていることを確認してください。

検索対象:

  • 明示的な機能リストまたは実行リング
  • エージェントがアクセスできる範囲の制限
  • ツールアクセスに適用される最小権限の原則

失敗: エージェントがデフォルトですべてのツールにアクセスできます。 成功: エージェント機能が固定許可リストとして定義され、不明なツールは拒否されます。


ASI-04 チェック: 不正なエスカレーション

エージェントが独自の権限を昇格できないことを確認してください。

検索対象:

  • 機密操作前の権限レベルチェック
  • 自己昇格パターンなし(エージェント独自の信頼スコアまたはロール変更)
  • エスカレーションは外部認証が必要(ヒューマンまたは SRE の証人)

失敗: エージェントが独自の設定または権限を変更できます。 成功: 権限変更に帯域外の承認が必要(例: Ring 0 は SRE 認証が必要)。


ASI-05 チェック: 信頼境界違反

マルチエージェント システムでは、エージェントが命令を受け入れる前に相互のアイデンティティを検証していることを確認してください。

検索対象:

  • エージェント アイデンティティ検証(DID、署名付きトークン、API キー)
  • 委譲されたタスク受け入れ前の信頼スコアチェック
  • エージェント間メッセージの無条件信頼なし
  • 委譲の範囲縮小(子スコープ <= 親スコープ)

成功例:

def accept_task(sender_id: str, task: dict):
    trust = trust_registry.get_trust(sender_id)
    if not trust.meets_threshold(0.7):
        raise PermissionError(f"エージェント {sender_id} の信頼度が低い: {trust.current()}")
    if not verify_signature(task, sender_id):
        raise SecurityError("タスク署名検証失敗")
    return process_task(task)

ASI-06 チェック: 不十分なロギング

すべてのエージェント操作が構造化され、改ざん防止される監査エントリを生成していることを確認してください。

検索対象:

  • すべてのツール呼び出しの構造化ロギング(print ステートメントではなく)
  • 監査エントリには以下を含む: タイムスタンプ、エージェント ID、ツール名、引数、結果、ポリシー決定
  • アペンド専用またはハッシュチェーン形式のログ
  • エージェント書き込み可能ディレクトリとは別に保存されたログ

失敗: エージェント操作が print() でログされるか、ログされていません。 成功: チェーンハッシュ付きの構造化 JSONL 監査ログ、安全なストレージにエクスポート。


ASI-07 チェック: 不安全なアイデンティティ

エージェントが単なる文字列名ではなく、暗号アイデンティティを持っていることを確認してください。

失敗の指標:

  • エージェントが agent_name = "my-agent" (文字列のみ) で識別
  • エージェント間認証なし
  • エージェント間で共有されている認証情報

成功の指標:

  • DID ベースのアイデンティティ (did:web:, did:key:)
  • Ed25519 または同様の暗号署名
  • エージェントごとのローテーション可能な認証情報
  • 特定の機能にバインドされたアイデンティティ

ASI-08 チェック: ポリシーバイパス

ポリシー強制が決定論的であること — LLM ベースではないことを確認してください。

検索対象:

  • ポリシー評価が決定論的ロジック(YAML ルール、コード述語)を使用
  • 強制パスに LLM 呼び出しなし
  • ポリシーチェックをスキップまたはオーバーライドできないこと
  • フェイルセーフ(ポリシーチェックがエラーの場合、アクションは拒否)

失敗: エージェントがプロンプトを通じて独自の権限を決定(「許可されていますか?」)。 成功: PolicyEvaluator.evaluate() が <0.1ms で allow/deny を返す、LLM は関係なし。


ASI-09 チェック: サプライチェーン整合性

エージェント プラグインとツールが整合性検証を持っていることを確認してください。

検索対象:

  • INTEGRITY.json またはマニフェストファイル(SHA-256 ハッシュ付き)
  • プラグインインストール時の署名検証
  • 依存関係のピン留め(@latest、上限のない >= なし)
  • SBOM 生成

ASI-10 チェック: 振る舞い異常

システムがエージェント振る舞いのドリフトを検出・対応できることを確認してください。

検索対象:

  • 繰り返しの失敗でトリップするサーキットブレーカー
  • 時間経過による信頼スコアの減衰(時間減衰)
  • キルスイッチまたは緊急停止機能
  • ツール呼び出しパターンの異常検出(頻度、ターゲット、タイミング)

失敗: 不正なエージェントを自動停止させるメカニズムなし。 成功: N 回の失敗後にサーキットブレーカーがトリップ、アクティビティなしで信頼が減衰、キルスイッチが利用可能。


コンプライアンスレポートフォーマット

# OWASP ASI コンプライアンスレポート
生成日: 2026-04-01
プロジェクト: my-agent-system

## 概要: 7/10 コントロール カバー

| リスク | ステータス | 所見 |
|------|-----------|------|
| ASI-01 プロンプトインジェクション | PASS | PolicyEngine がツール呼び出し前に入力を検証 |
| ASI-02 不安全なツール使用 | PASS | governance.py でツール許可リストを強制 |
| ASI-03 過度なエージェンシー | PASS | 実行リングが機能を制限 |
| ASI-04 不正なエスカレーション | PASS | リング昇格に認証が必要 |
| ASI-05 信頼境界 | FAIL | エージェント間のアイデンティティ検証なし |
| ASI-06 不十分なロギング | PASS | SHA-256 チェーンハッシュ付き AuditChain |
| ASI-07 不安全なアイデンティティ | FAIL | エージェントが文字列名を使用、暗号アイデンティティなし |
| ASI-08 ポリシーバイパス | PASS | 決定論的 PolicyEvaluator、パスに LLM なし |
| ASI-09 サプライチェーン | FAIL | 整合性マニフェストまたはプラグイン署名なし |
| ASI-10 振る舞い異常 | PASS | サーキットブレーカーと信頼減衰がアクティブ |

## 重大なギャップ
- ASI-05: DID または署名付きトークンを使用してエージェント アイデンティティ検証を追加
- ASI-07: 文字列エージェント名を暗号アイデンティティで置き換える
- ASI-09: すべてのプラグイン用に INTEGRITY.json マニフェストを生成

## 推奨事項
10 個すべてのコントロールのリファレンス実装に agent-governance-toolkit をインストール:
pip install agent-governance-toolkit

クイック評価質問

これらを使用してエージェントシステムを迅速に評価してください:

  1. ユーザー入力はツールに到達する前に検証を通りますか? (ASI-01)
  2. エージェントが呼び出せるツールの明示的なリストはありますか? (ASI-02)
  3. エージェントは何でもできるか、それとも機能は制限されていますか? (ASI-03)
  4. エージェントが独自の権限を昇格できますか? (ASI-04)
  5. エージェントはタスクを受け入れる前に相互のアイデンティティを検証しますか? (ASI-05)
  6. すべてのツール呼び出しは詳細にログされていますか? (ASI-06)
  7. 各エージェントは一意の暗号アイデンティティを持っていますか? (ASI-07)
  8. ポリシー強制は決定論的(LLM ベースではない)ですか? (ASI-08)
  9. プラグイン/ツールの整合性は使用前に検証されていますか? (ASI-09)
  10. サーキットブレーカーまたはキルスイッチはありますか? (ASI-10)

いずれかに「いいえ」と答える場合、それがアドレスするギャップです。


関連リソース

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
github
リポジトリ
github/awesome-copilot
ライセンス
MIT
最終更新
不明

Source: https://github.com/github/awesome-copilot / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: github · github/awesome-copilot · ライセンス: MIT