Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

articles:virii-h2f [2017/09/05 02:55] (текущий)
Строка 1: Строка 1:
 +====== virii-h2f ======
 +<​sub>​{{virii-h2f.odt|Original file}}</​sub>​
 +
 +====== поиск малвари своими лапами и хвостом ======
 +
 +крис касперски,​ ака мыщъх, no-email
 +
 +**как антивирусы детектят малварь всем хорошо известно. ни хвоста они ее не детектят,​ даже когда последнему ламеру ясно, что с компьютером что-то не то. живность резвиться и размножаются. виртуальные вселенные встают и рушатся в полный рост, а разные там ****KAV'​****ы и ****NOD'​****ы не мычат не телятся. короче,​ отправляем антивирусы в топку и включаем свой мозг (если нет своего,​ подойдет и чужой),​ зарываясь в недра операционной системы и проверяя на стерильность все "​злачные"​ места обитания малвари**
 +
 +===== введение =====
 +
 +Антивирусы это фигня! Срань господняя! А хвост это рулез! Особенно при наличии хорошей травы. Да только где сейчас траву достать?​ Ведь по всему видно, что не сезон. Все, что надербанили по осени уже давно скурили. Никаких развлечений. Разве что малварь погонять. Развели тут, понимаешь! Бардак! Это же непорядок конкретный! А непорядок надо разгребать. ​
 +
 +Конечно,​ наивно надеяться,​ что в интеллектуальном состязании с зловредной малварью можно справиться по готовым рецептам. Существует тысяча и один способ внедрения в систему и с каждым днем появляются все новые и новые, учитывающие ошибки своих предшественников и умело маскирующиеся так, что хрен их найдешь. Но крутой малвари очень немного. Они стоит нехилых денег (от десяти килобаксов) и пишется строго под заказ для целенаправленных атак на конкретные организации. Выпускать их в "​живую природу"​ никто не собирается,​ и 99% заразы,​ с которой нам приходится иметь дело, это примитивные пионерские вирусы,​ написанные в процессе изучения Дельфи (или Визуал Бацика) и органически не способные к маскировки. Обнаружить их присутствие в системе — все равно что два байта переслать.
 +
 +Главное — это научится основам анализа,​ освоить пару-тройку эффективных приемов,​ после чего технику боя можно шлифовать и самостоятельно уже без помощи автора и его победоносного хвоста.
 +
 +{{virii-h2f_Image_0.png}}
 +
 +===== хронология вирусного внедрения или машина времени =====
 +
 +Операционные системы семейства Windows помимо атрибута времени последней модификации файла, так же поддерживают атрибуты времени создания и времени последнего обращения. Как это можно использовать на практике?​ А вот как — после установки системы все файлы в каталогах Windows и System32 имеют идентичные (ну, практические идентичные) атрибуты времени создания,​ позволяя отслеживать файлы, установленные позднее.
 +
 +Допустим,​ мы установили систему со всеми необходимыми программами и больше ничего не ставили. Тогда, все исполняемые файлы и динамические библиотеки из каталогов Windows и System32, созданные позднее этого срока, с высокой степенью вероятности являются троянскими программами. Естественно,​ дату создания файла легко изменить и умной малвари ничего не стоит замаскироваться,​ но, как показывает практика,​ очень редкая малварь заботиться об этом и на времени создания вредоносные программы палятся косяками.
 +
 +А как быть, если мы беспорядочно устанавливали новые программы и удаляли старые?​ В этом случае в каталогах Windows и System32 появляется множество файлов,​ принадлежащих честным программам,​ с различными датами создания и малвари ничего не следует затеряться среди них. На самом деле, практически каждому честному файлу из каталогов Windows и System32 соответствует "​своя"​ программа из каталога Program Files,​ представленная одним или несколькими файлами и ярлыками на рабочем столе или в меню "​пуск"​.
 +
 +Просматривая файлы в каталогах Windows и System32 смотрим на время их создания,​ пытаясь найти файлы с близким временем создания в каталоге Program Files и, если этот поиск завершился успешно,​ считаем,​ что с файлом все ОК, в противном случае устраиваем суровые разборки на предмет того откуда он взялся и кто его установил.
 +
 +Некоторые программы (например,​ хранители экрана) устанавливают себя только в каталог Windows, не трогая остальных,​ что делает их похожими на малварь. Остается лишь смотреть на дату создания и мучительно вспоминать — что мы устанавливали на свой жесткий диск и когда.
 +
 +Описанная методика может кому-то показаться слишком утомительной и ненадежной,​ однако,​ она выручала мыщъх'​а не раз и не два, в то время как технически более продвинутые приемы отдыхали,​ не показывая никакого позитивного результата. Самое главное – анализ даты создания файлов не требует никаких навыков и доступен каждому,​ тогда же как дизассемблированием владеют считанные единицы.
 +
 +ОК, будем считать,​ что мыщъх вас уговорил. А раз так, переходим от слов к делу. Для просмотра даты создания открываем "​проводника"​ Windows, в меню "​вид"​ выбираем "​таблица",​ затем "​вид"​  "​настройка столбцов"​ и взводим галочку напротив "​создан"​. Щелкнув мышью по шапке таблицы,​ выбираем сортировку по убыванию даты создания,​ после чего самые свежие файлы окажутся в начале списка.
 +
 +{{virii-h2f_Image_1.png}}
 +
 +Рисунок 1 просмотр даты создания в "​проводнике"​ Windows
 +
 +Ой, сколько здесь всего интересного (см. рис. 1)! На мыщъхином компьютере в каталоге System32 обнаруживается множество файлов preflib_Prefdata*,​ автоматически создаваемых системой и хранящих данные о счетчиках производительности. Пропускам их и идем дальше. Видим пару подозрительных файлов:​ pdfcmnt.dll и MSMPIDE.DLL,​ дата создания которых совпадает с датой создания каталога PDFCreator в Program Files. Ага, значит,​ это динамические библиотеки,​ принадлежащие одноименной программе,​ установленной мыщъем в обозначенное время.
 +
 +Затем опять идут счетчики производительности и динамические библиотеки кодека FFShow – ff_vfw.dll и ff_vfw.manifest,​ а за ними… подозрительный исполняемый файл epinh.exe, не соответствующий никакому каталогу из Program Files.
 +
 +Идем на www.virustital.com (или любую другую on-line службу аналогичного типа) и прогоняем epinh.exe через кучу антивирусов,​ некоторые из которых начинают ругаться на неизвестного вируса (см. рис. 2). Следовательно,​ вину обвиняемого можно считать полностью доказанной без права на оправдание.
 +
 +{{virii-h2f_Image_2.png}}
 +
 +Рисунок 2 результат проверки epinh.exe на on-line службе Virus Total,​ прогоняющей файл через множество антивирусов
 +
 +Еще удобнее осуществлять поиск файл с помощью FAR'а (консоль рулит, причем совершенно без руля), выбрав детальный режим отображения панелей Right/​Left Control – 5 (не путать с F5!), и нажав Ctrl-F8 для сортировке по дате создания (см. рис. 3).
 +
 +{{virii-h2f_Image_3.png}}
 +
 +Рисунок 3 просмотр даты создания в FAR'e
 +
 +Часто, после посещения сайтов "​клубничной"​ тематики или запуске файлов,​ полученных из ненадежных источников (например,​ самостоятельно пришедших со свежем мылом) приходится гадать:​ поимели нас или нет?
 +
 +Поиск файлов,​ созданных за последние сутки, является идеальным средством выявления заразы. Нажимаем "​пуск"​  "​найти"​  "​файлы и папки",​ указываем диски на которых следует осуществлять поиск (как минимум необходимо указать диск, содержащий операционную систему),​ в "​параметрах поиска"​ взводим галочку напротив "​даты"​ и говорим искать файлы, созданные за последний день, после чего нажимаем кнопку "​найти"​ и ждем результатов (см. рис. 4).
 +
 +{{virii-h2f_Image_4.png}}
 +
 +Рисунок 4 поиск файлов,​ созданных за последние сутки, позволяет обнаружить малварь по "​горячим"​ следам
 +
 +В данном случае,​ в каталоге System32 обнаружился "​свежеиспеченный"​ файл hldrrr.exe, маскирующийся под самораспаковывающийся rar-архив,​ который мы не создавали и который,​ очевидно,​ является зловредной программой подлежащей проверке на Virus Total с последующим удалением.
 +
 +===== объекты автозагрузки =====
 +
 +В уже существующие исполняемые файлы современная малварь внедряется крайне редко, предпочитая прописывать себя в "​автозагрузку"​ (условно),​ запускаясь вместе с загрузкой операционной системы. Появление программы,​ которую мы не устанавливали,​ в объектах автозагрузки свидетельствует о вирусном заражении,​ причем,​ в отличии от даты создания файла, которую ничего не стоит изменить,​ замаскироваться в объектах автозагрузки намного сложнее и на это способна только самые продвинутая малварь,​ именуемая rootkit'​ом,​ но о rootkit'​ах мы поговорим чуть позднее.
 +
 +Проблема в том, что объектов автозагрузки очень много. Они живописно разбросаны по ветвям реестра,​ полный перечень которых занял бы целую страницу,​ а может быть даже две. Однако,​ нет никакой необходимости в том, чтобы держать весь этот легион технических подробностей у себя в голове. Существует множество утилит,​ автоматически сканирующих список автоматически загружаемых объектов с учетом последних веяний времени (Microsoft добавляет все больше и больше веток реестра,​ в которых прописаны пути к файлам и/или динамическим библиотекам,​ которые необходимо загрузить при старте операционной системы).
 +
 +Одной из таких утилит является условно-бесплатная программа Anti-Spy Info,​ которую можно загрузить с одноименного сайта (http://​anti-spy.info/​) и пользовать 30 дней,​ а затем громко сказать "​кря"​ или (о ужас!) приобрести платную версию,​ впрочем,​ это уже не относится к обсуждаемой проблеме.
 +
 +Короче,​ запускам Anti-Spy Info (см. рис. 5) и на экран тут же выводится список активных процессов и автоматически загружаемых объектов (тип запуска того или иного объекта приведен в графе "​запуск"​). Все, что нам нужно сделать — это следить за списком автозагрузки на предмет появления в нем новых объектов. А чтобы не запутаться в программе предусмотрен вывод информации в файл ("​файл"​  "​экспорт в…"​),​ просто сохраняем отчет при каждом запуске,​ а затем сличаем его с предыдущей версией. Если никаких приложений мы не устанавливали,​ а список автозагрузки обогатился новыми жильцами — это малварь.
 +
 +{{virii-h2f_Image_5.png}}
 +
 +Рисунок 5 внешний вид программы Anti-Spy Info
 +
 +В Anti-Spy Info заложен достаточно мощный эвристический механизм,​ анализирующий активные процессы и автоматически загружаемые объекты,​ определяя вероятность их принадлежности к вирусам. К сожалению,​ эвристика очень часто ошибается,​ в результате чего честные программы классифицируются как "​потенциально опасные",​ а малварь получает рейтинг "​похожа на безвредную"​.
 +
 +Изюминка Anti-Spy Info (до которой не догадался ни KAV, ни NOD32) в том, что она поддерживает "​базу знаний",​ включающую в себя множество файлов,​ чья вредоносность оценивается опытными пользователями Anti-Spy Info самостоятельно. Возьмем,​ например,​ файл SSSensor.dll,​ найденный на мыщъхином компьютере,​ которому Anti-Spy Info присвоила рейтинг 82%, что есть бэд.
 +
 +Заходим на http://​anti-spy.info/​file/​index.html,​ вводим "​SSSensor.dll"​ в строку поиска и через несколько секунд узнаем,​ что "​SSSensor.dll"​ представляет собой компонент SyGate Personal Firewall,​ который,​ действительно,​ присутствует на мыщъхном компьютере и, следовательно,​ на счет вирусов можно не волноваться (см. рис. 6).
 +
 +К сожалению,​ поиск в базе знаний осуществляется только по имени, _без_ учета содержимого,​ и грамотной малвари ничего не стоит прикинуться честной программой,​ однако,​ подавляющее большинство современных вирусов написаны пионерами,​ которые не научились даже генерировать случайные имена и максимум на что они способы — зашить внутрь малвари несколько имен, выбираемых наугад. Как следствие — поиск по именам дает надежные позитивные результаты (т. е. если в базе знаний такой-то файл отнесен к вирусам,​ в его агрессивной природе можно не сомневаться). А вот на негативный результат полагаться нельзя и все "​неопасные"​ файлы необходимо прогнать через антивирусы,​ чтобы удостоверится,​ что мы имеем дело с честной программой,​ а не маскирующейся малварью. Так же обращайте внимание и на дату создания. Если файл представляет собой компонент какого-то приложения,​ время его создания должно совпадать со временем создания всех остальных принадлежащих ему файлов.
 +
 +{{virii-h2f_Image_6.png}}
 +
 +Рисунок 6 "​база знаний",​ содержащая сведения о различных файлах,​ как вредоносных,​ так и вполне "​законопослушных"​
 +
 +===== >>>​ врезка плагины к браузерам =====
 +
 +Достаточно большое количество малвари распространяется в виде расширений к браузерам,​ преимущественно к IE (малварь,​ поражающая Горящего Лиса и Оперу мыщъху до сих пор не встречалась),​ что обеспечивает высокую степень скрытности,​ поскольку в этом случае отпадает необходимость порождать новый процесс,​ а как найти расширения знает далеко не каждый хакер, не говоря уже за пользователей.
 +
 +Касательно IE: чтобы обезвредить малварь достаточно зайти в меню "​сервис",​ найти там "​свойства обозревателя"​ (см. рис. 7) и сбросить галочку напротив пункта "​включать сторонние расширения обозревателя"​ (она находится в разделе "​обзор"​ вкладки "​дополнительно"​). Если этот пункт отсутствует,​ значит,​ вы используете слишком древнюю версию браузера – срочно обновляйтесь!!! Ведь через не заткнутые дыры черви лезут только так! Устроили,​ тут понимаешь. Зоопарк!!!
 +
 +{{virii-h2f_Image_7.png}}
 +
 +Рисунок 7 отключение сторонних расширений в IE
 +
 +Однако,​ следует помнить,​ что при отключении сторонних расширение отвалится панель Google Toolbar и перестанет работать контекстное меню многих менеджеров закачки,​ с чем смириться никак нельзя. К счастью,​ Anti-Spy Info умеет отображать сторонние расширения IE, что существенно упрощает поиск малвари.
 +
 +Горящий Лис и Опера выгодно отличаются от IE тем, что самостоятельно выводят список расширений,​ позволяя выборочно отключать те из них, которые мы не устанавливали,​ поэтому,​ прибегать к помощи утилит для решения этой задачи нет никакой необходимости.
 +
 +===== игры с root-kit'​ми в прятки =====
 +
 +Rootkit'​ом называют продвинутую мальварь,​ скрывающую свое присутствие на компьютере. В эпоху господства MS-DOS такие программы называли "​стелс-вирусами"​ (Stealth), но сейчас эта терминология признана устаревшей,​ к тому же от стелс-вирусов,​ ныкающих свою тушу в заражаемых файлах,​ rootkit'​ы отличаются тем, что используются для сокрытия произвольных файлов,​ процессов и сетевых соединений. Тех, которые им укажет разработчик малвари. В исполняемые объекты они внедряются редко. Можно даже сказать,​ что rootkit'​ы вообще никуда не внедряются,​ но легче от этого не становится. Сокрытые файлы не отображаются ни в "​проводнике",​ ни в FAR'​е,​ а сокрытые процессы отсутствуют в "​диспетчере задач",​ поэтому,​ ни Anti-Spy Info,​ ни поиск по дате создания не покажут ничего интересного. Ну как дальше жить?!
 +
 +На самом деле, Rootkit'​ы обнаружить легче всего. Активная маскировка _демаскирует_ факт внедрения! Достаточно получить список файлов/​процессоров/​сетевых соединений,​ обратившись напрямую к внутренним функциям ядра и сравнить полученный результат с данными,​ возвращенными высокоуровневыми API-функциями операционной системы. Всякое расхождение между ними будет свидетельствовать о заражении. Намерения rootkit'​а определить сложнее (некоторые "​легальные"​ защитные механизмы устроены по принципу rootkit'​ов),​ однако,​ нам этого и не требуется. Хорошие программы не маскируются!!! Даже если rootkit не собирается причинять нам вред, используемые им методики стелсирования — это потенциальный глюкодром,​ нарушающий нормальную работу операционной системы. А кому нужны лишние критические ошибки и голубые экраны смерти?​!
 +
 +Для поиска rootkit'​ов можно воспользоваться бесплатной программой Rootkit Revealer,​ написанной знаменитым исследователем Windows NT Марком Руссиновичем,​ занимающую (в упакованном виде) чуть больше двухсот килобайт (причем половину объема отъедает помощь) — http://​download.sysinternals.com/​Files/​RootkitRevealer.zip,​ но несмотря на свою простоту обнаруживающую (по утверждению ее создателя) все rootkit'​ы,​ представленные на сайте www.rootkit.com – основном источнике rootkit'​ов для пионером и прочих парнокопытных.
 +
 +Впрочем,​ серьезные rootkit'​ы в публичный доступ не выкладываются и стоят от 10k-15k денег в баксах. Среди них есть и такие, которые знают о существовании RootkitRevealer и блокируют его запуск с невнятным сообщением об ошибке или же используют специальные алгоритмы обхода,​ с которыми RootkitRevealer уже не справляется. Однако,​ вероятность словить такую продвинутую заразу крайне мала и потому результатом работы RootkitRevealer'​а можно вполне доверять.
 +
 +RootkitRevealer — единственная утилита,​ работающая с файловой системой/​реестром на физическом уровне,​ и способная обнаруживать обнаруживать практически все rootkit'​ы уровня ядра, которые KAV, Dr.Web и другие коммерческие антивирусы даже не пытаются обнажить. NOD32 обнаруживает большинство rootkit'​ов прикладного уровня и некоторые rootkit'​ы уровня ядра, однако,​ во-первых,​ он требует предварительной установки на компьютер (да и весит до хрена),​ во-вторых,​ представляет собой платный продукт,​ и, в-третьих,​ NOD32 намного более известен,​ что отнюдь не идет ему на пользу и качественные rootkit'​ы учатся обходить его еще в зародыше. Все это делает RootkitRevealer практически безальтернативным средством,​ с которым мы сейчас и познакомимся.
 +
 +{{virii-h2f_Image_8.png}}
 +
 +Рисунок 8 внешний вид RootkitRevealer'​а
 +
 +Запускаем RootkitRevealer.exe,​ нажимаем кнопку "​Scan"​ и сидим ждем, пока программа сканирует ветви реестра и дисковые файлы на предмет поиска сокрытой заразы (см. рис.8). Поиск сокрытых сетевых соединений не осуществляется,​ что не есть гуд, поскольку,​ черви все чаще и чаще прибегают к маскировке "​левого"​ трафика. Визуально это выглядит приблизительно так: все приложения закрыты,​ но модем оживленно мигает своими огоньками. Тут уже никакого RootkitRevealer'​а не нужно, чтобы заподозрить наличие непрошеной заразы или AddWare, загружающего баннеры для их пока в "​бесплатной"​ программе,​ сознательно установленной нами на компьютер.
 +
 +Если зловредная программа в дополнение к сетевым соединениям скрывает и свой исполняемый файл (динамическую библиотеку) и/или процесс,​ она будет обнаружена RootkitRevealer'​ом на "​общих основаниях",​ в противном случае,​ вредоносный процесс легко обнаружить с помощью Anti-Spy Info.
 +
 +А что делать,​ если Anti-Spy Info молчит как партизан на допросе,​ RootkitRevealer не показывает ничего интересного,​ а модем все-таки мигает,​ указывая на наличие заразы?​ Приходится прибегать к "​тяжелой артиллерии"​ — отладчику soft-ice, работающему с операционной системой на самом низком уровне и цепляющему все (ну или практически все), что шевелится. Только не спрашивайте меня где его взять! Официально он уже давно не продается,​ так что призывать к покупке лицензионной версии мыщъх никого не собирается. Так же не приставайте ко мне с вопросами "​как установить soft-ice на компьютер"​. Эта тема постоянно всплывает на всех хакерских форумах и включена в кучу faq. Так что Google вам в помощь! Типа дерзайте!
 +
 +Ладно, все это лирика. Будем считать,​ что soft-ice уже установлен. Вызываем его нажатием <​Ctrl-D>​ (комбинация по умолчанию,​ которая при желании может быть изменена) и даем команду "​PROC"​ для вывода списка процессов (см. рис. 9),​ после чего сравниваем полученный результат с данными,​ возвращенными "​Диспетчером Задач"​.
 +
 +В данном случае soft-ice обнаружил процесс sysrtl, который не зацепил "​диспетчер задач",​ что свидетельствует о факте активной маскировки. Безотносительно,​ впрочем,​ его зловредности.
 +
 +{{virii-h2f_Image_9.png}}
 +
 +Рисунок 9 обнаружение сокрытых процессов с помощью soft-ice
 +
 +===== стерилизация системы =====
 +
 +Обнаружив подозрительный объект лучше поскорее избавиться от него. Если мы знаем путь к файлу объекта и он не предпринимает никаких усилий по своей маскировке,​ то проще всего переименовать его во что ни будь типа "​goodbye-malware.dat"​ и тут же перезагрузится,​ после чего отправить разработчикам антивирусов на трепанацию или удалить.
 +
 +Зачем переименовывать?​ А затем, что Windows блокирует удаление запущенных файлов и загруженных динамических библиотек,​ но допускает переименование. Переименование же файла препятствует его запуску после перезагрузки (ведь путь в реестре остался тем же самым!) и с ним можно делать все, что угодно.
 +
 +Если же малварь прячет файл, то побороть его становится уже сложнее. Продвинутая малварь просто не позволит себя удалит (и, в общем-то,​ правильно сделает). Самое простое,​ что только можно предпринять в обозначенное ситуации — это загрузиться с LiveCD, поддерживающего NTFS-разделы (у вас ведь диск размечен под NTFS, верно?​) и удалить все левые файлы на хрен. Этому малварь уже не сможет никак противостоять! Подойдет Window PE (в свободную продажу не поступала,​ но найти ее не проблема),​ Knoppix (довольно популярный клон Linux'​а) или подключение винчестера с инфицированной системой "​вторым"​ к стерильной XP и с последующими удалением нехороших файлов уже оттуда.
 +
 +Как вариант,​ можно переустановить систему с нуля. Способ радикальный,​ зато действенный. Но сначала необходимо скачать все Service Pack'​и вместе с самыми последними заплатками,​ поскольку выходить в сеть на незаштопанной системе — небезопасно. К счастью,​ Microsoft помимо автоматического обновления поддерживает и ручное. Порядок установки заплаток должен совпадать с датами их выпуска (Windows его, увы, не проверяет),​ в противном случае более древние обновления,​ установленные последними,​ могут затереть один или несколько системных файлов со всеми вытекающими отсюда последствиями.
 +
 +Сохранив обновления на локальном диске и записав на бумажке даты их выхода (или просто скачивая обновления один за другим в порядке возрастания их даты, а перед их установкой отсортировав файлы по времени создания),​ загружаемся с LiveCD (или стерильной XP, к которой зараженный винчестер подключен "​вторым"​) и удаляем каталоги Windows и Program Files,​ после чего вынимаем LiveCD (отключаем зараженный диск от стерильной XP, вновь подключая его "​первым"​) и устанавливаем Windows с дистрибутивного CD. Вероятность выживания малвари — минимальна,​ однако,​ время, потраченное на переустановку системы,​ довольно значительно,​ а потому этот способ годится лишь в качестве последнего средства,​ когда остальные уже исчерпаны.
 +
 +===== заключение =====
 +
 +Страх перед вирусами высаживает на конкретную измену,​ заставляя искать черную кошку, которой нет, в темной комнате,​ которой никогда не было. Малварь далеко не так вездесуща и отнюдь не всемогуща. Большинство странностей в поведении компьютера обуславливаются дефектами железа,​ кривизной рук и прочими подобными факторами. Существует только один способ побороть страх — это разобраться в устройстве вирусов,​ освоить ассемблер,​ научиться держать в лапах отладчик с тем чтобы при малейших подозрениях можно было провести полную ревизию системы. Мы боимся того, что не контролируем,​ чем не можем управлять,​ что не знаем… А не знаем потому,​ что не хотим или не даем себе труда узнать. Рядовые пользователи предпочитают отмахиваться от проблемы,​ мол, пользоваться тостером можно даже не будучи инженером. Верно. Тостером — можно. Но компьютер — это все-таки не тостер. Это сложная электронно-вычислительная машина,​ требующая от оператора определенной квалификации,​ и жестоко карающая за нежелание думать.
 +
 +