Как измерить безопасность программы или ОС


9 0

Благодаря вспышке от TechNet я наткнулся на следующую заметку одного из сотрудников Microsoft. Новый взгляд на уязвимости. Я не буду говорить, что кто-то кого-то обманывает и не хочу, чтобы сейчас здесь начались выяснения, кто безопаснее - Linux или Windows. В заметке приводятся цифры и цифры независимого источника, на которые Microsoft не влияла, поэтому просто смотрим и делаем выводы каждый для себя.

А вот о чем я хочу поговорить - так это о методе учета и аналитики безопасности. Как же такой авторитетный сайт, смог до этого времени вести аналитику по пакетам обновлений? Это же глупо и абсолютно пустые цифры. Всем ясно, что Microsoft для каждой дыры чаще всего выпускает отдельный патч. Тогда нужно было сравнивать патчи обновлений Linux с сервис паками Windows, тогда MS победила бы безоговорочно, потому что выпускает всего по три сервис пака для ОС.

Анализ уязвимостей вообще не благодарное дело, потому что нужно учитывать еще и качество каждой отдельной дыры. Если Linux закрыла 100 дыр, но все они требовали локальных прав администратора, а Windows всего 10, но все они могли использоваться удаленно и без прав, то Windows будет дырявее. То же самое и наоборот. Но и так считать тоже не правильно, потому что в этом случае победит OpenBSD, для которого было всего две удаленные дыры.

Локальные уязвимости тоже могут быть критичными, потому что они так же могут эксплуатироваться. Очень сложно оценивать дыры в софте ОС, ведь дистрибутив Linux может содержать гигабайты софта, так что теперь ему нести отвественность за всех? По идее, так и должно быть, ведь Microsoft несет ответственность за браузер, который является отдельной программой для ОС (тут споры неуместны, потому что браузер действительно отдельная программа, я не американский суд и мне лапшу на уши вешать не нужно).

А ведь есть еще время нахождения в небезопасном состоянии и это еще более важно. Как быстро производитель реагирует и выпускает обновление или сервис пак, а так же, как легко его установить. Чаще всего тут Microsoft оказывается оперативнее и не просто выпускает патчи для системы, но и делает все возможное, чтобы пользователи получили их оперативно. Имеются ввиду легальные пользователи, но и нелегальным тоже дают возможность залатать критические дыры. Linux тоже делает хорошие шаги в этом направлении, но как сравнить их и сделать сравнение точным?

А вот еще один параметр - процент использования уязвимой программы. Что если найдено 100 уязвимостей, но все они находяться в модуле или сервисе, котроый не используется пользователями вообще? Да, ошибки были, ну и что? Вот какая погода домашнему пользвоателю, что в Apache нашлась уязвимость? Его Linux так и не был уязвимым, потому что у него не запущен WEB сервис. Какая разница пользователю, работающему за Windows 2003, что в IIS нашли уязвимость, когда у него даже не установлен IIS? Этот параметр отследить и оценить его факт воздействия или критичности просто нереально.

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

Но еще более бессмысленное занятие - поливать грязью безопасность ОС, потому что это говорит о том, что человек не понимает самого смысла безопасности и не понимает, что ее невозможно измерить никакими цифрами. Цифры есть и они отображают какой-то факт измерения, но ничего более. Как я люблю говорить - это просто факт, но выводы каждый должен делать сам. Можно высказать свое мнение, но поливать грязью...

Владимир Мамыкин всего лишь показал цифры и сказал, что проблема у Ubuntu есть, а на него накинулись с какими-то обвинениями в безопасности Windows. Это не нужно делать. Цифры есть и их посчитал не Владимир, а значит есть проблема. Нужно проанализировать ее и сделать свои выводы разработчикам Ubuntu и бороться за надежность своей ОС. Пользователям ОС нужно бороться за надежность и безопасность своей любимой ОС, а не пытаться опустить или оскорбить безопасность конкурента.

Я не хочу защищать Владимира и я не его адвокат. Он тоже сделал ошибку, что пытается сделать выводы из цифр. Не нужно этого делать. Их нужно было указать, а читатель пусть сам делает выводы. Я могу привести цифры, в которых OpenBSD будет круче и Linux будет круче, но это не говорит, что Windows дырявая система. Она была дырявой до XP, но потом улучшается с каждым годом.

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


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Neandertalets

28 Ноября 2008

Вы правы. Но некоторое уточнение всё же укажу: цифры сами по себе тоже бессмлысленны и, кстати, по тем же самым причинам, что вы указали. Т.е. какой смысл в цифрах, если непонятна их смысловая нагрузка, т.е. совершено не указаны условия их сбора: какая часть ОС, какие приложения, сервисы и пр - как вы написали.
Иначе можно скомпоновать любую цивру, подогнав под требуемые результаты.


