Уразлівасці ў сканерах бяспекі выяў Docker-кантэйнераў
Апублікаваны вынікі тэставання прылад для вызначэння невыпраўленых уразлівасцяў і выяўленні праблем з бяспекай у выявах ізаляваных кантэйнераў Docker. Праверка паказала, што ў 4 з 6 вядомых сканераў вобразаў Docker прысутнічалі крытычныя ўразлівасці, якія дазваляюць атакаваць непасрэдна сам сканер і дамагчыся выкананні свайго кода ў сістэме, у асобных выпадках (напрыклад, пры выкарыстанні Snyk) з правамі root.
Для нападу зламысніку досыць ініцыяваць праверку свайго Dockerfile або manifest.json, які ўключае спецыяльна аформленыя метададзеныя, або размясціць усярэдзіне выявы файлы Podfile і gradlew. Прататыпы эксплоітаў удалося падрыхтаваць для сістэм Белы крыніца, Снік, Ямка и Anchore. Найлепшую бяспеку паказаў пакет Ясна, першапачаткова напісаны з аглядкай на забеспячэнне бяспекі. Праблем таксама не выяўлена ў пакеце Дробязь. У выніку зроблена выснова, што сканары Docker-кантэйнераў варта запускаць у ізаляваных асяроддзі або выкарыстоўваць толькі для праверкі ўласных выяў, а таксама выяўляць асцярожнасць пры падлучэнні падобных прылад да аўтаматызаваных сістэм бесперапыннай інтэграцыі.
У FOSSA, Snyk і WhiteSource уразлівасць была злучана з выклікам вонкавага пакетнага мэнэджара для вызначэння залежнасцяў і дазваляла арганізаваць выкананне свайго кода праз указанне каманд touch і system у файлах gradlew и Podfile.
У Snyk і WhiteSource дадаткова былі знойдзеныяуразлівасці, звязаныя з арганізацыяй запуску сістэмных каманд пры разборы Dockerfile (напрыклад, у Snyk праз Dockefile можна было замяніць утыліту /bin/ls, выкліканую сканарам, а ў WhiteSurce можна было падставіць код праз аргументы ў форме "echo'; touch /tmp/hacked_whitesource_pip;=1.0 ′»).
У Anchore уразлівасць была выклікана выкарыстаннем утыліты скапеа для працы з docker-вобразамі. Эксплуатацыя зводзілася да дадання ў файл manifest.json параметраў выгляду "os": "$(touch hacked_anchore)"', якія падстаўляюцца пры выкліку skopeo без належнага экранавання (выразаліся толькі знакі ";&<>", але дапушчалася канструкцыя "$( )»).
Тым жа аўтарам праведзена даследаванне эфектыўнасці выяўлення невыпраўленых уразлівасцяў сканарам бяспекі docker-кантэйнераў і ўзровень ілжывых спрацоўванняў.частка 1, частка 2, частка 3). Ніжэй паказаны вынікі тэставання 73 вобразаў, якія змяшчаюць вядомыя ўразлівасці, а таксама дадзена ацэнка эфектыўнасці вызначэння наяўнасці тыпавых прыкладанняў у вобразах (nginx, tomcat, haproxy, gunicorn, redis, ruby, node).