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.

Здавалося б, що може піти не так?

Kernel memory corruption in Symantec/Norton antivirus, CVE-2016-2208 (more patches soon). https://t.co/Sqhm0a48Fp pic.twitter.com/F22xDIelSU  Tavis Ormandy (@taviso) 17 травня 2016 р.

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

Dropbox усвідомлює ризик для безпеки. Розширення ядра вже майже рік тестують всередині компанії, перевіряючи стабільність і цілісність системи. Розуміючи всі ризики, компанія вважає, що це все-таки буде зручна функція.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.