Messages in this thread | | | From | David Laight <> | Subject | RE: [PATCH v4 0/7] kernel: introduce uaccess logging | Date | Sat, 11 Dec 2021 17:23:26 +0000 |
| |
From: Peter Collingbourne > Sent: 09 December 2021 22:16 > > This patch series introduces a kernel feature known as uaccess > logging, which allows userspace programs to be made aware of the > address and size of uaccesses performed by the kernel during > the servicing of a syscall. More details on the motivation > for and interface to this feature are available in the file > Documentation/admin-guide/uaccess-logging.rst added by the final > patch in the series.
How does this work when get_user() and put_user() are used to do optimised copies?
While adding checks to copy_to/from_user() is going to have a measurable performance impact - even if nothing is done, adding them to get/put_user() (and friends) is going to make some hot paths really slow.
So maybe you could add it so KASAN test kernels, but you can't sensibly enable it on a production kernel.
Now, it might be that you could semi-sensibly log 'data' transfers. But have you actually looked at all the transfers that happen for something like sendmsg(). The 'user copy hardening' code already has a significant impact on that code (in many places).
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
| |