Pull to refresh

Comments 127

Правильно NOD ругается, для чисто прикладных программ есть автозапуск в меню Пуск.
>Правильно NOD ругается, для чисто прикладных программ есть автозапуск в меню Пуск.
Да ладно? вы у себя в этой ветке реестра посмотрите, есть там «чисто прикладные»? У меня есть. И вообще, почему это NODу решать? остальные антивирусы на это нормально реагируют
У меня линукс и вообще нет реестра
Мое личное субъективное мнение таково, что HKLM\Software\Microsoft\Windows\CurrentVersion\Run и аналогичный параметр в HKCU предназначены для сервисных приложений, работающих в фоне и незаметных пользователю. Прикладные программы с пользовательским интерфейсом, на мой взгляд, должны прописываться в автозапуск в меню «пуск», и не скрываться от пользователя в дебрях реестра и секретных административных утилит.

А те программы, которые прописываются в реестр подобным образом, получают от меня виртуальный минус в карму как использующие нечестные методы закрепления на пользовательском компьютере.
Ага, точно. Меня бесит когда всякие левые программы пытаются записаться в реестр. Чем интересно, папка «Автозагрузка» не угодила? Особенно для банковского приложения бизнес аналитики? Меня бы такая фигня наоборот, заставила бы нервничать — вдруг там кейлоггер скрытый под системы клиент-банк?
На самом деле, это можно назвать плохим тоном программирования, таким же как и подчёркивание слов в вебе (люди начинают кликать на слова, путаясь с гиперссылкой), или же аморальным по неписаным законам, но вирусом от этого программа не становится.
Для фоновых процессов есть база данных SCM. А папка Автозапуск для случаев, когда пользователь хочет добавить программу в автозапуск вручную.
Мне тоже очень не нравятся программы которые норовят запихнуть себя в автозапуск, но у автора топика есть кнопка в интерфейсе, отвечающая за эту функция, ничего не делается без спросу. Так что это _именно_ придурь антивируса.
Единственное что, а зачем это HKLM? Нужно HKCU
А это все привычки программирования под Windows95-98, видимо неискоренимы.
Компания ЕСЕТ в очередной раз показала свой адекват при назначении ключевых людей на посты.

Квалификация техподдержки — это примерно такое же пожелание, как качество бензина. Хочется, да не всегда получится.
Я конечно не вирусолог, да и вообще, пишу только под веб, но разве антивирусы не должны срабатывать во время попытки добавить запись в реестр? Это вполне логично, и легко контролируется. Да и не совсем понятно почему огромный пласт: торрент клиенты, пунто свичер и т.д и т.п. нормально работают? Получается что они добавляются в реестр как-то по другому? O_o
да, мне тоже непонятно. возможно совокупность факторов. но факт остается фактом: срабатывания исчезают, когда я убираю только эту функцию
Думаю, там за каждый подозрительный признак начисляется определенное количество баллов. Данная строка, возможно, просто становится «последней каплей».

Программа: и ещё я хочу в автозапуск.
NOD32: Ну всё, *ля, это была последняя капля! Теперь держись, софт дырявый!
UFO just landed and posted this here
Ну да и ладно. В любом случае нефик в реестр писать автозагрузку. Тем более в Local Machine. Это неправильно с нескольких точек зрения (там ниже их написали уже).
видимо просто «Software\Microsoft\Windows\CurrentVersion\Run» в «подозрительные» строки зачислили
Вероятно, потому что разрабы знают про торренты, пунто свичеры и т.д.
Неизвестное ПО сразу расценивается как потенциально опасное.
Тоже не вирусолог, но думаю, что потенциально вредоносная программа может, например, не только в реестр прописываться, а производить еще какие-нибудь нехорошие действия при запуске. Потому и принимаются меры до запуска, еще на стадии проверки файла.
UFO just landed and posted this here
Во время попытки некоторые антивирусы тоже срабатывают (некоторые), но это уже функции своеобразного фаервола. Основная задача антивируса — найти угрозу до того, как она запущена. Постоянная же слежка за работающими процессами обеспечит лишь замедление работы этих процессов.
А вы таки собираетесь задурить НОД (например, строку с путём реестра разделить на части в разные переменные или зашифровать) или удалите опцию / замените на ярлык?
подобная ситуация была с каспером года эдак 3 назад — лечилось действительно простым изменением данной строки — делил
>А вы таки собираетесь задурить НОД (например, строку с путём реестра разделить на части в разные переменные или зашифровать) или удалите опцию / замените на ярлык?
Пока не решил, но от реестра видимо придется отказаться. Рассматриваю 2 варианта: либо ярлык автоматически, либо просто скажу пользователям, чтобы сами добавляли, если нужен автозапуск
procedure CreateLink(const FileName, LinkSelfFileName: pchar);
var IObject: IUnknown;
begin
  Coinitialize(nil);
  if CoCreateInstance(CLSID_ShellLink, nil, 1 or 4, 
     IUnknown, IObject) <> 0 then
    begin CoUninitialize;exit;end;
  (IObject as IShellLink).SetPath(FileName);
  (IObject as IPersistFile).Save(
     PWChar(WideString(LinkSelfFileName)), FALSE);
  CoUninitialize;
