0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

今さら聞けないGitHub Dependabot入門 〜Amazon Inspectorとの違いと使い分け〜

0
Posted at

はじめに

今更ですが、GitHub Dependabot を真面目に活用しようと色々と試したので、備忘録として残そうかと思います。

なぜ、GitHub Dependabot なのか?

今までの私の経験上、AWSを使うことが多かったため、システムやアプリケーションの脆弱性管理にはAmazon Inspectorを利用していました。
Amazon Inspectorを利用すれば、AWS上で管理しているサーバー内のOSやシステム、アプリケーションの脆弱性を含めて分析してくれるため、敢えてGitHub Dependabotを利用する必要はありませんでした。
しかし、今回真面目に活用しようと色々と調査した結果、その考えは誤りだったことがわかり、今後は積極的に活用していこうと心に決めました。

GitHub Dependabotとは?

いわゆるSCA(Software Composition Analysis:ソフトウェア構成分析)ツールに該当し、システムやアプリケーションで利用している外部ライブラリ(OSS)の脆弱性を分析・管理してくれるサービスです。
なお、無料です。
強みとしては、自動的に「このバージョンに上げれば直る」というPull Requestまで自動で作ってくれる機能があることです。
開発者はテストが通っているか確認して、マージボタンを押すだけで対応が完了します。

Amazon Inspectorとは?

AWSサービス群の一つ。インフラ環境(EC2やLambda、ECRなど)のOSやソフトウェアの脆弱性を分析・管理してくれるサービス(これだけでもGitHub DependabotのようなSCA相当の動作はしてくれる)。
なお、従量課金制です。
コードセキュリティ機能を有効化することで、リポジトリのソースコードを対象にSCA + SAST(Static Application Security Testing:静的アプリケーションセキュリティテスト)を実施してくれます。

GitHub DependabotとAmazon Inspectorを比較する

項目 GitHub Dependabot Amazon Inspector
分類 SCA(Software Composition Analysis)ツール AWSの脆弱性管理サービス
主な対象 リポジトリ内で利用しているOSSライブラリの依存関係 インフラ環境(EC2、Lambda、ECR)のOS・ソフトウェア
料金 無料 従量課金制
基本機能でできること 依存ライブラリの脆弱性検出 OS・ソフトウェアの脆弱性検出(=これ単体でもSCA相当の動作)
追加機能 なし(標準でSCA機能が完結) コードセキュリティを有効化すると、リポジトリのソースコードに対してSCA + SASTを実施可能
SAST(静的アプリケーションセキュリティテスト) 非対応 コードセキュリティ有効化時のみ対応
自動修正PR作成 対応(修正済みバージョンへのPull Requestを自動生成) 非対応(脆弱性の検出・通知が中心で、修正PR作成機能はない)
対応後のアクション テスト確認後、マージボタンを押すだけで対応完了 検出結果をもとに手動で修正対応が必要
スキャンのタイミング ビルド前のソースコード(リポジトリ)ベース 基本機能はデプロイ後の成果物ベース/コードセキュリティ有効化でリポジトリベースにも対応

つまり、Amazon Inspectorはコードセキュリティを有効化しない限り、GitHub Dependabot相当のことはしてくれない(+自動修正PRまではAmazon Inspectorでも対応不可)ということに気がついていませんでした。

ということで、Amazon Inspector(コードセキュリティはオフ)+ GitHub Dependabotを使用することで、インフラ環境とリポジトリのソースコード双方の脆弱性の分析・管理ができ、お互いをカバーできることがわかりました。

ここからは、GitHub Dependabotを簡単に始めるための設定方法について書いていきます。

GitHub Dependabotの設定

  1. GitHubで、リポジトリのメインページに移動します。
  2. リポジトリ名の下にある [Settings] をクリックします。
  3. サイドバーの [セキュリティと品質] セクションで、[Advanced Security] をクリックします。
  4. [Dependabot] で、以下を有効化します。
    • Dependabot alerts
    • Dependabot malware alerts
    • ※※ Pull Requestを作ってもらいたい場合は、以下も有効化する ※※
    • Dependabot security updates

Dependabot Setting

Dependabotを設定してAlertがメールで届くようになりましたが、直ぐに対応できない場合、一定間隔でアラートのリストが欲しくなりますよね?
そんな人は以下で設定できます。

  1. GitHubで、個人アカウントの[Settings]をクリックします。そこから、[Notifications]を選択します。
  2. Systemの中に [Dependabot alerts: Email digest] があるので、[Send weekly] か [Send daily] を選択します。
    ※ [Send weekly]を選択した場合、デフォルト毎週月曜日にメールにて通知されます
  3. 次に、Dependabotを設定したリポジトリのメインページに移動します。
  4. リポジトリに対して[Watch] -> [Custom] を選択して、[Security alerts]を選択します。(この時、他にも通知を受け取りたい場合は、他の項目も選択してください。)
Security alerts Setting

こうすることで、Dependabotで管理されているAlertを定期的にメールで受け取ることができます。

まとめ

GitHub DependabotとAmazon Inspectorは、どちらも脆弱性管理に使えるツールですが、対象範囲と得意分野が異なります。

私はそこに気がついていませんでした。💦

GitHub Dependabotはリポジトリ内のOSSライブラリの依存関係に特化し、無料で使え、修正PRの自動作成まで対応してくれる点が強みです。
一方Amazon Inspectorは、インフラ環境(EC2・Lambda・ECRなど)の脆弱性管理が主目的で、コードセキュリティ機能を有効化すればSCA・SASTにも対応できますが、従量課金であり自動修正PRの作成はできません。

両者は競合するものではなく、役割が異なるため併用することでインフラとソースコードの双方をカバーでき、脆弱性管理の抜け漏れを防ぐことができます。
特にGitHub Dependabotは無料かつ設定も簡単なので、まだ活用していない場合はぜひ有効化を検討してみてください。

👋👋👋

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?