情報セキュリティ担当者や法務・知財部門の皆さんは、営業秘密の管理をめぐって常に緊張を強いられています。不正競争防止法が求める三要件(秘密管理性・有用性・非公知性)を満たすには、文書の秘密度分類、アクセス権限の適切な設定、社外持出しの承認記録、異常アクセスの早期検知といった多層的な対策が必要です。しかし、これらを人力で運用すると分類ミスや承認漏れが起こりやすく、監査時に「管理実態が不十分」と指摘されるリスクが残ります。私自身、法務部門との協議の中で「秘密管理性の立証が難しい」という声を何度も聞いてきました。本記事では、Claude Code を活用して営業秘密管理の各工程を自動化・可視化する実務手順を解説します。文書の秘密度自動判定、役職・部門別のアクセス権限マトリクス生成、社外持出し申請フローの記録、異常アクセスパターンの検知とアラート設定まで、具体的なコード例と運用上の留意点を示します。

i

本記事の結論: Claude Code で秘密度判定・権限マトリクス生成・申請記録・異常検知を自動化し、不正競争防止法が求める秘密管理性を実装レベルで担保する。最終判断は情報セキュリティ委員会等の人間組織が行う前提で、AI は判断材料の提示と記録整備を担う。

不正競争防止法が求める営業秘密の三要件と実務課題

不正競争防止法第2条第6項は、営業秘密を「秘密として管理されている生産方法、販売方法その他の事業活動に有用な技術上又は営業上の情報であって、公然と知られていないもの」と定義しています。この定義から導かれる三要件が以下です。

1. 秘密管理性 — 客観的に秘密として管理されている状態。文書への「秘」表示、アクセス制限、持出し管理などが該当

2. 有用性 — 事業活動に有用な情報であること。顧客リスト・製造ノウハウ・価格表等が典型例

3. 非公知性 — 公然と知られていない情報であること。一般的な知識や公開資料から容易に入手できない状態

実務上、最も立証が難しいのは 秘密管理性 です。過去の裁判例では「秘密」と表示されているだけでは不十分で、アクセスできる者を限定し、その記録を残し、持出し時の承認フローを整備していることが重視されます。しかし、多くの企業では以下の課題に直面しています。

  • 分類の属人化: 作成者の判断で秘密度が決まり、統一基準がない
  • 権限設定の複雑化: 部門・役職・プロジェクト単位で異なる権限を手作業で管理
  • 持出し記録の不備: 社外持出し時の承認を口頭やメールで済ませ、監査証跡が残らない
  • 異常検知の遅れ: 退職予定者による大量ダウンロードなどを事後に気づく

Claude Code は、これらの工程に 判断の根拠を提示し記録を自動生成する ことで、人間の最終判断を支援します。Claude Code でのセキュリティベストプラクティスと組み合わせることで、法務部門が求める立証レベルの管理体制を構築できます。

文書の秘密度自動判定とラベリング

営業秘密管理の起点は、文書ごとに秘密度を正しく分類することです。一般的には「公開」「社外秘」「機密」「極秘」といったレベルを設け、それぞれにアクセス権限や持出しルールを紐づけます。

Claude Code では、文書の内容と社内の分類基準を照合し、秘密度の推奨レベルと根拠 を提示するスクリプトを作成できます。以下はサンプルコードの概念図です。

import anthropic

