複数の脆弱性を突く攻撃チェーンの構築法とは、GitHubがAndroidシステムの実例を解説:Webページを閲覧しただけで全てを奪われる
GitHubは複数の脆弱性攻撃を組み合わせることで、カーネルコードの実行に至る実験に成功したことを発表した。Androidシステムコンポーネントのさまざまな脆弱性攻撃を組み合わせて、「Google Chrome」ブラウザのエクスプロイトから権限昇格へ、さらにAndroidデバイス上でのカーネルコード実行へと進んだ。
GitHubは2021年3月24日(米国時間)、GitHub Security Labが、Androidシステムコンポーネントのさまざまな脆弱(ぜいじゃく)性に対する攻撃を組み合わせて、「Google Chrome」ブラウザのエクスプロイト(脆弱性攻撃)から、権限昇格、Androidデバイス上でのカーネルコード実行に至る実験に成功したことを紹介した。
GitHub Security Labの目的は、現在のセキュリティ対策が最新のノウハウを用いた攻撃にどの程度耐えるのかを測定することにあった。「概念実証」(PoC)を越える今回のような取り組みは、セキュリティ研究のコミュニティーがシステムのセキュリティ対策の弱点を特定し、修正して対策を改善するプロセスに貢献するとしている。
今回の実験のように、複数の脆弱性を組み合わせて一連の攻撃を重ね、最終的に標的のシステムへの特権アクセスを取得することを、攻撃者が使う用語では「フルエクスプロイトチェーンの構築」と呼ぶ。
攻撃者の攻撃手法をまねる
GitHub Security Labは実際の攻撃者が試みるように、まず、Androidカーネルのエクスプロイトを目標に定め、その実現方法を見いだした。
さらに、何をすればよいのか、どのようにすればよいのかを詰めていった。こうしてChromeサンドボックスのエスケープとChromeレンダラのエクスプロイトを狙うことを決めた。目標達成に向けて、モダンWebブラウザのエクスプロイトチェーンをさかのぼり、悪意あるWebページへのユーザーのアクセスを出発点に設定した。
今回の攻撃チェーンの重要部分で使用されたChrome β版の脆弱性は、GitHub Security Labが脆弱性を報告する前には(2020年を通じて)、実際に悪用されたことがなかった。攻撃チェーンで使用された脆弱性はその後、全て修正されており、GitHub Security Labは、修正後、エンドユーザーがデバイスを更新するのに十分な時間が経過していると述べている。
GitHub Security LabはAndroidカーネルのエクスプロイトとChromeサンドボックスのエスケープ、Chromeレンダラのエクスプロイトを、次に紹介する3段階で進めていった。
(1)Qualcommドライバの脆弱性を突いたAndroidカーネル攻撃
GitHub Security Labは「GHSL-2020-375」として報告されている脆弱性(CVE-2020-11239)を使用して、ポピュラーなQualcommチップセットを採用したAndroidデバイス上で権限昇格に成功した。Qualcommチップセットを採用したデバイスには「Google Pixel 4」「Samsung A71」「Samsung S20」などがある。
この脆弱性は、いわゆる「UAF」(Use After Free:解放済みメモリの使用)に関わる脆弱性だ。UAFの脆弱性はメモリ管理の欠陥の一種であり、攻撃者がこれを悪用するとシステムメモリ上のオブジェクトの内容を操作し、こうしたオブジェクトとやりとりするシステムソフトウェアに、操作したメモリ内容を渡すことができる場合がある。
GitHub Security Labが選んだ脆弱性は、攻撃者が自分のシステムアクセス権限を、侵害対象のChromeブラウザのようなAndroidアプリケーションのコンテキストから、システムへの特権アクセスができるように昇格させるために必要な、全ての機能を提供できた。
(2)Chromeサンドボックスのエスケープ
続いて攻撃チェーンをさかのぼり、「GHSL-2020-165」として報告されているChrome β版の脆弱性(CVE-2020-16045)を使用して、サンドボックス化されたChromeのレンダラプロセスからエスケープすることに成功した。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- セキュリティインテリジェンスの売買プラットフォーム NTTコミュニケーションズが実証実験の参加者を募集
NTTコミュニケーションズは、同社が開発を進めている「ブロックチェーン型セキュリティ情報流通フレームワーク」の実証実験を2020年11月30日に開始する。狭い範囲で活用されていたセキュリティインテリジェンスを売買できるようにする。 - 機械学習でMicrosoftがセキュリティバグを判定、高い精度が特徴
Microsoftは、教師あり機械学習を活用することにより、セキュリティバグの特定と分類の精度を大幅に向上させたと発表した。開発時、さらには運用後の改善にはセキュリティ専門家の協力を仰ぐことが不可欠なのだという。 - DevOpsチームとセキュリティチームの摩擦を減らすDevSecOpsを導入するための4つのポイント
DevOpsチームとセキュリティチームは、開発プロセスの最後まで別々に作業することが多く、結果、両チーム間で摩擦が生じやすくなっています。これは、製品やサービスを市場に投入する競争において、セキュリティが後回しにされることがあり、潜在的な脆弱(ぜいじゃく)性に対処するための時間が十分に確保されていないためです。DevOpsとサイバーセキュリティを効果的に融合させた組織は、セキュリティ対策を積極的に実践し、チーム間の摩擦を減らすことに成功しています。本稿では、セキュリティ責任者がDevSecOpsを導入するための4つのポイントを紹介します。