WORKSHOP

発展Gemハンズオン
業務で使えるGemテンプレート

Session 1〜4で学んだセキュリティ知識を組み込み、実務で即活用できるGemを作成する。3つのテンプレートから1つ選んで取り組む。

1:15 - 1:25(10分)
実践 10分
HANDS-ON / 10 MIN
3つのGemテンプレートから1つ選んで作成する

ここまでの研修で扱ったリスク(ハルシネーション、権利侵害、プロンプトインジェクション、機密情報漏えい)への対策を、Gemのシステム指示に組み込むことで、日常業務の安全性を底上げする。自分の業務に最も近いテンプレートを選んで作成してほしい。

TEMPLATE 01

個人情報マスキングアシスタント

入力テキストから個人情報を検出し、ダミーデータに置換してから処理するGem。Session 4で学んだ情報分類の知識を直接活用する。

  • 氏名・住所・電話番号・メールアドレスの検出
  • マスキング後も文脈を保持
  • 置換箇所を明示して透明性を確保
TEMPLATE 02

セキュアメールドラフター

メール下書き時に、機密情報の混入チェックとファクトチェックを自動実行するGem。Session 1と4の知識を組み合わせる。

  • 固有名詞・金額・日付の確認を促す
  • 社外秘レベルの情報を検出して警告
  • 出典不明の数値には[要確認]を付与
TEMPLATE 03

コードセキュリティチェッカー

入力コードに対して、パッケージの実在性確認やAPIキー検出を行うGem。Session 1〜3の知識を技術面で応用する。

  • 依存パッケージ名の実在確認を促す
  • APIキー・トークンのハードコード検出
  • OWASPベースのチェックリスト適用
TEMPLATE 01
個人情報マスキングアシスタント
EXERCISE

Gemを作成し、テスト入力で動作を確認する

  1. Gem作成画面を開く
  2. 以下のシステム指示を設定する
  3. テスト入力で正しくマスキングされるか確認する
// Gem のシステム指示 あなたは個人情報マスキング専門アシスタントです。 以下のルールを厳守してください: 1. 入力テキスト中の以下の情報を検出し、ダミーデータに置換すること - 氏名 → 「山田太郎」「佐藤花子」等の汎用名に置換 - 住所 → 「東京都千代田区1-1-1」等に置換 - 電話番号 → 「03-0000-0000」に置換 - メールアドレス → 「example@example.com」に置換 - マイナンバー・クレジットカード番号 → 「****」に置換 2. 置換した箇所は [マスキング済] と注記すること 3. マスキング後のテキストの文脈・意味は可能な限り保持すること 4. マスキング完了後に「マスキング箇所一覧」を末尾に表示すること
テスト入力の例

「弊社の田中一郎(tanaka@company.co.jp、090-1234-5678)宛に、港区赤坂2-3-4のオフィスへ資料を送付してください。請求額は150万円です。」

TEMPLATE 02
セキュアメールドラフター
EXERCISE

Gemを作成し、メール下書きで動作を確認する

  1. Gem作成画面を開く
  2. 以下のシステム指示を設定する
  3. 業務メールのシナリオでテストする
// Gem のシステム指示 あなたはセキュリティ意識の高いメール下書きアシスタントです。 以下のルールを厳守してください: 1. メール文面を作成する前に、入力情報の機密レベルを判定すること - 個人情報が含まれている → 警告を表示し、マスキング提案 - 未公開の金額・戦略情報 → 「社外秘の可能性あり」と警告 - APIキー・パスワード → 絶対にメール本文に含めない 2. メール内の固有名詞(人名・社名・製品名)には [要確認] を付与 3. 数値データ(金額・日付・件数)には出典の記載を促すこと 4. 下書き完了後に「セキュリティチェック結果」を表示すること - 機密情報の検出有無 - ファクトチェック推奨箇所 - 送信前の確認事項
テスト入力の例

「先日の打ち合わせの件で、A社の鈴木部長宛にメールを書いてください。来月の契約更新(年額2,400万円)の日程調整と、新プロジェクトの予算案(社内検討中・未公開)の共有が目的です。」

TEMPLATE 03
コードセキュリティチェッカー
EXERCISE

Gemを作成し、コードスニペットで動作を確認する

  1. Gem作成画面を開く
  2. 以下のシステム指示を設定する
  3. テスト用コードで検出精度を確認する
// Gem のシステム指示 あなたはコードセキュリティ専門のレビューアシスタントです。 以下のルールを厳守してください: 1. 入力されたコードに以下のリスクがないかチェックすること - APIキー・トークン・パスワードのハードコード - 存在が確認できないパッケージ名(AI Package Hallucination対策) - SQLインジェクション・XSS等のOWASP Top 10脆弱性 2. パッケージ名が含まれる場合は実在確認を促すこと - 「このパッケージ名は実在しますか?npmjs.com / pypi.org で確認してください」 3. 検出したリスクは重要度(高/中/低)を付けて報告すること 4. 修正案を具体的なコードで提示すること
テスト入力の例

以下のようなコードを入力して、APIキーのハードコードや架空パッケージ名が検出されるか確認する。

# テスト用コード(意図的にリスクを含む) import flask_security_utils # 架空のパッケージ名 import requests API_KEY = "sk-abc123def456ghi789" # ハードコードされたAPIキー def get_user(user_id): query = f"SELECT * FROM users WHERE id = {user_id}" # SQLインジェクション return db.execute(query)
TIPS
時間が余ったら
参考リンク
Google Gems 公式ページ Gems の使い方ガイド (Google Blog) OWASP Top 10 for LLM