LINUX.ORG.RU

Ошибка обработки IPv6-пакетов в OpenBSD серьезнее, чем казалась


0

0

13 марта CoreSecurity Tech опубликовали историю переписки между ними и разработчиками OpenBSD. Согласно ей, ошибка при обработке специально сформированных IPv6-пакетов (об этом уже сообщали на LOR) может привести не только к отказу в обслуживании, но и дает возможность удаленно выполнять код в режиме ядра, т.е привести к полной удаленной компрометации системы. Хакеры из CoreLabs предоставили разработчикам PoC-эксплоит в качестве доказательства.

В связи с чем Theo de Raadt отметил эту уязвимость как "очень важную" (изначально это был bug, а не vulnerability) и рекомендовал всем как можно скорее пропатчить свои системы.

Это - вторая за 10 лет удаленная уязвимость в OpenBSD, установленной по умолчанию.

>>> Официальный advisory от Core Labs

★★

Проверено: ivlad ()

У них на сайте: "Only two remote holes in the default install, in more than 10 years!" :)

dotcoder ★★★★★
()

это уже какой раз доказывает - никакой C-эксперт не в состоянии писать бездырочный код.

Cyclon для OS java-like для userspace

когда уже все необразованные идиоты отомрут ?

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

> когда уже все необразованные идиоты отомрут ?

Начните с себя, zort.

valeri_ufo
()

соляра с ее ентерпрайз-класс пинг оф дес нервно-нервно курит в сторонке :)

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

>это уже какой раз доказывает - никакой C-эксперт не в состоянии писать бездырочный код.

>Cyclon для OS java-like для userspace

>когда уже все необразованные идиоты отомрут ?

Вам не хватает места? Впрочем, это не вопрос...

Одна ошибка в jvm, и вашей системе финиш. А уж кто и как пишут jvm, лучше даже не задумываться. На чем пишут, сами догадаетесь или подсказать? Просто _пока_ эта область не очень популярна, т.к. java очень ограниченный язык, и соответствующие эксплоиты, выполняющие код, написать заметно сложнее. Но обход защиты для записи произвольных файлов - сколько угодно... Эта ошибка примерно сопоставима с записью в /etc/shadow в Unix - давно вы подобную уязвимость видели (если вообще видели из-за малости лет)?

>zort (*) (14.03.2007 15:25:15)

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

если уж брать совсем давнишние времена, то надо говорить о /etc/passwd :)

gr_buza ★★★★
()

как начали что-то писать так и дырок понаделали :)

alt0v14 ★★★
()

KAME IPv6 он же вроде один на всех, как там с другими BSD ?

anonymous
()

MINIX3 победит.

> Это уже какой раз доказывает - никакой C-эксперт не в состоянии писать бездырочный код.

Микроядерность нам поможет. Жаль только MINIX3 под BSD-подобной лицензией, хочется GPL.

Кстати, openbsd.org уже обновили, хе-хе.

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

> Одна ошибка в jvm, и вашей системе финиш.

Что, прямо так сразу - всей системе? Не chroot с JVM, а всей=всей?

> Но обход защиты для записи произвольных файлов - сколько угодно...

Есть существенная разница между выполнением произвольного (машинного!) кода
и записью файла.

> Эта ошибка примерно сопоставима с записью в /etc/shadow в Unix

Неудачный пример - JVM не запускаются с правами root:
[user@note ~]$ ls -l /etc/shadow
-r-------- 1 root root 1053 Feb 23 09:09 /etc/shadow

Я не любитель Java, но в технологии VM есть и положительные стороны.

tailgunner ★★★★★
()

Changes by: deraadt@cvs.openbsd.org 2007/03/13 16:39:48
Modified files:
. : index.html
Log message:
many years...

anonymous
()
Ответ на: MINIX3 победит. от Camel

> Жаль только MINIX3 под BSD-подобной лицензией, хочется GPL.

Форкни под GPL-ом, кто мешает то? :)

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

>> Одна ошибка в jvm, и вашей системе финиш.

>Что, прямо так сразу - всей системе? Не chroot с JVM, а всей=всей?

НЕ вырывайте из контекста - аффтар предложил написать/использовать ОС на java - поэтому да, всей системе.

>> Но обход защиты для записи произвольных файлов - сколько угодно...

>Есть существенная разница между выполнением произвольного (машинного!) кода и записью файла.

ВАм хочется впустую потратить время в споре? В jvm _есть_ и немало ошибок - пока их используют только для перезаписи произвольных файлов, вскоре будут и для выполнения кода. Это не праздные спекуляции о том, что хорошо, а что плохо - это факт.

>> Эта ошибка примерно сопоставима с записью в /etc/shadow в Unix

>Неудачный пример - JVM не запускаются с правами root: >[user@note ~]$ ls -l /etc/shadow >-r-------- 1 root root 1053 Feb 23 09:09 /etc/shadow

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

