All of lore.kernel.org
 help / color / mirror / Atom feed
From: daw@cs.berkeley.edu (David Wagner)
To: linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/3] Security: Implement disablenetwork semantics. (v4)
Date: Mon, 11 Jan 2010 01:41:27 +0000 (UTC)	[thread overview]
Message-ID: <hidvk7$7cg$3@taverner.cs.berkeley.edu> (raw)
In-Reply-To: f73f7ab81001101418x3b3f8652j256f6311ad6244c5@mail.gmail.com

Kyle Moffett  wrote:
>No, there is a *MUCH* bigger security issue here.  There are existing
>PAM modules which lazily fork background processes to handle
>authentication, authorization, logging, etc.  Now assume that one of
>those PAM modules is hooked from /etc/pam.d/su.
>
>(1) Mallory runs "disablenetwork su -"
>(2) The PAM module lazily starts its background daemon with a
>10-minute idle timeout.
>(3) The daemon has network disabled, and so it is completely nonfunctional.
>(4) The daemon automatically denies all logins because it cannot
>communicate with the login server
>(5) Alice tries to run "su -" from her regular terminal.
>(6) Alice's "su" process communicates with the running daemon and
>fails because "the network is down".
>
>All of that software is perfectly reasonably designed... the daemon is
>even fail-secure in the event that the network really is inaccessible.
> Unfortunately it lets Mallory easily DoS every superuser login on the
>system without generating a single audit log.  The only process that
>knows what he did is the one that cannot communicate with the remote
>audit daemon.

It's just a DOS.  There are a gazillion and one ways to DOS a typical
Linux system, especially if the attacker has an account on the system.

One alternative way: Mallory can mount such a DOS simply by flooding
the network.  That's not rocket science.

