On 21.03.2019 14:21, Mimi Zohar wrote:
<snip> Igor, as for shared libraries: 1. Extend ima_file_mmap() to permit, based on policy, verifying file signatures for files being mmap'ed read and preventing validly signed files from being mmap'ed write. 2. Define an IMA mprotect hook that permits, based on policy, preventing memory having validly signed backing storage from setting the memory region to write, but allow execute. (This will require access to the IMA mmap signature verification status cached in the "iint".)
Yes, it could work. Pages mapped from the signed backing store rarely need to be altered so preventing them from being changed will work. Along with disabling creating anonymous executable pages at all since is is hardly needed for the system services for normal work. It could block polymorphic code so only ROP (return-oriented programming) could survive after intercepting of execution flow without having an ability to download any extra code from their servers.