Открытый код, исследование в теории
Тема открытый код против закрытых исходников – не иссякает: вот, например, в работе The Mathematics of Obscurity: On the Trustworthiness of Open Source (найдено в блоге Алексея Лукацкого) авторы, построив некую модель жизненного цикла программного кода, приходят к выводу, что открытый исходный код не улучшает “надёжность и безопасность”. Грубо говоря, уязвимости всё равно найти можно, несмотря на то, что код (теоретически) проверяют многие разработчики. А вот в закрытом коде – найти уязвимости может быть сложнее (ну, выходит, именно из-за того, что такой код сложнее анализировать).
Вообще, по-моему, понятно, что сама по себе модель распространения исходников мало влияет на наличие/отсутствие уязвимостей. Дыры есть везде. Но вот аудит кода закрытые исходники затрудняют (кстати, аудит – никак не эквивалентен попытке сломать ПО). Кроме того, аудит затрудняют и всякие более мягкие ограничения: когда, например, исходные коды готовы “показать”, но самостоятельно собрать из них ПО для своих нужд – не позволяют. Поэтому возникает одна дополнительная и существенная неприятность с закрытыми исходниками: сложнее предсказать, когда и как используемая программная система будет скомпрометирована.
Адрес записки: https://dxdt.ru/2010/12/19/3456/
Похожие записки:
- Новые атаки на SHA-256 (SHA-2): технические пояснения
- Интернет-протокол "дымовой завесы"
- Статья о квантовых вычислениях и постквантовой криптографии
- Перенос статей "Википедии"
- "Яндекс.Браузер" и российские сертификаты TLS в вебе
- Сайт OpenSSL и сегментация интернетов
- "Авторизованный трафик" и будущее Интернета
- Статья про защиту DNS-доступа
- Геопривязка в персональных цифровых финансах
- Шифр "Кузнечик" на ассемблере arm64/AArch64 со 128-битными инструкциями
- "Инспекция" трафика с сохранением конфиденциальности
Комментарии читателей блога: 7
1. 19th December 2010, 12:18 // Читатель Безумный Программи… написал:
Вообще-то кое-какая корреляция между количеством багов и открытостью кода наблюдается: http://eax.me/freebsd-vs-linux/ Но дело, оказывается, еще и в количестве кода.
2. 19th December 2010, 21:26 // Читатель chaotty написал:
Ссылочка на статью кривая.
3. 20th December 2010, 00:29 // Читатель sarin написал:
вообще вести поиск уязвимостей анализируя код безусловно можно. другое дело, что это лишь один из многих путей. даже при наличии кода далеко не всегда наиболее эффективный.
4. 20th December 2010, 10:47 // Читатель kaschey написал:
Вопрос в том исследует ли кто-то открытое ПО?
Если уж свой-то код многие программеры не читают, то чужой и подавно. Возьми рядового программиста, заставь пересмотреть 1000 строк своего кода, он ведь не меньше 10 багов найдет (если ты скажешь, что уже их нашёл и пригрозишь оставить без премии :-) ).
Вот и открытые исходники в каких-то местах тысячи человек просмотрели, а в каких-то ни одного!
Хотя нет. Те кто дыры ищет как раз всё внимательно изучили, там, где им интересно и промолчали…
Но, по моему мнению, на уязвимости больше влияет не открытость кода, а (первое) язык программирования и (второе) стандарты разработки. На С/С++ переполнения буфера – головная боль. На Дельфи дыру с переполнением надо специально делать. А на C# и специально не сделаешь (по крайней мере незаметно и без “тонны” кода). Хотя и на С++ можно надежные программы создавать, если классы доступа писать и функции-обертки, а не по “ассемблеровски” буфера выделять и “память гонять по указателям”.
5. 20th December 2010, 10:58 // Александр Венедюхин:
(Поправил ссылку.)
6. 21st December 2010, 00:58 // Читатель зашел в гости написал:
к комментариям kaschey-я хотел бы добавить, что программисты зачастую работают с кодом, который был написан лет 10-20 назад, и более. Никто в таких древностях “дыры” искать и не будет, пока что-либо не сломается и клиент не пожалуется.
7. 21st December 2010, 19:50 // Читатель jno написал:
> программисты зачастую работают с кодом,
> который был написан лет 10-20 назад, и более
даже исльно более!
я тут как-то и 40-летний код видел :)