end;
кстати, путь к папке Автозагрузка тоже в реестре нужно брать, если опять НОДу не понравится это будет жесть
SHGetSpecialFolderLocation уже не модно что ли использовать?
r21514,
Спасибо ) я просто боюсь, что и этот код может вызвать подозрения )
Сделайте плагин автозапуска :)
Если этот код вызовет подозрения, то вообще все инсталляторы вызовут :) Это самый что ни на есть кошерный способ.
И это вот называют «правильным» поведением антивируса? При котором часть автоматизированных функций программы втупую перекладывается на плечи пользователя? Отличный подход!
Что касается автозапуска — этот подход имеет право на существование. В линуксе вон автозапуска с внешних носителей вообще нету, но что-то жалоб на это не видно.
Причем здесь автозапуск с внешних носителей? Почти во всех современных DE под линукс также есть механизм для того, чтобы добавить программу в автозапуск, это предусмотрено почти любой десктоп ОС.
И это странно, что разработчики какой-то конкретной системы защиты берут на себя право безапелляционно кастрировать некоторые возможности ОС.
По-моему, подход к работе некоторых разработчиков антивирусного софта начал носить странный характер. Программа, которая по идее должна защищать пользователя, на деле ограничивает его способности (и функционально и физически, отъедая ресурсы) и идет в сторону упрощения идеологии (все, что может принести вред — вирус). Такими темпами через годика 2-3 самым эффективным антивирусом будет наклейка на системном блоке: «Не включай его, там вирусы»!
Имхо, вполне правильное поведение. Есть стандартный метод загрузки приложения при старте, очевидный для пользователя — и надо им пользоваться. Я, например, совсем не хочу в случае необходимости выключить автозагрузку думать, куда еще разработчик мог ее воткнуть. Через драйвер виртуального устройства еще сделайте, ага.
в программе и включение и выключение предусмотрено интерфейсом
Пункт настроек в интерфейсе программы — это не нативно, а потому гораздо большее урезание «возможностей ОС» (и, что немаловажно, возможностей пользователя). Никто не отключает Alt+F4, хотя в меню пункт «Выход» тоже есть. Да и располагают его обычно в меню «Файл».
То что вы здесь описали и есть верный подход к безопасности. Вас что это возмущает?
И да, все, что может принести вред — потенциально опасное ПО. Пользователь ДОЛЖЕН знать об этом. И очень хорошо, если антивирус об этом информирует. Было-бы вообще замечательно, если бы антивирус понятным языком объяснял, в чем собственно суть этой опасности. Антивирус можно упрекать только в том, что он не объясняет суть угрозы, а не в том, что он находит эту угрозу.
Ну какбы и пусть говорит, что «программа может попытаться добавить себя в автозагрузку». И давайте не будем ЭТО называть эвристикой.
А то от одного нахождения в коде определенного пути реестра мы уже и программу как вирус детектировали и название этому вирусу даже дали…
Вы конечно правы, было бы здорово, если эвристика сразу говорила, в чем именно загвоздка. Почему она этого не делает я не знаю. Но с другой стороны, можно обратить внимание, на то название, которое эвристика дала найденному «вирусу», оно говорит уже о многом. Например если речь об AdWare, как тут, то можно сразу делать предположения, в чем проблема.
>И давайте не будем ЭТО называть эвристикой.
Давайте не будем забывать, что назначение эвристики — обнаружение неизвестных ранее вирусов. Чрезмерная подозрительность это ее отличительная черта. Именно это и должно называться эвристикой, ведь она анализирует потенциально опасные возможности кода. А а данном случае речь идет именно о потенциальной угрозе, которая действительно была в программе. Паранойя здесь уместна. Другое дело, что она, эвристика, должна быть более user frendly.
Вы уж извините, но это GREP, а не эвристика тогда…
binariti,
и в чем же тут угроза?
Нечто без спроса может прописаться в автозапуск, причем в автозапуск ко всем пользователям. Причем прописаться туда не во время установки, а уже во время своей работы. Да еще и в место не предназначенное для автозапуска прикладных программ. Именно так поступают 90% всех вирусов. В данном случае самым правильным было бы, конечно, ограничить такую запись на уровне UAC, но на него у антивируса надежды нет.

