19% daripada imej Docker teratas tidak mempunyai kata laluan akar

Sabtu lepas, 18 Mei, Jerry Gamblin dari Kenna Security diperiksa 1000 imej paling popular dari Docker Hub dengan kata laluan yang mereka gunakan untuk pengguna root. Dalam 19% kes ia ternyata kosong.

19% daripada imej Docker teratas tidak mempunyai kata laluan akar

Latar belakang dengan Alpine

Sebab kajian mini itu ialah Laporan Kerentanan Talos yang muncul awal bulan ini (TALOS-2019-0782), pengarangnya - terima kasih kepada penemuan Peter Adkins dari Cisco Umbrella - melaporkan bahawa imej Docker dengan pengedaran bekas Alpine yang popular tidak mempunyai kata laluan root:

β€œVersi rasmi imej Alpine Linux Docker (bermula dari v3.3) mengandungi kata laluan NULL untuk pengguna root. Kerentanan ini muncul akibat regresi yang dibentangkan pada Disember 2015. Intipatinya berpunca daripada fakta bahawa sistem yang digunakan dengan versi Alpine Linux yang bermasalah dalam bekas dan menggunakan Linux PAM atau mekanisme lain yang menggunakan fail bayangan sistem sebagai pangkalan data untuk pengesahan boleh menerima kata laluan nol (NULL) untuk pengguna akar.

Versi imej Alpine Docker yang diuji untuk masalah tersebut ialah 3.3-3.9 inklusif, serta keluaran terbaharu edge.

Pengarang membuat pengesyoran berikut kepada pengguna yang terjejas:

"Akaun akar mesti dilumpuhkan secara eksplisit dalam imej Docker yang dibina daripada versi Alpine yang bermasalah. Kemungkinan eksploitasi kerentanan bergantung pada persekitaran, kerana kejayaannya memerlukan perkhidmatan atau aplikasi yang dimajukan secara luaran menggunakan Linux PAM atau mekanisme lain yang serupa.

Masalahnya ialah dihapuskan dalam versi Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 dan edge (gambar 20190228), dan pemilik imej yang terjejas diminta mengulas baris dengan akar dalam /etc/shadow atau pastikan bungkusan itu tiada linux-pam.

Bersambung dari Docker Hub

Jerry Gamblin memutuskan untuk bertanya tentang "seberapa biasa amalan menggunakan kata laluan nol dalam bekas mungkin." Untuk melakukan ini, dia menulis kecil skrip bash, intipatinya sangat mudah:

  • melalui permintaan curl kepada API dalam Docker Hub, senarai imej Docker yang dihoskan di sana diminta;
  • melalui jq ia disusun mengikut medan popularity, dan daripada keputusan yang diperoleh, seribu pertama kekal;
  • bagi setiap daripada mereka, docker pull;
  • untuk setiap imej yang diterima daripada Docker Hub, docker run membaca baris pertama dari fail /etc/shadow;
  • jika nilai rentetan adalah sama dengan root:::0:::::, nama imej disimpan ke fail berasingan.

Apa yang berlaku? DALAM fail ini terdapat 194 baris dengan nama imej Docker yang popular dengan sistem Linux, di mana pengguna root tidak mempunyai set kata laluan:

β€œAntara nama paling terkenal dalam senarai ini ialah govuk/governmentpaas, hashicorp, microsoft, monsanto dan mesosphere. Dan kylemanna/openvpn ialah bekas paling popular dalam senarai, dengan lebih 10 juta tarikan.”

Walau bagaimanapun, perlu diingatkan bahawa fenomena ini sendiri tidak bermakna kelemahan langsung dalam keselamatan sistem yang menggunakannya: semuanya bergantung pada bagaimana tepatnya ia digunakan. (lihat ulasan daripada kes Alpine di atas). Walau bagaimanapun, kami telah melihat "moral cerita ini" berkali-kali: kesederhanaan yang jelas sering mempunyai kelemahan, yang anda harus sentiasa ingat dan mengambil kira akibatnya dalam senario anda untuk menggunakan teknologi.

PS

Baca juga di blog kami:

Sumber: www.habr.com

Tambah komen