Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966260AbbKFRv0 (ORCPT ); Fri, 6 Nov 2015 12:51:26 -0500 Received: from smtp102.biz.mail.bf1.yahoo.com ([98.139.221.61]:41581 "EHLO smtp102.biz.mail.bf1.yahoo.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966226AbbKFRvY (ORCPT ); Fri, 6 Nov 2015 12:51:24 -0500 X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: _0zd7LAVM1l1zQ0zAzwns.sLuiy8gdUfzMeWmNRoooFNm5w am03U9NVv0lL8xMlBg5hMn0h1M3khQ4W8lMKKw5DQjpghivmgAkbYwIY3IF2 py7bwOaKFGCUPkjwuf6qIR.CqY8yZ0CFzhWuvikcKdI_tlQPNH0JD5G9rXBq I_xvl0rXXOjI9C8ObyiesE1IKr9nSxEiokGqtIdKKc9bWo.dyagwlZsPyC7R PBoDjeU.uk4gz7d8eAkT.6YhZDaSJYcaG7WVDIZUY9nIgmOa4H7lGvcSIogv sMjtoRWJObxC2rQK8TgDo3iIe7D0kQ7ZGRYrWJVCD8cA2tfff6juHK_OISG. GhFBeXGInvyV.MUFtUU9KeJ8S1gX74MvlFI0ZJy746A_E4WMVDocgYw9PwVc xh3yldNaMjSz0IEFjJ5hGK6FKv.iaOqoXpetgU5V6jeU_Boowc4wDA8yYRtF e0SnoWI9S6SQWqpOdnx3ooZ.pAQKJ_lO30O64Pv3fQflUZSwzTC7Z3yy65p_ 2gqLDa8HGzFvBwlYnhd0LRN30UqSdBE5elw-- X-Yahoo-SMTP: OIJXglSswBDfgLtXluJ6wiAYv6_cnw-- Subject: Re: [KERNEL] Re: [KERNEL] Re: [KERNEL] Re: [KERNEL] Re: [KERNEL] Re: Kernel 4.3 breaks security in systems using capabilities To: "Theodore Ts'o" , Klaus Ethgen , "Serge E. Hallyn" , Andy Lutomirski , Linus Torvalds , Richard Weinberger , LKML , Christoph Lameter , Andy Lutomirski , Serge Hallyn , Kees Cook , Andrew Morton References: <20151102191616.GA2158@ikki.ethgen.ch> <20151105101953.GA15293@ikki.ethgen.ch> <20151105161512.GA2180@mail.hallyn.com> <20151105171701.GB9307@ikki.ethgen.ch> <20151105173438.GA3378@mail.hallyn.com> <20151105174823.GD9307@ikki.ethgen.ch> <20151105220843.GA6027@mail.hallyn.com> <20151106135835.GB11901@ikki.ethgen.ch> <20151106155303.GB6160@thunk.org> From: Casey Schaufler Message-ID: <563CE893.1060309@schaufler-ca.com> Date: Fri, 6 Nov 2015 09:51:15 -0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <20151106155303.GB6160@thunk.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3608 Lines: 73 On 11/6/2015 7:53 AM, Theodore Ts'o wrote: > On Fri, Nov 06, 2015 at 02:58:36PM +0100, Klaus Ethgen wrote: >> But that left out completely the, I think more important, usecase of >> _removing_ SUID completely and _replacing_ it with very tight capability >> setting. And that is what I always talked about. > I don't believe this is ever going to be possible. And I'm not > talking about it from a technical perspective, but from a practical > and cultural perspective. There have been rootless systems (e.g. Trusted Irix) in the past. They sold to a very restricted market and were never widely adopted. The inevitable first question from the admins was "How do I get *real* root?" I agree that culturally it's a hard sell. Once someone gets a taste for privilege it's tough to get them to give it up. It's a major problem even in embedded systems, where people are still doing development in a root shell. I was on the POSIX group that defined capabilities. I hate to say it, but the evidence is that we failed. We've had capabilities in the kernel for how long? If we haven't been able to make the transition away from root by now, maybe it's time to reexamine the way we planned to do it. As I said, we know it's possible. There are existence proofs. If the product isn't moving, maybe it is time to put something else on the shelf. > > The problem with removing SUID and inheritance completely is that you > have to anticipate all possible use cases where a system administrator > might want to use a root shell. This means analyzing all possible use > cases for all possible system administrators how they might need to > use a root shell to fix or management a system, and then either (a) > provide a new, specialized tool that solves that particular use case, > while respecting the rules of least privilege, or (b) figure out how > to expand that executable's fI mask, and worse, if that executable > fork and exec's helper programs, those helper programs will need to > have expanded fI masks. And that's if all of the commands that a > system administrator needs to run are compiled executables. Now > consider what happens when a system administrator needs to run python, > perl, or shell scripts with elevated privileges. > > You maybe can solve this in a very restricted environment; say, one > really dedicated user who can tweak his or her own's fI masks because > hopefully he or she can anticipate all possible use cases. But in the > general case? For a general purpose distribution? Good luck with that. > > Schemes like this could work if you are willing to essentially outlaw > all administrative shell/perl/python scripts. Otherwise, the fact > that /bin/sh, /bin/perl, and /bin/python essentially have an unlimited > fI mask means the whole system has a hole you can drive a truck hole, > in which case, what's the point of going through the whole effort? > > In the light of that, using things like ambient capabilities, or using > setuid binary that immediately drops all caps that it needs, is > probably the best we're going to get. > > Regards, > > - Ted > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/