Dropbox объяснил, почему внедряется в ядро операционной системы



    Ровно месяц назад Dropbox анонсировал Dropbox Infinite — «революционно новый способ доступа к вашим файлам», как писала компания в корпоративном блоге. В демонстрационном видео показали, что десктопный клиент Dropbox предоставляет прямой доступ к облачному хранилищу файлов на уровне файловой системы, без необходимости запускать браузер. Локальный диск «увеличивается» на размер облачного хранилища, файлы доступны напрямую. Облачное хранилище может быть больше по размеру, чем локальный диск. Сейчас компания раскрыла технические подробности, как работает эта функция.

    Сразу после первого анонса эксперты высказали опасения, что Project Infinite откроет доступ в систему посторонним, если они найдут уязвимости в клиенте Dropbox. Собственное расширение ядра от Dropbox станет тогда своеобразным бэкдором в системе.

    В принципе, технические разъяснения Dropbox сейчас в какой-то степени подтверждают эти опасения. Действительно, Dropbox Infinite интегрируется на уровне ядра.

    «Традиционно Dropbox работал полностью в пространстве пользователя, как любая другая программа на вашей машине, — пишет разработчик компании Дэмьен Девиль (Damien DeVille). — С Dropbox Infinite мы углубляемся ещё глубже: в пространство ядра. С этой технологией клиент Dropbox меняет роль от пассивного наблюдателя, который смотрит, что происходит на локальном диске, на активную роль в вашей файловой системе. Мы почти два года работали над тем, чтобы соединиться кусочки паззла вместе, чтобы они работали прозрачно».

    Разработчик объясняет, что обычная схема FUSE не устраивает их с точки зрения производительности: каждая файловая операция обычно требует лишнего переключения контекста между пространством ядра и пространством пользователя, см. схему FUSE).



    Такие переключения контекста довольно дорого обходятся с точки зрения производительности.

    Деградация производительности при использовании FUSE


    Производительность — не единственная причина. Dropbox считает, что замена стандартных библиотек FUSE на собственное расширение ядра устраняет излишнюю сложность и, следовательно, повышает безопасность системы.

    Ещё одна полезная вещь: в расширении ядра работает проверка прав доступа через Kernel Authorization (Copy Hooks в Windows), чтобы детектировать и запрещать определённые операции в папке Dropbox.



    Такая проверка осуществляется гораздо проще, чем можно было сделать через FUSE.



    Если приложение работает в пространстве ядра, оно может позволить себе гораздо больше, чем обычная программа в пространстве пользователя. С точки зрения безопасности это довольно рискованно. «Если Dropbox в ядре, то может получить доступ к чему угодно, — говорит Сэм Боун (Sam Bowne), который ведёт курсы этического хакинга в колледже Сан-Франциско. — Если в клиенте Dropbox есть баг, его можно использовать для захвата всей системы».

    Примерно таким образом хакеры использовали баг в антивирусном ПО от Symantec/Norton (CVE-2016-2208). Антивирусы тоже работают в пространстве ядра, куда пытается проникнуть и Dropbox.

    Казалось бы, что может пойти не так?


    «Мы серьёзно относимся к безопасности и делаем всё, чтобы защитить своих пользователей и их данные, — пишет Dropbox. — Наши группы Red team [внутренние независимые подразделения для поиска уязвимостей] предлагают программы Bug Bounty и на регулярной основе приглашают независимых пентестеров, которые помогают искать уязвимости».

    Dropbox осознаёт риск для безопасности. Расширение ядра уже почти год тестируют внутри компании, проверяя стабильность и целостность системы. Понимая все риски, компания считает, что это всё-таки будет удобная функция.
    Rootwelt
    Linux VPS лоукост-хостинг в Германии
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 57

      +2
      Open Source?
        +1
        Уточните, о чем вопрос?
          +20
          Тот софт, который Dropbox разрабатывает чтобы внедрить в ядро — Open Source? Или «для вашего удобства мы внедрим в ядро код чтобы работать без каких либо ограничений. какой код? хороший! быстрый! удобный! отвечаем!В соответствеии с EULA компания не несете ответственности за любые дыры в софте»
            –6
            Это науке не известно. Честно говоря, не знаю, что хуже. Но дроп на всякий случай выгрузил.
              +6
              Торговля полным доступом на ПК любого пользователя — очень прибыльный бизнес. Спрос от рекламщиков до спецслужб.
                0
                Ну, для спецслужб там АНБ подсистему безопасности Windows разрабатывало, помнится… :)

                Свой, персональный, парадненький такой вход в систему.
          0
          Теоретически, они могли бы минимум кода держать в кернел-модуле, и работать с ним из юзерспейса. Но захотят ли?
            0
            Шило на мыло: такое общение будет сопровождаться переключением контекста, и все выгоды от кернел мода испарятся.
              +2
              Переключения контекста, видите ли, им помешали. При доступе к файлу по сети на другом конце планеты. Это ж надо было придумать.
            +40
            Что-то не верится, что dropbox даёт пользователям такую скорость, что они уперлись в производительность FUSE.
              +18
              Да вся затея выглядит сомнительной. Даже просто формулировка «сервис для синхронизации файлов хочет в ядро» уже немного диковатая, учитывая что ради безопасности всё что возможно наоборот из ядра убирается в юзерспейс.
                0
                Но тут уже речь идет не о синхронизации файлов, а о программе, которая позволяет работать с данными из облака как с файловой системой, предварительно не скачивая их на диск. То есть и для пользователя, и для программ это станет как бы папкой с небольшой (в зависимости от ширины канала) скоростью чтения/записи
                  +10
                  Через FUSE оно точно так же станет «как бы папкой», за исключением того, что модуль FUSE разрабатывается уже больше 10 лет и вероятность наличия в нём дыр, не выявленных за всё это время, гораздо меньше, чем в самописной поделке.
                    +8
                    Чем это отличается от sshfs, webdav и пр. вариантов удалённого монтирования?
                      0

                      Ну собственно тут рождается вариант: запустить этот модуль ядра где-то на хостинге (если оно позволяется), смонтировать, а директорию хостинга уже подключить по sshfs. К файлам то дропбокс и сейчас доступ имеет, но так, хотя бы остального от вашей системы не получит.

                    +2
                    Каждая уборщица стала из себя мнить ядерный модуль…
                    От дропбокса отказался давно, когда стало известно, что фалы хранятся в открытом виде и любой может запросто их качать. Да, это было очень давно. И с подобными нововведениями, что тут описаны, возвращаться не собираюсь.
                      0
                      фалы хранятся в открытом виде и любой может запросто их качать

                      В каком смысле «любой»? Из сотрудников Dropbox, имеете в виду?
                        –1

                        Там давно была достаточно мутная история, баг в проверке пароля, когда можно было залогиниться под любым юзером введя любой пароль. И все файлы были доступны в открытом виде. Пруфы почему-то не гуглятся, но скандал по этому поводу был громкий.

                          +1
                          Это было четырех часовая бага (пруф).
                    –2
                    Да, ограничений по скорости скорее всего не должно быть… А вообще — идея очень заманчива
                    • UFO just landed and posted this here
                      +18
                      Кондолиза Райс теперь прям за ядрышко может потрогать каждого юзера дропбокс.
                        +1
                        Остаётся только надеяться, что нам дадут свободу выбора — использовать медленный Dropbox с FUSE или перейти на более быстрый работающий на уровне ядра… Хотя надежды мало.
                          –1
                          Кончается аккаунт с 50гб, предлагают перейти за 100 евро на теребайтный.
                          При этом на микрософтовском скайдрайве тот же терабайт (и вроде еще можно 4 сделать на разные акки), плюс мс-оффис (тоже полезная вещь) за меньше чем 50 евро.
                          Что-то нам кажется, что мы свободу выбора используем не для выбора дропбокса:)
                            0
                            Я не о выборе между облачными хранилищами, а о том, что в один прекрасный момент клиент Dropbox для Windows/Linux объявит что ему вот непременно непременно нужно обновиться. Или вообще втихаря обновится.
                              0
                              Сложновато ему будет обновится в ядро без рут прав.
                                +1
                                Возьмёт в заложники пользовательские данные и получит права.
                                0
                                Клиент для windows не будет лезть в ядро, им достаточно copy hooks.
                                  0
                                  Клиент для windows уже давно лезет в ядро (Dropbox Filter Driver).
                                    0
                                    Клиент для Linux и MacOS не будет лезть в ядро, ему достаточно FUSE… oh, wait, а про что тогда эта новость?
                                +2
                                Свободный опенсорсный ownCloud, конечно, не заменит Dropbox на всяких читалках и смарт-кофеварках, но всё же весьма хорош.
                                +2
                                >без необходимости запускать браузер
                                А чем это принципиально отличается, скажем, от WebDAV?
                                  +1
                                  Они изобрели NFS?
                                    +8
                                    Как-то сомнительно звучит, что им не хватает производительности FUSE. Вон тот же ntfs-3g работает в юзерспейсе и на производительность никто не жалуется. Мне кажется что сами сетевые запросы будут на порядок медленнее чем оверхед от переключения контекста.
                                      0
                                      У меня, например, начинаются тормоза, когда Dolphin считает количество файлов в директориях на разделах с ntfs-3g. Пришлось патчить, чтобы убрать эту фичу (все равно я ей не пользуюсь).
                                      Но в случае с дропбоксом это действительно выглядит странно — файлы-то все равно передаются по сети.
                                        0
                                        Вон тот же ntfs-3g работает в юзерспейсе и на производительность никто не жалуется.

                                        Еще как жалуются. Очень медленный и ресурсоемкий драйвер.
                                      • UFO just landed and posted this here
                                          +1
                                          Если сильно надо, то можно поставить Dropbox Infinite на виртуалку, пусть там внедряется куда хочет.
                                            0
                                            Поднять в том же Docker контейнере и пусть себе играется.
                                              +3
                                              Из Docker-контейнера нельзя загрузить модуль ядра, т.к. ядро общее с хостом. Если не хочется, чтобы оно свои модулей в ядро насовало — можно запускать из-под юзера, если паранойя и тут — то из-под отдельного юзера или завернуть в SELinux, например.
                                            +1
                                            без необходимости запускать браузер
                                            Так клиент дропбокс и так работал самостоятельно без браузера, создавая виртуальную папку, где были видны все файлы и с ними можно было работать. Если файла небыло на компьютере и к нему нужен доступ, то он скачивался. А тут они предлагают почти то-же самое. В чем профит? В перетаскивании файлов из папки в папку и их переименовывании?
                                              0
                                              А потом они переименуются в DropVirus
                                                0
                                                А может ли это иметь смысл для гигабитной сети и супер быстрого ssd-диска? В смысле в теории/вакууме.
                                                  +3
                                                  Вообще всё это уже давно и успешно работает в CERN'е — cvmfs (CernVM-FS, https://cernvm.cern.ch/portal/filesystem/downloads), afs (http://information-technology.web.cern.ch/services/afs-service + OpenAFS) и lustre (https://en.wikipedia.org/wiki/Lustre_(file_system)), ещё и castor для ленты. С работы, например, спокойно вижу весь церн (и другие институты, которые интегрированы в общую ФС) через каталог /cvmfs/, при желании могу и из дома; и на винде, и на линуксе. И что-то у меня сомнения по поводу того, что Dropbox изобретёт более эффективный кроссплатформенный велосипед. А по объемам Церн вряд ли меньше прокачивает, там все-таки огромные массивы данных.
                                                    0
                                                    Забавно, только вчера задался вопросом куда уходить с Dropbox и наткнулся на SeaFile https://www.seafile.com/en/product/private_server/ а тут такой повод осуществить переход поскорее
                                                      0
                                                      Еще есть https://www.sync.com, там обещают полное client-side encryption. Плюс контора канадская. Я лично туда присматриваюсь.
                                                        +1
                                                        Тут вот что утверждают: «Built-in File Encryption. A library can be encrypted by a password choosen by you. Files are encrypted before syncing to the server. Even the system admin can't view the files.»
                                                        А в достаточно старой статье немного подробнее описан механизм: https://xakep.ru/2014/10/08/own-dropbox/
                                                          0

                                                          Но оно тоже с закрытым кодом. Шило на мыло, получается.

                                                            0
                                                            Любому сервису доверять на 100% нельзя. Но можно дополнительно шифровать что нужно :)
                                                            А свое self-hosted дороговато выходит :(
                                                            Я уж и так тоже подумывал, но дорого блин сервачок с 1Т диска выходит у более-менее надежных хостеров да еще и с бэкапами.
                                                          0

                                                          Посмотрите ownCloud

                                                            0
                                                            Да, я его смотрел. Куча всего, периодические проблемы то с тем то с этим (но вроде последние версии постабильнее) — а мне нужно просто и удобно хранить файло :-)
                                                              0

                                                              MegaSync? Или тут вопрос с подключением дополнительного, облачного пространства, как бы расширение существующего?

                                                                0
                                                                Вопрос в том чтобы быть самому себе self-hosted: хранить файлы на только на подконтрольных мне серверах с шифрованием и прочими плюшками
                                                          0
                                                          Сразу вспомнился сериальчик «silicon valley». хихи :)
                                                            0
                                                            А давайте тут накидаем список альтернатив дропбоксу.
                                                              0
                                                              owncloud
                                                              seafile
                                                                0
                                                                если у вас NAS Synology (или его ОС поставленная на что-то свое — XPenology) то DS Cloud (правда вот когда его научат НОРМАЛЬНО с версиями работать...)
                                                                проблемы со большинством альтернатив:
                                                                — «мелкие детали» не так удобны (например — что будет если положить в каталог для синхронизации сразу 100500 файлов? Или они там уже лежат но надо скачать на новый компьютер)
                                                                — куча софта не умеет интегрироваться с чем то еще. Примеры — читалка Bookari умеет OPDS и Dropbox но никаки OwnCloud'в (OPDS правда более чем достаточно). Scrivener: OS X/Windows версия умеет интегрироваться с iOS-версией только через Dropbox (или iTunes File Sharing), при этом автор прямо сказал что даже iCloud пока поддерживать не будет именно по техническим причинам.

                                                            Only users with full accounts can post comments. Log in, please.