GitHub Security Lab では、メンテナの方々と週に何度もお話しています。中には設定ページが複雑でドキュメントが散漫だと感じる方もいらっしゃいます。私たちがお話しするメンテナの多くは、セキュリティエンジニアとして雇われているわけではありません。しかし、プロジェクトのセキュリティ設定を完全に無視すると、自動化やスケーラビリティの面で多くの機会を逃し、セキュリティ態勢が脆弱になり、いつの間にか脆弱性が蓄積してユーザーを危険にさらすことになります。
以下が要点です。無料で利用でき、30 分以内で完了する 6 つの設定です。これらを 1 回の流れで実施できるガイド付きフロー Protect Your Project にまとめ、以下で使用する各ツールについて解説します。
1. SECURITY.md ファイルを追加する
この設定はリストの中で最も手軽で、他のすべての設定をより効果的にします。
SECURITY.md ファイルは、プロジェクト内でバグを発見した人々に報告先を伝えます。このファイルがない場合、善意の報告者には公開 issue(つまり公開されたエクスプロイト)か、連絡先が見つかればあなたの個人メールしか選択肢がありません。

多くの内容を書く必要はありません。脆弱性を報告する人が公開せずに直接連絡できるよう、メールなどの連絡手段を記載することを推奨します。その後、対象となるバグの範囲や、連絡時に報告者が留意すべき点を明記してください。参考として、完全な例として systemd プロジェクトのセキュリティポリシー を挙げています。このポリシーは再現手順に関する明確な期待値を設定しており、24 時間体制の対応チームがない場合でも前提を置いていません。構造を参考にし、連絡先情報を変更してコミットしてください。
所要時間は最大で 10 分程度です。
2. プライベート脆弱性報告を有効にする
SECURITY.md は報告者に行き先を伝え、プライベート脆弱性報告 (PVR) は非公開の報告場所を提供します。
有効にすると、研究者はリポジトリに対して非公開のセキュリティアドバイザリを提出できます。公開の目から離れた場所でトリアージを行い、自身のタイムラインで開示できます。設定は Settings → Security のチェックボックス 1 つだけです。

今夜 1 つだけ行うなら、この 2 つを最初に一緒に有効にしてください。無料で、コミュニティに対して本気で取り組んでいることを最も早く示せます。
3. シークレットスキャンを有効にし、プッシュプロテクションをオンにする
これは最も恥ずかしい失敗モードにつながる設定です。
GitGuardian の State of Secrets Sprawl 2026 によると、2025 年に公開 GitHub で新たに漏洩したシークレットは 2,865 万件で、前年比 34% 増と過去最大の単年増加でした。AI を活用したコミットでは、通常の約 2 倍の速度でシークレットが漏洩しています。IBM の 2025 Cost of a Data Breach Report によると、データ侵害の平均コストは世界で 444 万ドル(米国では 1,022 万ドル)に達しています。
シークレットスキャンは、リポジトリにキーとトークンが紛れ込むのを検知し、ローカルでブロックしてからリポジトリへプッシュされるのを防ぎます。リポジトリが公開か非公開かにかかわらず、一度シークレットがローカル開発環境から離れると、リポジトリにアクセスできる誰もが利用可能になります。

4. Dependabot と依存関係レビューを有効にする
プロジェクトはあなたのコードだけではありません。コードが依存する数十(しばしば数百)のパッケージも含まれます。
WordPress を例に挙げると、WordPress に関連するレビュー済みの重大な深刻度のアドバイザリを検索 すると、既知の脆弱性を持つプラグインの長いリストが表示されます。WordPress サイトを運用している場合、Dependabot はこれらのプラグインが依存関係に含まれないよう支援します。
Dependabot は、依存するパッケージに既知の脆弱性がある場合に通知します。依存関係レビューはプルリクエスト内で、追加またはアップグレードされる内容と、それに未解決のアドバイザリがあるかどうかを正確に表示します。これらを組み合わせることで、不透明な package.json の差分を 2 分程度のレビューに変えられます。

5. コードスキャンを有効にする
コードスキャンはリポジトリ上で静的解析を実行し、本物のバグにつながるパターンを検出します。SQL インジェクション、コマンドインジェクション、危険なデシリアライズなど、よくある脆弱性です。
CodeQL を使用したコードスキャンは、安全でない GitHub Actions ワークフローを検出できます。CodeQL がエンジンで、私たちはコードスキャンを構築しました。2019 年にオープンソース向けに無料化し、現在は Security and Quality タブでワンクリックのデフォルトセットアップとして提供されています。
この設定は構成が必要そうに感じて多くのメンテナがスキップしますが、必要ありません。デフォルトセットアップは言語に適したクエリパックを選択し、すべてのプルリクエストで実行されます。

6. デフォルトブランチにブランチ保護を有効にする
これは最もシンプルで派手さのない設定ですが、有効化した瞬間から最大の影響をもたらします。内容は main へのマージ前にプルリクエストを必須にし、最低 1 件の承認を必要とすることです。
これにより最悪のシナリオを防げます。認証情報の漏洩、混乱したコントリビューター、または疲れた状態のあなたが本番環境へ直接プッシュするケースです。また、他の 5 つの設定を実際に機能させる役割も果たします。Dependabot のアラートやコードスキャンの検出結果が、決して開かないタブに放置されるのではなく、マージをブロックするようになるためです。
結論
これら 6 つの設定でプロジェクトをハッキング不可能にできるわけではありません。どんな対策でもそれは不可能です。
これらがするのは、簡単な侵入経路を塞ぐことです。今まさに、スクリプトを使って公開リポジトリを大規模に攻撃している人々が通り抜けている扉です。
これらを有効にすれば、あなたのプロジェクトは今朝よりも意味のある攻撃耐性を持ちます。それに依存するすべてのプロジェクトも同様です。
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.