All of lore.kernel.org
 help / color / mirror / Atom feed
From: KaiGai Kohei <kaigai@ak.jp.nec.com>
To: "Christopher J. PeBenito" <cpebenito@tresys.com>
Cc: refpolicy@oss.tresys.com, selinux@tycho.nsa.gov,
	Joshua Brindle <method@manicmethod.com>
Subject: Re: [refpolicy] [RFC] Security policy reworks for SE-PostgreSQL
Date: Tue, 21 Apr 2009 08:27:27 +0900	[thread overview]
Message-ID: <49ED04DF.8050306@ak.jp.nec.com> (raw)
In-Reply-To: <1240258044.19211.767.camel@gorn.columbia.tresys.com>

Christopher J. PeBenito wrote:
> On Mon, 2009-04-06 at 11:15 +0900, KaiGai Kohei wrote:
>> The attached patch provides some of reworks and bugfuxes
>> except for new object classes and permissions.
>>
>> - rework: Add a comment of "not currently in use" for deprecated
>>   permissions, but its definitions are not removed.
> 
> "deprecated" should be sufficient.

OK

>> - rework: All the newly created database objects by unprivileged
>>   clients are prefixed with "user_", and these are controled via
>>   sepgsql_enable_users_ddl.
> 
> I don't think we should be mixing user content with other unpriv
> clients.

I would like to discriminate between a procedure declared by unpriv
client and by administrative client, because the policy allows the
unprefixed "sepgsql_proc_exec_t" to be installed as a system internal
component, but it is undesirable to install unpriv-user defined
procedures as is.

If the "user_" prefix is unpreferable, how do you think other prefixes
something like "anon_", "unpriv_" and so on?

>>   The current policy allows httpd_t to created a function labeled
>>   as sepgsql_proc_t which is also allowed to be installed as a
>>   system internal entity (db_procedure:{install}).
>>   It is a potentially risk for trojan horse.
>>
>> - rework: postgresql_role() shares most part of postgresql_unpriv_client().
> 
> See above comment.
> 
>> - bugfix: some of permissions in db_procedure class are allowed
>>   on sepgsql_trusted_proc_t, but it is a domain, not a procedure.
>>   It should allow them on sepgsql_trusted_proc_exec_t.
>>   I also aliased sepgsql_proc_t as sepgsql_proc_exec_t to avoid
>>   such kind of confusion, as Chris suggested before.
>>
>> - rework: we should not allow db_procedure:{install} on the
>>   sepgsql_trusted_proc_exec_t, because of a risk to invoke trusted
>>   procedure implicitly.
>>
>> - rework: db_table:{lock} is moved to reader side, because it makes
>>   impossible to refer read-only table with foreign-key constraint.
>>   (FK checks internally acquire explicit locks.)
>>
>> - bugfix: MLS policy dealt db_blob:{export} as writer-side permission,
>>   but it is required whrn the largeobject is refered.
>>
>> - bugfix: MLS policy didn't constrain the db_procedure class.
> 
> Seems ok.
> 
> It would be helpful to break up the patch into a set to make it easier
> to review in the future.

OK,

Thanks,
-- 
OSS Platform Development Division, NEC
KaiGai Kohei <kaigai@ak.jp.nec.com>

--
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.

WARNING: multiple messages have this Message-ID (diff)
From: kaigai@ak.jp.nec.com (KaiGai Kohei)
To: refpolicy@oss.tresys.com
Subject: [refpolicy] [RFC] Security policy reworks for SE-PostgreSQL
Date: Tue, 21 Apr 2009 08:27:27 +0900	[thread overview]
Message-ID: <49ED04DF.8050306@ak.jp.nec.com> (raw)
In-Reply-To: <1240258044.19211.767.camel@gorn.columbia.tresys.com>

Christopher J. PeBenito wrote:
> On Mon, 2009-04-06 at 11:15 +0900, KaiGai Kohei wrote:
>> The attached patch provides some of reworks and bugfuxes
>> except for new object classes and permissions.
>>
>> - rework: Add a comment of "not currently in use" for deprecated
>>   permissions, but its definitions are not removed.
> 
> "deprecated" should be sufficient.

OK

>> - rework: All the newly created database objects by unprivileged
>>   clients are prefixed with "user_", and these are controled via
>>   sepgsql_enable_users_ddl.
> 
> I don't think we should be mixing user content with other unpriv
> clients.

I would like to discriminate between a procedure declared by unpriv
client and by administrative client, because the policy allows the
unprefixed "sepgsql_proc_exec_t" to be installed as a system internal
component, but it is undesirable to install unpriv-user defined
procedures as is.

If the "user_" prefix is unpreferable, how do you think other prefixes
something like "anon_", "unpriv_" and so on?

