борьба с червями на примере SirCam

В статье приводятся примеры кода блокировки распространения сетевого червя SirCam для procmail, sendmail, postfix и qmail методом фильтрации писем по содержимому тела письма и заголовкам) В принципе, ознакомившись с описаниями другой подобной нечисти, вы можете легко приспособить на борьбу с вредителями сию универсальную методику. Почему универсальную? Да очень просто: есть ли антивирусный plugin под ваш мылер или нет, получив описание вируса или червя вы можете защитить от него вверенных вам юзеров в кратчайшие сроки и при полной независимости от поставщика антивирусных решений. Да, кстати, имейте в виду, что статья эта вмещает себя результаты работы совершенно разных людей, каждый из которых «мыслит в меру своей…» не знаю чего ;) Поэтому все нижеприведенное никак не есть истина в последней инстанции, но лишь примеры – кто во что горазд. Поэтому, использовать этот материал предлагаю следующим образом: прочитайте все разделы, а не только тот, что описывает решение для вашего мылера; прочитайте описание червя; ознакомьтесь с синтаксисом, принятым в конфигах вашего мылера; возьмите все лучшее из примеров и … сделайте по своему ;)

procmail Первый вариант фильтрации через procmail (для помещения в /etc/procmailrc или ~/.procmailrc):

# Filtering for Sircam virus

# by morcego and Elgio Schlemer

# For usage on /etc/procmailrc

#

:0 HB

* ^Content-Type: application/mixed;

name=.*\..*(\.com|\.lnk|\.pif|\.exe|\.bat)"?$

{

:0 c

| (formail -r -i"From: antivirus - SirCam virus detected

<antivirus@liveware.com.br>" -A"X-Loop: antivirus";\

cat /etc/mail/virus-sircam.msg)|$SENDMAIL -oi -t

:0

/dev/null

}

А вот другой вариант решения проблемы через procmail

:0 Bh

*I send you this file in order to have your advice

*daeLRCQEM9KJEIN8JAwAdBmLRCQEi1QkCIkQi0\QkDCtEJAiLVCQEiUIEg8QUXV9eW8NTVldV

|(formail -rtb -I "Precedence: junk" \

-I "Subject: SirCam Virus Spam Worm"; \

echo "Your computer is infected with the SirCam worm. Please see"; \

echo "http://www.wired.com/news/technology/0,1282,45427,00.html for more information.")\

|$SENDMAIL -oi -t

И, наконец, третий вариант:

SUBJECT=`formail -xSubject: \

| sed -e 's/[;\`\\]/ /g' \

| expand | sed -e 's/^[ ]*//g' -e 's/[ ]*$//g'`

:0 B:

* $ ^Content-Type: application/mixed; name=.*"$SUBJECT".*

{

:0 hc:

* ^X-Mailer: Microsoft

* ^Content-Type: multipart/mixed;

| (formail -r -I "Subject: \"SirCam\" Worm Warning"; \

echo "Your machine appears to be infected with the ";

echo "\"SirCam\" Email Worm. As a result, you sent me a file "; \

echo "called \"$SUBJECT\" which also contains this worm. "; \

echo; \

echo "Please see "; \

echo "http://www.symantec.com/avcenter/venc/data/w32.sircam.worm@mm.html "; \

echo "for instructions on how to remove the worm."; \

) | $SENDMAIL -t

:0: /dev/null }

sendmail

«Мы пойдем другим путем» ;) Есть несколько тонкостей в заголовках письма, отправленного червем, которые выдают мерзавца «с головой». При посылке писем SirCam притворяется Outlook Express’ом, однако 4 хэдэра, лишь с виду похожие на сотворенных аутлуком, и именно в нижеприведенном порядке, характерны исключительно для SirCam’овской писанины. Вот они:

X-MIMEOLE: Produced By Microsoft MimeOLE V5.50.4133.2400

X-Mailer: Microsoft Outlook Express 5.50.4133.2400

Content-Type: multipart/mixed; boundary="----27AA9124_Outlook_Express_message_boundary"

Content-Disposition: Multipart message

Сопоставив «червивые» хедеры с родными аутлуковскими (версии последнего 5.50.4133.2400 & 5.50.4522.1200, сообщение содержит аттачмент multipart/mixed attachments), выясняем, что Outlook Express:

а) НЕ вставляет заголовок Content-Disposition в сообщения с multipart/mixed;

б) НЕ пишет слово MimeOLE «чыста» в верхнем регистре;

в) НЕ добавляет в boundary выражение "_Outlook_Express_message_boundary"

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

В идеале следует находить все 3 бракованных хедера. Также не учтены различия 5 и 4 аутлуков.

LOCAL_RULESETS

HContent-Type: $>CheckContentType

HContent-Disposition: $>CheckContentDisposition

HX-MIMEOLE: $>CheckForWorms

KSirCamWormMarker regex -f -aSUSPECT multipart/mixed;boundary=----.+_Outlook_Express_message_boundary

SCheckContentType

R$+ $: $(SirCamWormMarker $1 $)

RSUSPECT $#error $: "553 Possible virus, see

http://link-to-the-virus-description"

SCheckContentDisposition

RMultipart message $#error $: "553 Possible virus, see see

http://link-to-the-virus-description"

SCheckForWorms

R$+ $#error $: "553 Possible virus, see

http://link-to-the-virus-description"

qmail

Проблема решается утановкой последней версии внешнего фильтра qmail-scanner (http://qmail-scanner.sourceforge.net/). /* Да уж, простенько и со вкусом ;) – прим. ред. */

postfix

Простейший вариант:

/etc/postfix/main.cf:

body_checks = regexp:/etc/postfix/body_checks

/etc/postfix/body_checks:

/^Hi! How are you=3F$/ REJECT

/^Hola como estas =3F$/ REJECT

Наиболее правильное решение, подходит не только для SirCam, но и других червей. Как вы, даже не зная синтаксиса postfix’овского конфига, могли догадаться, речь идет о зловредных двойных расширениях.

/etc/postfix/main.cf:

header_checks = regexp:/etc/postfix/header.regexp

/etc/postfix/header.regexp:

/^Content-Type:multipart.*"----[A-F0-9]+_Outlook_Express_message_boundary"/i REJECT

/^Content-Disposition: Multipart message/i REJECT

/^Content-Disposition: attachment; filename=".*\.(doc|zip|exe|xls|jpg|gif)\.(pif|bat|com|exe|lnk)"$/i

REJECT

/^Content-Disposition: attachment; filename=.*\.(doc|zip|exe|xls|jpg|gif)\.(pif|bat|com|exe|lnk)$/i REJECT



© Сетевые Решения