Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
33
Help us understand the problem. What is going on with this article?
@Kobayashi2019

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

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

33
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Kobayashi2019
大阪工業大学学部4年、専門はロボットなのにプログラミングしかしない男。
techtrain
プロのエンジニアを目指すU30(30歳以下)の方に現役エンジニアにメンタリングもらえるコミュニティです。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
33
Help us understand the problem. What is going on with this article?