Ровно месяц назад 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 осознаёт риск для безопасности. Расширение ядра уже почти год тестируют внутри компании, проверяя стабильность и целостность системы. Понимая все риски, компания считает, что это всё-таки будет удобная функция.
Поделиться с друзьями
-->

Комментарии (54)


  1. AllexIn
    26.05.2016 13:18
    +2

    Open Source?


    1. shiner
      26.05.2016 13:32
      +1

      Уточните, о чем вопрос?


      1. AllexIn
        26.05.2016 13:33
        +20

        Тот софт, который Dropbox разрабатывает чтобы внедрить в ядро — Open Source? Или «для вашего удобства мы внедрим в ядро код чтобы работать без каких либо ограничений. какой код? хороший! быстрый! удобный! отвечаем!В соответствеии с EULA компания не несете ответственности за любые дыры в софте»


        1. shiner
          26.05.2016 13:52
          -6

          Это науке не известно. Честно говоря, не знаю, что хуже. Но дроп на всякий случай выгрузил.


        1. FoxCanFly
          26.05.2016 15:11
          +6

          Торговля полным доступом на ПК любого пользователя — очень прибыльный бизнес. Спрос от рекламщиков до спецслужб.


          1. sav1812
            29.05.2016 11:21

            Ну, для спецслужб там АНБ подсистему безопасности Windows разрабатывало, помнится… :)

            Свой, персональный, парадненький такой вход в систему.


  1. Revertis
    26.05.2016 14:28

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


    1. Frankenstine
      27.05.2016 13:47

      Шило на мыло: такое общение будет сопровождаться переключением контекста, и все выгоды от кернел мода испарятся.


  1. Saffron
    26.05.2016 14:29
    +40

    Что-то не верится, что dropbox даёт пользователям такую скорость, что они уперлись в производительность FUSE.


    1. AllexIn
      26.05.2016 14:40
      +18

      Да вся затея выглядит сомнительной. Даже просто формулировка «сервис для синхронизации файлов хочет в ядро» уже немного диковатая, учитывая что ради безопасности всё что возможно наоборот из ядра убирается в юзерспейс.


      1. AntiVIRUZ
        26.05.2016 15:13

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


        1. Eklykti
          26.05.2016 16:35
          +10

          Через FUSE оно точно так же станет «как бы папкой», за исключением того, что модуль FUSE разрабатывается уже больше 10 лет и вероятность наличия в нём дыр, не выявленных за всё это время, гораздо меньше, чем в самописной поделке.


        1. alltiptop
          26.05.2016 16:56
          +8

          Чем это отличается от sshfs, webdav и пр. вариантов удалённого монтирования?


          1. monah_tuk
            27.05.2016 12:09

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


      1. EvgenT
        26.05.2016 15:19
        +2

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


        1. negodnik
          29.05.2016 00:51

          фалы хранятся в открытом виде и любой может запросто их качать

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


          1. GamePad64
            29.05.2016 13:43
            -1

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


            1. vladkens
              02.06.2016 00:40
              +1

              Это было четырех часовая бага (пруф).


    1. dtabashov
      26.05.2016 15:13
      -2

      Да, ограничений по скорости скорее всего не должно быть… А вообще — идея очень заманчива


    1. izzholtik
      26.05.2016 15:13

      Возможно, проблема в сканировании файлов, которое клиент дропбокса очень любит делать.


  1. dmitry_dvm
    26.05.2016 15:10
    +18

    Кондолиза Райс теперь прям за ядрышко может потрогать каждого юзера дропбокс.


  1. bluetooth
    26.05.2016 15:13
    +1

    Остаётся только надеяться, что нам дадут свободу выбора — использовать медленный Dropbox с FUSE или перейти на более быстрый работающий на уровне ядра… Хотя надежды мало.


    1. edogs
      26.05.2016 17:41
      -1

      Кончается аккаунт с 50гб, предлагают перейти за 100 евро на теребайтный.
      При этом на микрософтовском скайдрайве тот же терабайт (и вроде еще можно 4 сделать на разные акки), плюс мс-оффис (тоже полезная вещь) за меньше чем 50 евро.
      Что-то нам кажется, что мы свободу выбора используем не для выбора дропбокса:)


      1. bluetooth
        26.05.2016 18:07

        Я не о выборе между облачными хранилищами, а о том, что в один прекрасный момент клиент Dropbox для Windows/Linux объявит что ему вот непременно непременно нужно обновиться. Или вообще втихаря обновится.


        1. AllexIn
          26.05.2016 18:35

          Сложновато ему будет обновится в ядро без рут прав.


          1. qw1
            26.05.2016 18:42
            +1

            Возьмёт в заложники пользовательские данные и получит права.


        1. l27_0_0_1
          26.05.2016 20:13

          Клиент для windows не будет лезть в ядро, им достаточно copy hooks.


          1. pravic
            26.05.2016 21:44

            Клиент для windows уже давно лезет в ядро (Dropbox Filter Driver).


          1. Eklykti
            28.05.2016 02:34

            Клиент для Linux и MacOS не будет лезть в ядро, ему достаточно FUSE… oh, wait, а про что тогда эта новость?


    1. JTG
      26.05.2016 18:46
      +2

      Свободный опенсорсный ownCloud, конечно, не заменит Dropbox на всяких читалках и смарт-кофеварках, но всё же весьма хорош.


  1. homocomputeris
    26.05.2016 15:13
    +2

    >без необходимости запускать браузер
    А чем это принципиально отличается, скажем, от WebDAV?


  1. catharsis
    26.05.2016 17:16
    +1

    Они изобрели NFS?


  1. pftbest
    26.05.2016 17:25
    +8

    Как-то сомнительно звучит, что им не хватает производительности FUSE. Вон тот же ntfs-3g работает в юзерспейсе и на производительность никто не жалуется. Мне кажется что сами сетевые запросы будут на порядок медленнее чем оверхед от переключения контекста.


    1. equeim
      27.05.2016 00:57

      У меня, например, начинаются тормоза, когда Dolphin считает количество файлов в директориях на разделах с ntfs-3g. Пришлось патчить, чтобы убрать эту фичу (все равно я ей не пользуюсь).
      Но в случае с дропбоксом это действительно выглядит странно — файлы-то все равно передаются по сети.


    1. Lisio
      27.05.2016 17:21

      Вон тот же ntfs-3g работает в юзерспейсе и на производительность никто не жалуется.

      Еще как жалуются. Очень медленный и ресурсоемкий драйвер.


  1. Ivan_83
    26.05.2016 18:38
    +1

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

    FUSE на Linux/BSD работает не всегда стабильно. По крайней мере у меня на BSD бывет что то влезает когда соединение отваливается или с кешированием бывают приключения.

    На винде я вообще не уверен что в юзерспейсе оно нормально может работать, по крайней мере встроенный WebDAV клиент очень и очень корявый, каждый файл при открытии он качает целиком во временную папку и только потом отдаёт приложению. Может в скайдрайве лучше, но опять же не знаю насколько API для этого МС открыло (а они любят придерживать API для собственного использования).

    В тоже время я пользуюсь ядерным smbfs для монтирования сетевых шар и с ним вообще никаких проблем нет.


  1. jQuery
    26.05.2016 18:47
    +1

    Если сильно надо, то можно поставить Dropbox Infinite на виртуалку, пусть там внедряется куда хочет.


    1. romy4
      26.05.2016 22:20

      Поднять в том же Docker контейнере и пусть себе играется.


      1. makkarpov
        26.05.2016 22:52
        +3

        Из Docker-контейнера нельзя загрузить модуль ядра, т.к. ядро общее с хостом. Если не хочется, чтобы оно свои модулей в ядро насовало — можно запускать из-под юзера, если паранойя и тут — то из-под отдельного юзера или завернуть в SELinux, например.


  1. profesor08
    26.05.2016 18:47
    +1

    без необходимости запускать браузер
    Так клиент дропбокс и так работал самостоятельно без браузера, создавая виртуальную папку, где были видны все файлы и с ними можно было работать. Если файла небыло на компьютере и к нему нужен доступ, то он скачивался. А тут они предлагают почти то-же самое. В чем профит? В перетаскивании файлов из папки в папку и их переименовывании?


  1. zim32
    26.05.2016 20:41

    А потом они переименуются в DropVirus


  1. alek0585
    27.05.2016 00:39

    А может ли это иметь смысл для гигабитной сети и супер быстрого ssd-диска? В смысле в теории/вакууме.


  1. mrxak
    27.05.2016 01:31
    +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 изобретёт более эффективный кроссплатформенный велосипед. А по объемам Церн вряд ли меньше прокачивает, там все-таки огромные массивы данных.


  1. rtzra
    27.05.2016 09:15

    Забавно, только вчера задался вопросом куда уходить с Dropbox и наткнулся на SeaFile https://www.seafile.com/en/product/private_server/ а тут такой повод осуществить переход поскорее


    1. isden
      27.05.2016 09:38

      Еще есть https://www.sync.com, там обещают полное client-side encryption. Плюс контора канадская. Я лично туда присматриваюсь.


      1. rtzra
        27.05.2016 09:44
        +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/


      1. GamePad64
        27.05.2016 14:02

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


        1. isden
          27.05.2016 15:05

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


    1. Randl
      27.05.2016 11:26

      Посмотрите ownCloud


      1. rtzra
        27.05.2016 11:40

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


        1. monah_tuk
          27.05.2016 12:16

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


          1. rtzra
            27.05.2016 15:23

            Вопрос в том чтобы быть самому себе self-hosted: хранить файлы на только на подконтрольных мне серверах с шифрованием и прочими плюшками


  1. SAKrisT
    27.05.2016 11:17

    Сразу вспомнился сериальчик «silicon valley». хихи :)


  1. Londoner
    01.06.2016 14:07

    А давайте тут накидаем список альтернатив дропбоксу.