piyolog

piyokangoの備忘録です。セキュリティの出来事を中心にまとめています。このサイトはGoogle Analyticsを利用しています。

数字11桁で他人の健康状態が把握できたカタールの接触追跡アプリの脆弱性についてまとめてみた

2020年5月26日、アムネスティ セキュリティラボはカタールが国内で導入した接触追跡アプリに脆弱性が存在していたと発表しました。ここでは関連する情報をまとめます。
www.amnesty.org

f:id:piyokango:20200528172613p:plain
カタールの接触確認アプリ

カタールの接触追跡アプリ

  • カタールが国内向けに導入を進めている接触追跡アプリは「EHTERAZ」。Android、iOS向けに提供されている。
  • カタール内務省が設計、開発を担当。COVID-19の事例追跡のために、GPS、Bluetoothの技術を使用。
  • 収集されたデータは中央データベースサーバーに集約され、当局担当者はリアルタイムに位置追跡が可能。
  • 2020年4月以降アプリのインストールは同国市民、法廷居住者に義務付けられており、違反した場合最長3年の懲役、約590万相当の罰金刑を受ける可能性がある。

f:id:piyokango:20200528164616p:plain
登録は電話番号、国民IDとその有効期限で行われる

誰でも取得できたカタール国民の健康状態

f:id:piyokango:20200528170159p:plain
アムネスティが指摘した脆弱性

  • アムネスティが確認した問題は国民向けに発行された番号(Qatari ID)だけで該当者のQRコードが取得できるというもの。ID以外に追加の認証は行われていなかった。
  • Qatari IDは数字11桁。番号体系として数字に意味を持たせていることから11桁総当たりの必要はない。
  • 取得条件として事前に登録を前提としているかは不明。アムネスティが報告した100万人とは同アプリのインストール数が「1,000,000以上」となっていることから推測したものとみられる。
アプリのQRコードを見てみる
  • アプリ紹介ページでサンプルとして示されたQRコードは実際に読み込むことができ、次の文字列が取得できた。
  • QIDがQatari ID、CFAGは何らかのフラグ(Covid-19のC、健康状態?)、FACは医療施設名、LATLONGは位置情報と考えられる。これはアムネスティの報告資料に記載されたものと合致している。
<imageXML>
  <QID>11111111116</QID>
  <CFLG>0</CFLG>
  <fac />
  <LAT>0</LAT>
  <LONG>0</LONG>
</imageXML>
  • Apple側のアプリ説明に記載されていたQRコードは古いものなのか、Android向けで格納されていなかった情報が含まれていた。アムネスティの発表でも一部情報が除去されているといった報告がされている。氏名はQRコードに含まれておらず、QRコードの上部に表示されていた。*1
<imageXML>
  <QID>11111111112</QID>
  <CFLG>1</CFLG>
  <fac>FC01-Al Rabban Guest House (M)</fac>
  <LAT>25.28289</LAT>
  <LONG>25.28289</LONG>
</imageXML>

f:id:piyokango:20200528163202p:plain
iOS向けアプリに掲載されていたHealth Status画面。名前も表示されている。

カタールの対応

  • アムネスティは5月21日に脆弱性を指摘、22日にはカタールにより対応が行われた。
  • アプリはAndroidは5月25日、iOSは5月24日にバージョンアップが行われている。
  • 健康状態データに含まれていた名前、場所が外された。さらにアプリアップデートでは追加の認証が行われたとみられる。
  • 発表時点ではアムネスティは十分なセキュリティの水準を満たしているかは確認できなかったと見解を示している。

更新履歴

  • 2020年5月28日 PM 新規作成

*1:IDも存在しない番号体系、緯度経度もエジプトを指しており、テスト用のサンプルデータとみられる