Мы имеем дело с военным уставом. Этот устав, как и другие уставы написан чьей-то кровью. В данном случае кровь виртуальная, но тем не менее. Если в уставе написано, что врага можно отличить по форме его одежды, то это не просто каприз командования. Подобный способ автозапуска и есть одна из деталей этой одежды. Если ты не враг, то зачем надел вражескую одежду? Если ты мирное приложение, то зачем лезешь в системные области ОС? А раз полез, то будь готов заложить руки за голову и пройти досмотр.

Вообще защита информации это часто сплошное следование протоколам и инструкциям не в угоду конечному пользователю.
>Причем прописаться туда не во время установки, а уже во время своей работы

ну да, уже запущено, но все-таки какие-то подозрения еще остались! :)
При всех плюсах контролирования ветки с автозапуском это все-таки глупость, при том легко обходимая как вирусописателями, так и честными программистами, судя по комментариям выше и ниже.
На самом деле я тоже считаю, что это глупость. Просто я пытаюсь показать позицию разработчика антивируса. А позиция его такова, если начинать с начала:
1. Основная черта вируса это механизм заражения вирусом ОС.
2. Суть механизма заражения в том, что вирус тем или иным способом заставляет систему запускать самого себя незаметно от пользователя.
3. Самый распространенный в данный момент тип вредоносного ПО — трояны, их механизм заражения подразумевает, что троян не модифицирует исполняемые файлы для самозапуска. Вместо этого он делает так, чтобы система сама его запускала. Зачастую это единственный признак трояна.
4. Если какая-то программа производит действия, цель которых выполнение п.3, т.е. данный экзкшник прописывает самого себя в автозапуск, то эта программа потенциально троян.

Что же делать если очень хочется? Сделать так, чтобы программа не содержала код самозапуска. Пусть запуск данного экзкшника обеспечивается другим экзешником, инсталлом и т.д. Это наиболее оптимальный вариант, особенно если антивирус способен опознать инсталлятор.

Да и кстати дело не только в ноде, судя по вирустесту некоторые антивирусы тоже считают использование HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run опасным. Не думаю, что они это просто так решили сделать, из вредности.
Это все понятно, но внедрение каждой такой «эвристики» должно быть не только обосновано логически, но и целесообразным. Другими словами — не надо держать вирусописателей за идиотов, они тоже могут воспользоваться помощью virustotal, и вряд ли у них возникают проблемы с обходом вышеописанной проблемы. Это банальная глупость со стороны работников ESET.
Причем здесь правильное поведение антивируса? Речь о правильном поведении разработчика программы.
почти на всех компьютерах с windows давно водятся вирусы авторанеры, почему бы не модифицировать исполняемые файлы этих авторанеров, добавив к ним функцию загрузки вашего приложения? Тут правда придется найти как себя авторанер замаскировал, но такие алгоритмы, в общем-то, есть.
Просто поражен. Автор, дайте код всей функции добавления в автозапуск на дельфях в студию, прошу вас. Именно в той форме, на которую нод среагировал.
procedure SetQDOMAutoStart(aSetTo: boolean);
var
R: TRegistry;
begin
{$IFNDEF NOD32FRIENDLY}
R:=TRegistry.Create;
try
R.RootKey:=HKEY_LOCAL_MACHINE;
if R.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
false) then
begin
if aSetTo
then R.WriteString(sPath,sPath+'QuikOrdersDOM.exe' )
else R.DeleteValue(sPath);
end;

finally
R.CloseKey;
R.Free;
end;
{$ENDIF}
end;
NOD будет ругаться, тут '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' в чистом виде может быть быть в exe файле :)
этот код сломал мой мозг)
UFO just landed and posted this here
По-моему, в стиле общения вы не слишком далеко ушли от него
Считаете EVEN тоже директор? :D
Что бы человек уровня директора написал что-то в стиле «пусть сасёт»? Что вы!
как будто директора пишут только резолюции:)
> никто из ESET не принимает участия в анонимных дебатах на непонятных сайтах.
пошлите ему ссылку на habrahabr.ru/company/eset/
Я совсем запутался в этих новомодных эвристических херовинах:


