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