Another alternative way that might work (I don't know): What happens if
Mallory uses rlimit (RLIMIT_NOFILE) to set the maximum number of open
file descriptors very low, then runs "su -"?  Do we get the same DOS
outcome you listed above?  I'd guess yes, unless because these resource
limits are inherited across fork and exec.

I think stopping DOS is just really hard.  I'm not convinced this
is increasing the power of real-life attackers to any significant
extent.

>Now, you can try to claim "Nobody has it configured like that" or
>"None of the standard Linux PAM modules do that"... but that does not
>resolve the problem.  A sysadmin and part-time programmer (not knowing
>about a little-documented "disablenetwork" feature) could very easily
>write software like that and assume that it is secure.

I don't know.  I'm not really persuaded by your invocation of a
hypothetical sysadmin who writes their own setuid programs.  Writing
setuid programs (or programs invoked by setuid programs) securely is
really hard.  In all honesty, if your average "sysadmin and part-time
programmer" tries to roll their own setuid program for this kind of
thing, there's a fair chance that it will have a security hole --
and that's probably true whether or not you enable disablenetwork.
Introducing disablenetwork may increase the chances of insecurity in
setuid programs written by non-experts somewhat, but I bet it's only a
small increment compared to the overall risk.

>The #1 rule for setuid binaries is that you DO NOT INHERIT ANYTHING.
>Any kernel feature or setuid program which violates that rule is just
>going to cause big security holes.  Security models must be either
>obviously correct or mathematically provable (or both)... and this is
>neither.

Yeah, but we can also argue the other way from first principles too: If
you're writing a setuid program that *assumes* the network is reliable,
and fails insecurely if a packet doesn't get through, then you're
probably doing something wrong.  Networks are fundamentally unreliable.
Security-critical software shouldn't be written in a way that fails
unsafely if the network is unavailable.

  parent reply	other threads:[~2010-01-11  1:41 UTC|newest]

Thread overview: 278+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-27  1:04 RFC: disablenetwork facility. (v4) Michael Stone
2009-12-27  1:04 ` Michael Stone
2009-12-27  1:06 ` [PATCH 1/3] Security: Add disablenetwork interface. (v4) Michael Stone
2009-12-27  1:06   ` Michael Stone
2009-12-27  3:26   ` Serge E. Hallyn
2009-12-28 18:13     ` Serge E. Hallyn
2009-12-29  1:21       ` Michael Stone
2009-12-29  5:26         ` Serge E. Hallyn
2009-12-27  7:53   ` Pavel Machek
2009-12-29  1:25     ` Michael Stone
2009-12-29  1:25       ` Michael Stone
2009-12-30 10:09       ` Pavel Machek
2009-12-30 18:47   ` Serge E. Hallyn
2009-12-27  1:06 ` [PATCH 2/3] Security: Implement disablenetwork semantics. (v4) Michael Stone
2009-12-27  1:06   ` Michael Stone
2009-12-27  1:20   ` Tetsuo Handa
2009-12-30 18:50   ` Serge E. Hallyn
2010-01-01 14:31     ` Pavel Machek
2010-01-10 21:11       ` James Morris
2010-01-10 21:16         ` Pavel Machek
2010-01-10 21:44           ` James Morris
2010-01-10 21:54         ` Michael Stone
2010-01-10 21:54           ` Michael Stone
2010-01-10 21:58           ` Pavel Machek
2010-01-10 21:58             ` Pavel Machek
2010-01-10 22:40             ` Michael Stone
2010-01-10 22:40               ` Michael Stone
2010-01-11  1:07               ` Tetsuo Handa
2010-01-11  1:45                 ` Michael Stone
2010-01-11  1:45                   ` Michael Stone
2010-01-11 17:49                   ` Serge E. Hallyn
2010-01-11 17:49                     ` Serge E. Hallyn
2010-01-12  6:10                     ` Michael Stone
2010-01-12  6:10                       ` Michael Stone
2010-01-12 15:52                       ` Serge E. Hallyn
2010-01-12 15:52                         ` Serge E. Hallyn
2010-01-14  9:23                         ` Pavel Machek
2010-01-14  9:23                           ` Pavel Machek
2010-01-14 15:00                           ` Serge E. Hallyn
2010-01-14 15:00                             ` Serge E. Hallyn
2010-01-14 16:36                             ` Michael Stone
2010-01-14 16:36                               ` Michael Stone
2010-01-14 16:47                               ` Serge E. Hallyn
2010-01-14 16:47                                 ` Serge E. Hallyn
     [not found]                                 ` <20100114171309.GA6372@heat>
2010-01-14 17:36                                   ` Serge E. Hallyn
2010-01-14 17:36                                     ` Serge E. Hallyn
2010-01-15  8:10                                     ` disablenetwork (v5) patches Michael Stone
2010-01-15  8:10                                       ` Michael Stone
2010-01-15  8:12                                       ` disablenetwork (v5): Remove a TOCTTOU race by passing flags by value Michael Stone
2010-01-15  8:12                                         ` Michael Stone
2010-01-15  8:12                                       ` disablenetwork (v5): Simplify the disablenetwork sendmsg hook Michael Stone
2010-01-15  8:12                                         ` Michael Stone
2010-01-15  8:13                                       ` disablenetwork (v5): Require CAP_SETPCAP to enable disablenetwork Michael Stone
2010-01-15  8:13                                         ` Michael Stone
2010-01-17  2:58                                         ` Andrew G. Morgan
2010-01-17  2:58                                           ` Andrew G. Morgan
     [not found]                                           ` <20100117044825.GA2712@heat>
2010-01-17  4:58                                             ` disablenetwork (v5): Require CAP_SETPCAP to enable Andrew G. Morgan
2010-01-17  4:58                                               ` Andrew G. Morgan
2010-01-18 19:30                                               ` Serge E. Hallyn
2010-01-18 19:30                                                 ` Serge E. Hallyn
2010-01-15  8:13                                       ` disablenetwork (v5): Update documentation for PR_NETWORK_ENABLE_DN Michael Stone
2010-01-15  8:13                                         ` Michael Stone
2010-01-17  6:01                                       ` disablenetwork (v5) patches Kyle Moffett
2010-01-17  6:01                                         ` Kyle Moffett
2010-01-17  6:01                                         ` Kyle Moffett
     [not found]                                         ` <20100117180728.GA2848@heat>
2010-01-17 21:17                                           ` Kyle Moffett
2010-01-17 21:17                                             ` Kyle Moffett
2010-01-12 18:30                     ` [PATCH 2/3] Security: Implement disablenetwork semantics. (v4) David Wagner
2010-01-13 20:23                       ` Pavel Machek
2010-01-11  1:46                 ` Casey Schaufler
2010-01-12  3:19                   ` Valdis.Kletnieks
2010-01-12  4:01                     ` Casey Schaufler
2010-01-11 12:01               ` Pavel Machek
2010-01-11  1:29             ` David Wagner
2010-01-11 13:39               ` Simon Horman
2010-01-12  2:54             ` Valdis.Kletnieks
2010-01-12  7:59               ` Pavel Machek
2010-01-12 14:28                 ` Valdis.Kletnieks
2010-01-14  9:22                   ` Pavel Machek
2010-01-14 14:30                     ` David Wagner
2010-01-18 12:54                     ` Valdis.Kletnieks
2010-01-18 15:56                       ` Andrew G. Morgan
2010-01-18 15:56                         ` Andrew G. Morgan
2010-01-10 22:18           ` Kyle Moffett
2010-01-10 22:18             ` Kyle Moffett
2010-01-10 23:08             ` Michael Stone
2010-01-10 23:08               ` Michael Stone
2010-01-10 23:41               ` Bryan Donlan
2010-01-10 23:41                 ` Bryan Donlan
2010-01-11  1:50                 ` Casey Schaufler
2010-01-11  1:50                   ` Casey Schaufler
2010-01-11  2:15                   ` Bryan Donlan
2010-01-11  2:15                     ` Bryan Donlan
2010-01-11 11:53                     ` Pavel Machek
2010-01-11 11:53                       ` Pavel Machek
2010-01-11  1:41             ` David Wagner [this message]
2010-01-10 22:58           ` James Morris
2010-01-11  1:21           ` David Wagner
2009-12-27  1:07 ` [PATCH 3/3] Security: Document disablenetwork. (v4) Michael Stone
2009-12-27  1:07   ` Michael Stone
2009-12-27  1:39   ` Tetsuo Handa
2009-12-27 16:25     ` Michael Stone
2009-12-27  8:36 ` RFC: disablenetwork facility. (v4) Tetsuo Handa
2009-12-27  8:38   ` Pavel Machek
2009-12-27 11:49     ` Tetsuo Handa
2009-12-27 12:18       ` Al Viro
2009-12-27 15:03       ` Serge E. Hallyn
2009-12-27 15:47         ` Michael Stone
2009-12-27 16:12           ` Serge E. Hallyn
2009-12-27 16:36             ` Michael Stone
2009-12-27 18:06               ` Pavel Machek
2009-12-27 19:08         ` Pavel Machek
2009-12-28  6:07           ` Michael Stone
2009-12-28  6:07             ` Michael Stone
2009-12-28 10:10             ` Pavel Machek
2009-12-28 14:37               ` Valdis.Kletnieks
2009-12-28 20:55                 ` Pavel Machek
2009-12-28 21:28                   ` Valdis.Kletnieks
2009-12-28 21:33                   ` Bryan Donlan
2009-12-28 21:33                     ` Bryan Donlan
2009-12-29  6:08                     ` Serge E. Hallyn
2010-01-01 15:06                     ` Pavel Machek
2009-12-28 16:31               ` Michael Stone
2009-12-28 16:31                 ` Michael Stone
2009-12-28 21:08                 ` Pavel Machek
2009-12-28 21:24                 ` Valdis.Kletnieks
2009-12-28 22:10                   ` David Wagner
2009-12-28 23:54                     ` Valdis.Kletnieks
2009-12-29  0:42                       ` David Wagner
2009-12-29  1:39                         ` Valdis.Kletnieks
2010-01-01 15:55                     ` Pavel Machek
2009-12-28 18:13           ` Serge E. Hallyn
2009-12-29  5:01             ` Michael Stone
2009-12-29  5:01               ` Michael Stone
2009-12-29  5:56               ` Serge E. Hallyn
2009-12-29 16:31                 ` Michael Stone
2009-12-29 16:31                   ` Michael Stone
2009-12-29 11:06               ` Eric W. Biederman
2009-12-29 15:11                 ` Serge E. Hallyn
2009-12-29 16:05                   ` Bryan Donlan
2009-12-29 16:39                     ` Serge E. Hallyn
2009-12-29 16:39                       ` Serge E. Hallyn
2009-12-29 17:01                       ` Bryan Donlan
2009-12-29 17:01                         ` Bryan Donlan
2009-12-29 18:36                         ` Eric W. Biederman
2009-12-29 18:36                           ` Eric W. Biederman
2009-12-29 19:08                           ` Bryan Donlan
2009-12-29 20:56                             ` Eric W. Biederman
2009-12-29 21:27                             ` Serge E. Hallyn
2009-12-29 21:27                               ` Serge E. Hallyn
2009-12-29 21:46                               ` Valdis.Kletnieks
2009-12-29 22:16                                 ` Serge E. Hallyn
2009-12-29 20:10                     ` Benny Amorsen
2009-12-29 20:10                       ` Benny Amorsen
2009-12-29 20:40                       ` Eric W. Biederman
2009-12-29 20:40                         ` Eric W. Biederman
2009-12-29 20:43                         ` Bryan Donlan
2009-12-29 20:43                           ` Bryan Donlan
2009-12-29 21:11                         ` Alan Cox
2009-12-29 21:11                           ` Alan Cox
2009-12-29 21:14                           ` Bryan Donlan
2009-12-29 21:14                             ` Bryan Donlan
2009-12-29 21:35                             ` Alan Cox
2009-12-29 21:35                               ` Alan Cox
2009-12-29 21:29                           ` Eric W. Biederman
2009-12-29 21:29                             ` Eric W. Biederman
2009-12-29 22:36                             ` Serge E. Hallyn
2009-12-29 22:36                               ` Serge E. Hallyn
2009-12-30  3:26                               ` Eric W. Biederman
2009-12-30  3:26                                 ` Eric W. Biederman
2009-12-30  3:50                                 ` Serge E. Hallyn
2009-12-30  3:50                                   ` Serge E. Hallyn
2009-12-30  4:29                                   ` Eric W. Biederman
2009-12-30  4:29                                     ` Eric W. Biederman
2009-12-30 18:00                                     ` Serge E. Hallyn
2009-12-30 18:00                                       ` Serge E. Hallyn
2009-12-30 21:12                                       ` Eric W. Biederman
2009-12-30 21:12                                         ` Eric W. Biederman
2009-12-30  3:35                               ` [RFC][PATCH] Unprivileged: Disable acquisition of privileges Eric W. Biederman
2009-12-30  3:35                                 ` Eric W. Biederman
2009-12-30  3:54                                 ` Bryan Donlan
2009-12-30  3:54                                   ` Bryan Donlan
2009-12-30  4:33                                   ` Eric W. Biederman
2009-12-30  4:33                                     ` Eric W. Biederman
2009-12-30  4:57                                     ` Bryan Donlan
2009-12-30  4:57                                       ` Bryan Donlan
2009-12-30 12:47                                       ` Eric W. Biederman
2009-12-30 12:47                                         ` Eric W. Biederman
2009-12-30 12:49                                       ` [RFC][PATCH v2] Unprivileged: Disable raising " Eric W. Biederman
2009-12-30 12:49                                         ` Eric W. Biederman
2009-12-30 14:52                                         ` Andrew G. Morgan
2009-12-30 14:52                                           ` Andrew G. Morgan
2009-12-30 18:35                                           ` Serge E. Hallyn
2009-12-30 18:35                                             ` Serge E. Hallyn
2009-12-30 20:07                                             ` Eric W. Biederman
2009-12-30 20:07                                               ` Eric W. Biederman
2009-12-30 20:17                                               ` Serge E. Hallyn
2009-12-30 20:17                                                 ` Serge E. Hallyn
2009-12-30 21:15                                                 ` [RFC][PATCH v3] " Eric W. Biederman
2009-12-30 21:15                                                   ` Eric W. Biederman
2009-12-30 21:29                                                   ` Alan Cox
2009-12-30 21:29                                                     ` Alan Cox
2009-12-30 21:36                                                     ` Eric W. Biederman
2009-12-30 21:36                                                       ` Eric W. Biederman
2009-12-30 23:00                                                       ` Alan Cox
2009-12-30 23:00                                                         ` Alan Cox
2009-12-31  2:44                                                         ` Bryan Donlan
2009-12-31  2:44                                                           ` Bryan Donlan
2009-12-31 17:33                                                           ` Alan Cox
2009-12-31 17:33                                                             ` Alan Cox
2009-12-31 17:52                                                             ` David Wagner
2009-12-31 17:52                                                             ` Serge E. Hallyn
2009-12-31 17:52                                                               ` Serge E. Hallyn
2009-12-31 18:20                                                               ` Andrew G. Morgan
2009-12-31 18:20                                                                 ` Andrew G. Morgan
2009-12-31 18:32                                                                 ` Eric W. Biederman
2009-12-31 18:32                                                                   ` Eric W. Biederman
2010-01-01 14:43                                                                   ` Alan Cox
2010-01-01 14:43                                                                     ` Alan Cox
2010-01-01 14:53                                                                     ` Pavel Machek
2010-01-01 14:53                                                                       ` Pavel Machek
2010-01-01 16:26                                                                     ` Eric W. Biederman
2010-01-01 16:26                                                                       ` Eric W. Biederman
2010-01-01 21:35                                                                       ` Casey Schaufler
2010-01-01 21:35                                                                         ` Casey Schaufler
2010-01-01 22:39                                                                         ` Alan Cox
2010-01-01 22:39                                                                           ` Alan Cox
2010-01-01 23:18                                                                           ` Casey Schaufler
2010-01-01 23:18                                                                             ` Casey Schaufler
2010-01-02  0:42                                                                           ` Peter Dolding
2010-01-02  0:42                                                                             ` Peter Dolding
     [not found]                                                                             ` <4B3FB0FC.3030809@schaufler-ca.com>
2010-01-03  1:43                                                                               ` Peter Dolding
2010-01-03  1:43                                                                                 ` Peter Dolding
2009-12-31 18:41                                                                 ` Eric W. Biederman
2009-12-31 18:41                                                                   ` Eric W. Biederman
2009-12-31 21:46                                                                   ` Serge E. Hallyn
2009-12-31 21:46                                                                     ` Serge E. Hallyn
2010-01-01 21:17                                                                   ` Andrew G. Morgan
2010-01-01 21:17                                                                     ` Andrew G. Morgan
2010-01-01 14:57                                                               ` Alan Cox
2010-01-01 14:57                                                                 ` Alan Cox
2009-12-31  8:57                                                         ` Eric W. Biederman
2009-12-31  8:57                                                           ` Eric W. Biederman
2009-12-31 13:00                                                         ` Samir Bellabes
2009-12-31 13:00                                                           ` Samir Bellabes
2009-12-31 14:08                                                           ` Peter Dolding
2009-12-31 14:08                                                             ` Peter Dolding
2009-12-31 17:06                                                             ` Alan Cox
2009-12-31 17:06                                                               ` Alan Cox
2009-12-31 17:55                                                               ` David Wagner
2010-01-01 14:46                                                                 ` Alan Cox
2010-01-02  6:23                                                                   ` David Wagner
2010-01-02 13:55                                                                     ` Alan Cox
2010-01-04  0:55                                                                       ` David Wagner
2010-01-01  0:12                                                               ` Peter Dolding
2010-01-01  0:12                                                                 ` Peter Dolding
2010-01-01 10:28                                                     ` Pavel Machek
2010-01-01 10:28                                                       ` Pavel Machek
2009-12-31 15:25                                                   ` Serge E. Hallyn
2009-12-31 15:25                                                     ` Serge E. Hallyn
2009-12-31 16:48                                                     ` Eric W. Biederman
2009-12-31 16:48                                                       ` Eric W. Biederman
2009-12-30 18:29                                         ` [RFC][PATCH v2] " Serge E. Hallyn
2009-12-30 18:29                                           ` Serge E. Hallyn
2009-12-30 20:45                                           ` Eric W. Biederman
2009-12-30 20:45                                             ` Eric W. Biederman
2009-12-29 18:03                   ` RFC: disablenetwork facility. (v4) Eric W. Biederman
2009-12-29 16:06                 ` Michael Stone
2009-12-29 16:06                   ` Michael Stone
2009-12-30  7:24                 ` David Wagner
2009-12-30 16:26                   ` Valdis.Kletnieks
2010-01-01 11:41                   ` Eric W. Biederman
2010-01-02  6:28                     ` David Wagner
2010-01-01 15:11               ` Pavel Machek
2009-12-27  8:51   ` Al Viro
2009-12-27 11:23   ` Valdis.Kletnieks
2009-12-27 12:45   ` Andi Kleen
2009-12-27 15:55   ` Michael Stone

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='hidvk7$7cg$3@taverner.cs.berkeley.edu' \
    --to=daw@cs.berkeley.edu \
    --cc=daw-news@taverner.cs.berkeley.edu \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.