Михаил Фленов

28 Ноября 2008

Конечно же, цифры должны быть описаны и должно быть описано, как они собраны и как они получены. Иначе от них толку действительно вообще никакого и нельзя будет сделать вывод.


Neandertalets

30 Ноября 2008

Нашел на Хакере очень интересную статью про безопасность. У В.Мамыкина я про неё отписался, но если вы туда не заглянетеи не увидите, повторюсь здесь. Мне кажется, что всё, сказанное вами, более детально описанное и дополненное, так указано. Статья очень понравилась - потрачу занятие, но студентам прочитаю дословно. :)
http://www.xakep.ru/post/45970/default.asp


olegmaster

01 Декабря 2008

математически точно измерить безопасность программ и операционок невозможно, потому что в понятие безопасность входит много субъекттвных моментов. но можно делать для себя выводы по статистике уязвимостей и реализаций эксплоитов/вирусов. причем интересна та статистика, где уязвимости разнесены по категориям. мне понравилось как это реализовано на secunia.com
еще можно прислушиваться к мнениям экспертов. у того же Касперски в "Хакере" была статья про сравнение безопасности OpenBSD и Windows 2003 Server. там он сравнивает безопасность по штук 15-ти основных параметров. но эти параметры касались ядра системы.
вообще помимо ядра дистрибутив включает в себя некоторое множество системных библиотек и утилит. в gentoo linux например, такое множество содержится в виртуальном пакете system, и содержит такие пакеты как coreutils, binutils, portage, glibc, linux-headers, gcc и еще штук 50 всяких. каждая дырка в прогах из этих пакетов, идет в зачет безопасности дистра.
еще  немаловажную роль играет скорость закрытия дыр. в случае source-based дистра, теоретически дыру можно исправить самому или попросить компетентных товарищей, а не ждать пока разработчик сподобится залатать брешь.
сразу хочу заметить, что безопасность системы/проги не зависит от модели разработки (opensource или проприетарной), а определяется уровнем программиста. это просто совпадение, что openbsd свободна и в тоже время в ней найдено с десяток уязвимостей, только 2 из которых критические. ее разработчики изначально ставили себе целью создать самую безопасную операционку и у них это с успехом получается)


Neandertalets

08 Декабря 2008

Не согласен, что так просто: только от квалификации программиста. Но даже если ограничиваться только этим, то есть ещё возможность использовать ранее отлаженный код, или создавать заново, если использовать отлаженный невозможно по лицензионым ограничениям, а, значит, вероятность написать с ошибкой будет выше. Это как раз разница между фри/оперсорца и закрытого ПО: в возможности свобойдного обмена идеями и их реализациями.
Кроме это не может быть случайностью, что OpenBSD является одной из самых защищённых. По крайней мере вы же сами одну из причин указали: "ее разработчики изначально ставили себе целью создать самую безопасную операционку и у них это с успехом получается". А практически всё закрытое ПО создаётся для получения денег, а не для защищённости (искючим чисто военные и узкоспециализированные разработки): уже такое распредление приоритетов указывает, что изначальная ориентация на безопасность, будет более эффективна, чем ориентация на деньги.


Михаил Фленов

08 Декабря 2008

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


olegmaster

08 Декабря 2008

Neandertalets,

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

Выше чего? Закрытого кода до отладки? Вероятность в таком случае будет одинакова при равной квалификации опенсорщиков и проприетарщиков. После отладки? Тогда нужно учитывать, что и заново написанный открытый код будет со временем отлажен. Теряем время? Нет. И вот почему. Допустим, вчера суперотлаженный код имел 5 условных единиц безопасности. Сегодня требования безопасности изменились настолько, что по современным меркам только 6 у.е.б. считается приемлемым и без кардинального рефакторинга архитектуры вчерашняя программа не может считаться безопасной. Встает дилемма, что делать? Перелопачивать старое или написать заново? По времени то-на-то и выходит.
Требования к безопасности растут не по дням, а по часам потому, что хакерская мысль не стоит на месте, а развивается очень динамично. В информационных войнах побеждает тот, кто думает быстрее, чем читает чужой код, а программирует быстрее, чем думает.
Кроме это не может быть случайностью, что OpenBSD является одной из самых защищённых.

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

Согласен. Но исключить еще придется разработки для самореализации или  удовлетворения программерских амбиций (браузер Opera?) и программирование ради спорта и искусства (различные demo и т.п.)


Витальчоус

25 Сентября 2009

Совершенно верно изложено у Михаила. Лучше не выяснять защищённость того или иного продукта, а наоборот - повышать степень его защищённости, а также указывать разработчикам на погрешности. Успехов всем.
Отдельное спасибо Михаилу за замечательно изложенный материал.


Александр Браславец

09 Декабря 2009

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


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

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

Пишите мне