以下の内容はhttps://kaminashi-developer.hatenablog.jp/entry/automating-saas-security-checks-with-claude-codeより取得しました。


Claude Codeを使ったSaaSセキュリティチェックの自動化

コーポレートエンジニアの @sion_cojp です。

この記事では、Claude Code を使って SaaS セキュリティチェックを自動化した取り組みについて紹介します。

SaaSセキュリティチェックとは?

従業員が新しい SaaS を業務で利用したい場合、その SaaS がセキュリティ面で問題ないかを、コーポレートエンジニアが事前にチェックします。

チェック項目の一部を挙げると以下のような内容です。

  • 公的認証資格を取得しているか(SOC など)
  • MFA(多要素認証)/二段階認証に対応しているか
  • 解約後にデータは完全に削除されるか
  • 準拠法・管轄裁判所の確認

また近年では、SaaS に AI 機能が標準搭載されるケースも増えており、

  • 学習への利用をオプトアウトできるか
  • 入力データがモデル改善に使われるかどうか

といったAI 特有の観点もチェック対象になっています。

これらを総合的に確認したうえで、業務利用可能かどうかをカミナシでは判断します。

Claude Code導入前のつらみ

従来は、以下のような情報を人力で収集・確認していました。

  • 利用規約
  • プライバシーポリシー
  • FAQ
  • セキュリティ関連ページ
  • その他チェック項目をジャッジするためのページ

その結果、次のような課題がありました。

  • 一定以上のリサーチスキルと知識が必要
  • 項目をすべて埋めるまでに時間と労力を消耗
  • 情報収集漏れにより、チェックが不十分になる可能性
  • 多くの文書が英語で書かれている
  • AI の進歩に伴い、新規 SaaS の登場や既存 SaaS の AI アドオンによる、チェック依頼の件数が急増

これらを改善するために、

Claude Code にリサーチとチェック項目・一次レポート生成を任せ、コーポレートエンジニアはレビューに専念する

という運用に切り替えました。

Claude Codeとは?

Claude Code は、Anthropic 社が開発した、ターミナル(CLI)上で動作する AI コーディングツールです。今回の用途で特に有用だった点は以下です。

  • Web Search 機能: 外部インターネットにアクセスし、公式ドキュメント等を自動検索
  • Custom Slash Command: Markdown でルールを定義すると、それに従って作業を実行できる

Custom Slash Commandのサンプル

今回は /saas-check という Custom Slash Command を作成して利用しています。

.claude/commands/saas-check.md の一部は次のような内容です (※ 公開できない部分は ***** で伏せています。またチェック項目も省略しています)。

---
allowed-tools: Read, Glob, Grep, Bash, Write, WebSearch, WebFetch
description: 利用規約、プライバシーポリシーなどのpdfファイルを解析し、要約と重要ポイントを抽出する
---

# Your task

各SaaSやソフトウェアの利用規約、プライバシーポリシーなどのpdfファイルを解析し、以下の情報を抽出してください。

ファイル群は `saas-security-check/{SaaS or ソフトウェア名}/*.pdf` に格納されています。

## 入力

### ステップ1: 対象SaaSの選択
- `saas-security-check/` ディレクトリ内のフォルダ一覧を表示し、どのSaaS/ソフトウェアをチェックするか選択させる

### ステップ2: 必須ヒアリング項目(すべて確認すること)

**重要: 以下の5項目すべてをユーザーに確認してください。AskUserQuestionツールを使用し、すべての項目を2回で呼び出しで質問してください。**

1. **情報種別**(必須・選択式)
   - 社外秘情報を含む
   - 公開情報のみ

2. **利用用途**(必須・自由入力)
   - ユーザーに直接入力させてください
   - 例: 「社内ミーティングの文字起こし」「顧客データの分析」など

3. **申請者のメールアドレス**(必須・自由入力)
   - ユーザーに直接入力させてください
   - 例: `example@kaminashi.jp`

4. **サービスURL**(必須・自由入力)
   - ユーザーに直接入力させてください
   - 例: `https://example.com`

5. **保存される情報**(任意・自由入力)
   - ユーザーに直接入力させてください
   - 未回答の場合は「未回答」と記録

### ステップ3: 調査実行
- 指定されたSaaS/ソフトウェア内の全pdfを調査
- pdfファイル名を指定された場合: そのファイルのみ再調査
- 最後に、最終更新と命令履歴を更新

## 出力先

`saas-security-check/{SaaS or ソフトウェア名}/result.md` マークダウンファイルを出力

## 調査手順

1. **PDF読み込み**: *****
2. **Web調査**: *****
3. **会社・資本確認**: *****
4. **出力生成**: *****
5. **判断**: *****

## 実装差分情報の活用

- **`saas-security-check/` ディレクトリ**: 各SaaSのチェック結果が格納されている
  - ファイル命名規則: `{SaaS or ソフトウェア名}.md`
  - 例: `Supabase.md`, `tl;dv.md`

### 注意事項

*****

### 判断ガイドライン
*****

## 出力フォーマット

### マークの意味

| 記号  | 意味                      |
|-----|-------------------------|
| ✅   | 機能があったり、規約に書いてある        |
| ⚠️️ | 機能があったり、規約に書いてあるが、注意が必要 |
| 🚫️ | 機能がない、規約に書いてない          |
| ⬜️  | 未チェック                   |