>Я не любитель Java, но в технологии VM есть и положительные стороны.

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

>tailgunner * (*) (14.03.2007 15:58:36)

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

значит что то Cyclon'о подобное. под названиями языков я понимаю подходы и технологии, а не реализации.

кстати он не совсем помер - челы из гарварда додумывают как приделать к нему concurrency и полиморфизм.

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

> НЕ вырывайте из контекста - аффтар предложил написать/использовать ОС на java

Я процитирую автора: "Cyclon для OS java-like для userspace". Где предложение писать ОС на Java?

> Мне кажется, что вам что-то мешает читать, что-то в глазах...

:)

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

> кстати он не совсем помер

В списке рассылки сказли, что это был исследовательский проект, он завершен и его авторы занимаются другими делами. Хотя там же помянули нечто (пока несуществующее) под названием Tempest.

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

это вы выдираете из контекста - для ос я предлагал безопасный вариант С - Cyclon или подобный.

а безVMныую джаву (типа GCJ или excelsior) для прикладных программ.

к вашему сведенью у некоторых jvm реализаций доказана type safety

ЗЫ микроядерность никак не может помочь от дырок в прикладном софте, которых гораздо больше чем в ОS

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

жалко если так. нужно извлечь из него уроки.

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

форматрование пропало, а запятую я забыл.

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

>> НЕ вырывайте из контекста - аффтар предложил написать/использовать ОС на java

>Я процитирую автора: "Cyclon для OS java-like для userspace". Где предложение писать ОС на Java?

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

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

Cyclon это не виртуальная машина. Работавшая реализация работала поверх gcc.

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

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

>это вы выдираете из контекста - для ос я предлагал безопасный вариант С - Cyclon или подобный.

Это не безопасный вариант С - это совершенно другой язык, исполняемый (компилируемый в байт-код, а затем исполняемый) в виртуальной машине. Эта машина должна уметь намного больше, чем jvm, которая _уже_ содержит кучу дыр. JIT компиляция здесь ровным счетем ничего не меняет - единственное, что дает такая ОС - кучу проблем с производительностью и отсутствие _тривиального_ способа делать ошибки, все остальное по-прежнему в силе.

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

>кстати ученые почти умеют писать абсолютно безопасные компиляторы и виртуальные машины.

Вы забыли добавить: "для языков, ограниченных настолько, что на них могут создавать только 'hello, world.'"

>zort (*) (14.03.2007 16:32:25)

rtc ★★
()

Да уж, в OpenBSD начали насиловать IPv6 ещё до официального внедрения (а когда оно?)

Theo за дырявую систему - незачет.

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

>Cyclone - это не виртуальная машина, а "родной" код.

>http://en.wikipedia.org/wiki/Cyclone_programming_language

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

Этот язык компилируется в свой байт-код, котороый затем "оптимизируется" и получается родной код. Кстати, это чудо даже сборкой мусора занимается - типичная jvm.

>tailgunner * (*) (14.03.2007 16:32:41)

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

А вообще хорошо, что для IPv6 нашли достойное применение.

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

>Что, прямо так сразу - всей системе? Не chroot с JVM, а всей=всей?

Падение сервера приложений мало отличается по эффекту от падения самой ОС как по скорости восстановления так и по пинкам от руководства :)

Даже банальный jboss +liferay стартует по времени как солярис (!)

>Я не любитель Java, но в технологии VM есть и положительные стороны.

Приведу банальный пример: есть класс java.lang.Error -любой его инстанс = остановка виртуальной машины.Он не перехватывается ничем. А теперь попробуй сделать контекстный поиск по throw new Error в исходниках jdk -результатов будет больше чем слов "fuck" в спертых сорцах винды.

signal
()

а на сайте openbsd.org уже поменяли на главной странице сообщение "Only two remote holes in the default install, in more than 10 years!" =)

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

>ты ссылку на википедию прочитал ? где там jit ?

Cyclone компилируется в свой диалект, который затем оптимизируется и/или проводится type-safe проверки и т.п. Это и есть jit.

Впрочем, для ограниченных знанием того, что jit - это преобразование на этапе запуска, описанное выше не является just-in-time компиляцией, но сути это не меняет. Это абсолютно тоже самое, что и java+javac+gcj.

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

>Этот язык компилируется в свой байт-код, котороый затем "оптимизируется" и получается родной код.

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

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

> Этот язык компилируется в свой байт-код, котороый затем "оптимизируется" и получается родной код

То есть вы согласны, что код выполняется не на виртуальной машине, а на голом железе? А насчет что во что компилируется - это вопрос философский. GCC компилирует сначала в GIMPLE (это такой набор команд абстрактной машины), LLVM вообще в свой байт код. Кстати, текущая реализация Cyclone компилирует в Си.

> это чудо даже сборкой мусора занимается - типичная jvm

Во-первых, он занимается сборкой мусора только если ему скажут это делать (используя сборщик Boehm, доступный и для обычного Си). Во-вторых, не всё, что занимается сборкой мусора - сразу становится JVM.

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

