Касперский душит мои события до / после сборки - PullRequest
2 голосов
/ 02 декабря 2010

Очевидно, что VS упаковывает события после и до сборки в cmd-файл, который он помещает в папку LocalSettings / Temp. Внезапно Касперский (вчера он работал нормально) решил, что это угроза (риск RootShell), и поместил их в карантин, из-за чего у меня зависла VS, и у меня не было возможности компилировать проекты (кроме как пройти через все вручную, удалив события).

Системный администратор здесь - по понятным причинам - не заинтересован в создании исключения с подстановочными знаками для *.TMP.EXEC.CMD файлов в папке LocalSettings / Temp. Мой Google-фу не помог мне до сих пор.

Кто-нибудь сталкивался с этой проблемой или получил какие-либо советы?

EDIT FWIW, такая же проблема с git, SmartGit и загрузкой других программ. Касперский добирается до смарта ради собственного блага ...

1 Ответ

4 голосов
/ 08 декабря 2010

Подождите, собственная ИТ-политика вашей компании не позволяет вам выполнять свою работу?

@ Грег: Мне больно видеть, что этот менталитет увековечен ввид технического ответа.Мы должны поощрять работу с вашим системным администратором, а не против них.По всей вероятности, это всего лишь результат настройки по умолчанию в Kaspersky в сочетании с немного странной практикой в ​​Visual Studio, и теперь системный администратор знает, что они пытаются найти работоспособное решение.

Этосказал, отклонив идею подстановочного знака, если ваш системный администратор не активно ищет альтернативное решение, то он не выполняет свою работу должным образом.Это сообщаемая проблема.Конечно, политика вашего офиса будет сильно влиять на то, кто победит в аргументе «разработчик против сисадмина» - даже некоторые старшие руководители начинают паниковать, когда разыгрывается карточка «безопасности компании» системного администратора!

Как системный администраторМне также неудобно произвольно разрешать выполнение непроверенных файлов *.tmp.exec.cmd - на удивление легко записывать Local Settings\Temp из многих мест, и множество ( вставка известного программного обеспечения ) эксплойтов может разрешить выполнение.

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

Итак, с обеими шляпами (и небольшим количеством Google) яПосмотрите на политику / события Kaspersky, относящиеся к нашим клиентским машинам, и увидите, что пакетные файлы событий сборки запускают правило Input/Output redirection в Application Activity Analyzer.Поэтому я полагаю, что проблема заключается в том, как Visual Studio захватывает выходные данные из ваших событий сборки.

Многое из следующего будет «мусором» того, что я пытался обойти,с разной степенью успеха.Я также запускаю CruiseControl.NET на нескольких отдельных сборочных машинах (именно здесь я впервые заметил проблему), поэтому я остановлюсь на касательной, чтобы охватить их тоже.

Я считаю, что недавноОбновление Kaspersky, возможно, изменило действие по умолчанию для этого с Allow / Prompt на Quarantine, или что определения для этого теперь слишком усердны.

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

Я вижу четыре возможных решения этой проблемы, кроме вышеупомянутого исключения с подстановочными знаками:

  1. Изменение настроек AAA в Kaspersky насделать переадресацию ввода / вывода доступной операцией
  2. Добавить правило исключения для *.tmp.exec.cmd, но ограничить его только тем, чтобы оно не зависело от компонента Проактивной защиты для типа угрозы RootShell
  3. Отключениепроверка перенаправления ввода / вывода
  4. Добавление исключения «доверенная зона» для %WINDIR%\Microsoft.NET\Framework\*\MSBuild.exe, (и Framework64) с Do not restrict application activity

Варианта # 1 может быть достаточно, поскольку он передает управление конечному пользователю (если они считаются достаточно надежными для принятия решения), но может заблокировать CC.Процесс сборки NET, пока он ожидает ответа.

Вариант № 2 может предоставить достаточно пограничного случая, чтобы системный администратор был более склонен к включению правила.Вы также можете уточнить правило с временным путем, таким как %TEMP%\*.tmp.exec.cmd, чтобы еще больше уменьшить беспокойство.Однако для сеанса службы переменные среды, похоже, не загружаются (по крайней мере, правило не срабатывает), поэтому вам нужно обойти это, запустив CC.NET под известной учетной записью службы домена.и добавление другого правила, явно указывающего его временное местоположение.

Опция # 3 пахнет так же, как исключение подстановочного знака, если не хуже.Хотя перенаправление ввода / вывода на самом деле так важно?Должна ли жестко контролироваться способность передавать результаты одного процесса другому?Кажется, Касперский так думает, но я не уверен.Наверняка это сильно повредит многим приложениям в стиле автоматизации / планировщику?

Вариант № 4 - мои предпочтения в качестве системного администратора.Если я смогу найти правильную комбинацию настроек, чтобы MSBuild мог выполнять свою работу, но все остальное все еще покрыто, это должно быть правильным способом, не так ли?

К сожалению, нет, поскольку процесс MSBuild.exe порождает процесс cmd.exe для запуска файлов *.tmp.exec.cmd, и именно в контексте этого процесса cmd.exe сканирует файл Kaspersky.Это означает, что правило для доверенного приложения должно быть определено для cmd.exe с Do not control application activity.Это выглядит хуже, чем исключение подстановочного знака для *.tmp.exec.cmd, потому что это фактически означало бы, что все тестовые файлы исключаются из теста, а не только из подмножества.

Так что я возвращаюсь к комбинации опций # 1 и# 2.Я добавляю правила исключения для %TEMP%\*.tmp.Exec.cmd, %USERPROFILE%\Local Settings\Temp\*.tmp.Exec.cmd и %USERPROFILE%\AppData\Local\Temp\*.tmp.Exec.cmd (если %TEMP% не определен, путь на основе %USERPROFILE% должен попасть туда на XP и W7 соответственно).Я также изменяю действие по умолчанию для I/O redirection на Prompt, поэтому, если это слишком агрессивное новое правило / определение, любые другие программы, на которые это может повлиять, могут явно контролироваться моими конечными пользователями (или, по крайней мере,может напугать их достаточно, чтобы прийти спросить меня об этом).

Что касается CC.NET, план двоякий: либо я устанавливаю CC.NET на реальных серверах, на которых запущен Kaspersky Server Edition (не включает модуль AAA), либо, если я намеренноустанавливая CC.NET на сборку рабочей станции (например, если я хочу автоматически проверить, работает ли мое приложение в W2K / WXP / W7 с использованием модульных тестов и т. д.), я включаю его в стандартную операционную процедуру для настройки службы CC.NET назапустить под моей выделенной учетной записью службы домена, svc-ccnet, а затем добавить фиксированные правила исключения в нашу политику Kaspersky для C:\Documents and Settings\svc-ccnet\Local Settings\Temp\*.tmp.Exec.cmd и C:\Users\svc-ccnet\AppData\Local\Temp\*.tmp.Exec.cmd, с типом угрозы RootShell и компонентом, установленным на Proactive Defense.Одним нажатием кнопки я могу добавить устройства CC.NET в другую группу KAV, которая ослабляет ограничение AAA.

Надеюсь, это поможет (на самом деле, я надеюсь, что кто-то еще придет и скажет: «Вы что-то пропустили»)очень просто ", а затем объясняет, что это такое !!).


TL; версия DR: Опции, которые я нашел в KAV, чтобы предотвратить или уменьшить эффект от этого:следующее.Попросите вашего системного администратора выбрать тот, который ему наиболее удобен:

  1. Установите действие для перенаправления ввода-вывода на Разрешить или Запросить в настройках анализатора активности приложений политики
  2. Снимите флажок IПараметр перенаправления / O в настройках анализатора активности приложений политики
  3. Добавить %COMSPEC% в список доверенных приложений политики, отметив флажок «Не контролировать активность приложения»
  4. Добавить %TEMP%\*.tmp.exec.cmd в списокПравила исключения политики, использующие тип угрозы RootShell и компонент Proactive Defense

Мои предпочтения # 4;другие могут отличаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...