ブログ

COVID-19接触追跡アプリ:セキュアコーディングの現状はどうなっているのか?

July 8, 2020
Pieter Danhieux

この記事は、DevOps Digestに掲載された記事を元にしています。内容を更新し、転載しました。

「未曾有の事態」という言葉に、もう聞き飽きたと感じている方も多いのではないでしょうか。しかし、まさに今は未曾有の事態です。昨年末の時点で、世界を破壊するパンデミックを打ち負かすために、これほどまでに全力を注ぐことになると誰が予想したでしょうか。それはまるで、現実の出来事というよりは、NetflixのSFシリーズの筋書きのように思えたはずです。COVID-19は、私たちの社会生活、経済、雇用の安定、そして政治的優先事項までも一変させてしまいました。

COVID-19への対抗策の一つとして、多くの国で接触確認アプリが導入されています。オーストラリアの「COVIDSafe」は、シンガポールの「TraceTogether」をモデルにしています。香港、台湾、中国、韓国、イスラエル、ドイツでも、接触確認技術が導入済み、あるいは導入予定です。欧州で最も深刻な被害を受けた英国では、数万人規模の死者と高い感染率を記録しており、アプリのリリースが差し迫っています。米国でも多くの尊い命が失われ、甚大な影響を受けており、技術導入が進められていますが、州ごとに異なるアプローチをとっているため、状況は非常に複雑です。

中国や台湾のような国家主導の国を除き、これらのアプリの利用は任意であり、市民が自らの意思でダウンロードして利用する必要があります。普及率には差があり、例えばシンガポールの「TraceTogether」は普及率が25%にとどまり、目的を達成するには不十分な結果となりました。

接触確認アプリの考え方は理にかなっています。この技術が適切に機能すれば、感染拡大のホットスポットを迅速に特定し、包括的な検査を実施できるようになります。これらはどちらも、感染症の拡大と戦う上で不可欠な要素です。しかし、「政府」や「追跡」という言葉はあまり魅力的に響かず、このようなアプリをダウンロードすることが自分にとって何を意味するのか、人々が慎重になるのは当然のことです。

では、ユーザーの主な懸念は何でしょうか。オンライン上の意見を見る限り、以下のような不安が挙げられます。

  • 政府が収集したデータを責任を持って扱うかどうかの不信感
  • サイバー攻撃から個人データがどの程度保護されるかという懸念
  • どのようなデータが実際に収集され、どこに保存され、誰と共有されるのかという不透明さ
  • ...そして、開発者や技術に詳しい層からは、アプリの構築がどれほど堅牢かという点です。

アプリが短期間で構築されると、常に不安がつきまといます。今回の接触確認アプリは、記録的な速さでリリースしなければなりませんでした。これは開発者、セキュリティ担当者、政府機関にとって悪夢のような状況です。

では、不信感を抱くのは妥当な反応なのでしょうか。また、COVID-19接触確認アプリとエンドユーザーの安全性を評価する際、何を優先すべきでしょうか。セキュリティ専門家としての私の直感は、当然ながら、善意からインストールを推奨されているこのアプリのコードベースがどれほど安全か、サイバーセキュリティの観点から徹底的に調査することです。

多くのアプリは互いのコピーであり、同じ問題を抱えています。

オーストラリアの「COVIDSafe」アプリは、シンガポールの「TraceTogether」と同様に、OpenTraceをベースにしています。しかし問題は、TraceTogetherにも多くの報告された問題があり、普及率が低かったことです。利用者は人口のわずか25%にとどまり、効果を発揮するために必要な75%には遠く及びませんでした。特にiOS版では、バッテリーの消耗が激しいなど、全体的なパフォーマンスに対する不満が寄せられています。COVIDSafeのiOS版には、UX上の潜在的な欠陥があり、データを正しく記録するには、スマートフォンのロックを解除し、アプリをフォアグラウンドで実行し続ける必要があります。

上記の問題も厄介ですが、より差し迫った懸念は、Bluetoothの脆弱性が蔓延しており、TraceTogetherもオーストラリアのCOVIDSafeも、それらに対して無防備であるという点です。5月14日、NISTはCOVIDSafeにサービス拒否(DoS)の脆弱性があることを報告しました。これにより、攻撃者はBluetoothの通信範囲内にいれば、リモートでアプリをクラッシュさせることが可能になります。これは、組織的な攻撃によって、最も効果を発揮すべき人口密集地域での接触確認を妨害される恐れがあることを意味します。この問題は、セキュリティ研究者のリチャード・ネルソン氏によって詳細に解説されています。この脆弱性は、OpenTraceの欠陥のあるmanuData.subdata呼び出しを継承しているため、COVIDSafe、TraceTogether、ポーランドのProteGO、カナダのABTraceTogetherにも影響を及ぼすことが判明しています。

Bluetooth機能全般に関連するプライバシーやセキュリティの問題も他にも存在します。この技術が固有のID(TempID)を通じて人々の移動を追跡し、重要なデータを収集するために使用されているという事実は、必然的に攻撃者が脆弱性を探る関心を高めることになります。その時点で、具体的に何が収集され、どこに保存され、どのくらいの期間保持されるのかを精査する必要があります。

一部のアプリでは、単純なエラーが複雑な脆弱性を引き起こしている兆候がすでに見られます。

オーストラリアのソフトウェアエンジニアであるジェフリー・ハントリー氏は、COVIDSafeのソースコードを調査してきましたが、残念ながら、エンドユーザーである私たちには必ずしも強調されていない問題が存在します。

