Переадресация исполнения

10.02.2020


Атакующий в состоянии изменить ваше ядро. Как он использует такую возможность? Большинство RootKit уровня ядра включает способность переадресовывать исполнение. Данное свойство будет перехватывать запрос на запуск некоторого приложения и отображать его на выполнение другого приложения по выбору атакующего. Это классический «кнут и пряник»: пользователь или администратор требуют выполнить программу foo, ядро притворяется выполняющим foo, но фактически выполняет программу bar.


Подумайте о возможности переадресации выполнения. Рассмотрим сценарий с участием UNIX-процедуры /bin/login. Атакующий устанавливает RootKit уровня ядра и оставляет файл /bin/login без изменений. Все запросы на выполнение /bin/login (которые связаны с чьим-либо входом в систему) отображаются на невидимый файл /bin/backdoorlogin. Когда пользователь пытается войти, запускается программа /bin/backdoorlogin, которая содержит пароль черного хода, разрешающий доступ с привилегиями супервизора. Тем не менее, когда системный администратор запускает утилиту проверки целостности файлов, например Tripwire, анализируется нормальная процедура /bin/ login: выполнение переадресовано; вы можете смотреть на оригинальный файл /bin/login и проверять его целостность. Оригинальная процедура не изменялась, так что ее хэш-код MD5 останется тем же самым.


Любите футбол? Зарабатывайте на своем хобби вместе с https://1xbet-total.ru/.


Переадресация выполнения позволяет атакующим модифицировать систему жертвы по своей прихоти, маскируя все сделанные изменения. Атакующий создает измененную вселенную в вашем компьютере, который выглядит хорошим и довольным. Вы можете просмотреть файловую систему, взглянуть на различные исполняемые программы и даже вычислить для них стойкие криптографические хэш-коды. Все выглядит удивительно нетронутым. Однако система, которую вы наблюдаете, - иллюзия, потому что всякий раз, когда вы запускаете конкретную программу, ядро выполнит что-нибудь другое. Вы хотите активизировать /bin/login? Вы на самом деле выполните /bin/backdoorlogin. Вместо sshd (сервер SSH) запустится hacked_sshd. Такая переадресация выполнения является довольно опасной штукой, позволяя атакующему без труда реализовать несколько мощных черных ходов.


Хороший образ путаницы, вносимой переадресацией выполнения, представляет кинофильм «Матрица» (The Matrix). Здесь персонажи действуют в двух мирах: виртуальном и реальном. Часто трудно определить, находятся актеры в нормальном мире или в компьютерной модели, что и приводит к разнообразным крутым поворотам сюжета. В случае с RootKit уровня ядра с переадресацией выполнения вы тоже не будете уверены, выполняете ли вы на самом деле программу, о которой думаете, что вы ее выполняете. Вы полагаете, что запускаете некоторую программу, но на самом деле происходящее определяет скрытый атакующий - так же, как в «Матрице».