On Fri, Jul 14, 2006 at 12:07:20AM +0400, Alexey Tourbin wrote: > On Thu, Jul 13, 2006 at 01:01:05PM +0400, Dmitry V. Levin wrote: > > On Thu, Jul 13, 2006 at 10:14:20AM +0300, Michael Shigorin wrote: > > > Здравствуйте. > > > Есть маленький вопрос по поводу http://lwn.net/Articles/189546/ > > > > Предварительно следует ознакомиться с Дреперровской статьёй > > (http://people.redhat.com/drepper/nonselsec.pdf "ELF Data Hardening"). > > Типа круто. Я только что понял, зачем нужны PIE. > > У разделяемых библиотек появляется ещё одно преимущество по сравнению > со статическими библиотеками, по части security: если ядро поддерживает > рандомизацию адресов загрузки разделяемых библиотек, то атаки типа > return-to-libc осуществить гораздо сложнее. > > С другой стороны, Дреппер как бы немного лжот вот в каком отношении. > Рандомизация на самом деле происходит не per-process, а per-exec. > Это значит, что в схеме с privilege separation, когда главный процесс > форкается и сбрасывает права, карта адресов у каждого детёныша будет > одна и та же. Если хакер не угадывает нужного адреса с первого раза, > то детёныш мрёт, но это является ненулевой информацией для последующих > попыток. > > То есть если у детёныша нет прослойки из exec'а, тогда > последовательность угадываний имеет смысл. От рандомизации в основном > выигрывают "суперсерверы" типа inetd. По этой причине, кстати, в новом openssh сделан reexec - детёныш перезапускает себя (/proc/self/exe) перед началом работы. -- ldv