def classify_document_secrecy(file_path: str, classification_rules: dict) -> dict:
    """
    文書内容と社内分類基準を照合し、秘密度レベルと根拠を提示
    
    Args:
        file_path: 文書ファイルパス
        classification_rules: 社内の秘密度分類基準(辞書形式)
    
    Returns:
        {"level": "機密", "rationale": "顧客の価格情報を含むため", "confidence": 0.85}
    """
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()
    
    prompt = f"""
以下の社内分類基準に従い、文書の秘密度レベルを推奨してください。

【分類基準】
{classification_rules}

【文書内容】
{content[:2000]}  # 冒頭2000文字を送信

以下の形式でJSON出力してください:
{{
  "level": "公開|社外秘|機密|極秘のいずれか",
  "rationale": "判定の根拠を1行で",
  "keywords": ["価格", "顧客名"] のような該当キーワードのリスト
}}
"""
    client = anthropic.Anthropic()
    message = client.messages.create(
        model="claude-3-5-sonnet-20241022",
        max_tokens=500,
        messages=[{"role": "user", "content": prompt}]
    )
    # JSON解析して返す(エラー処理は省略)
    return eval(message.content[0].text)

このスクリプトは、文書の内容と社内で定めた分類基準(例: 「顧客の価格情報を含む場合は機密」)を Claude に送信し、推奨レベルと根拠を得ます。重要なのは、出力されたレベルを自動適用せず、情報セキュリティ委員会や文書管理者が最終承認する 運用です。Claude の提案は「一次判定の材料」として扱い、最終的な分類は人間が記録承認します。

i

運用上の留意点: 分類基準(classification_rules)は社内規程として文書化し、定期的に見直すことで判定精度を維持します。Claude の判定結果はログに残し、監査時に「AI の推奨→人間の承認」という流れを証跡として提示できるようにします。

役職・部門別アクセス権限マトリクスの生成

秘密度が確定した文書には、「誰がアクセスできるか」を定義する権限マトリクスが必要です。典型的なマトリクスは以下のような形式です。

秘密度 役員 部長 課長 一般社員 外部協力者
公開 ○ ○ ○ ○ ○
社外秘 ○ ○ ○ ○ ×
機密 ○ ○ △※ × ×
極秘 ○ △※ × × ×

※ △: 担当プロジェクトに限りアクセス可

このマトリクスを手作業で管理すると、組織変更や新規プロジェクト発足のたびに更新漏れが起こります。Claude Code では、組織図と秘密度ポリシーを入力し、マトリクスの初期案を生成 することで、更新作業を効率化できます。

def generate_access_matrix(org_structure: dict, secrecy_policy: dict) -> str:
    """
    組織構造と秘密度ポリシーからアクセス権限マトリクスを生成
    
    Args:
        org_structure: {"roles": ["役員", "部長", ...], "departments": ["営業", "開発", ...]}
        secrecy_policy: {"機密": "部長以上かつ担当部門のみ", ...}
    
    Returns:
        Markdown形式のマトリクス表
    """
    prompt = f"""
以下の組織構造と秘密度ポリシーに基づき、アクセス権限マトリクスをMarkdown表形式で生成してください。

【組織構造】
{org_structure}

【秘密度ポリシー】
{secrecy_policy}

- ○: 無条件でアクセス可
- △: 条件付きでアクセス可(条件を脚注で明記)
- ×: アクセス不可

表の下に脚注として条件の詳細を記載してください。
"""
    # Claude APIを呼び出してマトリクス表を生成(実装は省略)
    # 戻り値はMarkdown形式の表
    pass

生成されたマトリクスは 叩き台 として情報セキュリティ委員会に提示し、最終的には人間がレビュー・承認します。承認後のマトリクスは社内Wikiやコンフルエンス等に掲載し、全社員が参照できる状態にすることで秘密管理性の客観性を担保します。

!

注意: マトリクスを自動適用する場合、必ずテスト環境で動作確認を行い、意図しない権限の拡大や縮小が起きないことを検証してください。特に「△: 条件付き」の判定ロジックは複雑になりやすく、人間の最終承認が不可欠です。

社外持出し申請承認フローの記録自動化

営業秘密を社外に持ち出す際(顧客プレゼン・外部協力者への提供等)、承認フローと記録を残すことは秘密管理性の重要な証拠になります。多くの企業では紙の申請書やメールで運用していますが、記録の一元管理が難しく監査時に証跡を集めるのに苦労します。

Claude Code では、申請内容を構造化データとして記録し、承認経路と承認日時を自動でログに残す ワークフローを構築できます。以下は概念的なフロー図です。

1. 申請者が持出し内容を入力 — 文書名・秘密度・持出し先・目的・期間をフォームに記入

2. Claude が申請内容の妥当性をチェック — 秘密度と持出し先の関係(例: 極秘文書を顧客に渡す申請)に矛盾がないか確認し、必要に応じて警告を表示

3. 承認者(上長・情報セキュリティ担当)に通知 — Slack/Teams等で承認依頼を送信。承認・却下のボタンを提供

4. 承認後、監査ログに記録 — 申請内容・承認者・承認日時・持出し期限を構造化データとして保存。監査ログの活用で詳述した形式に準拠

このフローを実装する際、Claude Code は以下の役割を担います。

  • 申請内容の妥当性チェック: 例えば「極秘」文書を「外部協力者」に渡す申請があった場合、「秘密度ポリシーに照らして承認が必要です」とアラートを出す
  • 承認依頼文の自動生成: 申請内容をもとに、承認者向けのサマリーをSlackメッセージ形式で生成
  • 監査ログの構造化: 承認後の記録を JSON や CSV 形式で出力し、監査時に検索・集計しやすくする

重要なのは、最終的な承認判断は人間が行う ことです。Claude は申請内容の整合性チェックと記録の自動生成を担い、承認者が迅速に判断できる材料を提供します。

i

実務上の工夫: 持出し期限が過ぎた文書については、定期的に「返却確認」のリマインドを送信し、未返却の場合は情報セキュリティ委員会に報告する仕組みを併設すると、管理の実効性が高まります。

異常アクセスパターンの検知とアラート設定

秘密管理性を維持するには、日常的なアクセス監視が欠かせません。特に以下のようなパターンは、営業秘密の漏洩リスクが高いとされています。

  • 退職予定者による大量ダウンロード: 退職日前に通常の10倍以上のファイルをダウンロード
  • 深夜・休日の機密文書アクセス: 業務時間外に極秘文書へアクセス
  • 担当外部門への連続アクセス: 自分の担当ではない部門の機密文書に短時間で複数回アクセス
  • 外部IP からのアクセス: VPN未経由で機密文書にアクセス

Claude Code では、アクセスログを定期的に分析し、上記のような異常パターンを検知するスクリプトを作成できます。以下は概念的なコード例です。

def detect_anomaly_access(access_logs: list, user_context: dict) -> list:
    """
    アクセスログから異常パターンを検知
    
    Args:
        access_logs: [{"user": "user123", "file": "秘密価格表.xlsx", "time": "2025-01-15 22:30", ...}, ...]
        user_context: {"user123": {"department": "営業", "resignation_date": "2025-02-01"}, ...}
    
    Returns:
        異常と判定されたアクセスのリスト
    """
    prompt = f"""
以下のアクセスログとユーザー属性を分析し、営業秘密漏洩のリスクが高いアクセスパターンを抽出してください。

【検知すべきパターン】
1. 退職予定者による通常の3倍以上のダウンロード
2. 深夜(22時〜6時)・休日の機密文書アクセス
3. 担当外部門の機密文書への連続アクセス(5分以内に3件以上)
4. 外部IPからのアクセス(VPN未経由)

【アクセスログ】
{access_logs[:100]}  # 最新100件を送信

【ユーザー属性】
{user_context}

以下の形式でJSON出力してください:
[
  {{
    "user": "user123",
    "pattern": "退職予定者による大量ダウンロード",
    "evidence": "通常の5倍(50件)を1時間でダウンロード",
    "risk_level": "高"
  }},
  ...
]
"""
    # Claude APIを呼び出して異常パターンを抽出(実装は省略)
    # 検知結果をSlack等に通知
    pass

