[Openstack] security blueprint related to os binaries

2013-05-14 Thread Stanislav Pugachev
Hi,
I've added a blueprint
https://blueprints.launchpad.net/hacking/+spec/absolute-paths-of-os-binaries
Please, take a look and let's discuss it if it makes sense.
Thank you
Stas.
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] security blueprint related to os binaries

2013-05-14 Thread Victor Lowther
Err, sounds like a lot of work to make the code more fragile.  If you want
to be paranoid about launching the right command, do it by sanity-checking
$PATH, not by hardcoding the path of all the executables you call.


On Tue, May 14, 2013 at 5:56 AM, Stanislav Pugachev <
spugac...@griddynamics.com> wrote:

> Hi,
> I've added a blueprint
> https://blueprints.launchpad.net/hacking/+spec/absolute-paths-of-os-binaries
> Please, take a look and let's discuss it if it makes sense.
> Thank you
> Stas.
>
>
>
> ___
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp
>
>
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] security blueprint related to os binaries

2013-05-14 Thread Stanislav Pugachev
Why do you think code will become more fragile? It will be more defended.
How $PATH checking will help if someone will change the binary?
And it is not so much work to do here.


On Tue, May 14, 2013 at 3:36 PM, Victor Lowther wrote:

> Err, sounds like a lot of work to make the code more fragile.  If you want
> to be paranoid about launching the right command, do it by sanity-checking
> $PATH, not by hardcoding the path of all the executables you call.
>
>
> On Tue, May 14, 2013 at 5:56 AM, Stanislav Pugachev <
> spugac...@griddynamics.com> wrote:
>
>> Hi,
>> I've added a blueprint
>> https://blueprints.launchpad.net/hacking/+spec/absolute-paths-of-os-binaries
>> Please, take a look and let's discuss it if it makes sense.
>> Thank you
>> Stas.
>>
>>
>>
>> ___
>> Mailing list: https://launchpad.net/~openstack
>> Post to : openstack@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~openstack
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] security blueprint related to os binaries

2013-05-14 Thread Mac Innes, Kiall
On 14/05/13 12:02, Stanislav Pugachev wrote:
Hi,
I've added a blueprint 
https://blueprints.launchpad.net/hacking/+spec/absolute-paths-of-os-binaries
Please, take a look and let's discuss it if it makes sense.
Thank you
Stas.


Am I correct in thinking that, if the attacker is able to modify $PATH in the 
environment under which nova etc runs, you've already lost?

I would argue this is at worst a packaging bug, assuming packagers are not 
explicitly defining the $PATH variable as part of the init scripts.

P.S. the openstack-dev mailing list is generally where blueprint discussion 
happens :)

Thanks,
Kiall

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] security blueprint related to os binaries

2013-05-14 Thread Victor Lowther
I think it will become more fragile because (despite over a decade of
trying to standardize these things), not all the distros put their binaries
in the same places -- for example, I have seen brctl live in /sbin,
/usr/sbin, and /usr/bin. It is much easier to sanity-check (or allow for
customization of) $PATH in one place (hi there Oslo devs!) and rely on
having a sane path everywhere else than to hardcode all the exernal binary
calls and have to deal with the inevitable bugs that will arise from
utilities living in different directories in different distros.  Of
os.execvp and friends randomly decide to stop using PATH (and only PATH) to
find executables we are in much deeper trouble anyways.


On Tue, May 14, 2013 at 8:04 AM, Stanislav Pugachev <
spugac...@griddynamics.com> wrote:

> Why do you think code will become more fragile? It will be more defended.
> How $PATH checking will help if someone will change the binary?
> And it is not so much work to do here.
>
>
> On Tue, May 14, 2013 at 3:36 PM, Victor Lowther 
> wrote:
>
>> Err, sounds like a lot of work to make the code more fragile.  If you
>> want to be paranoid about launching the right command, do it by
>> sanity-checking $PATH, not by hardcoding the path of all the executables
>> you call.
>>
>>
>> On Tue, May 14, 2013 at 5:56 AM, Stanislav Pugachev <
>> spugac...@griddynamics.com> wrote:
>>
>>> Hi,
>>> I've added a blueprint
>>> https://blueprints.launchpad.net/hacking/+spec/absolute-paths-of-os-binaries
>>> Please, take a look and let's discuss it if it makes sense.
>>> Thank you
>>> Stas.
>>>
>>>
>>>
>>> ___
>>> Mailing list: https://launchpad.net/~openstack
>>> Post to : openstack@lists.launchpad.net
>>> Unsubscribe : https://launchpad.net/~openstack
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>>
>>
>
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] security blueprint related to os binaries

2013-05-14 Thread Vasiliy Khomenko
Attacker can put binary in /usr/local/bin for example. on ubuntu that path
located before /usr/bin.
We could create some templates with absolute paths to binaries for each
distro (deb-based, rhel-based) and auto-detect them.



On Tue, May 14, 2013 at 3:36 PM, Victor Lowther wrote:

> Err, sounds like a lot of work to make the code more fragile.  If you want
> to be paranoid about launching the right command, do it by sanity-checking
> $PATH, not by hardcoding the path of all the executables you call.
>
>
> On Tue, May 14, 2013 at 5:56 AM, Stanislav Pugachev <
> spugac...@griddynamics.com> wrote:
>
>> Hi,
>> I've added a blueprint
>> https://blueprints.launchpad.net/hacking/+spec/absolute-paths-of-os-binaries
>> Please, take a look and let's discuss it if it makes sense.
>> Thank you
>> Stas.
>>
>>
>>
>> ___
>> Mailing list: https://launchpad.net/~openstack
>> Post to : openstack@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~openstack
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
> ___
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp
>
>
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] security blueprint related to os binaries

2013-05-14 Thread Kevin L. Mitchell
On Tue, 2013-05-14 at 18:38 +0300, Vasiliy Khomenko wrote:
> Attacker can put binary in /usr/local/bin for example. on ubuntu that
> path located before /usr/bin.

If the attacker has write access to /usr/local/bin, it's already game
over; I don't see what we can do to nova that can mitigate something
that disastrous.

-- 
Kevin L. Mitchell 


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] security blueprint related to os binaries

2013-05-14 Thread Wyllys Ingersoll
Agree.  Hardcoding full pathnames is a bad practice in general.


On 5/14/13 11:50 AM, "Kevin L. Mitchell" 
wrote:

>On Tue, 2013-05-14 at 18:38 +0300, Vasiliy Khomenko wrote:
>> Attacker can put binary in /usr/local/bin for example. on ubuntu that
>> path located before /usr/bin.
>
>If the attacker has write access to /usr/local/bin, it's already game
>over; I don't see what we can do to nova that can mitigate something
>that disastrous.
>
>-- 
>Kevin L. Mitchell 
>
>
>___
>Mailing list: https://launchpad.net/~openstack
>Post to : openstack@lists.launchpad.net
>Unsubscribe : https://launchpad.net/~openstack
>More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] security blueprint related to os binaries

2013-05-14 Thread Stanislav Pugachev
from the security point of view its not so bad practice


On Tue, May 14, 2013 at 6:57 PM, Wyllys Ingersoll <
wyllys.ingers...@evault.com> wrote:

> Agree.  Hardcoding full pathnames is a bad practice in general.
>
>
> On 5/14/13 11:50 AM, "Kevin L. Mitchell" 
> wrote:
>
> >On Tue, 2013-05-14 at 18:38 +0300, Vasiliy Khomenko wrote:
> >> Attacker can put binary in /usr/local/bin for example. on ubuntu that
> >> path located before /usr/bin.
> >
> >If the attacker has write access to /usr/local/bin, it's already game
> >over; I don't see what we can do to nova that can mitigate something
> >that disastrous.
> >
> >--
> >Kevin L. Mitchell 
> >
> >
> >___
> >Mailing list: https://launchpad.net/~openstack
> >Post to : openstack@lists.launchpad.net
> >Unsubscribe : https://launchpad.net/~openstack
> >More help   : https://help.launchpad.net/ListHelp
>
>
> ___
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp
>
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] security blueprint related to os binaries

2013-05-14 Thread Wyllys Ingersoll

What attack does hardcoding a path to a specific executable protect against?

On the downside, It makes the code far less portable, harder to maintain, and 
less flexible in the face of alternative directory structures and system 
configurations.


From: Stanislav Pugachev 
mailto:spugac...@griddynamics.com>>
Date: Tuesday, May 14, 2013 12:20 PM
To: Wyllys Ingersoll 
mailto:wyllys.ingers...@evault.com>>
Cc: "Kevin L. Mitchell" 
mailto:kevin.mitch...@rackspace.com>>, 
"openstack@lists.launchpad.net<mailto:openstack@lists.launchpad.net>" 
mailto:openstack@lists.launchpad.net>>
Subject: Re: [Openstack] security blueprint related to os binaries

from the security point of view its not so bad practice


On Tue, May 14, 2013 at 6:57 PM, Wyllys Ingersoll 
mailto:wyllys.ingers...@evault.com>> wrote:
Agree.  Hardcoding full pathnames is a bad practice in general.


