AI生成コードのセキュリティ
記事状態: 公開 · 最終確認: 未確認
要点
「生成コードは、通常のコードと同じく解析・依存関係・秘密情報・license・テスト・人手レビューを通す。CodeQL/Scorecardは検査部品であり、生成コードの安全性・適法性を保証しない。」
現在の判断
GitHubの公式ドキュメントでは、コードスキャニングが脆弱性やエラーを検出し、CodeQLまたはサードパーティツール/SARIFを利用可能であること、およびプライベートリポジトリではライセンス条件があることが明記されています。Scorecardは、依存関係の固定、SAST(静的解析)、ライセンス、トークン権限などを個別にチェックします。したがって、生成されたコードの受入プロセスは、「生成 → フォーマット/型/テスト → SAST/CodeQL → 依存関係/シークレット/ライセンス → 人による確認 → サンドボックスでの実行」という多段階の確認プロセス(ゲート)として設計することが可能です。
どこまで当てはまるか
企業AI運用の共通原則 / コーディング / セキュリティ / OSSプラクティス / CI
詳しく理解する
なぜ重要か
生成されたコードは、脆弱性、存在しないパッケージ、機密情報、ライセンス、誤った修正を同時に含んでいる可能性がある。生成されたこと自体を検査済みとみなさない受入手順が必要である。
対象範囲と前提
企業AI運用の共通原則 / コーディング / セキュリティ / OSSプラクティス / CI
検討ポイント
生成コードをコード解析、dependency/秘密情報/license、reviewへ通す根拠と、各検査の限界は何か。
根拠資料の対応表
- 資料の種類: official developer security 仕様・利用方法の文書; 原資料の題名: Code scanning; 著者・組織: GitHub; 原資料の正式なURL: https://docs.github.com/en/code-security/concepts/code-scanning/code-scanning publication/update/access: 現在の docs 参照日 2026-09-13; バージョン/公開・提供: 現在の GitHub Code Security/CodeQL 利用機能・接続経路; 裏付ける該当箇所: lines 12-14, 28-34, 40-49(vulnerability/error detection、scheduled/イベント scans、CodeQL、SARIF、license 適用限界); 根拠の分類: VERIFIED_SPEC + PRODUCT_VOLATILE; 対応関係: 裏付け / 利用条件の確認。
- 資料の種類: government secure-development framework; 原資料の題名: Secure Software Development Framework (SSDF) バージョン 1.1; 著者・組織: NIST; 原資料の正式なURL: https://csrc.nist.gov/pubs/sp/800/218/final publication/update/access: 2022-02 / 参照日 2026-09-13; バージョン/公開・提供: v1.1; 裏付ける該当箇所: lines 64-74; 根拠の分類: VERIFIED_SPEC; 対応関係: 文脈・入力情報 / 裏付け。
- 資料の種類: author-maintained OSS 実装; 原資料の題名: OpenSSF Scorecard; 著者・組織: OpenSSF; 原資料の正式なURL: https://github.com/ossf/scorecard publication/update/access: 参照日 2026-09-13; バージョン/公開・提供: 現在の repository; 裏付ける該当箇所: lines 604-621(branch protection, code review, dependency pinning, SAST, license, vulnerabilities, token permissions); 根拠の分類: OSS_PRACTICE + PRODUCT_VOLATILE; 対応関係: 裏付け / limit。
利用できる条件
language/framework・dependency lock・package existence・CVE/OSV・秘密情報 scan・license/出典・来歴・CodeQL/SAST・tests・sandbox/network・human 承認。
実装・運用
実装状態: CI 確認・承認の条件の構成要素と受入順序を確立。実CIへの組込み、false positive率、生成コードの自動修正は未実施。
確認・評価方法
評価: 無害なfixtureへ存在しないpackage、既知の脆弱pattern、dummy 秘密情報、license header欠落を入れ、各検査がどこまで検出するか確認。秘密は本物を使わない。
セキュリティとプライバシー
セキュリティ: 信頼できないコードは隔離して実行する。プライバシー: プロンプトやソースコードをログに平文で保存しない。監査: generator/モデル/プロンプト/コミット/スキャン結果を紐付ける。コスト: CIの実行時間およびレビュー工数は未計測。
現行性の確認範囲と限界
現在のCodeQL/コードスキャンは、言語、ライセンス、および設定に依存する範囲に留まっており、セキュリティ、正確性、およびライセンスに関する複数の管理策のうちの一つ(確認ステップ)に過ぎません。
確認できていること
GitHubの公式ドキュメントでは、コードスキャニングが脆弱性やエラーを検出し、CodeQLまたはサードパーティツール/SARIFを利用可能であること、およびプライベートリポジトリではライセンス条件があることが明記されています。Scorecardは、依存関係の固定、SAST(静的解析)、ライセンス、トークン権限などを個別にチェックします。したがって、生成されたコードの受入プロセスは、「生成 → フォーマット/型/テスト → SAST/CodeQL → 依存関係/シークレット/ライセンス → 人による確認 → サンドボックスでの実行」という多段階の確認プロセス(ゲート)として設計することが可能です。
よくある失敗・反証
静的解析では、仕様の誤り、事業ロジック、未知の脆弱性、およびプロンプトに起因する悪意のある挙動をすべて検出できるわけではない。Scorecardはリポジトリの健全性を示す指標であり、生成物の正確性やライセンスの適法性を最終判定するものではない。GitHub機能の利用可能性(利用可能性)は、リポジトリのタイプやライセンスによって異なる。
スキャン合格(scan pass)だけでマージや本番環境へのデプロイを行わないこと。 UNIT_CLOSE_STATUS: INDIVIDUAL_BOUNDED_CLOSE / EVIDENCE_RECORDED / UNKNOWN_PRESERVED
---
実務での使い方
language/framework・dependency lock・package existence・CVE/OSV・秘密情報 scan・license/出典・来歴・CodeQL/SAST・tests・sandbox/network・human 承認。
実装状態: CI 確認・承認の条件の構成要素と受入順序を確立。実CIへの組込み、false positive率、生成コードの自動修正は未実施。
評価: 無害なfixtureへ存在しないpackage、既知の脆弱pattern、dummy 秘密情報、license header欠落を入れ、各検査がどこまで検出するか確認。秘密は本物を使わない。
セキュリティ: 信頼できないコードは隔離して実行する。プライバシー: プロンプトやソースコードをログに平文で保存しない。監査: generator/モデル/プロンプト/コミット/スキャン結果を紐付ける。コスト: CIの実行時間およびレビュー工数は未計測。
本文に生成コード専用の受入表を追加し、検査結果をcommit/成果物単位で保存する設計へつなぐ。
現在のCodeQL/コードスキャンは、言語、ライセンス、および設定に依存する範囲に留まっており、セキュリティ、正確性、およびライセンスに関する複数の管理策のうちの一つ(確認ステップ)に過ぎません。
まだ確認できていないこと
- EA-105-UNKNOWN-01
AI生成コードに特化した検出率、hidden dependency、提供元別license terms、CodeQLの言語/拡張coverage、生成修正のレビュー負荷。
- EA-105-UNKNOWN-CURRENTNESS
外部根拠の再確認日が正式な本文・公開管理情報で確定していないため、現行性は未確認のまま保持する。確認日を推測して補わない。
根拠資料
- 研究資料研究資料
1) 資料の種類: official developer security 仕様・利用方法の文書; 原資料の題名: Code scanning; 著者・組織: GitHub; 原資料の正式なURL:
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
2) 出典クラス: 政府のセキュア開発フレームワーク; 正式なタイトル: Secure Software Development Framework (SSDF) バージョン 1.1; 作成者/組織: NIST; 正式なURL:
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
3) ソース種別: 開発者維持のOSS実装; 正式名称: OpenSSF Scorecard; 開発者/組織: OpenSSF; 正式なURL:
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
出典ID・検証情報・機械可読データ
根拠の種類と情報の鮮度は、ラベルとアイコンで確認できます。
- 記事ID
- EA-105
- 最終確認日
- —
- 提供元・モデル・プラン・利用環境
- —
- 対象地域
- —
元資料の全文と収録照合記録
WHY_THIS_MATTERS_TO_UPDATE
生成コードは脆弱性、存在しないpackage、secret、license、誤った修正を同時に含み得る。生成したこと自体を検査済みと扱わない受入手順が必要。
SCOPE_ROUTING
Enterprise AI Core / coding / security / OSS practice / CI
CLAIM_OR_RESEARCH_QUESTION
生成コードをコード解析、dependency/secret/license、reviewへ通す根拠と、各検査の限界は何か。
EVIDENCE TABLE
- source class: official developer security documentation; exact title: Code scanning; author/org: GitHub; canonical URL: https://docs.github.com/en/code-security/concepts/code-scanning/code-scanning publication/update/access: current docs accessed 2026-09-13; version/release: current GitHub Code Security/CodeQL surface; supporting locator: lines 12-14, 28-34, 40-49(vulnerability/error detection、scheduled/event scans、CodeQL、SARIF、license boundary); evidence label: VERIFIED_SPEC + PRODUCT_VOLATILE; relation: support / availability gate。
- source class: government secure-development framework; exact title: Secure Software Development Framework (SSDF) Version 1.1; author/org: NIST; canonical URL: https://csrc.nist.gov/pubs/sp/800/218/final publication/update/access: 2022-02 / accessed 2026-09-13; version/release: v1.1; supporting locator: lines 64-74; evidence label: VERIFIED_SPEC; relation: context / support。
- source class: author-maintained OSS implementation; exact title: OpenSSF Scorecard; author/org: OpenSSF; canonical URL: https://github.com/ossf/scorecard publication/update/access: accessed 2026-09-13; version/release: current repository; supporting locator: lines 604-621(branch protection, code review, dependency pinning, SAST, license, vulnerabilities, token permissions); evidence label: OSS_PRACTICE + PRODUCT_VOLATILE; relation: support / limit。
FINDINGS
GitHub公式文書はcode scanningが脆弱性/エラーを検出し、CodeQLまたはthird-party tool/SARIFを使えること、private repositoryではlicense条件があることを明記する。Scorecardは依存固定、SAST、license、token permission等を個別checkする。したがって生成コードの受入は、生成→format/type/test→SAST/CodeQL→dependency/secret/license→human review→sandbox実行の多段 gate として設計できる。
LIMITS / COUNTEREVIDENCE / FAILURE ENVELOPE
静的解析で仕様誤り、事業ロジック、未知の脆弱性、prompt由来の悪意を全て検出できない。Scorecardはrepositoryのhealth指標で、生成物の正しさやlicense適法性の最終判定ではない。GitHub機能のavailabilityはrepository type/licenseで変わる。
AVAILABILITY_GATES
language/framework・dependency lock・package existence・CVE/OSV・secret scan・license/provenance・CodeQL/SAST・tests・sandbox/network・human approval。
IMPLEMENTATION_STATE
実装状態: CI gateの構成要素と受入順序を確立。実CIへの組込み、false positive率、生成コードの自動修正は未実施。
BENCHMARK_OR_EVAL
Evaluation: 無害なfixtureへ存在しないpackage、既知の脆弱pattern、dummy secret、license header欠落を入れ、各検査がどこまで検出するか確認。秘密は本物を使わない。
SECURITY / PRIVACY / AUDIT / COST / OPERABILITY
SECURITY: untrusted codeは隔離実行。PRIVACY: prompt/source codeをログへ平文保存しない。AUDIT: generator/model/prompt/commit/scan resultを紐付け。COST: CI minutes・review工数は未計測。
SAFE_WORDING_FOR_FUTURE_BOOK
「生成コードは、通常のコードと同じく解析・依存関係・secret・license・テスト・人手レビューを通す。CodeQL/Scorecardは検査部品であり、生成コードの安全性・適法性を保証しない。」
UPDATE_WORK_HANDOFF
本文に生成コード専用の受入表を追加し、検査結果をcommit/artifact単位で保存する設計へつなぐ。
OPEN_UNKNOWN
AI生成コードに特化した検出率、hidden dependency、provider別license terms、CodeQLの言語/拡張coverage、生成修正のレビュー負荷。
STOP_CONDITION
scan passだけでmerge/production deployしない。 UNIT_CLOSE_STATUS: INDIVIDUAL_BOUNDED_CLOSE / EVIDENCE_RECORDED / UNKNOWN_PRESERVED
---
AUDITED_CURRENTNESS_BOUNDARY
Current CodeQL/code scanning scope remains language/license/configuration dependent and is one gate among multiple security/correctness/license controls.
EVD-EA-105-URL-408ACEE9ECE3研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-105-URL-408ACEE9ECE3
- 検証箇所
- EVIDENCE TABLE · 1) source class: official developer security documentation; exact title: Code scanning; author/org: GitHub; canonical URL: https://docs.github.com/en/code-security/concepts/code-scanning/code-scanning
- 適用範囲
- EVIDENCE TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-105-URL-3382974F730F研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-105-URL-3382974F730F
- 検証箇所
- EVIDENCE TABLE · 2) source class: government secure-development framework; exact title: Secure Software Development Framework (SSDF) Version 1.1; author/org: NIST; canonical URL: https://csrc.nist.gov/pubs/sp/800/218/final
- 適用範囲
- EVIDENCE TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-105-URL-9719D15362F8研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-105-URL-9719D15362F8
- 検証箇所
- EVIDENCE TABLE · 3) source class: author-maintained OSS implementation; exact title: OpenSSF Scorecard; author/org: OpenSSF; canonical URL: https://github.com/ossf/scorecard
- 適用範囲
- EVIDENCE TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EA-105-R11-RESEARCH研究資料研究資料根拠の出所: AUDITED_CANONICAL_RESEARCH_PACKETEA-105 監査済みresearch / canonical revision binding
- 裏付ける内容
- GitHub公式文書はcode scanningが脆弱性/エラーを検出し、CodeQLまたはthird-party tool/SARIFを使えること、private repositoryではlicense条件があることを明記する。Scorecardは依存固定、SAST、license、token permission等を個別checkする。したがって生成コードの受入は、生成→format/type/test→SAST/CodeQL→dependency/secret/license→human review→sandbox実行の多段 gate として設計できる。
- 確認日
- —
- 出典・実験ID
- COMM-039-EA0105
- 検証箇所
- COMM-039-EA0105 · EA-105-R5-LEGACY-MIGRATION-20261008-R1 · content/staging/EA-105.md
- 適用範囲
- 監査済みEA本文・canonical revision・既存Source Graph relationの範囲。欠損currentnessは推測で閉じない。
- 出典・来歴
- AUDIT_PASS_CANONICAL_BINDING
- 限界
- canonical監査・revision bindingの存在を示す。外部ソースcurrentnessが本文またはcontrol-planeで確定していない場合は、currentnessをUNKNOWNのまま保持する。
EA-105-R11-WEB-READBACK実装資料実装資料根拠の出所: IMPLEMENTATION_READBACKEA-105 Web body identity / canonical readback
- 裏付ける内容
- canonical staging bodyのSHA-256一致とR9 canonical ledger readbackをProduction projectionの入力として検証する。
- 確認日
- —
- 出典・実験ID
- WEBBODY-EA0105-R8-5B9A75F3
- 検証箇所
- WEBBODY-EA0105-R8-5B9A75F3 · content/staging/EA-105.md · EA-105-R5-LEGACY-MIGRATION-20261008-R1
- 適用範囲
- R9/R10 canonical readback後のProduction生成時body identity。
- 出典・来歴
- CANONICAL_READBACK_BODY_HASH_MATCH
- 限界
- body identity/readbackは本文claim自体の真偽や外部ソースの最新性を追加保証しない。
- 出典ID
- COMM-039-EA0105, SRC-EA-105-URL-408ACEE9ECE3, SRC-EA-105-URL-3382974F730F, SRC-EA-105-URL-9719D15362F8, WEBBODY-EA0105-R8-5B9A75F3
- 追跡中のUNKNOWN ID
- EA-105-UNKNOWN-01, EA-105-UNKNOWN-CURRENTNESS
- 再確認のきっかけ
- 正式な 改訂版/publication 状態 change · 本文 成果物 hash change · 出典 現行性 change · new contradiction or 実装 結果の照合
機械検査: 通過 — 機械検査の結果です。情報の正確性や実行の承認を保証するものではありません。
同じ記事IDの機械可読データです。