top
logo


Уязвимость, устранённая в LibreSSL 2.0.2, подтолкнула к добавлению вызова getrandom в ядро Linux PDF Печать E-mail
18.07.14 12:42

Разработчики проекта OpenBSD выпустили обновление переносимой редакции пакета LibreSSL 2.0.2, в рамках которого развивается форк OpenSSL, нацеленный на обеспечение более высокого уровня безопасности. В новом выпуске устранена недоработка, которая может привести к серьёзным проблемам с безопасностью на платформе Linux.

Проблема связана с особенностью реализации в LibreSSL генератора псевдослучайных чисел (PRNG), который был завязан на возможности OpenBSD и не учитывал некоторые особенности платформы Linux. В частности, LibreSSL использовал изменение PID для отслеживания форков и инициирования переинициализации PRNG, но не учитывал, что один 16-разрядный PID-идентификатор может быть назначен двум и более ответвляемым процессам. В Linux гарантируется, что ответвлённые дочерние процессы будут иметь всегда разные PID, но допускается, что при определённых условиях PID может совпасть с идентификатором прародителя (после большого числа форков можно добиться совпадения PID дочернего процесса и прародителя).

В OpenSSL присутствует специальный код для отслеживания данной ситуации, но данный код был удалён в LibreSSL, так как он был неактуален для OpenBSD. В процессе создания переносимого варианта LibreSSL особенности формирования PID в Linux выпала из внимания разработчиков. Учитывая данную особенность исследователи безопасности подготовили тестовую программу, которая продемонстрировала возврат двух одинаковых значений при разных обращениях к генератору псевдослучайных чисел LibreSSL. Разработчики OpenBSD считают проблему раздутой и малоприменимой в реальных условиях. В частности, Bob Beck указывает на то, что недоработка является проблемой только автора демонстрирующей уязвимость тестовой программы, реальные приложения никогда не функционируют подобным образом.

Проанализировав возникшие в результате обсуждения проблемы и сомнения в корректности применения обходных путей для защиты от их проявления, Theodore Ts'o предложил включить в состав ядра Linux новый системный вызов getrandom, который является аналогом системного вызова getentropy, присутствующего в OpenBSD. Getrandom предоставит надёжную защиту от атак, основанных на исчерпании доступных файловых дескрипторов. При отсутствии свободных дескрипторов невозможно задействовать /dev/urandom, поэтому библиотеками активируется запасной вариант, использующий менее надёжный PRNG. Getrandom предоставит возможность получения случайных чисел от системного PRNG даже в условиях отсутствия свободных файловых дескрипторов.

  1. Главная ссылка к новости (http://threatpost.com/overblown-libressl...)
  2. OpenNews: Корректирующий выпуск LibreSSL 2.0.1
  3. OpenNews: Первый выпуск LibreSSL, форка OpenSSL от проекта OpenBSD
  4. OpenNews: Проект OpenBSD представил LibreSSL, форк OpenSSL
Тип: Проблемы безопасности
Ключевые слова: libressl, (найти похожие документы)
При перепечатке указание ссылки на opennet.ru обязательно
Реклама
id=adv>
  1.3, Stax, 17:25, 18/07/2014 [ответить] [смотреть все]     [к модератору] –5 +/
Ага, обещали переносимую версию , а реально все затачивают под особенности Open... весь текст скрыт [показать]
 
  2.15, Клыкастый, 18:34, 18/07/2014 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  +7 +/
> Поддерживайте в своей ОС фичи из OpenBSD, и будет работать! Вот такая вот переносимость по-Теодоровски, ага..

Собственно есть и строго обратная сторона: линуксизмы в софте, которые остальным приходится заменять. Если цель не холиварить, то очевиден выход. Кто заинтересован в портировании под свою платформу, тот и отслеживает такие моменты. Под BSD с солярки перетащили ZFS, да и под линукс втащили. Заменяя ОС-зависимые моменты. Пока никто не умер. Тем более у линукс разработчиков явно поболе, так что ситуация более выигрышная. Короче, отставить панику, всё ок.

 
  3.46, bOOster, 07:12, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +1 +/
Это сплошь и рядом Posix совместимость давно линуксоидов не интересует Лепят в... весь текст скрыт [показать]
 
  4.58, Аноним, 11:43, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  –3 +/
Как видим, бздельники ничем не лучше в этом плане Лукавый в кедах - эмблема дру... весь текст скрыт [показать]
 
  5.68, bOOster, 16:39, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  –1 +/
1. А ты никогда не задумывался что некоторые специфические фичи работающие по другую сторону от kernel (предположим что справа World, в центре kernel, слева netgraph и драйвера) не нужно запихивать в стандарт, даже Posix. Так как абстракция вызова (posix совместимая) функций ядра  все равно прикроют подсистемы и очереди слева.
А в данном случае Линуксоиды именно и World и калечат, делая его вообще несовместимым с остальными Unix compatible системами.
Теперича netgraph. К этой подсистеме вообще Wоrldу прямой доступ не нужен, да его практически нет.  И Если-бы ты чето понимал в этом - так не написал бы своей глупости.
Хорош уже в лужу пердеть... Свинство разводить :)

