From: Joshua Brindle <method@manicmethod.com>
To: Kohei Kaigai <Kohei.Kaigai@EMEA.NEC.COM>
Cc: Kohei KaiGai <kaigai@kaigai.gr.jp>,
KaiGai Kohei <kaigai@ak.jp.nec.com>,
SE Linux <selinux@tycho.nsa.gov>,
Stephen Smalley <sds@tycho.nsa.gov>
Subject: Re: sepgsql and process transition
Date: Thu, 01 Sep 2011 10:39:29 -0400 [thread overview]
Message-ID: <4E5F9921.6020102@manicmethod.com> (raw)
In-Reply-To: <D0C1A1F8BF513F469926E6C71461D9EC051E85@EX10MBX02.EU.NEC.COM>
Kohei Kaigai wrote:
>>> I think I hit the exact reason why this bothers me today. As
>>> staff_t:SystemLow-SystemHigh I wanted a stored procedure that ran at
>>> sepgsql_trusted_proc_t:SystemHigh (so that it could read a SystemHigh column
>>> and fuzz the results).
>>>
>>> Because of the current process constraint:
>>> mlsconstrain process transition
>>> (( h1 dom h2 ) and
>>> (( l1 eq l2 ) or ( t1 == mlsprocsetsl ) or
>>> (( t1 == privrangetrans ) and ( t2 == mlsrangetrans ))));
>>>
>>> it isn't possible unless staff_t is part of privrangetrans and
>>> sepgsql_trusted_proc_t is part of mlsrangetrans. I don't mind the latter but
>>> the former is clearly a violation of how MLS is suppose to work on
>>> multi-level SELinux systems (in general, unprivileged users should not be
>>> able to change their level without going through newrole or logging out and
>>> back in).
>>>
>>> If there was a different object class for procedures-while-executing, akin
>>> to process but called something different we could have a different
>>> constraint that made more sense for this use case.
>>>
>> Hmm. I'd like to consider this matter for more details.
>>
> I think it is not a situation that we should allow staff_t:SystemLow-SystemHigh
> to translate into sepgsql_trusted_proc_t:SystemHigh, because this rule intends
> to prevent to switch lower range without special attributes, and it eventually
> prevents violated references of information.
> Even if we have individual object class to represent a subject entity of database
> system, its fundamental is not changed, is it?
If staff running at system low need to use a trusted procedure to get (and
redact, remove precision, etc) system high data they must be able to transition
like that. Even if the user is running at systemlow-systemhigh, since their
active clearance is systemlow, their user type must have privrangetrans which is
not desirable.
>
> It seems to me a straightforward solution is to define an individual trusted
> procedure type for MLS range transition (with mlsrangetrans), and restrict
> subject entity to invoke this procedure (using privrangetrans).
>
We don't want to give privrangetrans to unprivileged user domains though.
>> One other point I'm considering is what security label should be delivered to
>> when a database client want to invoke a remote procedure call using functions
>> installed to PostgreSQL. This feature is called 'foreign-data-wrapper' being
>> already merged at v9.1.
>> If we assign a subject entity that performs as an agent of client a security
>> label that is not a part of domain attribute, I'm not certain whether it is an
>> appropriate manner, or not.
>>
> One other confusable situation is invocation of remote procedure from PostgreSQL.
> If we try to set up multiple SE-PostgreSQL systems that communicate via labeled
> networking each other, I'm afraid that analysis of domain transition becomes hard
> because it allows multiple paths to translate other domains.
>
The tools will need to be updated to handle the additional transition via db
procedure but the analysis is no different than a domain transition or
transitive information flow analysis of today.
> Right now, my opinion is that process:{translate} permission should be checked
> when a subject entity of (operating|database) system tried to be switched.
>
trusted procedures are not processes and should not use the process object class.
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
next prev parent reply other threads:[~2011-09-01 14:39 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-30 18:36 sepgsql and process transition Joshua Brindle
2011-08-30 20:48 ` Kohei KaiGai
2011-08-30 23:16 ` Joshua Brindle
2011-08-31 20:02 ` Joshua Brindle
2011-08-31 20:33 ` Kohei KaiGai
2011-09-01 9:33 ` Kohei Kaigai
2011-09-01 14:39 ` Joshua Brindle [this message]
2011-09-01 15:51 ` Kohei Kaigai
2011-09-01 18:36 ` Joshua Brindle
2011-09-01 19:13 ` Joshua Brindle
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=4E5F9921.6020102@manicmethod.com \
--to=method@manicmethod.com \
--cc=Kohei.Kaigai@EMEA.NEC.COM \
--cc=kaigai@ak.jp.nec.com \
--cc=kaigai@kaigai.gr.jp \
--cc=sds@tycho.nsa.gov \
--cc=selinux@tycho.nsa.gov \
/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.