8 Августа, 2016

Multigrain: особенности вредоносной программы для PoS-терминалов

Panda Security в России


Multigrain – это вредоносная программа для PoS -терминалов, которая специализируется на краже информации с банковских карт при использовании техник RAM-Scraping (она напрямую обращается к ОЗУ из определенных процессов для получения информации о картах). Это стало очень популярным методом, т.к. международное законодательство запрещает хранить эту информацию на диске (даже временно).

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

В апреле этого года FireEye опубликовала анализ данной вредоносной программы и, похоже, это был первый случай, когда они обнаружили вариант Multigrain. В этой статье анализ относился к образцу, который в антивирусной лаборатории PandaLabs обнаружили в ноябре 2015 года (MD5: A0973ADAF99975C1EB12CC1E333D302F), и с тех пор мы были в состоянии обнаруживать новые варианты или обновления данной вредоносной программы, т.к. принципиально они работали одинаково.

Multigrain в подробностях: технический анализ
Мы начали анализировать Multigrain, потому что данный код, показывающий характеристики RAM-Scraping, типичен для PoS-зловредов. Мы можем ясно увидеть это в процедуре 00405 A 10, показанной ниже.


В данной процедуре мы находим типичные вызовы от процесса, который осуществляет RAM-Scraping в памяти запущенных процессов:
·   CreateToolhelp 32 Snapshot для получения указателя списка процессов;
·   Process 32 FirstW и Process 32 NextW для получения снимка списка процессов после вызова предыдущего API;
·   OpenProcess используется позже для получения списка страниц памяти с VirtualQueryEx;
·   Наконец, с помощью ReadProcessMemory Вы можете прочитать содержимое с предыдущих страниц.

Как только получен буфер, используя контент с каждой страницы, зловред будет выполнять соответствующий «скрейпинг». Для этого он использует (в этой же процедуре) второй псевдокод:


Если возможные последовательности TRACKS1/2 обнаружены, связанные с кодом с магнитной полосы банковской карты в буферах от анализируемой памяти, осуществляется вызов функций sub_406100 и sub_405D10. Теперь вредоносная программа готова подготовить данные таким образом, чтобы их можно было позже украсть.

Данная вредоносная программа для PoS интересуется только двумя процессами, которые называются «spcwin.exe» и «brain.exe». Если ни один из них не обнаружен, то «скрэйпинг» не будет осуществляться.

Эксфильтрация данных

Эксфильтрация осуществляется во время DNS-обращений (UDP, порт 53) из процедуры 00402C40, что показано на следующем псевдокоде:


Видимо, утечка информации осуществляется в трех различных точках (две процедуры) из программы:


В первой процедуре (адрес 00401DA0), используется субдомен «install.» для украденной информации. Во второй процедуре (адрес 00402580) для этого используется субдомен «log.».
В этих процедурах эксфильтрации мы находим различные ссылки на функции, которые кодируют информацию с использованием «base32». Это связано с тем, что для того чтобы украсть информацию с банковской карты, она сперва шифруется с использованием «base32», а после этого выполняются DNS-запросы в формате: install.<base32_CCs>.domain

Сетевая информация
По всей видимости, домен для образца: dojfgj . com
Информация «Whois»:
Domain Name: DOJFGJ.COM
Registry Domain ID: 1979271903_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.enom.com
Registrar URL: www.enom.com
Updated Date: 2015-11-13T07:16:58.00Z
Creation Date: 2015-11-13T15:16:00.00Z
Registrar Registration Expiration Date: 2016-11-13T15:16:00.00Z
Registrar: ENOM, INC.
Registrar IANA ID: 48
Reseller: NAMECHEAP.COM
Domain Status: ok https://www.icann.org/epp#ok
Registry Registrant ID:
Registrant Name: WHOISGUARD PROTECTED
Registrant Organization: WHOISGUARD, INC.
Registrant Street: P.O. BOX 0823-03411
Registrant City: PANAMA
Registrant State/Province: PANAMA
Registrant Postal Code: 00000
Registrant Country: PA
Registrant Phone: +507.8365503
Registrant Phone Ext:
Registrant Fax: +51.17057182
Registrant Fax Ext:
Registrant Email: CC7F8D40E4FA4188AE5EA89A35925E6B.PROTECT@WHOISGUARD.COM
Registry Admin ID:
Admin Name: WHOISGUARD PROTECTED
Admin Organization: WHOISGUARD, INC.
Admin Street: P.O. BOX 0823-03411
Admin City: PANAMA
Admin State/Province: PANAMA
Admin Postal Code: 00000
Admin Country: PA
Admin Phone: +507.8365503
Admin Phone Ext:
Admin Fax: +51.17057182
Admin Fax Ext:
Admin Email: CC7F8D40E4FA4188AE5EA89A35925E6B.PROTECT@WHOISGUARD.COM
Registry Tech ID:
Tech Name: WHOISGUARD PROTECTED
Tech Organization: WHOISGUARD, INC.
Tech Street: P.O. BOX 0823-03411
Tech City: PANAMA
Tech State/Province: PANAMA
Tech Postal Code: 00000
Tech Country: PA
Tech Phone: +507.8365503
Tech Phone Ext:
Tech Fax: +51.17057182
Tech Fax Ext:
Tech Email: CC7F8D40E4FA4188AE5EA89A35925E6B.PROTECT@WHOISGUARD.COM
Name Server: NS1.DOJFGJ.COM
Name Server: NS2.DOJFGJ.COM
Если мы разберем этот домен, то мы можем увидеть, что он ведет к внутреннему IP-адресу «192.168.0.3». Домен связан с двумя DNS-серверами. Для получения их актуальных адресов нам следует сделать «whois»:
$ whois ns2.dojfgj.com
Server Name: NS1.DOJFGJ.COM
IP Address: 104.156.246.159

