
Claude でセキュリティスキルを使ったら、自分でもスキルを作っちゃった話
こんにちは。小売流通ソリューション部 SRE チームの池田です。
前回の記事と前々回の記事で、社内の AWS アカウントへのアクセス権限を管理するシステムの試作と PoC を行ったことをご紹介しました。
現在は PoC の結果をもとに AWS のサービスだけでの構築を進めています。
そんな中、たくさんのソフトウェアやサービスの脆弱性情報が日々飛び込んでくるようになってきました。
当然、自分が構築中のシステムも脆弱性があったら大変ということで、どうにか Claude Code や tsumiki を利用してセキュリティチェックやコード等の改善ができないかと考えていたところに「IPA の安全なウェブサイトの作り方をチェックする skill を作ってみた」と部内のメンバーから共有を受けました。
なくならない指摘事項
共有してもらったのは /ipa-security-check という名前の Claude Code スキルでした。
さっそくそのスキルで構築中のシステムをチェックしてみると、思っていた以上に指摘事項が出てきました。出力されたレポートファイルをもとに Claude へ修正を依頼、完了報告を受けたらもう一度チェック。を数回やってみましたが一向に指摘事項がなくなりませんでした。
そこで、このスキルの作者に相談してみたところ「要件の異なることをまとめて修正計画を検討させるのは無理だよ」と言われ、そりゃそうだ。と気が付きました。
もうひとつぶつかった問題は、指摘事項の数が多く「どれから手をつければいいか」が一目ではわからない点でした。また、「この指摘は何を指摘しているのか、レポートだけでは把握しきれない(コードも読まないと理解できない)」と感じる項目も混じっていて、それを自分で判断して進めることにややハードルの高さを感じた点です。
それならばと、レポートを読み込んで、修正対応を個別のタスクに変換するスキル /ipa-security-guide を作ることにしました。
普段のツール開発などで日常的に Claude Code の tsumiki プラグインを利用しているため、 tsumiki:dev-debug へ修正タスクとしてひとつずつ渡して対応してもらうことを目指しました。
とりあえず完成した /ipa-security-guide は処理にやや時間がかかったため自分用スキルとして使うつもりでいたのですが、せっかくならふたつのスキルをセットで使える状態にした方が、少しは tsumiki 利用者の役に立てるのではないかと考え、処理の流れなどの改良を行いました。
結果、同一プロジェクトでのテスト実行を繰り返し、内部処理の効率化を重ねたことでだいぶマシになったと思います。当然、対象プロジェクトの規模やレポートの指摘事項の数にもよりますが。
人生初、自分のコードが OSS に Merge された
改良したスキルを /ipa-security-check の作者に見せたところ、このスキルを tsumiki に追加する PR を出して欲しいと言ってもらえました。人生初の OSS への PR であり、自分の作ったコードが tsumiki 1.4.1 の新機能として 2026年5月19日に公開されました。
この 2 つのスキルを使うメリット
- 根拠のある指摘が得られる — 検出結果に IPA 原典の出典(文書名・章・ページ)が付くので、「なぜ問題なのか」をプロジェクトメンバーに説明できる
- 対応の優先順位が決まる — 件数が多くても「まずここから」と絞り込んだガイドをもとに修正に入れる
- 対応不要かどうかの判断材料が出る — アーキテクチャ上リスクが成立しない項目を根拠付きで候補として出してくれる(最終判断は自分またはプロジェクトメンバーで行う)
- 修正まで Claude Code 内で完結する — レポート生成 → タスクリスト生成 →
/tsumiki:dev-debugで修正、のフローがツールを切り替えずに回せる
これらが積み重なることで、開発しているシステムが IPA 基準に沿った形でセキュリティ上の問題を潰していける状態になる のが、システム開発者にとって一番のメリットだと感じています。
おまけ
以降は、ipa-security-check と ipa-security-guide の使い方と、tsumiki 1.4.1 で実現できるようになった「セキュリティチェック → 修正タスク生成 → 修正実行」のフローを紹介します。一部、既に記載した事項もありますが簡単なマニュアル代わりに読んでいただければ嬉しいです。
ipa-security-check とは
IPA(情報処理推進機構)が公開している以下の 5 資料に基づいて、ローカルのソースコードを静的解析するスキルです。tsumiki 1.4.0 から使えます。
| 資料 | 主な検査内容 |
|---|---|
| 安全なウェブサイトの作り方 改訂第7版 | SQL インジェクション、XSS、CSRF など 11 種の脆弱性 |
| 安全なSQL の呼び出し方 | プレースホルダの使い方など |
| ウェブ健康診断仕様 | 13 診断項目 |
| 安全なウェブサイトの運用管理に向けての20ヶ条 | HTTP ヘッダ、ライブラリ管理など |
| セキュリティ実装チェックリスト | 改訂第7版付属のチェックリスト |
すべての検出結果に「IPA の何というドキュメントの何ページに書いてあるか」が付いてくるのが特徴です。「なぜこれが問題なのか」を公的な文書で確認できます。
使い方
/ipa-security-check # カレントディレクトリ全体をスキャン
/ipa-security-check src/ # 特定ディレクトリのみ
/ipa-security-check --diff # main との差分ファイルのみ
結果は ipa-security-report.md に保存されます。
ipa-security-guide とは
ipa-security-check が出力したレポートを読み込み、各検出項目を優先順位付きの修正タスクに変換するスキルです。コードベースを直接読んでアーキテクチャを判断するため、外部ツールへの依存はありません。tsumiki 1.4.1 から使えます。
出力される内容
1. 対応不要候補リスト
アーキテクチャや設計上の理由で「この環境では該当しない」と判断できる項目を、根拠とともにリストアップします。最終判断はユーザーが行いますが、「この指摘はなぜ対応不要か」を言語化してくれます。
2. 優先順位付き依頼リスト
残った指摘を /tsumiki:dev-debug にそのままコピペできる形式に変換します。「何を直すか」ではなく「どう直すよう依頼するか」まで整理してくれます。
例えば、以下のようなフォーマットで出力してくれます。
/tsumiki:dev-debug
shared/types/validation.ts の access_url フィールドが z.string().url() のみで、javascript:/data:/vbscript: スキームを有効な URL として受け入れる。バックエンドで危険スキームを排除できていないため悪意ある URL が DB に保存されるリスクがある。フロントエンドでは /^https?:\/\//i チェックが実施されているが、バックエンドの根本的解決が欠如している。
対象ファイル:
- shared/types/validation.ts:84
access_url の定義に .refine() を追加して http:// または https:// スキームのみ許可するバリデーションを実装する。修正後はテストを実行して既存バリデーション動作が壊れていないことを確認する。
参考: ipa-security-report_20260518.md IPA-SWS-1-XSS-007
3. まとめテーブル
全件を一覧表で整理します。対応不要・対応必要の仕分けが一目でわかります。
使い方
/ipa-security-guide # カレントディレクトリの ipa-security-report.md を読む
/ipa-security-guide <レポートファイルパス> # レポートファイルを指定
/ipa-security-guide -o guide-result.md # 結果をファイルに保存
引数なしで実行するとカレントディレクトリの ipa-security-report.md を読みます。
使い方とフロー
2 つのスキルを組み合わせると、次のフローが Claude Code + tsumiki で完結できます。
1. /ipa-security-check
→ ipa-security-report.md を生成
2. /ipa-security-guide
→ 対応不要候補を確認・判断
→ 優先順位付きタスクリストを生成
3. /tsumiki:dev-debug(生成されたタスクリストをコピペ)
→ 修正を実施
4. (必要に応じて)コミットとプッシュ
5. /clear
(他に修正があれば 3. に戻る)
6. (必要に応じて)デプロイ
使ってみた感想
対応不要候補の判断は説明文がわかりやすく、ほぼすべて対応不要な項目であると最終判断できました。
dev-debug はプラン作成不要で様々なエラーを素早く確認、修正してくれますが、修正内容やその根拠が明確な場合はさらに爆速で動作してくれる気がします。
まとめ
ipa-security-check と ipa-security-guide を使うと、IPA 文書に基づく静的解析からセキュリティリスクのあるコードの修正まで、Claude Code 内で完結させることができます。
これによって IPA が把握している「よくあるセキュリティリスク」を専門的な知識がなくても潰せるようになるのは、AI 時代のシステム開発において役に立つのではないかと考えています。
普段からシステム開発をしているエンジニアの皆さんはもちろん、Claude を使って何かしらのツール作りに挑戦し始めた非エンジニアの方々にも活用していただけると喜びます。








