GitHub のCode Scanning を使うことで、ソフトウェアの本番環境リリース前にセキュリティの脆弱性を簡単に見つけられるようになります。GitHubは今回、Code Scanning を正式にリリース (GA: General Availability) しました。 本日から、パブリックリポジトリで利用できるようになります。
1年前、GitHubはSemmleを買収しました。それ以来、SemmleがもつCodeQLテクノロジーの革新的なコード解析機能を、GitHubのネイティブ機能として統合させる取り組みを行ってきました。今年5月にオンライン開催されたGitHub Satelliteで、統合された Code Scanning の初回ベータ版をリリース後、コミュニティ内の何千人もの開発者からテストやフィードバックを提供していただいた結果、Code Scanning を正式にリリースすることができましたので、お知らせいたします。
コードに潜むセキュリティ問題を防ぐ Code Scanning
Code Scanning は、開発者ファーストな機能として設計されています。修正してもあまり効果のない大量の修正サジェスチョンを提示するのではなく、本当に修正すべきサジェスチョンだけを提示するので、開発者は目の前の業務に集中することができます。
Code Scanning は、GitHub Actions あるいは既にお使いのCI/CD 環境に統合できるため、開発の柔軟性を最大限に向上することができます。Code Scanningでソースコードをスキャンした後は、Pull Requestという形で修正すべき点を表示します。このように、開発者が日常的に使用しているGitHubワークフローの一部としてセキュリティを自動化するため、ソフトウェア開発の初期段階から脆弱性が入り込まない状況を確保することができます。
Code Scanning は、世界最強のコード解析エンジン「CodeQL」を利用しています。GitHubやそのコミュニティが作成した2,000件以上のCodeQLクエリを利用できるだけでなく、カスタムクエリを作成し、セキュリティ上の新たな問題点を簡単に見つけ出し、その拡大を防ぐことができます。
Code Scanning は、SARIF (静的分析結果交換形式) のオープン規格に基づき開発されてた拡張可能な機能のため、オープンソースや商用の静的アプリケーションセキュリティテスト (SAST) ソリューションを 、使い慣れたGitHub フローの一部として実装できます。サードパーティ製のスキャンエンジンを統合し、すべてのセキュリティツールの結果を共通のインターフェースで閲覧したり、複数のスキャン結果を単一のAPIからエクスポートすることも可能です。拡張機能やパートナーエコシステムについては、近日中に追加情報を掲載する予定です。
現在までの素晴らしい成果
5月のベータ版リリースから、Code Scanning はコミュニティ内で広く普及しました。
- 12,000以上のレポジトリに対し、140万回のスキャンを実行し、リモートコード実行(RCE)、SQLインジェクション、クロスサイトスクリプティング(XSS)の脆弱性など、20,000件以上のセキュリティエラーを発見しました。
- 直近の30日間で、Pull Request から発見されたセキュリティエラーの72%が、Merge される前に開発者やメンテナーによって修正されました。発見から1か月で修正されるセキュリティエラーは全体の30%未満という業界データを踏まえると、これは誇らしい数字です。
- GitHubコミュニティによる、オープンソース化されたCodeQLクエリセットへのコントリビューションは、132件に上っています。
- GitHub Code Scanning が提供する体験において、SASTのためのCodeQLや業界最先端ソリューション、コンテナスキャン、コードバリデーションとしてのインフラを同時に実行できるようにするため、オープンソースや商用のセキュリティベンダー十数社と提携しました。
ユーザーの声
Code Scanning はパブリックリポジトリなら無料で使えます。プライベートリポジトリでの利用はGitHub Enterprise向けのGitHub Advanced Security機能をオプション購入することで利用できます。既にCode Scanning を利用しているユーザーの声をご紹介します。
「GitHubのデフォルト機能や、それをベースにカスタム機能を構築できることから、GitHub Advanced Securityを選択しました。以前はセキュリティエラー1件を発見して修正するまで、丸一日かかっていましたが、導入後は1日3件のエラーを発見し、修正することができるようになりました。」
- Auth0、セキュリティエンジニアリング担当ディレクター、Charlotte Townsley
「GitHubなら、セキュリティ対策を強制するのではなく、ワークフローの一部として実装できます。脆弱性や製品の問題を早期に発見できれば、長期的にはその分だけ会社のメリットにつながります。」
- McKesson Labs、開発サービス担当ディレクター、James Hurley
「GitHub Advanced Securityからエラーが報告されると、Pull Request をMerge することはできません。セキュリティエラーが見つかれば、直ちに通知されます。私たちは、GitHubから注意喚起されたものをすべて確認し、それらを解決してから、確かなものをリリースしています。開発者は、自信を持ってMergeボタンを押せるようになります。」
- Netdata、CTO、Dimosthenis Kaponis
パブリック/プライベートリポジトリ向けに Code Scanning を有効化
- パブリックリポジトリに関しては、Code Scanning を無料でご利用いただけます。今すぐ、Code Scanning を有効にする方法をご覧ください。
- プライベートリポジトリについては、GitHub Enterprise向けにGitHub Advanced Securityをオプション購入することで利用できます。詳しくは、営業担当までお問い合わせください。
- オープンソースエコシステムのセキュリティに貢献したい方は、是非、現在拡大中のセキュリティコミュニティの一員として、日々と増え続けるCodeQLクエリリストにコントリビュートしてください。