LINUX.ORG.RU

Найдено около 1200 уязвимостей в debian.

 , mayhem,


1

2

Наткнулся на интересное почтовое сообщение от Alexandre Rebert в рассылке Debian'а. Думаю исследование Alexandre Rebert'a даёт представление об действительном положении вещей с безопасностью программного обеспечения.

Оригинал сообщения находится по ссылке. Здесь я приведу свой, не полный, перевод:

Привет,

я занимаюсь поиском уязвимостей в программном обеспечении в Carnegie Mellon University. Моя рабочая группа нашла тысячи необработанных исключений в бинарных пакетах из репозиториев debian wheezy. Don Armstrong (owner@bugs.debian.org) посоветовал нам связаться с вами, прежде чем заполнить около 1200 отчётов об ошибках.

Ошибки были найдены с помощью Mayhem, - автоматической системой поиска ошибок, разрабатываемой в течении нескольких лет в исследовательской лаборатории David Brumley. Mayhem'ом были проверены почти все бинарные файлы (~23000) из репозитория Debian Wheezy.

Наша цель заполнить отчёты об ошибках как можно полнее. Чтобы уменьшить кол-во дубликатов, мы сообщаем только об одном необработанном исключении в каждом бинарном файле, и максимум о пяти в одном пакете. Таким образом отчёт содержит около 1200 уязвимостей.

>>> Оригинал

★★★

Проверено: anonymous_incognito ()
Последнее исправление: anonymous_incognito (всего исправлений: 3)
Ответ на: комментарий от drBatty

а багов там меньше из-за магии или другого колдунства?

Икона Столмана в ascii.

cipher ★★★★★
()
Последнее исправление: cipher (всего исправлений: 1)
Ответ на: комментарий от sjinks

segfault — правильное средство завершения программы? Серьёзно?

Если выбирать между выполнением произвольного кода и segfault, многие системы безопасности(тот же PaX) обычно предпочитают segfault

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

а багов там меньше из-за магии или другого колдунства?

Зачастую баги исправляют именно в новых версиях которых в стабильном slowwwwwbianе увы нету.

И да ты прав сырцы то одни и те же… А вот патчи, toolchain и параметры с которыми софт собирают разные.

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

Ждём выхода 7.2

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

Если это просто какой-нибудь безобидный uncaught exception - это не уязвимость, это просто факап.

Эти «просто факапы» могут иметь и очень серьезные последствия, если ПО выполняет очень серьезную работу. Например компьютер, управляющий роботом на удаленной планете. Исправление ошибки и её последствий будет недешево стоить в плане траты времени и других ресурсов.

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

Зачастую баги исправляют именно в новых версиях которых в стабильном slowwwwwbianе увы нету.

И да ты прав сырцы то одни и те же… А вот патчи, toolchain и параметры с которыми софт собирают разные.

хорошо, вы меня убедили. Да, в debian 100500 дыр, да это РЕШЕТО.

А почему эти сервера никто не ломает?

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

если ПО выполняет очень серьезную работу. Например компьютер, управляющий роботом на удаленной планете

а кто помешал тебе перед отправкой робота проверить все пакеты(в роботе), и разобраться со всеми «уязвимостями»? Ну или заменить эти 5% на другие пакеты? Ну или их вообще удалить?

drBatty ★★
()

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

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

Неправильный вопрос. Попробуй ещё раз.

в чём вопрос неправилен?

(твой ответ неверен потому, что ломают IRL всё, что только можно сломать).

drBatty ★★
()

лажа какая-то.

не каждый сегфолт - уязвимость

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

и где эксплоиты-то?

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

Угум, ты ресет еще про убунту вспомни... Ой... я ведь почти забыл, что большая часть пакетов тырится из сида... Но Юнити своей героической тушкой непременно закрывает все дыры!

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

Отказ в обслуживании - тоже формально уязвимость. Только одно дело когда он найден где-нибудь в ядре или апаче, например, а другой - когда в пасьянсе солитер или маджонге.

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

Озвучьте альтернативы.

exit() или уж abort() на крайний случай. segfault — следствие ошибки в коде (например, программа полезла читать неинициализированные данные или то же переполнение буфера).

