Re: Testing chrony seccomp support

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

 



On Mon, Jan 18, 2016 at 3:51 AM, Florian Weimer <fweimer@xxxxxxxxxx> wrote:
> On 01/18/2016 11:02 AM, Nikos Mavrogiannopoulos wrote:
>
>> As Florian suggested it makes more sense to compartmentalize chrony so
>> that only a small controlled part of it needs to run with seccomp. My
>> recommendation, if you want to use libraries in the filtered code, make
>> their authors aware of that, so that they document any changes in the
>> used system calls, and if possible ask them to document the existing
>> system calls used (e.g., similarly to:
>> http://www.gnutls.org/manual/html_node/Running-in-a-sandbox.html )
>
> Interesting.  There is one huge caveat:
>
> | As well as an calls needed for memory allocation to work.
>
> glibc malloc can basically call *anything*.  We don't know what the
> future will bring.  Currently, we use (off the top of my head, I haven't
> checked):
>
> * sbrk
> * mmap
> * mprotect
> * munmap
> * mremap
> * madvise
> * futex
> * open
> * read
> * close
>
> (In some cases, there is some sort of fallback, or errors are ignored
> and the optimization does not happen.)
>
> Future versions might reasonably use:
>
> * sched_getcpu
> * clone
> * clock_gettime
> * more open/read/close
> * readlink
> * whatever system calls are used for memory protection keys
> * whatever system calls are used for restartable sequences
>
> I appreciate what you are trying to do, but those seccomp filters
> totally break encapsulation.  I have no idea how to support this
> properly, in a sustainable way.  It appears very difficult to do this
> for independently evolving libraries.

The sandstorm approach is striaghtforward: the disallowed things
return -ENOSYS.  glibc can handle that quite nicely, as long as you
let existing stuff through.

--Andy
--
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
http://lists.fedoraproject.org/admin/lists/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux