The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

DoS атака против файловой системы Btrfs, opennews (??), 13-Дек-12, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


8. "DoS атака против файловой системы Btrfs"  +/
Сообщение от Аноним (-), 13-Дек-12, 20:54 
Это можно сделать не только на Btrfs, в том плане что поедание ресурсов возможно не только в данной ФС и не только в ФС
Ответить | Правка | Наверх | Cообщить модератору

14. "DoS атака против файловой системы Btrfs"  +/
Сообщение от Аноним (-), 13-Дек-12, 21:04 
> Это можно сделать не только на Btrfs, в том плане что поедание
> ресурсов возможно не только в данной ФС и не только в ФС

Это можно сделать много где и это не самый ожидаемый вектор атаки для программистов.

В общем то это довольно фундаментальная проблема использующая слабое место хэш-таблиц: при коллизиях хэш-таблица может быть медленной. Если коллизий много - дело дрянь. Атака состоит в потугах сделать так чтобы коллизий стало много. Для криптостойких функций это невозможно, но они слишком медленны для скоростных применений (лукап в структуре ключ-значение в памяти). А вот упрощенные хэши дают достаточно маневра для попыток их проабузить. CRC32 в этом плане очень плох, т.к. алгоритмы подгона CRC32 под ответ ни для кого не секрет.

Ответить | Правка | Наверх | Cообщить модератору

16. "DoS атака против файловой системы Btrfs"  +1 +/
Сообщение от svn (??), 13-Дек-12, 21:07 
На качественных файловых системах, xfs(btree вместо hash), reiserfs(на этапе проектировки предусмотрена устойчивость к коллизиям) такого сделать не получится.
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

20. "DoS атака против файловой системы Btrfs"  +1 +/
Сообщение от Аноним (-), 13-Дек-12, 21:14 
> предусмотрена устойчивость к коллизиям)

А нельзя ли пруф на то что они специально дизайнились с учетом этого фактора? А то проблема просто есть у целого класса алгоритмов - хэш функций. И задумались о аккуратном подгоне входных данных для их торможения относительно недавно. Явно позже чем указанные ФС проектировались. Что вызывает некие нехорошие подозрения на ваш счет.

Ответить | Правка | Наверх | Cообщить модератору

23. "DoS атака против файловой системы Btrfs"  –1 +/
Сообщение от linux must _RIP_ (?), 13-Дек-12, 21:23 
какая-то у вас каша в голове.. скорость вычисления хэша - вещь константная. И то что колизии бывают - нормальный разработчик как бы в курсе.. (достаточно подумать 255 байт ужимают до 32 - тут уж не бывает без вариантов). Другой вопрос что при реализации кто-то заложился что таких колизий не много - но это уже проблемы реализации :-) Которую тут хвалили..
Ответить | Правка | Наверх | Cообщить модератору

28. "DoS атака против файловой системы Btrfs"  –1 +/
Сообщение от Аноним (-), 13-Дек-12, 21:31 
> И то что колизии бывают - нормальный разработчик как бы в курсе..

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

> (достаточно подумать 255 байт ужимают до 32

Вообще-то CRC32 - это 4 байта. Или 32 бита. Критиканить других с такими познаниями о криптографии - ну да, это круто.

> кто-то заложился что таких колизий не много

Это совершенно стандартное допущение для реализации хэш-таблиц. Ибо в абсолютно вырожденном случае хэш-таблица вырождается например в линейный список ("ничего кроме коллизий нет"). Нормально? :)

Ответить | Правка | Наверх | Cообщить модератору

105. "DoS атака против файловой системы Btrfs"  –1 +/
Сообщение от linux must _RIP_ (?), 14-Дек-12, 16:33 
>> И то что колизии бывают - нормальный разработчик как бы в курсе..
> Просто намеренный гасеж коллизиями вообще-то не является штатным видом эксплуатации ФС.
> И есть большие сомнения что остальные существующие ФС кто-то хоть как-то
> изучал под таким углом вообще. Хотя если хочется поисходить на г-но
> - это круто, конечно, но тогда для справедливости придется полить им
> и кучу иного софта где эту проблему выловили и зачинили.
>> (достаточно подумать 255 байт ужимают до 32
> Вообще-то CRC32 - это 4 байта. Или 32 бита. Критиканить других с
> такими познаниями о криптографии - ну да, это круто.

crc32 не является криптохэшем :-) видимо что бы это узнать нужны дикие познания?
а что брякнул до 32 - это было просто пояснение без привязки к конкретному алгоритму - так будет лучше?


>> кто-то заложился что таких колизий не много
> Это совершенно стандартное допущение для реализации хэш-таблиц. Ибо в абсолютно вырожденном
> случае хэш-таблица вырождается например в линейный список ("ничего кроме коллизий нет").
> Нормально? :)

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

В случае ext3/4 - к примеру есть дерево хэшей в узлах которого расположены ссылки на имена имеющие одинаковых хэш. В этом случае поиск имени сначала ведется по частичному или полному хэшу от имени - дальше производится модификации блоков которые хранят информацию о именах с одинаковым результатом хэш функции. Вот тут то и приплыли - если колизий будет слишком много - затраты на модификацию этих блоков - могут быть очень и очень большими. (split, merge blocks - и создание дополнительных листьев в дерево). Сдается мне что в случае btrfs идет атака как раз на этот кусок - а улучшением хэш функции (как и увеличением размера хэша) - можно только усложнить подбор имен дающих колизию.

Нормально ? :-)

Ответить | Правка | Наверх | Cообщить модератору

119. "DoS атака против файловой системы Btrfs"  +/
Сообщение от Аноним (-), 14-Дек-12, 18:24 
> crc32 не является криптохэшем :-) видимо что бы это узнать нужны дикие познания?

Внезапно, хэш-таблицы сами по себе вообще не требуют в общем случае использования именно криптостойких функций. И для них совергшенно нормально если будет некий процент коллизий. Покуда он небольшой - это мало замедляет работу таблицы. Это считается штатным развитием событий и как правило явно обрабатывается, так что столкнувшиеся записи тем не менее сохраняются и доступны. А вот то что специально нагенеренные оптом коллизии в хэш-таблице можно абузануть для сильного торможения работы чего-либо с злонамеренной целью - намного менее очевидный факт. Требующий не программерского мышления а хакерского. Не "как закрепить рельсу на полотне", а "как сделать так чтобы рельсу не унес первый встречный козел, голыми руками, за минуту". Редкий программер мыслит именно в таком контексте. Где-то это и так прокатывает. А где-то случаются различные приколы.

> к конкретному алгоритму - так будет лучше?

Отмазался, типа? :)

> формулировка нормальная - только с тем как используются хэш при построении файловых
> систем - вы не знакомы.

Нифига себе апломба. А откуда такой масштабный вывод следует? Из вашего немеряного апломба? Других предпосылок не вижу.

> Знакомы только с хэшированными списками - но есть и другие варианты - с другими болячками.

Кто вам сказал что я знаком только с хэш-таблицами? Вы сами придумали?

> будет слишком много - затраты на модификацию этих блоков - могут
> быть очень и очень большими. (split, merge blocks - и создание

Ну спасиб, Капитан. Что бы я без вас делал? А еще можно b-деревья юзать, например. Нет хэш-функции - нет проблем с ней. Зато других проблем есть.

> (как и увеличением размера хэша) - можно только усложнить подбор имен дающих колизию.

Ну так если подобрать коллизию не получится - стало быть и проблема отсутствует. Что мне там не нравится - так это 220 минут взвиса. Похоже на то что алгоритм совсем где-то взвис. Т.е. там видимо еще и просто баг где-то порылся.

Ответить | Правка | Наверх | Cообщить модератору

24. "DoS атака против файловой системы Btrfs"  +/
Сообщение от svn (??), 13-Дек-12, 21:25 
reiserfs использует хеш функцию r5, для которой не известен алгоритм создания коллизий.
И уж точно (даже если коллизия возникнет) это ограничится проблемой производительности, а не будет отказ в создании файла.
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

34. "DoS атака против файловой системы Btrfs"  +/
Сообщение от Аноним (-), 13-Дек-12, 21:43 
> И уж точно (даже если коллизия возникнет)

В общем то коллизии находят даже для криптостойких функций иногда, а для хэш-таблиц нет требования криптостойкости в общем случае. Хотя как оказалось, такая поблажка может икаться совершенно неожиданным образом.

> а не будет отказ в создании файла.

Так в btrfs нет отказов при создания файла. Правда есть какое-то непотребное время удаления.

Ответить | Правка | Наверх | Cообщить модератору

41. "DoS атака против файловой системы Btrfs"  –1 +/
Сообщение от svn (??), 13-Дек-12, 22:23 
>Так в btrfs нет отказов при создания файла.

По ссылке не ходил статью не читал? brtfs выдал ошибку на шестьдесят втором файле с коллизией.

Ответить | Правка | Наверх | Cообщить модератору

61. "DoS атака против файловой системы Btrfs"  +/
Сообщение от Аноним (-), 13-Дек-12, 23:46 
> По ссылке не ходил статью не читал?

Не только читал, но и в курсе как хэш таблицы делают.

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

Но как оказалось, при должной изобретательности можно глушить коллизиями прицельно. Спровоцировав очень много коллизий. В этом случае хэш-таблица завалится в дуpной режим, когда она вместо быстрого лукапа по индексу начинает разгрeбать немеряную цепочку коллизий. Большинство алгоритмов хэш-таблиц вообще никогда не дизайнилось с прицелом на учет такой подставы. И на практике такие атаки появились лишь сравнительно недавно.

Ответить | Правка | Наверх | Cообщить модератору

84. "DoS атака против файловой системы Btrfs"  –1 +/
Сообщение от svn (??), 14-Дек-12, 07:35 
> Не только читал, но и в курсе как хэш таблицы делают.

Почитай ещё раз. То что ты знаешь, не значит что авторы btrfs знают. По факту, в директории btrfs не возможно создать больше 61 файла с одним хешем.

Ответить | Правка | Наверх | Cообщить модератору

106. "DoS атака против файловой системы Btrfs"  –1 +/
Сообщение от linux must _RIP_ (?), 14-Дек-12, 16:37 
>> По ссылке не ходил статью не читал?
> Не только читал, но и в курсе как хэш таблицы делают.
> Но как оказалось, при должной изобретательности можно глушить коллизиями прицельно. Спровоцировав
> очень много коллизий. В этом случае хэш-таблица завалится в дуpной режим,
> когда она вместо быстрого лукапа по индексу начинает разгрeбать немеряную цепочку
> коллизий.

остальной бред скипнут. В случае применения в FS - там все немного не так как вы представляете.
Собственно очень часто появляется вопрос - который уже тут задавали.
"как дописать в середину файла - не переписывая каждый раз его хвост"

Создаем большой каталог (hint вспоминаем почему гугл сделал патч на max dir size в ext4) - после чего выбираем новые имена файлов так что бы модификация была где-то в начале - и смотрим на это развлечение..
А учитывая что в btrfs - был заявлен b-tree+ - эта дура может затребовать еще и постоянную балансировку при удалении / создании элемента.. Ну и приплыли...

ps. знакомство с хэшами это хорошо - это бонус. Знакомство с предметной областью - все же более привествуется...

Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

122. "DoS атака против файловой системы Btrfs"  +/
Сообщение от Аноним (-), 14-Дек-12, 18:32 
> Собственно очень часто появляется вопрос - который уже тут задавали.
> "как дописать в середину файла - не переписывая каждый раз его хвост"

Во первых, простите, а что есть "дописать" в середину файла? Технически я понимаю что CoW это мог бы и это изобразить как 2 пальца об асфальт, но в posix вообще нет вызовов позволяющих ДОписать. Только ПЕРЕЗАПИСАТЬ. Поверх того что было (cow опять же сделает выносок, но это второй вопрос).

Во вторых - не особо понятно как дозапись в файл коррелирует с коллизиями вызваными именами файлов.

> Создаем большой каталог (hint вспоминаем почему гугл сделал патч на max dir
> size в ext4) - после чего выбираем новые имена файлов так
> что бы модификация была где-то в начале - и смотрим на это развлечение..

Я что-то не понял: а где тут про дозапись в середину файла? :)
А как генерить имена файлов чтобы там коллизии были - я и сам догадаюсь, спасибо. Тем более что у гражданина который это нашел даже скрипт для иллюстрации есть.

> ps. знакомство с хэшами это хорошо - это бонус. Знакомство с предметной
> областью - все же более привествуется...

С хэшами и деревьями я позгнакомился фиг знает когда. И вообще, наезды смотрятся не сильно уместно, особенно с учетом того что вы сами временами какой-то бред с удовольствтем задвигаете.

Ответить | Правка | Наверх | Cообщить модератору

137. "DoS атака против файловой системы Btrfs"  –1 +/
Сообщение от linux must _RIP_ (?), 15-Дек-12, 00:10 
Мисье - вы уверены что к директориям примимо слово posix?
Если уверены - то мне очень сложно вам будет объяснить что там не так.

Ответить | Правка | Наверх | Cообщить модератору

145. "DoS атака против файловой системы Btrfs"  +/
Сообщение от Аноним (-), 16-Дек-12, 00:36 
> Мисье - вы уверены что к директориям примимо слово posix?

Пардон, вы сами про ФАЙЛЫ завели речь:
> "как дописать в середину файла - не переписывая каждый раз его хвост"
> Если уверены - то мне очень сложно вам будет объяснить что там не так.

На самом деле я просто не понял ваш маневр - сначала задвинули про файлы и потом перешли на директории, тихонько спустив тему дозаписи в середину файла на тормозах. Получился какой-то бред, имхо.

Ответить | Правка | Наверх | Cообщить модератору

22. "DoS атака против файловой системы Btrfs"  +/
Сообщение от linux must _RIP_ (?), 13-Дек-12, 21:20 
у ext4 тоже специально предусмотрена обработка колизий в dx tree..
Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

29. "DoS атака против файловой системы Btrfs"  –1 +/
Сообщение от Аноним (-), 13-Дек-12, 21:34 
> у ext4 тоже специально предусмотрена обработка колизий в dx tree..

Проблема не в том что обработки нет. А в том что если коллизий будет много, алгоритм очень существенно провалится по скорости относительно "среднего по больнице" поведения. Что позволяет вредителю воткнуть весьма конкретный лом в чей-то вентилятор если коллизии можно более-менее просто посчитать и организовать их появление в системе. А вот дальще система займется их обработкой. В хучшем случае хэш-таблица может деграднуть до чего-то типа линейного списка, со всеми вытекающмим, как то не O(1) а O(N), что уже совсем иной коленкор.

Ответить | Правка | Наверх | Cообщить модератору

107. "DoS атака против файловой системы Btrfs"  –1 +/
Сообщение от linux must _RIP_ (?), 14-Дек-12, 16:38 
>> у ext4 тоже специально предусмотрена обработка колизий в dx tree..
> Проблема не в том что обработки нет. А в том что если
> коллизий будет много, алгоритм очень существенно провалится по скорости относительно "среднего
> по больнице" поведения.

see up. все не так просто.

Ответить | Правка | Наверх | Cообщить модератору

150. "DoS атака против файловой системы Btrfs"  +/
Сообщение от Аноним (-), 16-Дек-12, 01:04 
> see up. все не так просто.

Да, оказывается не все так просто. В коментах к бложику продолжается изучение где еще можно так поприкалываться. Под внимание попала дефолтная ФС OpenBSD, которую как я понял успешно заDOSили :)

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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