Yalıtılmış Linux Docker Konteynerlerini Yönetmek için Araç Setinde güvenlik açığı (), belirli koşullar altında, görüntülerinizi sistemde başlatma olanağınız varsa veya çalışan bir konteynere erişiminiz varsa, ana bilgisayar ortamına bir konteynerden erişmenize olanak tanır. Sorun Docker'ın tüm sürümlerinde görünüyor ve çözülmeden kalıyor (önerildi ancak henüz kabul edilmedi, FS ile işlemler gerçekleştirirken konteynerin askıya alınmasını uygulayan).
Güvenlik açığı, "docker cp" komutu yürütülürken dosyaların bir kapsayıcıdan ana sistemin dosya sisteminin rastgele bir bölümüne çıkarılmasına olanak tanıyor. Dosya çıkarma, ana bilgisayar ortamındaki herhangi bir dosyayı okumayı veya yazmayı mümkün kılan kök haklarıyla gerçekleştirilir, bu da ana sistemin kontrolünü ele geçirmek için yeterlidir (örneğin, /etc/shadow'un üzerine yazabilirsiniz).
Saldırı yalnızca yöneticinin, dosyaları konteynere veya konteynerden kopyalamak için “docker cp” komutunu yürütmesi durumunda gerçekleştirilebilir. Bu nedenle, saldırganın Docker yöneticisini bu işlemi gerçekleştirmesi ve kopyalama sırasında kullanılan yolu tahmin etmesi gerektiğine bir şekilde ikna etmesi gerekir. Öte yandan, örneğin bulut hizmetleri, yapılandırma dosyalarını "docker cp" komutu kullanılarak oluşturulan bir konteynere kopyalamak için araçlar sağladığında bir saldırı gerçekleştirilebilir.
Sorun, işlevin uygulanmasındaki bir kusurdan kaynaklanıyor , kabın yerleşimini dikkate alarak, göreceli yola dayalı olarak ana dosya sistemindeki mutlak yolu hesaplar. "Docker cp" komutunu çalıştırırken kısa süreli bir , yolun zaten doğrulandığı ancak işlemin henüz gerçekleştirilmediği. Kopyalama, ana sistemin ana dosya sistemi bağlamında gerçekleştirildiğinden, belirli bir süre içinde bağlantıyı başka bir yolla değiştirmeyi başarabilir ve verilerin, dosya sistemindeki dosya sistemi dışındaki isteğe bağlı bir konuma kopyalanmasını başlatabilirsiniz. konteyner.
Hazırlanmış bir modelde yarış koşulunun oluşması için zaman penceresi oldukça sınırlı olduğundan Bir konteynerden kopyalama işlemleri gerçekleştirirken, kopyalama işleminde kullanılan yoldaki sembolik bir bağlantıyı döngüsel olarak değiştirirken vakaların %1'inden daha azında başarılı bir saldırı elde etmek mümkün olmuştur (başarılı saldırı yaklaşık 10 saniyelik denemelerden sonra gerçekleştirildi) dosyayı sürekli olarak “docker cp” komutuyla bir döngüye kopyalamak için).
Bir konteynere kopyalama işlemi gerçekleştirerek, yalnızca birkaç yinelemede ana bilgisayar sistemine tekrarlanabilir bir dosya üzerine yazma saldırısı gerçekleştirebilirsiniz. Saldırı olasılığı, bir konteynere kopyalama yaparken archive.go işleminin arşivi konteyner kökünün chroot'una değil, chroot'unun chroot'una çıkarmasına göre "chrootarchive" kavramının kullanılmasından kaynaklanmaktadır. Hedef yolun ana dizini, saldırgan tarafından kontrol edilir ve konteynerin yürütülmesini durdurmaz (chroot, yarış koşullarından yararlanmak için bir işaret olarak kullanılır).
Kaynak: opennet.ru
