CodeZine(コードジン)

特集ページ一覧

シノプシスのCyRCは、いかにして指紋認証システムの脆弱性を発見したのか?【デブサミ2020夏】

【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2020/08/26 12:00

 シノプシスにはサイバーセキュリティに関連する調査・研究を行うCyRC(Cyber Security Research Center)という組織があり、ボストンやベルファストなど複数の拠点で活動している。2020年3月に、CyRCのロンドンチームがAndroid OS搭載スマートフォンの指紋認証システムの脆弱性を発見した。彼らはいかなる手段で脆弱性を特定したのか。日本シノプシス合同会社の松岡正人氏が、指紋認証の仕組みをふまえて解説した。

目次
日本シノプシス合同会社 ソフトウェア・インテグリティ・グループ シニア・プロダクト・マーケティング・マネージャ 松岡正人氏
日本シノプシス合同会社 ソフトウェア・インテグリティ・グループ シニア・プロダクト・マーケティング・マネージャ 松岡正人氏

サイバーセキュリティ対策を行う、シノプシスのCyRC

 近年、多くの領域でソフトウェアの導入やIT化が進んでいる。それに伴い、サイバーインシデントのリスクも増加している。サイバーインシデントとは、システムの情報流出や不正侵入、マルウエア感染、Webサイト改ざん、DoS(DDoS)攻撃などにより、ユーザーや組織に対して被害が発生することを指す。保険・金融サービスを提供しているAllianz Global Corporate & Specialty(AGCS)の発表によれば、サイバーインシデントによるリスクの大きさは自然災害をも上回っているというから驚きである。

 サイバーインシデントを引き起こす原因の1つがシステムの脆弱性だ。これはソフトウェアの欠陥によって、本来はできないはずの操作ができたり、閲覧できるべきではない情報が第三者に見えてしまったりする不具合のこと。脆弱性が混入する場所はさまざまだ。私たちが利用するアプリケーションだけではなく、OSやデバイスドライバー、CPU、オープンソースソフトウェアなど、どのようなコンポーネントのなかにも脆弱性は潜んでいる。

 「シノプシスのCyRC(Cyber Security Research Center)は、ソフトウェア脆弱性の調査・研究を行い、サイバーセキュリティへの対策をする組織です。シノプシスの保有する技術である静的解析や動的解析、ソフトウェア構成解析、ファジング、オープンソースソフトウェア開発などの知見・ノウハウを利用して、各種の調査を行っています。また、ボストンやベルファスト、カルガリー、オウルなど複数の拠点で活動しているのです」

 松岡氏は、CyRCが2020年3月にレポートしたAndroid OS搭載スマートフォンの指紋認証システムの脆弱性「CVE-2020-7958: biometric data extraction in Android devices」について解説する。脆弱性が発生していたデバイスはOnePlus 7 Pro。REE(Rich Extention Envinronment)によって保護されているはずの指紋ビットマップデータを、rootユーザーが取得できてしまうというものだ。

 脆弱性の原因は、出荷されたプロダクトにデバッグ・コードが残っていたことである。なぜ、この事象が発生してしまったのだろうか。松岡氏はまず、スマートフォンに搭載されているARM社のCPU機構について解説していく。

 「ARM社のCPUには、Trust Zoneという仕組みが搭載されています。これはMMU(Memory Management Unit)によって、マルチコア環境でのメモリ管理・保護を行うものです。Trust Zoneは保護されたセキュアな実行環境であるSecure Worldと、保護されない実行環境であるNormal Worldとを分けて管理しています。Secure Worldへのアクセスを厳密に制御することで堅牢性を向上させているのです。また、コンテクストスイッチをしたときにパイプラインのキャッシュもすべて消去する構造になっています」

OnePlus 7 Proのアーキテクチャ
OnePlus 7 Proのアーキテクチャ

 OnePlus 7 Proは、Trust Zone+QSEE(Qualcomm Secure Execution Environment)による先端的かつセキュアなアーキテクチャが用いられている。このプラットフォームでは、指紋センサーなど生体認証の処理はTEE(Trusted Execution Environment)で行う。Secure modeで動作するCPUのみ、指紋センサーへのアクセスが可能だ。root化された端末であっても、Android OS(REE)からTEEへのアクセスは不可能。つまり構造上、指紋センサーのデータを取得できないはずだったのだ。

セキュアで高品質なソフトウェア開発のためのオンラインセミナー・シリーズ

 シノプシスは、セキュアで高品質なソフトウェア開発のためのさまざまなテーマを扱うオンラインセミナーを随時開催しております。すべてのコンテンツはご参加無料、Live開催後は、録画版と講演資料の公開もしているのでいつでも繰り返しご覧いただけます。

 今後Live開催予定の主なテーマ (Live後は同URLで録画版として公開)

 他にもさまざまな業種・内容のコンテンツを掲載しています。

 シノプシスのオンライン・セミナー・ポータルはこちら


関連リンク

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

バックナンバー

連載:【デブサミ2020夏】セッションレポート

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5