◀ 用語一覧
NO.19.3

GHAS

更新: 2026.09.11

一言で

GitHub Advanced Security (GHAS) は GitHub のセキュリティ製品スイート。開発者がうっかり混入させてしまう 2 つのもの、クレデンシャル脆弱なコード をリポジトリからスキャンして検出する。

製品は Secret ProtectionCode Security の 2 つで、それぞれ単体で購入できる。

なぜ今なのか

AI はレビュープロセスが想定していた速度を超えてコードを書き、攻撃側も防御側と同じモデルを手にしている。逆方向に動く 2 つの曲線がそれを示す。

Dependabot アラートが 4 倍超に

GitHub 全体で新規作成されたアラート数(四半期ごと)。

52M

Q1 25

70M

Q2 25

77M

Q3 25

82M

Q4 25

357M

Q1 26

313M

Q2 26

2025 年は 7,000〜8,000 万で安定していたが、そこから跳ね上がった。CVE アラートも 2026 年 2 月以降、全体で 6 倍

脆弱性から悪用までの時間

CVE の公開から、実環境での悪用が最初に確認されるまでの平均日数。

1y 1mo 7d 1d 2.3y 1.7y 1.3y 10mo 8.6mo 4.2mo 53d 21.5d 24h 2018 2019 2020 2021 2022 2023 2024 2025 2026

悪用が確認された 3,500 件超の CVE に基づく(CISA KEV + VulnCheck KEV)· zerodayclock.com

AppSec への 2 つの影響

かつて「shift left」は IDE を意味していた。いまは IDE・CLI・アプリ・PR が 1 つの連続した面になり、エージェントがその上を自由に行き来する。ここから 2 つの帰結が生まれる。

🌊 従来のセキュリティが追いつかない

AI が生成する新規コードの量は従来のレビュープロセスが検査できる範囲を超え、しかも一度に多数の新しい面から流れ込む。エージェントが変更を複数リポジトリへ波及させた後では、PR でのゲートはすでに手遅れ。

⚡ 悪用がかつてなく速い

攻撃者も同じ最新モデルを使えて、コストは障害にならない。防御側がトリアージするより速くリスクを見つけて武器化し、サプライチェーン攻撃も人間のレビューサイクルより速く動く。

GHAS はどう応えるか

スキャンツールは通常プラットフォームの外側にある。別のコンソール、別のバックログ、そしてコードを書いた数日後に届く検出結果。GHAS はこの 4 ステップすべてを、コードがすでに置かれている場所で実行する。

▸ ステップをクリックで詳細

FIND

🔎 FIND — すでに存在するものを洗い出す

git 履歴全体と全ブランチを走査して漏れた認証情報を検出し、コードをクエリ可能なデータベース化して脆弱なデータフローを追跡する。

組織内のすべてのリポジトリが対象。各チームに何かをインストールさせたり設定させたりする必要はない。

PREVENT

🚧 PREVENT — 入り込む前に止める

Push protection が secret を含む push 自体を拒否する。リモートに到達しないので、ローテーション作業も発生しない。

ルールセットで「code scanning がクリーンになるまで PR をマージさせない」ことができる。レビュアーの記憶ではなくリポジトリのルールがゲートになる。

FIX

🔧 FIX — プルリクエストの中で直す

アラートは差分へのアノテーションとして届く。開発者が別ツールを開きに行く必要のあるチケットではない。

Copilot Autofix が説明付きの修正パッチを提案するので、脆弱性の種類を調べるところから始めるのではなく、変更をレビューするところから始められる。

PROVE

📊 PROVE — エンタープライズ全体で示す

1 つのセキュリティ構成がすべての組織とリポジトリに適用される。明日作られるリポジトリも含む。

Security overview がカバー済み・未カバーのリポジトリとバックログの推移を可視化する。カバレッジが「たぶん大丈夫」ではなく数値になる。

ステップを選択 ▸

何が入っている? 📖 Docs

機能名をクリックすると説明が開く。チップは無料かライセンス必要かを示す。

Secret scanningPUBLIC は無料

git 履歴全体と新規 push を 200 以上のプロバイダーパターンで走査。Validity check で漏れたトークンの生死を判定。

