GitHubは米国時間9月30日、有料および無料のアカウントを持つ全ユーザーを対象に、新しいセキュリティ機能「Code Scanning」を実装した。
![GitHub](/storage/2020/10/01/3e4b7fae6b736de9f8b0480ea857e017/github-code-scanning.png)
提供:GitHub
GitHubによると、新機能のCode Scanningは、「全てのプルリクエストやコミット、マージを分析し、脆弱なコードが作成されるとすぐにそれを認識して、脆弱性が本番環境に入り込むのを防ぐのに役立つ」という。
脆弱性を検知すると、Code Scanningは開発者にコードの修正を促す。
Code Scanningの内部では、「CodeQL」が用いられている。CodeQLは、GitHubが2019年にコード分析基盤「Semmle」を買収し、そのプラットフォームに統合した技術だ。
CodeQLは、「code query language(コードクエリー言語)」の略で、大規模なコードベースの中から1つのセキュリティ脆弱性のさまざまなバージョンを検知するためのルールを作成できる汎用言語だ。
![GitHub](/storage/2020/10/01/3921db29f61757815bc4c93a221dda5d/overview-set-up-code-scanning.png)
提供:GitHub
ユーザーにCode Scanningを利用してもらうため、GitHubのセキュリティチームは2000を超える定義済みのクエリーをまとめたという。ユーザーのリポジトリーで有効にすれば、新しいコードをサブミットしたときに最も基本的なセキュリティ脆弱性を自動的にチェックしてくれる。
Code Scanningは、リポジトリーの所有者が作成したカスタムのCodeQLテンプレートや、サードパーティーが提供するオープンソースまたは商用のSAST(Static Application Security Testing)ソリューションを利用して、拡張も可能だ。
Code Scanningは「GitHub Satellite」で発表された後、GitHubベータテスター向けに5月から提供されている。
GitHubによると、この機能を利用して、これまでに1万2000以上のリポジトリーで140万回以上のスキャンが実行され、リモートコード実行(RCE)やSQLインジェクション、クロスサイトスクリプティング(XSS)の脆弱性など、2万を超える脆弱性が見つかったという。
GitHubは、2020年春に機能の提供を開始して以来、CodeQLのオープンソースのクエリーセットに対して既にコミュニティーから132件の貢献があったと述べている。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。