GitHub Code Scanning を正式リリース
オープンソースプロジェクトおよびビジネスユースを含む、ソフトウェアの開発プラットフォームを提供するGitHub, Inc.(本社:米国サンフランシスコ)は、9月30日(米国時間)に、Code Scanning(https://github.co.jp/features/security)を正式リリース (GA: General Availability) しました。本日より、パブリックリポジトリ(https://docs.github.com/ja/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/enabling-code-scanning-for-a-repository)でも利用が可能になっています。GitHub のCode Scanning を利用することで、ソフトウェアの本番環境リリース前にセキュリティの脆弱性を容易に発見することが可能になります。
1年前、オープンソースサプライチェーンの保護を進めるために、GitHubはSammleを買収しました(https://github.blog/jp/2019-09-20-github-welcomes-semmle/)。それ以来、SammleがもつCodeQLテクノロジーの革新的なコード解析機能を、GitHubのネイティブ機能として統合させる取り組みを行ってきました。本年5月にオンライン開催されたGitHub Satellite(https://is.gd/JfGJUT)で、統合された Code Scanning の初回ベータ版をリリース後、コミュニティ内の何千人もの開発者からテストやフィードバックを提供していただいた結果、Code Scanning をこのたび正式にリリースすることができました。
コードに潜むセキュリティ問題を防ぐ Code Scanning
Code Scanning は、開発者ファーストな機能(https://resources.github.com/whitepapers/jp-application-security-guide/)として設計されています。ソースコードを修正しても効果が少ない大量の修正サジェスチョンを提示するのではなく、本当に修正すべきサジェスチョンだけを提示する仕様になっているため、開発者は目の前の業務に集中することができます。
Code Scanning は、GitHub Actions あるいは既にお使いのCI/CD 環境に統合できるため、開発の柔軟性を最大限に向上することができます。Code Scanningでソースコードをスキャンした後は、Pull Requestという形で修正すべき点を表示します。このように、開発者が日常的に使用しているGitHubワークフローの一部としてセキュリティを自動化するため、ソフトウェア開発の初期段階から脆弱性が入り込まない状況を確保することができます。
Code Scanning は、世界最強のコード解析エンジン「CodeQL」を利用しています。GitHubやそのコミュニティが作成した2,000件以上のCodeQLクエリを利用できるだけでなく、カスタムクエリを作成し、セキュリティ上の新たな問題点を容易に発見できるため、その拡大を防止することが可能になります。
Code Scanning は、SARIF (静的分析結果交換形式) のオープン規格(https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sarif)に基づき開発された拡張可能な機能であるため、オープンソースや商用の静的アプリケーションセキュリティテスト (SAST) ソリューションを 、使い慣れたGitHub ワークフローの一部として実装できます。サードパーティ製のスキャンエンジンを統合し、すべてのセキュリティツールの結果を共通のインターフェースでの閲覧、あるいは複数のスキャン結果を単一のAPIからエクスポートすることも可能となっています。拡張機能およびパートナーエコシステムに関する追加情報は、近日中に公開する予定です。
現在までの素晴らしい成果
5月のベータ版リリースから、Code Scanning はコミュニティ内で広く普及しました。
- 12,000以上のリポジトリに対し、140万回のスキャンを実行し、リモートコード実行(RCE)、SQLインジェクション、クロスサイトスクリプティング(XSS)の脆弱性など、20,000件以上のセキュリティエラーを発見しました。
- 直近の30日間で、Pull Request から発見されたセキュリティエラーの72%が、Merge される前に開発者やメンテナーによって修正されました。発見から1か月以内に修正されるセキュリティエラーは全体の30%未満(https://www.veracode.com/state-of-software-security-report)という業界データを踏まえると、非常に誇れる数字と言えます。
- 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 を有効にする方法をご覧ください(https://docs.github.com/ja/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/enabling-code-scanning-for-a-repository)。
- プライベートリポジトリについては、GitHub Enterprise向けにGitHub Advanced Securityをオプション購入することでご利用いただけます。詳しくは、営業担当までお問い合わせください(https://enterprise.github.com/contact)。
- オープンソースエコシステムのセキュリティに貢献されたい方は、是非、現在拡大中のセキュリティコミュニティの一員として、日々増え続けるCodeQLクエリリストにコントリビュート(https://github.com/github/codeql)してください。
GitHub Blog
英語
https://github.blog/2020-09-30-code-scanning-is-now-available/
日本語
https://github.blog/jp/2020-10-06-code-scanning-is-now-available/
GitHubに関する情報は、こちらからもご覧いただけます。
Blog: (英語) https://github.blog (日本語) https://github.blog/jp
Twitter: (英語) @github( https://twitter.com/github )
(日本語) @GitHubJapan( https://twitter.com/githubjapan )
【GitHub について】https://github.co.jp
GitHub(ギットハブ)は世界で5,000万人にのぼる開発者および290万の組織に利用される開発プラットフォームです。プログラミング環境にオープンな会話と協調を重んじるコミュニケーションによって、コラボレーションを促進する開発環境を提供しています。これらの開発を実現するワークフローで必要となるコードレビュー、プロジェクトおよびチームマネージメント、ソーシャルコーディング、ドキュメント管理などに、これまで以上の効率性と透明性をもたらし、より高速かつ品質の高いソフトウェア開発を支援しています。
GitHubは多様なユースケースに適した開発プラットフォームを用意しており、オープンソースジェクトから企業における機密性の高いソフトウェア開発までに対応できます。無料で利用できるパブリックリポジトリは、オープンソースプロジェクトにて多く利用されています。プライベートリポジトリが利用できる有償サービスとして GitHub Enterprise や GitHub One などのプランも提供しています。
2008年に米国サンフランシスコで創業したGitHub, Inc.は、初の海外支社として、2015年に日本支社を開設しました。