
ptrace
最新バージョンのUbuntuを使用して、同じOSユーザーで実行されている他のプロセスのメモリを確認したいと思います。しかし、すぐに偶然発見した。
許可されていない操作
クイックウェブ検索の後、次を見つけました。
Ubuntu 10.10以降では、ユーザーはデバッガの子プロセスではなくプロセスをptraceできません。この動作は、Yama経由で提供されている/proc/sys/kernel/yama/ptrace_scope sysctlを介して制御できます。
私はこの値を0に設定し、私が望むことができることを知っています。しかし、ptrace_scope
デフォルト設定がゼロのLinuxディストリビューションがあるかどうか疑問に思います。
答え1
はい、そうです。たとえば、Debian はptrace_scope=1
デフォルト値を単純に設定しました。もう一度切り替える。
ptrace
非サブプロセスを無効にすることによって提供される保護はかなり制限されています。小さいながらも無視できない費用で、実用的で狭い悪用を防ぎます。ユーザーとして実行されているプロセスで実行できる攻撃者は、ptrace
すでにそのユーザーとして任意のプロセスを実行し、そのユーザーのすべてのファイルにアクセスする可能性があります。したがって、これらの制限は、すでに実行中のプロセス(通常はユーザーがメモリに入力した秘密を持つptrace_scope
実行中のキーエージェントプロセス(ssh-agent
、、、、gpg-agent
...))の特権秘密情報のみを保護します。gnome-keyring-daemon
制限の対価は、アプリケーションが起動ptrace
するプロセスを制御するためにのみ使用できることです。これは実行中のgdb
プロセスまたは。fakeroot
reptyr
答え2
あればあってはいけません。ほとんどはすぐに切り替えられました。 https://www.youtube.com/watch?v=hAj2_-KWeoo
簡単に言えば、賢い人は外部プロセスにコードを注入するためにptraceを介してLinuxでcreate-remote-threadを実装することにしました。