И теперь virustotal.

P.S. Программа написана на древнем Delphi 7, используются только два лабела.
>Я совсем запутался в этих новомодных эвристических херовинах:

:) :) :)
оказывается в этом мире всё гораздо сложнее
Я даже «антивирус» придумал:

if(strpos($content,'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'))
{
   echo "Seems like \"Virus.Win32.AdWare\"";
}


* This source code was highlighted with Source Code Highlighter.
Ай-яй-яй, дырявый у вас антивирус :) Нельзя просто if(strpos(...)), если $content начинается с этой строки то strpos вернет 0, надо if(strpos(...) === 0).
Даю вам 100% что в случае возврата 0 это будет текстовый файл с соотвествующей строчкой.
да, но

0 == false и Ваш код не сработает при 0, необходимо
if( strpos($content,'...') !== false )
Мы же только что про это говорили. Давайте не лезть в дебри сверх секретной разработки.
В этой новой версии вируса я удалил первый лабел («Ниже приведена ...») — результат.
Все же мне нечего делать на работе.
еще милее ) а попробуйте разбить строку на подстроки, какой будет результат?
Явно видно, что очень много спонтанных эвристических срабатываний и нелогичных подходов в поиске угрозы.
А справочник опасных ключей реестра сделает из virustotal новогоднюю ёлку
Нет, все печальнее… Delphi7 вообще считается чистым злом.
Как софт-девелопер, могу рассказать о «замечательной традиции» каждый билд отсылать на virustotal и проверять скольким эвристикам сорвало крышу. Есть даже черный список того, что делать никогда нельзя. Например:
Если программа весит меньше 80кб и в таблице импорта есть «CopyFileA», то это вирус (trojan-dropper).
Если программа весит меньше 100кб и при этом использует WinInet, то это это backdoor. Если же сжать эту программу UPX'ом, то она станет трояном.

Список довольно длинный.
Огласите весь список, пожалуйста. Имеет смысл отдельным постом (:
в комментариях в предыдущей статье есть
Определенно, это eicar нового поколения.
Дваноль, так сказать.
8)
Ваша главная ошибка — что Вы писали на древнем Delphi 7
Ибо этой популярной версией пользуется и вирусописатели. Именно на Delphi 7 созданы многие тысячи вирусов. Поэтому exe-шники, скомпилированные семёркой, чаще всего детектируются (всё просто: число совпадений слишком велико, и некоторые антивирусы «зашкаливают», переставая различать «чёрное» и «белое»)
Думаю, что вкупе с какими-то другими действиями это дает (так сказать последняя капля) позитивный тест на вирус. А если попробовать поотключать остальной функционал, что происходит при запуске? Возможно, какие-то .DLL или компоненты?
убрать добавление в реестр был последний эксперимент, он и привел к адекватной реакции NOD. Затем восстановил, всё, что было убрано, кроме реестра и проверил снова — всё «чисто»
А может стоит писать не в HKEY_LOCAL_MACHINE, а в HKEY_CURRENT_USER? Почему вы решили что всем пользователям системы нужна ваша программа в автозапуске?

P.S. ESET как раз показали себя образцами адекватной компании и поддержки
>P.S. ESET как раз показали себя образцами адекватной компании и поддержки
вы прочитали ответы сотрудника в предыдущей статье и после этого действительно так считаете??
Да, так считаю. Единственное, что они не смогли вам сказать в чем может быть проблема — но саппорт может и не знать о работе ядра антивируса, тем более это же локальное представительство, а не центральный офис.
Вообще поражает реакция хабрасообщества на эти ваши топики. Вы с самого начала получили адекватный и правильный ответ (который привели как переписку с якобы сотрудником ESET), но умудрились при этом каким-то образом нихрена в нем не понять.
Далее вам дает не менее адекватный ответ сотрудник ESET прямо в вашем топике, а вы (хабрасообщество) по каким-то неведомым соображением считаете этот ответ нахальным. Каким-то непостижимым образом вам удалось увидеть хамство там, где его не было и даже посчитать суппорта «царьком».
Честно говоря, после подобного начинаешь сомневаться в адекватности собственного восприятия. Возможно на мое восприятие повлияло изучение ассемблера и вирусологии в институте… Может быть поэтому мне с первого же поста на эту тему кажется, что автор этих постов и часть сообщества просто не желают слышать верные (кажущиеся мне верными) аргументы. Сама суть этих аргументов в том, что если та или иная программа содержит потенциально опасные участки кода, то хороший антивирус обязан предупреждать пользователя об опасности. И эта позиция абсолютно верна, и она не зависит от размышлений на эту тему разработчиков софта, что тоже правильно.
Извините, несколько наболело.
>Вы с самого начала получили адекватный и правильный ответ (который привели как переписку с якобы сотрудником ESET), но умудрились при этом каким-то образом нихрена в нем не понять.
Почему якобы? это была настоящая переписка. Вы прочитали её внимательно, видели, как сначала программу добавляют в базу сигнатур а потом вдруг она становится «заведомо вредоносной» по решению суппорта, и вы считаете, что это было «адекватно», «правильно» и «понятно»? Что именно вам «понятно» из этой переписки?

