web-dev-qa-db-ja.com

dirtyc0w a.k.a. "Dirty COW"バグの影響は何ですか?

Dirty COW について聞いたのですが、バグの範囲に関してまともな説明が見つかりませんでした。このエクスプロイトは書き込み不可能なファイルを上書きできるようです。これにより、ローカルルートはSUIDプログラムの置き換えによって可能になると思います。そうですか?ダーティCOWについて他に何を知っていますか?リモートで悪用することは可能ですか? Androidに影響はありますか?

69
d33tah

別の脆弱性がない限り、リモートで悪用することはできません。システム上ですでにコマンドを実行できる必要があります。

典型的な例はWebシェルです。サーバーが、Webシェルのアップロードやシステムコマンドの実行を可能にする脆弱性のあるWebアプリケーションを実行しているとしましょう。これらのコマンドは、通常、権限の低いユーザーとして実行され、www-dataなどと呼ばれることもあります。

このエクスプロイトを使用すると、ファイル/etc/passwdを上書きしてwww-dataにUID 0を与えることができます。これでwww-dataにroot権限が付与されました。

しかし、いくつか試してみましたが、/etc/passwdを変更してもシステムで機能しませんでした。ユーザーのUIDを0に設定できますが、その後、再ログインする必要があります。これは、Webシェルしか持っていない場合、実際にはオプションではありません。これまでに見た中で最も武器にされたエクスプロイトは、ユーザーのパスワードを変更するために使用され、SUIDビットが設定されたバイナリである/usr/bin/passwdを、/bin/bashを実行するシェルコードで上書きします。エクスプロイトのいくつかの制限は次のように思われます。既存のバイトのみを上書きでき、ファイルには何も追加できません。また、ファイルに正確に4KB以上を書き込むことができませんでした。

Androidへの影響については、 Android 4.4 git repo で問題の関数(follow_page_pte)を検索し、ヒットしなかったため、「いいえ」と言いたいのですが、引用しないでください。私について。

編集:Androidが影響を受けます- この概念実証 を参照してください。

55
Volker

ダーティカウの脆弱性は、Linuxカーネルバージョン2.6.22以降での権限昇格の脆弱性です。 2007年から存在し、2016年10月18日に修正されました。

dirtyc0wバグの考えられる影響は何ですか?

権限のないローカルユーザーがこの欠陥を利用して、読み取り専用のメモリマッピングへの書き込みアクセス権を取得し、システムでの権限を増加させる可能性があります。

この欠陥により、ローカルシステムアカウントを持つ攻撃者は、適切なアクセス許可セットなしで変更を防ぐ標準のアクセス許可メカニズムをバイパスして、ディスク上のバイナリを変更できます。

リモートで悪用することは可能ですか?

リモートから直接悪用することはできません。彼のコメントで動いている @ IMSoP のように、最初にシステムへのリモートアクセスを許可する別の欠陥が必要です

important バグと評価されています:

重要な影響

この評価は、リソースの機密性、整合性、または可用性を簡単に損なう可能性がある欠陥に与えられます。これらは、ローカルユーザーが特権を取得したり、認証されていないリモートユーザーが認証によって保護されるべきリソースを表示したり、認証されたリモートユーザーが任意のコードを実行したり、リモートユーザーがサービス拒否を引き起こしたりできるようにする脆弱性の種類です。

Androidに影響はありますか?

はい、AndroidはLinuxカーネルを使用しているためです。

影響を受けましたか?

2.6.22以降のLinuxカーネルを実行しているデバイスがある場合は、脆弱性が高い可能性があります。同じことは、Androidのすべてのバージョンに当てはまります。それらがSamsung、Google、Cyanogen、MIUI、または他のベンダーからのものであるかどうかに関係なく、セキュリティ更新をまだ発行していないためです。

