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