>Далее вам дает не менее адекватный ответ сотрудник ESET прямо в вашем топике, а вы (хабрасообщество) по каким-то неведомым соображением считаете этот ответ нахальным

я не разу не употребил слово «нахальным». Кстати, он признал ошибки компании в этой переписке, но вы по прежнему настаиваете на её адекватности. почему? И после того, как было сказано, что сотрудник должен был дать мне какие-то технические рекомендации, на мою просьбу дать из сейчас, ответа не последовало.

>Честно говоря, после подобного начинаешь сомневаться в адекватности собственного восприятия.
Может, не зря сомневаетесь?

>Возможно на мое восприятие повлияло изучение ассемблера и вирусологии в институте…
Ну что вы, это вряд-ли, попробуйте копнуть дальше и проанализировать своё детство. Какие у вас были отношения с отцом? он вас бил?

>Сама суть этих аргументов в том, что если та или иная программа содержит потенциально опасные участки кода, то хороший антивирус обязан предупреждать пользователя об опасности
Включение компьютера — огромная опасность заражения. Вам нужен антивирус, который блокирует включение компьютера

>Почему якобы?
Ну вы написали, что было подозрение, что он сотрудник, хотя сам он говорил, что не сотрудник. Поэтому и якобы.

>Если Ваш пользователь позвонит с данной проблемой, он получит точно такой же ответ — как в предыдущем письме — то что данная программа является вредоносной
Предыдущее письмо:
>Если файл детектируется антивирусом, то это означает, что он несет вредоносные функции. Другой вопрос являются ли эти функции необходимыми для работы программы или нет.
Т.е. пользователю сообщат, что программа несет вредоносные функции. Строго говоря это действительно так — самостоятельный автозапуск такого рода можно считать вредоносным, часть антивирусов так и делает. Просто сотрудник не мог точно вам сказать, в чем эта вредоносность заключается. Сотрудник точно знает, что если эвристика решила, что вредоносные функции есть, то они там действительно есть. О чем и сообщают пользователю. Вот и вся суть его ответа.

>Что именно вам «понятно» из этой переписки?
abibos все очень доходчиво объяснил. Я это имел в виду. После того, как я прочитал первую часть письма я готов был вам дать точно такие же объяснения.

>я не разу не употребил слово «нахальным».
А я и не писал, что речь о вас конкретно: "… а вы (хабрасообщество) по каким-то..."

>Какие у вас были отношения с отцом? он вас бил?
Переход на личности — признак вашей слабости.