重大な例として、攻撃者がデバイスを長期的に追跡することを可能にする、プライバシーを侵害するロジックエラーがありました。これは、アプリ自体のプライバシーポリシーに違反するだけでなく、脆弱なユーザーにとって非常に大きなリスクをもたらすものです。

これらのロジックの脆弱性は5月14日時点で修正されていますが、より深刻な問題は、ハントリー氏が報告してから17日間、修正されないまま放置されていたことです。彼と素晴らしいセキュリティコミュニティのメンバーたちは、COVIDSafeアプリに関連するCVEをこちらで追跡しています。

ハントリー氏が指摘するように、パッチ適用後であっても、その修正方法にはある種の「無能さ」が垣間見えます。同氏の公開ログによると、今回のパッチは欠陥のあるキャッシュを単純に削除するのではなく、ロジックを追加するという手法がとられました。本来であれば削除の方がはるかに堅牢な解決策です。どちらも機能はしますが、実運用環境での解決策としては洗練さに欠けており、重要なアプリケーションであることを考えると懸念が残ります。

社会の熱心な人々が自身の時間と専門知識を割いてソースコードを精査し、問題を指摘してくれていますが、最初からオープンソースであればもっと容易だったはずの作業が、現状では非常に困難になっています。現在、28個のアプリが依然としてセキュリティ研究者に対して閉ざされたままです。

セキュアコーディングは、最後の最後で我々の足をすくい続けています。

多忙を極める開発者たちの苦労や、パンデミックの最中に人命を救うアプリを急いで作り上げなければならないという極めて異例な状況には同情を禁じ得ません。しかし、上記のような事実は、共有コードベースにおける単純な脆弱性が、数百万人のユーザーにとって重大な問題を引き起こしかねないことを浮き彫りにしています。

多くの人は良き市民としてアプリを支援し、誰もが接触追跡を行い、この恐ろしいウイルスの感染拡大を抑制できる最善の機会を得たいと願っているはずです。私もそれを実現する技術を支持しますが、今回の件は、世界中の開発者にセキュアコーディングの原則が欠如しているという現状を露呈させる結果となりました。

ソフトウェアを短期間で開発しなければならない状況では、ミスは避けられません。しかし、ロジックの欠陥、設定ミス、コードインジェクションといった一般的なセキュリティ脆弱性は、ボランティアのホワイトハッカーにコードを解剖される前に、コーディングの段階で防ぐべきものです。

ちなみに、これは開発者の責任ではありません。彼らは高等教育でセキュアコーディングのスキルをほとんど学ばず、キャリアにおいてもKPIは常に機能の実装と開発スピードに偏っており、セキュリティは「完成後に誰かがやるもの」とされています。我々は「高速かつセキュアなコーディング」という最終目標に到達する必要があります。今すぐ組織の文化を根本から変えるのは難しいかもしれませんが、デジタルリスクの領域が拡大している今こそ、開発者がセキュリティのベストプラクティスを共有するためのツールと知識を与えられれば、彼らこそが状況を改善できる立場にあることを再認識すべきです。

このアプリをダウンロードしても安全でしょうか?

結論から言えば、セキュリティの専門家である私としては、このアプリの利点は問題を上回ると考えています。前述の脆弱性がソフトウェアに存在している(あるいは存在していた)ことは理想的ではありませんが、それらが悪用される事態はあくまで最悪のシナリオです。現時点において、接触追跡は世界中の医療従事者を支援し、感染拡大を抑え、入院患者の増加を食い止め、互いの安全を守るための極めて重要な要素です。

今回の件は、ソフトウェア構築においてセキュリティのベストプラクティスをデフォルトで適用するには、まだ長い道のりがあることを浮き彫りにしました。一般の人々が十分な情報に基づいて判断を下せるようにすることが重要です。

私と家族は今後もこのアプリを使い続けますが、誰もがそうすべきであるように、Androidのパッチを常に最新の状態に保つなど、警戒を怠らないつもりです。

タグライン

AI主導の開発をリリース前にガバナンスする

AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。

デモを予約する
リソースライブラリ

他のブログ記事を見る

セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。

すべて表示
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

セキュリティ文化の統一:Sageはいかにしてチャンピオンプログラムを構築したか

Sageがどのようにして柔軟かつ関係性を重視したアプローチでセキュリティを強化し、200名以上のセキュリティチャンピオンを育成して、目に見えるリスク低減を実現したのかをご紹介します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

2026年サイバーセキュリティ意識向上月間:企業防衛に不可欠なAIセキュリティの理解

主要なAI企業の多くが、安全対策が追いつくまでの間、AI開発を世界的に減速させるよう公に呼びかける事態となっています。しかし現実には、深刻なセキュリティ問題はすでに顕在化しています。AI導入に伴う金銭的コストやリスクが増大し続ける中、多くのセキュリティリーダーや経営陣は差し迫った状況に追い込まれています。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

イネーブラー8:プログラムのブランディング

セキュアコーディングプログラムを成功させるには、優れたコンテンツ以上のものが必要です。イネーブラー8では、ブランディングによって参加を「憧れのステータスを得る体験」へと変える方法を解説します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

すべての従業員が今、AIサイバーセキュリティの最前線に立っている

エンタープライズテクノロジーの状況は、手遅れになるまで誰も予測できなかったほどの速さで変化しています。私たちは今、人間が書いたコードと基本的なコパイロット支援の時代から、エージェント型開発ライフサイクル(ADLC)の時代へと正式に足を踏み入れました。自律型AIエージェントは、複数の機能にわたってかつてない効率性をもたらす一方で、全く新しい種類のセキュリティリスクや規制リスクも引き起こしています。

詳細はこちら

AIを活用した開発をリリース前にセキュアに

開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。

デモを予約する
該当する項目が見つかりません。