Push protectionPUBLIC は無料

secret を含む push 自体を拒否する。リモートに到達しないのでローテーションも不要。

AI-detected secretsライセンスのみ

正規表現で表現できない非構造の認証情報を検出。設定ファイル内のパスワードや文章中の secret など。

Custom patternsライセンスのみ

自社独自のトークン形式。社内サービス、レガシー認証情報、パートナーが登録しない命名規則。

Delegated bypassライセンスのみ

push protection のバイパスを、指定レビュアーグループへの承認申請に変える。

Public monitoringライセンスのみ

Enterprise 向け、Public preview。自社所有でない repo も含め、GitHub 全体の Public repo に漏れた secret を検出する。Enterprise のメンバーシップまたは検証済みドメインで自社との関連を判定。Secret Protection または GHAS が必要。Docs ↗

Code scanning (CodeQL)PUBLIC は無料

コードをクエリ可能な DB にコンパイルし、危険なシンクへのデータフローを追跡。インジェクション、パストラバーサルなど。

Copilot AutofixPUBLIC は無料

アラートを PR 上の説明付き修正差分に変える。修正率が実際に動くのはここ。

AI-powered detectionsライセンスのみ

CodeQL のクエリが無い言語やフレームワークをカバーする AI エンジン。PR レビュー時に動く。

Third-party SARIFPUBLIC は無料

SARIF を出力するスキャナーなら同じアラート一覧に取り込める。バックログもダッシュボードも 1 つ。

Security campaignsライセンスのみ

バックログを、担当者と期限が付いた終わらせられるリストに切り出し、コードを持つチームと直接進める。

Dependency reviewPUBLIC は無料

その変更がどの依存関係を追加・削除・更新するかを PR 上で表示し、既知の脆弱性ならマージをブロック。

カスタム auto-triage ルールPUBLIC は無料

Dependabot アラートを自社ルールで一括自動クローズ・再オープン。実リスクだけがバックログに残る。

Security overviewライセンスのみ

サプライチェーンのリスクとカバレッジを、全リポジトリ横断で組織全体に集約。

その他のサプライチェーン機能全プランで無料

Dependency graph、Dependabot alerts、security / version updates、マルウェアアラート、プリセット auto-triage ルール、SBOM エクスポートは 全プランで無料

料金 📖 Docs

製品価格課金単位
🔑 GitHub Secret Protection$19 / 月active committer
🔍 GitHub Code Security$30 / 月active committer
📦 両方セット$49 / 月active committer
  • 👥 active committer = 過去 90 日間に、機能が ON のリポジトリへ push した人。何リポジトリ・何 org でも 1 人分。GitHub App の bot は対象外
  • 🏷️ GitHub TeamGitHub Enterprise で購入可能。Enterprise ServerGHE.com では全リポジトリにライセンスが必要
  • 🌐 public repo は「ほとんど」無料だが「全部」ではない — custom patterns、delegated bypass、AI-detected secrets、campaigns、Security overview はライセンスが必要 (正確な線引き ↗)

購入前の棚卸し — Risk Assessments 📖 Docs

Org → Security → Assessments から実行できる無料の棚卸しが 2 つある。ライセンスもトライアルも不要で、購入を判断する前に実際の数字を見られる。

🔑 Secret Risk Assessment

組織のリポジトリに眠っている secret の種類と件数を、カテゴリ別に集計する。

対象
すべての repo — public / private / internal / archived
頻度
1 回限り
出力
件数のみ。secret の値は保存されない

🔍 Code Security Risk Assessment

CodeQL が検出したコードの脆弱性を、深刻度・言語・Copilot Autofix で修正可能な件数に分けて表示する。

対象
最もアクティブな最大 20 repo
頻度
90 日に 1 回
出力
集計レポート。Actions 実行枠は消費しない
  • 🛂 実行できるのは Organization ownersecurity manager のみ
  • 🏷️ GitHub TeamGitHub Enterprise Cloud (Server は 3.22 で対応予定)
  • 🧪 結果画面からそのまま GHAS トライアル ↗ を開始できる。数字が出た後の次の一手はこれ

エンタープライズ全体へのロールアウト手順

Enterprise → Settings → Advanced Security → Code security で configuration を 1 つ作れば配下の全 org / repo に配れる。New configuration は最初から GitHub recommended

使わせない org は先に止める配る前にやるDocs

やることEnterprise → Policies → Advanced SecurityPolicies タブ → dropdown を Allow for selected organizations にして許可する org だけ残す

なぜ先に禁止しても既に有効な repo は無効化されない。止められるのは追加のリポジトリだけなので、配った後では手遅れ

効く相手repository administrator だけ。org owner と security manager はポリシーに関係なく有効化できる

Push protection が ON になる止まるのは push だけDocs

止まるgit push・GitHub UI 上のコミット・ファイルアップロード・REST API 経由のリクエスト

止まらないgit pullgit clonegit fetch「secret に引っかかって pull できなくなる」は誤解

bypass は write 権限者に開放デフォルト設定Docs

デフォルトwrite 権限を持つ全員が理由を選んで bypass 可能。ただしアラート + 監査ログ + owner へのメールが必ず残る

絞るにはconfiguration の Bypass privilegesSpecific actors に(= delegated bypass)。指定外の人は申請 → 承認フロー(申請は 7 日で失効)

Code scanning が 3 タイミングで走るActions 分を消費Docs

いつ走るdefault / protected branch への push のたび・同ブランチ宛て PR の作成とコミットのたび(fork からの PR は除く)・週 1 回のスケジュール

コスト全社展開でいちばん効いてくる要因。CodeQL 対応言語を含まない repo はスキャンも Actions 分も 0

注意code scanning 自体は merge をブロックしない

merge を止めたいなら rulesetEnterprise → Policies → RulesetsDocs

設定場所Policies → Repository → Rulesets → Require code scanning results

ブロック条件指定 severity のアラート検出・解析が実行中・ツールがそのリポジトリで未設定

落とし穴CodeQL 未設定の repo に当てるとアラート 0 件でも全 PR がブロック

Evaluate とはブロックせず記録だけ取るお試しモードRule Insights ページで「Active だったら何が弾かれたか」を確認できる。残りは Active(即適用)と Disabled(無効)

新規リポジトリに配るPolicy で設定Docs

やることPolicy → Use as default for newly created repositories を設定。Code scanning は Enabled with advanced setup allowed を選ぶと既存の CodeQL workflow を壊さない

効く範囲新規リポジトリのみ。既存リポジトリには一切効かない

既存リポジトリに配るApply to で別途実行Docs

やることConfigurations 一覧 → Apply toAll repositories without configurations

enterprise 限定この選択肢は enterprise レベルでのみ表示。既に config が当たっている org を壊さず、未設定の repo だけカバーできる

対象archived リポジトリにも適用される(secret scanning は archived でも動くため)

リポジトリを選んで配るorg configuration のみDocs

repo 単位enterprise の Apply toAll repositoriesAll repositories without configurations のみ。repo を選べるのは org configuration だけ

やり方Organization → Settings → Advanced Security → Configurations → Repositories タブで絞り込んで選択 → Apply configuration

どちらが優先enterprise 側の変更が org configuration と衝突すると repo は removed_by_enterprise になり org config が外れる。enterprise が優先

カバレッジの可視化 📖 Docs

配り終わったら次の関心事は「実際どこまで守れているか」。Security and quality タブが Enterprise / Organization の両レベルで答えてくれる。

ビューわかることレベル
📊 Overview検知 / 修復 / 予防のトレンド推移Ent + Org
📈 Coverageどの repo でどの機能が有効かEnt + Org
🛡️ Riskアラートが多いのはどの repo かEnt + Org
🌐 Public monitoringメンバーが GitHub 上の public repo に漏らした secretEnt のみ
  • 🏢 Org レベルの Coverage が現場の日常ビュー。enterprise 側は自分が owner / security manager になっている org しか集計されない
  • 🌐 Public monitoring (public preview・Secret Protection 必須) は enterprise メンバーと verified domain で漏洩を紐付ける。Enterprise → Settings → Advanced Security → Code security で ON
  • 📤 Export CSV は Overview / Coverage / Risk で使え、適用中のフィルタがそのまま反映される