GitHub Code Scanningとは
コードをスキャンして隠された脆弱性を検出してくれる機能です。
GitHub Actionsで実行できる。
今朝twitterで知った。
Code scanning is here! 🎉
— GitHub (@github) September 30, 2020
Prevent issues in code by automating security as a part of your workflow.
✔️ Free for public repositories
✔️ Developer-first, GitHub native
✔️ Enabled for GitHub Enterprise Cloud
Learn more! https://t.co/2SSCjb09Il
導入
Security overviewの中にCode scanning alertsがありますが、Contact salesとなっています。
この機能を使用するにはパブリックレポジトリにする必要があります。

Set up code scanningというボタンが現れました。これを押します。

CodeQL AnalysisのSet up this workflowを押します。

次のようにymlファイルを書いてくれるので右上のStart commitからcommitします。

脆弱性の確認
CodeQLがin progressになっています。実行には少し時間がかかります。Create codeql-analysis.ymlをクリックして詳細を確認しましょう。

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

上の続き

どういうことかわからんならここを見ろとばかりにReferencesまで用意されています。
プルリクエスト
試しにプルリクを作ってみたら自動でスキャンしてくれた。
スキャンが遅いのが少し気になるけれど...
なおCodeQLが走っている途中でもマージはできる模様。
Learn More
公式ドキュメントです。
CodeQLをCIに組み込んだりもできるらしい。
GitHub Docs/Finding security vulnerabilities and errors in your code