>в cyclone был pointer arithmetic.

Через fat pointers? Это же костыль! Как сделать с таким указателем realloc, как создать виртуальное отображение различных физических страниц? Каждый раз менять встроенный размер? Так этого нельзя делать в run-time.

>zort (*) (14.03.2007 16:51:20)

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

> Падение сервера приложений мало отличается по эффекту от падения самой ОС

...в том случае, когда у тебя на машине выполняется _единственное_ серверное приложение.

> есть класс java.lang.Error -любой его инстанс = остановка виртуальной машины.Он не перехватывается ничем. А теперь попробуй сделать контекстный поиск по throw new Error

И? Что это должно доказать?

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

>...в том случае, когда у тебя на машине выполняется _единственное_ >серверное приложение.

Практически всегда j2ee as является единственным серверным приложением на одном физическом сервере.

>И? Что это должно доказать?

Что есть >100 только предусмотренных причин остановки jwm. Не считая багов так сказать :)

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

> java-like для userspace

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

>когда уже все необразованные идиоты отомрут ?

начни с себя. чисти этот мир

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

>>Этот язык компилируется в свой байт-код, котороый затем "оптимизируется" и получается родной код.

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

Вы совсем не видите разницы? Печально.

Привожу аналогию с jvm.

Пишется код на другом языке (даже похожем на С), почле чего запускается система, которая превращает этот код в некий другой код. который предполагается безопасным, т.к. система проверки написана без ошибок. Затем этот новый код скармливается компилятору в машинный код.

JVM: код (очень похожий на C++) компилируется в некий код, после чего на него натравливается система, которая проверяет, что он корректен, производит оптимизации и запускает. Запущенная система предполагается безопасной, т.к. она написана без ошибок. Можно также запустить другому компилятору, который преобразует его в машинный код.

Очень надеюсь, что и вы, и tailgunner прочтете это и поймете, что, где и насколько jvm/jit и этот подход схожи, а следовательно и схожи их ошибки.

>zort (*) (14.03.2007 16:54:18)

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

> Практически всегда j2ee as является единственным серверным приложением на одном физическом сервере.

Это хорошо, что ты сказал "практически". Значит, не всегда. Ну а теперь подумай, что проще аварийно перезапустить - рухнувшую ОС (возможно, запортившую при этом ФС) или JVM.

> есть >100 только предусмотренных причин остановки jwm. Не считая багов так сказать :)

И что это доказывает? Кстати, fgrep panic\(\" по исходникам ядра дает 1069 вызовов panic(). Это не считая багов. И что?

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

>Запущенная система предполагается безопасной, т.к. она написана без ошибок. Можно также запустить другому компилятору, который преобразует его в машинный код.

Запущенная система предполагается безопасной, т.к. она была проверена системой, написанной без ошибок.

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

Ты описал процесс компиляции. ЛЮБОЙ компиляции. В т.ч. и компиляции Си.

Хотя непонятно, где ты взял это:

> Пишется код на другом языке (даже похожем на С), почле чего запускается система, которая превращает этот код в некий другой код. который предполагается безопасным

Не подкинешь ли ссылочку? Особенно интересует "другой код. который предполагается безопасным"

> Очень надеюсь, что и вы, и tailgunner прочтете это и поймете, что, где и насколько jvm/jit и этот подход схожи

Разница в том, что на выходе компилятора Cyclone получается бинарь с машинным кодом, который не требует для своего выполнения JVM.

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

>Это хорошо, что ты сказал "практически". Значит, не всегда.

Я это сказал потому что все нормальные люди не имеющие под рукой какой-нить SunFire 15000 ставят j2ee as на выделенный сервер, где больше ничего не крутится. Исключение составляют либо бедные дети ,ставящие на эту же машину еще и базу, и хостеры - но это разговор отдельный и боюсь уже вне моей компетенции :)

> Ну а теперь подумай, что проще аварийно перезапустить - рухнувшую ОС >(возможно, запортившую при этом ФС) или JVM.

Слет j2ee-сервера починить ничуть не легче если ты про это. Голая jwm не кому не нужна.

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

>без этого прекрасно можно написать ip стек в котором дырку нашли.

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

>zort (*) (14.03.2007 17:19:48)

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

> Запущенная система предполагается безопасной, т.к. она была проверена системой, написанной без ошибок.

А вот это - вызывающе неверная. Система, написанная на Cyclone, не считается безопасной - не потому что была чем-то проверена, ни по другим причинам. Она просто предотвращает некоторые классы ошибок с помощью проверок времени компиляции, а некоторые - с помощью проверко времени исполнения.

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

>И что это доказывает? Кстати, fgrep panic\(\" по исходникам ядра дает >1069 вызовов panic(). Это не считая багов. И что?

Только то что обзывание джавы безопасным языком по сравнению с си лишь плод пеара :)

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