[openstack-dev] [fuel][plugins]Security problem in Fuel 7.0

Eugene Korekin ekorekin at mirantis.com
Tue Dec 8 11:10:20 UTC 2015


Vladimir,

I want to emphasize that my main concern is not with arbitrary code 
execution on master node. I have no problem with that if there is only 
one OpenStack environment.

What I am concerned about is this:

1) In general case user installs plugin for the one environment only.
2) But in our current state of things it's quite possible that there 
would be some side effects affecting other environments, not only the 
one for which we want to enable the aforementioned plugin.
3) I perfectly understand that current Fuel architecture does not allow 
for some strict separation of access to various environments if the user 
has access to Fuel master node. I think this is the root of the issue.


On 07.12.2015 23:43, Vladimir Kuklin wrote:
> Alexey, Eugene
>
> I understand your concerns, but it is what the plugin is about - we 
> allow to run tasks on the master node for the sake of deployment 
> flexibility. If you are concerned about security complications you 
> should either use certified plugins or even test them by yourselves in 
> a sandbox. Simple downloading of a 3rd party file from the internet 
> imposes the same restrictions. We could obviously introduce more 
> features for security audit of the plugins, but  I would not set 
> priority of this particular issue as high as it is actually what can 
> be confined by the user himself by applying precautious actions. So, 
> it seems, that benefits of introducing additional measures of security 
> hardening of plugins may be outweighed by their drawbacks.
>
> On Mon, Dec 7, 2015 at 10:47 PM, Andrew Woodward <xarses at gmail.com 
> <mailto:xarses at gmail.com>> wrote:
>
>     Guys, we can not create any limitations on plugins ability to do
>     things that we allow with the 'core' system. We need to be lees
>     strict and more flexible with the plugin framework not constrict
>     it randomly because there is a way to execute dangerous code. We
>     are in the business of buiding, deploying, maintaining and erasing
>     nodes. Everything we do,  want to do, and want other to do is
>     'dangerous' we need to limit a users risk with verification of
>     plugins not creating rules that limit functions plugins have
>     access to.
>
>     On Mon, Dec 7, 2015 at 11:36 AM Oleg Gelbukh
>     <ogelbukh at mirantis.com <mailto:ogelbukh at mirantis.com>> wrote:
>
>         +1 to Eugene here. Eventually we will need to more strictly
>         define Plugins framework and SDK and limit possible actions to
>         the set of supported ones. This is required not only for
>         security and/or stability reasons, but for upgrade purposes as
>         well.
>
>         On the other hand, we need to retain certain flexibility of
>         deployment. That could be achieved by turning the 'core'
>         components into pluggable options, and reducing the 'core'  to
>         the set of replaceable plugins shipped with the reference
>         architecture. This will eliminate the need for many of the
>         hack used nowadays in plugins to override default behaviours.
>
>         --
>         Best regards,
>         Oleg Gelbukh
>
>         On Mon, Dec 7, 2015 at 9:29 PM, Eugene Korekin
>         <ekorekin at mirantis.com <mailto:ekorekin at mirantis.com>> wrote:
>
>             Stas,
>
>             I fear that often even developer of a code cannot verify
>             his own code completely, let alone some third-party
>             validation teams. Does the ability to strictly limit
>             plugin actions by the list of intended environments looks
>             nonviable to you?
>
>
>
>             On 07.12.2015 20:38, Stanislaw Bogatkin wrote:
>>             +1 to Andrew. Plugins created for run some code and
>>             plugin verification is the source of trust there.
>>
>>             On Mon, Dec 7, 2015 at 8:19 PM, Andrew Woodward
>>             <xarses at gmail.com <mailto:xarses at gmail.com>> wrote:
>>
>>                 I'd have to say that this is expected behavior. I'm
>>                 not sure what you would hope to prohibit when these
>>                 kinds of things are necessary for the deployment. We
>>                 also can't prohibit this from being done in a plugin,
>>                 this is what the plugin verification is supposed to
>>                 help combat. If you just go download a random puppet
>>                 manifest // script // etc... from the internet, how
>>                 do you ensure that it didn't install a root-kit.
>>
>>                 On Mon, Dec 7, 2015 at 9:14 AM Eugene Korekin
>>                 <ekorekin at mirantis.com
>>                 <mailto:ekorekin at mirantis.com>> wrote:
>>
>>                     As far as I know this feature is planned for the
>>                     next releases.
>>
>>                     But I think the main problem is: it's not obvious
>>                     that just by installing a plugin, even without
>>                     enabling the plugin in Fuel user could break or
>>                     somehow alter already existing environments.  It
>>                     could be done by malicious attacker who could
>>                     compromise plugin or just unintentionally with
>>                     some bug in the plugin code.
>>
>>                     Unfortunately, by installing some plugin a user
>>                     jeopardizes his existing environments. And I
>>                     think we should at least document these risks.
>>
>>
>>                     On 07.12.2015 19:52, Javeria Khan wrote:
>>>
>>>                     My two cents. It would be useful to have a role
>>>                     that could execute on the Fuel Master host
>>>                     itself rather than a container.
>>>
>>>                     --
>>>                     Javeria
>>>
>>>                     On Dec 7, 2015 9:49 PM, "Roman Prykhodchenko"
>>>                     <me at romcheg.me <mailto:me at romcheg.me>> wrote:
>>>
>>>                         Alexey,
>>>
>>>                         thank you for bringing this up. IMO
>>>                         discussing security problems is better to be
>>>                         done in a special kind of Launchpad bugs.
>>>
>>>                         - romcheg
>>>
>>>
>>>                         > 7 груд. 2015 р. о 17:36 Alexey Elagin
>>>                         <aelagin at mirantis.com
>>>                         <mailto:aelagin at mirantis.com>> написав(ла):
>>>                         >
>>>                         > Hello all,
>>>                         >
>>>                         > We have a security problem in Fuel 7.0.
>>>                         It's related to plugin
>>>                         > development and allows to execute code in
>>>                         mcollective docker container
>>>                         > on Fuel master node. Any fuel plugin may
>>>                         contains a yaml file with
>>>                         > deployment tasks (tasks.yaml,
>>>                         deployment_tasks.yaml etc) and there is
>>>                         > an ability to run some code on node with
>>>                         role "master". It's also
>>>                         > possible to connect to any target node via
>>>                         ssh without a password from
>>>                         > within the container.
>>>                         >
>>>                         > As i understood, it was made to simplify
>>>                         some deployment cases. I see
>>>                         > some steps for resolving this situation:
>>>                         > 1. Fuel team should disallow
>>>                         > execution of any puppet manifests or bash
>>>                         code on nodes with master
>>>                         > role.
>>>                         > 2. Append the Fuel documentation. Notify
>>>                         users about this
>>>                         > security issue.
>>>                         >
>>>                         > What do you think about it? What
>>>                         deployment cases which require
>>>                         > execution of code on role "master" do you
>>>                         know?
>>>                         >
>>>                         > --
>>>                         > Best regards,
>>>                         > Alexey
>>>                         > Deployment Engineer
>>>                         > Mirantis, Inc
>>>                         > Cell: +7 (968) 880 2288
>>>                         <tel:%2B7%20%28968%29%20880%202288>
>>>                         > Skype: shikelbober
>>>                         > Slack: aelagin
>>>                         > mailto:aelagin at mirantis.com
>>>                         <mailto:aelagin at mirantis.com>
>>>                         >
>>>                         >
>>>                         >
>>>                         __________________________________________________________________________
>>>                         > OpenStack Development Mailing List (not
>>>                         for usage questions)
>>>                         > Unsubscribe:
>>>                         OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>>                         <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>>>                         >
>>>                         http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>
>>>
>>>                         __________________________________________________________________________
>>>                         OpenStack Development Mailing List (not for
>>>                         usage questions)
>>>                         Unsubscribe:
>>>                         OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>>                         <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>>>                         http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>
>>>
>>>
>>>                     __________________________________________________________________________
>>>                     OpenStack Development Mailing List (not for usage questions)
>>>                     Unsubscribe:OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>>                     <mailto:OpenStack-dev-request at lists.openstack.org?subject:unsubscribe>
>>>                     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>                     -- 
>>                     Eugene Korekin
>>                     Partner Enablement Team Deployment Engineer
>>
>>                     __________________________________________________________________________
>>                     OpenStack Development Mailing List (not for usage
>>                     questions)
>>                     Unsubscribe:
>>                     OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>                     <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>>                     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>                 -- 
>>
>>                 --
>>
>>                 Andrew Woodward
>>
>>                 Mirantis
>>
>>                 Fuel Community Ambassador
>>
>>                 Ceph Community
>>
>>
>>                 __________________________________________________________________________
>>                 OpenStack Development Mailing List (not for usage
>>                 questions)
>>                 Unsubscribe:
>>                 OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>                 <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>>                 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>
>>
>>
>>             __________________________________________________________________________
>>             OpenStack Development Mailing List (not for usage questions)
>>             Unsubscribe:OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>             <mailto:OpenStack-dev-request at lists.openstack.org?subject:unsubscribe>
>>             http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>             -- 
>             Eugene Korekin
>             Partner Enablement Team Deployment Engineer
>
>
>             __________________________________________________________________________
>             OpenStack Development Mailing List (not for usage questions)
>             Unsubscribe:
>             OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>             <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>             http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>         __________________________________________________________________________
>         OpenStack Development Mailing List (not for usage questions)
>         Unsubscribe:
>         OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>         <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>         http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>     -- 
>
>     --
>
>     Andrew Woodward
>
>     Mirantis
>
>     Fuel Community Ambassador
>
>     Ceph Community
>
>
>     __________________________________________________________________________
>     OpenStack Development Mailing List (not for usage questions)
>     Unsubscribe:
>     OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>     <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
> -- 
> Yours Faithfully,
> Vladimir Kuklin,
> Fuel Library Tech Lead,
> Mirantis, Inc.
> +7 (495) 640-49-04
> +7 (926) 702-39-68
> Skype kuklinvv
> 35bk3, Vorontsovskaya Str.
> Moscow, Russia,
> www.mirantis.com <http://www.mirantis.ru/>
> www.mirantis.ru <http://www.mirantis.ru/>
> vkuklin at mirantis.com <mailto:vkuklin at mirantis.com>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-- 
Eugene Korekin
Partner Enablement Team Deployment Engineer

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20151208/48f3ec60/attachment.html>


More information about the OpenStack-dev mailing list