The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выявлена уязвимость, позволяющая выйти за пределы контейнеров Docker

20.06.2014 11:04

В cистеме управления контейнерной виртуализацией Docker выявлена уязвимость, позволяющая выйти за пределы изолированного контейнера. Проблема устранена в релизе Docker 1.0, но присутствует в выпусках до 0.11 включительно. Для проверки наличия проблемы подготовлен прототип эксплоита, позволяющий из контейнера прочитать любой файл хост-системы. Кроме Docker проблеме могут быть подвержены и другие системы контейнерной виртуализации, использующие инструменты, подобные LXC.

Техника эксплуатации основана на обращении к внешним файлам через прямой доступ к inode, которые остаются видимыми в контексте всей файловой системы после прикрепления части данной ФС через "mount --bind". Полагая, что inode 2, как правило, связан с корнем, осуществляется последовательный перебор всех inode, пока не найдётся inode, ссылающийся на нужный файл. Проблеме также подвержены системы, в которых используются снапшоты, субразделы, chroot и специализированные ioctl для манипуляций с ФС (доступны в XFS).

Для совершения атаки необходимо иметь возможность запуска операций внутри контейнера с правами root. В Docker 1.0 проблема не проявляется благодаря удалению привилегии CAP_DAC_READ_SEARCH. При этом отмечается, что теоретически для организации похожей атаки может использоваться привилегия CAP_MKNOD, которая пока оставлена в Docker 1.0.

  1. Главная ссылка к новости (http://blog.docker.com/2014/06...)
  2. OpenNews: Первый стабильный выпуск cистемы управления контейнерной виртуализацией Docker
  3. OpenNews: Доступна система управления контейнерной виртуализацией Docker 0.11
Лицензия: CC-BY
Тип: Проблемы безопасности
Короткая ссылка: https://opennet.ru/40046-docker
Ключевые слова: docker
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 12:04, 20/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну вот, такая страшилка с интересным эксплойтом... и приписка "В Docker 1.0 проблема не проявляется".
     
     
  • 2.2, Michael Shigorin (ok), 12:48, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Случайно пофиксили...
     
     
  • 3.11, rob pike (?), 16:08, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Новый модный подход к security.
    Выпускать новые версии быстрее чем к старым успевают написать эксплойт.
     
     
  • 4.13, Константавр (ok), 16:59, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Так вот зачем в опенсорсе постоянно всё переписывают и ломают! Они же как зайцы - следы спутывают :)
     
     
  • 5.16, tessel (?), 18:04, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    То ли дело ссаный энтерпрайз, где баги бережно консервируют и ни в коем случае не исправляют, усиленно строя анальные ограждения вокруг баги.
     
     
  • 6.20, Аноним (-), 19:30, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    …тщательно документируют их и приводят несколько workaround'ов в печатном руководстве пользователя.
     
     
  • 7.29, Аноним (-), 05:00, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > …тщательно документируют их и приводят несколько workaround'ов в печатном руководстве
    > пользователя.

    А настоящий энтерпрайз делает как-то так: https://www.opennet.ru/opennews/art.shtml?num=40045

     

  • 1.3, Аноним (-), 13:32, 20/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    А вот что пишут об этом разработчики Docker:

    Hi all, I'm a maintainer of Docker. As others already indicated this doesn't work on 1.0. But it could have.

    Please remember that at this time, we don't claim Docker out-of-the-box is suitable for containing untrusted programs with root privileges. So if you're thinking "pfew, good thing we upgraded to 1.0 or we were toast", you need to change your underlying configuration now. Add apparmor or selinux containment, map trust groups to separate machines, or ideally don't grant root access to the application.

    Docker will soon support user namespaces, which is a great additional security layer but also not a silver bullet!

    When we feel comfortable saying that Docker out-of-the-box can safely contain untrusted uid0 programs, we will say so clearly.

     
     
  • 2.4, Motif (ok), 14:01, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >we don't claim Docker out-of-the-box is suitable for containing untrusted programs with root privileges
    >Add apparmor or selinux containment

    И кому они такие красивые нужны? SELinux и без них работает.

     
     
  • 3.6, Аноним (-), 14:34, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >  SELinux и без них работает.

    И вырубается каждым первым сплойтом. А пару раз авторы сплойтов его даже благодарили за помощь. В общем соотношение геморности настройки оного vs результаты - совершенно не впечатляют.

     
     
  • 4.17, CssfPZS (ok), 18:07, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пруф, или небыло.

    P.S. Диванный кукаретик детектед.

     
     
  • 5.30, Аноним (-), 05:11, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Пруф, или небыло.

    Посмотри исходники любого боевого сплойта на повышение прав и т.п. - там обычно вынос SELinux (а иногда и иных систем, e.g. AppArmor-а) первым делом прописаны, чтобы под ногами не мешался.

    Но если тебе мало - получай, nobrainer: https://lwn.net/Articles/341773/ - там подробно изложено что хаксоры думают про SELinux. И это мнение не самое вкусное. По факту SELinux в этом эксплойте ПОМОГАЛ поиметь систему :D.

    А вот настраивать эту хреноту от АНБ очень геморно. Ну АНБ оно понятно зачем - у них там вполне конкретный регламент доступа к документам и внутренние процедуры требуют мандатный контроль. Если в системе нет мандатного контроля - они не будут системой пользоваться. А вот зачем всем остальным этот кластерфак при таком соотношении затрат усилий к результату - загадка природы. Над ними то регламент предписывающий копать от забора и до обеда не висит...

     
     
  • 6.36, CssfPZS (ok), 13:50, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >получай, nobrainer: https://lwn.net/Articles/341773/

    Я конечно понимаю, что у таких кукаретиков как ты, проблемы с чтением, но
    в приведенном тобой линке идет речь про баг в ядре, который затрагивает
    целый ряд его внутренних подистем безопастности и НЕ ЯВЛЯЕТСЯ SELinux СПЕЦИФИЧНЫМ.

    Короче дорога тебе одна, в биореактор.

     
  • 3.12, Аноним (-), 16:29, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Grsecurity + PaX
     
     
  • 4.23, Аноним (-), 23:03, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Саккез стори нету.
     
     
  • 5.33, Аноним (-), 05:23, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Саккез стори нету.

    Так это то и хорошо :). Потому что обычно их пишут хаксоры которым удалось прорубиться в систему :). А когда все просто работает - какое там success story?

     
  • 3.18, Michael Shigorin (ok), 19:24, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > И кому они такие красивые нужны? SELinux и без них работает.

    Только скорее не selinux, а openvz тогда.

     
     
  • 4.24, Аноним (-), 00:40, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Michael,
    openvz (при всём моем к нему!) таки из другой оперы чем lxc.
    Удивлён чёй ты мешаешь самогон с коньяком 8-\
     
     
  • 5.26, Led (ok), 01:38, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > openvz (при всём моем к нему!) таки из другой оперы чем lxc.

    Судя по всему, вы абсолютно "не в теме". Он из "той же оперы". И сабж к нему точто так же применим.

     
     
  • 6.27, Аноним (-), 03:29, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    :-\ Да как же в той же?! Там всё на других механизмах сляпано, всё!
    А впрочем - как скажете :)
     
     
  • 7.31, Аноним (-), 05:17, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Там всё на других механизмах сляпано, всё!

    IIRC идея была в том чтобы максимально переехать на услуги майнлайнового ядра, дописывая только то чего не хватило.


     
  • 2.8, Пропатентный тролль (?), 15:11, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А вся фишка в том, что они этого никогда не скажут ;-)
     

  • 1.5, odity (?), 14:01, 20/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Че то читал код и е понял. он выходил за пределы памяти путем переполнения ? Ну это же , хм...
     
     
  • 2.7, Аноним (-), 14:35, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > он выходил за пределы памяти путем переполнения ?

    Это где такое? File:line плиз.

     
  • 2.19, Michael Shigorin (ok), 19:25, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > е понял. он выходил за пределы памяти путем переполнения ?

    Он позволял работать прям по инодам.

     

  • 1.9, Аноним (-), 15:27, 20/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    docker дырявый, linux дырявый, qubesos Рутковской на xen'e который тоже дырявый. Как дальше жить?
     
     
  • 2.10, Психиатр (ok), 15:34, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    openssl дырявый, php дырявый, c/c++ сам по себе дырявый (в кривых руках) ... * тоже дырявый
    Как дальше жить?

    Только деревянные счёты, печатные книги, бумажные документы в стальном сейфе (упс, сейф тоже дырявый, брутфорсом их ломаютЬ) , да уж, я таки не знаю как дальше жить ...

     
     
  • 3.21, Аноним (-), 19:48, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Плохой из вас психиатор, мне ещё хуже стало
     
     
  • 4.22, Аноним (-), 19:50, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    s/психиатор/психиатр
     
  • 2.14, angra (ok), 17:04, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как насчет openvz?
     
     
  • 3.15, Аноним (-), 17:15, 20/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    тоже дырявый!
    ;-D
     
  • 3.28, Аноним (-), 03:38, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Led ты чего возбудился так?  Обычной чмошный ноющий тролько, а у тебя прям ... эрекция :)


     
  • 2.32, Аноним (-), 05:19, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > docker дырявый, linux дырявый, qubesos Рутковской на xen'e который тоже дырявый. Как
    > дальше жить?

    Выкопать бункер на километровой глубине. И никакой электроники. Даже счеты лучше выбросить. На всякий случай.

     
  • 2.37, bOOster (?), 15:55, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    *bsd !
     

  • 1.34, Anonym2 (?), 09:01, 21/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем вообще нужны хэндлы файлов?
     
     
  • 2.35, Anonym2 (?), 09:23, 21/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Хотя всё равно не уязвимость, как здесь уже замечалось... :-)
    (контейнеры не предотвращают подобного рода доступ).
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру