Diff for /wikisrc/projects/project/secureplt.mdwn between versions 1.3 and 1.4

version 1.3, 2015/02/20 19:21:44 version 1.4, 2015/02/20 20:41:05
Line 1 Line 1
 [[!template id=project  [[!template id=project
   
 title="Secure-PLT - supporting new PLT formats on alpha"  title="Secure-PLT - supporting RELRO binaries"
   
 contact="""  contact="""
 [tech-userlevel](mailto:tech-userlevel@NetBSD.org)  [tech-userlevel](mailto:tech-userlevel@NetBSD.org)
Line 15  difficulty="medium" Line 15  difficulty="medium"
 duration="3 months"  duration="3 months"
   
 description="""  description="""
 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.  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.
   
   If that is completed, then we can also add the following improvement:
   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.
   
   
 New binutils versions have introduced a different PLT format (enabled with --secureplt) for alpha and powerpc.  
   
 Milestones:  Milestones:
   
 * This project (for alpha) is to add 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.  
 * Support for both the old and new formats in the same invocation will be required.  
 * For all architectures we can improve security by implementing [relro](http://tk-blog.blogspot.com/2009/02/relro-not-so-well-known-memory.html).  * For all architectures we can improve security by implementing [relro](http://tk-blog.blogspot.com/2009/02/relro-not-so-well-known-memory.html).
   * 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.
   * Support for both the old and new formats in the same invocation will be required.
   
 """  """
 ]]  ]]
   

Removed from v.1.3  
changed lines
  Added in v.1.4


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