Re: SELinuxDenyPtrace: Write, compile, run, but don't debug applications?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 10, 2012 at 11:27:12AM +0200, Michael Scherer wrote:
> Le mardi 10 avril 2012 à 02:57 +0100, Matthew Garrett a écrit :
> > Ok, so if anything that's already a likely target of attack is unable to 
> > initiate ptrace or start a process that can ptrace, what real extra 
> > security do we gain by disabling it by default?
> 
> AFAIK, firefox is not running in a confined domain, and that's a
> valuable target of attack. The same could be said of some others
> applications ( like acroread, etc ).

Ok, so maybe we should talk about what an ideal world looks like, and 
then we can figure out how to get there.

Aim: To prevent compromised applications using ptrace to obtain personal 
information from other applications, or to modify the behaviour of and 
so compromise other applications.

Option 1: Disable ptrace globally. Breaks developer tools like gdb and 
strace, and certain crash reporting applications that either directly 
attach to an application to generate a backtrace or attach gdb to a 
running application to generate a backtrace.

Option 2: Disable ptrace for everything except direct child processes. 
Allows the common case of running a task directly under a tool like gdb 
or strace, but forbids attaching one to an already running task. May 
break some of the same tools as option 1. Ubuntu defaults to this 
behaviour.

Option 3: Have gdb and strace run in a specialised domain that permits 
ptrace, while forbidding it in general. Difficult at present because an 
attacker can just write out an attack binary and relabel it 
appropriately, or alternatively launch gdb directly and use it to 
perform the injection into another process.

Option 4: Identify the set of most vulnerable applications, run them in 
confined domains and either forbid them access to ptrace or permit them 
only to ptrace children.

Option 2 seems mildly preferable to option 1, but not significantly so. 
Option 3 seems unrealistic. Option 4 seems like it would benefit 
everyone without breaking anything, but is more work than the others.

To a first approximation, simply auditing the distribution for anything 
that opens files or reads information from the network and forbidding 
them ptrace access (and denying ptrace access from any existing confined 
domains except, maybe, staff_t) seems like it would get us most of the 
way to option 4 without breaking existing user expectations. What am I 
missing that makes this infeasible?

-- 
Matthew Garrett | mjg59@xxxxxxxxxxxxx
-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux