All of lore.kernel.org
 help / color / mirror / Atom feed
* [refpolicy] [PATCH]: dontaudit sys_module wpa_supplicant
@ 2011-03-20  1:24 Guido Trentalancia
  2011-03-20  7:12 ` Russell Coker
  0 siblings, 1 reply; 17+ messages in thread
From: Guido Trentalancia @ 2011-03-20  1:24 UTC (permalink / raw)
  To: refpolicy

Hi Russell !

-- original message --
Subject: Re: [refpolicy] [PATCH]: dontaudit sys_module wpa_supplicant
From: Russell Coker <russell@coker.com.au>
Date: 20/03/2011 01:11

On Sun, 20 Mar 2011, Guido Trentalancia <guido@trentalancia.com> wrote:
> wpa_supplicant (NetworkManager_t) tries to load kernel modules. I think
> this is forbidden in the first place by a neverallow rule in
> kernel/kernel.te. So the following patch simply "dontaudit" sys_module
> requests from wpa_supplicant (and NetworkManager).

> Which kernel modules?

Should be kernel modules which provide cryptographic algorithms needed by wpa_supplicant for certain authentication and encryption functions employed in some wireless ethernet protocols.

Regards,

Guido

^ permalink raw reply	[flat|nested] 17+ messages in thread
* [refpolicy] R: Re:  [PATCH]: dontaudit sys_module wpa_supplicant
@ 2011-03-21 14:07 Guido Trentalancia
  2011-03-21 17:54 ` [refpolicy] " Guido Trentalancia
  0 siblings, 1 reply; 17+ messages in thread
From: Guido Trentalancia @ 2011-03-21 14:07 UTC (permalink / raw)
  To: refpolicy



-- original message  --
Subject: Re: [refpolicy] [PATCH]: dontaudit sys_module wpa_supplicant
From: "Christopher J. PeBenito" <cpebenito@tresys.com>
Date: 21/03/2011 14:24