このスクリプトは、アクセスログと社員の属性情報(部門・退職予定日等)を Claude に送信し、リスクの高いアクセスパターンを抽出します。検知結果は情報セキュリティ担当者に即座に通知し、人間が最終的な対応判断(ユーザーへのヒアリング・アカウント停止等)を行います。

!

プライバシー配慮: アクセスログの分析は従業員のプライバシーに関わるため、社内規程で「監視の目的・範囲・保管期間」を明示し、労使合意を得た上で実施してください。Claude に送信するログは最小限の項目(ユーザーID・ファイル名・時刻)に絞り、個人のメール内容等は含めないようにします。

秘密管理性の立証に必要な記録と監査対応

不正競争防止法に基づく営業秘密保護の実効性を示すには、以下の記録を継続的に整備する必要があります。

3種類
必須記録(分類・権限・持出し)
定期的
監査頻度(四半期~年次)
構造化
記録形式(JSON/CSV等)
記録の種類 記録内容 保管期間 Claude Code の役割
秘密度分類記録 文書ごとの秘密度レベル・分類日・承認者 文書の保管期間+3年 分類推奨と根拠の提示
アクセス権限記録 役職・部門ごとの権限マトリクス・改定履歴 改定後3年 マトリクス初期案の生成
持出し承認記録 申請内容・承認者・承認日時・返却確認 持出し完了後3年 申請内容チェック・記録の構造化
異常アクセス記録 検知パターン・対応履歴 検知後3年 パターン検知・通知

これらの記録を 定期的に監査 し、運用実態と記録が一致しているかを確認します。監査時には、Claude Code が生成した記録を集計し、「秘密度の分類基準が一貫しているか」「権限マトリクスが組織変更に追従しているか」「持出し承認が漏れなく記録されているか」を検証します。

知的財産管理との統合で述べたように、営業秘密管理は特許・商標等の知財管理と連携することで、企業の知的資産全体を保護する体制が整います。Claude Code を活用することで、これらの記録をAPI経由で統合し、一元的なダッシュボードで可視化することも可能です。

i

監査対応のポイント: 外部監査(ISO 27001 認証審査等)では、「記録があるだけでなく、記録に基づいて運用されている証拠」を求められます。Claude の推奨と人間の承認が記録されていることで、「AI 支援による客観的な判断プロセス」として評価される事例が増えています。

まとめ

本記事では、Claude Code を活用した営業秘密管理の自動化実務を解説しました。要点を再掲します。

4工程
自動化対象(判定・権限・申請・検知)
人間判断
最終承認の主体
三要件
不正競争防止法の保護要件
  • 秘密度自動判定: 文書内容と社内基準を照合し、推奨レベルと根拠を提示。最終分類は人間が承認
  • 権限マトリクス生成: 組織構造とポリシーからマトリクスの初期案を作成。情報セキュリティ委員会がレビュー
  • 持出し申請記録: 申請内容の妥当性チェックと承認フローの自動化。監査ログに構造化データとして保存
  • 異常アクセス検知: 退職予定者の大量ダウンロード等のパターンを検知し、担当者に通知。対応は人間が判断

Claude Code は、営業秘密管理の各工程で 判断材料の提示と記録の自動生成 を担い、情報セキュリティ委員会や法務部門の最終判断を支援します。これにより、不正競争防止法が求める秘密管理性を実装レベルで担保し、監査時に客観的な証跡を提示できる体制が整います。

株式会社デジライズでは、Claude Code を活用した営業秘密管理の導入を 研修とコンサルティングの2本柱 で支援しています。情報セキュリティ担当者・法務部門向けの実務研修では、秘密度分類基準の策定から異常検知スクリプトの実装まで、実際のコードを用いたハンズオン形式で学べます。コンサルティングでは、貴社の組織構造と秘密度ポリシーをヒアリングし、権限マトリクスと監査記録の設計を支援します。営業秘密管理の高度化をお考えの方は、ぜひ 無料相談 からお問い合わせください。貴社の法務・知財部門と連携し、実効性のある管理体制を構築します。

関連記事