Перейти к содержимому


Фото
- - - - -

Опыт написания собственного шифровальщика


  • Please log in to reply
9 ответов в этой теме

#1 riaman

riaman

    Member

  • Posters
  • 206 Сообщений:

Отправлено 04 Июль 2017 - 10:05

Я всё-таки потратил половину рабочего дня в пятницу на прошлой недели и, пока коллеги добивали очередного монстра на просторах Калимдора, я писал свой «детский» шифровальщик. В процессе написания было отмечено несколько интересных моментов со стороны Касперского, о которых будет сказано ниже (на машине, где писался «вирус», установлен именно Касперский).

 

Сам шифровальщик работал по следующему алгоритму:
1) Искал все файлы в моих документах (исключая системные, скрытые и т.п.).
2) Читал каждый файл по байтно, изменяя каждый считанный байт по формуле (read_byte XOR key[i]) + 1 и записывал изменённый байт в новый файл.
3) На место считанного байта в оригинальный файл записывал значение 0xFF (в шестнадцатеричной системе) (это для того, чтобы уменьшить вероятность восстановления файла утилитами восстановления удалённых файлов).

 

В процессе написания шифровальщика я последовательно вводил в код перечисленные выше функции, и Касперский сработал только на последнем третьем пункте. Причина срабатывания заключалась в том, что я писал «непонятные» данные в заголовки файлов (в начало файлов). Поэтому я внёс небольшое изменение в этот пункт, и стал перезаписывать данные только в середине файла (после первых 1000 байт и до последних 1000 байт). Но, так как Касперский уже «запомнил» моего шифровальщика, то детект периодически возникал, и пришлось собирать проект не в «дебаге», а в «релизе» (то есть с другими «системными настройками»). В «релизе» детекта не было. И тут меня срочно вызвали товарищи из «боевого братства», бить врагов теперь уже не в Калимдоре, а под Малиновкой. Написание «переносчика» вируса и тестирование пришлось отложить до понедельника…

 

Как известно, утро в понедельник добрым не бывает… Я начал с небольшой доработки моего шифровальщика, но теперь он уже детектился Касперским и под дебажной, и под релизной сборкой, и в разных местах, и с разными названиями… Но это было не из-за того, что программа шифровала файлы, а потому что (как я уже писал) при первой попытке реализации перезаписывания исходного файла перезаписывались «запрещённые» секции файлов (заголовки), и этим мой шифровальщик засветился перед Каспером, и он его каким-то образом запомнил. (и это не смотря на то, что я исправил вирус, и он уже не записывал данные в заголовки файлов). Что бы избежать детекта, пришлось пересобрать проект на старом добром делфи 7 (изначально, разработка велась в делфи 10). И о чудо, пересборка проекта в делфи 7 помогла!

 

Чтоб эксперимент был более реальным, я написал ещё одно приложение «Инженерный калькулятор» с двумя кнопками. «Инженерный калькулятор», помимо сложных математических вычислений 2*2, выполнял скрытую функцию: через 5 секунд после запуска он выполнял поиск шифровальщика (в папке, из которой был запущен) и копировал его в папку автозагрузки пользователя. На этом этапе всё работало хорошо, Касперский молчал. Тогда я подумал, что «Инженерный калькулятор», это же не обычный калькулятор, и он должен быть более «изобретательным». Теперь «Инженерный калькулятор» пытался копировать программу-шифровальщик в автозапуск каждые 30 секунд. Но на этом этапе Касперский выдал предупреждение, что мой калькулятор ведёт себя подозрительно и предложил выбрать что с ним сделать. Пришлось откатить изменения и остановиться на первоначальном варианте, когда программа-шифровальщик копируется один раз папку автозагрузки.

 

Пришло время переходить к тестированию вируса и антивирусов. Я подготовил флешку, на которой было два файла, шифровальщик и «Инженерный калькулятор». Было выбрано два компьютера один с Доктор Вебом, другой с Касперским. Ход эксперимента состоял из следующих шагов:
1) Вставляем флешку в компьютер.
2) Запускаем с неё «Инженерный калькулятор», ждём 20-30 секунд (пока файл нашего шифровальщика поместиться в автозапуск).
3) Закрываем «Инженерный калькулятор».
4) Выполняем перезагрузку компьютера.
5) Ждём, пока все файлы пользователя (вордовские, базы данных аксеса, архивные файлы – всего около 30 штук общим объемом около 10 Мбайт) в папке «мои документы» шифруются.
Почему ждём…? Да потому что ни один из этих двух антивирусов не выдал ни одного предупреждения.

 

Что можно сказать «в сухом остатке», если человек без опыта в сфере «вирусов», на коленке за пол дня написал пусть и не типичный, и «детский» шифровальщик, который никак не детектится…? Да то, что ни один антивирус не может защитить от угроз «нулевого дня», если за дело берётся профессиональный вирусописатель. Остаётся лишь надеяться на оперативность добавления в базы, и на всякие облака, и т.п.

 

p/s: Хорошо, что я предусмотрительно написал утилиту для расшифровки и сделал бэкапы :-)



