Шилдэг Docker зургийн 19% нь root нууц үггүй байдаг

Өнгөрсөн бямба гаригт 18-р сарын XNUMX-нд Кенна аюулгүй байдлын ажилтан Жерри Гамблин шалгасан Docker Hub-ийн хамгийн алдартай 1000 зураг нь тэдний ашигладаг үндсэн нууц үгэнд суурилсан. Тохиолдлын 19% нь хоосон байсан.

Шилдэг Docker зургийн 19% нь root нууц үггүй байдаг

Альпийн нуруутай дэвсгэр

Бяцхан судалгаа хийх болсон шалтгаан нь энэ сарын эхээр гарсан Талосын эмзэг байдлын тайлан (TALOS-2019-0782), зохиогчид нь Cisco Umbrella-аас Питер Адкинсийн нээлтийн ачаар алдартай Alpine контейнер түгээлт бүхий Docker зургуудад үндсэн нууц үг байдаггүй гэж мэдээлэв.

“Alpine Linux Docker зургийн албан ёсны хувилбарууд (v3.3-аас хойш) үндсэн хэрэглэгчдэд зориулсан NULL нууц үгийг агуулдаг. Энэхүү эмзэг байдал нь 2015 оны XNUMX-р сард нэвтрүүлсэн регрессийн үр дүнд бий болсон. Үүний гол утга нь Alpine Linux-ийн асуудалтай хувилбаруудыг контейнерт суулгаж, Linux PAM эсвэл системийн сүүдэр файлыг баталгаажуулалтын мэдээллийн сан болгон ашигладаг өөр механизмыг ашигладаг системүүд нь үндсэн хэрэглэгчийн хувьд NULL нууц үгийг хүлээн авах боломжтой юм."

Асуудлыг шалгасан Alpine бүхий Docker зургийн хувилбарууд нь 3.3-3.9, мөн edge-ийн хамгийн сүүлийн хувилбар байсан.

Зохиогчид нөлөөлөлд өртсөн хэрэглэгчдэд дараах зөвлөмжийг өгсөн.

“Alpine-ийн асуудалтай хувилбаруудаас бүтээгдсэн Docker зургуудад үндсэн бүртгэлийг тодорхой идэвхгүй болгох ёстой. Амжилтанд хүрэхийн тулд Linux PAM эсвэл бусад ижил төстэй механизмыг ашиглан гаднаас дамжуулсан үйлчилгээ эсвэл програм шаардлагатай байдаг тул эмзэг байдлыг ашиглах магадлал нь хүрээлэн буй орчноос хамаарна."

Асуудал нь байсан хасагдсан Альпийн 3.6.5, 3.7.3, 3.8.4, 3.9.2 болон ирмэг (20190228 хормын хувилбар) хувилбаруудад нөлөөлөлд өртсөн зургийн эздээс язгууртай мөрийг тайлбарлахыг хүссэн. /etc/shadow эсвэл багц байхгүй эсэхийг шалгаарай linux-pam.

Docker Hub-ийг үргэлжлүүлэв

Жерри Гэмблин "саванд null нууц үг ашиглах явдал хэр түгээмэл байдгийг" сонирхохоор шийджээ. Энэ зорилгоор тэрээр бага зэрэг бичжээ Bash скрипт, мөн чанар нь маш энгийн:

  • Docker Hub дахь API руу curl хүсэлтээр дамжуулан тэнд байрлуулсан Docker зургийн жагсаалтыг хүссэн;
  • jq-ээр дамжуулан үүнийг талбараар нь ангилдаг popularity, мөн олж авсан үр дүнгээс эхний мянга нь үлдсэн;
  • Тэд тус бүрийн хувьд энэ нь биелдэг docker pull;
  • Docker Hub-аас хүлээн авсан зураг бүрийг гүйцэтгэнэ docker run файлын эхний мөрийг унших замаар /etc/shadow;
  • хэрэв мөрийн утга нь тэнцүү бол root:::0:::::, зургийн нэрийг тусдаа файлд хадгална.

Юу болсон бэ? IN энэ файл Линукс системтэй алдартай Docker зургийн нэр бүхий 194 мөр байсан бөгөөд үүнд үндсэн хэрэглэгч нууц үг тохируулаагүй байна.

“Энэ жагсаалтад хамгийн алдартай нэрс бол govuk/governmentpaas, hashicorp, microsoft, monsanto болон mesosphere байсан. Kylemanna/openvpn бол жагсаалтын хамгийн алдартай контейнер бөгөөд статистик нь 10 сая гаруй хүн татсан байна."

Гэсэн хэдий ч энэ үзэгдэл нь өөрөө тэдгээрийг ашигладаг системийн аюулгүй байдлын шууд эмзэг байдлыг илэрхийлдэггүй гэдгийг санах нь зүйтэй: энэ бүхэн тэдгээрийг яг хэрхэн ашиглаж байгаагаас хамаарна. (дээрх Альпийн хэргийн тайлбарыг үзнэ үү). Гэсэн хэдий ч бид "түүхийн ёс суртахуун" -ыг олон удаа харсан: илэрхий энгийн байдал нь ихэвчлэн сул талтай байдаг бөгөөд үүнийг үргэлж санаж байх ёстой бөгөөд үүний үр дагаврыг технологийн хэрэглээний хувилбарт харгалзан үздэг.

PS

Мөн манай блог дээрээс уншина уу:

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх