GitHubはコードの脆弱性を簡単に発見できるコードスキャン機能の一般提供を開始した。GitHubの機能に溶け込んでいるため、開発ワークフローの一環としてセキュリティ上の課題を解決しやすい。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
GitHubは2020年9月30日(米国時間)、コードを本番環境に展開する前にコードの脆弱(ぜいじゃく)性を簡単に発見できるコードスキャン機能の一般提供を開始した。
GitHubはSemmleの買収で獲得したセマンティックコード解析エンジン「CodeQL」のコード解析機能をGitHubのネイティブ機能として提供することに取り組んできた。今回のコードスキャン機能は、CodeQLの機能をGitHubにネイティブに統合したものだ。2020年5月のβ版リリースを経て、今回正式版の提供を開始した。
β版では1万2000以上のリポジトリが140万回スキャンされ、リモートコード実行(RCE)やSQLインジェクション、クロスサイトスクリプティング(XSS)といった脆弱性を含む2万以上のセキュリティ問題が見つかった。
マージ前のプルリクエストで報告があったセキュリティ上の問題の72%を、報告から30日以内に修正できた。業界のデータによると、発見後1カ月以内で修正できたセキュリティ上の問題はこれまで30%未満だという。つまりコードスキャン機能を使うと、セキュリティ上のエラーを従来と比べて大幅に効率良く修正できる。
開発者が作業に集中できるように、コードスキャン機能はデフォルトで、具体的な行動につながるセキュリティルールのみを実行する。
コードスキャン機能は「GitHub Actions」や既存のCI/CD(継続的インテグレーション/継続的デリバリー)環境と連携して、チームの柔軟性が高まるようにする。作成されたコードをスキャンし、プルリクエストなど開発者が日々利用するGitHubエクスペリエンスの中で、行動につながるセキュリティレビューを表示する。ワークフローの一環としてセキュリティ対策を自動的に組み込むため、本番コードに脆弱性が残ってしまう事態を回避できる。
コードスキャン機能はCodeQLに支えられている。CodeQLはコードがデータであるかのように扱い、コードに対してクエリを実行できる。GitHubとコミュニティーが作成した2000以上のCodeQLクエリを使ったり、カスタムクエリを作成して新しいセキュリティ問題を簡単に発見、防止したりできる。
コードスキャン機能は、OASIS(Organization for the Advancement of Structured Information Standards)標準であるSARIF(Static Analysis Results Interchange Format)に基づいている。
また、拡張性に優れているため、オープンソースや商用の静的アプリケーションセキュリティテスト(SAST)ソリューションを、GitHubネイティブの機能のように利用できる。
サードパーティーのスキャンエンジンを統合して、全てのセキュリティツールの出力を単一のインタフェースで表示したり、1つのAPIで複数のスキャン結果をエクスポートしたりできる。
こうした拡張性やパートナーエコシステムについて、近いうちに追加情報が発表されるという。
コードスキャン機能はパブリックリポジトリについては無料で利用できる。「GitHub Enterprise」サービスの「GitHub Advanced Security」機能であるため、プライベートリポジトリで利用したい場合は、GitHubに詳細を確認する必要がある。
Copyright © ITmedia, Inc. All Rights Reserved.