この脆弱性を悪用するには、攻撃者は影響を受けるデバイスでコードを実行する必要があります。Androidの場合、USB経由でAndroid Debug Bridge(ADB)を介して、またはアプリをインストールすることで実行できます。エクスプロイトを利用します。

更新

セキュリティサーチャーが this ブログでリモートからこの欠陥を悪用する方法について説明しています

エクスプロイトは、シェルアクセスを提供するWebホスティングプロバイダーに対して使用できるため、1人の顧客が他の顧客やサービス管理者を攻撃する可能性もあります。権限昇格の悪用は、他の脆弱性を標的とする攻撃と組み合わせることができます。たとえば、WebサイトのSQLインジェクションの脆弱性により、攻撃者は悪意のあるコードを信頼できないユーザーとしてのみ実行できるようになります。ただし、エスカレーションエクスプロイトと組み合わせると、このような攻撃は非常に切望されたルートステータスを達成することができます。

役立つ情報が見つかります ここ

  1. システムが脆弱かどうかを判断する方法は?
  2. 影響を受けるLinuxディストリビューションのリストは何ですか?
  3. どうすれば修正できますか?
28
GAD3R

CVE-2016-5195は、いわゆる権限昇格のエクスプロイトです。これにより、通常のLinuxユーザーからrootに特権レベルを上げることができます。ただし、特権エスカレーションエクスプロイトは通常、ローカルエクスプロイトです(つまり、ボックス上でローカルに実行されます)。つまり、オペレーティングシステムに既にログオンしている必要があります。

私がチェックしていたパブリックエクスプロイトでは、rootが所有するファイルを書き込むことができます。これらのファイルは、読み取り専用であるか、root以外のユーザーにはまったくアクセスできません。これにより、管理ファイルを上書きできます。これを活用してrootになることができます。例えば。行を追加できます

 hack :: 0:0:,:/ home/kai:/ bin/bash 

/etc/passwd。これにより、パスワードなしのrootユーザーがボックスに追加されます。

12
kaidentity

少なくともそれはAndroid 5.0.1(カーネルバージョン3.10.54+)に影響します。私は このコード を使用してデバイスで試したところ Termux とrootが所有するファイルの編集は問題なく動作しますが、そのデバイスに使用できるrootがないため、私はそれが好きです。

一方、Android はSELinux を使用していて、SELinuxが/proc/self/memへの書き込みを妨げると思ったので、それは私を驚かせます。

実際、私はSDカード上のすべてのファイルを所有するsdcardというユーザーが所有するファイルへの書き込みを試しました。 Termux自体は(通常)SDカードへの書き込みを許可されていません。そのようなファイルでdirtyc0wを試すと、デバイスがハングし、数秒後に自動的に再起動します。このハング中、adb logcat何も出力しません。何が起こっているのかわかりません。

7
sigalor

怖いですか?

原則として、特権の昇格は、すべてのアクセス制御を無意味なものにするため、非常に恐ろしいものです。実際には、それはほとんど問題になりません。まず、ユーザーアクセスを制限する必要があります。

サーバーの場合、これは、ある程度悪用可能で、十分に維持されていないサーバーシステムは、簡単に根付くことができることを意味します。ただし、これが史上初の特権エスカレーションエクスプロイトであるとは限りません。
十分にメンテナンスされたシステムの場合、影響はゼロに近いはずです(これまでのところ悪用されていないはずであり、今までに更新する必要があります)。

Android 7.0より前のスマートフォンの場合、残念なことに、悪意のあるアプリがスマートフォンを乗っ取ることを可能にするエクスプロイトが存在することを意味します。これは非常に恐ろしい考えですが、これまでに発生した場合、または世界中でパニック、カオス、殺人が発生する可能性があります。自動更新によりこの問題はすぐに解消され、その間は新しいアプリをインストールしないでください(多くの場合、スマートフォンにすでに存在しているアプリです)明らかに数ヶ月しませんでしたお使いの携帯電話を乗っ取るので、おそらく無害です)...問題は解決しました。
(少なくとも次のシステムアップデートまで)携帯電話をジェイルブレイクする別の方法もあります。

それは明らかに、あなたのコンピューターとユーザーアカウントに物理的にアクセスできる誰かがあなたのシステムをルート化できることを意味します...しかし、彼らは同様にあなたのコンピューターをつかんで持ち去るか、ハードディスクを盗むか、基本的にはFirewire/Thunderboltを使用することができますケーブルを介した直接メモリアクセス、CDROMからの起動、または他の200のことなので、これは全体的に大きな問題ではないと思います。それは、誰かができること、まだもう一つのことです。

さらに重要なことには

これは(CVE-2008-0166以降の)2番目の長期にわたる注目度の高いインシデントなので、"何を気にしますか?"に代わってメンテナによって間違いなく重大なセキュリティ問題が作成されました。問題、これがもたらす最も大きな影響が工学プロセスに関する議論を再開することを願っています。

この脆弱性に関する最大の問題は、私の意見では、2005年に特定され修正された(発生する可能性が低い理論上の問題であった)が、一部のIBMメインフレームシリーズで問題が発生したために元に戻ったということです。 1990年代初頭にはほとんど聞いたことがありませんでした。率直に言って、すべてのLinuxユーザーの99%はこれ以上気にすることができず、s/390だけのシステム依存のパッチ/修正によって実現できたはずです。しかし、それは起こりませんでした、そして、問題は11年後まで忘却に消えました。

これは、Valgrindが警告を表示したという理由だけで、影響を理解せずに誰かがコード(正しく機能した)を編集した2008-0166の導入と非常に似ています。

たぶん、これは、コード変更の正確な影響が大多数のユーザーにとって何であるかを理解するメンテナーの重要性の認識を高めるのに役立ち、コード変更に関する全体的なより重要な評価(ピアレビューを含む)が進化する可能性があります。うまくいけば、それはです。

6
Damon

The Guardian は「はい」と言っているようですが、Androidのバリエーションに依存しているようです:

これはAndroidにも当てはまります。モバイルオペレーティングシステムが影響を受けます。トップエンドのAndroidデバイス(Galaxy S7やPixelなど)は定期的なセキュリティアップデートを受け取りますが、Androidデバイスのほとんどは、もしあれば受け取ります、販売後の更新。

Googleはコメントを拒否しましたが、Androidは影響を受けるLinuxディストリビューションの1つです。会社は警告するパートナーセキュリティアドバイザリを投稿しましたAndroidパートナー、それらのパートナーへのステップとパッチの発行。

3
katrix

このバグにより、攻撃者は任意のコードを実行して、「読み取り専用」のメモリに書き込むことができます。 Linuxは、よく使用されるファイルを読み取り専用メモリにキャッシュします。ご想像のとおり、これにより、setuidルートファイルの内容を変更して、シェルなどの任意のコードをルートとして実行することができます。

バグ自体は、攻撃者が作成した特定の実行可能ファイルを実行する必要があるため、リモートで悪用することはできません。通常、「リモートで悪用可能」という言葉を使用する場合、任意のコードを実行する機能は必要ありません。

ただし、攻撃者がsshアクセスほど明確ではない設計により任意のコードをすでに実行できる状況があります。攻撃者がコード実行権限を持っていることが常に明らかであるとは限らないため、これが混乱の原因となる場合があります。共有自動ビルド環境は、開発者が任意のコードを実行できることが多いため、このタイプのエクスプロイトに対して脆弱になる可能性があります。このシナリオの攻撃者は、ルート権限を取得する可能性があります。

このバグがAndroidで悪用される可能性がある場合、私は回答する資格がないと思います。 Android=で悪用可能な場合、スコープは、リモートの攻撃者が電話を制御するのではなく、電話の所有者がデバイスを「ルート化」できることに限定されます。

3
Steve Sether