На конференции Usenix Security 2009 исследователи Kehuan Zhang и XiaoFeng Wang показали новую уязвимость в безопасности многопользовательских Linux-систем.
В Linux псевдофайл /proc/$PID/stat любого процесса может быть прочитан любым пользователем (world-readable). Этот файл содержит разную информацию о состоянии конкретного процесса, в том числе текущее значение регистров ESP (Extended Stack Pointer) и EIP (Extended Instruction Pointer). На первый взгляд эта информация бесполезна, но исследователи обнаружили, что если часто запрашивать эту информацию, то можно примерно определить ход выполнения программы (получается что-то типа «неточной» отладки). А по ходу выполнения программы можно определить какие она получает данные.
Исследователи разработали утилиту для проведения такой атаки и успешно испытали её на vim, ssh и gedit. Из-за невозможности точно проследить ход программы (т.к. между чтениями /proc/$PID/stat программа-жертва может успеть выполнить много операций) точный ввод определить невозможно, но зато возможно очень сильно сократить область поиска, например при подборе пароля.
Другие Unix-подобные системы (например Solaris и FreeBSD) не предоставляют информацию о регистрах, но предоставляют другую информацию, которую можно использовать для подобных атак.
>>> Подробности