Annotation of wikisrc/projects/project/secureplt.mdwn, revision 1.4

1.1       jmmv        1: [[!template id=project
                      2: 
1.4     ! wiki        3: title="Secure-PLT - supporting RELRO binaries"
1.1       jmmv        4: 
                      5: contact="""
                      6: [tech-userlevel](mailto:tech-userlevel@NetBSD.org)
                      7: """
                      8: 
                      9: mentors="""
                     10: [Christos Zoulas](mailto:christos@NetBSD.org)
                     11: """
                     12: 
1.2       jmmv       13: category="userland"
                     14: difficulty="medium"
1.1       jmmv       15: duration="3 months"
                     16: 
                     17: description="""
1.4     ! wiki       18: All architectures suffer from code injection issues because the only writable segment is the PLT/GOT. RELRO (RELocation Read Only) is a mitigation technique that is used during dynamic linking to prevent access to the PLT/GOT. There is partial RELRO which protects that GOT but leaves the PLT writable, and full RELRO that protects both at the expense of performing a full symbol resolution at startup time. The project is about making the necessary modifications to the dynamic loader (ld_elf.so) to make RELRO work.
        !            19: 
        !            20: If that is completed, then we can also add the following improvement:
        !            21: Currently kernels with options PAX_MPROTECT can not execute dynamically linked binaries on most RISC architectures, because the PLT format defined by the ABI of these architectures uses self-modifying code. New binutils versions have introduced a different PLT format (enabled with --secureplt) for alpha and powerpc.
        !            22: 
1.1       jmmv       23: 
                     24: 
1.3       mspo       25: Milestones:
1.1       jmmv       26: 
1.4     ! wiki       27: * For all architectures we can improve security by implementing [relro](http://tk-blog.blogspot.com/2009/02/relro-not-so-well-known-memory.html).
        !            28: * Once this is done, we can improve security for the RISC architectures by adding support for the new PLT formats introduced in binutils 2.17 and gcc4.1 This will require changes to the dynamic loader (ld.elf_so), various assembly headers, and library files.
1.3       mspo       29: * Support for both the old and new formats in the same invocation will be required.
1.4     ! wiki       30: 
1.1       jmmv       31: """
                     32: ]]
                     33: 
                     34: [[!tag gsoc]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb