以下の内容はhttps://blog.shibayu36.org/entry/2026/02/16/173000より取得しました。


自分のOSSリポジトリにGitHubのセキュリティ設定を入れ、自分用の手順書を作った

昨今GitHub上で提供されている有名なOSSに対して攻撃がなされることが多い(例: Nxの2025/08の事例)。自分もそこから学び、最低限GitHub上でセキュリティ周りの設定を入れた方が良いと考えた。

設定を考えるにあたって、とくに次の3つの記事が参考になった。

これらを参考にAIと協力して最低限のセットアップドキュメントを作ったので共有する。もっとこういう設定を入れるべきなどあれば、教えてもらえると嬉しい。

GitHub OSS セキュリティ最低限セット

チェックリスト

  • [ ] Dependabot Alertsを有効化
  • [ ] GitHubの「Private vulnerability reporting / Security Advisories」を有効化
  • [ ] CodeQLの有効化
  • [ ] Secret scanning & プッシュ保護を有効化
  • [ ] main/masterを保護(PR必須 + CI必須など)
  • [ ] バージョンtagの保護
  • [ ] SECURITY.mdを追加
  • [ ] Enable release immutability

Dependabot Alerts を有効化(脆弱性通知)

やること:依存関係に脆弱性が見つかったらSecurityタブにアラートが出るようにする。 参考

手順

  1. リポジトリ > Settings > Advanced Security
  2. Dependabot alertsをEnable

Private vulnerability reporting / Security Advisories を有効化

やること:外部からの脆弱性報告を非公開で受け付けられるようにして、「Report a vulnerability」導線を出す。 参考

手順

  1. リポジトリ > Settings > Advanced Security
  2. Private vulnerability reportingをEnable

CodeQL(Code scanning)を有効化

やること:静的解析で脆弱性の芽を拾う。最短はDefault setup。 参考

手順

  1. リポジトリ > Settings > Advanced Security
  2. CodeQL analysisのところでSet up > Default
  3. 提案されたトリガ(push / PR / schedule)で有効化

Secret scanning & Push protection を有効化

やること:トークン/APIキー等が混入したら検知してアラートを出す。

手順

  1. リポジトリ > Settings > Advanced Security
  2. Secret scanning(またはSecret Protection)をEnable
  3. Push protectionをEnable

main/master を保護(PR必須 + CI必須)

やること:直pushを禁止して、CIが通らないとマージできないようにする。 GitHubは従来の「Branch protection」か、より柔軟な「Rulesets」で設定できる。Rulesetsはブランチ/タグも対象にできる。 参考

手順

  1. リポジトリ > Settings > Rules > Rulesets
  2. New branch ruleset
  3. 対象を main(または master)にする(例:Default branch / パターン指定)
  4. ルールをON
    • Enforcement status: Active
    • Repository adminをbypass
      • リリースをmainブランチでやっているからで、本当はこれも無くしたい
    • Target branchesでInclude default branch
    • Restrict deletions
    • Require a pull request before merging(PR必須)
    • Require status checks to pass(ステータスチェック必須)
      • Add checksでCIのジョブ(例:ci / test)を選ぶ
    • 必須にしたいチェックは、まずCIを1回以上動かして「チェック名」がGitHubに認識されてから設定する 参考
    • Block force pushes
    • Require code scanning results

バージョンtagの保護

やること:バージョン用のtagを作れる人を制限する。

  1. リポジトリ > Settings > Rules > Rulesets
  2. New tag ruleset
  3. ルールをON
    • Enforcement status: Active
    • Repository adminをbypass
    • Target tagsで v*
    • Restrict creations
    • Restrict updates
    • Restrict deletions
    • Require signed commits
    • Block force pushes

SECURITY.md を追加

やること:報告方法を明文化して、公開Issueに書かれないように誘導する。 GitHubのUIからテンプレを作ってコミットできる。 参考

手順

  1. リポジトリ > Security > Set up a security policy
  2. SECURITY.md を編集してコミット

最小テンプレ(コピー&ペースト用)

# Security Policy

## Supported Versions

Only the latest version is supported with security updates.
Please always use the latest release.

## Reporting a Vulnerability

**Please do not report security vulnerabilities through public GitHub issues.**

Instead, report a vulnerability through GitHub's security advisory feature at https://github.com/<owner>/<repository_name>/security/advisories/new.

You can expect an initial response within a few days. If for some reason you do not, please follow up with a comment on the advisory to ensure we received your original report.

Enable release immutability

やること:GitHub TagやRelease、Release assetsを後から変更できないようにする。参考

手順

  1. リポジトリ > Settings > GeneralからEnable release immutabilityを有効化



以上の内容はhttps://blog.shibayu36.org/entry/2026/02/16/173000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14