О руткитах, то есть вредоносном программном обеспечении, активно использующем технологии маскировки, чтобы скрыть свое присутствие в зараженной системе, знают преимущественно специалисты и энтузиасты. Между тем знать о существовании этой дряни стоит каждому пользователю, потому что если он еще не сталкивался с такой заразой лично, то велика вероятность, что столкнется в будущем, ведь создатели вирусов изобретают новые способы остаться незамеченными. И, кстати говоря, охотно делятся этими способами с другими преступниками за деньги.
Подобная скрытность позволяет вредоносному программному обеспечению очень долго, месяцами и даже годами, оставаться на компьютере пользователя и использовать машину по усмотрению злоумышленника. Вариантов тут немало: генерировать виртуальную валюту (биткоины), участвовать в рассылке спама, DDoS-атаках и тому подобных неправомерных действиях. Функционал руткита позволяет вредоносному коду скрывать свою активность не только от штатных средств ОС, но и от сенсоров антивирусной и сетевой защиты. Именно поэтому стоит разобраться, есть ли в вашем антивирусном продукте защита от руткитов и насколько она эффективна.
Что же позволяет руткиту оставаться незамеченным? Все довольно прозаично: зловред старается встроиться глубоко в структуру операционной системы и перехватывать стандартные запросы на чтение файлов, получение списка запущенных процессов и так далее. Ответы на эти запросы руткит выдает в отредактированном виде, стирая из всех списков свои файлы, процессы и прочие следы. Применяются и другие техники, такие как внедрение в легитимный процесс и «паразитирование» на его памяти, например. Это позволяет вредоносному ПО скрываться от недалеких антивирусных продуктов, которые работают на уровне операционной системы пользователя и которым не дано спуститься чуть глубже к ее ядру. А если антивирус все-таки научился находить руткит, то вредоносный код пытается деактивировать защиту, удалив какие-нибудь ее критичные компоненты. Один из ярких представителей подобного вида зловредов использовал интересную технику «ловли на живца». Руткит создавал файл-приманку, на которую реагировало антивирусное ПО. Как только антивирус пытался обратиться к этому файлу, руткит сразу завершал антивирусный процесс, а чтобы предотвратить его последующие запуски, изменял правила доступа к исполняемым файлам антивируса.
Как прекратить это безобразие? Во-первых, чтобы определить подозрительную активность и обнаружить активный руткит, нужно пристально следить за данными и критически важными системными файлами на низком уровне и тем самым ловить те угрозы, которые модифицируют структуры жесткого диска. Сравнивая «показания», полученные от ОС, с анализом данных на низком уровне, можно находить подозрительные различия и таким образом обнаруживать даже новые, не занесенные в базы руткиты. Во-вторых, нужно обеспечить достаточную самозащиту антивирусного продукта для того, чтобы зловред не смог вывести его из строя. И, наконец, в-третьих, нужно удалять все без исключения компоненты зловреда, которые, кстати, могут оказаться зараженными файлами операционной системы. Удаление этих файлов ставит под удар работоспособность всей ОС – это значит, что антивирусный продукт должен безболезненно лечить зараженные системные файлы. Только убедившись, что технологии «антируткит» в используемом антивирусном продукте выполняют на практике все вышеописанные требования, можно уверенно сказать: «Я знаю, что такое руткиты, и мой продукт от них защищает».