НовостиСобытияКонференцииФорумыIT@Work
Open Source:

Блог

Одно из двух

Сергей Голубев
17.11.2011 12:47:04
Теги: СПО

Обсуждение заметки "Безопасность ПО: кто кого боится?" предсказуемо ушло в сторону теоретической возможности инспекции чужого кода. Мне думается, что этот вопрос интересен сам по себе, поскольку приводит к занятным выводам.

Итак, возможно одно из двух.

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

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

Плагиата? Вряд ли, поскольку "украденный код" проще всего спрятать именно в закрытой программе.

Вирусописателей? Опять же, вряд ли - практика показывает, что закрытость кода им нисколько не мешает.

И получается, что либо открытые системы действительно безопасней, либо закрытие кода вызвано какими-то очень нетривиальными причинами, что заставляет обратится к теории заговора. Либо моя логика в чем-то неверна. И мне хотелось бы понять - в чем именно.

Комментариев: 6

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии

Сергей
17.11.2011 14:56:46

Инспекция открытого кода - задача выполнимая но сложная. Открытый код- это исходники. У кого исходники- тот и владелец, если юридически не доказано обратное. Разобраться в закрытом коде тоже возможно, но это на несколько порядков более трудоемко и обычно юридически запрещено владельцем продукта. Посмотрите ст. 273, 274 УК РФ - там как раз об этом.

17.11.2011 15:49:31

На самом деле ППО - это авторские права на сам код, именно его двоичный, машинный вид. А не на исходный текст кода. Фактически речь идет даже не о коде, а об алгоритме.
Исходный текст - это лишь способов.

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

Почему - совершенно понятно: а кто может гарантировать, что EXE-модуль соответствует именно данного исходному коду?

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

Это как спроверкой на "отравленную пишу". Тестируют (на верных слугах) не исходные продукты, а уже конечную еду.

Плагиат, кстати, и доказывается на основе машинного кода. Вот так и выискивают...

Сергей
17.11.2011 16:00:59

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

17.11.2011 16:18:45

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

Давно не занимался этими делами, но в конце 90х - это точно обсуждалось. Там была такая проблема: EXE-модули, написанные на Клиппере не работали на новых Интеловских процессорах, слишком быстрые. Нужно было увеличить счетчики с восьмиразрядных на шестнадцати (довольно условно говорю). Никаких исходников разумеется не было, как и сами компиляторов. Одно из решения проблемы - прямая замена серии байтов в EXE. Это было вполне законно.

Сергей
17.11.2011 16:36:10

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

17.11.2011 16:43:41

Цитата
Здесь срабатывает психологическая составляющая - >> "Хотя бы потому, что они могут быть подвергнуты независимой экспертизе и разработчики об этом знают."


Анализ адекватности - сильное и эффективное оружие в руках СБ. smile:)

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии