Re: New rules on restrict kernel module loading

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

 



On 06/29/2016 05:36 AM, Dominick Grift wrote:
> On 06/28/2016 02:54 PM, Stephen Smalley wrote:
>> On 06/28/2016 07:02 AM, Dominick Grift wrote:
>>> On 06/22/2016 09:02 PM, Jeffrey Vander Stoep wrote:
>>>> selinux@xxxxxxxxxxxxx to bcc
>>>>
>>>> Hi Ravi,
>>>>
>>>> The intent is not to restrict which processes may load modules,
>>>> but to place restrictions on the origin of the module itself.
>>>> Modules, like the kernel, should live on a verity protected
>>>> partition.
>>>>
>>>> If you want system apps to load a kernel module from the system
>>>> partition you just need to add an allow rule. e.g.
>>>>
>>>> # system_app loads /system/lib/module/wlan.ko allow system_app
>>>> system_file:system module_load;
>>>>
>>>> Similar rules may be added for platform_app or system_server.
>>>>
>>>
>>> In Fedora rawhide i see these where the target is "self". example:
>>>
>>> allow kmod self:system module_load;
>>>
>>> is that intended?
>>
>> That's the fallback when using init_module() rather than
>> finit_module() to load modules, since the kernel does not see the file
>> when using init_module().  With init_module(), userspace loads the
>> module from the file into memory and passes a (pointer, len) pair to
>> the kernel; with finit_module(), userspace opens the module file and
>> passes the open file descriptor to the kernel.  Ideally, one would
>> convert all users of init_module() to finit_module(), then remove any
>> self:system module_load permissions and only allow it for specific
>> file types.
>>
> 
> I suspect that something is broken here then (although i might be wrong)
> 
> systemd-udevd seems to be using finit_module() but selinux still checks
> "self" instead of a module file type. (whereas i would have expected the
> latter)

I don't see how that is possible, given the code in question.  I'd
recommend checking that it is actually using finit_module() and not
falling back to init_module().

> 
> I see that there is no selinux test-suite test implemented for this
> functionality.

Can't really do that until the permission is defined in the Fedora
policy.  Otherwise, it will always be allowed due to the allow-unknown
default in Fedora.


_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.



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

  Powered by Linux