脆弱性を発見するコードスキャン機能がGitHubに統合、セキュリティの問題が次々見つかる:「CodeQL」エンジンがベース
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.
関連記事
- DDoS攻撃がきっかけ――auカブコム証券がセキュリティの側面からOpsDevを推進できた理由
デジタルサービスの継続的な運用には、セキュリティ対策が欠かせない。「最初からアジャイルで作るのは難しい。既に何らかのシステムを持っているのだから、まずはその運用をどうするかを考えなければならず、OpsがDevよりも先になる」と述べるauカブコム証券の石川陽一氏の事例から、デジタルサービスのDevSecOpsに欠かせない「データ活用」の要点を探る。 - 狙われるWebアプリケーション、脆弱性対策とWAFに期待できることとは
当連載ではWebアプリケーションのセキュリティが置かれている状況と、サイバー攻撃について具体的なデータを示し、防御策を紹介している。第1回と第2回ではWebアプリケーションの攻撃対象となる領域と、領域ごとの被害例に加えて、Webアプリケーションが攻撃を受けるまでにたどるプロセスについて簡単に整理した。今回は、Webアプリケーション側で可能な対策について脆弱性への対応とWAFを中心に解説していく。 - コンテナ・DevOps時代のセキュア開発を問う――セキュリティバイデザインがもう避けては通れない理由
クラウドやコンテナ、マイクロサービスが主流になりつつある現在、セキュリティバイデザインという考え方をどのように発展させ、適用させていけばいいのだろうか。