1 августа, 2013
Призрак загрузочного сектора.
My power over you
grows stronger yet
(c) Andrew Lloyd Webber — Phantom Of The OperaКто раньше встал – того и тапки
(с) неизвестен.
В противостоянии «вирус vs антивирус» есть одна любопытная игра – «царь горы».
Правила просты: побеждает тот, кто первым занял телеграф, почтамт, вокзал … В компьютерных войнах победа достаётся тому, кто первым загрузился в память компьютера – он и царь горы. Он первым берёт контроль в свои руки: перехватывает системные вызовы, внедряется в них и тем самым получает полную власть над остальным пространством в компьютере. Остальные, которые появляются позже, работают под присмотром «хозяина» — который в состоянии «нарисовать» им любую реальность – прям как голливудская Матрица.
То есть, реальностью внутри компьютерного мира рулит тот, кто раньше стартовал. Именно он, с вершины своей горы, обозревает окрестности и блюдёт в системе порядок… Или беспорядок, незаметно и безнаказанно – если первым загрузился зловред.
В общем, «The winner takes it all» © ABBA.
А очередь на загрузку начинается с загрузочного сектора – специальной области на диске, где сосредоточены все стрелки на что, когда и куда будет грузиться. И — о, ужас! — даже операционная система подчиняется этому порядку! Немудрено, что кибер-негодяи давно питают нездоровый интерес к оному сектору – это же идеальный вариант надеть тапки первым и полностью скрыть факт заражения компьютера! А помогает им в этом особый класс зловредов – буткиты.
Как загружается ваш компьютер?
О том, что такое буткиты и как мы вас от них защищаем – рассказ ниже.
На самом деле буткиты – история с бородой. Да ещё с какой!
Самый первый вирус для «IBM-совместимых компьютеров» (прадедушек/бабушек современных компов и ноутов) появился в далёком-предалёком 1986м году. (Ага, 27 лет тому назад!) Назвали его «Brain» (поскольку в его коде был именно такой копирайт). Так вот, этот вирус прославился тем, что он был тем самым буткитом-невидимкой – при обращении к заражённому загрузочному сектору он подставлял изначальный (незаражённый) сектор!
У «Brain» впоследствии появилась масса последователей, но с ними быстро научились бороться («вылечивая» вирусные перехваты системных событий), потом появились макро-вирусы для MS Office, потом Интернет-черви – и мода на загрузочные вирусы (включая буткиты) сошла на нет… почти на 10 лет.
Второе дыхание буткиты обрели в конце 2007г., когда на арену выползла новая версия троянца-шпиона Sinowal с функцией заражения загрузочного сектора. Кстати, для некоторых антивирусных компаний это был шок — с конца 90х угроза считалась неактуальной и некоторые продукты в принципе не умели защищать загрузочные секторы. Хотя буткиты сейчас уже не блещут пандемическим распространением, в наших отчётах они стабильно создают заметный вредоносный фон. А компьютерный андерграунд не перестаёт изобретать новые уловки.
Спросите — раз буткиты такие хитрые и неуловимые, почему же они не такие распространённые? И вообще стоит ли овчинка выделки – надо ли заморачиваться разработкой защиты?
Ну, во-первых, мы оцениваем общее количество компьютеров в мире, заражённых разными буткитами где-то в 10 миллионов. Согласитесь, цифра немалая, чтобы называть буткиты нераспространёнными и игнорировать разработку защитных технологий. Во-вторых, этот метод заражения активно используется в сложных целевых атаках при господдержке (например, печально известный FinSpy). Стать жертвой кибервоенщины или спецоперации — тоже не самая приятная перспектива. А в-третьих, для создания буткита требуется очень глубокое знание системного программирования, что не каждому кибер-негодяю по плечу. Соответственно, и защищать от таких тараканов оййй как непросто. Но мы защищаем и весьма успешно. И об одной уникальной фиче нашего арсенала сейчас и пойдёт речь.
География распространения буткитов, 2013г.
(данные только по пользователям ЛК)
Прежде всего, кратенько рассмотрим жизненный цикл буткита.
Обычно буткит-атака начинается через уязвимости в операционной системе или прикладном ПО. Вы просто заходите на некий вебсайт, откуда ваш компьютер прощупывают и, в случае обнаружения слабых мест — атакуют. А именно: на компьютер незаметно загружается файл, который и начинает заражение.
При заражении буткит записывается в загрузочный сектор, а его оригинальное содержимое переносится в укромное место и зашифровывается. Далее при каждом запуске компьютера буткит будет загружать в память свои модули, содержащие вредоносный функционал (например, банковский троянец) и средства маскировки (руткит). Руткит необходим для сокрытия факта заражения компьютера – он перехватывает последующие попытки операционной системы или других приложений (в том числе антивирусов) проверить содержимое загрузочного сектора и… подсовывает из того самого укромного места оригинал! Как будто ничего и не было!
Казалось бы, при таком монопольном контроле над системой эту кибер-заразу можно вывести только загрузкой с другого диска с чистой операционной системой и хорошим антивирусом. Да, это вариант. Но у нас есть технология, которая поможет справиться с буткитами (в том числе неизвестными!) без хирургического вмешательства, пролечив компьютер автоматически.
В наших корпоративных и персональных продуктах есть эмулятор загрузки. Подобно эмулятору операционной системы или браузера он создаёт искусственное окружение, соответствующее процессу загрузки компьютера. Затем эмулятор в обход перехваченных дисковых функций собирает все необходимые секторы, формирует специальный контейнер и запускает его в этом окружении. Буткит думает, что пришло время поработать и запускает свою стандартную процедуру, тут-то мы его и палим! Подозрительный объект через KSN отправляется нашим вирусным аналитикам — они разрабатывают защиту, обновляют базы, а дальше дело техники – антивирус расшифровывает оригинальный загрузочный сектор, удаляет буткит и все его модули и восстанавливает систему. Если нет возможности ждать – можно попытаться вылечить компьютер нашей бесплатной антивирусной утилитой KVRT.
Важно, что эта технология также помогает защищаться от неизвестных буткитов. Во-первых, мы задействуем локальный эвристический анализ и выявляем подозрительную активность во время эмуляции загрузки. Во-вторых, мы используем нашу облачную систему KSN, которая по тем самым контейнерам статистическими методами выявляет буткит-аномалии.
Как и любой эмулятор, виртуализация загрузки компьютера – процесс дюже ресурсоёмкий. С другой стороны – а зачем постоянно и глубоко сканировать загрузочный сектор? В общем, мы совместили приятное с полезным таким образом, что проверка загрузочной области происходит по требованию, по расписанию (например, поздно ночью) или в режиме простоя, когда на компьютере никто не работает. И овцы целы и волки сыты :)
Что будет дальше?
Нет сомнений, что буткиты будут дальше эволюционировать и совершенствоваться. Наглядный пример – полиморфный вирус XPAJ, который запросто обходит новые механизмы защиты Windows для маскировки своего буткит-модуля. На повестке дня биоскиты – вредоносные перехватчики ещё более глубокого системного уровня.
Также ясно, что этот класс зловредов ещё некоторое время останется оружием ограниченного числа кибер-банд, которым логично привлекать к себе поменьше внимания, подольше оставаясь в тени. А тень есть и ещё какая – тень от антивирусной индустрии, которая откровенно забивает на защиту от буткитов.
Ниже – результаты недавнего сравнительного тестирования способности разных антивирусов лечить активное заражение некоторыми распространёнными буткитами. Картина мрачная, но с элементами оптимизма :)
В общем, скучно точно не будет. Вместе с тем, мы тоже на месте не стоим, думаем, работаем, изобретаем, внедряем, детектим, лечим, спасаем!