2. Netgraph мощнейщий инструмент, правда не для лодырей устанавливающих бинарные пакеты. Там внутренний Netgraph-"ассемблер" знать надо, чтобы чтото родить.

 
5.69, bOOster, 16:47, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  
+/
> Лукавый в кедах - эмблема другой системы, обломитесь. И таки да, там
> лепят ни с чем не совместимые нетграфы, геомы, kqueue и что
> там еще. И это вроде как нормальным считается...

А да и Лукавый - это сатана а не чертенок со сковородой, который походу у многих Линуксоидов тут мягкое место подогревает. Да так что минусовать начинают даже не прочитав пост :)

 
  6.82, bOOster, 04:09, 20/07/2014 [^] [ответить] [смотреть все]    [к модератору]  –2 +/
>> Лукавый в кедах - эмблема другой системы, обломитесь. И таки да, там
>> лепят ни с чем не совместимые нетграфы, геомы, kqueue и что
>> там еще. И это вроде как нормальным считается...
> А да и Лукавый - это сатана а не чертенок со сковородой,
> который походу у многих Линуксоидов тут мягкое место подогревает. Да так
> что минусовать начинают даже не прочитав пост :)

У деревни Крюково - ВИА Пламя :) BSDшики :)

 
3.59, Аноним, 11:48, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +1 +/
Ну вон KMS DRM стали новым стандартом взаимодействия ядер с юзермодом по части г... весь текст скрыт [показать]
 2.40, freehck, 23:43, 18/07/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  +/image  
  3.63, Аноним, 12:05, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
Прекрасно, но зачем тогда было втирать очки про портабельность Тогда systemd - ... весь текст скрыт [показать]
 
1.8, Аноним, 18:21, 18/07/2014 [ответить] [смотреть все]     [к модератору]  –4 +/
Мало что-ли dev random и dev urandom устройств ... весь текст скрыт [показать]
 
  2.11, Аноним, 18:26, 18/07/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  +/
 
  3.42, Grammar_Nazi, 00:26, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
и оба неаппаратные... весь текст скрыт [показать]
 
  4.43, Xasd, 04:51, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +1 +/
двоечник не аппаратные -- раздельно слово неаппаратные слитно -- тоже... весь текст скрыт [показать]
 
  5.84, pavlinux, 06:02, 20/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
> двоечник. :)
> "не аппаратные" -- раздельно.
> слово "неаппаратные" (слитно) -- тоже существует, но в данном случае нужно не оно.

Программер отъымэл филолога =)
Да Grammar_Nazi, срочно прими таблетку Даля и клизму Ожегова.

Уязвимость, устранённая в LibreSSL 2.0.2, подтолкнула к добавлению вызова getrandom в ядро Linux
 
  6.89, arisu, 10:56, 20/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
да, павлуша окончательно деградировал: xasd «программером» считает. осталось теперь подвальных бомжей в интеллектуалы записать — и будет совсем хорошо.
 
3.60, Аноним, 11:50, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  –1 +/
И это хорошо Ибо на слово верить американскому дяде Сэму и его АНБ - нафиг надо... весь текст скрыт [показать]
 2.41, Grammar_Nazi, 00:20, 19/07/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  +/ 2.45, Xasd, 05:53, 19/07/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  –2 +/ 
  3.48, linux must _RIP__, 07:33, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  –1 +/
а что делать вновь запускаемым процессам или процессы использующие криптографию... весь текст скрыт [показать]
 
  4.51, Аноним, 08:31, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