>Включение компьютера — огромная опасность заражения. Вам нужен антивирус, который блокирует включение компьютера
Вы будете смеяться, но направление этой мысли верное, практически так и нужно подходить к вопросам безопасности — с максимально возможным пристрастием.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
ничего что писать надо сюда?! ;)
То куда пишете Вы — требует админских прав и конечно подозрительно.
это уже второй вариант. первый был в HKEY_CURRENT_USER\, и это тоже было подозрительно
раздел реестра передаётся как отдельный параметр, а путь «Software\...» как другой, поэтому HKLM или HKCU не имеет значения т.к. реакция идёт именно на путь
не понимаю только одного — ведь не у одного автора программа добавляется в автозапуск. по идее каждая вторая или третья программа тогда должны быть подозрительными для нода. разве это так? у многих знакомых нод стоит — такого беспредела вроде бы нет. или они (остальные программы) как-то не через реестр добавляются? чисто из любопытства вопрос. есть идеи?
UFO just landed and posted this here
Да нет, просто делфи очень не любят. Например, если рядом поставить запрос к wininet.dll и winexec из kernel32, то гарантированно будет крик, а если там ещё и строка, содежащая 'exe' фигурирует, то всё, ты — троян.даунлоадер. Только разделением строк на куски и раскидыванием обращений по функциям выходит избавиться от ложных срабатываний.
Дискриминация по компиляторному признаку!
<<Да нет, просто делфи очень не любят
угу, вспомнился день глючного обновления аваста когда все делфи-программы попали в зону риска. надо отдать должное авасту — к 8ми утра всё починили и была выпущена новая сигнатура.
вот вам и free soft
Так они еще и извинялись в блоге долго и, говорят, процедуру сабмита обновлений поменяли, чтобы такое не повторилось. И avast! не совсем бесплатный, все-таки.
Просто это быдлоэвристика…
Даже у касперского и то веселее. Тот отслеживает API вызов добавления в реестр и спрашивает, нужна ли прога в автозагрузке.
Попробуйте работу с реестром делать в инсталяторе, я всегда так делаю и проблем не возникает :)
Ответ ESET немного разочаровал — суть я свёл к тому что у них 60 миллионов пользователей, а у Вас чахлая программка. Самое главное так и не ответили по существу — какова причина срабатывания. Видимо «специалисты такого уровня», которые могут ответить, работают только с компаниями «MS или Adobe».
Как показала практика, ESET в чём-то прав :(
Автор действительно по сомнительным соображениям пытается получить добавить программу в автозапуск для всех пользователей, вместо того, чтобы использовать «автозагрузку» в меню «пуск» или, хотя бы, ветку пользователя. Это как-бы весьма порочная практика.
оба варианта пробовал, и HKCU и HKLM, NOD ругается
потому что верный способ — Пуск->Автозагрузка через CreateLink. Интерактивные программы через реестр пускать грешно.
Ну какбы и пусть говорит, что «программа может попытаться добавить себя в автозагрузку». И давайте не будем ЭТО называть эвристикой.
А то от одного нахождения в коде определенного пути реестра мы уже и программу как вирус детектировали и название этому вирусу даже дали…
для автозапуска юзайте не HKLM а HKCU. Реакция авнивируса конечно неправильная, но и вы можете столкнуться потом с проблемами. например UAC в висте просто не даст записать:)
да, еще хочу помочь с одним траблом, который доставил мне немало хлопот. Примерно в 1 случае из 3 автозагрузка не сработает, если не обернуть путь к ехе в кавычки. А в остальных двух не сработает если обернуть:)
В качестве воркараунда надо добавлять какой нибудь ключ, любой. Тогда будет работать всегда.
то есть писать значение «path\program.exe» /anykey

З.Ы. а представляете, как сильно вы заразили бекдором хабр? сейчас нод будет классифицировать его как вирус потому что там есть строка 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' :)
Этот продукт — сам по себе вреднее любого вируса, его замечательные механизмы «эвристики, сканирования и раннего обнаружения» не работают на 90% вирусов и, тем более, на загрузчиках, которые хорошо прячутся. Не раз видел, как пользователи, успокоенные зеленой иконкой, разводили себе целый зоопарк, от которого компьютер в итоге просто дох. Ужасное говно.
это точно. юзал нод32 v4, всем советовал… потом чего-то мне не понравилась работа машины, снес нод, начал ставить каспера — он как только установился (даже не обновившись!) начал орать про вирусы. Вот вам и зеленая иконка.
Подпишусь под каждым словом. Я продвигал Нод среди друзей года два, не меньше, и как-то раз мне взбрело в голову поставить Авиру… С компьютером случилось неописуемое :) что-то около полусотни РАЗНЫХ обнаружений. После этого я прошерстил тему антивирусов в интернете, нашел сайт AV-Comparatives и дальше все стало ясно — обнаружений по эвристике у Авиры на 50% больше.
Хм… А зачем вообще связываться с реестром? Можно же просто взять и поместить ярлык приложения в папку автозапуск, причем на этапе установки спросить лучше.
Реестр он больше для системных приложений.
А насчет антивирусов: ну на данный момент эвристические алгоритмы вообще ещё весьма слабые, и мне вот непонятно, почему сотрудники НОДа отказались просмотреть ваше приложение и разобраться, от чего возникает ложное срабатывание и не улучшили свои алгоритмы на основе этих данных.
на этапе установки — не совсем то что нужно. Пользователь должен иметь возможность добавить/убрать в автозапуск в процессе эксплуатации
а пользователю тяжело перетащить руками ярлычок программки? не с точки зрения юзабилити и интерфейса, а с точки зрения альтернативного решения :)
рассматриваю в качестве варианта
Закончится лицензия на NOD, поставлю ка я себе наверное G-Data. ESET что-то последнее время все меньше начинает радовать, а G-Data по предварительным оценкам показывает себя очень и очень хорошо.
Моё мнение — всё верно антивирус ругается. Иногда лучше перебздеть, чем недобдеть. Ответ директора, конечно, излишне развесёлый, но может у него такое ЧЮ, оставим на его совести методы работы его конторы. Также было бы неплохо поактивнее и покомпетентнее общаться с разработчиками программ по поводу таких вот казусов, но, обещано в письме — исправятся :)

А вот по поводу программы выскажу критику. Немного напрягает инертность мышления многих программистов. Да, когда-то было негласно допустимо (и даже принято) из каждой программы рыться в любой ветке реестра, читать/писать файлы в любом месте диска, в том числе (особенно популярно!) «в папку с программой» и т.д. и т.п. Но надо же немного идти на поводу у новых тенденций и требований. Ну не принято в большинстве случаев из программы, предназначенной для обычного использования трогать реестр, и уж тем более HKEY_LOCAL_MACHINE. Мало того, вам же не дадут сделать это не под админом! Вы что, и виндовс будете ругать за это? Или требовать запускать программу под админскими правами? Странно всё это… Нужно же делать как положено. А положено тут (если уж не хотите создавать ярлыки из инсталлятора, что уже странно) создавать ярлык в Start->Programms->Startup. О нет, и за этим тоже не нужно тянуть руки к реестру — есть цивильные методы в шелле.

Из-за всего этого в виндовсах до сих пор «принято» по умолчанию работать в админской учётке, потому что гемору не оберёшься. Когда приходится сталкиваться с win-системами очень огорчает, что каждая вторая мелкая программулина зачем-то хочет админских прав. Пытался заставить жену сидеть «под юзером» — возмущается, неудобно каждый раз run as тыкать и пароли вводить.

NOD, конечно, немного параноит, но и в вашей программе такого быть не должно. Но у НОДа такая работа. На то она и эвристика, чтобы использовать разные эвристические методы. Одними из которых является проверка на наличие того, чего быть не должно. Можно ведь эвристики отключить, как помнится. Разумеется, что все эти методы несовершенные, это ведь нетривиальная задача. Тут один выход — искать какой-то баланс между пофигизмом и паранойей.
>А вот по поводу программы выскажу критику. Немного напрягает инертность мышления многих программистов. Да, когда-то было негласно допустимо (и даже принято) из каждой программы рыться в любой ветке реестра, читать/писать файлы в любом месте диска, в том числе (особенно популярно!) «в папку с программой» и т.д. и т.п. Но надо же немного идти на поводу у новых тенденций и требований. Ну не принято в большинстве случаев из программы, предназначенной для обычного использования трогать реестр, и уж тем более HKEY_LOCAL_MACHINE. Мало того, вам же не дадут сделать это не под админом! Вы что, и виндовс будете ругать за это? Или требовать запускать программу под админскими правами? Странно всё это… Нужно же делать как положено. А положено тут (если уж не хотите создавать ярлыки из инсталлятора, что уже странно) создавать ярлык в Start->Programms->Startup. О нет, и за этим тоже не нужно тянуть руки к реестру — есть цивильные методы в шелле.

barker,
допустим вы полностью правы. Но вы забываете о функциях NOD. Такими диагнозами, как вы пишите, вроде «Ваша программа использует HKLM — а это не хорошо и т.д.» должен заниматься, не знаю, какой-нибудь «этический анализатор кода», но не антивирус. У антивируса работа НЕ такая
Вам же наглядно объяснили, что в вашем случае речь не об этике, а уже о мате. В свое время защищенный режим работы процессора был введен по той же причине — прикладной софт не должен лезть куда не положено, это не этика, с точки зрения антивируса это неприкрытое хамство.
Да я по реакции на моё и подобные сообщения уже понял, что и Вас и многих больше беспокоит чужой код, чем свой. Вы же меня поймите — во-первых я вас не укоряю, пишите как хотите, хоть в MBR прописывайтесь, дело ваше и пользователей ваших программ, к коим я не отношусь. Во-вторых, моё сообщение состояло из двух более-менее обособленных частей — сначала я высказал своё мнение о НОДе и его руководстве, далее были мысли вслух о некоторых странных тенденциях. В-третьих (или как модно в этом топике говорить — компот), работа антивируса сейчас давно заключается не только в сопоставлении сигнатур, а в общем аудите системы, эвристиках таких вот всяких и тому подобном. Всё это можно отключить в большинстве антивирусов, как помнится. Дело тут не в этическом анализе кода, а в том, что по мнению НОДа (как и по моему мнению и многих в этом топике) в обычной программе не должно быть такого кода, вот и всё. Ту же задачу можно сделать кучей цивильных методов, на них Вам неоднократно указали. Или дискуссия идёт уже о том, должны ли быть в пользовательской программе прямое обращение к HKLM?
А уж то, что NOD использует всякие несовершенные эвристики и реагирует просто на строки в exe — это вопрос уже отдельный. Да, я тоже думаю, что это скорее неправильно, но это я и не пытался обсуждать.
Предлагаю вам бизнес-идею в духе времени, которая может примирить стороны и поможет антивирусам быть лучше.
Надо добавить обратную связь от пользователей: если 90% пользователей (но не менее, пусть, 1000) посчитали при предупреждении эвристики (и только её) файл (идентифицируемый по hash) безопасным, то считать его таковым.
Успехов.
В прошлом посте так хотелось написать что дело в авторане, но что-то лень было :)

Вообще все эти эвристики достаточно примитивны. Реагируют на подобные строки. Те кто поумней реагируют на строки которые передаются в качестве аргументов определенным функциям. Но стоит пошифровать их обычным ксором, как вся эвристика заканчивается, в том числе и эвристика от ESET, которая сделала прорыв в данной области.
Прочитал топик и всю ветку комментов. Вопрос не то чтобы к представителям ESET но просто риторичесий: grep является эвристикой?
IMHO называть эвристикой срабатывание на строку в exe — обман. Самый обычный обман пользователя.
«Исходный код подозрительного файла проходит сверку и сравнение с исходным кодом известных вирусов и образчиков вирусной активности. В случае, если определённый процент исходного кода идентичен коду известного вируса или вирусной активности, файл отмечается как подозрительный, о чем оповещается пользователь.»
Здесь никто не даст гарантию, что антивирус срабатывает исключительно на эту одну строку. Возможно работает некая система очков, которая зацепилась за что-то еще.
Называть эвристикой срабатывание на строку в exe — действительно обман, т.к. срабатывание на строку это ближе к сигнатурному анализу, просто эвристика пользуется базой элементарных сигнатур.
Спасибо К.О. Я не о том. Я о том что если эту же строку мы сгенерируем из xor`ом из двух массивов интов ничего антивирь не пропалит. вот если бы палил, была бы эвристика, а пока не палит — тупо сигнатурный поиск, а ему я в корне не доверяю, сам без антивируса вообще живу и без проблем.
Кстати говоря, ксор это один из самых надежных способов обхода, но вообще говоря еще в 2004 году эвристика антивирусов (drWeb) умела расшифровывать подобные штуки. Не знаю на счет конкретно нода, но эвристика антивируса должна состоять из двух компонентов — своеобразной виртуальной машины, которая запускает вирус в безопасной среде и дает ему самому себя расшифровать. Вторая часть начинает работать после этого, она и есть grep. Это все было уже в 2004. Сейчас не знаю.

Я о том, что grep это часть эвристики. Частный случай. Автоматизированый grep является эвристикой даже если виртуальная машина не применяется. Он становится эвристикой в тот момент когда начинает работать система оценок. И да, это тупо сигнатурный поиск, но не простое срабатывание на строку, это не обман, такова технология. И доверять ей действительно нельзя — какой дурак будет писать вирус, который определяется эвристикой?

С другой стороны эвристика могла, например, в свое время находить такие штуки как Win32/Zafi.B, Win32/Mydoom.R и Win32/Bagle.X безо всяких сигнатур.
Кстати, если вы вот это имели в виду, то тогда давайте посмотрим в чем дело:
a-squared — это сканер MailWare, Anti-Spyware. Про эвристику на их сайте ничего толком не сказано.
McAfee-GW-Edition это похоже тоже MailWare, вполне допустимо для такого софта сканировать по сигнатурам. И вообще он написал достаточно доходчиво: Heuristic.LooksLike.Win32.Backdoor
VBA32 это некий «ВирусБлокАда» антивирус. Говорят, что эвристика есть и даже эмулятор процессора. Но кто знает, может и правда тупо строку ищут.
Ikarus — говорят, что эвристика есть, но толком на это не напирают. И вообще на сайте ясно сказано: «параноидальный антивирус не для домохозяек».
Весёлый финал истории :)))
Я ожидал многого, но точно не этого
Sign up to leave a comment.

Articles