Motto

В тихом саду здравомыслия
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Чогьям Трунгпа РИНПОЧЕ


Версия для мобильного


четверг, 13 августа 2009 г.

Вирус отакуе Delphi программистов!

 

virus

Вирус, photo by twenty_questions

Gunsmoker сегодня сообщил о вирусе, заражающем установленную Delphi и распространяющим себя через скомпилированные программы. Известно, что в интернете гуляли заражённые версия Qip и Aimp.

Вирус делает 2 вещи: размножается и иногда глючит. Собственно по глюкам его и нашли. Вирус заражает версии Delphi с 4й по 7ю, и при активации перезаписывает собой файл sysconst.dcu, сохраняя оригинальный файл с именем sysconst.dcu.bak.

Подробное описание этого вируса, алгоритма его действия и способа лечения можно найти в блоге GunSmoker-a.

Сама по себе эта разновидность вируса не опасна. Его легко найти и исправить. Однако этот вирус демонстрирует жизнеспособность такого способа заражения, и уязвимость установленной Delphi.

Мне “повезло” обнаружить этот “вирус” в своей инсталляции Delphi 6 и Delphi 7. Причём дата модификации у одного из sysconst.dcu.bak был январь 2008 года.

После этого я задумался, о том, что необходимо как-то защитить Delphi и исходники. Большое везение, что этот вирус оказался довольно безобидным. Однако, возможно появятся (или уже есть) и другие, которые не столь явно себя проявляют.

Первое, что пришло в голову – это занести стандартные папки Delphi Bin и Lib (и некоторые другие) в Subversion. Хотя бы и в локальный. Сказано – сделано. Теперь, если какой-то из файлов изменится, это будет видно невооружённым глазом (TortoiseSVN помечает изменившиеся файлы другой иконкой).

Но зная себя, я могу сказать, что регулярно проверять эти папки вручную мне будет лень. Поэтому, следующий шаг – автоматизировать проверку, и настроить уведомление по e-mail-у если хотя бы один файл изменится.

Это сделать довольно просто. Можно написать, например, .bat-файл, который будет делать следующее:

  1. Запускать консольный svn-клиент, проводить сравнение локальной папки с репозиторием кода и выводить список изменений в какой-нибудь файл.
  2. Написать программку на Delphi, которая будет проверять указанный файл, и в случае появления изменений отправлять e-mail.

А также будет необходимо прописать этот файл в планировщик Windows, чтобы он регулярно запускался.

p.s. Пока это только идея.

p.p.s. А до тех пор, придётся воспользоваться каким-нибудь антивирусом. Например, установить Norton AntiVirus 2012 Beta, или ещё лучше Касперского прикупить.

6 комментариев:

  1. А не проще работать из под рестриктед-юзера, без прав модификации ProgramFiles?! А с UAC-ом так вообще всё просто..

    ОтветитьУдалить
  2. давно собираюсь написать прогу, которая будет маяковать о всех изменившихся и добавившихся файлах как в папке винды.. так например и в папке делфей... видать пора ))))))

    ОтветитьУдалить
  3. > Вирус заражает версии Delphi с 3й по 7ю
    Ошибка: с 4-й по 7-ю.

    ОтветитьУдалить
  4. > А не проще работать из под рестриктед-юзера, без прав модификации ProgramFiles?! А с UAC-ом так вообще всё просто..

    Четно говоря не проще. Слишком много используемых программ не дружат с ограничениями по правам. :(

    ОтветитьУдалить
  5. А тема жива :) Из ленты delphifeeds:
    http://wings-of-wind.com/2009/11/02/compile-a-virus-filefeeds-a-solution/
    Помню, что впервые о вирусе прочитал в вашем блоге, но не помню, чтобы у вашего поста был такой заголовок, как сейчас :)
    Спасибо за статьи о разработке в Delphi!
    Илья

    ОтветитьУдалить
  6. Пожалуйста, Илья. Спасибо за доброе слово. =)

    Интересно будет посмотреть как работает их watcher.

    А название темы всегда таким было. Чтобы не переборщить с серьёзностью.=) Вирус всё-таки не таким уж и зловредным оказался.

    ОтветитьУдалить

Постоянные читатели