GitHub の Code scanning(CodeQL)がワークフローファイルなしで実行できるようになっていた
2023-01-24 に Code scanning を有効化しようとしたらセットアップ用の UI が変更されていた。
たぶんこれが有効になっている。
ボタンをクリックするとプルダウンで Default と Advanced が表示される。検出された言語が対応できる場合は Default がクリックできるもよう。Default を選択して設定内容を確認するとワークフローのファイル作成なしでそのままスキャンが実行される。
コミットしないでいいので楽といえば楽。が、しかし、実行結果の Summary を見てもワークフローを表示するボタンはない(どうやってるんだこれ?、GitHubアプリ?)。
あとから Advanced へ変更する場合もリポジトリの Settings / Code security and analysis
からできるもよう。
(2023-03-23 追記)
追記が増えてきたので簡単なまとめ
Default はお手軽でよいのだが、現状ではワークフローを作成した方がよさそうという結論になる。
よさそう
- ワークフローの更新などを気にしなくてもよい
- 利用しているアクションが deprecated になった的なことがなくなる
よくなさそう
- リポジトリをクローンしたような場合、新しく作成されたリポジトリでは再度設定が必要(だと思う)
- テンプレートだとどうなる?
- ぱっと見で、どのイベントと ref に反応したかわかりにくい
- Dependabot の PR には反応しない
- 定期的なスキャンは行われない
これはイベントに pull_request
を使ったからかも。あとで確認。
確認した。このコメントに返信してある。
よくなさそうに追加。
ぱっと見で、どのイベントと ref
に反応したかわかりにくい。
ログを見るとわかる、かな(PR でないとどうなる?)。
Run actions/checkout@v3
with:
repository: hankei6km/test-functions-framework-pubsub-ts
token: ***
ssh-strict: true
persist-credentials: true
clean: true
fetch-depth: 1
lfs: false
submodules: false
set-safe-directory: true
env:
CODE_SCANNING_REF: refs/pull/14/head
アラートが出たときはコミット内のファイルを指していたので、めっちゃ困るというわけでもないかな。
上のコメントで打ち消したコレ。
これはイベントに
pull_request
を使ったからかも。あとで確認。
冷静に考えてみると、自分で作ったワークフローが使っているイベントは関係ない。あと、設定するときにイベントの説明が表示されていた。
On push and pull requests to
main
and 0 protected branches.
が、いちおう試した。やっぱり関係ない。 ref
やどのイベントに反応しかたは表示されない。
で、ついでなので、いま時点(2023-10-25)で Advanced を選択するとどうなるか確認してみた。
生成されるワークフローはこんな感じ。
こっちは「そうなるよね」的な感じになる。
Actions タブに表示されるけど、普通のワークフローとは微妙に異なる感じなのかなと。
Dependabot の PR
これには反応しなかった( 開発用の依存関係のdeps-dev
だから?)。あまり困ることないような気もするけど、バンドル(ビルド)したコードに問題あるとアラート出るときもあるから、そういうときは困るのかな?
定期的なスキャンは行われない
上記の Advanced 設定により作成したワークフローがもうすぐ disabled になるという、いつものメールが届いた。
それ自体は、リポジトリをそのままにしておいたからなのだが、よくよく考えるとワークフローを作成しなかった場合、定期的なスキャンは行われていなかった。
push などでスキャンされたときはよかったとしても、あとから新しい攻撃方法が発見されて「やっぱりこのコードは問題ある」という状況に対応できないのでないかな。
その辺を含めて Bing の AI チャットで確認。
「github のコードスキャンニングはワークフローを作成しなくても実行できるようになりましたよね?」
こんにちは、こちらはBingです。😊
GitHubのコードスキャンニングは、セキュリティの脆弱性やコーディングエラーを見つけるためにリポジトリ内のコードを分析する機能です¹。ワークフローを作成しなくても実行できるようになりましたが、GitHub Actionsを使って自動的にスキャンすることもできます²³。
どのような目的でコードスキャンニングを利用したいですか?ソース: Bing との会話 2023/3/22(1) コード スキャンについて - GitHub Docs. https://docs.github.com/ja/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning アクセス日時 2023/3/22.
(2) GitHub Actionsにcode scanningを導入してみた - Qiita. https://qiita.com/nekorou/items/a6fb8ab9fcdbac1b9d4b アクセス日時 2023/3/22.
(3) About code scanning - GitHub Docs. https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning アクセス日時 2023/3/22.
「ワークフローを作成しない場合、定期的なスキャンが行われないのですが、スキャンされるように対応する方法はありますか?」
こんにちは、こちらはBingです。😊
GitHubのコードスキャンニングは、セキュリティの脆弱性やコーディングエラーを見つけるためにリポジトリ内のコードを分析する機能です¹。ワークフローを作成しなくても実行できるようになりましたが、GitHub Actionsを使って自動的にスキャンすることもできます²³。
どのような目的でコードスキャンニングを利用したいですか?ソース: Bing との会話 2023/3/22(1) コード スキャンについて - GitHub Docs. https://docs.github.com/ja/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning アクセス日時 2023/3/22.
(2) GitHub Actionsにcode scanningを導入してみた - Qiita. https://qiita.com/nekorou/items/a6fb8ab9fcdbac1b9d4b アクセス日時 2023/3/22.
(3) About code scanning - GitHub Docs. https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning アクセス日時 2023/3/22.
「ワークフローを作成しない方法はお薦めではないというこですか?」
ワークフローを作成しない方法は、コードスキャンニングの機能を十分に活用できない可能性があります。ワークフローを作成することで、スキャンの頻度や対象ブランチ、使用するツールなどをカスタマイズできます。
ワークフローの作成には何か困難がありますか?
いちおうドキュメントもさらっと確認したが、やはり定期的な実行はできないもよう。