On 03/20/11 12:18, Guido Trentalancia wrote:
> On Sun, 2011-03-20 at 16:56 +0100, Sven Vermeulen wrote:
>> On Sun, Mar 20, 2011 at 04:47:27PM +0100, Guido Trentalancia wrote:
>>>> The moment you set kernel_load_module(NetworkManager_t) you're all set. The
>>>> neverallow is on all domains that do not have the can_load_kernmodule
>>>> attribute set, and with kernel_load_moduel() you set it for the specified
>>>> domain.
>>>
>>> The "neverallow" rule in kernel/kernel.te prevents NetworkManager_t from
>>> having the "sys_module" capability.
>>
>> In kernel/kernel.te:
>>
>>   neverallow ~{ can_load_kernmodule kern_unconfined } self:capability sys_module;
>>
>> The kernel_load_module interface:
>>
>>   interface(`kernel_load_module',`
>>           gen_require(`
>>                   attribute can_load_kernmodule;
>>           ')
>>   
>>           allow $1 self:capability sys_module;
>>           typeattribute $1 can_load_kernmodule;
>>   
>>           # load_module() calls stop_machine() which
>>           # calls sched_setscheduler()
>>           allow $1 self:capability sys_nice;
>>           kernel_setsched($1)
>>   ')
>>   
>> When you use kernel_load_module(NetworkManager_t), then the typeattribute
>> will add "can_load_kernmodule" as an attribute to the NetworkManager_t
>> domain. The neverallow works on all but those domains having
>> can_load_kernmodule and/or kern_unconfined set as an attribute.
> 
> It seems quite difficult to explain this...
> 
> I do not want to break things for distributions that do not want
> wpa_supplicant to load kernel modules and in any case I would like to
> hear from Christopher.
> 
> So unless Dan Walsh changes his mind there needs to be at least one
> ifdef (for DISTRO=redhat).
> 
> I am happy to prepare a patch which does can_load_kernmodule()/dontaudit
> depending on the distribution, but I need to hear from people with
> authority for each distribution. And Christopher should decide what
> would be the default behaviour.
> 
> It is perfectly fine to me (and I would probably be happier) if the
> default behaviour is can_load_kernmodule() as I do not particularly like
> "dontaudit" for stuff which just logs once (but Christopher has a
> different opinion on this, so once again nothing can be changed before
> Monday).

> I would rather not allow
 > this.  We don't want 
> network-facing services
> loading kernel modules.

At least wpa_supplicant is not network-facing (would need to check for NetworkManager). It should not be dealing with sockets and connections, so it should be *isolated* from the network and the outside world (at least at L3 and above).

In any case it could be "dontaudit"ed.
-- 
Chris PeBenito
Tresys Technology, LLC
www.tresys.com | oss.tresys.com

^ permalink raw reply	[flat|nested] 17+ messages in thread
* [refpolicy] [PATCH]: dontaudit sys_module wpa_supplicant
@ 2011-03-19 20:13 Guido Trentalancia
  2011-03-20  0:11 ` Russell Coker
  0 siblings, 1 reply; 17+ messages in thread
From: Guido Trentalancia @ 2011-03-19 20:13 UTC (permalink / raw)
  To: refpolicy

wpa_supplicant (NetworkManager_t) tries to load kernel modules. I think
this is forbidden in the first place by a neverallow rule in
kernel/kernel.te. So the following patch simply "dontaudit" sys_module
requests from wpa_supplicant (and NetworkManager).

The inability of loading kernel modules might prevent wpa_supplicant
from being fully functional (for example, it might need to use
cryptographic algorithms provided by kernel modules for certain
authentication and ciphering protocols). In any case, a warning/error
message should still get printed out in the relative log file (so that
the user can take corrective manual action).

--- refpolicy-git-17032011/policy/modules/services/networkmanager.te	2011-01-08 19:07:21.269745618 +0100
+++ refpolicy-git-17032011-wpasupplicant-sysmodule/policy/modules/services/networkmanager.te	2011-03-19 19:56:52.232376452 +0100
@@ -36,7 +36,7 @@ init_system_domain(wpa_cli_t, wpa_cli_ex
 # networkmanager will ptrace itself if gdb is installed
 # and it receives a unexpected signal (rh bug #204161)
 allow NetworkManager_t self:capability { chown fsetid kill setgid setuid sys_nice sys_ptrace dac_override net_admin net_raw net_bind_service ipc_lock };
-dontaudit NetworkManager_t self:capability { sys_tty_config sys_ptrace };
+dontaudit NetworkManager_t self:capability { sys_module sys_tty_config sys_ptrace };
 allow NetworkManager_t self:process { ptrace getcap setcap setpgid getsched setsched signal_perms };
 allow NetworkManager_t self:fifo_file rw_fifo_file_perms;
 allow NetworkManager_t self:unix_dgram_socket { sendto create_socket_perms };

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2011-03-23 14:59 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-20  1:24 [refpolicy] [PATCH]: dontaudit sys_module wpa_supplicant Guido Trentalancia
2011-03-20  7:12 ` Russell Coker
2011-03-20 14:53   ` Guido Trentalancia
2011-03-20 15:05     ` Sven Vermeulen
2011-03-20 15:47       ` Guido Trentalancia
2011-03-20 15:56         ` Sven Vermeulen
2011-03-20 16:18           ` Guido Trentalancia
2011-03-21 13:23             ` Christopher J. PeBenito
2011-03-20 21:55     ` Russell Coker
2011-03-20 22:41       ` Guido Trentalancia
2011-03-22 12:11         ` Daniel J Walsh
2011-03-22 13:42           ` Eric Paris
2011-03-23 14:59             ` Guido Trentalancia
2011-03-22 15:01           ` Guido Trentalancia
  -- strict thread matches above, loose matches on Subject: below --
2011-03-21 14:07 [refpolicy] R: " Guido Trentalancia
2011-03-21 17:54 ` [refpolicy] " Guido Trentalancia
2011-03-19 20:13 Guido Trentalancia
2011-03-20  0:11 ` Russell Coker

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.