On 5/14/13 11:50 AM, "Kevin L. Mitchell" 
mailto:kevin.mitch...@rackspace.com>>
wrote:

>On Tue, 2013-05-14 at 18:38 +0300, Vasiliy Khomenko wrote:
>> Attacker can put binary in /usr/local/bin for example. on ubuntu that
>> path located before /usr/bin.
>
>If the attacker has write access to /usr/local/bin, it's already game
>over; I don't see what we can do to nova that can mitigate something
>that disastrous.
>
>--
>Kevin L. Mitchell 
>mailto:kevin.mitch...@rackspace.com>>
>
>
>___
>Mailing list: https://launchpad.net/~openstack
>Post to : 
>openstack@lists.launchpad.net<mailto:openstack@lists.launchpad.net>
>Unsubscribe : https://launchpad.net/~openstack
>More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~openstack
Post to : 
openstack@lists.launchpad.net<mailto:openstack@lists.launchpad.net>
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] security blueprint related to os binaries

2013-05-14 Thread Victor Lowther
If an attacker can put a binary in /usr/local/bin, they already have root
and we are doomed anyways.  If you are still worried about it, reorder PATH
so that /usr/local/whatever comes last instead of first.


On Tue, May 14, 2013 at 10:38 AM, Vasiliy Khomenko <
vkhome...@griddynamics.com> wrote:

> Attacker can put binary in /usr/local/bin for example. on ubuntu that path
> located before /usr/bin.
> We could create some templates with absolute paths to binaries for each
> distro (deb-based, rhel-based) and auto-detect them.
>
>
>
> On Tue, May 14, 2013 at 3:36 PM, Victor Lowther 
> wrote:
>
>> Err, sounds like a lot of work to make the code more fragile.  If you
>> want to be paranoid about launching the right command, do it by
>> sanity-checking $PATH, not by hardcoding the path of all the executables
>> you call.
>>
>>
>> On Tue, May 14, 2013 at 5:56 AM, Stanislav Pugachev <
>> spugac...@griddynamics.com> wrote:
>>
>>> Hi,
>>> I've added a blueprint
>>> https://blueprints.launchpad.net/hacking/+spec/absolute-paths-of-os-binaries
>>> Please, take a look and let's discuss it if it makes sense.
>>> Thank you
>>> Stas.
>>>
>>>
>>>
>>> ___
>>> Mailing list: https://launchpad.net/~openstack
>>> Post to : openstack@lists.launchpad.net
>>> Unsubscribe : https://launchpad.net/~openstack
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>>
>>
>> ___
>> Mailing list: https://launchpad.net/~openstack
>> Post to : openstack@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~openstack
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] security blueprint related to os binaries

2013-05-14 Thread Victor Lowther
On Tue, May 14, 2013 at 9:25 AM, Mac Innes, Kiall  wrote:

> On 14/05/13 12:02, Stanislav Pugachev wrote:
> Hi,
> I've added a blueprint
> https://blueprints.launchpad.net/hacking/+spec/absolute-paths-of-os-binaries
> Please, take a look and let's discuss it if it makes sense.
> Thank you
> Stas.
>
>
> Am I correct in thinking that, if the attacker is able to modify $PATH in
> the environment under which nova etc runs, you've already lost?
>

Yep.


> I would argue this is at worst a packaging bug, assuming packagers are not
> explicitly defining the $PATH variable as part of the init scripts.
>

That and the PATH that any user with the rights to run nova services and
commands -- the general best practice is to make sure that all the entries
in $PATH are absolute paths, and that nothing in $PATH is world-writable.


> P.S. the openstack-dev mailing list is generally where blueprint
> discussion happens :)
>
> Thanks,
> Kiall
>
> ___
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp
>
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] security blueprint related to os binaries

2013-05-14 Thread Thierry Carrez
Kevin L. Mitchell wrote:
> On Tue, 2013-05-14 at 18:38 +0300, Vasiliy Khomenko wrote:
>> Attacker can put binary in /usr/local/bin for example. on ubuntu that
>> path located before /usr/bin.
> 
> If the attacker has write access to /usr/local/bin, it's already game
> over; I don't see what we can do to nova that can mitigate something
> that disastrous.

Yes, this proposal is pretty useless.

We rely on $PATH to execute code as the $service user -- someone that
can modify $PATH or inject binaries in it already has enough rights to
act as $service.

For rootwrap calls we rely on a root-configured specific path, and still
have the option to specify the complete path. To interfere with that you
actually need to be root already.

So this makes the code more brittle (each distro would have to patch the
code to apply their specific paths), for no security gain.

-- 
Thierry Carrez (ttx)
Release Manager, OpenStack

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp