Открытый код, исследование в теории

Тема открытый код против закрытых исходников – не иссякает: вот, например, в работе The Mathematics of Obscurity: On the Trustworthiness of Open Source (найдено в блоге Алексея Лукацкого) авторы, построив некую модель жизненного цикла программного кода, приходят к выводу, что открытый исходный код не улучшает “надёжность и безопасность”. Грубо говоря, уязвимости всё равно найти можно, несмотря на то, что код (теоретически) проверяют многие разработчики. А вот в закрытом коде – найти уязвимости может быть сложнее (ну, выходит, именно из-за того, что такой код сложнее анализировать).

Вообще, по-моему, понятно, что сама по себе модель распространения исходников мало влияет на наличие/отсутствие уязвимостей. Дыры есть везде. Но вот аудит кода закрытые исходники затрудняют (кстати, аудит – никак не эквивалентен попытке сломать ПО). Кроме того, аудит затрудняют и всякие более мягкие ограничения: когда, например, исходные коды готовы “показать”, но самостоятельно собрать из них ПО для своих нужд – не позволяют. Поэтому возникает одна дополнительная и существенная неприятность с закрытыми исходниками: сложнее предсказать, когда и как используемая программная система будет скомпрометирована.

()

Похожие записки:



Далее - мнения и дискуссии

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

Комментарии читателей блога: 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-летний код видел :)