Открывать dev urandom а потом уже всё остальное ... весь текст скрыт [показать]
 
  5.71, linux must _RIP__, 18:34, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  –1 +/
> Открывать /dev/urandom (а потом уже всё остальное)

а точно php/питон/чтотам придумаешь - будет знать что будет работать именно с криптографией? у него доступа в /dev/astral нету.. угадывать по звездам еще не научился.. Да и держать лишний открытый дискритор из расчета - а вдруг что-то потребуется - это уже перебор.

 
4.55, Аноним, 11:38, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +1 +/
Если процессу не хватило дескрипторов - там в общем случае даст дуба отнюдь не т... весь текст скрыт [показать]
 4.67, Crazy Alex, 15:19, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/ Умирать на старте, разумеется
 
  5.70, linux must _RIP__, 18:32, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  –1 +/
зачем умирать когда можно работать? Не считая того что вызов syscall сильно дешевле чем open + read + close...
 
  6.78, Аноним, 20:31, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
Только read считай - open только один раз, а close вообще не надо fd закро... весь текст скрыт [показать]
 
4.77, pavlinux, 20:26, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  –1 +/ > а что делать вновь запускаемым процессам? или процессы использующие криптографию должны
> запускаться строго из инит? лимит он такой.. в любой момент могли
> сказать ой.. при запуске очередного apache демона использующего ssl к примеру..

Проблема вроде банальная, а самом деле гиморрой сильнейший!

Решений несколько, одно глобальное - делать /dev/random частью псевдодевайсов: STDIN, STDOUT, STDERR и добавить STDRND.

image  
  5.90, Xasd, 16:24, 20/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
STDRND (плюс к SDTIN, STDOUT, STDERR) -- это было бы отличной идеей.

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

 
3.76, слоупокк, 20:09, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/ Открою страшную тайну: счётчик открытых файловых дескрипторов уменьшается при создании процесса.
 
  4.83, pavlinux, 05:59, 20/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
Это чо за талант? o_0 Мож увеличивается?
image
 
2.47, bOOster, 07:17, 19/07/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  –1 +/ 
  3.56, Аноним, 11:39, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
С чего бы это вдруг У нас тут сегодн чемпионат кто кого переламерит ... весь текст скрыт [показать]
 
  4.57, arisu, 11:42, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
> С чего бы это вдруг? У нас тут сегодн чемпионат "кто кого
> переламерит"?

нет, это просто написавший — идиот, который совершенно ничего (кроме названий) не знает про криптографию, prng для криптографии и реализацию /dev/random и /dev/urandom.

не стоит обращать внимания: это существо феерически тупое во всём, о чём говорить пытается.

 
  5.61, Аноним, 11:52, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
Капитан Очевидность спешит на помощь Ну спасибо, Кэп, я подозревал Но до по... весь текст скрыт [показать]
 
  6.64, arisu, 12:06, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
> до последнего момента надеялся что межушный нервный узел оппонента все-таки немного
> включится.

я пробовал и добрыми словами, и словесными пинками. неа, там военно-полевая облегчённая модель, умеет только базовые функции.

 
    8.75, arisu, 18:55, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +1 +/
всё-таки я не понимаю, как можно жить на свете с таким идиотизмом.
 
  9.85, bOOster, 09:02, 20/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
Я одного не понимаю, как ты живешь с генератором случайных чисел от таймера CPU.. Хотя да, заметны систематические излияния гамна по /dev/random :)
 
  10.86, bOOster, 09:06, 20/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
> Я одного не понимаю, как ты живешь с генератором случайных чисел от
> таймера CPU.. Хотя да, заметны систематические излияния гамна по /dev/random :)

u забыл... Но недалеко ушел

 
10.88, arisu, 10:42, 20/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/ молодец, чётко свой идиотизм демонстрируешь.
 9.87, bOOster, 09:42, 20/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/ А PRNG можешь засунуть себе в одно место и проворачивать... Регулярно будешь замечать PSEUDORANDOM мушку
 6.73, linux must _RIP__, 18:37, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  –1 +/ >> нет, это просто написавший — идиот, который совершенно ничего (кроме названий) не
>> знает про криптографию, prng для криптографии и реализацию /dev/random и /dev/urandom.
> Капитан Очевидность спешит на помощь! Ну спасибо, Кэп, я подозревал :). Но
> до последнего момента надеялся что межушный нервный узел оппонента все-таки немного
> включится.