segfault — средство завершение программы, но не со стороны программы, а со стороны операционной системы.

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

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

Отказ в обслуживании - тоже формально уязвимость.

не всякий crash == DoS, всё-таки

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

в чём вопрос неправилен?

(твой ответ неверен потому, что ломают IRL всё, что только можно сломать).

Ломают все в чем находят дыры. А твой вопрос не верен потому как на серверах не исключительно один единственный дебиан.

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

А твой вопрос не верен потому как на серверах не исключительно один единственный дебиан.

а я спрашивал исключительно про сервера на дебиане. Они есть, и их довольно много.

drBatty ★★
()

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

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

exit() или уж abort()

это _обработка_ ошибки. А она, по условию, невозможна.

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

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

Приложение на ровном месте не сегфолтнется. Опустим то, что компилятор соптимизирует НЁХ. Правильное решение в этом случае — abort(). Сегфолт же случится, если программа полезет вполнять неизвестно что, а ОС её остановит.

Грубо говоря, сегфолт — удар по рукам (или в челюсть) со стороны операционной системы при попытке обращения к недоступным участкам памяти. То есть либо логическая ошибка (что чаще), либо сбой оборудования (что реже).

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

а я спрашивал исключительно про сервера на дебиане. Они есть, и их довольно много.

define «довольно много»

И да я сужу по патчам для их ядра. Так вот даже там они умудряются слоупочить причем сразу на несколько версий от текущего стабильного аппстрима.

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

многие системы безопасности(тот же PaX) обычно предпочитают segfault

Да, но это завершение программы не средствами самой программы.

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

Если программа не может обработать исключительную ситуацию, она должна делать авост. Если же она (точнее, программист) надеется на авось, то программа в лучшем случае будет завершена по сигналу операционной системой — что говорит об ошибке в программе.

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

Грубо говоря, сегфолт — удар по рукам (или в челюсть) со стороны операционной системы при попытке обращения к недоступным участкам памяти. То есть либо логическая ошибка (что чаще), либо сбой оборудования (что реже).

это всё в теории. На практике чаще сбой оборудования. Кроме того, программа всегда может сама нарваться на «удар в челюсть», и это иногда лучший исход, чем abort() (потому-что abort() это тоже вход в ОС, и в принципе, злоумышленник может атаковать и через этот вход. А вот в случае сегфолта возможностей атаки меньше, ибо система считает ВСЕ данные прерванной программой немеющими смысла).

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

а кто помешал тебе перед отправкой робота проверить все пакеты(в роботе), и разобраться со всеми «уязвимостями»?

А мейнтейнеры на что?

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

define «довольно много»

я тебе статистическое бюро что-ли? Погугли, такую статистику я встречал когда-то.

И да я сужу по патчам для их ядра. Так вот даже там они умудряются слоупочить причем сразу на несколько версий от текущего стабильного аппстрима.

что значит «слоупочить»? Не засовывать новые, непроверенные фишки?

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

а кто помешал тебе перед отправкой робота проверить все пакеты(в роботе), и разобраться со всеми «уязвимостями»?

А мейнтейнеры на что?

ну вот Патрег всё проверяет. Что же ты слаку не юзаешь? Ага, пакетов заметно меньше 23000.

Если ты такой умный, то посмотри эти 1200 багов, и отправь 1200 багрепортов разрабам этого говнокода. А если ты недоволен именно дебом, то проверь свой любимый дистр.

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

я тебе статистическое бюро что-ли? Погугли, такую статистику я встречал когда-то.

Error «довольно много» is undefined!

что значит «слоупочить»? Не засовывать новые, непроверенные фишки?

«слоупочить» в данном случае означает продолжать сидеть на версии на несколько номеров меньшей чем текущая стабильная по мнению kernel.org

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

лоровские дебианщики показали своё истинное лицо. вначале они смеются над всеми и утверждают, что их система стабильна и проверяется годами. когда же появляется сабж, они начинают кричать, что в других дистрибутивах ещё хуже

Где сравнение с другими дистрами? Почему этот же тест не прогнали на других дистрах? Боятся?

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