>>   The current policy allows httpd_t to created a function labeled
>>   as sepgsql_proc_t which is also allowed to be installed as a
>>   system internal entity (db_procedure:{install}).
>>   It is a potentially risk for trojan horse.
>>
>> - rework: postgresql_role() shares most part of postgresql_unpriv_client().
> 
> See above comment.
> 
>> - bugfix: some of permissions in db_procedure class are allowed
>>   on sepgsql_trusted_proc_t, but it is a domain, not a procedure.
>>   It should allow them on sepgsql_trusted_proc_exec_t.
>>   I also aliased sepgsql_proc_t as sepgsql_proc_exec_t to avoid
>>   such kind of confusion, as Chris suggested before.
>>
>> - rework: we should not allow db_procedure:{install} on the
>>   sepgsql_trusted_proc_exec_t, because of a risk to invoke trusted
>>   procedure implicitly.
>>
>> - rework: db_table:{lock} is moved to reader side, because it makes
>>   impossible to refer read-only table with foreign-key constraint.
>>   (FK checks internally acquire explicit locks.)
>>
>> - bugfix: MLS policy dealt db_blob:{export} as writer-side permission,
>>   but it is required whrn the largeobject is refered.
>>
>> - bugfix: MLS policy didn't constrain the db_procedure class.
> 
> Seems ok.
> 
> It would be helpful to break up the patch into a set to make it easier
> to review in the future.

OK,

Thanks,
-- 
OSS Platform Development Division, NEC
KaiGai Kohei <kaigai@ak.jp.nec.com>

  reply	other threads:[~2009-04-21  1:02 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-31  8:55 [RFC] Security policy reworks for SE-PostgreSQL KaiGai Kohei
2009-03-31  8:55 ` [refpolicy] " KaiGai Kohei
2009-03-31 10:05 ` Andy Warner
2009-03-31 10:05   ` [refpolicy] " Andy Warner
2009-03-31 13:51   ` KaiGai Kohei
2009-03-31 13:51     ` [refpolicy] " KaiGai Kohei
2009-03-31 15:11     ` Andy Warner
2009-03-31 15:11       ` [refpolicy] " Andy Warner
2009-03-31 20:34       ` KaiGai Kohei
2009-03-31 20:34         ` [refpolicy] " KaiGai Kohei
2009-03-31 20:39         ` Andy Warner
2009-03-31 20:39           ` [refpolicy] " Andy Warner
2009-03-31 20:46           ` Joshua Brindle
2009-03-31 21:08             ` Andy Warner
2009-03-31 21:08               ` [refpolicy] " Andy Warner
2009-04-01 17:05               ` Joshua Brindle
2009-04-01  0:30 ` KaiGai Kohei
2009-04-01  0:30   ` [refpolicy] " KaiGai Kohei
2009-04-02  8:15 ` KaiGai Kohei
2009-04-02  8:15   ` KaiGai Kohei
2009-04-02 14:27   ` Joshua Brindle
2009-04-02 15:09     ` Christopher J. PeBenito
2009-04-02 15:09       ` Christopher J. PeBenito
2009-04-03  1:17       ` KaiGai Kohei
2009-04-03  1:17         ` KaiGai Kohei
2009-04-03 18:12         ` Joshua Brindle
2009-04-05  0:52           ` KaiGai Kohei
2009-04-05  0:52             ` KaiGai Kohei
2009-04-06  2:15         ` KaiGai Kohei
2009-04-06  2:15           ` KaiGai Kohei
2009-04-06 18:48           ` SELinux packages version (svn2950) Hasan Rezaul-CHR010
2009-04-06 19:18             ` Joshua Brindle
2009-04-06 19:48               ` Hasan Rezaul-CHR010
2009-04-06 20:14                 ` Joshua Brindle
2009-04-06 20:30               ` Hasan Rezaul-CHR010
2009-04-06 20:37                 ` Joshua Brindle
2009-04-12 23:45           ` [refpolicy] [RFC] Security policy reworks for SE-PostgreSQL KaiGai Kohei
2009-04-12 23:45             ` KaiGai Kohei
2009-04-20 20:07           ` Christopher J. PeBenito
2009-04-20 20:07             ` Christopher J. PeBenito
2009-04-20 23:27             ` KaiGai Kohei [this message]
2009-04-20 23:27               ` KaiGai Kohei
2009-05-07 12:24               ` Christopher J. PeBenito
2009-05-07 12:24                 ` Christopher J. PeBenito
2009-05-08  3:56                 ` KaiGai Kohei
2009-05-08  3:56                   ` KaiGai Kohei
2009-05-08  4:05                   ` KaiGai Kohei
2009-05-08  4:05                     ` KaiGai Kohei
2009-05-21 11:49                     ` Christopher J. PeBenito
2009-05-21 11:49                       ` Christopher J. PeBenito
2009-05-08  4:12                   ` KaiGai Kohei
2009-05-08  4:12                     ` KaiGai Kohei
2009-05-22 13:38                     ` Christopher J. PeBenito
2009-05-22 13:38                       ` Christopher J. PeBenito
2009-05-21 11:28                   ` Christopher J. PeBenito
2009-05-21 11:28                     ` Christopher J. PeBenito
2009-04-21  2:51             ` KaiGai Kohei
2009-04-21  2:51               ` KaiGai Kohei
2009-05-07 13:08               ` Christopher J. PeBenito
2009-05-07 13:08                 ` Christopher J. PeBenito
2009-04-03  0:25     ` KaiGai Kohei
2009-04-03  0:25       ` KaiGai Kohei

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=49ED04DF.8050306@ak.jp.nec.com \
    --to=kaigai@ak.jp.nec.com \
    --cc=cpebenito@tresys.com \
    --cc=method@manicmethod.com \
    --cc=refpolicy@oss.tresys.com \
    --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.