** Description changed:

  Currently there's the blueprint for 64 bit pie by default.  I think this is a 
good goal because there's almost no performance penalties but it will be a lot 
of work.
  https://blueprints.launchpad.net/ubuntu/+spec/64bit-pie-by-default/
  
  Also a bug relating to PIE binaries: #139435.
  
  My proposal is in the mean time the more risky binaries should be PIE at
  least on 64bit.  Using the ssh package as a guide it's a pretty easy
  combination of -fpie in the cflags and -pie in the ldflags.  Then with
  all modern versions of the linux kernel the executable's address will be
  randomized.
  
  Example of PIE 1:
  r...@siti-desktop:~# cat /proc/$(pidof sshd)/maps | grep /usr/sbin/sshd
  7f1f290a1000-7f1f2910b000 r-xp 00000000 08:15 5450407                    
/usr/sbin/sshd
  7f1f2930a000-7f1f2930c000 r--p 00069000 08:15 5450407                    
/usr/sbin/sshd
  7f1f2930c000-7f1f2930e000 rw-p 0006b000 08:15 5450407                    
/usr/sbin/sshd
  
  Example 2:
  r...@siti-desktop:~# cat /proc/$(pidof sshd)/maps | grep /usr/sbin/sshd
  7f5437c9c000-7f5437d06000 r-xp 00000000 08:15 5450407                    
/usr/sbin/sshd
  7f5437f05000-7f5437f07000 r--p 00069000 08:15 5450407                    
/usr/sbin/sshd
  7f5437f07000-7f5437f09000 rw-p 0006b000 08:15 5450407                    
/usr/sbin/sshd
  
  The combination of NX, randomized DLLs, stack, heap, and other maps,
  SSP, -D_FORTIFY_SOURCE makes exploitation of memory corruption
  vulnerabilities extremely difficult.
  
  The only attack vectors left as far as I am aware are:
  * Information leakage (Reasonably well fixed via protecting maps in /proc)
  * JITs (Java, mono etc, firefox 3.1, Not much we can do here)
  * Using code in the executable out of order (Solvable by compiling with PIE).
+ * VSyscall not being randomized.
  
  The last is the easiest to fix and something Ubuntu should do on the
  riskier binaries.
  
  A suggested list of packages that should have pie support added:
   * Firefox (A very large piece of software that has had a large number of 
vulnerabilities in the past and will probably continue to have more).
  * Openoffice (Possibly the largest single piece of software in Ubuntu)
  * Evince (Has had POC exploits in the past)
  * Totem (Supports a large number of media formats using various libraries 
that have had vulnerabilities)
  * Mysql (A number of exploits in the past, from reading the changelogs PIE 
caused regressions)
  * Postgresql (I presume it's got similar issues to Mysql)
  * Xorg-server (Running as root, this might be a challenge I don't know...)
  * Snort
  * Apache (Already done)
  * Samba (Already done)
  * openssh (Already done)
  
  Many of these suggestions are client side but this is where a lot of the
  attacks have been occuring on Windows.  Ubuntu should be premeptive :-).
  
  Over the next few days I hope to attach patches for at least the less
  complex pieces of software to enable PIE.  Hopefully they can be enabled
  in Karmic Koala :-).

-- 
PIE Randomization on more risky binaries
https://bugs.launchpad.net/bugs/356291
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to