LINUX.ORG.RU
ФорумTalks

Hash-DoS уязвимость в btrfs

 ,


1

4

http://crypto.junod.info/2012/12/13/hash-dos-and-btrfs/

Для Ъ - умелец создал скрипт, который создает в одной директории небольшое кол-во файлов со специальными именами, на удаление которых тратится дохрена процессорного времени (эксперимент прервали после 220 минут, судя по всему система вошла в бесконечный цикл).

Причина - использование слабого алгоритма хеширования CRC32 и использование структур данных с высокой сложностью в наихудшем случае (worst-case complexity, как будет по-русски нормально?)

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

ЗЫ - проверил у себя, не воспроизводится.

★★★★★

Последнее исправление: provaton (всего исправлений: 1)

Ответ на: комментарий от tailgunner

Это не аргумент вообще.

До тех пор, пока аргументом являются слова Шишкина, это аргумент.

Я не увидел никакой мути в его аргументах о записях переменной длины

а я вижу записи переменной длины в reiserfs и она работает. Обрати внимание, он говорит про вариант Байера, а такого ни в reiserfs, ни в btrfs нет. Это, так сказать, оффтопик.

и это обнуляет гарантирванные свойства B+-дерева

какие, например? Листы фиксированного размера, если что. Элементы только в листах. Какие свойства обнуляются?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Если в двух словах, то reiser4 — полный редизайн reiserfs. С нуля. Включая алгоритмы. Не от хорошей жизни. И да, там не просто B и даже не B+ деревья.

x3al ★★★★★
()
Ответ на: комментарий от i-rinat

Листы фиксированного размера, если что

tailgunner> делает ли опция размер записи фиксированным.

i-rinat> Нет

Обрати внимание, он говорит про вариант Байера, а такого ни в reiserfs, ни в btrfs нет.

То есть возражение «он говорит о другом варианте B-дерева, а у нашего описанной им проблемы нет»?

Какие свойства обнуляются?

Гарантированное заполнение 50% используемого пространства.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)

казалось бы, причем тут suse :)

xtraeft ★★☆☆
()
Ответ на: комментарий от Kindly_Cat

Вообще-то это у тебя сплошные отмазки, как только указывают на то, что ты нифига не аргументировал. А неаргументированность у тебя перманентная - факт.

Quasar ★★★★★
()
Ответ на: комментарий от Axon

Это не отмазка, а указание на некорректность аргументации.

Это не некорректность аргументации, а указание на некорректность твоей «аргументации».

Что, в свою очередь, не отменяет истинности этих утверждений

Ну кто бы сомневался, что святые свитки Шишкина могут быть не-истинными :D

Kindly_Cat
()
Ответ на: комментарий от shahid

Перечислить, что же фундаментально изменилось в btrfs за это время (кроме появления подобия fsck)

Историю коммитов посмотреть религия не позволяет? Кстати, не тебя ли не так давно тут тыкнули носопыркой в эту самую историю, на что ты благоразумно замолчал в ответ? :D

Kindly_Cat
()
Ответ на: комментарий от Ygor

Чувак спецом извратился и сделал так, чтобы удаление замедлилось в N раз. Всё! АТАС! ФС дефективная by design!!!!!1111

Kindly_Cat
()
Ответ на: комментарий от tailgunner

i-rinat> Нет

нет противоречия. Фиксированного размера листы заполняются переменного размера записями (items). Это разные сущности. Листы всегда постоянного размера, записи всегда переменного. И в btrfs, и в reiserfs/reiser4.

То есть возражение «он говорит о другом варианте B-дерева, а у нашего описанной им проблемы нет»?

он говорит о вообще левом типе, которого ни у него, ни у критикуемой фс нет. Вот моё возражение.

Гарантированное заполнение 50% используемого пространства

это для дерева, у которого листья с данными на всех уровнях. У b+ все данные на нижнем уровне, а в нодах только ключи и ссылки. Вкупе с возможностью резать директории и экстентные элементы, заполнение можно без проблем держать выше 50%.

i-rinat ★★★★★
()
Ответ на: комментарий от x3al

Если в двух словах, то reiser4 — полный редизайн reiserfs. С нуля. Включая алгоритмы. Не от хорошей жизни. И да, там не просто B и даже не B+ деревья.

Поясню свою точку зрения. И там и там сбалансированные B+ деревья. Танцующие деревья — только в памяти. И там и там те же ключи, внутренние узлы и листья. Разве что ключи стали 256 бит вместо 128. Да, в 4 новая система журналирования «будь ближе к данным», но принцип тот же: запись-подтверждение.

i-rinat ★★★★★
()

Кривой дизайн не лечится. В ZFS сейчас в качестве контрольных сумм по дефолту используется алгоритм «fletcher4», но можно отключить совсем, выставить «fletcher2» (по аналогии CRC32, ранее было) или «sha256».

iZEN ★★★★★
()
Ответ на: комментарий от x3al

В r4 B*-деревья.

Которое отличается от B+ дерева более агрессивным алгоритмом балансировки. Сильнее требования, меньше внутренних узлов, больше время работы. Вполне логичный апгрейд, учитывая то, что балансировка теперь делается реже, при сбросе на диск, а не на каждый чих, как в 3.5/3.6.

Это апгрейд, а не «всё с нуля».

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

он говорит о вообще левом типе, которого ни у него, ни у критикуемой фс нет

Ты единственный, кто подозревает его в такой безграмотности.

Гарантированное заполнение 50% используемого пространства

это для дерева, у которого листья с данными на всех уровнях

Нет, это для B+

tailgunner ★★★★★
()
Ответ на: комментарий от leg0las

Неужели Гансу так и не дадут ноут с инетом?)

Угу, для коммита :)

tazhate ★★★★★
()
Ответ на: комментарий от leg0las

О том, что defective by design

Facepalm. Всё равно, что со стадом ботов общаться.

А успешные атаки такого рода на PHP, Питон, Джаву, Руби тоже говорят, что все эти языки - defective by design? Или нет, т.к. Шишкин про них ничего не писал в вашей методичке?

Kindly_Cat
()
Ответ на: комментарий от tazhate

Нифига не зря. Как ZFS научится не жрать память гигами и делать клоны прямо с ФС, а не со снапшотов - дай знать. И ещё желательно её присутствие в ядре, да.

Kindly_Cat
()
Ответ на: комментарий от Kindly_Cat

не жрать память гигами

Дык вроде ж выяснили, что это только при дедупе и настраивается? Без него-то она должна аппетиты поумерить?

GAMer ★★★★★
()
Ответ на: комментарий от GAMer

Дык вроде ж выяснили, что это только при дедупе и настраивается?

И без дедупа и с настройкой жрёт.

Kindly_Cat
()
Ответ на: комментарий от tailgunner

Ты единственный, кто подозревает его в такой безграмотности.

Есть такая байка, про Аристотеля и количество ног. Мол, он посчитал ноги у мухи и насчитал 8. Так и записал. А впоследствии всех, кто ловил мух и насчитывал 6, тыкали носом в труды классика и заявляли, что он не мог ошибаться.

Я его в подозреваю не в безграмотности, а во вбросе. Он так вбросил, что до сих пор летит в разные стороны. А остатками люди ещё и перекидываются. Великолепный вброс. Шишкин — тролль уровня Торвальдса.

Нет, это для B+

ok, мне надоело спорить. Я вижу B+ в reiserfs и она работает. В некоторых местах хреново, и я понимаю почему, но работает. А некто мне доказывает, что это работать не может, в то время как я смотрю на работающий образец. Конечно же я верю тому, что вижу, а не абстрактным безапелляционным заявлениям.

Наш дальнейший теоретический спор бессмыслен, так как страдает от недостатка подробностей реализации. Если желаешь, можешь посмотреть вот этот замечательный документ. Автор отлично разъясняет, что и как.

i-rinat ★★★★★
()
Ответ на: комментарий от Kindly_Cat

Как ZFS научится не жрать память гигами и делать клоны прямо с ФС, а не со снапшотов - дай знать.

Напиши за 2 минут враппер для клонирования, который будет делать снапшот, клон с него, и удалять снапшот и забудь навсегда, что снапшот вообще нужен. Или у тебя какая-то принципиальная претензия?

unC0Rr ★★★★★
()
Ответ на: комментарий от unC0Rr

Напиши за 2 минут враппер для клонирования, который будет делать снапшот, клон с него, и удалять снапшот и забудь навсегда, что снапшот вообще нужен

К сожалению, первый пункт враппером не исправить.

Kindly_Cat
()
Ответ на: комментарий от Kindly_Cat

Facepalm. Всё равно, что со стадом ботов общаться

Взаимно. Отсутствие за сколько там лет разработки fsck, и засовывание ФС везде, куда только можно (при упомянутом выше fsck) - почти как с systemd, как бы намекают нам на качество кода, вот только нормальные админы (не локалхоста) это говноподелие юзать никогда не будут.

leg0las ★★★★★
()
Ответ на: комментарий от leg0las

Отсутствие за сколько там лет разработки fsck, и засовывание ФС везде, куда только можно (при упомянутом выше fsck) - почти как с systemd, как бы намекают нам на качество кода

Отсутствие какой-либо фичи и проталкивание продукта связано с качеством кода?

Какой только делириозной чепушни ни услышишь от лоровских искпердов...

Kindly_Cat
()
Ответ на: комментарий от Kindly_Cat

Отсутствие какой-либо фичи

Хренасе, fsck теперь это «фича». Я думал это базовый функционал. Даже reiser4 с его мегаэкспериментальным статусом уже хрен знает сколько лет имеет fsck.reiser4.

Какой только делириозной чепушни ни услышишь от лоровских искпердов

не говори(:

leg0las ★★★★★
()
Ответ на: комментарий от i-rinat

Если желаешь, можешь посмотреть вот этот замечательный документ.

К reiser4 это отношения не имеет: «This document describes the on-disk structure of the Reiser file system version 3.6». Если ты сравниваешь btrfs и reiser3, то зачем?

https://reiser4.wiki.kernel.org/index.php/V4

«In Reiser4 we employ not balanced trees, but dancing tree».

tailgunner ★★★★★
()
Ответ на: комментарий от Kindly_Cat

Ок. Если вдруг внезапно btrfs «допилят» (как залмивают нам разработчики) и снимут пометочку EXPERIMENTAL в ведре, ты поставишь ее на / на нагруженый сервак 24/7/365? С твоих слов - поставишь.

leg0las ★★★★★
()
Ответ на: комментарий от Kindly_Cat

Если ты говоришь «скорее всего да», то ты не обслужваешь такие железки. Через годик у тебя внезапно просядет например скорость r/w, получишь нагрузку на проц 100% из-за i/o wait, потому что разрабы поспешили выпустить в продакшен, в итоге - тормозящий сервак и над головой начальник. Что делать будешь? останавливать сервак нельзя, нужно писать кучу бумажек например. Или написать одну, об увольнении))

Именно поэтому я на свои сервера воткну reiserfs, xfs или ext3 (даже не 4, ибо и в ней что-то находят регулярно), потому что ехать а не шашечки.

leg0las ★★★★★
()
Ответ на: комментарий от leg0las

Через годик у тебя внезапно просядет например скорость r/w, получишь нагрузку на проц 100% из-за i/o wait, потому что разрабы поспешили выпустить в продакшен, в итоге - тормозящий сервак и над головой начальник. Что делать будешь?

А ещё внезапно может упасть метеорит. Или из Москвы-реки вылезет Годзилла.

Kindly_Cat
()
Ответ на: комментарий от leg0las

даже не 4, ибо и в ней что-то находят регулярно

Я так понимаю, она тоже defective by design? А XFS, которая не так давно забивала нулями открытые файлы - не дефективная? Оkay.

Kindly_Cat
()
Ответ на: комментарий от Kindly_Cat

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

leg0las ★★★★★
()
Ответ на: комментарий от leg0las

Можешь опрос добавить, кто в продакшене юзает это говноподелие

Пациент, определитесь в показаниях. А то вы скачете от «когда btrfs допилят и снимут статус experimental» до «сейчас». Если вы, конечно, в состоянии, в чём я почему-то сомневаюсь.

Kindly_Cat
()
Ответ на: комментарий от Kindly_Cat

про ext4 я ничего не говорил. ext3 - потому что проверено, xfs достаточно тормозная, она на последнем месте.

leg0las ★★★★★
()
Ответ на: комментарий от tailgunner

«In Reiser4 we employ not balanced trees, but dancing tree».

Продолжай читать дальше: «Dancing trees merge insufficiently full nodes, not with every modification to the tree, but instead: in response to memory pressure triggering a flush to disk, as a result of a transaction closure flushing nodes to disk»

У меня такое ощущение, что я разговариваю с маркетологом. Набор ключевых слов. Я их слышал уже. А ещё слышал презентацию Райзера от 2006-го года, что ли. И что-то он там ничего про несбалансированность не говорил. Танцующие деревья — это структура в памяти, а не на диске. (Кстати, Райзер и на вид какой-то странный).

Честно говоря, мне плохо верится в заявление: «Do you want a million files in a directory, and want to create them fast? No problem.» Будут проблемы.

i-rinat ★★★★★
()
Ответ на: комментарий от leg0las

Наберется в лучшем случае несколко процентов - отличный детектор идиотов:-)

Темы про btrfs с её каментами в стиле «defective by design» - тоже детектор.

Kindly_Cat
()
Ответ на: комментарий от i-rinat

У меня такое ощущение, что я разговариваю с маркетологом

Он не маркетолог, он весьма опытный чувак, но у него проблемы со способностью признавать свои ошибки.

Kindly_Cat
()
Ответ на: комментарий от Kindly_Cat

Ок. Из всего словесного потока вычленю:

Эти идиоты за 5(!!!) не осилили написать fsck для собственной ФС. Т.е. оно там настолько кривое, что проверить ФС на предмет повреждений/сбоев - это нереально сложно.

btrfs проталкивают точно так же как и поделие поццеринга - принудительно.

На более-менее серьезную работу она не годится (сейчас и в недалеком обозримом будущем) вообще.

leg0las ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.