да да. за одно объясни почему их аж 2 рандома :-) и вспомни дыры в реализации датчиков случайных чисел которые находили в ядре.. забыл? так гугл в помощь.. после таких дыр ты точно согласен использовать данные напрямую ?

 5.72, linux must _RIP__, 18:35, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  –1 +/ >> С чего бы это вдруг? У нас тут сегодн чемпионат "кто кого
>> переламерит"?
> нет, это просто написавший — идиот,

как легко оскорблять другие мальчик. выучил уже уроки? понахватался на улице словечек? или мама не научила хорошим манерам? хорошие же у тебя родители были..

 
1.22, Аноним, 19:24, 18/07/2014 [ответить] [смотреть все]     [к модератору]  +/
Ура Хорошая штука Нужно ... весь текст скрыт [показать]
  1.23, Сергей, 19:24, 18/07/2014 [ответить] [смотреть все]     [к модератору]  –3 +/
Может посмотрим по-другому, оказывается в линуксе могут существовать и выполнять... весь текст скрыт [показать]
 
  2.29, Аноним, 19:45, 18/07/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  +1 +/
 
  3.33, Сергей, 20:43, 18/07/2014 [^] [ответить] [смотреть все]     [к модератору]  –1 +/
А как же это В Linux гарантируется, что ответвлённые дочерние процессы будут и... весь текст скрыт [показать]
 
  4.36, Аноним, 21:02, 18/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +1 +/
для этого прародитель должен завершиться до этого PID всего ничего, их приходит... весь текст скрыт [показать]
 
2.44, Xasd, 04:58, 19/07/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  –5 +/
тоже мне синсация - два разных процесса с одинаковым pid -- существовать мо... весь текст скрыт [показать] [показать ветку]
 
 
 
Часть нити удалена модератором

4.62, Аноним, 12:03, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  
+/
А где он по крупному соврал PID файлы могут указывать на посторонний PID, если ... весь текст скрыт [показать]
 
  5.66, arisu, 12:10, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  –1 +/
вот если бы он остановился на констатации фактов и не писал свои идиотические домыслы…
 
5.79, Xasd, 21:22, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  
+/
> большинство скриптов писаны левой пяткой и реально могут прибить другой процесс, если его угораздит pid занять.

именно так.

вероятность этого события очень низкая -- но всё же эта вероятность есть -- до тех пор пока состояние процесса демона НЕ сохраняется в его родительском процессе (и оно как раз не сохраняется в sysvinit . сохраняется лишь pid-номер внутри текстового файла).

 
  6.80, Led, 22:25, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
>> большинство скриптов писаны левой пяткой и реально могут прибить другой процесс, если его угораздит pid занять.
> именно так.
> вероятность этого события очень низкая -- но всё же эта вероятность есть
> -- до тех пор пока состояние процесса демона НЕ сохраняется в
> его родительском процессе (и оно как раз не сохраняется в sysvinit
> . сохраняется лишь pid-номер внутри текстового файла).

Врёшь, ламерок. service stop смотри не только на $PID, но и на /proc/$PID/{comm,stat}. Так что совпадение только по $PID - не прокатывает.

 
  7.81, Xasd, 23:32, 19/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
> service stop смотрит не только на $PID, но и на /proc/$PID/{comm,stat}

все говно-bash-скрипты проверил? :-)

некоторые вообще по killall убивают (даже не глядя на pid).

да, sysvinit провоцирует делать плохие решения.

 
1.26, crypt, 19:38, 18/07/2014 [ответить] [смотреть все]    [к модератору]  +/ так вызов включили или только предложили включить?
 
  2.38, anonymous, 21:24, 18/07/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  –2 +/
 
  3.65, Аноним, 12:07, 19/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
Админь метлу или ящики - там попроще ... весь текст скрыт [показать]
 
2.52, Аноним, 09:17, 19/07/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  +/ 
1.50, Аноним, 08:21, 19/07/2014 [ответить] [смотреть все]     [к модератору]  +/
сарказм Почему бы не выпустить ещё один форк сарказм ... весь текст скрыт [показать]
  1.54, Аноним, 11:34, 19/07/2014 [ответить] [смотреть все]     [к модератору]  +/
Это называется горе от ума ... весь текст скрыт [показать]
 
Ваш комментарий  

Read more http://www.opennet.ru/opennews/art.shtml?num=40227

 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика