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


Фото
- - - - -

Обход проблемы Mail и Spider


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

#1 Serge3leo

Serge3leo

    Newbie

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

Отправлено 30 Май 2010 - 12:56

Всем привет,

Как известно, если есть почтовый сервер IMAP (для 10.6, наверное, и Exchange, ещё не пробовал). То при включённом Dr.WEB происходит следующий процесс:
  • Dr.WEB обнаруживает в файле /Users/xxx/Library/Mail/IMAP-yyy@zzz/BBBB.imapmbox/Messages/673.emlx (или Attachments) неизлечимый вирус и помещает его карантин;
  • Mail при очередной синхронизации видит, что файла у него нет, загружает его по новой;
  • И так до бесконечности, файлы с вирусами загружаются с сервера и переправляются в карантин;
Жить мне это не слишком мешало (каналы широкие и не слишком платные, так что пара сотен писем туда-сюда не напрягают), если конечно отключить звуки. Но, в связи с обновлением ОС, я опять столкнулся с необходимостью обхода этой проблемы и возникло несколько вопросов:
  • Как отключить звуки по минимуму, достаточно ли отключить SpIDer "Обнаружение подозрительного файла или...", или надо отключить ещё в Сканере тоже?
  • Нет ли какого-либо простого способа выяснить, что объект в карантине является письмом или приложением к письму, а также реквизиты этого письма: сервер, ящик, заголовок и дата?
  • Нет ли способа при задании исключений SpIDer указать домашний каталог пользователя?
  • Я правильно понимаю, что если я исключу папки со спамом, а потом попытаюсь просмотреть вложения писем из них, то они будут всё равно проверены, т.к. будут показываться из папки "~/Library/Mail Downloads/", т.е. исключения для некоторых почтовых папок не слишком увеличит опасность проникновения вирусов?


#2 Andrew Kargalov

Andrew Kargalov

    Newbie

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

Отправлено 15 Июнь 2010 - 16:56

Hi!

А не проще после обнаружения удалить заражённое письмо с IMAP-сервера, чтобы оно не мешало и вреда не нанесло по случайности? Но если хочется попробовать с обходными путями, то:

1. В теории должно хватить отключения звуков SpiderGuard. Если вдруг на практике окажется иначе, то давайте будем смотреть и исправлять.

2. Определить то, что объект является письмом конечно можно. А вот то, что объект -- вложение, вряд ли. Разве что смотреть на то, из какой папки он пришёл в карантин. В любом случае разумная работа с почтовыми файлами планируется, как в части возможности отключить проверку почтовых архивов, так и в части обучения SpiderGuard работе с Apple Mail. Спасибо за полезное соображение: отображать (при возможности) в карантине информацию о задержанных письмах (от кого, кому, когда и т.п.).

3. Любой каталог можно добавить в исключения. Например найти его в Finder и перетащить в окно настроек SpiderGuard.

4. Возможно это удовлетворительный вариант. А ещё лучше файлы в опасном формате сохранять куда-нибудь в проверяемое место (на рабочий стол, например) перед использованием.

#3 Serge3leo

Serge3leo

    Newbie

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

Отправлено 16 Июнь 2010 - 03:35

2. Определить то, что объект является письмом конечно можно. А вот то, что объект -- вложение, вряд ли. Разве что смотреть на то, из какой папки он пришёл в карантин

Необязательно по названию папки, скажем Finder умеет показывать URL <messages:xxxxxxx> в свойствах, а при открытии сравнительно недавно пришедших приложений (attachments), он даже выдаёт диалог типа: "Данный объект из письма, Вы уверены? Открыть письмо в котором его прислали? Отказаться от открытия? Открыть?". Честно говоря, я в этих атрибутах, что свинья в помидорах. Но попробовать можно, например:
$ xattr -l ~/Library/Application\ Support/DrWeb/quarantine/text.pif.6lDUH4
com.apple.metadata&#58;kMDItemWhereFroms&#58;
00000000  62 70 6C 69 73 74 30 30 A3 01 02 03 5F 10 18 73  |bplist00...._..s|
00000010  74 65 70 68 61 6E 65 2E 6D 61 65 73 40 6F 72 61  |tephane.maes@ora|
00000020  63 6C 65 2E 63 6F 6D 5F 10 0F 64 65 6C 69 76 65  |cle.com_..delive|
00000030  72 79 20 66 61 69 6C 65 64 5F 10 3F 6D 65 73 73  |ry failed_.?mess|
00000040  61 67 65 3A 25 33 43 32 30 30 37 30 35 31 33 31  |age&#58;%3C200705131|
00000050  35 32 38 2E 6C 34 44 46 53 42 57 48 30 32 37 39  |528.l4DFSBWH0279|
00000060  31 37 40 62 61 6C 64 65 72 2D 32 32 37 2E 70 72  |17@balder-227.pr|
00000070  6F 70 65 72 2E 63 6F 6D 25 33 45 08 0C 27 39 00  |oper.com%3E..&#39;9.|
00000080  00 00 00 00 00 01 01 00 00 00 00 00 00 00 04 00  |................|
00000090  00 00 00 00 00 00 00 00 00 00 00 00 00 00 7B	 |..............{|
0000009f
com.apple.quarantine&#58; 0000;46473b59;Mail;8DAF9557-1A3B-4648-BA00-6A6690727FC3|com.apple.mail
$ mdls -name kMDItemWhereFroms ~/Library/Application\ Support/DrWeb/quarantine/text.pif.6lDUH4
kMDItemWhereFroms = &#40;
	&#34;stephane.maes@oracle.com&#34;,
	&#34;delivery failed&#34;,
	&#34;message&#58;%3C200705131528.l4DFSBWH027917@balder-227.proper.com%3E&#34;
&#41;
$ open &#34;message&#58;%3C200705131528.l4DFSBWH027917@balder-227.proper.com%3E&#34;

А не проще после обнаружения удалить заражённое письмо с IMAP-сервера, чтобы оно не мешало и вреда не нанесло по случайности? Но если хочется попробовать с обходными путями, то:

Возможно и проще, в теории, т.к. есть два но:
  • Если процесс не слишком запущен;
  • Если папка удалённых писем находится в исключениях (иначе шаги по удалению придётся проводить дважды, ещё и с ней тоже).
Как я понимаю, этот процесс на настоящий момент. Мне представляется, что необходимым условием является добавление в исключения SpIDer папки удалённых писем.

Случай 1 - удаление письма, содержащего "неизлечимый" "вирус". Если мы видим в карантине запись типа: "/Users/xxx/Library/Mail/IMAP-yyy@zzz/BBBB.imapmbox/Messages/673.emlx", это тело письма попало в карантин, нужно выполнить следующие действия:
  • В карантине сказать восстановить объект;
  • В терминале выполнить команду "open /Users/xxx/Library/Mail/IMAP-yyy@zzz/BBBB.imapmbox/Messages/673.emlx" и, либо сразу нажать кнопку удалить, либо сначала нажать ссылку "показать в ящике", а потом удалить;
  • Очистить папку удалённых писем.
Случай 2 - удаление письма, вложение которого содержит "неизлечимый" "вирус". Если мы видим в карантине запись типа: "/Users/xxx/Library/Mail/IMAP-yyy@zzz/BBBB.imapmbox//Attachments/23949/3.2/mail.zip", это приложение к письму попавшее в карантин, если само письмо не попало в карантин, то, нужно выполнить следующие действия:
  • В терминале выполнить команду "open /Users/xxx/Library/Mail/IMAP-yyy@zzz/BBBB.imapmbox/Messages/23949.emlx" (IMHO имя каталога - совпадает с номером письма) и, либо сразу нажать кнопку удалить, либо сначала нажать ссылку "показать в ящике";
  • Очистить папку удалённых писем;
  • Удалить объект в карантине.
К сожалению я, в настоящее время, не понимаю как автоматизировать этот процесс в запущенных случаях. Например,
$ ls -l ~/Library/Application\ Support/DrWeb/quarantine/ | wc
   11977  107956  939078
А несколько десятков тысяч объектов просто так не обработать. И не понятно где искать от этих файлов метаинформацию о каталогах, откуда они попали в карантин. А замечу на секундочку, что при просмотре в карантине, по-моему, даже по столбцам сортировать нельзя (или я ошибаюсь и что-то сделать можно?)

А дестяки тысяч файлов в карантине - это плод, как выше описанного дублирования объектов в Mail без исключений для папок со спамом (при условии, что спам сортирует сервер), так и частично заработавшей Time Machine.

Дело было не слишком плохо (файлы размножены, но коэффициент размножение всяко меньше 10 , см. прилагаемый файл), пока доблестная тех. поддержка не посоветовала, не просто обновить, а установить новую сборку с дистрибутива. Тут то и возникли одновременно две беды, во-первых, слетели исключения SpIDer (на папки спама и на тома TM), во-вторых частично заработала Time Machine без этих исключений (а что чаще всего обновляется и попадает в резервную копию? Правильно, файлы карантина :(, ну эта троица TM, Mail и Dr.Web и порезвились на славу и подняли коэффициент размножения до нескольких сотен).

3. Любой каталог можно добавить в исключения. Например найти его в Finder и перетащить в окно настроек SpiderGuard.

Спасибо, я бы сам бы не догадался бы использовать что-то, кроме кнопки "+", это частично облегчает проблему.

А можно просто отредактировать файлы:
  • ~/Library/Application\ Support/DrWeb/scan.ini;
  • /Library/Application\ Support/DrWeb/drweb32.ini;
А то это создание исключений для Time Machine (монтируемые тома) дело не самое приятное.

Возможно ли такое редактирование? И требуется ли что-нибудь, кроме перезагрузки после редактирования?

P.S.
У меня несколько раз Mail переставал получать почту с сервера (перезапуск Mail и перезагрузка ОС не помогали). Есть, необоснованное, конечно, но правдоподобное подозрение, что это, возможно, происходит из за того, что SpIDer ворует файлы из под носа Mail и тащит их в карантин. В этом случае мне помогало сравнительно "полное" стирание кэш Mail командой типа:
rm -rf ~/Library/Mail/IMAP-yyy\@zzz/.mboxCache.plist ~/Library/Mail/IMAP-yyy\@zzz/INBOX.imapmbox/ ~/Library/Mail/IMAP-yyy\@zzz/.OfflineCache/

P.P.S.
Я направил в тех. поддержку запрос на улучшение интерфейса пользователя Dr.Web для Mac OS X. Изложу его так же здесь.

Собственно задача была сформулирована, удалить письмо с IMAP/Exchange/POP сервера сравнительно малой кровью.

Если добавть в окно просмотра карантина три-четыре простых функции:
  • Сортировка представления записей карантина по имени файла (нажать на столбец);
  • Восстановить и перейти к объекту в Finder (или даже восстановить и открыть, как бы это страшно не выглядело, т.к. на настоящий момент, IMHO основной функцией антивируса под Mac OS X является блокирование функции переноса вирусов от других систем через почту, файлы и прочие каналы);
  • Скопировать имя объекта карантина в буфер обмена;
  • Перейти по URL источника (попытаться перейти, ведь и исходное письмо могло быть отправлено в карантин).
Тогда, даже в запущенном случае, ручная работа становится несложной:
  • Сортируем крантин;
  • Для случая письма, восстанавливаем, открываем, удаляем письмо;
  • Для случая вложения, либо копируем название в терминал, редактируем (руками или используем простой командный файл) и открываем письмо, либо восстанавливаем, открываем в Finder, копируем URL из свойств файла, выполняем команду типа "open message:%3CF110D9F613A6AD41BFF6469514C78D7E012F7620@xrays.cp.ru%3E";
  • Удаляем остальные копии объекта в карантине;
  • и т.д.
Для быстрого поиска потерянных писем, желательна работоспособность (Cmd-F).

Прикрепленные файлы:


Сообщение было изменено Serge3leo: 16 Июнь 2010 - 08:36


#4 Andrew Kargalov

Andrew Kargalov

    Newbie

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

Отправлено 16 Июнь 2010 - 12:19

По улучшению интерфейса пользователя в части работы с карантином, думаю, что предложения более чем разумные. С письмами в карантине я пока вижу два возможных варианта ситуацию выправить (над которыми ещё нужно подумать): при помещении в карантин использование метаданных может подсказать, что мы забираем копию одного и того же письма; при восстановлении письма, в исключения хорошо бы помещать именно письмо (по Message-ID, к примеру) а не путь на файловой системе.

Спасибо за полезные соображения, Сергей.

К слову: не думаю, что редактирование drweb32.ini это официально поддерживаемый нашей компанией способ настройки, но если менять там список исключений, то имеет смысл делать это в секции [MacOSSpIDer] и после посылать SIGHUP процессу DrWebFileD.

#5 Serge3leo

Serge3leo

    Newbie

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

Отправлено 18 Июнь 2010 - 00:11

при помещении в карантин использование метаданных может подсказать, что мы забираем копию одного и того же письма

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

Что касается карантина, то содержание этих тэгов и Message-ID может быть вынесено в столбцы с обеспечением возможности сортировки, что позволит свести вместе письма и файлы из одного источника. Позволит увидеть, попало ли в карантин только приложение, или и письмо и приложение и многое другое, вероятно тоже полезное.

К слову: не думаю, что редактирование drweb32.ini это официально поддерживаемый нашей компанией способ настройки, но если менять там список исключений, то имеет смысл делать это в секции [MacOSSpIDer] и после посылать SIGHUP процессу DrWebFileD.

Огромное спасибо.

Возможно, вы правы, что не поддерживаете прямое редактирование, как "~/Library/Application Support/DrWeb/scan.ini", так и тем более "/Library/Application\ Support/DrWeb/drweb32.ini". Ясное дело, нужно сделать резервную копию, более или менее чётко понимать, что хочется изменить, быть весьма и весьма аккуратным, а так же быть готовым к "внезапным" изменениям формата в будущем. Как я понимаю, Apple часто поступает аналогично, а вот Microsoft часто, наоборот, публикует описание ключей реестра.

Однако отмечу, существенные ограничения текущей версии графического интерфейса ввода исключений:
  • Узкое окно, ширину которого нельзя увеличить. Не позволяет даже просто проконтролировать имена исключений почтовых папок, например, "/Users/user/Library/Mail/IMAP-user@host.domain.ru/Deleted Messages.imapmbox" с должным удобством (т.е. с должной аккуратностью), т.к. приходится нудно добиваться "всплывания" полного имени;
  • Нет удобной возможности ввести маску, а это необходимо для исключений на монтируемых тома, т.к. они могут быть подмонтированы к немного разным точкам монтирования, например, файлы в каталоге MyTrust флэшки с именем MyVol, IMHO нужно исключать по маске "/Volumes/MyVol*/MyTrust";
  • Нет удобной возможности исключать файлы на томах, которые на настоящий момент не подмонтированы.
В принципе, всё это таки можно сделать через графический интерфейс, но это требует несколько странных действий (символ '*' в имени файла, а не в регулярных выражениях оболочки и sudo, т.к. на /Volumes в Mac OS X установлены хитрые права, файл или каталог в нём может создать любой, любой может удалить своё, а вот подкаталоги и файлы в каталоге создать нельзя), например:
$ sudo mkdir /Volumes/MyVol\*/MyTrust 
$ open /Volumes/.
- Выделить и перетащить в исключения SpIDer/сканера
$ sudo rm -rf /Volumes/MyVol\*
Я не очень понимаю свойства масок Dr.Web, вот прямо так не получается. Быть может, специалисты Dr.Web смогут дать свои комментарии. А пока версия без масок:
!!!! Отмонтировать все тома, проверить, что отмонтировались
$ # Если необходимо, то su <Имя пользователя Администратора>
$ sudo mkdir -p /Volumes/MyVol{,{-,&#34; &#34;}{1,2,3,4,5,6,7,8,9}}&#34;/MyTrust
$ open /Volumes/.
- Выделить и перетащить в исключения SpIDer/сканера
$ sudo rm -rf /Volumes/MyVol{,{-,&#34; &#34;}{1,2,3,4,5,6,7,8,9}}
Является ли такие методы поддерживаемыми? Или это тоже апокрифы?

Сообщение было изменено Serge3leo: 19 Июнь 2010 - 13:52


#6 Serge3leo

Serge3leo

    Newbie

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

Отправлено 28 Июль 2011 - 09:54

Dr.WEB обнаруживает в файле /Users/xxx/Library/Mail/IMAP-yyy@zzz/BBBB.imapmbox/Messages/673.emlx (или Attachments) неизлечимый вирус и помещает его карантин;

В Lion всё примерно также, команды xattr, mdls и open работают идентично, однако при установке исключений следует учесть, что файлы изменили своё расположение и теперь находятся в иерархии '/Users/xxx/Library/Mail/V2/IMAP-yyy@zzz/BBBB.mbox/'.

Т.е. делаем 'open ~/Library/Mail/V2/IMAP-*@*/' (~/Library/Mail/V2/Mac-* - для почты MobileMe) и перетаскиваем папку удалённых писем и/или папки "спама" в исключения.

P.S.

Как вариант, можно использовать команды: `open ~/Library/Mail/V2/*-*/*.mbox/..` или даже `open ~/Library/Mail/V2/*/*.mbox/..`, которые откроют каталоги папок всех учётных записей. Прикольно http://forum.drweb.com/public/style_emoticons/default/smile.png

#7 Serge3leo

Serge3leo

    Newbie

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

Отправлено 26 Сентябрь 2014 - 02:05

DrWeb 10 так подвержен этой проблеме: 

...при включённом Dr.WEB происходит следующий процесс:

  • Dr.WEB обнаруживает в файле /Users/пользователь/Library/Mail/V2/IMAP-пользователь@сервер/папка.mbox/B532532E-AF9A-4C6B-89FA-8F1CFDB04E0E/Data/5/1/1/Messages/115991.emlx (или Attachments) неизлечимый вирус и помещает его карантин;
  • Mail при очередной синхронизации видит, что файла у него нет, загружает его по новой;
  • И так до бесконечности, файлы с вирусами загружаются с сервера и переправляются в карантин;

 

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

 

Жаль, что DrWeb пока ещё не научился грамотно отнимать файлы у Mail, например, использовать API Mail, или заменять отобраный файл на служебное письмо с разъяснением. Главное, что б этот процесс имел окончание.

 

Частичный обход проблемы, если сервер уже сортирует письма, то папки со спамом "/Users/пользователь/Library/Mail/V2/IMAP-пользователь@сервер/папка.mbox" добавить в исключения, с надеждой на то, что при обаботке письма с вирусом DrWeb его поймает, либо в ~/"Library/Mail Downloads"/, либо в исходящих.



#8 sergeyko

sergeyko

    Guru

  • Dr.Web Staff
  • 3 876 Сообщений:

Отправлено 26 Сентябрь 2014 - 09:52

Если вы используете IMAP, а вы используете IMAP судя по написанному, отнимать письма у Mail бессмысленно - копия останется на сервере. 


Sergey Komarov
R&D www.drweb.com

#9 Serge3leo

Serge3leo

    Newbie

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

Отправлено 28 Сентябрь 2014 - 00:46

Если вы используете IMAP, а вы используете IMAP судя по написанному, отнимать письма у Mail бессмысленно - копия останется на сервере. 

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

  1. Попросить Mail убить или переместить письмо соотвествующее файлу, типа tell application "Mail" delete (every message of mailbox "INBOX" of account "iCloud" whose message id is message_id);
  2. "Обмануть" Mail, что бы он не делал повторную загрузку письма с сервера, т.е. "копию" в карантин, а в файл заполнить безопасным информационным сообщением.

Сообщение было изменено Serge3leo: 28 Сентябрь 2014 - 00:47


#10 Serge3leo

Serge3leo

    Newbie

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

Отправлено 28 Сентябрь 2014 - 01:02

Если вы используете IMAP, а вы используете IMAP судя по написанному, отнимать письма у Mail бессмысленно - копия останется на сервере.

Ну текущая реализация DrWeb и пытается выполнять это "бессмысленное" действо перемещая файлы в карантин в больших количествах :)

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

  • Попросить Mail убить или переместить письмо соответствующее файлу, типа `tell application "Mail" delete (every message of mailbox "INBOX" of account "iCloud" whose id is id_2_del)', где id_2_del получается из имени файла, или `whose message id is msg_id_2_del', где msg_id_2_del получается из содержимого файла (заголовок письма);
  • "Обмануть" Mail, что бы он не делал повторную загрузку письма с сервера, т.е. "копию" в карантин, а файл заполнить безопасным информационным сообщением.

Сообщение было изменено Serge3leo: 28 Сентябрь 2014 - 01:06


#11 Serge3leo

Serge3leo

    Newbie

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

Отправлено 28 Сентябрь 2014 - 01:49

P.S.

Если вы используете IMAP, а вы используете IMAP судя по написанному... 

Строго говоря, сейчас, я как и многие использую iCloud, который Apple всем пытается выдать по умолчанию  (хотя это тот же IMAP, вид сбоку, только папка другая "/Users/пользователь/Library/Mail/V2/AosIMAP-Apple-ID"). В документации Apple http://support.apple.com/kb/HT4864?viewlocale=ru_RU указано "iCloud не поддерживает POP".

 

Кроме того, замечу, что даже если я перенаправлю  почту на mail.ru, то, мне кажется, использование POP3 принесёт много геморроя, т.к. не будет синхронизации сортировки и редактирования почты между MacBook, iPad и Web доступом с рабочего компьютера.


Сообщение было изменено Serge3leo: 28 Сентябрь 2014 - 01:52



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

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