Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@
},
"metadata": {
"description": "AI-driven development toolkit for TDD and SDD workflows, providing comprehensive command templates and agents to enhance developer productivity with Claude Code",
"version": "1.3.0"
"version": "1.4.0"
},
"plugins": [
{
"name": "tsumiki",
"source": "./",
"description": "AI-driven development toolkit for TDD and SDD workflows, providing comprehensive command templates and agents to enhance developer productivity with Claude Code",
"version": "1.3.0",
"version": "1.4.0",
"author": {
"name": "makoto kuroeda",
"email": "kuroeda.makoto@classmethod.jp"
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "tsumiki",
"version": "1.3.0",
"version": "1.4.0",
"description": "AI-driven development toolkit for TDD and SDD workflows, providing comprehensive command templates and agents to enhance developer productivity with Claude Code",
"author": {
"name": "makoto kuroeda",
Expand Down
80 changes: 80 additions & 0 deletions MANUAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,86 @@ tsumikiの利用可能なコマンド一覧の表示、個別コマンドの詳
/tsumiki:timeout-fix
```

### セキュリティチェックスキル

#### ipa-security-check

IPA(情報処理推進機構)が公開する以下5つの公式資料に基づき、ソースコード・設定ファイルを静的検査して脆弱性候補を検出するスキルです。検出結果には必ず IPA 原典の出典(文書名・章・ページ・URL)が付与されます。

**準拠する IPA 資料**:

| 略称 | 正式名称 | 主な検査内容 |
|---|---|---|
| SWS | 安全なウェブサイトの作り方 改訂第7版 | 11脆弱性(SQLi / OSコマンド / トラバーサル / セッション / XSS / CSRF / HTTPヘッダ / メールヘッダ / クリックジャッキング / BoF / アクセス制御) |
| SQL | 安全なSQLの呼び出し方 | プレースホルダ使い分け・LIKE述語・識別子検証・文字コード問題 |
| WHC | ウェブ健康診断仕様 | 13診断項目のうち静的解析でカバー可能な観点 |
| OPS | 安全なウェブサイトの運用管理に向けての20ヶ条 | HTTPヘッダ・依存ライブラリ・設定ファイル類 |
| CL | セキュリティ実装チェックリスト | 改訂第7版 p.105-108 のチェックリスト |

**起動方法**:

```bash
# カレントディレクトリ全体をスキャン
/tsumiki:ipa-security-check

# 指定パス / glob のみ
/tsumiki:ipa-security-check src/
/tsumiki:ipa-security-check **/*.php

# 現ブランチと main の差分ファイルのみ
/tsumiki:ipa-security-check --diff

# カテゴリ限定
/tsumiki:ipa-security-check --categories sqli,xss src/

# 重大度フィルタ
/tsumiki:ipa-security-check --severity high

# 出力ファイル指定
/tsumiki:ipa-security-check --output report.md,report.sarif
```

自然文(「IPA のセキュリティチェックをして」など)でも起動できます。

**対応言語**: PHP / Java(`.java`, `.jsp`) / Ruby(`.rb`, `.erb`) / Python / JavaScript / TypeScript(`.vue`含む) / C# / .NET(`.cshtml`, `.aspx`含む) / Go / 各種設定ファイル(`nginx.conf`, `.htaccess`, `web.xml`, `*.yaml`, `Dockerfile` など)

**生成されるファイル**:
- `./ipa-security-report.md` - Markdown 形式のレポート
- `./ipa-security-report.sarif` - SARIF 2.1.0 形式のレポート
- `.tmp/ipa-security-check/` - 中間ファイル

**トリアージ機能**:

検出結果は Markdown レポート内に保持される `<!-- ipa-triage:begin ... ipa-triage:end -->` ブロックで状態管理できます。`snippet_hash`(rule_id + file + 正規化された code_snippet の sha256)で同定するため、行番号が変動しても次回スキャンで状態を引き継げます。

| ステータス | 意味 |
|---|---|
| `未対応` | 未着手(新規 finding のデフォルト) |
| `対応する` | 修正予定 / 実施中 |
| `問題なし` | 確認の上、本物の脆弱性ではない(サマリから除外) |
| `保留` | 一旦保留(サマリから除外) |

**誤検知のインライン抑止**: ソースコードに以下のマーカーを置くと、検出段階で finding を生成しません。

```
// ipa-skip: IPA-SWS-1-SQLI-001 reason: 内部固定値を埋め込んでいるため
```

**特徴**:
- 14体の検査エージェント(SQLi / XSS / CSRF 等)を並列起動して高速検査
- 偽陽性レビューエージェントが周辺コード・呼び出し元を再評価して False Positive を識別
- すべての検出結果に IPA 原典の `document / section / page / url` を必須付与

#### ipa-security-guide

`ipa-security-check` が出力したレポートを読み、各検出項目を優先順位付きの `tsumiki:dev-debug` 依頼リストに変換するスキルです。対象プロジェクトの言語・FW を問わず汎用的に使用できます。

```bash
/tsumiki:ipa-security-guide
```

`ipa-security-check` → `ipa-security-guide` → `tsumiki:dev-debug` の順で実行することで、脆弱性検出から修正までを一連の流れで進められます。

## ディレクトリ構造

```
Expand Down
50 changes: 50 additions & 0 deletions docs/external-sources.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# 外部情報源 一覧

本リポジトリの各スキルが参照している **外部の公式資料・規格・ガイドライン** をここに集約する。

- スキル内部のロジック・プロンプトに反映している知見の **出典元** を明示するためのファイル。
- 著作権・ライセンスは各情報源の発行元に帰属する。同梱の knowledge ファイル等は **二次的に整理した参照用ノート** である。
- 各情報源の **詳細 (版情報・章立て・ページ番号など)** は、利用しているスキル内の `knowledge/_sources.md` (またはそれに相当するファイル) を参照する。

## 運用ルール

新しい外部情報源を参照するスキルを追加した場合は、以下を行う:

1. スキル内に `knowledge/_sources.md` を置き、正式名称・版・発行日・URL・ライセンス・章節などの詳細を記録する。
2. 本ファイル (`docs/external-sources.md`) の **クイックインデックス** に1行追記する。
3. 本ファイルの末尾に **情報源ごとのセクション** を追加し、利用スキル名・詳細リンクを記載する。
4. スキルの finding / 出力に出典 (文書名・章・ページ・URL) を必ず添える設計にする。

## クイックインデックス

| # | 情報源 (略称) | 発行者 | 利用スキル | 詳細 |
|---|---|---|---|---|
| 1 | 安全なウェブサイトの作り方 改訂第7版 ほか IPA 5 資料 | 独立行政法人 情報処理推進機構 (IPA) | `ipa-security-check` | [#1-ipa-web-security](#1-ipa-安全なウェブサイトの作り方-ほか-5-資料) |

---

## 1. IPA「安全なウェブサイトの作り方」ほか 5 資料

| 項目 | 値 |
|---|---|
| 発行者 | 独立行政法人 情報処理推進機構 (IPA) |
| 公式紹介ページ | https://www.ipa.go.jp/security/vuln/websecurity/about.html |
| ライセンス・著作権 | IPA に帰属 |
| 利用スキル | `skills/ipa-security-check/` |
| 詳細出典マスター | [`skills/ipa-security-check/knowledge/_sources.md`](../skills/ipa-security-check/knowledge/_sources.md) |

### 参照している資料

| 略称 | 正式名称 | 版 / 発行日 | URL |
|---|---|---|---|
| SWS | 安全なウェブサイトの作り方 | 改訂第7版 第4刷 / 2021-03-31 | https://www.ipa.go.jp/security/vuln/websecurity/ug65p900000196e2-att/000017316.pdf |
| SQL | 安全なSQLの呼び出し方 (別冊) | 第1版 / 2010-03-18 | https://www.ipa.go.jp/security/vuln/websecurity/ug65p900000196e2-att/000017320.pdf |
| WHC | ウェブ健康診断仕様 (別冊) | 第1版 第1刷 / 2012-12-26 | https://www.ipa.go.jp/security/vuln/websecurity/ug65p900000196e2-att/000017319.pdf |
| OPS | 安全なウェブサイトの運用管理に向けての20ヶ条 | - | https://www.ipa.go.jp/security/vuln/websecurity/sitecheck.html |
| CL | セキュリティ実装チェックリスト | 改訂第7版 巻末 (p.105〜108) / Excel 別添あり | https://www.ipa.go.jp/security/vuln/websecurity/ug65p900000196e2-att/000044403.xlsx |

### 利用方針

- スキルの finding 出力には、必ず IPA 原典の `document / section / page / url` を添える。
- 提案は「**根本的解決**」と「**保険的対策**」を区別して提示する (IPA 用語に準拠)。
- 版情報・章節・CWE 対応表など詳細は [`skills/ipa-security-check/knowledge/_sources.md`](../skills/ipa-security-check/knowledge/_sources.md) を参照。
Loading
Loading