Googleは、オープンソースのセキュリティパッチ検証ツール「Vanir」の提供を開始した。未適用のセキュリティパッチを迅速かつ効率的にスキャンし、適用可能なパッチの特定を支援するという。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Googleは2024年12月5日(米国時間)、オープンソースのセキュリティパッチ検証ツール「Vanir」を公開した。
Vanirは、2024年4月開催の「Android Bootcamp」で発表された。Androidプラットフォームの開発者は、Vanirを活用することで、カスタムプラットフォームのコードに欠けている未適用のセキュリティパッチを迅速かつ効率的にスキャンし、適用可能なパッチを特定できるという。
Vanirはこのプロセスを自動化することで、パッチ検証にかかる時間を低減させる。OEMベンダーは、重要なセキュリティアップデートでデバイスが保護されていることを確認できる。これにより、Androidエコシステムのセキュリティが強化され、世界のAndroidユーザーの安全が確保される。
GoogleはVanirのオープンソース化により、より広範なセキュリティコミュニティーがこのツールに貢献し、その恩恵を受けられるようにすることで、このツールがより広く普及し、多様なエコシステムのセキュリティを向上させることを目指している。
Vanirは、当初はAndroid用に設計されたが、比較的小さな修正で他のエコシステムにも簡単に適用できる。幅広いソフトウェアセキュリティを強化できる汎用(はんよう)性の高いツールだという。
Androidエコシステムでは、新しい脆弱(ぜいじゃく)性が発見されると、アップストリームのAOSP(Androidオープンソースプロジェクト)開発者がアップストリームパッチを作成し、リリースする。その後、ダウンストリームのデバイスメーカーやチップメーカーが特定のデバイスへの影響を評価し、必要な修正をバックポートする。
このプロセスは効果的だが、スケーラビリティ上の課題が生じることがある。複雑な更新履歴を持つ幅広いデバイスや旧モデルを管理するメーカーにとっては、特にそうだ。多様なカスタマイズされたデバイスのパッチ適用対象の管理は、バックポートが手作業であるため、多大な労力を要する。
この重要なセキュリティワークフローを効率化し、Androidデバイスが潜在的な脅威からタイムリーに保護されるように支援する目的で、GoogleはVanirを開発した。
VanirにおけるAndroidセキュリティパッチ検証のユニークなアプローチは、ソースコードベースの静的解析を使用し、ターゲットソースコードを既知の脆弱なコードパターンと直接比較するというものだ。Vanirは、バージョン番号、リポジトリ履歴、ビルド設定など、エラーが発生しやすい従来のメタデータベースの検証メカニズムに依存しない。
Vanirは、OSS(オープンソースソフトウェア)のエコシステムにおいて、欠けているセキュリティパッチを特定するという時間とコストがかかるプロセスを自動化することに主眼を置いている。
そのために、精度の高い新しい自動シグネチャ作成技術とさまざまなパターン分析アルゴリズムを利用している。これらのアルゴリズムは誤アラート率が低く、コードパッチ処理で現れる可能性のある幅広いクラスのコード変更を効果的に扱える。Google社内におけるVanirの2年間の運用では、誤アラートをトリガーしたシグネチャは2.72%にとどまった。
こうしたシグネチャ作成技術とアルゴリズムにより、Vanirは、コード変更があっても、不要なアラートと手動レビューの労力を最小限に抑えながら、欠けているパッチを効率的に見つけることができる。
また、Vanirのソースコードベースのアプローチは、あらゆるエコシステムにわたる迅速な拡張を可能にする。Vanirは、サポートされている言語で書かれたあらゆるソースファイルのシグネチャを生成できる。Vanirのシグネチャジェネレータは、これらのシグネチャを自動的に生成、テスト、改良するので、ユーザーは、ソースファイルにセキュリティパッチを適用するだけで、あらゆるエコシステムにおいて新しい脆弱性のシグネチャを迅速に作成できる。
AndroidエコシステムでVanirを使用したところ、従来のパッチ検証手法と比べて、Vanirの効率性の高さが浮き彫りになった。1人のエンジニアがVanirを使って150以上の脆弱性のシグネチャを生成し、ダウンストリームブランチ全体を対象に、欠けているセキュリティパッチを検証することができ、この作業全体が5日以内に完了した。
Vanirは現在、C/C++とJavaのターゲットをサポートしており、セキュリティパッチが公開されているAndroidカーネルおよびユーザースペースのCVE(Common Vulnerabilities and Exposures:共通脆弱性識別子)の95%をカバーしている。Google Androidセキュリティチームは、最新のCVEをVanirのカバー対象に追加し、Androidエコシステムのパッチ導入リスクプロファイルの全体像を提供している。
Androidの脆弱性のVanirシグネチャは、OSV(Open Source Vulnerabilities)データベースを通じて公開されている。これにより、Vanirユーザーは追加のアップデートをせずに、最新のAndroidの脆弱性からコードベースをシームレスに保護できる。現在、OSVには2000件以上のAndroidの脆弱性が登録されており、Androidのソースツリー全体のスキャンを完了するには、最新のPCで10〜20分程度かかる。
Vanirはスタンドアロンアプリケーションとしてだけでなく、Pythonライブラリとしても開発されている。自動化されたパッチ検証プロセスを継続的ビルドやテストチェーンに統合したいユーザーは、ビルド統合ツールとVanirスキャナーライブラリを接続することで簡単に実現できる。
例えば、VanirはGoogleの継続的テストパイプラインと統合されており、進化を続けるAndroidのコードベースとそのファーストパーティーのダウンストリームブランチにおいて、全てのセキュリティパッチが導入されていることを保証している。
またVanirは、BSD-3ライセンスでオープンソースとして公開されている。Vanirに比較的小さな修正を加えるだけで、Android以外の保護したいエコシステムにVanirを簡単に導入できる。
Vanirの基本アルゴリズムは、セキュリティパッチの検証に限定されないため、ソースに変更を加えることで、ライセンスコードやコードクローンの検出など、異なる目的に使用できるという。
Androidセキュリティチームは「Vanirの機能と適用範囲を拡大する可能性がある、Vanirへのあらゆる貢献を歓迎する」と述べている。
Googleは2023年初頭から、Android OEMベンダー数社と提携し、Vanirの有効性をテストしてきた。Google社内ではこのツールをビルドシステムに統合し、1300件以上の脆弱性に対するテストを継続的に実施している。Vanirは現在、修正プログラムが公開されているAndroid、「Wear」「Pixel」の全脆弱性の95%をカバーしている。パッチ検証精度は97%に達し、社内チームのパッチ修正時間をこれまでに500時間以上削減している。
Googleは、Vanirの今後のステップとして、「OSV-scanner」との統合によるC/C++の依存関係管理など、Vanirで解決できる可能性のある新しい問題を積極的に探っている。OSV-scannerは、オープンソース開発者が自分のプロジェクトに関連する脆弱性情報に簡単にアクセスできるオープンソースツールだ。
Copyright © ITmedia, Inc. All Rights Reserved.