LoginSignup
53
37

More than 3 years have passed since last update.

GitHub Code Scanningを試してみた | 脆弱性の自動検出

Posted at

GitHub Code Scanningとは

コードをスキャンして隠された脆弱性を検出してくれる機能です。
GitHub Actionsで実行できる。
今朝twitterで知った。

導入

いつものこの一覧からSecurityを選びます。
Screenshot from 2020-10-02 15-01-16.png

Security overviewの中にCode scanning alertsがありますが、Contact salesとなっています。
この機能を使用するにはパブリックレポジトリにする必要があります。
Screenshot from 2020-10-02 15-01-35.png

Set up code scanningというボタンが現れました。これを押します。
Screenshot from 2020-10-02 15-06-26.png

CodeQL AnalysisSet up this workflowを押します。
Screenshot from 2020-10-02 15-07-43.png

次のようにymlファイルを書いてくれるので右上のStart commitからcommitします。
Screenshot from 2020-10-02 15-16-17.png

workflowにCodeQLが追加されました。
Screenshot from 2020-10-02 15-16-39.png

脆弱性の確認

ここからActionsを選びます。
Screenshot from 2020-10-02 15-01-16.png

CodeQLがin progressになっています。実行には少し時間がかかります。Create codeql-analysis.ymlをクリックして詳細を確認しましょう。
Screenshot from 2020-10-02 15-17-15.png

次のように順番にjobが実行されていることが確認できます。
Screenshot from 2020-10-02 15-17-25.png

実行後、再度ここからSecurityを選びます。
Screenshot from 2020-10-02 15-01-16.png

Code scanningが5つ警告を出しています。
Screenshot from 2020-10-02 14-37-37.png

どんなことが懸念されるかを教えてくれます。
今回はregexが特定のパターンでは処理が指数関数的に重くなっていくことを指摘しDoS攻撃のための手段になる可能性があると警告しています。
ReDoSというらしい。初めて知った。
Screenshot from 2020-10-02 14-40-12.png
上の続き
Screenshot from 2020-10-02 14-40-22.png

どういうことかわからんならここを見ろとばかりにReferencesまで用意されています。

プルリクエスト

試しにプルリクを作ってみたら自動でスキャンしてくれた。
スキャンが遅いのが少し気になるけれど...

Screenshot from 2020-10-02 15-40-37.png

なおCodeQLが走っている途中でもマージはできる模様。

Learn More

公式ドキュメントです。
CodeQLをCIに組み込んだりもできるらしい。
GitHub Docs/Finding security vulnerabilities and errors in your code

53
37
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
53
37