### 理由のフォーマット

- テーブルに記載する理由のフォーマットは下記となります
\```
- {具体的な理由を記載してください}
- > {ソースとなるファイル名}
- > {ソースとなる文章}
\```
- 理由内は、文章が読みやすいように `<br>` をうまく使ってフォーマットしてください。 `<br>` の理由はmarkdownレンダリング時に改行されるためです
- 箇条書きの場合は、`・ ` で始めてください

### テンプレート

\```markdown
# {SaaS/ソフトウェア名}: セキュリティチェック結果

**最終更新**: {YYYY-MM-DD HH:MM}

# 前提

- 本審査では、{SaaS/ソフトウェア名}の業務利用可否を審査する
- カミナシ社内の利用者が本 SaaS にカミナシの下記情報を格納するユースケースを持つことを前提として、審査を実施する(セキュリティハンドブックの情報資産の分類を参照)
  - ⬜ 社外秘情報を含む
  - ⬜ 公開情報のみ

# 申請情報

| 項目 | 内容 |
|------|------|
| 申請者 | {申請者のメールアドレス} |
| サービスURL | {サービスのURL} |
| 利用用途 | {利用用途} |
| 保存される情報 | {保存される情報。任意項目のため、未回答の場合は「未回答」と記載} |

# 審査結果

## 結論

- {業務利用可 or 条件付きで利用可 or 業務利用不可}
- {なぜ利用可能 or 不可能としたか記載する}

## 例外

- {「このデータは扱ってはいけない」など、例外があれば記載してください}

## 例外の背景

- {例外がある場合、理由を書いてください}

## 重要と思われる補記事項

- {AIのデータ取り扱いなど、リスクがありそうな点などがあれば記載してください}

# 利用用途

- {このSaaS/ソフトウェアは一般的にどのような用途で利用するか記載してください}

# マークの説明

- ✅: 機能があったり、規約に書いてある
- ⚠️: 機能があったり、規約に書いてあるが、注意が必要
- 🚫: 機能がない、規約に書いてない
- ⬜: 未チェック

# 共通チェック項目

### MUST

| No | 項目 | マーク |理由 |
|--- |--- |--- |--- |

### SHOULD

| No | 項目 | マーク | 理由 |
| --- | --- | --- | --- |

# 特定の分野

## AI

### MUST

| No | 項目 | マーク | 理由 |
| --- | --- | --- | --- |

### SHOULD

| No | 項目 | マーク | 理由 |
| --- | --- | --- | --- |

## 参照したpdfのパス一覧

{参照したpdfのパス一覧を箇条書きで書いてください。相対パスかつ、リンクを貼ってください}

## 参照したWebページ一覧

{Web調査で参照したURLを箇条書きで書いてください}

## 命令履歴

| 日時 | 命令内容 |
|------|---------|
| {YYYY-MM-DD HH:MM} | {初回調査} |
\```

実際の運用方法

関連ドキュメントの収集

Claude Code に十分なコンテキストを与えるためと、Web Searchの時間を減らすために、事前に以下のようなチェックに必要なドキュメントを収集し、ディレクトリに保存します。

  • 利用規約
  • プライバシーポリシー
  • セキュリティ関連ページ

Custom Slash Commandを実行

Claude Code を起動し、Custom Slash Command を実行します。

今回は「カミナシ」の自社サービスをセキュリティチェックする例です。

claude
/saas-check

実行後、AskUserQuestion によりチェック対象のSaaSなど「必須ヒアリング項目で定義したもの」のヒアリングをされるので、選択または入力します。

最後にSubmitを選ぶと、リサーチが開始されます。

Claude Codeのサマリ出力

調査が完了すると、Claude Code からサマリ結果が表示されます。

このサマリの良い点は以下です。

  • 重要なポイントを簡潔にまとめてくれる
  • 確認が必要な項目のレコメンド
  • PDF 化が必要なサイトなど、実務目線のレコメンドを出してくれる

詳細のマークダウン出力

詳細な調査結果は result.md として出力されます(画像では一部のみ掲載)。

GitHub上でレビュー

生成された結果を GitHub に push し、コーポレートエンジニアが内容を確認します。その上で、最終的な利用可否を判断します。

  • 「このプランでもオプトアウトできるよね」
  • 「ここセキュリティ的に大事だから、利用条件に追加しようか」

などの1 ~ 2個の指摘・対応はしておりますが、PR内容が大きく的を外れることは今の所起きてはいません。

まとめ

  • SaaS セキュリティチェックにおけるリサーチ作業を大幅に自動化
  • コーポレートエンジニアは判断・レビューに集中できる体制を構築
  • AI 機能を含む最新 SaaS に対してもスケール可能な運用が実現

という効果が得られました。

SaaS 利用が前提となった現代の企業環境では、セキュリティチェックを属人化させず、仕組みで回すことは重要です。

Claude Codeは、そのための非常に有用なツールだと思いますので、皆様も是非お試しください。




以上の内容はhttps://kaminashi-developer.hatenablog.jp/entry/automating-saas-security-checks-with-claude-codeより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14