Docker-də konteynerdən qaçmağa imkan verən boşluq

İzolyasiya edilmiş Linux Docker Konteynerlərini İdarə etmək üçün Alətlər dəstində müəyyən edilmişdir zəiflik (CVE-2018-15664), müəyyən bir şəraitdə, şəkillərinizi sistemdə işə salmaq və ya işləyən konteynerə çıxış imkanınız varsa, bir konteynerdən host mühitinə daxil olmağa imkan verir. Problem Docker-in bütün versiyalarında görünür və həll edilməmiş qalır (təklif edilir, lakin hələ qəbul edilmir, yamaq, FS ilə əməliyyatlar apararkən konteynerin dayandırılmasını həyata keçirən).

Zəiflik “docker cp” əmrini yerinə yetirərkən faylları konteynerdən host sisteminin fayl sisteminin ixtiyari hissəsinə çıxarmağa imkan verir. Fayl çıxarılması kök hüquqları ilə həyata keçirilir ki, bu da host mühitində istənilən faylı oxumağa və ya yazmağa imkan verir ki, bu da host sisteminə nəzarəti əldə etmək üçün kifayətdir (məsələn, /etc/shadow üzərinə yaza bilərsiniz).

Hücum yalnız administrator faylları konteynerə və ya konteynerdən köçürmək üçün “docker cp” əmrini yerinə yetirdikdə həyata keçirilə bilər. Beləliklə, təcavüzkar bir şəkildə Docker administratorunu bu əməliyyatı yerinə yetirməyin zəruriliyinə inandırmalı və kopyalama zamanı istifadə olunan yolu proqnozlaşdırmalıdır. Digər tərəfdən, hücum, məsələn, bulud xidmətləri konfiqurasiya fayllarını “docker cp” əmrindən istifadə edərək qurulmuş konteynerə köçürmək üçün alətlər təqdim etdikdə həyata keçirilə bilər.

Problem funksiyanın tətbiqindəki qüsurdan qaynaqlanır FollowSymlinkInScope, konteynerin yerləşdirilməsini nəzərə alaraq nisbi yola əsaslanaraq əsas fayl sistemində mütləq yolu hesablayır. "Docker cp" əmrini icra edərkən, qısamüddətli yarış vəziyyəti, burada yol artıq yoxlanılıb, lakin əməliyyat hələ həyata keçirilməyib. Kopyalama host sisteminin əsas fayl sistemi kontekstində həyata keçirildiyindən, müəyyən bir müddət ərzində siz linki başqa bir yol ilə əvəz edə və verilənlərin fayl sistemindəki ixtiyari yerə köçürməsinə başlaya bilərsiniz. konteyner.

Hazırlanmış bir yarışda vəziyyətin meydana gəlməsi üçün vaxt pəncərəsi olduqca məhdud olduğundan istismar prototipi Konteynerdən köçürmə əməliyyatlarını yerinə yetirərkən, kopyalama əməliyyatında istifadə olunan yolda simvolik əlaqəni dövri olaraq əvəz edərkən, 1% -dən az hallarda uğurlu hücuma nail olmaq mümkün idi (uğurlu hücum təxminən 10 saniyə cəhddən sonra həyata keçirildi). faylı davamlı olaraq “docker cp” əmri ilə dövrəyə köçürmək).

Konteynerə köçürmə əməliyyatını həyata keçirməklə, bir neçə təkrarlamada host sisteminə təkrarlanan faylın üzərinə yazma hücumuna nail ola bilərsiniz. Hücum ehtimalı onunla əlaqədardır ki, konteynerə köçürərkən “xrootarxiv” konsepsiyasından istifadə olunur, ona görə archive.go prosesi arxivi konteynerin kökünün kökünə deyil, arxivin xrootuna çıxarır. hücumçu tərəfindən idarə olunan və konteynerin icrasını dayandırmayan hədəf yolunun ana kataloqu (chroot yarış şərtlərindən istifadə etmək üçün işarə kimi istifadə olunur).

Mənbə: opennet.ru

Добавить комментарий