#2 Konstantin Yudin

Konstantin Yudin

    Смотрящий

  • Dr.Web Staff
  • 19 552 Сообщений:

Отправлено 04 Июль 2017 - 10:50

Чем проще шифровальщик тем сложнее его поймать. В базу они попадают увы пост фактум, в купе со страхом юзера выходит эффективно и не затратно в плане разработки, вот и имеем тренд. Продолжайте свои эксперименты, это всегда полезно ;)
With best regards, Konstantin Yudin
Doctor Web, Ltd.

#3 Konstantin Yudin

Konstantin Yudin

    Смотрящий

  • Dr.Web Staff
  • 19 552 Сообщений:

Отправлено 04 Июль 2017 - 11:02

Главная проблема с энкодерами не как их поймать, а как снизить процент ложных срабатываний. Гляньте вокруг, вокруг легальный софт - энкодеры.
With best regards, Konstantin Yudin
Doctor Web, Ltd.

#4 riaman

riaman

    Member

  • Posters
  • 206 Сообщений:

Отправлено 04 Июль 2017 - 11:30

Продолжайте свои эксперименты, это всегда полезно ;)

Нет уж хватит... )

 

Я не встроил окно с сообщением, куда деньги направлять, поэтому наверное антивирусы не сработали...



#5 v.martyanov

v.martyanov

    Guru

  • Virus Analysts
  • 8 308 Сообщений:

Отправлено 04 Июль 2017 - 11:54

На окно уж точно должно быть поперек. А на чем писали? Не на .NET ли?


Личный сайт по Энкодерам - http://vmartyanov.ru/


#6 Konstantin Yudin

Konstantin Yudin

    Смотрящий

  • Dr.Web Staff
  • 19 552 Сообщений:

Отправлено 04 Июль 2017 - 12:11

Продолжайте свои эксперименты, это всегда полезно ;)

Нет уж хватит... )
 
Я не встроил окно с сообщением, куда деньги направлять, поэтому наверное антивирусы не сработали...

зря, лучший способ понять как работает, сломать все. а чтобы сломать нужно использоваться методики темной стороны, главное не увлечься :)

так же намекну что скоро в бете будут доработки для этой проблемы.
With best regards, Konstantin Yudin
Doctor Web, Ltd.

#7 riaman

riaman

    Member

  • Posters
  • 206 Сообщений:

Отправлено 04 Июль 2017 - 12:31

На окно уж точно должно быть поперек. А на чем писали? Не на .NET ли?

Нет, на делфи 7, для работы с файлами использовал "специализированный в Delphi объект TFileStream". Ну и я не знаю, что за настройки у антивирусов были на машинах, что там админы настроили... Но думаю, особо ничего они не меняли.


Сообщение было изменено riaman: 04 Июль 2017 - 12:33


#8 riaman

riaman

    Member

  • Posters
  • 206 Сообщений:

Отправлено 04 Июль 2017 - 13:01

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

 

Про тёмные силы...

 

Был случайный опыт, когда нужно было записывать людей на одном из сайтов. Запись открывалась всегда в разное время, а очередь была большая... Была разработана программа отслеживания открытия записи и автозаполнения регистрационной формы на сайте. Оставалось ввести только капчу.

 

Через некоторое время даже с этой программой становилось всё сложнее успеть записать человека. Стал думать над расшифровкой капчи. Капча была лёгкая, только из чисел, решил её распознать, но пока собирался засесть за эту задачу, капчу усложнили, добавили буквы... Через некоторое время, я увидел, что капчу можно прослушать... Ну и в результате, я смог распознать капчу по аудио-файлу, но в бою обкатать не успел, т.к. вскоре убрали аудио капчу (видать засекли меня, пока я качал файлы образцов с сайта и отлаживал программу). А после и вовсе закрыли эту интернет запись, т.к. свободные места расходились за 2-3 секунды.

 

Вообще, занятная история была, борьбы "щита и меча". Тянет на отдельный более полный рассказ)


Сообщение было изменено riaman: 04 Июль 2017 - 13:05


#9 Ilyas_k

Ilyas_k

    Newbie

  • Posters
  • 19 Сообщений:

Отправлено 07 Июль 2017 - 22:47

мой шифровальщик засветился перед Каспером, и он его каким-то образом запомнил.

 

 

Любопытно. Стало быть виртуалка с откатываемыми изменениями при перезагрузке + отключенный интернет во время тестов на "совместимость".  Или есть ещё какие нибудь технологии у ав. вендоров, что бы усложнить жизнь вирусописателям? Имеется ввиду способы затруднить возможность выяснить будет ли детект в широкой массе или нет?



#10 riaman

riaman

    Member

  • Posters
  • 206 Сообщений:

Отправлено 08 Июль 2017 - 17:36

Не знаю. Но мне кажется, достаточно не включать интернет на машине, где тестируешь, чтоб если попал под подозрение, то не передался на анализ. Но без интернета облако не работает, а что оно делает, я слабо представляю.


Читают тему: 1

0 пользователей, 1 гостей, 0 скрытых