Команда “ traceroute ” данного IP -адреса показывает нам его происхождение:
$ traceroute 104.156.246.159
traceroute to 104.156.246.159 (104.156.246.159), 30 hops max, 60 byte packets
1 104.131.0.253 (104.131.0.253) 0.423 ms 104.131.0.254 (104.131.0.254) 0.404 ms 0.437 ms
2 162.243.188.229 (162.243.188.229) 0.422 ms 0.394 ms 162.243.188.241 (162.243.188.241) 0.293 ms
3 xe-0-9-0-17.r08.nycmny01.us.bb.gin.ntt.net (129.250.204.113) 3.503 ms 4.078 ms 4.102 ms
4 ae-2.r25.nycmny01.us.bb.gin.ntt.net (129.250.3.97) 1.160 ms ae-3.r25.nycmny01.us.bb.gin.ntt.net (129.250.6.208) 1.226 ms 1.171 ms
5 ae-9.r22.asbnva02.us.bb.gin.ntt.net (129.250.2.149) 6.985 ms 6.926 ms 7.013 ms
6 ae-0.r23.asbnva02.us.bb.gin.ntt.net (129.250.3.85) 6.952 ms 7.091 ms 7.057 ms
7 ae-1.r20.miamfl02.us.bb.gin.ntt.net (129.250.2.87) 42.672 ms 33.314 ms 33.257 ms
8 ae-1.r05.miamfl02.us.bb.gin.ntt.net (129.250.2.185) 35.530 ms 35.327 ms 38.280 ms
9 xe-0-6-0-0.r05.miamfl02.us.ce.gin.ntt.net (129.250.207.174) 32.063 ms 31.912 ms 31.755 ms
10 * * *
11 104.156.246.159. vultr . com (104.156.246.159) 33.398 ms 31.757 ms 32.283 ms

Как мы можем видеть, он соответствует интернет-провайдеру в Майами, который управляет диапазоном IP -адресов:
NetRange: 104.156.244.0 – 104.156.247.255
CIDR:         104.156.244.0/22
NetName: NET-104-156-244-0-22
NetHandle:     NET-104-156-244-0-1
Parent:       CHOOPA (NET-104-156-224-0-1)
NetType:    Reassigned
OriginAS:
Organization:   Vultr Holdings, LLC (VHL-57)

Живучесть
Чтобы оставаться «живучим» в системе (Windows PoS), анализируемая вредоносная программа устанавливает себя автоматически в качестве службы и выбирает имя «Windows Module Extension», как видно на следующем скриншоте (процедура 00406C20):


Хакер может выполнять исключения в то время, когда он регистрирует себя в качестве службы: он проверяет текущий регион с использованием «ipinfo.io» и в зависимости от ответа система может регистрировать в качестве службы или нет. Это особенно полезно в том случае, если хакер, например, хочет избежать выполнения атаки на PoS-системы в определенных странах.

Вредоносная программа акцептирует «i» в качестве параметра (из «install»), в этом случае она устанавливает процесс «скрэйпинга» и отправляет украденную информацию.


Если данный параметр не указан («i»), и в том случае, если не найдены запущенными процессы «spcwin.exe» или «brain.exe», то служба не будет устанавливаться, причем в дополнение к этому вредоносная программа будет автоматически уничтожена. Оба процесса относятся к программному обеспечению PoS.





Panda Security в России
+7(495)105 94 51, marketing@rus.pandasecurity.com