Re: Formal description of system call interface

2017-04-21 Thread Carlos O'Donell
On 11/06/2016 05:39 PM, Dmitry Vyukov wrote: > Hello, > > This is notes from the discussion we had at Linux Plumbers this week > regarding providing a formal description of system calls (user API). > > The idea come up in the context of syzkaller, syscall fuzzer, which > has descriptions for

Re: Formal description of system call interface

2017-04-21 Thread Carlos O'Donell
On 11/06/2016 05:39 PM, Dmitry Vyukov wrote: > Hello, > > This is notes from the discussion we had at Linux Plumbers this week > regarding providing a formal description of system calls (user API). > > The idea come up in the context of syzkaller, syscall fuzzer, which > has descriptions for

Re: Formal description of system call interface

2016-11-22 Thread Szabolcs Nagy
* Dmitry Vyukov [2016-11-21 16:03:04 +0100]: > On Mon, Nov 7, 2016 at 1:28 AM, Szabolcs Nagy wrote: > > * Dmitry Vyukov [2016-11-06 14:39:28 -0800]: > >> For the reference, current syzkaller descriptions are in txt files here: > >>

Re: Formal description of system call interface

2016-11-22 Thread Szabolcs Nagy
* Dmitry Vyukov [2016-11-21 16:03:04 +0100]: > On Mon, Nov 7, 2016 at 1:28 AM, Szabolcs Nagy wrote: > > * Dmitry Vyukov [2016-11-06 14:39:28 -0800]: > >> For the reference, current syzkaller descriptions are in txt files here: > >> https://github.com/google/syzkaller/tree/master/sys > > ... >

Re: Formal description of system call interface

2016-11-21 Thread Cyril Hrubis
Hi! > > Looking ahead into the future, I was also thinking that if this becomes > > robust, we could also start an integration specification, that could > > describe how different system calls interact with each other. Like > > open() to read(), write() and close(). > > > > But this is just an

Re: Formal description of system call interface

2016-11-21 Thread Cyril Hrubis
Hi! > > Looking ahead into the future, I was also thinking that if this becomes > > robust, we could also start an integration specification, that could > > describe how different system calls interact with each other. Like > > open() to read(), write() and close(). > > > > But this is just an

Re: Formal description of system call interface

2016-11-21 Thread Cyril Hrubis
Hi! > Description of "returns fd or this set of errors" looks simple and useful. > Any test system or fuzzer will be able to verify that kernel actually returns > claimed return values. Also Carlos expressed interested in errno values > in the context of glibc. > I would do it from day one. > >

Re: Formal description of system call interface

2016-11-21 Thread Cyril Hrubis
Hi! > Description of "returns fd or this set of errors" looks simple and useful. > Any test system or fuzzer will be able to verify that kernel actually returns > claimed return values. Also Carlos expressed interested in errno values > in the context of glibc. > I would do it from day one. > >

Re: Formal description of system call interface

2016-11-21 Thread Dmitry Vyukov
On Mon, Nov 21, 2016 at 4:37 PM, Steven Rostedt wrote: > On Mon, 7 Nov 2016 11:38:20 +0100 > Cyril Hrubis wrote: > > >> I'm not sure if something like this is really doable or in the scope of >> this project, but it may be worth a try. >> > > Looking ahead

Re: Formal description of system call interface

2016-11-21 Thread Dmitry Vyukov
On Mon, Nov 21, 2016 at 4:37 PM, Steven Rostedt wrote: > On Mon, 7 Nov 2016 11:38:20 +0100 > Cyril Hrubis wrote: > > >> I'm not sure if something like this is really doable or in the scope of >> this project, but it may be worth a try. >> > > Looking ahead into the future, I was also thinking

Re: Formal description of system call interface

2016-11-21 Thread Steven Rostedt
On Mon, 7 Nov 2016 11:38:20 +0100 Cyril Hrubis wrote: > I'm not sure if something like this is really doable or in the scope of > this project, but it may be worth a try. > Looking ahead into the future, I was also thinking that if this becomes robust, we could also start an

Re: Formal description of system call interface

2016-11-21 Thread Steven Rostedt
On Mon, 7 Nov 2016 11:38:20 +0100 Cyril Hrubis wrote: > I'm not sure if something like this is really doable or in the scope of > this project, but it may be worth a try. > Looking ahead into the future, I was also thinking that if this becomes robust, we could also start an integration

Re: Formal description of system call interface

2016-11-21 Thread Tavis Ormandy
On Mon, Nov 21, 2016 at 7:14 AM, Dmitry Vyukov wrote: > > > Re more complex side effects. I always feared that a description suitable > for automatic verification (i.e. zero false positives, otherwise it is > useless) > may be too difficult to achieve. > > Cyril, Tavis, can

Re: Formal description of system call interface

2016-11-21 Thread Tavis Ormandy
On Mon, Nov 21, 2016 at 7:14 AM, Dmitry Vyukov wrote: > > > Re more complex side effects. I always feared that a description suitable > for automatic verification (i.e. zero false positives, otherwise it is > useless) > may be too difficult to achieve. > > Cyril, Tavis, can you come up with some

Re: Formal description of system call interface

2016-11-21 Thread Dmitry Vyukov
On Fri, Nov 11, 2016 at 6:10 PM, Andy Lutomirski wrote: > On Sun, Nov 6, 2016 at 2:39 PM, Dmitry Vyukov wrote: >> Hello, >> >> This is notes from the discussion we had at Linux Plumbers this week >> regarding providing a formal description of system calls

Re: Formal description of system call interface

2016-11-21 Thread Dmitry Vyukov
On Fri, Nov 11, 2016 at 6:10 PM, Andy Lutomirski wrote: > On Sun, Nov 6, 2016 at 2:39 PM, Dmitry Vyukov wrote: >> Hello, >> >> This is notes from the discussion we had at Linux Plumbers this week >> regarding providing a formal description of system calls (user API). >> >> The idea come up in

Re: Formal description of system call interface

2016-11-21 Thread Dmitry Vyukov
On Mon, Nov 7, 2016 at 11:38 AM, Cyril Hrubis wrote: > Hi! >> We identified a surprisingly large number of potential users for such >> descriptions: >> - fuzzers (syzkaller, trinity, iknowthis) >> - strace/syscall tracepoints (capturing indirect arguments and >>printing

Re: Formal description of system call interface

2016-11-21 Thread Dmitry Vyukov
On Mon, Nov 7, 2016 at 11:38 AM, Cyril Hrubis wrote: > Hi! >> We identified a surprisingly large number of potential users for such >> descriptions: >> - fuzzers (syzkaller, trinity, iknowthis) >> - strace/syscall tracepoints (capturing indirect arguments and >>printing human-readable info)

Re: Formal description of system call interface

2016-11-21 Thread Dmitry Vyukov
On Mon, Nov 7, 2016 at 1:28 AM, Szabolcs Nagy wrote: > * Dmitry Vyukov [2016-11-06 14:39:28 -0800]: >> This is notes from the discussion we had at Linux Plumbers this week >> regarding providing a formal description of system calls (user API). > yes a

Re: Formal description of system call interface

2016-11-21 Thread Dmitry Vyukov
On Mon, Nov 7, 2016 at 1:28 AM, Szabolcs Nagy wrote: > * Dmitry Vyukov [2016-11-06 14:39:28 -0800]: >> This is notes from the discussion we had at Linux Plumbers this week >> regarding providing a formal description of system calls (user API). > yes a database of the syscall abis would be useful

Re: Formal description of system call interface

2016-11-11 Thread Andy Lutomirski
On Sun, Nov 6, 2016 at 2:39 PM, Dmitry Vyukov wrote: > Hello, > > This is notes from the discussion we had at Linux Plumbers this week > regarding providing a formal description of system calls (user API). > > The idea come up in the context of syzkaller, syscall fuzzer, which

Re: Formal description of system call interface

2016-11-11 Thread Andy Lutomirski
On Sun, Nov 6, 2016 at 2:39 PM, Dmitry Vyukov wrote: > Hello, > > This is notes from the discussion we had at Linux Plumbers this week > regarding providing a formal description of system calls (user API). > > The idea come up in the context of syzkaller, syscall fuzzer, which > has descriptions

Re: Formal description of system call interface

2016-11-07 Thread Cyril Hrubis
Hi! > We identified a surprisingly large number of potential users for such > descriptions: > - fuzzers (syzkaller, trinity, iknowthis) > - strace/syscall tracepoints (capturing indirect arguments and >printing human-readable info) > - generation of entry points for C libraries (glibc,

Re: Formal description of system call interface

2016-11-07 Thread Cyril Hrubis
Hi! > We identified a surprisingly large number of potential users for such > descriptions: > - fuzzers (syzkaller, trinity, iknowthis) > - strace/syscall tracepoints (capturing indirect arguments and >printing human-readable info) > - generation of entry points for C libraries (glibc,

Re: Formal description of system call interface

2016-11-06 Thread Szabolcs Nagy
* Dmitry Vyukov [2016-11-06 14:39:28 -0800]: > This is notes from the discussion we had at Linux Plumbers this week > regarding providing a formal description of system calls (user API). yes a database of the syscall abis would be useful ..depending on the level of detail it

Re: Formal description of system call interface

2016-11-06 Thread Szabolcs Nagy
* Dmitry Vyukov [2016-11-06 14:39:28 -0800]: > This is notes from the discussion we had at Linux Plumbers this week > regarding providing a formal description of system calls (user API). yes a database of the syscall abis would be useful ..depending on the level of detail it has. (right now

Formal description of system call interface

2016-11-06 Thread Dmitry Vyukov
Hello, This is notes from the discussion we had at Linux Plumbers this week regarding providing a formal description of system calls (user API). The idea come up in the context of syzkaller, syscall fuzzer, which has descriptions for 1000+ syscalls mostly concentrating on types of arguments and

Formal description of system call interface

2016-11-06 Thread Dmitry Vyukov
Hello, This is notes from the discussion we had at Linux Plumbers this week regarding providing a formal description of system calls (user API). The idea come up in the context of syzkaller, syscall fuzzer, which has descriptions for 1000+ syscalls mostly concentrating on types of arguments and