Re: [PATCH 0/5] selinux: add prefix/suffix matching to filename type transitions

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

 



On 2023-07-28 13:52, James Carter wrote:
> On Fri, Jul 28, 2023 at 9:29 AM Stephen Smalley
> <stephen.smalley.work@xxxxxxxxx> wrote:
> >
> > On Thu, Jul 27, 2023 at 12:43 PM Juraj Marcin <juraj@xxxxxxxxxxxxxxx> wrote:
> > >
> > > On 2023-07-17 14:44, Stephen Smalley wrote:
> > > >
> > > > I'd be curious to see what results you would get if you simply added
> > > > the new feature (prefix/suffix matching) without moving the name-based
> > > > transitions into the avtab.
> > >
> > > Here are the performance metrics of a prototype solution, where the
> > > filename transition key is extended with match_type and match is found
> > > by shortening the name from the end or the beginning if a full match is
> > > not found.
> > >
> > > [2] Reference kernel (447a5688005e), Fedora policy (format v33)
> > > [3] This patchset, Fedora policy (format v33)
> > > [4] This patchset, Fedora policy without prefix/suffix rules (format v34)
> > > [5] This patchset, Fedora policy with prefix rules (format v34)
> > >
> > >
> > >  Test | Mem   | Binary | Policy | Create tty      | osbench
> > >       | Usage | policy | load   |                 | create
> > >       |       | size   | time   | (ms/file)       | files
> > >       | (MiB) | (MiB)  | (ms)   | real   | kernel | (us/file)
> > > ------+-------+--------+--------+--------+--------+-----------
> > >  [2]  |   157 |    3.4 |     76 |  1.256 |  0.871 | 9.4492
> > >  [3]  |   156 |    3.4 |     77 |  1.208 |  0.869 | 9.6160
> > >  [4]  |   157 |    3.4 |     71 |  1.239 |  0.893 | 9.6297
> > >  [5]  |   156 |    2.4 |     71 |  1.211 |  0.838 | 9.8305
> >
> > This looks more promising to me - little-to-no impact on existing
> > users with old policy/userspace, reduced memory usage once fully
> > transitioned. Still some degradation in runtime for osbench but not
> > sure what the variance/stddev is for those numbers.
> >
> 
> It does look promising.
> 
> Does this new prototype change the kernel policy format and the userspace parts.
> If it does, then I will go ahead and revert the previous userspace
> patches and wait for the new ones.

It does as I tried to keep the kernel policy format as close to the
internal representation as possible.

> 
> > > > Also wondering whether you considered the simpler approach of just
> > > > augmenting the kernel to recognize and support use of wildcards at the
> > > > beginning and/or end of the existing name field to signify a prefix or
> > > > suffix match. That seems more amenable to extensions beyond just
> > > > prefix or suffix match.
> > >
> > > I had not considered this approach in the beginning, but as I thought
> > > about it, it did not seem as simple.
> > >
> > > For example, along with adding the wildcard character, we also need to
> > > add the ability to escape it; otherwise, it would be a weird edge case
> > > of an unsupported filename. Also, possibly to escape the escape
> > > character itself. This adds more complexity to the solution.
> > >
> > > In addition to this, extending such solution to support wildcards
> > > anywhere in the filename would also require reimplementing the filename
> > > transitions structures or moving rules with wildcards away from current
> > > filename transitions. Currently, the filename is part of the hashtab key
> > > and prefix/suffix could work by checking all prefixes and suffixes of a
> > > filename, which there are not that many. However, with a wildcard at any
> > > position, this is not feasible.
> >
> > Fair enough. That said, I do wonder if users will immediately start
> > asking for wildcards at any position, then file globbing or regexes,
> > etc, and would like to allow for future extensibility in a less
> > disruptive manner.
> 
> If anyone knows of any cases where a prefix or suffix match would not
> work, it would be nice to hear about those cases now.
> Jim

-- 
Juraj Marcin




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

  Powered by Linux