web-dev-qa-db-ja.com

Android Nougatでのファイルシステムの変更

Android N開発者プレビューの最初のリリース以来、ルートディレクトリまたは他のシステムディレクトリを一覧表示しようとすると、「許可が拒否されました」エラーが発生します。これらのディレクトリのアクセス許可は変更(私が知る限り)。

質問:

Android Nがこれらの許可がエラーを拒否した原因は何ですか?


複製方法:

ADBシェルで、次のコマンドを実行します。

run-as com.debuggable.packagename
ls /

これにより、Android N.


システムディレクトリをリストする理由:

この動作は、Android Nで複数のファイルマネージャーで発生しました。ルートディレクトリまたは他のシステムファイルを一覧表示できなくなりました。これにより、psシェル:この変更により、これも library の動作が停止しましたAndroid N.

29
Jared Rummler

/ procへのアクセスを減らす2つのグループの変更がありました。

Procfsファイルシステムがhidepid = 2でマウントされるようになり、他のユーザーの/ proc/PIDディレクトリへのアクセスがなくなりました。この変更は、CopperheadOSに実装され、それに基づいてアップストリームで採用されました。例外を作成するためのグループがありますが、許可として公開されていません。基本システムの一部のプロセスの例外を作成するためにのみ使用されます。これは「危険な」許可として公開される可能性があり、Googleが最終的に行うことを期待していましたが、ユーザーはその影響を理解しないと判断しました。

https://Android-review.googlesource.com/#/c/181345/

SELinuxポリシーもさらに厳しくなりました。アプリの場合、/ proc/PIDディレクトリ以外のファイルにのみ適用されますが、/ procへのベースラインアクセスはもうありません。ラベルが一般的なprocポリシーに該当しないいくつかのファイルへのアクセスはまだありますが、ほとんどなくなっています。これは徐々に行われており、多くの関連するコミットがあります。大きなものの一つ:

https://Android-review.googlesource.com/#/c/105337/

これにより、多くの明白な情報が削除されるだけでなく、キーボード入力の記録などを許可するサイドチャンネルに関連するいくつかの露骨なセキュリティホールも閉じられます。

また、SELinuxポリシーは、一般的に時間の経過とともに大幅に厳しくなっています。残りは platform/system/sepolicy リポジトリで確認できます。長い間 platform/external/sepolicy にありましたが、最近移動したことに注意してください。

10
strcat

これは セキュリティとプライバシーの理由 で行われました。バグレポートから:

ルート(/)および/ sysファイルシステムの場合、ディレクトリのリストはできません。

Googleからの公式の回答:

説明している動作は意図したとおりに機能しています。 Androidは、アプリケーションを実行する必要のある厳密なサンドボックスを提供します。これらのサンドボックスは、プロセス状態などのアプリケーションメタデータを含む、他のアプリケーションからアプリケーションデータを保護します。

/ sysと/ procは、プロセスに関するサイドチャネル情報、プロセスに関する状態を推測するために使用できる情報を漏らすことでよく知られています。たとえば、/ procアクセスを使用してアプリの起動を監視し、フィッシング攻撃を有効にできることが長年にわたって文書化されています。

9
AesSedai101