11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

依存パッケージの脆弱性、放置してませんか?

Posted at

GitHub Dependabot セキュリティアップデートの設定ガイド

Node.js / Python / Ruby など、ライブラリ依存が多い現代の開発において、「知らない間に脆弱なバージョンを使っていた」 というのは、よくある話です。

そんなときに便利なのが、GitHub が提供している Dependabot セキュリティアップデート 機能です。


Dependabotって何?

GitHub に組み込まれている Dependabot は、依存関係にセキュリティ脆弱性があった場合に、自動で修正PRを送ってくれる機能です。

脆弱性発見 → 該当ライブラリ検出 → 修正版に更新PRを作成

✅ 放置してたパッケージに気付ける
✅ 修正PRは自動生成される
✅ GitHub上でレビュー&マージできる


セキュリティアップデートとバージョンアップの違い

GitHub Dependabot には2つの用途があります:

機能 目的
セキュリティアップデート 脆弱性を含むパッケージの修正
バージョンアップデート パッケージの通常のアップデート

今回はセキュリティアップデートの方に焦点を当てます。


設定方法(.github/dependabot.yml

セキュリティアップデートを使うには、リポジトリに以下のファイルを追加します:

.github/dependabot.yml

✅ 最小構成(セキュリティアップデートのみ)

version: 2
updates:
  - package-ecosystem: npm
    directory: "/"
    schedule:
      interval: weekly
    allow:
      - dependency-type: "direct"
    open-pull-requests-limit: 5
    security-updates: true

項目の説明

項目 説明
package-ecosystem 使用しているパッケージマネージャー(例:npm, pip, bundler)
directory パッケージファイルのディレクトリ(通常は /
schedule.interval チェック頻度(daily, weekly, monthly
security-updates: true セキュリティ脆弱性が見つかったときに自動PRを出す

実際のPR例(イメージ)

Dependabot は以下のような PR を作成します:

fix: bump axios from 0.21.1 to 0.21.4 (security fix)

PRには CVE(Common Vulnerabilities and Exposures)番号付きで、どんな脆弱性が解消されるかも説明されているので安心してレビュー可能です。


注意点・ベストプラクティス

1. CI が通るようにしておく

→ Dependabot PRが出たとき、自動テストでマージ可否がすぐ分かるようにしておくと効率的。

2. マージフローを整備しておく

→ セキュリティアップデートはなるべく速やかにマージしたい。
auto-merge ラベルを設定して GitHub Actions で自動マージも可能。

3. monorepo / 複数パッケージも対応可能

directory を指定すれば apps/packages/ の下にも対応。


補足:エコシステムごとの対応一覧

エコシステム 説明
npm JavaScript / TypeScript 用
pip Python 用
bundler Ruby 用
composer PHP 用
cargo Rust 用
docker Dockerfile のベースイメージ
github-actions GitHub Actions の依存バージョン

今すぐ入れたい最小限のセキュリティ対策

  • Dependabot のセキュリティアップデートは 0コストで始められる安心機能
  • .github/dependabot.yml に数十行追加するだけ
  • セキュリティリスクの「知らなかった」をなくせる

Next.jsプロジェクトに追加するならこの形

version: 2
updates:
  - package-ecosystem: npm
    directory: "/"
    schedule:
      interval: weekly
    open-pull-requests-limit: 5
    security-updates: true

.env.localなどに依存せずPR作成可能
✅ CIにGitHub Actionsを使っていれば、即テストが走る


リンク集


おわりに

セキュリティ対策は、「やらないとまずい」と分かっていても、後回しにしがち。でも、DependabotのセキュリティアップデートはGitHub上で数分でセットアップできて、あとは放置でOKです。
「いつかやろう」じゃなくて、.github/dependabot.yml を作ってみることから始めてみてください


記事を気に入っていただけたら、いいねやシェアしてもらえると嬉しいです!
ご質問・追加Tipsなどはコメント欄へどうぞ!

11
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?