Практычна кожны з нас карыстаецца паслугамі анлайн-крам, а значыць, рана ці позна рызыкуе стаць ахвярай JavaScript-сніфераў - спецыяльнага кода, які зламыснікі ўкараняюць на сайт для крадзяжу дадзеных банкаўскіх карт, адрасоў, лагінаў і пароляў карыстальнікаў.
Ад сніфераў ужо пацярпелі амаль 400 000 карыстальнікаў сайта і мабільнага прыкладання авіякампаніі British Airways, а таксама наведвальнікі брытанскага сайта спартыўнага гіганта FILA і амерыканскага дыстрыбутара білетаў Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris - гэтыя і многія іншыя плацежныя сістэмы былі заражаныя.
Аналітык Threat Intelligence Group-IB Віктар Акоракаў распавядае пра тое, як сніферы ўкараняюцца ў код сайта і крадуць аплатную інфармацыю, а таксама пра тое, якія CRM яны атакуюць.
«Схаваная пагроза»
Так выйшла, што доўгі час JS-сніферы заставаліся па-за полем зроку антывірусных аналітыкаў, а банкі і аплатныя сістэмы не бачылі ў іх сур'ёзнай пагрозы. І зусім дарма. Эксперты Group-IB
Спынімся падрабязна на чатырох сямействах сніфераў, вывучаных падчас даследаванняў.
Сямейства ReactGet
Сніферы сямейства ReactGet ужываюцца для крадзяжу дадзеных банкаўскіх карт на сайтах анлайн-крам. Сніфер можа працаваць з вялікай колькасцю розных аплатных сістэм, якія выкарыстоўваюцца на сайце: адно значэнне параметру адпавядае адной аплатнай сістэме, а асобныя выяўленыя версіі сниффера могуць выкарыстоўвацца для крадзяжу уліковых дадзеных, а таксама для крадзяжу дадзеных банкаўскіх карт з аплатных форм адразу некалькіх аплатных сістэм, як так званы ўніверсальны сниффер. Было ўстаноўлена, што ў некаторых выпадках атакавалыя праводзяць фішынгавыя атакі на адміністратараў анлайн-крам з мэтай атрымання доступу ў адміністрацыйную панэль сайта.
Кампанія з ужываннем гэтага сямейства сніфераў пачалася ў траўні 2017 года, нападу падвергліся сайты пад кіраваннем CMS і платформаў Magento, Bigcommerce, Shopify.
Як ReactGet ўкараняецца ў код анлайн-крамы
Акрамя «класічнага» укаранення скрыпту па спасылцы, аператары сніфераў сямейства ReactGet выкарыстоўваюць адмысловую тэхніку: пры дапамозе JavaScript-кода правяраецца, ці адпавядае бягучы адрас, на якім знаходзіцца карыстач, вызначаным крытэрам. Шкодны код будзе запушчаны толькі ў тым выпадку, калі ў бягучым URL-адрасе прысутнічае падрадок. кантроль або onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. Такім чынам, код сниффера выканаецца менавіта ў той момант, калі карыстач пяройдзе да аплаты пакупак і ўвядзе аплатную інфармацыю ў форму на сайце.
Гэты сніфер выкарыстоўвае нестандартную тэхніку. Плацежныя і персанальныя дадзеныя ахвяры збіраюцца разам, кадуюцца пры дапамозе base64, а затым атрыманы радок выкарыстоўваецца як параметр для адпраўкі запыту на сайт зламыснікаў. Часцей за ўсё шлях да гейту імітуе JavaScript-файл, напрыклад resp.js, data.js і гэтак далей, але таксама выкарыстоўваюцца спасылкі на файлы малюнкаў, GIF и JPG. Асаблівасць у тым, што сніфер стварае аб'ект малюнка памерам 1 на 1 піксель і выкарыстоўвае атрыманую раней спасылку як параметр SRC выявы. Гэта значыць для карыстальніка такі запыт у трафіку будзе выглядаць як запыт звычайнай карцінкі. Падобная тэхніка была выкарыстана ў сніферах сямейства ImageID. Акрамя таго, тэхніка з выкарыстаннем выявы памерам 1 на 1 піксель ужываецца ў шматлікіх легітымных скрыптах анлайн-аналітыкі, што таксама можа ўвесці карыстача ў памылку.
Аналіз версій
Аналіз актыўных даменаў, выкарыстоўваных аператарамі сніфераў ReactGet, дазволіў выявіць шмат розных версій сніфераў гэтага сямейства. Версіі адрозніваюцца наяўнасцю або адсутнасцю абфускацыі, а акрамя таго, кожны сниффер прызначаны для вызначанай аплатнай сістэмы, якая апрацоўвае плацяжы па банкаўскіх картах для анлайн-крам. Перабраўшы значэнне параметру, які адпавядае нумару версіі, спецыялісты Group-IB атрымалі поўны спіс даступных варыяцый сніфераў, а па назвах палёў формаў, якія кожны сніфер шукае ў кодзе старонкі, вызначылі плацежныя сістэмы, на якія накіраваны сніфер.
Спіс сніфераў і адпаведных ім плацежных сістэм
URL сніфера | плацежная сістэма |
---|---|
|
Authorize.Net |
Cardsave | |
|
Authorize.Net |
Authorize.Net | |
|
eWAY Rapid |
Authorize.Net | |
Адыен | |
|
USAePay |
Authorize.Net | |
USAePay | |
|
Authorize.Net |
Манерыс | |
USAePay | |
PayPal | |
SagePay | |
Verisign | |
PayPal | |
Паласа | |
|
Realex |
PayPal | |
LinkPoint | |
PayPal | |
PayPal | |
DataCash | |
|
PayPal |
|
Authorize.Net |
|
Authorize.Net |
Authorize.Net | |
Authorize.Net | |
|
Verisign |
|
Authorize.Net |
Манерыс | |
|
SagePay |
|
USAePay |
|
Authorize.Net |
|
Authorize.Net |
|
ANZ eGate |
|
Authorize.Net |
|
Манерыс |
|
SagePay |
SagePay | |
|
Пагоня Paymentech |
|
Authorize.Net |
|
Адыен |
PsiGate | |
Кіберкрыніца | |
ANZ eGate | |
Realex | |
|
USAePay |
|
Authorize.Net |
|
Authorize.Net |
|
ANZ eGate |
|
PayPal |
|
PayPal |
Realex | |
|
SagePay |
|
PayPal |
|
Verisign |
Authorize.Net | |
|
Verisign |
Authorize.Net | |
|
ANZ eGate |
PayPal | |
Кіберкрыніца | |
|
Authorize.Net |
|
SagePay |
Realex | |
|
Кіберкрыніца |
PayPal | |
PayPal | |
|
PayPal |
|
Verisign |
|
eWAY Rapid |
|
SagePay |
SagePay | |
|
Verisign |
Authorize.Net | |
Authorize.Net | |
|
First Data Global Gateway |
Authorize.Net | |
Authorize.Net | |
Манерыс | |
|
Authorize.Net |
|
PayPal |
|
Verisign |
|
USAePay |
USAePay | |
Authorize.Net | |
Verisign | |
PayPal | |
|
Authorize.Net |
Паласа | |
|
Authorize.Net |
eWAY Rapid | |
|
SagePay |
Authorize.Net | |
|
Брейнтры |
|
Брейнтры |
|
PayPal |
|
SagePay |
|
SagePay |
|
Authorize.Net |
|
PayPal |
|
Authorize.Net |
Verisign | |
|
PayPal |
|
Authorize.Net |
|
Паласа |
|
Authorize.Net |
eWAY Rapid | |
SagePay | |
|
Authorize.Net |
Брейнтры | |
|
PayPal |
|
SagePay |
SagePay | |
|
Authorize.Net |
PayPal | |
Authorize.Net | |
|
Verisign |
|
Authorize.Net |
|
Authorize.Net |
|
Authorize.Net |
|
Authorize.Net |
|
SagePay |
SagePay | |
|
Westpac PayWay |
|
PayFort |
|
PayPal |
|
Authorize.Net |
|
Паласа |
|
First Data Global Gateway |
|
PsiGate |
Authorize.Net | |
Authorize.Net | |
|
Манерыс |
|
Authorize.Net |
SagePay | |
|
Verisign |
Манерыс | |
PayPal | |
|
LinkPoint |
|
Westpac PayWay |
Authorize.Net | |
|
Манерыс |
|
PayPal |
Адыен | |
PayPal | |
Authorize.Net | |
USAePay | |
EBizCharge | |
|
Authorize.Net |
|
Verisign |
Verisign | |
Authorize.Net | |
|
PayPal |
|
Манерыс |
Authorize.Net | |
|
PayPal |
PayPal | |
Westpac PayWay | |
Authorize.Net | |
|
Authorize.Net |
SagePay | |
|
Verisign |
|
Authorize.Net |
|
PayPal |
|
PayFort |
Кіберкрыніца | |
PayPal Payflow Pro | |
|
Authorize.Net |
|
Authorize.Net |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
SagePay | |
Authorize.Net | |
|
Паласа |
|
Authorize.Net |
Authorize.Net | |
Verisign | |
|
PayPal |
Authorize.Net | |
|
Authorize.Net |
SagePay | |
|
Authorize.Net |
|
Authorize.Net |
|
PayPal |
|
Крэмень |
|
PayPal |
SagePay | |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
|
Паласа |
|
Fat Zebra |
SagePay | |
|
Authorize.Net |
First Data Global Gateway | |
|
Authorize.Net |
|
eWAY Rapid |
Адыен | |
|
PayPal |
Гандлёвыя паслугі QuickBooks | |
Verisign | |
|
SagePay |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
SagePay | |
|
Authorize.Net |
|
eWAY Rapid |
Authorize.Net | |
|
ANZ eGate |
|
PayPal |
Кіберкрыніца | |
|
Authorize.Net |
SagePay | |
|
Realex |
Кіберкрыніца | |
|
PayPal |
|
PayPal |
|
PayPal |
|
Verisign |
eWAY Rapid | |
|
SagePay |
|
SagePay |
|
Verisign |
Authorize.Net | |
|
Authorize.Net |
|
First Data Global Gateway |
Authorize.Net | |
Authorize.Net | |
|
Манерыс |
|
Authorize.Net |
|
PayPal |
Сніфер пароляў
Адным з пераваг JavaScript-сніфераў, якія працуюць на кліенцкім баку сайта, з'яўляецца ўніверсальнасць: укаранёны на сайт шкоднасны код здольны выкрасці дадзеныя любога тыпу, няхай гэта будзе аплатныя дадзеныя ці лагін і пароль ад карыстацкага акаўнта. Спецыялісты Group-IB выявілі ўзор сніфера, які адносіцца да сямейства ReactGet, прызначаны для крадзяжу адрасоў электроннай пошты і пароляў карыстальнікаў сайта.
Скрыжаванне са сніферам ImageID
Падчас аналізу адной з заражаных крам было ўстаноўлена, што яго сайт падвергся заражэнню двойчы: акрамя шкоднаснага кода сніфера сямейства ReactGet, быў знойдзены код сніфера сямейства ImageID. Дадзенае скрыжаванне можа быць сведчаннем таго, што аператары, якія стаяць за выкарыстаннем абодвух сніфераў, ужываюць падобныя тэхнікі для ўкаранення шкоднаснага кода.
Універсальны сніфер
Падчас аналізу аднаго з даменных імёнаў, якія адносяцца да інфраструктуры сніфераў ReactGet, было ўсталявана, што той жа карыстач зарэгістраваў тры іншых даменных імя. Гэтыя тры дамена імітавалі дамены рэальна існуючых сайтаў і раней выкарыстоўваліся для размяшчэння сніфераў. Пры аналізе кода трох легітымных сайтаў быў выяўлены невядомы сніфер, а далейшы аналіз паказаў, што гэта ўдасканаленая версія сніфера ReactGet. Усе раней адсочаныя версіі сніфераў гэтага сямейства былі нацэлены на нейкую адну аплатную сістэму, гэта значыць для кожнай аплатнай сістэмы патрабавалася спецыяльная версія сніфера. Аднак у дадзеным выпадку была выяўленая ўніверсальная версія сниффера, здольная выкрадаць інфармацыю з формаў, якія адносяцца да 15 розных плацежных сістэм і модуляў ecommerce-сайтаў для правядзення анлайн-плацяжоў.
Такім чынам, у пачатку працы сніфер ажыццяўляў пошук базавых палёў формы, якія змяшчаюць персанальную інфармацыю ахвяры: поўнае імя, фізічны адрас, нумар тэлефона.
Затым сниффер ажыццяўляў пошук больш за па 15 розных прэфіксам, якія адпавядаюць розным аплатным сістэмам і модулям для анлайн-плацяжоў.
Далей персанальныя дадзеныя ахвяры і аплатная інфармацыя збіраліся разам і адпраўляліся на падкантрольны зламысніку сайт: у гэтым пэўным выпадку былі выяўленыя дзве версіі ўніверсальнага сніфера ReactGet, размешчаныя на двух розных узламаных сайтах. Аднак абедзве версіі адпраўлялі выкрадзеныя дадзеныя на адзін і той жа ўзламаны сайт zoobashop.com.
Аналіз прэфіксаў, якія выкарыстоўваліся сніферам для пошуку палёў, якія змяшчаюць плацежную інфармацыю ахвяры, дазволіў вызначыць, што гэты ўзор сніфера быў накіраваны на наступныя плацежныя сістэмы:
- Authorize.Net
- Verisign
- First Data
- USAePay
- Паласа
- PayPal
- ANZ eGate
- Брейнтры
- DataCash (MasterCard)
- Плацяжы Realex
- PsiGate
- Аплатныя сістэмы Heartland
Якія інструменты выкарыстоўваюцца для крадзяжу аплатнай інфармацыі
Першы інструмент, выяўлены ў ходзе аналізу інфраструктуры атакавалых, служыць для абфускацыі шкоднасных скрыптоў, якія адказваюць за крадзеж банкаўскіх карт. На адным з хастоў атакавалых быў знойдзены bash-скрыпт, які выкарыстоўвае CLI праекту.
Другая выяўленая прылада прызначаны для генерацыі кода, які адказвае за падгрузку асноўнага сниффера. Дадзеная прылада генеруе JavaScript-код, які правярае, ці знаходзіцца карыстач на старонцы аплаты, шляхам пошуку ў бягучым адрасе карыстальніка радкоў кантроль, каляска і гэтак далей, і калі вынік дадатны, то код падгружае асноўны сниффер з сервера зламыснікаў. Для ўтойвання шкоднаснай актыўнасці ўсе радкі, уключаючы тэставыя радкі для вызначэння плацежнай старонкі, а таксама спасылку на сніфер, закадаваны пры дапамозе base64.
Фішынгавыя атакі
У ходзе аналізу сеткавай інфраструктуры атакавалых было ўстаноўлена, што часта для атрымання доступу ў адміністрацыйную панэль мэтавага анлайн-крамы злачынная група выкарыстоўвае фішынг. Атакуючыя рэгіструюць дамен, візуальна падобны на дамен крамы, а затым разгортваюць на ім падробленую форму ўваходу адміністрацыйнай панэлі Magento. У выпадку поспеху атакавалыя атрымаюць доступ у адміністрацыйную панэль CMS Magento, што дае ім магчымасць рэдагаваць кампаненты сайта і ўкараніць сніфер для крадзяжу дадзеных крэдытных карт.
Інфраструктура
дамен | Дата выяўлення/з'яўлення |
---|---|
mediapack.info | 04.05.2017 |
adsgetapi.com | 15.06.2017 |
simcounter.com | 14.08.2017 |
mageanalytics.com | 22.12.2017 |
maxstatics.com | 16.01.2018 |
reactjsapi.com | 19.01.2018 |
mxcounter.com | 02.02.2018 |
apitstatus.com | 01.03.2018 |
orderracker.com | 20.04.2018 |
tagstracking.com | 25.06.2018 |
adsapigate.com | 12.07.2018 |
trust-tracker.com | 15.07.2018 |
fbstatspartner.com | 02.10.2018 |
billgetstatus.com | 12.10.2018 |
aldenmlilhouse.com | 20.10.2018 |
balletbeautlful.com | 20.10.2018 |
bargalnjunkie.com | 20.10.2018 |
payselector.com | 21.10.2018 |
tagsmediaget.com | 02.11.2018 |
hs-payments.com | 16.11.2018 |
ordercheckpays.com | 19.11.2018 |
geisseie.com | 24.11.2018 |
gtmproc.com | 29.11.2018 |
livegetpay.com | 18.12.2018 |
sydneysalonsupplies.com | 18.12.2018 |
newrelicnet.com | 19.12.2018 |
nr-public.com | 03.01.2019 |
cloudodesc.com | 04.01.2019 |
ajaxstatic.com | 11.01.2019 |
livecheckpay.com | 21.01.2019 |
asianfoodgracer.com | 25.01.2019 |
Сямейства G-Analytics
Гэта сямейства снифферов выкарыстоўваецца для крадзяжу карт кліентаў анлайн-крам. Самае першае даменнае імя, якое выкарыстоўвае група, было зарэгістравана ў красавіку 2016 года, што можа сведчыць аб пачатку актыўнасці групы ў сярэдзіне 2016 года.
У бягучай кампаніі група выкарыстоўвае даменныя імёны, якія імітуюць рэальна існуючыя сэрвісы, такія як Google Analytics і jQuery, маскіруючы актыўнасць сніфераў легітымнымі скрыптамі і падобнымі на легітымныя даменнымі імёнамі. Атацы падвергнуліся сайты, якія працуюць пад кіраваннем CMS Magento.
Як G-Analytics ўкараняецца ў код анлайн-крамы
Адметная асаблівасць гэтага сямейства - выкарыстанне розных спосабаў выкрадання аплатнай інфармацыі карыстальніка. Апроч класічнага ўкаранення JavaScript-кода ў кліенцкую частку сайта, злачынная група таксама ўжывала тэхніку ўкаранення кода ў серверную частку сайта, а менавіта PHP-скрыпты, якія апрацоўваюць уведзеныя карыстачом дадзеныя. Гэтая тэхніка небяспечная тым, што абцяжарвае выяўленне шкоднаснага кода іншымі даследнікамі. Спецыялістамі Group-IB была выяўлена версія сниффера, укаранёнага ў PHP-код сайта, якая выкарыстоўвае ў якасці гейта дамен dittm.org.
Таксама была выяўлена ранняя версія сниффера, які выкарыстоўвае для збору выкрадзеных дадзеных той жа дамен dittm.org, Але гэтая версія прызначана ўжо для ўстаноўкі на кліенцкай баку анлайн-крамы.
Пазней група змяніла сваю тактыку і пачала надаваць больш увагі ўтойванню шкоднаснай актыўнасці і маскіроўцы.
У пачатку 2017 года група стала выкарыстоўваць дамен jquery-js.com, які маскіруецца пад CDN для jQuery: пры пераходзе на сайт зламыснікаў карыстальніка перанакіроўвае на легітымны сайт jquery.com.
А ў сярэдзіне 2018 года група ўзяла на ўзбраенне даменнае імя g-analytics.com і пачала маскіраваць дзейнасць сніфера пад легітымны сэрвіс Google Analytics.
Аналіз версій
Падчас аналізу даменаў, выкарыстоўваных для захоўвання кода сніфераў, было ўсталявана, што на сайце размяшчаецца вялікая колькасць версій, якія адрозніваюцца наяўнасцю абфускацыі, а таксама наяўнасцю або адсутнасцю недасягальнага кода, дададзенага ў файл для адцягнення ўвагі і ўтойванні шкоднаснага кода.
Усяго на сайце jquery-js.com было выяўлена шэсць версій сніфераў. Выкрадзеныя дадзеныя гэтыя сніферы адпраўляюць на адрас, размешчаны на тым жа сайце, што і сам сниффер: hxxps://jquery-js[.]com/latest/jquery.min.js:
- hxxps://jquery-js[.]com/jquery.min.js
- hxxps://jquery-js[.]com/jquery.2.2.4.min.js
- hxxps://jquery-js[.]com/jquery.1.8.3.min.js
- hxxps://jquery-js[.]com/jquery.1.6.4.min.js
- hxxps://jquery-js[.]com/jquery.1.4.4.min.js
- hxxps://jquery-js[.]com/jquery.1.12.4.min.js
Пазнейшы дамен g-analytics.com, Які выкарыстоўваецца групай у атаках з сярэдзіны 2018 года, служыць сховішчам для большай колькасці сніфераў. Усяго было знойдзена 16 розных версій сніфера. У гэтым выпадку гейт для адпраўкі скрадзеных дадзеных быў замаскіраваны пад спасылку на выяву фармату. GIF: hxxp://g-analytics[.]com/__utm.gif?v=1&_v=j68&a=98811130&t=pageview&_s=1&sd=24-bit&sr=2560×1440&vp=2145×371&je=0&_u=AACAAEAB~&jid=1841704724&gjid=877686936&cid
= 1283183910.1527732071:
- hxxps://g-analytics[.]com/libs/1.0.1/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.10/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.11/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.12/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.13/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.14/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.15/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.16/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.3/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.4/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.5/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.6/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.7/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.8/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.9/analytics.js
- hxxps://g-analytics[.]com/libs/analytics.js
Манетызацыя скрадзеных дадзеных
Злачынная група манетызуе выкрадзеныя дадзеныя, прадаючы карты праз спецыяльна створаную падпольную краму, якая аказвае паслугі кардэрам. Аналіз даменаў, якія выкарыстоўваюцца атакавалымі, дазволіў вызначыць, што google-analytics.cm быў зарэгістраваны тым жа карыстальнікам, што і дамен cardz.vc. Дамен cardz.vc ставіцца да крамы па продажы скрадзеных банкаўскіх карт Cardsurfs (Flysurfs), які здабыў папулярнасць яшчэ ў часы актыўнасці падпольнай гандлёвай пляцоўкі AlphaBay як крама па продажы банкаўскіх карт, выкрадзеных пры дапамозе сніфера.
Аналізуючы дамен analytic.is, размешчаны на тым жа серверы, што і дамены, выкарыстоўваныя снифферами для збору выкрадзеных дадзеных, адмыслоўцы Group-IB выявілі файл, утрымоўвальны логі Cookie-стылера, які, падобна, пазней быў закінуты распрацоўнікам. Адзін з запісаў у логу змяшчаў дамен iozoz.com, які раней быў выкарыстаны ў адным са сніфераў, актыўных у 2016 годзе. Меркавана, гэты дамен раней выкарыстоўваўся зламыснікам для збору скрадзеных пры дапамозе сніфера карт. Гэты дамен быў зарэгістраваны на email-адрас [электронная пошта абаронена], які таксама быў выкарыстаны для рэгістрацыі даменаў cardz.su и cardz.vc, якія адносяцца да кардынгавай крамы Cardsurfs.
Зыходзячы з атрыманых дадзеных, можна зрабіць здагадку, што сямейства сніфераў G-Analytics і падпольная крама па продажы банкаўскіх карт Cardsurfs кіруюцца аднымі і тымі ж людзьмі, а крама выкарыстоўваецца для рэалізацыі банкаўскіх карт, выкрадзеных пры дапамозе сніфера.
Інфраструктура
дамен | Дата выяўлення/з'яўлення |
---|---|
iozoz.com | 08.04.2016 |
dittm.org | 10.09.2016 |
jquery-js.com | 02.01.2017 |
g-analytics.com | 31.05.2018 |
google-analytics.is | 21.11.2018 |
analytic.to | 04.12.2018 |
google-analytics.to | 06.12.2018 |
google-analytics.cm | 28.12.2018 |
analytic.is | 28.12.2018 |
googlc-analytics.cm | 17.01.2019 |
Сямейства Illum
Illum - сямейства снифферов, якое ўжываецца для нападаў на анлайн-крамы, якія працуюць пад кіраваннем CMS Magento. Акрамя ўкаранення шкоднаснага кода, аператары гэтага сніфера таксама выкарыстоўваюць укараненне паўнавартасных падробленых формаў аплаты, якія адпраўляюць дадзеныя на падкантрольныя зламыснікам гейты.
Пры аналізе сеткавай інфраструктуры, якую выкарыстоўваюць аператары гэтага сніфера, была адзначана вялікая колькасць шкоднасных скрыптоў, эксплойтаў, падробленых плацежных формаў, а таксама зборнік прыкладаў з шкоднаснымі сніферамі канкурэнтаў. Зыходзячы з інфармацыі аб датах з'яўлення даменных імёнаў, якія выкарыстоўваюцца групай, можна меркаваць, што пачатак кампаніі прыпадае на канец 2016 года.
Як Illum ўкараняецца ў код анлайн-крамы
Першыя выяўленыя версіі сниффера ўкараняліся прама ў код скампраметаванага сайта. Выкрадзеныя дадзеныя адпраўляліся па адрасе cdn.illum[.]pw/records.php, гейт жа быў закадзіраваны пры дапамозе base64.
Пазней была выяўлена спакаваная версія сниффера, якая выкарыстоўвае іншы гейт. records.nstatistics[.]com/records.php.
Згодна з
Аналіз сайта зламыснікаў
Спецыялісты Group-IB выявілі і прааналізавалі сайт, які выкарыстоўваецца дадзенай злачыннай групай для захоўвання інструментаў і збору скрадзенай інфармацыі.
Сярод прылад, выяўленых на серверы зламыснікаў, былі знойдзеныя скрыпты і эксплойты для падвышэння прывілеяў у АС Linux: да прыкладу, Linux Privilege Escalation Check Script, распрацаваны Майкам Чумаком (Mike Czumak), а таксама эксплойт для CVE-2009-1185.
Непасрэдна для нападаў на анлайн-крамы зламыснікі выкарыстоўвалі два эксплойты:
Таксама падчас аналізу сервера былі выяўлены розныя ўзоры сніфераў і фальшывых плацежных формаў, якія выкарыстоўваюцца зламыснікамі для збору плацежнай інфармацыі са ўзламаных сайтаў. Як можна заўважыць са спісу ніжэй, некаторыя скрыпты ствараліся індывідуальна для кожнага ўзламанага сайта, у той час як для пэўных CMS і плацежных шлюзаў выкарыстоўвалася ўніверсальнае рашэнне. Напрыклад, скрыпты. segapay_standart.js и segapay_onpage.js прызначаны для ўкаранення на сайты, якія выкарыстоўваюць плацежны шлюз Sage Pay.
Спіс скрыптоў для розных плацежных шлюзаў
Скрыпт | плацежны шлюз |
---|---|
|
//request.payrightnow[.]cf/checkpayment.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
//request.payrightnow[.]cf/checkpayment.php | |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//cdn.illum[.]pw/records.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//cdn.illum[.]pw/records.php |
//request.payrightnow[.]cf/checkpayment.php | |
|
//cdn.illum[.]pw/records.php |
//payrightnow[.]cf/?payment= | |
|
//payrightnow[.]cf/?payment= |
|
//paymentnow[.]tk/?payment= |
Хост paymentnow[.]tk, Які выкарыстоўваецца як гейт у скрыпце payment_forminsite.js, быў знойдзены як SubjectAltName у некалькіх сертыфікатах, якія адносяцца да сэрвісу CloudFlare. Акрамя гэтага, на хасце размяшчаўся скрыпт evil.js. Мяркуючы па імені скрыпту, ён мог быць скарыстаны ў рамках эксплуатацыі CVE-2016-4010, дзякуючы якой можна ўкараніць шкоднасны код у footer сайта пад кіраваннем CMS Magento. У якасці гейта гэты скрыпт ужыў хост. request.requestnet[.]tk, які выкарыстоўвае той жа сертыфікат, што і хост paymentnow[.]tk.
Падробленыя плацежныя формы
Ніжэй на малюнку паказаны прыклад формы для ўводу даных карты. Гэта форма выкарыстоўвалася для ўкаранення на сайт анлайн-крамы і крадзяжы дадзеных карт.
На наступным малюнку - прыклад падробленай аплатнай формы PayPal, якую выкарыстоўвалі зламыснікі для ўкаранення на сайты з гэтым метадам аплаты.
Інфраструктура
дамен | Дата выяўлення/з'яўлення |
---|---|
cdn.illum.pw | 27/11/2016 |
records.nstatistics.com | 06/09/2018 |
request.payrightnow.cf | 25/05/2018 |
paymentnow.tk | 16/07/2017 |
payment-line.tk | 01/03/2018 |
paymentpal.cf | 04/09/2017 |
requestnet.tk | 28/06/2017 |
Сямейства CoffeMokko
Сямейства сніфераў CoffeMokko, прызначаных для крадзяжу банкаўскіх карт карыстальнікаў інтэрнэт-крам, выкарыстоўваецца як мінімум з траўня 2017 года. Як мяркуецца, аператарамі дадзенага сямейства сніфераў з'яўляецца злачынная група Group 1, апісаная спецыялістамі RiskIQ у 2016 годзе. Атакам падвергліся сайты пад кіраваннем такіх CMS, як Magento, OpenCart, WordPress, osCommerce, Shopify.
Як CoffeMokko ўкараняецца ў код анлайн-крамы
Аператары гэтага сямейства ствараюць унікальныя сніферы для кожнага заражэння: файл сниффера размяшчаецца ў дырэкторыі SRC або js на серверы зламыснікаў. Укараненне ў код сайта ажыццяўляецца па прамой спасылцы на сніфер.
У кодзе сниффера цвёрда закадаваны назовы палёў формы, з якіх неабходна выкрасці дадзеныя. Таксама Сніфер правярае, ці знаходзіцца карыстальнік на старонцы аплаты, звяраючы спіс ключавых слоў з бягучым адрасам карыстальніка.
Некаторыя выяўленыя версіі сниффера былі обфусцированы і ўтрымоўвалі зашыфраваны радок, у якім захоўваўся асноўны масіў рэсурсаў: менавіта ў ім былі імёны палёў формаў для розных плацежных сістэм, а таксама адрас гейта, на які неабходна адпраўляць выкрадзеныя дадзеныя.
Выкрадзеная плацежная інфармацыя адпраўлялася скрыпту на серверы зламыснікаў па шляху /savePayment/index.php ці /tr/index.php. Меркавана, гэты скрыпт служыць для адпраўкі дадзеных з гейта на асноўны сервер, які кансалідуе дадзеныя з усіх сніфераў. Для ўтойвання дадзеных ўся аплатная інфармацыя ахвяры кадуецца пры дапамозе base64, а затым адбываецца некалькі замен сімвалаў:
- сімвал "e" замяняецца на ":"
- сімвал "w" замяняецца на "+"
- сімвал «o» замяняецца на «%»
- сімвал "d" замяняецца на "#"
- сімвал «a» замяняецца на «-»
- сімвал «7» замяняецца на «^»
- сімвал "h" замяняецца на "_"
- сімвал "T" замяняецца на "@"
- сімвал "0" замяняецца на "/"
- сімвал «Y» замяняецца на «*»
У выніку замен сімвалаў закадаваныя з дапамогай base64 дадзеныя немагчыма дэкадаваць, не правёўшы зваротнага пераўтварэння.
Так выглядае фрагмент кода сніфера, які не падвяргаўся абфускацыі:
Аналіз інфраструктуры
У ранніх кампаніях зламыснікі рэгістравалі даменныя імёны, падобныя на дамены легітымных сайтаў анлайн-крам. Іх дамен мог адрознівацца ад легітымнага адным сімвалам ці іншым TLD. Зарэгістраваныя дамены выкарыстоўваліся для захоўвання кода сниффера, спасылка на які ўкаранялася ў код крамы.
Таксама дадзеная група выкарыстоўвала даменныя імёны, якія нагадваюць назву папулярных убудоў для jQuery (slickjs[.]org для сайтаў, якія выкарыстоўваюць убудову гладкі.js), плацежных шлюзаў (sagecdn[.]org для сайтаў, якія выкарыстоўваюць плацежную сістэму Sage Pay).
Пазней група пачала ствараць дамены, назоў якіх не мела нічога агульнага ні з даменам крамы, ні з тэматыкай крамы.
Кожнаму дамену адпавядаў сайт, на якім стваралася дырэкторыя /js або /src. У гэтай дырэкторыі захоўваліся скрыпты сніфераў: па адным сніферы на кожнае новае заражэнне. Сніфер укараняўся ў код сайта па прамой спасылцы, але ў рэдкіх выпадках зламыснікі мадыфікавалі адзін з файлаў сайта і дадавалі ў яго шкоднасны код.
Аналіз кода
Першы алгарытм абфускацыі
У некаторых выяўленых узорах сніфераў гэтага сямейства код быў абфусцаваны і ўтрымоўваў зашыфраваныя дадзеныя, неабходныя для працы сніфера: у прыватнасці, адрас гейта сніфера, спіс палёў аплатнай формы, а ў некаторых выпадках - код падробленай формы аплаты. У кодзе ўнутры функцыі рэсурсы былі зашыфраваны пры дапамозе XOR па ключы, які перадаваўся аргументам гэтай жа функцыі.
Расшыфраваўшы радок які адпавядае ключом, унікальным для кожнага ўзору, можна атрымаць радок, утрымоўвальную ўсе радкі з кода сниффера праз знак-падзельнік.
Другі алгарытм абфускацыі
У пазнейшых узорах снифферов гэтага сямейства быў скарыстаны іншы механізм абфускацыі: у гэтым выпадку дадзеныя былі зашыфраваныя пры дапамозе самапіснага алгарытму. Радок, якая змяшчае зашыфраваныя дадзеныя, неабходныя для працы сніфера, перадавалася аргументам функцыі расшыфравання.
Пры дапамозе кансолі браўзэра можна расшыфраваць зашыфраваныя дадзеныя і атрымаць масіў, утрымоўвальны рэсурсы сниффера.
Сувязь з раннімі нападамі MageCart
У ходзе аналізу аднаго з даменаў, якія выкарыстоўваюцца групай у якасці гейта для збору выкрадзеных дадзеных, было ўстаноўлена, што на гэтым дамене разгорнута інфраструктура для крадзяжу крэдытных карт, ідэнтычная той, якая выкарыстоўвалася Group 1 – адной з першых груп,
На хасце сямейства сніфераў CoffeMokko былі выяўлены два файлы:
- mage.js - файл, які змяшчае код сніфера Group 1 з адрасам гейта js-cdn.link
- mag.php - PHP-скрыпт, які адказвае за збор скрадзеных сниффером дадзеных
Змесціва файла mage.js
Таксама было ўстаноўлена, што самыя раннія дамены, якія выкарыстоўваюцца групай, якая стаіць за сямействам сніфераў CoffeMokko, былі зарэгістраваны 17 мая 2017 года:
- link-js[.]link
- info-js[.]link
- track-js[.]link
- map-js[.]link
- smart-js[.]link
Фармат гэтых даменных імёнаў супадае з даменнымі імёнамі Group 1, якія былі скарыстаны ў нападах 2016 гады.
На аснове выяўленых фактаў можна зрабіць здагадку, што паміж аператарамі сніфераў CoffeMokko і злачыннай групай Group 1 ёсць сувязь. Як мяркуецца, аператары CoffeMokko маглі запазычыць у сваіх папярэднікаў інструменты і праграмнае забеспячэнне для крадзяжу карт. Аднак больш верагодна, што злачынная група, якая стаіць за выкарыстаннем сніфераў сямейства CoffeMokko, - гэта тыя ж людзі, што ажыццяўлялі атакі ў рамках дзейнасці Group 1. Пасля публікацыі першай справаздачы аб дзейнасці злачыннай групы ўсе іх даменныя імёны былі заблакаваныя, а інструменты падрабязна вывучаны і апісаны. Група была змушаная ўзяць перапынак, дапрацаваць свае ўнутраныя прылады і перапісаць код сніфераў для таго, каб працягнуць свае напады і заставацца незаўважанымі.
Інфраструктура
дамен | Дата выяўлення/з'яўлення |
---|---|
link-js.link | 17.05.2017 |
info-js.link | 17.05.2017 |
track-js.link | 17.05.2017 |
map-js.link | 17.05.2017 |
smart-js.link | 17.05.2017 |
adorebeauty.org | 03.09.2017 |
security-payment.su | 03.09.2017 |
braincdn.org | 04.09.2017 |
sagecdn.org | 04.09.2017 |
slickjs.org | 04.09.2017 |
oakandfort.org | 10.09.2017 |
citywlnery.org | 15.09.2017 |
dobell.su | 04.10.2017 |
childsplayclothing.org | 31.10.2017 |
jewsondirect.com | 05.11.2017 |
shop-rnib.org | 15.11.2017 |
closetlondon.org | 16.11.2017 |
misshaus.org | 28.11.2017 |
battery-force.org | 01.12.2017 |
kik-vape.org | 01.12.2017 |
greatfurnituretradingco.org | 02.12.2017 |
etradesupply.org | 04.12.2017 |
replacemyremote.org | 04.12.2017 |
all-about-sneakers.org | 05.12.2017 |
mage-checkout.org | 05.12.2017 |
nililotan.org | 07.12.2017 |
lamoodbighats.net | 08.12.2017 |
walletgear.org | 10.12.2017 |
dahlie.org | 12.12.2017 |
davidsfootwear.org | 20.12.2017 |
blackriverimaging.org | 23.12.2017 |
exrpesso.org | 02.01.2018 |
parks.su | 09.01.2018 |
pmtonline.su | 12.01.2018 |
ottocap.org | 15.01.2018 |
christohperward.org | 27.01.2018 |
coffetea.org | 31.01.2018 |
energycoffe.org | 31.01.2018 |
energytea.org | 31.01.2018 |
teacoffe.net | 31.01.2018 |
adaptivecss.org | 01.03.2018 |
coffemokko.com | 01.03.2018 |
londontea.net | 01.03.2018 |
ukcoffe.com | 01.03.2018 |
labbe.biz | 20.03.2018 |
batterynart.com | 03.04.2018 |
btosports.net | 09.04.2018 |
chicksaddlery.net | 16.04.2018 |
paypaypay.org | 11.05.2018 |
ar500arnor.com | 26.05.2018 |
authorizecdn.com | 28.05.2018 |
slickmin.com | 28.05.2018 |
bannerbuzz.info | 03.06.2018 |
kandypens.net | 08.06.2018 |
mylrendyphone.com | 15.06.2018 |
freshchat.info | 01.07.2018 |
3lift.org | 02.07.2018 |
abtasty.net | 02.07.2018 |
mechat.info | 02.07.2018 |
zoplm.com | 02.07.2018 |
zapaljs.com | 02.09.2018 |
foodandcot.com | 15.09.2018 |
freshdepor.com | 15.09.2018 |
swappastore.com | 15.09.2018 |
verywellfitnesse.com | 15.09.2018 |
elegrina.com | 18.11.2018 |
majsurplus.com | 19.11.2018 |
top5value.com | 19.11.2018 |
Крыніца: habr.com