Падения в программном обеспечении в составе бинарных пакетов Debian — это проблема безопасности ОС Debian; или нет? Вы хотите внести конструктивную точность в терминологию? Если читать по-английски, то чаще всего высвечивается segmentation fault.

Infra_HDC ★★★★★
()

Про решето уже писали?

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

ну вот Патрег всё проверяет.

Ага, перечитывает весь код. Это все пустая болтовня фанатика Патрика. Докажи. Прогони этот же тест на Слаке аналогичной конфигурации.

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

потому-что abort() это тоже вход в ОС, и в принципе, злоумышленник может атаковать и через этот вход

Так сегфолт не лучше в этом плане — это исключение #GP со стороны процессора, и оно тоже приведёт к выполнению системного кода.

Но по ходу мы говорим о разных исключениях.

Я имею в виду ситуации обработки, скажем так, пользовательских исключений.

Грубо говоря,

char s[80];
strcpy(s, user_input);

Можно полагаться на то, что user_input короче 80 символов (и потенциально сегфолтиться, когда это не так), либо проверять длину user_input и выполнять strcpy() в случае коротких строк или возвращать NULL/выполнять авост в противном случае.

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

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

Ты такой смешной. Как будто бы в новых пакетах ничего такого нет. Это опенсорс, детка. Инжой.

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

Error «довольно много» is undefined!

если не веришь мне, возьми и опровергни. Я не против.

«слоупочить» в данном случае означает продолжать сидеть на версии на несколько номеров меньшей чем текущая стабильная по мнению kernel.org

и что в этом плохого? Кстати, на kernel.org несколько больше _одной_ стабильной версии. Как раз для «слоупоков».

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

Где сравнение с другими дистрами? Почему этот же тест не прогнали на других дистрах? Боятся?

такие автоматические тестилки долго работают. Я думаю, остальные дистрибутивы типа арча до сих пор проверяются.

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

если не веришь мне, возьми и опровергни. Я не против.

Не я начал не мне и опровергать.

и что в этом плохого? Кстати, на kernel.org несколько больше _одной_ стабильной версии. Как раз для «слоупоков».

На kernel.org одна стабильная текущей ветки еще несколько стабильных прошлых веток и еще куча всякого хлама. И разговор был о стабильной текущей ветки.

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

такие автоматические тестилки долго работают. Я думаю, остальные дистрибутивы типа арча до сих пор проверяются.

А мы никуда не торопимся. Запускай на Слаке давай. Хватит балаболить.

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

Ты хочешь, что б товарищ поседел что ли?

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

Падения в программном обеспечении в составе бинарных пакетов Debian — это проблема безопасности ОС Debian; или нет?

да. Проблема только в том, что не доказано, что в других дистрах подобных проблем нет. Да и предпосылок к этому нет, разве что какое-то колдунство.

Вы хотите внести конструктивную точность в терминологию? Если читать по-английски, то чаще всего высвечивается segmentation fault.

potentially

перевод нужен этого слова? Факт остаётся фактом: если данные программы запускать, то никакого segmentation fault НЕ наблюдается. Ошибка сегментирования _может_ быть, но когда и как — непонятно. И даже если и _может_, то непонятно, является ли эта ошибка уязвимостью. (она может и НЕ быть уязвимостью, например в случае взаимно противоречивых опций программы. Это вполне нормальная ситуация, которая часто и багом-то не является).

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

я думал

Ты слишком высокого о себе мнения, хипстар.

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

Прогони этот же тест на Слаке аналогичной конфигурации.

во первых — лень. Во вторых — в слаке пакетов меньше, и намного. В третьих, а что я этим докажу? Ну да, некоторые программисты забивают болт на некоторые потенциальные проблемы. Ну и что?

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

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

с этим я и не спорил. Авост это тоже обработка ошибки.

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

во первых — лень. Во вторых — в слаке пакетов меньше, и намного. В третьих, а что я этим докажу? Ну да, некоторые программисты забивают болт на некоторые потенциальные проблемы. Ну и что?

Ну а чего тогда машешь тут фаллосом?

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