web-dev-qa-db-ja.com

ヒープの過剰読み取りのための悪用戦術?

特に最近のCVEの1つ 2019-13615 VLCメディアプレーヤーに関連し、開発者 reaction のために私の注目を集めました:

VLCがサーバーであり、RCEを実行してマシンを危険にさらす可能性があるなど、悪用できない読み取りオーバーフローは9.8のCVSSを取得しますが、ほとんどの場合、問題はユーザーが持っているローカルファイルからのクラッシュであり、悪用できないことがよくあります手動で開く

私の興味はそれほど高くなかった。脆弱性と 修正を伴うコミット を理解しているため、RCEに実際に悪用することはできません。

私は正しいですか?

では、なぜ2つ(3つ)の無関係な組織の研究者がCVEを発行し、非常に高いCVSSスコアを割り当てたのでしょうか。なぜ他の研究者がmacOSのRCEに悪用できないと言ったのかと思います。

1
Croll

問題の悪用が困難であるにもかかわらずCVSSスコアが高いのは、CVSSがいくつかの可能性を無視するためです。

たとえば、エクスプロイトでユーザーがメディアファイルを開く必要がある場合、属性「ユーザーの操作が必要」を取得します。ユーザーが明示的な警告を無視することを要求するエクスプロイトも、属性「ユーザーの操作が必要」を取得します。

ただし、どちらも同じ可能性ではありません。ユーザーがメディアプレーヤーでメディアファイルを開こうとする可能性は非常に高いです。そして、数人のユーザーが信頼できないソースからメディアファイルをダウンロードするため、攻撃の範囲が非常に広くなります。

悪用可能性に関する限り、これには実際のテストが必要です。すべての脆弱性が悪用可能であるとは限りませんが、依然として修正する必要があります。

3
MechMK1

ここには2つの異なる質問があります。

  1. 脆弱性を引き起こすのはどれくらい簡単ですか?言い換えれば、プログラムに本来あるべきでないことをさせるのはどれほど簡単なのでしょうか。
  2. 脆弱性はどのくらい深刻ですか?つまり、トリガーできるとしたら、それで何ができるのでしょうか。

最初の質問に対する答えは、非常に簡単です。 VLCはビデオプレーヤーであり、ビデオファイルを使用して脆弱性をトリガーできます。誰かを説得してビデオを見させるのはどれほど難しいですか? 「ねえ、これらの子猫を見て!」そして、実際にはそれが難しい方法です。簡単な方法は、ビデオをWebページに埋め込むことです。数ドルで広告スペースを購入すると、ビデオがWebサイトで再生されます Stack Exchangeなど )。 VLCはブラウザープラグインとして使用できます(ただし、古いブラウザーでのみですが)、ブラウザーがVLCを介してビデオを再生するように構成されていて、VLCのバージョンが脆弱である場合は、何も再生しなくても影響を受けますビデオ。

脆弱性をトリガーするために必要なのはWebページをトリガーすることだけなので、悪用は非常に簡単です。この点に関するVLC開発者の反応は、理解が非常に不足していることを示しています。 (脆弱性がVLCにないことが判明したという事実など、他のトピックに対する彼らの反応はより理解可能です。)

2番目の質問は、脆弱性がトリガーされた場合にどれほど深刻になる可能性があるかです。私はコードを分析していませんが、それはバッファのオーバーリードなので、可能性は限られています。私が正しく理解していれば、これはビデオから読み取るコードであり、メモリ内のビデオの最後を超えてデータが読み取られる可能性があります。データはビデオファイルからのものであると想定されているため、何でもかまいません。ソフトウェアはコンテンツについて何も想定していないため、不正なデータを挿入することはできません。起こりうる2つの悪いことは、クラッシュと情報漏えいです。

マップされていないメモリアドレスに読み取りが到達すると、クラッシュが発生します。 (私はメモリ保護のあるオペレーティングシステムを想定しています。私の知る限り、VLCはそのようなオペレーティングシステムでのみ実行されます。)これは確定的な動作です:読み取りがマップされていないアドレスに到達すると、セグメンテーション違反のためにプログラムが停止するか、 Windowsと同等です。したがって、これは最大でサービス拒否の可能性があります。

ビデオの直後にメモリ内に機密データが存在し、攻撃者がこの機密データに関する情報を取得できる場合、攻撃者にとってより役立つでしょう。これは原理的には可能ですが、実際には非常に困難です。まず、そもそもそもそも機密データが必要ですが、通常はそうではありません。通常、VLCは機密データをロードしません。 VLCがプラグインとしてブラウザーなどのより大きなソフトウェアに埋め込まれ、同じプロセス(ブラウザーが何年も行っていないことがわかっている限り)で実行される場合、原則として機密データが存在する可能性があります。たとえば、VLCがビデオをWebページに表示している場合、攻撃者はJavaScriptを実行して画面のコンテンツを表示する可能性があります。しかし、繰り返しになりますが、VLCプロセスがそのようなデータにアクセスできない限り、機密データは表示されません。

結論として、この特定の脆弱性(ちなみにこれはVLCにはありませんが、VLCが使用する一部のライブラリにあります)は簡単に悪用されますが、悪用は悪いことをする可能性はあまりありません。