Как и обещал, выкладываю запись судебного заседания с выступление эксперта Ануфриева из Лаборатории Касперского: ссылка
Здесь перепечатка опроса: ссылка
А вот и сама его экспертиза: ссылка
Поясню, что конкретно делал эксперт, какую экспертизу он проводил. Эксперт сравнивал некий файл crypted.exe с исходным кодом ботнета Тополь-М (предположительно найденном на ноутбуке моего брата Игоря). Чтобы Вы понимали исходный код – это тысячи файлов, как минимум самого бота (сокращённо от англ robot), сервера управления и той самой зелёной админки.
Большое спасибо господам Александру Матросову и Евгению Родионову из компании ESET (к этим двум господам мы вернёмся позже), которые, оказывается, одновременно с Group IB в сентябре 2010 года получили доступ именно к тому же серверу 216.245.223.50 (предположительно атаковавшего сайт Ассиста), а в мае 2012 года выложили своё собственное исследование
Маленькая сноска, Group IB и является русским отделением ESET’а.
Как я понимаю из исследования ESET’а (которое позже было опубликовано на русском в журнале Хакер под названием “Festi: злобный и бестелесный”, ссылка предоставлена анонимом), сам файл crypted.exe – это дропер с руткитом, а рутким в свою очередь умеет только загружать дополнительные модули с сервера управления. Но вернёмся к эксперту Ануфриеву:
Врублевский:
— У меня технический вопрос. Вы анализировали программное обеспечение, найденное на компьютерах Артимовича, Вы пробовали его запускать? Исходный код. Вы пробовали его запускать?
Ануфриев:
— Анализировали исходный код и не только его. Есть в экспертизе данные. Есть готовая работоспособная компьютерная программа, которая является работоспособной, как я уже сказал, мы пробовали её запускать, да. Более того, для того, чтобы исследовать компьютерную программу её в принципе запускать необязательно.
Судья:
— Поясните тогда, почему не обязательно?
Ануфриев:
— Мы используем методики обратной разработки. Реверс-инжениринг. В России таких четких русских понятий не существует, поэтому, если я буду пользоваться сленгом или непонятными словами…
Под рабочим продуктом Ануфриев имеет в виду именно тот crypted.exe, который по сути ничего сам делать не умеет.
Дальше эксперт рассказывает, как он сравнивал функционал готового продукта с исходным кодом (не буду всё цитировать, вы сами можете это прочитать – очень познавательно). Кратко: дизасемблировал crypted.exe, получил его код, который у него совпал с исходными кодами предположительно обнаруженными на ноутбуке.
А вот реально выбило меня то, когда эксперт стал откровенно говорить неправду, юлить и переводить темы:
Артимович Дмитрий:
— В бинарном коде, где нет названий, Вы можете определить, взглянув в дизассемблере, что там есть такие-то функции с такими-то названиями, и Вы их нашли в исходном коде?
Ануфриев:
— Честно говоря, порой могу. Вот серьёзно. Опыт позволяет. А вообще, если Вы откроете Ida Pro, я вообще рекомендую Вам настоятельно потому, что я так понимаю, Вы разработкой занимаетесь. Очень качественная программа. Опять это не реклама. Она может восстанавливать и наименования функций, она восстанавливает все библиотеки, системные. Более того, есть дополнительные модули, которые можно писать и самому, которые даже и в исходные коды часть могут вернуть.
Артимович Дмитрий:
— То есть Вы утверждаете, что в бинарном коде можно восстановить даже названия функций?
Ануфриев:
— Конкретно было такое или не было? Ну, ребят, давно было это дело. А-то, что функционал полностью совпадал…
Артимович Дмитрий:
— То есть Вы не уверены, что можно полностью восстановить названия? И сравнить потом?
Ануфриев:
— На 100% в этом никто не будет уверен. Значит, объясню почему. Потому что это техническое средство. В ряде случаев получается, в ряде случаев не получается.
Артимович Дмитрий:
— Вы уверены, что это один и тот же функционал и исходный код с компьютера, отданного на экспертизу, можно собрать и получится то же самое?
Ануфриев:
— Что Вы подразумеваете под вопросом то же самое? То же самое, что у них MD5 совпадёт?
Артимович Дмитрий:
— Получится такая же программа.
Ануфриев:
— То есть программа, обладающая схожим функционалом, давайте так.
Артимович Дмитрий:
— Вы вообще уверены, что она собирается изначально? Что это не просто набор какого-то текста непонятного? С одинаковыми названиями?
Ануфриев:
— Например, японский текст для кого-то тоже непонятен. Так же и исходные коды. Для кого-то они непонятны, а для меня они читабельный текст. Из которого я могу заключить о функционале программы реальном или предполагаемом. Если она не собирается, она может не собираться по разным причинам. Может, у сборщика есть ключ какой-то, специальный, который там позволяет собирать. Это не нужно для проведения экспертизы. Для проведения экспертизы мне достаточно того, что я имел. Было бы недостаточно, в принципе, запросил бы еще.
Более того, эксперту НЕ НУЖНО собирать и запускать исходный код. Собственно какая разница, может там исходники ядра Линукса лежат, они ведь тоже совпадут в какой-то части “по названиям”.
Дальше эксперт сказал, что на основании методик Лаборатории Касперского программа является вредоносной. А самих методик, как выяснилось, он не знает.
Артимович Дмитрий:
— Вы можете нам рассказать о методиках?
Ануфриев:
— Да, классификация есть на сайте, с ней можно ознакомиться.
Артимович Дмитрий:
— Вы можете нам сказать, как Вы классифицировали непосредственно вот этот экземпляр? Методику.
Ануфриев:
— Я думаю, что много времени займет. Несущественный вопрос.
Артимович Дмитрий:
— По Вашему мнению этот собранный продукт с похожим функционалом к этому исходному коду?
Ануфриев:
— Один в один, практически. Там очень мало различается, в чём конкретно прямо сейчас не вспомню.
Благодаря исследованию ESET’а мы знаем что crypted.exe – это дроппер, малая часть из всего ботнета. А вот у эксперта Ануфриева он совпал со всем исходным кодом один в один. Причём исходный код crypted.exe ему восстановил дизасемблер IdaPro:
Ануфриев:
— Я Вас понял. Возвращаясь к началу повествования поясню, что интерактивный дизассемблер Ida Pro – это специальная программа, которая предназначена для того, чтобы пускать нас внутрь другой программы. То есть раскрывать её. Частично расшифровывать её. Частично раскодировать её. Декодировать, дизассемблировать. То есть тот текст, который я получаю в этой программе, он в принципе уже гораздо больше, чем сама программа. Часть функций и имён она автоматически восстанавливает. Я убежден, что присутствующие в этом зале знакомы с этой программой. Часть восстанавливает автоматически, часть автоматически не восстанавливает, но даёт инструмент для своего пользователя, которым он может воспользоваться, написать дополнительную программу обработки и также часть функций восстановить, не функций, а имен текста. И дополнительным программным продуктом к этому программному продукту, то есть дополнительный продукт к Ida Pro, набор библиотек, который позволяет попытаться восстановить частично даже исходный код к программе, то есть мы можем там видеть куски порой, что в исходных кодах было.
Да будет известно эксперту Ануфриеву, что компиляция – это процесс, происходящий с потерей данных, имена функций и переменных при трансляции в машинный код просто удаляются, сам же код оптимизируется и может быть частично изменён.
К примеру, inline функции – функция как таковая исчезает, а её код вставляется в места вызова этой inline функции, и многое-многое другое.
А как писал один из моих любимых авторов Герберт Шилдт – тестирование исходного кода важный этап в разработки ПО. Честно я, до встречи с экспертом Ануфривым, не встречал человека который “на глазок” может сказать что сотни тысяч строк исходного кода работают, не то что даже откомилируются, не говоря уже о том, что работают они так как надо.
Артимович Дмитрий:
— Вы вообще в курсе, как работают ботнеты? Что у них есть центр управления?
Ануфриев:
— Да.
Артимович Дмитрий:
— Вы хотите сказать, что на диске, где лежал crypted.exe, естественно, лежал собранный сервер управления, который Вы тоже сравнили по функционалу и он тоже совпал?
Ануфриев:
— С чем сравнил, с чем совпал?
Артимович Дмитрий:
— Видимо, с исходными кодами. Вы знаете, как организовывают ддос-атаку?
Ануфриев:
— Если Вы мне расскажете…
— Страница 5я заключения. Вторая часть лица, то есть листа. В указанной директории содержится файл с исходными текстами программного обеспечения, предназначенного для управления компьютерами, зараженными вредоносной программой Тополь-М, то есть административная панель ботнета.
Артимович Дмитрий:
— С чего Вы взяли, что именно этим crypted.exe она будет управлять? Вы же её даже не собрали. Её нет на диске. Готовой.
Ануфриев:
— Я Вас понял. Фунционал данное подразумевает. И при ответе на вопрос в выводах. Здесь есть… Может организовать ддос-атаку.
Артимович Дмитрий:
— То есть Вы неуверены?
Ануфриев:
— Я во всём уверен абсолютно.
Артимович Дмитрий:
— Вы в голове разобрали сервер управления?
Ануфриев:
— Здесь нельзя утверждать на 100% о том, что это было использовано, как это было использовано, что было использовано именно это. С этим должно разбираться следствие, в дальнейшем суд. Моё дело как эксперта – разобрать полностью и детально функциональные возможности, предоставленного на исследование программного продукта, исходных кодов, частей или других каких-то запчастей для того, чтобы помочь следствию дать ответ на все интересующие вопросы. Вы меня путаете с кем-то. С оперативным сотрудником, со следователем.
Артимович Дмитрий:
— Я не путаю, я просто утверждаю, что получается, что Вы просто посмотрели и сказали, что да, вот этот исходный код, если соберется, то будет управлять.
Ануфриев:
— Если для Вас это так просто, то да. Просто вот так посмотреть…
Именно поэтому я и считаю, что эксперт лжёт! Никакого исследования на самом деле он не проводил. Потому что технически невозможно восстановить исполняемый файл назад в исходный код до такого уровня, что там появятся изначальные названия функций и переменных. При этом заявить, что он собрал в уме весь исходный код (а там тысяч файлов) и он не то что работает, а он работает именно так!
Опять же спасибо господам из ESET’а, которые пояснили что сам crypted.exe ничего кроме загрузки других модулей (частей программы делать не умеет). А при этом Ануфриев нашёл очень богатый функционал:
Артимович Дмитрий:
— Расскажите нам, какой вообще функционал у crypted.exe? Вы же его исследовали.
Ануфриев:
— Да, конечно, было это давно. Я могу зачитать.
Судья:
— Лист дела скажите.
Ануфриев:
— Лист дела не знаю, страница экспертизы 2я.
Судья:
— Какой абзац?
Ануфриев:
— Детального анализа crypted.exе не приводится. К сожелению.
Артимович Дмитрий:
— То есть Вы разобрали crypted.exe, полностью сравнили его с функционалом кода, но при этом не знаете, что он делает?
Ануфриев:
— Не привожу в заключении детального анализа crypted.exe.
Артимович Дмитрий:
— А что он делает вообще? Может, он кофе готовит?
Ануфриев:
— Может, он кофе готовит. Смешная шутка.
Артимович Дмитрий:
— Что Вы вообще исследовали тогда, если не знаете, что он делает?
Ануфриев:
— Я сказал, что детальный анализ не приводится, я не сказал, что не знаю, что он делает.
— Из исходных кодов выводы есть.
— Что делает она (эта программа). Тогда страница вторая заключения эксперта, ответ на 2й вопрос. Какие функции они выполняют. Детальное описание функций. Не будем на них останавливаться, здесь всё-таки 3 листа.
Артимович Дмитрий:
— Вы вкратце скажите.
Ануфриев:
— К каким последствиям приводит их работа. Вот это будет вкратце. В результате действий вредоносной программы (вредоносная программа понятие я раскрыл). Тополь-М – это самообозначение в исходных текстах программы. Сначала зачитаю. Злоумышленник может организовать ддос-атаку на произвольный сервер в сети интернет, похитить конфиденциальные данные пользователя, организовать массовую рассылку спама, произвести несанцкционированную загрузку и запуск на компьютере пользователя другого вредоносного программного обеспечения, использовать компьютер пользователя в роли прокси-сервера для осуществления несанкционированных действий в сети интернет.
Читайте полную распечатку опроса эксперта сами: как Windows стала вредоносной, а ботнет Тополь-М перестал таковым являться.
Перлы:
Артимович Дмитрий:
— То есть Вы это всё в уме вот так вот посмотрели?
Ануфриев:
— Неее. Дизассемблирует в уме у нас только Крис Касперски, я книжку читал. Такая книжка. Но это неее. Я запускал на компьютере программу Ida Pro, открывал в ней данный файл, который был обнаружен, далее я проводил его исследовани
Артимович Игорь:
— Тогда я не понимаю, из чего следует вывод, что функционал одного совпадает с функционалом другого?
(Вы никогда не догадаетесь, как на этот вопрос ответил эксперт Ануфриев)
Ануфриев:
— Я понял. Приведу пример из религии, если позволите. Так тексты абсолютно точны. Вот «Отце наш» читал на русском языке и на старо-греческом. Одно и тоже. А очень по-разному написано. Вот также и в исходных кодах. Имеется одно и тоже, написано по-разному. А-то, что я прочитал в исходных кодах, и то, что я видел, исследуя программный продукт. Тут вообще вот.
ссылка на оригинал статьи http://habrahabr.ru/post/168501/
Добавить комментарий