Re: [PATCH] libselinux: add support for /contexts/postgresql_contexts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Christopher J. PeBenito wrote:
> On Wed, 2008-06-04 at 13:03 +0900, KaiGai Kohei wrote:
>> Christopher J. PeBenito wrote:
>>> On Tue, 2008-06-03 at 19:25 +0900, KaiGai Kohei wrote:
>>>> Christopher J. PeBenito wrote:
>>>>> I'm out of arguments; clearly I'm in the minority on this issue.  I
>>>>> already said I wouldn't block the policy over this, so KaiGai, if you
>>>>> would send a last patch based on the revisions I made [1], let see if we
>>>>> can finally get this merged.
>>>>>
>>>>> [1] http://marc.info/?l=selinux&m=120999566809541&w=2
>>>> I'll submit a revised version later.
>>>> (Now we cannot update SVN repository, due to server maintenance.)
>>>>
>>>> Before this, I want to modify the following points:
> 
>>>> - postgresql_unconfined() interface should also associate a domin
>>>>   with sepgsql_client_type, not only sepgsql_unconfined_type.
>>>>   dontaudit rules on row-level logs are not disabled for unconfined
>>>>   clients. And, it's not useful to write additional policy module.
>>> I don't understand what you mean about the dontaudits.  Otherwise, you
>>> should recheck the unconfined rules.  I'm fairly sure I copied anything
>>> relevant from the client rules into unconfined so I didn't have to add
>>> both attributes in postgresql_unconfined().
>> A table can contain massive tuples in generally. If 50% of 1,000,000 tuples
>> are labaled as "Classified" and hidden from clients (includes unconfined
>> domain), tuple-level access denied log will make a flood of logs.
>> The dontaudit rule enables to restain the problem.
>>
>> I intended sepgsql_client_type means all domains connectable to SE-PostgreSQL.
>> If it dosen't contain unconfined domains, I think its name is a bit confusable
>> and something like "sepgsql_unpriv_type" is better for its name.
> 
> The fact is that we need an interface for unconfined access.  If the
> privileged client access is equivalent to unconfined access, then I feel
> that the unconfined interface is clearer.

OK, it is clear enough for me.


>> Then, the above dontaudit rule should be rewritten as follows:
>>
>>   dontaudit { sepgsql_client_type sepgsql_unpriv_type postgresql_t } \
>>             { sepgsql_table_type - sepgsql_sysobj_table_type } : db_tuple *;
>>
>> At first, I used a boolean (sepgsql_enable_audittuple) to turn on/off
>> tuple-level access logs, but you suggested it is unnecessary, so I removed it.
> 
> I don't agree because of:
> 
> +allow postgresql_t sepgsql_table_type:{ db_table db_column db_tuple } *;
> +allow sepgsql_unconfined_type sepgsql_table_type:{ db_table db_column db_tuple } *;
> 
> so dontauditing for postgresql_t and sepgsql_unconfined_type doesn't do
> anything since the access is allowed.

It is correct in type enforcement.
But MCS/MLS can prevent to access by unconfined domains, and make flood of
access denied logs.


>> In addition, I found an unclear point which came from my original policy. :(
>>
>>   allow sepgsql_unconfined_type postgresql_t:db_blob { import export };
>>
>> A blob import interface enables to read a file on a server host by the server
>> process (postgresql_t), and import to database as several frames of largeobject.
>> A export interface works for inversed direction.
>>
>> In the previous discussion, the meaning of these permission is to indicate
>> server process to start importing or exporting.
>> However, I'm now considering the following rules are more sensefull:
>>
>>   1. SE-PostgreSQL checks whether the client has db_blob:{import} for
>>      the target large object.
>>   2. SE-PostgreSQL checks whether the client has file:{read} for
>>      the target file.
>>   3. SELinux (kernel) checks whether postgresql_t has file:{read} for the
>>      target file, because it uses read(2) system call.
>>
>> Could you tell me your opinion?
> 
> I'll defer to Josh on this one since he knows much more about databases
> than I do.

-- 
OSS Platform Development Division, NEC
KaiGai Kohei <kaigai@xxxxxxxxxxxxx>

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
the words "unsubscribe selinux" without quotes as the message.

[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux