All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kohei KaiGai <kaigai@ak.jp.nec.com>
To: Joshua Brindle <method@manicmethod.com>
Cc: "Christopher J. PeBenito" <cpebenito@tresys.com>, selinux@tycho.nsa.gov
Subject: Re: [PATCH] SE-PostgreSQL Security Policy
Date: Fri, 07 Mar 2008 11:20:59 +0900	[thread overview]
Message-ID: <47D0A68B.1030002@ak.jp.nec.com> (raw)
In-Reply-To: <47D03D3D.8060307@manicmethod.com>

Joshua Brindle wrote:
> Christopher J. PeBenito wrote:
>> On Wed, 2008-02-27 at 17:00 +0900, Kohei KaiGai wrote:
>>  
>>> The attached patch provides security policies related to
>>> SE-PostgreSQL.
>>>
>>> The followings are updates/unchanges from the previous version
>>> submitted
>>> at two weeks ago. These updates replaced most of the part in the
>>> previous
>>> one.
>>>
>>> - The targets of this patch are moved to services/postgresql.*,
>>>    although the previous one added new entries.
>>>     
>>
>>  
>>> +tunable_policy(`sepgsql_enable_auditallow',`
>>> +       auditallow domain sepgsql_database_type  : db_database 
>>> all_db_database_perms;
>>> +       auditallow domain sepgsql_table_type     : db_table 
>>> all_db_table_perms;
>>> +       auditallow domain sepgsql_table_type     : db_column 
>>> all_db_column_perms;
>>> +       auditallow domain sepgsql_procedure_type : db_procedure 
>>> all_db_procedure_perms;
>>> +       auditallow domain sepgsql_blob_type      : db_blob 
>>> all_db_blob_perms;
>>> +       auditallow domain sepgsql_server_type    : db_blob { import 
>>> export };
>>> +       auditallow domain sepgsql_module_type    : db_database { 
>>> install_module };
>>> +')
>>>     
> 
> 
> A couple questions about the install_module and load_module permissions. 
> First they seem here to be refering to sepgsql_module_type as the object 
> which currently are lib_t and textrel_shlib_t, file types. So the object 
> class of db_database seems to be inaccurate.

Is it appropriate to define a new permission in file class to associate
a database with a library file?

> Also, after looking at the code I don't see why install_module and 
> load_module need to be different permissions, granted they are a 
> privileged operation but why not collapse them into a single access vector?

load_module is a permission to associate a database and a loadable module,
like filesystem:associate permission.

When we tries to load a shared library module, the following permissins
are required.

(Client)   (Shared Library) : db_database install_module;
(Client)   (Database)       : db_database install_module;
(Database) (Shared Library) : db_database load_module;

`install_module' defines a relationship between a client and database/library.
`load_module' defines a relationship between a database and library.

> Also, why are blobs a separate object class? How is it a privileged 
> operation to use blobs in a table? As far as reading and writing them 
> they should be treated like any other column, shouldn't they?

In MySQL, blob is one of the data types, and it can be stored in a table.
However, blob is a set of tuples stored in pg_largeobject system catalog
in PostgreSQL. To separate large binary object into small blocks improves
ramdam access performance, but dameges to consistency in access control.
It is the reason why SE-PostgreSQL need special care for blobs.

http://www.postgresql.org/docs/8.3/static/catalog-pg-largeobject.html

BTW, current PostgreSQL does not have any access controls mechanism
in large object. :(

> And one more question. I see you have a type transition for 
> sepgsql_proc_t but I never saw sepgsql_proc_t as the subject of any 
> rules, which I don't understand. The hooks appear to always use the 
> client_sid as the subject but for stored procedures to be useful they 
> may need to access data that the client wouldn't be able to, or did I 
> miss something?

When a sepgsql_client_domain invokes sepgsql_trusted_proc_t, the client_sid
is transted into sepgsql_trusted_domain_t.
However, domain transition is kept in invokations for another procedure type.
sepgsql_proc_t is always a object type, as postgresql_exex_t is always a file
type, not a domain.

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.

  reply	other threads:[~2008-03-07  2:21 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-13  9:29 [PATCH] SE-PostgreSQL Security Policy Kohei KaiGai
2008-02-25 16:30 ` Christopher J. PeBenito
2008-02-26  3:07   ` Kohei KaiGai
2008-02-27  8:00     ` Kohei KaiGai
2008-03-04 15:16       ` KaiGai Kohei
2008-03-06 15:27       ` Christopher J. PeBenito
2008-03-06 18:51         ` Joshua Brindle
2008-03-07  2:20           ` Kohei KaiGai [this message]
2008-03-07 16:16             ` Joshua Brindle
2008-03-08  1:33               ` KaiGai Kohei
2008-03-07  1:52         ` Kohei KaiGai
2008-03-07  9:32           ` Kohei KaiGai
2008-03-07 20:48           ` Christopher J. PeBenito
2008-03-09 14:24             ` KaiGai Kohei
2008-03-11 12:57               ` Christopher J. PeBenito
2008-03-11 16:57                 ` KaiGai Kohei
2008-03-12  8:42                   ` Kohei KaiGai
2008-03-17  9:31                 ` [PATCH] SE-PostgreSQL Security Policy (try #3) Kohei KaiGai
2008-03-19 14:45                   ` Christopher J. PeBenito
2008-03-21  4:32                     ` KaiGai Kohei
2008-03-21  5:11                       ` KaiGai Kohei
2008-03-24 18:44                       ` Christopher J. PeBenito
2008-03-25 10:35                         ` KaiGai Kohei
2008-03-25 13:24                           ` Christopher J. PeBenito
2008-03-27  9:52                             ` KaiGai Kohei
2008-03-27 13:23                               ` Christopher J. PeBenito
2008-03-28  4:50                                 ` KaiGai Kohei
2008-05-05 13:48                                   ` Christopher J. PeBenito
2008-05-12  2:31                                     ` KaiGai Kohei
2008-05-12 14:33                                       ` KaiGai Kohei
     [not found]                                         ` <1210615044.11188.17.camel@gorn>
2008-05-13  2:39                                           ` KaiGai Kohei
2008-03-10  7:52           ` [PATCH] SE-PostgreSQL Security Policy Kohei KaiGai
2008-03-11 12:30             ` Christopher J. PeBenito
2008-03-11 13:03               ` 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=47D0A68B.1030002@ak.jp.nec.com \
    --to=kaigai@ak.jp.nec.com \
    --cc=cpebenito@tresys.com \
    --cc=method@manicmethod.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.