Меню сайта
Категории раздела
PHP [0]
Видео уроки [0]
DELPHI [45]
BASIC [0]
HTML [0]
JAVA [0]
C++ / C# [0]
Радио
ЧАТ
200
Облако тегов
Облако фото
Форум
  • композитная арматура (0)
  • Справедливо ли это???? (1)
  • Недвижимость в Тюмени (1)
  • Качество услуг и обслуживания (2)
  • строительный эксперт (0)
  • гид по Греции (0)
  • винные туры по Италии (0)
  • деревянные лестницы (0)
  • гид по Италии (0)
  • Разные поздравления (1)
  • Главная » Статьи » Программисту » DELPHI

    Delphi-“вирус” проверьте свою установленную Delphi! №2

    Итак, прошло почти две недели. Решил в один пост собрать резюме последних новостей.

    Внимание: здесь идёт речь ТОЛЬКО о вирусе Virus.Win32.Induc.a (название по Касперскому). Однако другие анти-вирусные продукты имеют свою систему обозначений, поэтому этот же вирус может называться у них как:

    • Induc.A
    • Mal/Induc-A
    • Virus.Win32.Induc.a
    • TROJ_INDUC.AA
    • W32/Induc.A
    • W32/Induc!dcu
    • W32.Induc.A!dcu
    • Win32:Induc
    • Win32.Induc
    • Win32.Induc.A

    Я разбил всю информацию по разделам:

    1. FAQ для простых пользователей (не программистов).
    2. FAQ для программистов.
    3. FAQ по истории.
    4. Прочие вопросы.
    5. Забавные факты.

    FAQ для простых пользователей.

    Q: У меня анти-вирус начал ругаться на некоторые программы, говорит в них сидит Virus.Win32.Induc.a. Это ложная тревога (false-positive)?

    A: Вероятнее всего нет. В подавляющем большинстве случаев это действительно программы, инфицированные вирусом Virus.Win32.Induc.a. Вы можете проверить это, закачав файл на бесплатный сервис VirusTotal.

    Q: Но эта программа стоит у меня уже энцать дней/недель/месяцев. Никто не ругался, а вчера – начал анти-вирус вопить. Я ничего не скачивал(а) в последнее время. Наверное это всё же ложное срабатывание. Мне все вокруг говорят, что анти-вирусы любят ошибочно принимать здоровые файлы за инфицированные. Кому верить?

    A: Ну, это точно не случай ложного срабатывания. Это действительно самый настоящий вирус. Просто его длительное время никто не находил. А когда обнаружили, то добавили в базы анти-вирусов, вот они и стали находить вирус. Т.е. вирус сидел в программах давно, с самого их создания, просто про него никто не знал. Теперь узнали.

    Q: А почему же тогда анти-вирус ругается только на одну программу? Был бы это вирус, у меня всё было бы заражено! Я уверен(а), что это ложное срабатывание.

    A: Это особый тип вируса, который размножается только с помощью разработчиков программ. На "воле" (машинах пользователей) он размножаться не умеет.

    Q: А это опасно? Мне пора кричать: "караул”?

    A: Нет. Спокойно, этот вирус ничего не делает, кроме размножения. Это скорее проблема разработчиков, а не ваша. В этот раз можете спать спокойно (речь идёт ТОЛЬКО о Virus.Win32.Induc.a).

    Q: А как лечиться-то?

    A: Обновите базы своего анти-вируса и запускайте полное сканирование.

    Q: Мне тут добрые люди предлагают скачать программку, которая лечит Virus.Win32.Induc.a. Мне качать?

    A: Однозначно НЕТ! Это действительно может быть программа для удаления Virus.Win32.Induc.a, собранная каким-нибудь энтузиастом. Но во многих случаях это может быть какая-нибудь другая пакость. Вирусописатели не упускают шумихи вокруг этого дела и воспользовались случаем лишний раз впарить доверчивым пользователям свои поделки. Оно вам надо, этот риск? Лучше запустите сканирование штатным анти-вирусом. Если с этим какие-то проблемы – воспользуйтесь online антивирусом от Касперского (нет, это не реклама, просто я других не знаю). Он может проверить всю вашу машину с самыми свежими базами вообще без установки.

    Q: Что мне сделать, чтобы избавиться от Virus.Win32.Induc.a? Мой анти-вирус не хочет лечить эти файлы (вариант: лечит, но они после этого не работают).

    A: Попробуйте скачать новую версию программы с сайта разработчиков. Как правило, большинство производителей программ, которые были инфицированы Virus.Win32.Induc.a, уже выпустили исправления. Если же обновления нет до сих пор – вы должны сообщить разработчикам программы о том, что они заражены. Обычно это можно сделать на сайте программы (ищите контакты, e-mail, форму для ввода сообщения разработчикам и т.п.) или в самой программе (есть не во всех программах) – обычно через меню Справка. Зайдите через недельку на сайт за исправленной версией.

    Q: А где качать программу-то?

    A: Очевидно: на сайте производителя программы. Если вы его не знаете, то просто вбейте название программы в Google (без номера версии). Сайт разработчиков почти всегда идёт первой ссылкой. Например, при поиске "AIMP", Google первой ссылкой выдаёт www.aimp.ru.

    Q: Нет возможности скачать программу (вариант: программа записана на CD/DVD). Что делать?

    A: Ну, поскольку вирус безобиден, вы можете безбоязненно запустить программу с вирусом (ВНИМАНИЕ: речь идёт ТОЛЬКО о вирусе Virus.Win32.Induc.a!). Для этого внесите программу в список исключений вашего анти-вируса. Если идёт речь об установке программы с CD/DVD, то вы можете попытаться вылечить файл после установки программы.

    Q: Но я не хочу запускать программу с вирусом!

    A: Что ж, тогда решайте, что вам важнее: программа или вирус. Если программу сильно хочется - запускайте её с вирусом, если же сильнее боитесь вируса - то выхода просто нет: программу придётся удалить. Вернётесь к ней через некоторое время, когда её разработчики выпустят исправленую версию.

    Q: Я отключил(а) анти-вирус, запускаю инфицированную программу, а она вылетает с ошибкой Runtime error 3. Мне очень нужна программка, что делать?

    A: Из-за досадной ошибки в коде вируса он может вылетать на редких машинах. Это его единственный побочный эффект (ну, не считая размножения, конечно же). Чтобы исправить это, откройте редактор реестра (Пуск, Выполнить, введите "regedit.exe” без кавычек и нажмите Enter), в левой части перейдите к разделу HKEY_LOCAL_MACHINE\Software\Borland\Delphi и удалите его (т.е. раздел Delphi). Теперь программа должна работать. Только не забудьте отправить сообщение разработчикам и попросите их уведомить вас, когда будет готова исправленная версия, чтобы её скачать.

    Q: Я слышал(а), что WebMoney инфицирована! Это правда?

    A: Пока эта информация не была подтверждена. Лично я проверял указанную версию вдоль и поперёк и не нашёл проблем. Скорее всего, ошибка.

    FAQ для программистов.

    Q: Проклятый [имя-антивируса] начал ругаться на все мои программы! Говорит: в них Virus.Win32.Induc.a. Параноидальный какой, надо отправить разработчикам с пометкой false-positive, а то работать невозможно.

    A: Поздравляю, дорогой коллега, вы попались. Это не ложное срабатывание, а действительно инфекция. Вы и все ваши программы заражены.

    Q: Что это за вирус?

    A: Так называемый "Compile-a-virus” ("Скомпилируй-вирус”) или Virus.Win32.Induc.a.

    Q: Какие версии Delphi подвержены этому вирусу?

    A: Delphi версий с 4 по 7 включительно.

    Q: Какие версии Delphi НЕ инфицируются этим вирусом?

    A: Новые версии, начиная с Delphi 2005: 2005, 2006, 2007, 2009, включая 2010, а также Delphi Prism.

    Q: Разносят ли вирус Delphi IDE или язык Delphi?

    A: Нет, те версии Delphi, которые уязвимы для атаки, не поставляются вместе с вирусом. Вы получаете его, когда запускаете инфицированный exe или DLL файл на своей машине.

    Q: Что делает вирус?

    A: Вирус ничего не делает Delphi-ям версии выше, чем 7. Если машина заражена, то вирус не делает ничего плохого, кроме размножения.

    Вирус встраивает себя в установленную Delphi версии 4, 5, 6 или 7. Потом, когда заражённая Delphi компилирует exe или DLL, то вирус автоматически появляется в результирующем модуле. Когда этот модуль запускается, то код вируса ищет установленные Delphi версий с 4 по 7 и встраивает себя во все установки, которые он найдёт. Тогда эти Delphi станут производить заражённые программы, которые снова будут искать Delphi для размножения и так далее.

    Когда вирус находит подходящую Delphi для заражения, он ищет файл SysConst.pas. Он копирует файл во временную копию, добавляет в него свой код, компилирует модуль и заменяет дистрибутивный SysConst.dcu этой новой инфицированной версией. Затем временная копия SysConst.pas удаляется (вирус не модифицирует никаких pas-файлов на вашей системе). Вставляемый в SysConst.pas код просто запускает процедуру размножения вируса.

    Q: А при чём же тут тогда runtime error 3?

    A: Из-за досадной ошибки в коде вируса, инфицированные программы могут вылетать на машинах, у которых в ключах реестра HKLM\Software\Borland\Delphi\версия\RootDir содержится неправильное значение (например, Delphi была удалена или заменена новой версией). Подробнее см. в моём предыдущем сообщении.

    Q: А как мне определить, не заражён ли я?

    A: Если нет анти-вируса или он молчит – отправьте файл sysconst.dcu на бесплатный сервис VirusTotal.

    Q: Как узнать, есть ли на моей машине инфицированные программы, распространяющие этот вирус?

    A: Запустите полное сканирование анти-вирусом, умеющим распознавать эту бяку (сверьтесь по результатам того же VirusTotal). Не забудьте обновить базы анти-вируса. Если не хотите ставить анти-вирус – воспользуйтесь online проверкой у Касперского.

    Q: У меня вирус :( Откуда он взялся?

    A: Если у вас есть вирус, то вы получили его, запустив на своей машине инфицированный exe или DLL. Delphi довольно популярная среда разработки, особенно среди ISV и MicroISV разработчиков. Если на вашу машину попал заражённый файл, он мог попасть или при скачивании программы или от ваших Delphi-коллег.

    Q: Что означает для меня заражение?

    A: Все компилируемые вами программы будут заражены. На любой машине с не защищёнными Delphi ваши программы будут заражать эти Delphi.

    Q: Я уже отправил заражённые программы заказчику/выложил на сайте. Что делать?

    A: Удалить вирус с машины и пересобрать все проекты. Опубликовать/разослать обновления. Говорить прямым текстом про вирус или нет – ваше дело. Можно сказать просто (как авторы квипа): "была исправлена ошибка с вылетом программы” (это про runtime error 3). Не прикопаешься. Вроде и правда, но вроде и не вся. Конечно, по-честному лучше бы оповестить о вирусе (да, можно дать ссылку на этот блог ;) ) и порекомендовать просканировать анти-вирусом со свежими базами. Но это ваш выбор. Лично я голосую за честное предупреждение.

    Q: Как лечиться?

    A: Рекомендую поставить один из анти-вирусов, который умеет обнаруживать эту заразу. Если не хотите ставить – воспользуйтесь online проверкой у Касперского. Все найденные файлы излечить, а если это невозможно – удалить и пересобрать/скачать новые версии без вируса. Файл sysconst.dcu надлежит скопировать с дистрибутивного диска (в старых версиях Delphi файлы лежали "как-есть”, без упаковки в архивы).

    Q: Как удалить вирус из уже скомпилированных программ?

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

    Q: Как предотвратить заражение?

    A: Единственный надёжный способ: следить за папкой \Lib и \Source. Если в вашем анти-вирусе есть функция "эти-файлы-никогда-не-должы-меняться” – добавляйте в неё на слежение папки \Lib и \Source (а лучше – всю папку Delphi сразу). Если нет анти-вируса, то как вариант, можно загнать все файлы в какую-нибудь систему контроля версий или хотя бы сделать бекап и проверять на отличия перед сборкой финальных релизов. Ну, напишите хотя бы программку по сверке файлов. Программист вы, в конце концов или нет? Кроме того, я уверен, что есть и сторонние программы подобного плана – надо только поискать. К примеру, это сделанный в стиле утилит от дяди Нортона AdInf или IDSMonitor. Embarcadero рекомендует сделать бекап и использовать сравнивалки каталогов типа Free FileSync.

    Примечание: ранее были советы типа создания sysconst.bak файла. Надо понимать, что это направлено против одного конкретного вируса. Сейчас это уже не имеет смысла, т.к. сигнатура вируса сидит в базах анти-вирусов – они и так его поймают. А защищаться сейчас нужно от модификаций/клонов этого вируса. И сделать это можно только контролем папок Delphi.

    Q: Я слышал и другие рекомендации! Типа: создать файл sysconst.bak, переименовать dcc32.exe или установить атрибут read-only.

    A: Эти способы защищают только от конкретного вируса или только некоторых (будущих) типов вирусов. Ничто не мешает вирусу не смотреть на наличие sysconst.bak или таскать с собой инфицированные dcu-шки, чтобы не пользоваться dcc32. Единственно надёжный способ: контролировать свою папку с Delphi. Какой бы иной способ вы ни придумали – обязательно появится вирус, который будет его обходить.

    Более того, переименование dcc32 принесёт вам немало проблем с установкой некоторых компонент и библиотек (типа JEDI), а установка read-only атрибута и вовсе не имеет никакого эффекта, т.к. вирус не модифицирует файлы: он переименовывает старый файл и создаёт новый.

    Q: А разве установка прав или там работа в Vista с UAC (под не-админом в XP) не достаточная защита?

    A: Хм, ну если бы все так делали – то было бы достаточно. Проблема в том, что не так много народа об этом заботится. Впрочем сегодня это на достаточно 95%. Потому что под админом запускаются только установщики (ну, в идеальном случае, конечно). А в 95% случае установщик не компилируется из исходников вашей Delphi (даже если он на Delphi писан). Что ж, +1 одна причина не отключать UAC. Если вам лень самому защищать папки – хотя бы доверьте это операционной системе.

    Q: Что насчёт выделенной машины для сборок?

    A: Почти идеальный вариант, надо сказать. Но не всегда бывает возможность. Кроме того, даже на изолированную машину для сборок иногда ставится/обновляется софт, так что полной защиты тут нет. Машина для сборок + слежение за папкой Delphi + работа не под админом + [опционально] анти-вирус = вы можете забыть про эти проблемы навсегда ;)

    P.S. Надо заметить, что машина для сборок создаётся не только для этого. С неё много и других бонусов.

    Q: Поражает ли вирус пакеты Delphi?

    A: Это возможно, но бывает очень редко. По-умолчанию – нет. Это может быть только если вы используете свои custom-пакеты вместо стандартного RTL-пакета.

    Q: Поражает ли вирус C++ Builder?

    A: Конкретно этот – нет. Но это теоретически возможно.

    Q: Ого, у меня дата изменения sysconst.dcu – 5 лет назад! Это ж сколько он гуляет по сети?

    A: Нельзя смотреть на дату sysconst.dcu, т.к. вирус сохраняет дату оригинального файла. Поэтому обычно эта дата – время установки вашей Delphi, не более того. По вопросу его времени активной жизни - см. вопросы по истории ниже.

    Q: У меня нет sysconst.bak – я чист!

    A: Это не всегда верно. Например, sysconst.bak мог быть кем-то удалён. Да, чаще всего это означает отсутствие Virus.Win32.Induc.a, но не всегда. Надёжнее всего – проверить sysconst.dcu, скормив его анти-вирусу или поискав в нём вручную "CreateFile(pchar(d+$bak$),0,0,0,3,0,0)”.

    Q: Антивирус ругается на файл, но никакого "CreateFile(pchar(d+$bak$),0,0,0,3,0,0)” там нет!

    A: Т.е. вы считаете, про при упаковке программы UPX или AspPack, пакер специально не будет паковать строку "CreateFile(pchar(d+$bak$),0,0,0,3,0,0)”, чтобы вы могли найти вирус?

    Q: Я заражён, но на мои программы антивирус не ругается! Кому верить?

    A: Ну, если вы компилируете программу с пакетами (run-time packages), то очевидно, что вирус в вашу программу не попадает, т.к. модуль SysConst сидит в (уже скомпилированном) пакете RTL, который вирус не трогает. Также надо обратить внимание на тот факт, что вирус не трогает отладочные копии файлов (в папке \Lib\Debug), так что если вы включаете опцию "Use Debug DCUs”, то ваша программа будет собираться с чистой, а не с инфицированной версией модуля SysConst.

    Q: Все мои программы анти-вирус считает заражёнными, но не ругается ни на один файл в папке Delphi. Т.е. SysConst.dcu чист. Ложное срабатывание?

    A: Ну, некоторые анти-вирусы имеют своё мнение о том, что можно, а что нельзя считать заразой. В частности, некоторые считают, что сам по себе инфицированный SysConst.dcu не представляет угрозы - а лишь будучи вкомпилирован в программу. Именно поэтому антивирус пропускает модифицированный SysConst.dcu, но ругается на программу, собранную с ним. Чтобы убедиться в этом - отправьте SysConst.dcu на бесплатный сервис VirusTotal

    Q: Все эти анти-вируса "нормальным пацанам" не нужны. Если не тащить на машину что попало, то всё будет хорошо.

    A: Действительно, обычно, если вы соблюдаете разумные правила осторожности, то вполне можете обходиться и без анти-вируса. Но не в этом случае. Почему? Потому что вирус попадает к вам от доверенного источника. Вы скачиваете программу от разработчика, которому доверяете. И - бац! В программе сидит вирус. Ниже я приведу примеры программ. Анти-вирус тут, к слову, действительно не помощник (если речь идёт о новом вирусе), а вот контроль папки с Delphi тут как раз в тему.

    Q: Как определить, от чего я заразился?

    A: Найдите инфицированную программу, скомпилированную не вами. Самая ранняя из них и будет источником заражения (ну, если вы не удалили её, конечно).

    Q: Как определить, когда я заразился?

    A: Найти все инфицированные программы и посмотреть самую раннюю дату создания/компиляции.

    Q: У меня из-за этого вируса происходит Access Violation (как вариант: BSOD)!

    A: Вы видите что-то другое. Причина этого – не в Virus.Win32.Induc.a. Он безобидный и ничего не делает. Проверяйте свою машину на другие вирусы или проверьте прямость своих рук. Скорей всего у вас просто несколько факторов совпало. И пока из них вы заметили только Virus.Win32.Induc.a. Не надо всё скидывать на него, а лучше ищите реальную причину.

    Q: Вирус есть, но sysconst.bak файла нет, а анти-вирус не лечит. Что делать?

    A: Проще всего – скопировать файл с установочного диска. Ну и для верности вообще Delphi переустановить ;) Для сильно умеющих – вместо этого можно пересобрать файлы в \Lib из папки \Source. Разумеется, перед этим сперва нужно провести полное сканирование системы и удалить все заражённые файлы (ну или вылечить, если ваш анти-вирус такое умеет).

    Q: А вдруг самая главная зараза сидит в sysconst.bak! И когда мы его восстанавливаем, тут-то она и активируется!

    A: Это параноидальный бред. Достаточно посмотреть на размеры файлов. Предположительно выполняющий реальную нагрузку вируса sysconst.bak почему-то весит меньше предполагаемой заглушки sysconst.dcu, да ещё и совпадает размером с дистрибутивным. Впрочем, если вы перекомпилируете из исходников или переустановите Delphi – хуже от этого точно не будет.

    Q: Может ли быть сам дистрибутив Delphi заражён? Не опасно ли переустанавливать среду?

    A: Нет. Это очевидно. Чтобы был заражён дистрибутив, надо, чтобы вирус сидел на машине для сборок Delphi в Borland (потому что вирус не умеет поражать уже готовые файлы – ему нужно инфицировать сначала среду). Но ведь сперва вышла Delphi 7 и только потом был написан вирус (иначе как бы он заражал среду, которая ещё не вышла). Вирус не обладает способностью путешествия назад во времени, чтобы испортить дистрибутив.

    Q: Почему Delphi так тупо сделали, что она не следит за несанкционированными изменениями?

    A: Вообще-то Delphi ничем не отличается в этом плане от всех остальных компиляторов.

    Q: Эта проблема применима только к Delphi?

    A: Этот конкретный вирус ищет Delphi версий с 4 по 7, но подобный тип вируса не привязан к Delphi и может поражать любые средства разработки: от Eclipse до Visual Studio.

    Q: А Embarcadero будет молчать?

    A: Allen Bauer сообщил в своём блоге, что Embarcadero в курсе про вирус:

    At this point, here at Embarcadero, we’re actively analyzing situation and overall impact to our community. We’re also working on recommendations about how to find out if you’re infected and what to do once you see that you are. Throughout all this we’re working on recommended steps can you take to guard against re-infections. Rest assured that we’re neither ignoring this threat, nor are we going to do anything to blow it out of proportion.

    What we’re working on is a response that includes ways that our customers can appropriately guard against any future attacks. Maybe this will include code and utilities for them to use, or maybe it will only be a set of guidelines and steps. The point of this post was to merely state that we’ve *seen* the reports.

    Перевод:

    В настоящий момент, мы, в Embarcadero, активно анализируем ситуацию и общее влияние на Delphi-сообщество. Мы также работаем над рекомендациями по вопросу обнаружения инфекции и её удаления. Кроме этого, мы также работаем над рекомендуемыми шагами, которые вы можете предпринять, чтобы предотвратить повторное заражение. Будьте уверены, что мы не собираемся игнорировать эту угрозу, но мы и не собираемся раздувать её больше того, чем она заслуживает.

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

    Что ж, если будет реализовано автоматическое решение, то, возможно, это будет +1 причина для апгрейда, когда выйдет очередная версия Delphi. Лично я непременно перечислил бы её в статье типа "причины для апгрейда”. Это реальный способ убедить босса потратиться на апгрейд.

    В настоящий момент доступен английский FAQ.

    Q: Чем лично я могу помочь?

    A: Как минимум используйте Vista и UAC или работайте под не-администратором в XP. А лучше всего - настройте мониторинг своих папок с Delphi. Идеальный вариант: работать "по-взрослому" и завести отдельную машину для сборок проектов (можно виртуальную). Худшее, что вы можете сделать - это ничего не изменить в своей практике. Мы (разработчики Delphi) уже допустили повальную эпидемию, так не допустим же вторую.

    Разносите новость друзьям и по ресурсам, где вы обычно тусуетесь. Предупредите всех Delphi-разработчиков, что необходимо защищать свои папки с Delphi. Только не разводите панику: "найден новый вирус, его нельзя поймать, галактеко в опасносте!!!”. Информируйте простых пользователей об отсутствии угрозы от Virus.Win32.Induc.a и что Delphi тут не виноват. Короче: "spread the word”.

    FAQ по истории.

    Q: Кто первый обнаружил вирус?

    A: Мне удалось найти только два зарегистрированных случая. Первый из них – 21-го апреля 2009-го на форумах CheatEngine. Второй из них – 23-го июня 2009-го на форумах Infinity Box. К сожалению, в первый раз человек даже не понял, что он нашёл. Вирус был в тренировочной программе типа "взломай меня” – именно поэтому был обнаружен код вируса, но никто не осознал, что это была угроза, а не часть программы. Во второй раз, было осознано, что это что-то типа вируса, но никто не стал поднимать шум, удовлетворившись удалением этой бяки из Infinity Box.

    Q: Кто же тогда поднял столько шума в интернете?

    A: Ну, было и третье обнаружение – лично мною 12-го августа в топике на Delphi Kingdom. Мы разбирали проблему необъяснимого вылета с runtime error 3, несколько человек сообщили о странном поведении QIP, но не стали копать дальше. Ну а я копнул, нашёл ("в очередной раз”) этот вирус. Потом администрация Delphi Kingdom повесила объявление в новостях на главной, а я опубликовал подробное описание у себя в блоге. Далее люди, которые посещают Delphi Kingdom и/или мой блог, а также являются активными участниками на других форумах, продублировали объявление в своих любимых форумах – на sources.ru, vingrad-е, Клубе ПРОграммистов и других местах (даже на немецком Delphi Praxis). Уже я не имел к этому никакого отношения – люди сами разносили новость по форумам (лично я постил только на sql.ru). В этих постах ссылки обычно были либо на Delphi Kingdom, либо на мой блог. Реже – на обоих или на форум QIP-а.

    Потом новость появилась на хабре и форумах QIP (ну, вообще-то она была там с самого начала) – ресурсах с высокой посещаемостью. Народ начал активно срать в комментах, разносить новость по блогам, не программистским форумам (в том числе по сайтам, посвящённым угрозам и борьбе с ними) и т.п. Обычно в этих сообщениях вставляли ссылки на хабр или квиповский форум. Реже – на программерский форум, где они об этом услышали и уж совсем редко – на Delphi Kingdom или мой блог. В общем, волна пошла, но ни от кого это больше не зависело.

    Q: Как это попало в анти-вирусные базы?

    A: Ну, прочитав сообщения, народ (который сознательный) начал массовую отправку заражённых примеров в анти-вирусные компании. Я сам лично отправлял Касперскому и в Symantec (впрочем, от Symantec мне пришёл ответ, что ничего страшного в файлике нету :) Определение они добавили только через несколько дней). Раньше всего среагировал Касперский – спустя три дня. Потом мало-помалу подтянулись и остальные. Вот текущее состояние дел. Не слишком утешительно – только треть антивирусов после почти пол-месяца шумихи. Кстати, сами анти-вирусные компании не упустили случая лишний раз пропиариться – выпустив объявления типа "нами был обнаружен новаторский вирус и только мы умеем его лечить” :) Ну, а после того, как анти-вирусы начали определять эту заразу, сообщения о ней стали появляться вообще везде. Теперь уже со ссылкой на антивирусные компании.

    Q: Как насчёт англоязычного сегмента интернета?

    A: Ну, во-первых это сообщения/новости анти-вирусных компаний (в том числе на английском). Кроме того, при распространении народ постил объявления не только в русскоязычный, но и в англоязычный интернет (а вот выше был ещё пример с DelphiPraxis – он немецкий). Потом был мой пост в блоге EurekaLog и другие посты в DelphiFeeds. Ну и, конечно же, сами антивирусы тут добавили известности. Помимо таких вот сообщений, если вдруг анти-вирус начинает ругаться на все твои программы – уж ты-то начнёшь поднимать шум на форумах. Далее пошла волна уже по английскому интернету. Просто погуглите по sysconst.bak или Virus.Win32.Induc.a – об этом сейчас везде говорят.

    Q: Сколько же реально времени эта штука активна?

    A: Ну, если смотреть на код вируса, то можно предположить, что он писался в то время, когда активно использовали Delphi версий с 4 по 7 – т.е. это где-то лет 5 назад. Но это только гипотеза. Есть кучи причин, почему вирус проверяет только D4-7 (например, они стояли у автора вируса, а других версий не было; или: вирус был написан давно, но в сеть попал спустя несколько лет). Если смотреть только на факты, доступные в интернете, то первое обнаружение, как мы видели выше, было 21-го апреля – 4 месяца назад. Вот здесь человек сообщает о заражении мартовских проектов (т.е. 5 месяцев). Дата в минимум 5 месяцев также подтверждается тут.

    UPD: Был предоставлен скриншот наличия Virus.Win32.Induc.A на дисках журнала Hard&Soft от января 2009-го - т.е. более 7 месяцев. Январь 2009-го также независимо подтверждён тут.

    UPD: по данным, поступающим к анти-вирусным компаниям, есть отчёты ноября-декабря 2008-го года - т.е. более 9 (девяти) месяцев.

    Были отчёты о заражениях от начала 2008-го года (и даже 2006-го), но не было сказано, как это определили, так что этой информации не стоит доверять (возможно, смотрели на даты sysconst файлов). Но в любом случае, даже на первые машины, о которых есть официальное подтверждение, вирус должен был как-то попасть. А на это надо время. Так что цифра в минимум год-полтора кажется правдоподобной.

    Q: Как много машин поразил вирус?

    A: Довольно много. Я рискну предположить, что пессимистичная оценка – половина всех Delphi разработчиков, оптимистичная – одна треть. Ну, голосование в моём блоге показывает оценку ближе к 1/2, но надо понимать, что не все голосуют. В особенности, если их эта проблема не коснулась. Так что 1/3 – более реалистично. Причём ситуация не сильно меняется в зависимости от русского/англоязычного сегмента. С мест сообщают (и ещё), что при добавлении сигнатуры в базу за 12 часов поступило несколько сотен тысяч инфицированных программ (скорее всего, это суммарно, без учёта уникальности). Лаборатория Касперского сообщает, что к концу августа у вируса есть шансы попасть в TOP-20 по распространённости.

    UPD: до конца 2009-го года Virus.Win32.Induc.a не вылезал из TOP-20, располагаясь примерно в районе 10-го места (плюс-минус 3 места).

    Q: Какие программы "отметились”?

    A: Ну, про QIP и AIMP слышали все, но сейчас повально сообщают о заражениях. Чем перечислять их все, проще сказать: не менее 30% всех Delphi программ. Если вас интересуют подробности – просто погуглите по sysconst.bak (ранние обнаружения) или Virus.Win32.Induc.a (поздние обнаружения). Например, это мирандовские плагины, плагины к Total Commander (сам Тотал писан на Delphi 2), TidyFavorites 4.1, Any TV Free, Offline explorer, Wise Registry Cleaner и многие-многие другие (мне действительно лень искать).

    Вопросы от неумения читать/гуглить/использовать голову.

    Q: Как оно распространяется?

    A: Вирус инфицирует Delphi, после чего все программы, собранные в ней тоже будут нести на себе вирус, так сказать, "by design”. Эти программы находят другие установленные Delphi (на других машинах), инфицируют их и цикл повторяется снова. Т.е. полный цикл инфицирования идёт в два шага.

    Q: Это всё проклятый QIP! Это из-за него заразилось столько машин!

    A: Это неверно. Инфицированная версия QIP была в сети всего несколько несколько дней: выход в конце июля 2009-го (точную дату не нашёл, примерно 27-е число), вирус обнаружен 12-го августа – т.е. через две недели. В то время, как этот вирус гуляет по сети не менее года. Много людей отписались, что у них никогда не стоял QIP или стоял другой версии, но они оказались заражены. Даты заражения большинства машин – несколько месяцев. Выше мы уже определили, что первые обнаружения были задолго до выпуска QIP 8094. Скорее, заражение QIP – это вершина айсберга, последняя точка, но никак не источник инфекции. Поэтому вместо версии "молниеносное размножение по машинам”, более правдоподобна "долгий путь к вершине”. Высокий уровень распространения через день после обнаружения не говорит о скорости распространения, а скорее о факте позднего обнаружения.

    Q: QIP – говно, Miranda – форевер!

    A: Т.е. на факт заражения мирандовских плагинов глаза закрыть можно, а на заражение квипа – нет? Интересный подход.

    Q: Delphi – говно, C++ форева!

    A: Что мешает перекомпилировать этот вирус под MSVS C++?

    Q: Это всё проделки [имя-компании], чтобы вынудить пользователей [сделать что-то,что они не хотят].

    A: Абсолютный бред. Этот вирус не имеет никакого отношения к QIP, AOL, Microsoft, Borland/CodeGear/Embarcadero и т.п. Это просто чья-то экспериментальная поделка. "Proof-of-concept”, доказательство концепции. Чтобы это сообразить достаточно посмотреть его историю развития и код.

    Q: У меня Delphi 2009 (2007, 2006, 2005): надо ли мне проверяться? (вопрос задан в топике, начинающимся словами: "Внимание, владельцы Delphi 4-7”).

    A: Данный конкретный вирус поражает ТОЛЬКО Delphi версий с 4 по 7 включительно.

    Q: Но у меня есть sysconst.bak в Delphi 2009! Аааа!!!

    A: Читайте внимательнее: проверка на sysconst.bak – это простейший способ проверки. Он не гарантирует 100% надёжности. bak-файл мог создать кто угодно, не обязательно же вирус! Для полноценной проверки вы должны проверить dcu-файл (скормить его анти-вирусу или поискать в нём строчку "CreateFile(pchar(d+$bak$),0,0,0,3,0,0)”), а ещё лучше – сравнить его с файлом из дистрибутива.

    Q: У меня в sysconst.pas ничего такого нет. Просмотрел остальные pas-файлы – ничего подозрительного. Я чист?

    A: Не нужно смотреть в pas файлы: вируса там нет. Он встраивает себя в dcu-файлы. Если вы скомпилируете pas файл, то получите чистый dcu, без вируса.

    Q: Я нашёл sysconst.dcu (sysconst.bak) в папке \Lib\Debug. Это вирус?

    A: Ещё раз совет читать внимательнее. Virus.Win32.Induc.a подменяет dcu только в папке \Lib. Папку \Lib\Debug он не трогает. За вопросами кто такой \Lib\Debug и зачем он нужен – идите на форумы по программированию (а ещё лучше – в книжки).

    Q: Я никогда не видел ошибки runtime error 3. Я чист.

    A: Если у вас никто не вылетает с runtime error 3 – это ещё не значит, что вы не инфицированы. Как уже было сказано, эта ошибка возникает только на редких машинах. А именно: тех, где в реестре неверно записаны параметры RootDir для Delphi.

    Q: Ну киньте мне хоть кто-нибудь пример инфицированной программы! Хочу сам посмотреть на это чудо!

    A: Код вируса перед вами. Просто скомпилируйте его на своей машине и вот вам – пример (достаточно поместить вызов кода в секцию initialization). Потом запустите его и он заразит вашу Delphi. Можете компилировать программы и они все будут заражены.

    Q: Где найти код вируса? (вопрос задан в топике, первый пост которого содержит ссылку на код).

    A: Раскрыть глаза и погуглить. Или просто открыть первую ссылку в первом посте топика – их не просто так дают. P.S. Нет, код приводят не для того, чтобы вы начали клепать поделки по теме, а чтобы доказать, что ничего страшного этот конкретный экземпляр не делает. А поделки и так появятся. Только теперь, когда вы уже предупреждены, они не так страшны.

    Q: Квип и AIMP есть. Delphi есть. Вируса нет. Что делаю не так?

    A: Вы используете версии QIP и AIMP без вируса.

    Q: Почему же у меня ни на что не кричит?

    A: Ну, вариантов немного:

    1. Анти-вируса нет вообще.
    2. Анти-вирус отключен.
    3. Анти-вирус втихую рубит и вы не видите.
    4. Анти-вирус ещё не умеет ловить бяку.
    5. У вас бяки нет.

    Q: Может ли этот вирус делать [плохая-вещь]?

    A: Код вируса перед вами. Там всего несколько строк. Наверное, не так сложно посмотреть, что же он делает, не так-ли? Не понимаете код? Хм, а какой тогда из вас программист? ;) Ну и, вообще-то, везде уже писали, что он не делает НИЧЕГО, кроме размножения и вылета с runtime error 3 на некоторых машинах.

    Q: Runtime error 3 – это планируемое вредное действие? (вариант: способ заставить мигрировать с 7-ки)

    A: Нет, и это видно из кода вируса. Runtime error 3 – не более чем досадная ошибка в коде вируса.

    Q: Мы все умрём? Галактеко в опасносте? Квип тырит наши пароли?

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

    Q: Ничего особенного, раздувают из мухи слона – проходим мимо.

    A: Хм, инфицирование трети машин разработчиков и нескольких "Big-Names” программ – это "ничего особенного”? А если бы у него была какая-то полезная нагрузка? Да, сейчас анти-вирусы ловят этот конкретный вирус. Да, конкретно он не делает ничего страшного. Бояться надо не его – это следующий вирус подобного плана будет страшен. Если вы скажете: "ну, все анти-вирусы теперь его ловят” и успокоитесь на этом – это неверно. Вы – идеальная мишень для любой модификации этого вируса. Антивирусы её не поймают.

    Смысл в том, что анти-вирус не опознает следующий вирус подобного плана. Защищаться (ну и бояться) нужно, конечно же, не Virus.Win32.Induc.a, а его модификацию. Надеяться на то, что их будет отлавливать анти-вирус... ну, вот вам Virus.Win32.Induc.a убедительно показал во что выливается такая вера. В инфицированные QIP, AIMP, плагины Тотала и Миранды, банковский софт, трояны, диски журналов и куча другого софта.
    Может я и перегибаю палку, но не очень хочется, чтобы после того, как все поорали "на тему", всё вернулось на круги своя без изменений. Тогда ничто не помешает создать и с такой же лёгкостью распространять вирус с куда более серьёзной полезной нагрузкой.

    Вам необходимо предпринять действия по защите своей папки Delphi. Как минимум – не работать под админом (использовать UAC). Как идеальный максимум – выделенная машина для сборок с мониторингом папки Delphi.

    Забавные факты.

    Ну для многих это сперва показалось шуткой. Да я и сам сначала принял это за неё или ошибку в ДНК определённых людей. Вот, к примеру, весёлые ребята с sql.ru сразу потребовали чемоданов, космо-доспехов и "чего покурить”.

    Вот этот диалог тоже забавен:

    - Твой код?

    - Не-не-не, это не моё, бабушкой клянусь.

    - Да твой код, точно я тебе говорю.

    Кроме того, некая ирония есть в том факте, что некоторые трояны, написанные на Delphi, оказались заражены Virus.Win32.Induc.a.

    Microsoft, давний соперник Borland-а, уже умеет бороться с "вирусом для Delphi”. Причём среагировала она раньше многих – спустя три дня после Касперского.

    Есть мнение, что вреда от обнаружения вируса анти-вирусами больше, чем от него самого. Ну т.е. жил он спокойно и никого не трогал, никому не мешал (ну, за редким исключением – runtime error 3). А тут, на тебе: все анти-вирусы вопят, спокойно работать не дают. Ужас, в общем :D Смотрите сами: жили вы себе жили, поставляли программки клиентам. Вдруг, бац, все ваши программки у клиентов начинают определяться как инфицированные! Сколько негативных отзывов вы получите, насколько упадёт доверие к вам! Вам же теперь перевыпускать все программы за последние несколько месяцев! А уж как пострадает репутация Delphi!

    - На чём написана ваша программа?

    - Delphi.

    - На Delphi? Ну тогда мы её не покупаем – мы боимся заражения Virus.Win32.Induc.a.

    Ведь простые люди, которые поставлены антивирусом перед фактом, не слишком-то разбираются в этих тонкостях…

    Вирус обнаружен в некоторых программах по борьбе с бяками. Например, Wise Registry Cleaner.

    Вирус был найден в FinalBurner Free от ProtectedSoft ("protective” vs "вирус”).

    Степень распространения вируса настолько велика, что он проник даже на игры, записанные на CD/DVD, и в диски от журналов.

    Видимо, впервые о подобной идее говорил Ken Thompson в лекции "Reflections on Trusting Trust” – 25 лет назад, в 1984-м году (если я верно понял, за эту лекцию он получил награду Тьюринга: "ACM’s Turing Award”). Это было в теории. Хм, превратить теорию в практику в этом случае заняло 25 лет. Этот вид атаки известен под именем "Thompson hack” или "Trusting trust attack”.

    Замкнутый круг: я поднял шум, по нему отправили файлы Касперскому, Касперского использует F-Secure, F-Secure сообщает, что я тоже нашёл вирус.

    Win32.Induc.a угрожает планете.

    Да, это именно так:

    I am sure the virus has been written by Mr. Hodges.

    After endless attempts to convince people to migrate from previous Delphi versions, especially Delphi 7 (there's no reason to try about D8, 2005 or 2006, people jumped away from them ASAP), in the dark of his office he found no better way to have antivirus detecting older Delphi releases as infected and scare users to force them to upgrade.

    Перевод:

    Я уверен, что этот вирус был написан господином Nick Hodges.

    После бесконечных попыток уговорить людей перейти с предыдущих версий Delphi, особенно с Delphi 7 (нет причин волноваться о D8, 2005 или 2006, т.к. люди и так убрались с них как можно раньше), в темноте своего офиса он придумал лучший способ: чтобы анти-вирусы всего мира начали ругаться на старые версии Delphi. Это испугало бы пользователей и заставило их сделать апгрейд.

    P.S. И, да, мне во сне лично явился Дэвид и приказал мне обнаружить вирус и поднять шум в аккурат к выходу Delphi 2010 ;) Это к вопросу теории заговора от CodeGear.

    Категория: DELPHI | Добавил: SeM (02.05.2011)
    Просмотров: 1745 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Поиск по сайту
    Новый Год
    Опрос
    Изменить дизайн?


    Всего ответов: 16
    Всего голосовало: 16
    Обсудить на форуме
    Друзья сайта
    измерьте скорость интернета Яндекс.Метрика
    Проверить тИЦ и PR
    Статистика
    Погода
    Яндекс.Погода
    Коменнтарии

    Извиняюсь, заработал. Спасибо за урок biggrin

    Компонент не работает

    Давайте помогу разобраться ? вы хотите что бы когда выбиралась станция сразу начинала проигрывать? скиньте исходник или как лучше связаться с вами?

    у меня все работает!

    Нифига не робит...
    Кто знает как сделать чтобы на жесткий жертвы сохранял..
    ISQ 606017777

    FSDGHDFJHRG


    Отзывы Фото
    6 микр. Красивое место....

    Ершов ))))

    Старый музей но щас его перенесли...

    Фотография под горы smile

    Красивое фото!!! smile

    Copyright MyCorp © 2024