GitHub Copilot のセキュリティと責任ある使用
ソフトウェア開発に人工知能を適用すると、次の点で大きな利点が得られます。 「生産性の向上」だけでなく、「新しい責任」も導入されます。 安全性, データプライバシー e 倫理的使用。 GitHub Copilot はいくつかの機能を統合します 提案フィルタリングから自動スキャンまで、多層のセキュリティ保護 エージェント実行環境の分離からデータ保護までのコードの分割 組織の。
このシリーズの最後の記事では、すべてのセキュリティ保護について詳しく見ていきます。 Copilot への統合、責任ある使用に関するガイドライン、プライバシーの考慮事項 AI が生成したコードをレビューするためのデータとベスト プラクティスについて説明します。
シリーズ全体の概要
| # | アイテム | 集中 |
|---|---|---|
| 1 | 基礎と考え方 | セットアップとメンタリティ |
| 2 | コンセプトと要件 | アイデアから MVP まで |
| 3 | バックエンド/フロントエンドのアーキテクチャ | APIとデータベース |
| 4 | コードの構造 | 組織と命名 |
| 5 | 迅速なエンジニアリング | MCP プロンプトとエージェント |
| 6 | テストと品質」 | ユニット、統合、E2E |
| 7 | ドキュメント | README、API ドキュメント、ADR |
| 8 | デプロイとDevOps | ドッカー、CI/CD |
| 9 | 進化 | スケーラビリティとメンテナンス |
| 10 | コーディングエージェント | GitHub自律エージェント |
| 11 | コードレビュー | 自動レビュー |
| 12 | 副操縦士の編集 | 複数ファイルの編集 |
| 13 | GitHub スパーク | コード不要のマイクロアプリ |
| 14 | 副操縦士スペース | 共有コンテキスト |
| 15 | AIモデル | マルチモデルと選択 |
| 16 | カスタマイズ | 手順とセットアップ |
| 17 | エンタープライズとビジネス | 計画、分析、ポリシー |
| 18 | 拡張機能とマーケットプレイス | 拡張機能と統合 |
| 19 | 現在位置 → 安全性と責任ある使用 | セキュリティとコンプライアンス |
統合されたセキュリティ保護
GitHub Copilot には、動作する多層セキュリティ保護システムが含まれています。 ワークフローのさまざまな段階: 提案の生成から作成まで 自律エージェントが実行されるまでのプル リクエスト。
CodeQLによる自動スキャン
とき コーディングエージェント Copilot がプル リクエストを作成し、コードが生成される によって自動的に分析されます コードQL、静的解析エンジン GitHub のセキュリティ。このスキャンによりコード パターンが特定される可能性があります コードが承認される前に脆弱になります。
PR の自動セキュリティチェック
| チェック | ツール | 検出するもの | 実行時 |
|---|---|---|---|
| コードスキャン | コードQL | コードの脆弱性 (SQL インジェクション、XSS、パス トラバーサルなど) | エージェントが作成した各 PR |
| アドバイザリーチェック | GitHub アドバイザリー DB | 既知の脆弱性を伴う依存関係 (CVE) | パッケージファイルへの変更 |
| シークレットスキャン | GitHub シークレット スキャナー | コードにハードコーディングされたトークン、API キー、パスワード | すべてのコミット |
| 依存関係のレビュー | 依存関係グラフ | 脆弱性または問題のあるライセンスを伴う新しい依存関係 | 依存関係ファイルへの変更 |
CodeQL: 脆弱性が検出されました
| カテゴリ | Esempi | 言語 | 重大度' |
|---|---|---|---|
| 注射 | SQLインジェクション、コマンドインジェクション、LDAPインジェクション | Java、Python、JS、C#、Go、Ruby | 致命的 |
| クロスサイトスクリプティング | リフレクト XSS、ストアド XSS、DOM ベース XSS | JS、TypeScript、Java、Python | 高い |
| パストラバーサル | ディレクトリトラバーサル、ファイルインクルード | みんな | 高い |
| 安全でない逆シリアル化 | 信頼できないデータの逆シリアル化 | Java、Python、C# | 致命的 |
| 認証の失敗 | 弱いハッシュ、タイミング攻撃、認証チェックの欠落 | みんな | 高い |
| 機密データの漏洩 | 機密データのログ、ハードコードされた認証情報 | みんな | 中~高 |
| セキュリティの構成ミス | 製品のデバッグ モード、弱い TLS、許容的な CORS | Java、Python、JS | 中くらい |
| 暗号化の問題 | 弱いアルゴリズム、予測可能なランダム、ECB モード | みんな | 中~高 |
GitHub アドバイザリー データベース
Il GitHub アドバイザリー データベース 継続的に更新されるデータベースです ソフトウェアの依存関係における既知の脆弱性の説明。 Copilot が以下を含むコードを生成すると、 新しい依存関係または既存の依存関係を更新すると、システムは自動的に次のことをチェックします。 指定されたバージョンには既知の脆弱性があります。
アドバイザリーデータベースがサポートするエコシステム
| 生態系 | 監視対象ファイル | 追跡された脆弱性 |
|---|---|---|
| npm (Node.js) | パッケージ.json、パッケージロック.json | CVE、GHSA、npm アドバイザリ |
| ピップ (Python) | 要件.txt、Pipfile、pyproject.toml | CVE、GHSA、PyPI アドバイザリー |
| メイブン (Java) | pom.xml | CVE、GHSA、Maven アドバイザリー |
| グラドル (Java) | build.gradle、build.gradle.kts | CVE、GHSA |
| NuGet (.NET) | .csproj、packages.config | CVE、GHSA、NuGet アドバイザリ |
| ルビージェムズ | Gemfile、Gemfile.lock | CVE、GHSA、Ruby アドバイザリー |
| Goモジュール | go.mod、go.sum | CVE、GHSA |
| 貨物(錆) | Cargo.toml、Cargo.lock | CVE、GHSA、RustSec |
シークレットスキャン
Il シークレットスキャナー GitHub は各コミットを分析してパターンを特定します これは、トークン、API キー、パスワード、その他の秘密に対応します。 ソースコードに存在します。これは、使用する場合に特に重要です モデルがパターンを提案する場合があるため、AI がコードを生成する 本物の認証情報に似ています。
検出された秘密の種類
| カテゴリ | Esempi | パターン |
|---|---|---|
| クラウドプロバイダー | AWS アクセス キー、Azure サービス プリンシパル、GCP サービス アカウント | AKIA*、azure_*、gcp_* |
| APIキー | ストライプ、Twilio、SendGrid、OpenAI | sk_live_*、SG.*、sk-* |
| データベース | パスワードを含む接続文字列 | postgres://*:*@*、mongodb+srv://* |
| OAuthトークン | GitHub、Google、Slack トークン | ghp_*、gho_*、xoxb-* |
| 証明書 | 秘密鍵、証明書 | -----RSA 秘密鍵の開始----- |
| CI/CD | CircleCI、Travis CI、Jenkins トークン | サークル_*、TRAVIS_* |
コーディングエージェントのセキュリティ
Il コーディングエージェント Copilot は、分離されたサンドボックス環境で動作します。 セキュリティリスクを最小限に抑えるために設計された特定の制限。これらの保護 エージェントにはコードを変更してコマンドを実行する機能があるため、これらは基本的なものです。 独立してプルリクエストを作成します。
サンドボックスと制限事項
エージェント実行環境の保護
| 保護 | 説明 | モチベーション |
|---|---|---|
| 分離されたサンドボックス | エージェントは外部ネットワークにアクセスせずに隔離されたコンテナ内で実行されます。 | データの漏洩と不正アクセスを防止します |
| 秘密へのアクセス禁止 | エージェントは環境変数、トークン、またはリポジトリ認証情報にアクセスできません。 | 資格情報と機密データを保護します |
| リポジトリへの読み取り専用アクセス | エージェントはコードを読み取りますが、専用のブランチにのみ書き込みます | 保護されたブランチへの直接変更を防止します |
| ブランチ副操縦士/* のみ | 変更は接頭辞付きの分岐に限定されます copilot/ | AI の変更をメインコードから分離する |
| ワークフローの承認 | GitHub アクションはエージェント PR に対して自動的には実行されません | パイプラインでのテストされていないコードの実行を防止します。 |
| セキュリティスキャンが必要です | エージェントによって作成されたすべての PR に対する CodeQL 自動スキャン | 生成されたコードのセキュリティの自動検証 |
重要: エージェントは無謬ではありません
保護機能が組み込まれているにもかかわらず、コーディング エージェントは問題のあるコードを生成する可能性があります 自動スキャンを回避するセキュリティ。論理的な脆弱性、問題 認可およびビジネス ロジックのバグは、静的分析では検出するのが困難です。
人間によるレビューは常に必要です。 エージェントが生成する PR は次のとおりです。 他の PR と同じ (またはそれ以上) 厳密に審査される必要があります。
コーディングエージェントのアクセスモデル
# Ciclo di vita sicuro del Coding Agent
1. ASSEGNAZIONE
- Utente assegna issue a "copilot" su GitHub
- GitHub verifica permessi dell'utente sul repo
- Se autorizzato, l'agente viene attivato
2. ANALISI (sandbox isolato)
- L'agente legge il codice del repository (read-only)
- Analizza l'issue e il contesto
- NON ha accesso a: secrets, env vars, credenziali
- NON ha accesso a: rete esterna, altri repository
3. IMPLEMENTAZIONE (branch isolato)
- Crea branch copilot/issue-{number}
- Applica modifiche SOLO su questo branch
- Esegue test nel sandbox
- NON può' modificare branch protetti (main, develop)
4. PULL REQUEST
- Crea PR dal branch copilot/* verso il branch target
- CodeQL scan automatico sul codice generato
- Secret scanning sul diff
- Dependency review per nuove dipendenze
- Workflow NON eseguiti automaticamente (require approval)
5. REVIEW UMANA
- Lo sviluppatore rivede la PR
- Approva l'esecuzione dei workflow CI/CD
- Merge manuale dopo approvazione
データプライバシー
データプライバシーは、AIアシスタントを導入する際の主な懸念事項の1つです ソースコードにアクセスできる人。 GitHub はさまざまなプランに対して特定の保証を提供します。 個人プランとビジネス/エンタープライズプランには大きな違いがあります。
プラン別のデータポリシー
プラン別のデータ処理
| 待ってます | 無料/プロ/プロ+ | 仕事 | 企業 |
|---|---|---|---|
| トレーニングに使用されるデータ | オプトアウト可能 | いいえ、決してありません | いいえ、決してありません |
| 即時保持 | 一時的(改善のため) | 保存されていない | 保存されていない |
| 提案の保持 | 一時的 | 保存されていない | 保存されていない |
| テレメトリー | はい(匿名化) | 最小値 (使用量メトリクス) | 設定可能 |
| コンテンツの除外 | 利用不可 | はい、組織レベルで | はい、エンタープライズレベルで |
| 滞在日 | 米国拠点 | 米国拠点 | 設定可能 (EU、米国) |
| コードベースのインデックス共有 | 該当なし | 該当なし | トレーニング用ではなく、組織内で共有されます |
ビジネス/企業の約束
Business および Enterprise プランの場合、GitHub は明示的な保証を提供します。 リポジトリ コード、Copilot に送信するプロンプト、および提案 あなたが受け取るものは、AI モデルのトレーニングには決して使用されません.
この保証は、Enterprise プランでインデックス付けされたリポジトリにも適用されます。 セマンティック インデックスは、関連性を向上させるためにのみ使用されます。 モデルのトレーニングではなく、組織のユーザーに対する応答の数。
プライバシー設定
個々のプラン (無料、プロ、プロ+) については、環境設定を構成できます GitHub アカウント設定を通じてプライバシーを保護します。
# Percorso: github.com > Settings > Copilot > Policies
1. TELEMETRY
[x] Allow GitHub to use my data for product improvements
[ ] Allow GitHub to use my code snippets for training
Nota: Deselezionare la seconda opzione per impedire
l'uso del codice per il training dei modelli.
2. SUGGESTIONS MATCHING PUBLIC CODE
[x] Block suggestions matching public code
[ ] Allow suggestions matching public code
Nota: Abilitare il blocco per evitare suggerimenti
che corrispondono a codice pubblico esistente,
riducendo il rischio di violazione licenze.
3. CONTENT EXCLUSION (Solo Business/Enterprise)
Configurato a livello organizzazione.
Esclude file specifici dall'elaborazione di Copilot.
公共の規範に一致する提案
の機能 公開コードに一致する提案をブロックする コンプライアンスを重視する組織にとっては特に重要です ライセンス。有効にすると、Copilot は各提案をコード インデックスと比較します。 公共の。有意な一致 (約 150 文字以上) が見つかった場合、 提案はブロックされます。
このメカニズムにより、カバーされたコードが意図せずに組み込まれるリスクが軽減されます。 互換性のないライセンス (プロプライエタリなプロジェクトの GPL など) は削除されませんが、 完全に。人間によるレビューが依然として重要です。
責任ある使用に関するガイドライン
GitHub Copilot の責任ある使用は、技術的なセキュリティを超えたものです。それには、 生成されたコードの検証、AI の限界の認識、透明性 使用中および提案のバイアスに注意してください。
AI が生成したコードの検証
コパイロットの各提案は、コパイロットによって記述されたコードとして扱われる必要があります。 外部ジュニア開発者 プロジェクトの完全な背景を知らない人。 これは、あなたが適用するのと同じ(またはそれ以上の)レベルの精査を適用することを意味します。 新しいチームメンバーのPRに。
AI 生成コードの検証チェックリスト
| エリア | 確認すべきこと | 優先度' | 推奨ツール |
|---|---|---|---|
| 安全性 | すべてのエンドポイントでの入力検証 | 批判 | CodeQL、ESLint セキュリティ ルール |
| 認証と認可の管理 | 批判 | 手動レビュー + テスト | |
| ファイル システム アクセス (パス トラバーサル) | 高い | CodeQL、手動レビュー | |
| ハードコードされたシークレットはありません | 批判 | シークレットスキャナー、git-secret | |
| 品質' | 理解しやすく保守しやすいコード | 高い | コードレビュー、SonarQube |
| プロジェクトパターンの遵守 | 平均 | ESLint、カスタム ルール | |
| 不要な重複コードは不要 | 平均 | SonarQube、jscpd | |
| 正しさ | 正しいビジネスロジック | 批判 | 単体テスト、結合テスト |
| 管理されたエッジケース | 高い | プロパティベースのテスト | |
| 適切なエラー処理 | 高い | 手動レビュー + テスト | |
| パフォーマンス | N+1 クエリなし | 高い | クエリプロファイラー、手動レビュー |
| キャッシュの適切な使用 | 平均 | 負荷テスト | |
| 許容可能なアルゴリズムの複雑さ | 平均 | ベンチマーク |
検討すべき重要な領域
AI によって生成される場合、コードの一部の領域には特別な注意が必要になります。 これらの領域でのエラーは重大な結果を招く可能性があるためです。
高リスク (詳細なレビュー)
- 認証と認可
- セッション管理
- 暗号化とハッシュ化
- ユーザー入力によるデータベースクエリ
- ファイルのアップロードと管理
- 支払い管理
- 公開された API
- データ移行
- 削除/パージ操作
- CORS と CSP の構成
中程度のリスク (標準レビュー)
- 複雑なビジネスロジック
- フォームと入力の検証
- アプリケーションの状態管理
- サービス間の通信
- ロギングとモニタリング
- エラー管理と再試行ロジック
- キャッシュと無効化
- レート制限
- シリアル化/逆シリアル化
- ミドルウェア構成
注意すべき危険なコード パターン
# ============================================
# PATTERN PERICOLOSI DA IDENTIFICARE
# ============================================
# 1. SQL INJECTION
# PERICOLOSO: concatenazione diretta di input utente
query = f"SELECT * FROM users WHERE name = '{user_input}'"
# SICURO: query parametrizzata
cursor.execute("SELECT * FROM users WHERE name = %s", (user_input,))
# 2. PATH TRAVERSAL
# PERICOLOSO: path non sanitizzato
const filePath = path.join(uploadDir, req.params.filename);
fs.readFile(filePath, callback);
# SICURO: validazione del path
const safeName = path.basename(req.params.filename);
const filePath = path.join(uploadDir, safeName);
if (!filePath.startsWith(uploadDir)) throw new Error('Invalid path');
fs.readFile(filePath, callback);
# 3. CROSS-SITE SCRIPTING (XSS)
# PERICOLOSO: rendering diretto di input utente
element.innerHTML = userComment;
# SICURO: escape o uso di textContent
element.textContent = userComment;
# oppure con libreria di sanitizzazione
element.innerHTML = DOMPurify.sanitize(userComment);
# 4. HARDCODED SECRETS
# PERICOLOSO: credenziali nel codice
const apiKey = "sk-1234567890abcdef";
const dbPassword = "mySecretP@ssw0rd";
# SICURO: variabili d'ambiente
const apiKey = process.env.API_KEY;
const dbPassword = process.env.DB_PASSWORD;
# 5. WEAK CRYPTOGRAPHY
# PERICOLOSO: algoritmi obsoleti
const hash = crypto.createHash('md5').update(password).digest('hex');
# SICURO: algoritmi moderni con salt
const hash = await bcrypt.hash(password, 12);
# 6. MISSING AUTH CHECKS
# PERICOLOSO: endpoint senza verifica autorizzazione
app.delete('/api/users/:id', async (req, res) => {
await User.findByIdAndDelete(req.params.id);
res.json({ success: true });
});
# SICURO: con middleware di auth e verifica permessi
app.delete('/api/users/:id', authenticate, authorize('admin'), async (req, res) => {
// Verifica che l'utente possa eliminare questo specifico record
const user = await User.findById(req.params.id);
if (!canDelete(req.user, user)) return res.status(403).json({ error: 'Forbidden' });
await User.findByIdAndDelete(req.params.id);
res.json({ success: true });
});
# 7. INSECURE DESERIALIZATION
# PERICOLOSO: deserializzazione di dati non fidati
const data = JSON.parse(req.body.serializedData);
eval(data.code); // MAI fare eval di input utente!
# SICURO: validazione schema + no eval
const schema = z.object({ name: z.string(), age: z.number() });
const data = schema.parse(JSON.parse(req.body.data));
コンプライアンスと監査
規制要件の対象となる組織にとって、コンプライアンスは 1 つの側面です あらゆる AI ツールの導入に不可欠です。 GitHub Copilot はいくつかの機能を提供します コンプライアンスをサポートする機能」。
認証と規格
GitHub Copilot 認定
| 認証 | 範囲 | 関連性 |
|---|---|---|
| SOC 2 タイプ II | セキュリティ、可用性、処理の完全性、機密性、プライバシー | SaaSクラウドサービスの標準 |
| ISO27001 | 情報セキュリティ管理体制 | 情報セキュリティの国際規格 |
| GDPR への準拠 | EUの個人データ保護 | EU国民のデータを処理する組織には必須 |
| CCPA | カリフォルニア州消費者プライバシー法 | カリフォルニア居住者のプライバシー保護 |
| フェドランプ | 連邦リスクおよび認可管理 | 米国連邦機関に必須 (GitHub Enterprise Cloud) |
GDPR とデータ所在地
欧州の組織にとって、GDPR への準拠は交渉の余地のない要件となることがよくあります。 GitHub Copilot が主要な GDPR 要件に対してどのように対応しているかは次のとおりです。
GitHub コパイロットと GDPR
| GDPRの原則 | 副操縦士の準拠方法 |
|---|---|
| データの最小化 | ビジネス/エンタープライズ: プロンプトと提案が処理後に保持されない |
| 目的の制限 | ビジネス/エンタープライズ: モデルのトレーニングに使用されないデータ |
| 透明性 | データの処理方法に関する公開文書 |
| アクセス権 | 組織管理者が利用できる監査ログ |
| 消去する権利 | GitHub サポートによるオンデマンドのデータ削除 |
| データ処理契約 | DPAはビジネス/エンタープライズ顧客向けに利用可能 |
| 滞在日 | エンタープライズ: EU 処理のオプション (拡大中) |
コンプライアンスのための監査ログ
Copilot の監査ログは、組織内の AI アクティビティの完全な証跡を提供します。 これらのログは、内部監査および外部監査中にコンプライアンスを証明するために不可欠です。
#!/bin/bash
# Script per esportare audit logs di Copilot per compliance report
ORG="my-organization"
TOKEN="$GITHUB_TOKEN"
START_DATE="2026-01-01"
END_DATE="2026-01-31"
OUTPUT_FILE="copilot-audit-${START_DATE}-${END_DATE}.json"
echo "Exporting Copilot audit logs for $ORG..."
echo "Period: $START_DATE to $END_DATE"
# Fetch all Copilot-related audit events
curl -s \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/vnd.github+json" \
"https://api.github.com/orgs/$ORG/audit-log?phrase=action:copilot&created=${START_DATE}..${END_DATE}&per_page=100" \
> "$OUTPUT_FILE"
# Count events by type
echo ""
echo "=== Event Summary ==="
cat "$OUTPUT_FILE" | python3 -c "
import json, sys
from collections import Counter
events = json.load(sys.stdin)
counts = Counter(e.get('action', 'unknown') for e in events)
for action, count in counts.most_common():
print(f' {action}: {count}')
print(f'\nTotal events: {len(events)}')
"
echo ""
echo "Report saved to: $OUTPUT_FILE"
コンテンツの安全性とライセンス
技術的な安全性に加えて、次のことを考慮することが重要です。 コンテンツの安全性 (生成されるコンテンツの適切性)および ライセンス準拠 提案されたコードの。
コンテンツフィルタリング
GitHub Copilot には、コンテンツを含む提案をブロックするフィルターが含まれています 不適切、攻撃的、または有害な可能性のあるもの。これらのフィルターは両方で動作します 入力 (ユーザー プロンプト) と出力 (生成された提案) です。
フィルタリングレベル
| レベル | フィルターとは | Esempio |
|---|---|---|
| 攻撃的なコンテンツ | 差別的言動、ヘイトスピーチ | 不快な用語を含む変数またはコメント |
| 危険なコード | マルウェアまたはエクスプロイトの既知のパターン | リバースシェル、キーロガーパターン |
| 個人データ | トレーニングから得られる可能性のある PII | 電話番号、メールアドレス、実際の住所 |
| 公共コード | ライセンスされたコードと一致する (オプション) | オープンソースプロジェクトと同一のコードブロック |
ライセンスの遵守
Copilot がコードを提案する場合、提案の一部が一致する危険性があります。 特定のライセンスの対象となる既存のコードに適用されます。これは特に次のことに関連します。 独自のソフトウェアを開発する組織。
ライセンスコンプライアンス戦略
| 戦略 | 実装 | 効果 |
|---|---|---|
| パブリックコードの一致をブロックする | コパイロット設定で有効にする | 高 (完全一致の場合) |
| ライセンスのスキャン | FOSSA、Snyk、Black Duck などのツールを CI パイプラインに統合 | 高い(依存症のため) |
| 手動でのコードレビュー | レビュー担当者は自明ではないコードの独創性を検証します | 平均的(主観的) |
| 会社方針 | 受け入れられるライセンスについて明確なルールを設定する | 中 (アプリケーションによる) |
| 知的財産権の補償 | GitHub のビジネス/エンタープライズ プランに含まれています | 保護(法的補償) |
知的財産権の補償 (ビジネス/エンタープライズ)
Business プランと Enterprise プランには次の条項が含まれています 知的財産権の補償: GitHub は、侵害の申し立てがあった場合に組織を擁護することに尽力します。 Copilot によって生成されたコードに関連する知的財産。ただし、ユーザーが パブリック コード一致のフィルターをアクティブにしました。
この保護には、生成後にユーザーが変更したコードは含まれません。 フィルターを無効にして生成されたコード。
プラットフォームごとの責任ある使用
GitHub Copilot は複数のプラットフォームで動作し、それぞれに特有の考慮事項があります 責任ある使用のために。それぞれのガイドラインは次のとおりです。
プラットフォームのガイドライン
| プラットフォーム | 主なリスク | ベストプラクティス |
|---|---|---|
| IDE (インライン補完) | 審査なしで自動承認 | 受け入れる前に、それぞれの提案を読んでください。コードを理解した後でのみ Tab を使用してください。 |
| 副操縦士のチャット | 答えを盲目的に信じる | 技術情報を確認してください。 Copilot は、もっともらしいが不正確な応答を生成することがあります。 |
| CLI | 破壊的なコマンドの実行 | 実行前に、提案されたコマンド、特に rm、drop、delete を必ず確認してください。 |
| コードレビューAI | AIレビューのみに頼る | AI レビューは人間によるレビューの代替品ではなく、補完的なものです。 |
| コーディングエージェント | 未レビューのスタンドアロン コード | エージェント PR をジュニア PR と同様に扱う: 統合前の詳細なレビュー。 |
| GitHub スパーク | 脆弱性を抱えて生成されたアプリ | セキュリティレビューのない機密データを含むアプリケーションには使用しないでください。 |
プロンプトに機密データを含めないでください
AI ツールを責任を持って使用するための基本的なルールは、次のとおりです。 プロンプトには実際の機密データを決して含めないでください。これには以下が含まれます。
プロンプトに含まれないデータ
- 資格: パスワード、API トークン、SSH キー、証明書
- 個人データ (PII): 本名、メールアドレス、電話番号、住所
- 財務データ: クレジットカード番号、銀行口座、取引
- 医療データ: 保護された健康情報 (PHI/HIPAA)
- 企業秘密: 独自のアルゴリズム、機密ビジネスデータ
- 接続文字列: データベースまたはサービスへの資格情報を含む URL
常に使用する ダミーデータまたはプレースホルダー Copilot に生成を依頼するとき
機密データを操作するコード。たとえば、次のように使用します。 DB_PASSWORD=placeholder
実際のパスワードの代わりに。
AI が生成したコードのバイアス
AI モデルは、トレーニング データに存在するバイアスを反映できます。という文脈で コード生成では、これは認識することが重要ないくつかの形式で現れます。
AI 生成コードにおけるバイアスの種類
| バイアスタイプ | デモンストレーション | Esempio | 緩和 |
|---|---|---|---|
| 言語的偏見 | 英語を中心とした提案 | 変数、コメント、メッセージは英語のみ | リポジトリの指示で言語を指定する |
| 技術的な偏見 | より一般的なテクノロジーを好む | 彼は Angular プロジェクト用の React も提案しています | スタックとフレームワークに関する明確なコンテキスト |
| パターンバイアス | 時代遅れまたは安全でないパターン | パスワードのハッシュ化に MD5 を推奨します | セキュリティレビュー、リポジトリ手順の更新 |
| ジェンダーバイアス | コメント内の非包括的な名前と代名詞 | 一般的な「彼」を含むコメント。 | 説明書の包括性ガイドライン |
| 文化的な偏見 | データ形式に関する仮定 | 米国形式の日付 (MM/DD/YYYY) | 必要な地域形式を指定する |
Copilot によるセキュリティの自動化
Copilot自体はセキュリティを向上させるツールとして使用できます コードを分析し、問題を特定し、修正を提案します。
セキュリティレビューのプロンプト
Review this code for security vulnerabilities:
CONTEXT:
- This is a REST API endpoint for user registration
- It handles user input and stores data in PostgreSQL
- The API is publicly accessible (no auth required for registration)
CODE TO REVIEW:
[paste code here]
CHECK FOR:
1. Input validation (is ALL user input validated and sanitized?)
2. SQL injection (are queries parameterized?)
3. XSS (is output encoded?)
4. Authentication bypass (can this endpoint be abused?)
5. Rate limiting (is there protection against brute force?)
6. Data exposure (is sensitive data properly handled?)
7. Error handling (do error messages leak information?)
8. CSRF protection (is there a CSRF token?)
9. Password handling (is it properly hashed? is strength enforced?)
10. Logging (are sensitive fields excluded from logs?)
FOR EACH ISSUE FOUND:
- Severity: Critical / High / Medium / Low
- Description: What the vulnerability is
- Attack vector: How it could be exploited
- Fix: Specific code change to remediate
- Test: How to verify the fix works
完全な安全チェックリスト
コーディングで AI を使用するためのセキュリティ チェックリスト
| エリア | アクション | 完了 |
|---|---|---|
| 構成 | 公開コードに一致するブロック候補を有効にする | ☐ |
| 機密ファイルのコンテンツ除外を構成する | ☐ | |
| 監査ログを有効にする (ビジネス/エンタープライズ) | ☐ | |
| Copilot の組織ポリシーを構成する | ☐ | |
| プロセス | AI が生成したコードをレビューするためのガイドラインを定義する | ☐ |
| リスクとベストプラクティスについてチームをトレーニングする | ☐ | |
| セキュリティ スキャンを CI/CD パイプラインに統合する | ☐ | |
| AI関連のインシデントを管理するプロセスを確立する | ☐ | |
| レビュー | 生成されたコードの入力検証を常にチェックする | ☐ |
| 認証と認可の管理を確認する | ☐ | |
| 提案でハードコードされたシークレットを探します | ☐ | |
| 生成されたコードのライセンス準拠を確認する | ☐ | |
| プライバシー | 実際の機密データをプロンプトに含めないでください | ☐ |
| データ保持設定を確認する | ☐ | |
| GDPR 準拠を確認する (該当する場合) | ☐ | |
| 監視 | 異常なアクティビティの監査ログを監視する | ☐ |
| Copilot ポリシーの定期的なレビュー | ☐ | |
| 新しいセキュリティ ルールでリポジトリ手順を更新します | ☐ |
シリーズの完結編
この記事で、GitHub Copilot に関する完全なシリーズを終了します。 19件の記事 GitHub の AI アシスタントのあらゆる側面をカバーしました。 初期構成からセキュリティまで、ライフサイクル全体を通して ソフトウェア開発の。
安全性と責任ある使用はオプションの追加ではなく、必須です これは、開発に AI ツールを導入するあらゆる組織にとって基本です。 Copilot に組み込まれた保護機能は強固な基盤を提供しますが、責任が伴います。」 最終的なものは常に開発者とチームに残ります。
AI によるセキュリティの 5 つの黄金律
- 常にチェックしてください: AI が生成したコードの各行は、マージする前に理解して検証する必要があります。
- データを保護します。 プロンプトには実際の機密データを決して含めないでください。重要なファイルにはコンテンツの除外を使用します。
- チェックを自動化します。 CodeQL、シークレット スキャン、依存関係のレビューを CI/CD パイプラインに統合します。
- チームを構築します。 リスクを認識することが最大の防御策です。 AIセキュリティに関する定期的なトレーニング。
- モニタリングと適応: 監査ログと分析を使用してリスク パターンを特定し、継続的に改善します。
シリーズ全体の総括
| # | アイテム | 学んだこと |
|---|---|---|
| 1 | 基礎と考え方 | リポジトリのセットアップ、AI 主導の考え方、copilot-instructions.md |
| 2 | コンセプトと要件 | アイデアから MVP、ユーザー ストーリー、機能の優先順位付けまで |
| 3 | 建築 | クリーンなアーキテクチャ、API 設計、データベース スキーマ |
| 4 | コード構造 | フォルダー構造、命名規則、関心の分離 |
| 5 | 迅速なエンジニアリング | 迅速な解剖学、高度な技術、MCP エージェント |
| 6 | テスト | ユニット、統合、E2E、Copilot を使用した TDD |
| 7 | ドキュメント | README、OpenAPI、ADR、JSDoc、変更ログ |
| 8 | デプロイとDevOps | Docker、CI/CD、GitHub アクション、ヘルスチェック |
| 9 | 進化 | スケーラビリティ、リファクタリング、依存関係、モニタリング |
| 10 | コーディングエージェント | 自律エージェント、発行から PR までの構成 |
| 11 | コードレビュー | PR AIレビュー、自動フィードバック、設定 |
| 12 | 副操縦士の編集 | 複数ファイル編集、支援リファクタリング、差分プレビュー |
| 13 | GitHub スパーク | 自然言語マイクロアプリ、NLnet、展開 |
| 14 | 副操縦士スペース | 共有コンテキスト、知識ベース、コラボレーション |
| 15 | AIモデル | マルチモデル、モデル選択、GPT vs クロード vs ジェミニ |
| 16 | カスタマイズ | 個人、リポジトリ、組織の指示、MCP、コンテンツの除外 |
| 17 | 企業 | 価格設定、分析、ポリシー、ROI、展開戦略 |
| 18 | 拡張機能 | マーケットプレイス、スキルセット、MCP、サードパーティエージェント |
| 19 | 安全性 | CodeQL、プライバシー、コンプライアンス、責任ある使用、監査 |
シリーズ全体をフォローしていただきありがとうございます。 GitHub Copilot は、次のような強力なツールです。 有能かつ責任を持って使用すれば、ソフトウェア開発の方法を変えることができます。 重要なのは、次の間の適切なバランスを見つけることです。 生産性」 e 品質'、 間 オートメーション e 人間の監視.
追加リソース
- GitHub コパイロットのドキュメント:
docs.github.com/copilot - GitHub セキュリティのベスト プラクティス:
docs.github.com/code-security - OWASP トップ 10:
owasp.org/Top10 - CodeQL ドキュメント:
codeql.github.com/docs - GitHub アドバイザリー データベース:
github.com/advisories - 責任ある AI の実践:
ai.google/responsibility/responsible-ai-practices
シリーズの進行状況 - 完了
| # | アイテム | Stato |
|---|---|---|
| 1 | 基礎と考え方 | ✅ |
| 2 | コンセプトと要件 | ✅ |
| 3 | バックエンド/フロントエンドのアーキテクチャ | ✅ |
| 4 | コードの構造 | ✅ |
| 5 | 迅速なエンジニアリング | ✅ |
| 6 | テストと品質」 | ✅ |
| 7 | ドキュメント | ✅ |
| 8 | デプロイとDevOps | ✅ |
| 9 | 進化 | ✅ |
| 10 | コーディングエージェント | ✅ |
| 11 | コードレビュー | ✅ |
| 12 | 副操縦士の編集 | ✅ |
| 13 | GitHub スパーク | ✅ |
| 14 | 副操縦士スペース | ✅ |
| 15 | AIモデル | ✅ |
| 16 | 高度なカスタマイズ | ✅ |
| 17 | エンタープライズとビジネス | ✅ |
| 18 | 拡張機能とマーケットプレイス | ✅ |
| 19 | 安全性と責任ある使用 | 📍 |







