生成コードの著作権と安全対策
GitHub Copilot が生成したコードは、誰のものになるのでしょうか。ほかの人が公開しているコードと、偶然そっくりになることはないのでしょうか。このページでは、生成されたコードの権利に関する考え方と、そのリスクを抑えるための仕組みを整理します。
この記事で分かること
- Copilot がコードを生成する仕組みと、公開されているコードと一致する可能性
- 生成されたコードの所有についての、GitHub の立場
- 公開されているコードと一致する提案を、表示しないようにするフィルター
- 一致したコードの出どころとライセンスを確認する「コード参照」
- 企業向けのプランに含まれる、契約上の保護(知的財産の補償など)
- 生成されたコードを使う側の責任
試験範囲では、「プライバシー、コンテンツの除外、セーフガードを構成する」(比重 10〜15%)の分野にあたります。
このページは、法的な助言ではありません
このページは、GitHub の公式の資料に書かれている内容を、学習のために整理したものです。著作権やライセンスの扱いは、国の法律や、使い方、契約の内容によって変わります。実際の判断は、所属する組織の方針に従い、必要に応じて専門家に相談してください。
教材と現在の公式情報について
このページは、Microsoft Learn の教材(2024 年)と、GitHub の Trust Center、公式ドキュメント(2026 年 10 月に確認)をもとにしています。両者に違いがある箇所は、本文に明記しています。
用語の整理
| 用語 | 意味 |
|---|---|
| 知的財産(IP:Intellectual Property) | 人が考え出したものに対する権利。著作権や特許権など |
| 著作権(copyright) | 文章、音楽、プログラムなどの作品を、作った人が持つ権利 |
| オープンソースライセンス(open source license) | 公開されているコードを、ほかの人がどんな条件で使えるかを定めた決まり |
| 公開されているコードと一致する提案(suggestions matching public code) | Copilot の提案のうち、GitHub で公開されているコードと一致するもの |
| 重複検出フィルター(duplicate detection filter) | 公開されているコードと一致する提案を見つけて、表示しないようにする仕組み |
| コード参照(code referencing) | 提案が公開されているコードと一致したときに、その出どころとライセンスを示す機能 |
| IP 補償(IP indemnity、IP indemnification) | Copilot の提案を使ったことで、第三者から知的財産の侵害を主張された場合に、GitHub が法的な責任を引き受ける、という契約上の保護 |
| データ保護契約(DPA:Data Protection Agreement) | データをどう保護するかについて、GitHub が約束する内容を定めた文書 |
| Trust Center(トラストセンター) | GitHub が、Copilot のセキュリティ、プライバシー、知的財産の扱いなどを説明しているページ |
Copilot は、コードをコピーしているのか
コピーはしていません。
Trust Center では、次のように説明されています。Copilot は、学習の中で得た一般的なパターンをもとに、確率的に出力を組み立てる AI モデルを使っています。既存のコードや、データベースから、コピーして貼り付けているわけではありません。
一致することはあるのか
まれに、あります。
| 項目 | 内容 |
|---|---|
| 一致する割合 | GitHub の調査では、1% 未満 |
| 一致が起きやすい場面 ① | コードエディターに、参考にできるコンテキストがほとんどない、またはまったくない場合 |
| 一致が起きやすい場面 ② | 一致した出力が、よく使われる一般的な書き方や手法である場合 |
Copilot のモデルは、公開されているコードを広く集めたもので学習しています。その中には、著作権のあるコードも含まれています。そのため、出力が、学習に使われたコードに似ることがあります。
権利に関する考え方
一致した出力を使うリスク
出力が既存のコードと一致している場合、その出力を使うと、著作権の侵害を主張されるリスクがあります。そうなるかどうかは、使ったコードの量や性質、使い方によって変わります。
Trust Center は、これを**「自分で書いたのではないコードを使うときと、同じリスク」**と説明しています。インターネット上のコードを写したり、ライブラリのコードを再利用したりするときと、同じ種類の注意が必要、ということです。
オープンソースライセンスへの配慮
オープンソースライセンスで公開されているコードを使う場合、ライセンスの条件を満たす必要があることがあります。
| 条件の例 | 内容 |
|---|---|
| 作者の表示 | コードの作者が誰なのかを示す |
| ソースコードの公開 | そのコードを使って作ったもののソースコードを公開する |
| 同じライセンスでの配布 | 決められたライセンスのもとで配布する |
条件を満たさないと、コードの持ち主から、著作権の侵害や、ライセンス違反を主張されることがあります。
ただし、出力が既存のコードと一致したからといって、ただちに著作権やライセンスの問題が生じるわけではありません。 問題になるかどうかは、使われたコードの量と性質、適用されるライセンスなど、多くの要素によって決まります。
オープンソースについての方針と手順を定めるのは、それぞれの組織の責任です。Copilot の出力にも、ほかのコードと同じ方針を当てはめます。
出力は誰のものか
Trust Center での、GitHub の立場は次のとおりです。
| 項目 | GitHub の立場 |
|---|---|
| 出力を所有できるかどうか | GitHub は判断しない。 所有できるかどうかは、その国の知的財産の法律、出力の長さ、出力がどの程度「表現」とみなされるか、など、多くの要素による |
| 所有できる場合、誰のものか | GitHub は、出力の所有権を主張しない |
また、Copilot は、別々の利用者に、似た出力を返すことがあります。たとえば、無関係の 2 人が、それぞれ新しいファイルで、同じ有名なアルゴリズムを同じ言語で書き始めた場合、同じ出力になる可能性が高い、とされています。これは、生成 AI に共通する性質です。その場合も、GitHub は所有権を主張しません。
安全対策 ①:公開されているコードと一致する提案のフィルター
Copilot には、公開されているコードと一致する提案を見つけて、表示しないようにするフィルターがあります。「Suggestions matching public code」という設定を、Block にすると働きます。Trust Center では、「重複検出フィルター」とも呼ばれています。
フィルターの仕組み
| 項目 | 内容 |
|---|---|
| 照合する相手 | GitHub で公開されているコード |
| 対象になる長さ | 65 語彙素(lexeme:プログラムを構成する最小の単位)以上。平均すると、約 150 文字 |
| 対象になる一致 | 完全に一致するもの、ほぼ一致するもの |
| 一致した場合 | その出力は、利用者に表示されない |
公式ドキュメントでは、「提案と、その前後の約 150 文字のコードを、公開されているコードと照合する」と説明されています。
設定の選択肢
| 値 | 動き |
|---|---|
| Block | 一致する提案、ほぼ一致する提案を、表示しない |
| Allow | 一致する提案も表示する。一致した場合は、出どころとライセンスの情報を確認できる(次の節の「コード参照」) |
誰が設定するか
教材(2024 年)では、次のように整理されています。
| 範囲 | 設定する人 | 内容 |
|---|---|---|
| 組織(Business、Enterprise のプラン) | 管理者 | 組織のすべてのメンバーについて、一致する提案をブロックできる |
| 個人のアカウント(自分で契約している場合) | 利用者本人 | Allow と Block を、自分で切り替えられる |
| 個人のアカウント(組織から利用枠を割り当てられている場合) | — | 設定の切り替えが固定されていて、組織の方針がそのまま反映される |
Trust Center によると、エンタープライズの管理者は、このフィルターをエンタープライズ内のすべての組織に適用することも、それぞれの組織に判断を任せることもできます。
設定の手順
教材(2024 年)での手順です。
組織の管理者
- GitHub の画面右上のプロフィール画像から、「Your enterprises」または「Your organizations」を選ぶ
- 設定する組織の「Settings」を開く
- 左のサイドバーの「Code, planning, and automation」にある「Copilot」を選ぶ
- 「Features」を開き、「Privacy」の項目まで移動する
- 「Suggestions matching public code」で、「Block」を選ぶ
- 「Save」で保存する
個人の利用者
- GitHub の画面右上のプロフィール画像から、「Settings」を選ぶ
- 左のサイドバーの「Copilot」を選ぶ
- 「Features」を開き、「Privacy」の項目まで移動する
- 「Suggestions matching public code」で、「Allow」または「Block」を選ぶ
現在の公式ドキュメントでは、個人の設定は、プロフィール画像から「Copilot settings」を開いて変更する、と説明されています。画面の構成は変わることがあるので、実際に設定するときは、最新の公式ドキュメントで確認してください。
フィルターが働かない場面
Block に設定しても、すべての機能で働くわけではありません。
- 公式ドキュメントでは、Block に対応していない製品は、Allow の場合と同じ動きをする、と説明されています。
- Trust Center では、このフィルターは、Copilot のコーディングエージェント(作業を任せると、GitHub の側で自律的に進める機能)には適用されない、とされています。
そのため、フィルターを設定していても、生成されたコードを人が確認することは、引き続き必要です。
安全対策 ②:コード参照
コード参照は、提案が公開されているコードと一致したときに、その出どころとライセンスを示す機能です。設定が Allow の場合と、Block に対応していない製品を使っている場合に働きます。
表示・記録される情報
| 情報 | 内容 |
|---|---|
| 提案を追加したファイルの場所 | ファイルのパスと、行・列の位置 |
| 一致した公開コードの URL | GitHub.com 上の、該当するファイルへのリンク |
| ライセンスの種類 | 一致したコードに適用されているライセンス。見つからない場合は、NOASSERTION または unknown と表示される |
確認のしかた
| 使い方 | 確認のしかた |
|---|---|
| コード補完(インラインの提案) | 一致する提案を受け入れると、IDE のログに記録される。エディターの中には表示されない。対応しているのは、JetBrains の IDE、Visual Studio Code、Visual Studio |
| Copilot Chat | 一致がある場合、応答の最後に、似たコードが見つかったという通知と、一致の内容を見るためのリンクが表示される |
| GitHub の Web サイトのチャット | 提案されたコードの下に、公開コードの参照が表示される |
コード参照の使い道
Trust Center は、コード参照を、次のように使うことを勧めています。
- 一致した出力を使ってよいかどうかを、出どころとライセンスを見て判断する
- 必要に応じて、作者を表示する、ライブラリとして取り込む、別の書き方を選ぶ、といった対応をとる
- ほかのプロジェクトのコードや文書を知る、学習の手がかりにする
契約上の保護
教材では、組織が法的な要件を満たし続けるための仕組みとして、次の 3 つが挙げられています。
| 仕組み | 内容 |
|---|---|
| IP 補償 | Business と Enterprise のプランに含まれる。Copilot の提案が、第三者の知的財産の権利を侵害していると主張された場合に、GitHub が法的な責任を引き受ける |
| データ保護契約(DPA) | データを保護し、データのプライバシーに関する規制に従うために、GitHub がとる対策を定めた文書 |
| Trust Center | Copilot の仕組みについて、セキュリティ、プライバシー、法令への対応、知的財産の保護などの詳しい情報を提供するページ |
IP 補償を受けるための条件
ここは、教材と、現在の公式情報で、説明が違います。
| 条件 | |
|---|---|
| 教材(2024 年) | 「Matching public code」の設定を、ブロックにしていること |
| 現在の Trust Center | 次のどちらかを満たすこと。① 「Suggestions matching public code」を Block にする。② Allow にしたうえで、コード参照で示された、一致したコードのライセンスに従う |
現在の Trust Center では、ほかに次の点も説明されています。
- 補償の対象は、変更を加えていない出力である
- 補償を受けるには、Microsoft が定める対策に従う必要がある
- Copilot のコーディングエージェントには、フィルターが適用されない。それでも、エージェントが生成した、変更を加えていないコードは、補償の対象になる
- Copilot で、ほかの会社が提供する AI モデルを使った場合も、Business と Enterprise の利用者は、補償の対象になる
個人向けのプランについては、教材でも Trust Center でも、IP 補償の対象として挙げられているのは Business と Enterprise のプランです。
使う側の責任
フィルターや補償があっても、生成されたコードを確認する責任は、使う側にあります。
Trust Center は、製品の名前が「Autopilot(自動操縦)」ではなく「Copilot(副操縦士)」であることを挙げて、人の監督なしに出力を生成するためのものではない、と説明しています。Copilot は、開発者の仕事を効率よくするための道具であって、開発者に代わるものではありません。
求められているのは、出どころの分からない、ほかの人が書いたコードを使うときと、同じ注意です。
| 対策 | 内容 |
|---|---|
| 機能のテスト | 生成されたコードが、求めたとおりに動くかを確かめる |
| コードの検査 | 検査のツールを使って、問題のある書き方を見つける |
| セキュリティのテスト | 脆弱性(セキュリティ上の欠陥)がないかを確かめる |
| 自動実行の防止 | 確認する前に、生成されたコードが自動でコンパイルされたり、実行されたりしないようにする |
| 組織の方針の適用 | オープンソースについての組織の方針と手順を、Copilot の出力にも同じように当てはめる |
この考え方は、「責任ある AI の 6 つの原則」のアカウンタビリティ(AI については、人が責任を負う)と、つながっています。
教材と、現在の公式情報の違い
| 項目 | 教材(2024 年) | 現在の公式情報 |
|---|---|---|
| IP 補償を受けるための条件 | 一致する提案を、ブロックに設定する | Block に設定する。または、Allow に設定して、示されたライセンスに従う |
| フィルターの対象になる長さ | 約 150 文字を超える提案(「GitHub Copilot の仕組みとデータフロー」で紹介した説明) | 65 語彙素以上。平均すると、約 150 文字 |
| 個人向けのプランの名前 | Free、Pro、Pro+ | Free、Pro、Pro+、Max |
| 個人の設定の場所 | Settings → Copilot → Features → Privacy | プロフィール画像 → Copilot settings |
訳語の違いに注意
日本語版の教材は機械翻訳です。英語とセットで覚えておくと安心です。
| 英語 | 日本語版の教材での表記 |
|---|---|
| IP indemnity | IP 補償、知的財産の補償 |
| Data Protection Agreement(DPA) | データ保護契約 |
| Matching public code | 一致するパブリック コード |
| Suggestions matching public code | パブリック コードに一致する候補 |
| Public code filter | パブリック コード フィルター |
| Trust Center | トラスト センター |
| Allow / Block | 許可 / ブロック |
まとめ
- Copilot は、学習で得たパターンをもとに、確率的に出力を組み立てる。コピーして貼り付けているわけではない。ただし、まれに(1% 未満)、公開されているコードと一致することがある。
- GitHub は、出力を所有できるかどうかを判断しない。所有できる場合も、GitHub は所有権を主張しない。
- 「Suggestions matching public code」を Block にすると、約 150 文字以上にわたって公開されているコードと一致する提案が、表示されなくなる。
- Allow の場合は、コード参照によって、一致したコードの出どころとライセンスを確認できる。
- IP 補償は、Business と Enterprise のプランに含まれる。教材では、ブロックの設定が条件とされている。現在の Trust Center では、Allow にしてライセンスに従う方法も認められている。
- フィルターや補償があっても、生成されたコードを確認する責任は、使う側にある。ほかの人が書いたコードを使うときと、同じ注意を払う。
確認問題
このページの内容から作った、自作の問題です。実際の試験問題ではありません。選択肢を選んで「答えを確認する」を押すと、正解と解説が表示されます。
参考資料と確認の記録
- GitHub Copilot Trust Center の FAQ
- Finding public code that matches GitHub Copilot suggestions(GitHub Docs)
- 個人の Copilot の設定の管理(GitHub Docs)
- Management and customization considerations with GitHub Copilot(Microsoft Learn)
- GitHub Copilot での管理とカスタマイズに関する考慮事項(Microsoft Learn・日本語版)
- Study guide for Exam GH-300: GitHub Copilot(Microsoft Learn)
| 項目 | 内容 |
|---|---|
| 最終確認日 | 2026 年 10 月 11 日 |
| 検証の状況 | GitHub の Trust Center の「知的財産とオープンソース」に関する項目、GitHub の公式ドキュメント(2 ページ)、Microsoft Learn の教材(英語版と日本語版)の「契約上の保護と、一致する公開コードの無効化」の単元と照合した。設定の画面を実際に操作しての確認は、行っていない |
| 公式の情報で確認できていない内容 | 組織の設定の、既定の値(Allow と Block のどちらが最初に選ばれているか)。IP 補償を受けるために従う必要がある「Microsoft が定める対策」の具体的な内容 |
| 変わる可能性がある内容 | 設定画面の構成と項目の名前、フィルターに対応している製品、IP 補償の条件、プランの名前 |
| 注意 | このページは、法的な助言ではない。著作権やライセンスに関する実際の判断は、組織の方針と、専門家の助言に従うこと |