BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 情報漏洩の定量化によってシステムを保護する

情報漏洩の定量化によってシステムを保護する

原文(投稿日:2021/09/09)へのリンク

情報漏洩は、外部から参照可能な情報を機密情報に関連付けられる場合に発生する。Mireya Jurado氏によれば、パスワードや医療診断、場所、財務データなど、我々の世界を支える情報の多くには、エラーメッセージや電力消費パターンといった、それら機密情報のヒントを与えるような、さまざまな種類の情報が存在している。

量的情報流(Quantitative Information Flow)とは、情報漏洩とは何か、どのように測ることができるのか、どうすれば漏洩を考慮したシステムを構築することができるのか、といったことに関する理解を深めるための学術的な枠組みである。

大学院研究者のMireya Jurado氏は、The Diana Initiative 2021で、情報漏洩の定量化について講演した。

情報は水のようなもので、コントロールすることは難しい、とJurado氏は説明する。

潜在的な実装ミスを原因とする、偶発的な情報漏洩のニュースをしばしば耳にします。ある病気の検査で陽性になった場合に、ユーザに警告を行うアプリを考えてみましょう。そのアプリが陽性の結果のみをユーザにメッセージとして送るならば、そのトラフィックを調べることで、陽性のユーザを特定することが可能になります。一方で、アプリがすべてのユーザにダミーのメッセージを送信すれば、盗聴者は実際に誰が陽性なのかを知ることはできません。

情報が意図的に公開される場合もある、とJurado氏は言う。ユーザにパッチについて連絡しようとすれば、その同じパッチが、攻撃者に対して脆弱性に関する知識を提供することにもなる。サービスや効率性と引き換えに、機密性の高い情報を公開しているのだ。"自分が行きたい場所の地図を求めれば、自分の居場所を公開することになります"、とJurado氏は言う。

現実的な多くの状況において、情報漏洩はもはや避けられない。選挙結果が全会一致であれば、誰に投票したのかはすべて明らかになる、とJurado氏は説明する。ラップトップのパスワードチェッカでさえ、推測が正しいかどうかを教えることで、結果的に以降の推測を絞り込む役目をしているのだ。

量的情報流(Quantitative Information Flow、QIF)は、情報フローをモデリングして、よりダメージの大きい漏洩は何か、逆に言えば、許容できる漏洩は何か、を認識することによって、漏洩を数値化するフレームワークである。QIFはシステムを、秘密情報をインプット、外部から観察可能なアウトプットとするチャネルとしてモデル化する、とJurado氏は言う。

システムをモデル化するということは、システムのメカニカルな説明を提供するということです。これにより、システムを形式的かつ定量的な方法でとらえて、厳密な方法でセキュリティ特性を証明することが可能になります。QIFにおける特性は一般に、確率的な性格のものです。例えば、攻撃者が正しいパスワードを推測する可能性をQIFで得ることができます。

これによって、より優れた、つまり、よりセキュアなシステムの設計に寄与するのだ、とJurado氏は言う。漏洩の根源と量が検出できれば、それを止める、あるいは軽減することが可能になる。さらに、修正の各段階において漏洩を数値化することで、プロセスを正しい方向に導くことができるのだ。

情報漏洩の定量化について、Mireya Jurado氏に聞いた。

InfoQ: 情報フローの定量化にはどのような効果があるのか、例を挙げて説明して頂けますか?

Mireya Jurado: 例えば、プライバシを侵害することなく、統計的データベースの情報に基いたポリシ決定をしたい、としましょう。このような決定をナビゲートする上で、QIFは有用なのです。

QIFを使えば、分類されたメッセージをインプット、暗号化に必要な総時間をアウトプットとするチャネルとして、暗号化プログラムをモデル化することが可能になります。機密情報と出力との間にはこのような、攻撃者がメッセージを推測する上で有用な相関関係が存在するのです。

敵の能力と目的を組み入れると、続いてQIFは、その観察可能な情報が敵にとってどの程度の価値があるかを尋ねてきます。QIFの下では、情報漏洩に対する直感が正しいものと信じてはなりません。秘密メッセージの処理に時間の掛かるプログラムはよくないと、何となくは思うかも知れませんが、QIFを使うことで、それがどの程度悪いのかを正確に把握できるようになります。

InfoQ: 情報漏洩を測定して算出するには、どうすればよいのでしょうか?

Jurado: 機密情報を公にするようなチャネル、あるいはシステムの影響を分離することで、情報漏洩を計測することが可能になります。漏洩を測定するためには、敵が秘密の分散のみを知っている状態である以前の脆弱性と、秘密の分散を知ってチャネル出力を観察できるようになった以降の脆弱性とを比較します。"以前の脆弱性"は、攻撃者が自身のデスク上で攻撃計画を立案している時点の成功可能性であり、"以降の脆弱性"は、攻撃を実行に移してその様子を見ている時点での成功可能性である、と考えることもできます。これらの値を比較すれば、漏洩が許容できるものかどうか、漏洩が実際に発生する前に判断できるようになります。

例えば、攻撃者がデスク上でパスワードを正しく推測できる確率は2パーセントだが、キーパッドの数字のすり減り具合を確認できる場合の確率が20パーセントであるとすれば、脆弱性は18パーセント、10倍に増えたことになります!これが漏洩なのです — 18パーセントは絶対差を示す加法的漏洩であり、10倍は相対差を示す情報的漏洩です。いずれにしても、攻撃成功率が5分の1というのは極めて不都合ですから、キーパッドを交換するべきです。

漏洩を正確に算出する上で、QIFは特定の攻撃者の知識を使用しますが、攻撃者とその能力や知識に依存しない境界や漏洩の限界を算出することも可能です。これはつまり、未知の状況を含む将来的な漏洩の評価においても、QIFが十分に有用であることを意味しています。

InfoQ: 情報漏洩を評価する上で、アーキテクトに対するアドバイスはありますか?

Jurado: 最初の、最も重要なステップは、自身のシステムにおいて守るべき、最も価値の高い機密を特定することです。すべての情報資産を同じようなレベルで保護する必要はありません。次のステップは、その機密情報に関連性のある公開情報を識別することです。時間や電力、キャッシュ状態、エラーメッセージなど、可能な限り包括的に考慮してください。

攻撃者が観察可能なものを特定できれば、その情報と機密情報の関係を断ち切ることが非常に有効な予防手段になります。例えば、ある種の機密情報を処理するプログラムにおいて、他よりも処理に時間を要するインプットが存在するのであれば、処理時間を均等化するという対策を取ることができます。攻撃者に一切のヒントを与えるべきではないのです。

次にお勧めするのは、脅威のモデリングです。想定される攻撃者の目的、能力、メリットを特定しましょう。敵が"成功"と考えるものを知ることが、システム設計上の情報になります。最後に、リソースに応じた機密情報の分散を図ることができます。攻撃者がパスワードや給与、PIIなど、保護しようとしているものの分散をすべて知っていると想定してください。その想定の下で、そうした情報が攻撃者にとっていかに有用かを検討しましょう。例えば、他よりもよく使用されているパスワードを攻撃者が知っているならば、それらのパスワードを回避するステップを実行してください。攻撃者が米国で最も一般的な姓について知っているとすれば、ユーザの母親の旧姓を認証に使うべきではないでしょう。

この記事に星をつける

おすすめ度
スタイル

BT