Оқшауланған Linux Docker контейнерлерін басқаруға арналған құралдар жинағында осалдық (), ол белгілі бір жағдайларда, жүйеде кескіндерді іске қосу мүмкіндігі немесе жұмыс істеп тұрған контейнерге кіру мүмкіндігі болса, контейнерден хост ортасына қол жеткізуге мүмкіндік береді. Мәселе Docker бағдарламасының барлық нұсқаларында пайда болады және жөнделмеген (ұсынылған, бірақ әлі қабылданбаған, , ФС-мен операцияларды орындау кезінде контейнердің ілуін жүзеге асыратын).
Осалдық «docker cp» пәрменін орындау кезінде файлдарды контейнерден хост жүйесінің файлдық жүйесінің еркін бөлігіне шығаруға мүмкіндік береді. Файлды шығару түбірлік құқықтармен орындалады, бұл хост ортасында кез келген файлдарды оқуға немесе жазуға мүмкіндік береді, бұл хост жүйесін басқаруға жеткілікті (мысалы, /etc/shadow қайта жазуға болады).
Әкімші файлдарды контейнерге немесе одан көшіру үшін «docker cp» пәрменін орындағанда ғана шабуыл жасалуы мүмкін. Осылайша, шабуылдаушы қандай да бір жолмен Docker әкімшісін осы операцияны орындау қажеттілігіне сендіруі және көшіру кезінде қолданылатын жолды болжауы керек. Екінші жағынан, шабуыл, мысалы, бұлттық қызметтер конфигурация файлдарын «docker cp» пәрмені арқылы құрастырылған контейнерге көшіру құралдарын ұсынған кезде жүзеге асырылуы мүмкін.
Мәселе функцияны қолданудағы ақаудан туындайды , ол контейнердің орналасуын ескере отырып, салыстырмалы жолға негізделген негізгі файлдық жүйедегі абсолютті жолды есептейді. «Docker cp» командасын орындау кезінде қысқа мерзімді , онда жол әлдеқашан тексерілген, бірақ операция әлі орындалмаған. Көшіру хост жүйесінің негізгі файлдық жүйесінің контекстінде орындалатындықтан, белгілі бір уақыт аралығында сілтемені басқа жолға ауыстыруға және деректерді файлдық жүйенің сыртындағы еркін орынға көшіруді бастауға болады. контейнер.
Дайындалған жарыста жарыс шартының орын алу уақыты өте шектеулі болғандықтан Контейнерден көшіру операцияларын орындау кезінде көшіру операциясында пайдаланылған жолдағы символдық сілтемені циклдік ауыстыру кезінде 1% -дан аз жағдайларда сәтті шабуылға қол жеткізуге болады (сәтті шабуыл шамамен 10 секунд әрекеттен кейін жүзеге асырылды). файлды «docker cp» пәрменімен циклге үздіксіз көшіру үшін).
Контейнерге көшіру әрекетін орындау арқылы сіз бірнеше итерацияда хост жүйесінде қайталанатын файлды қайта жазу шабуылына қол жеткізе аласыз. Шабуыл мүмкіндігі контейнерге көшіру кезінде «chrootarchive» тұжырымдамасы қолданылатындығына байланысты, оған сәйкес archive.go процесі мұрағатты контейнер түбірінің chroot ішіне емес, chroot ішіне шығарады. мақсатты жолдың ата-аналық каталогы, шабуылдаушы басқаратын және контейнердің орындалуын тоқтатпайды (chroot жарыс жағдайын пайдалану үшін белгі ретінде пайдаланылады).
Ақпарат көзі: opennet.ru
