Криминалистика программного обеспечения
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Криминалистика программного обеспечения — это наука об анализе исходного или двоичного кода программного обеспечения , чтобы определить, произошло ли нарушение или кража интеллектуальной собственности . Это центральная часть судебных исков, судебных разбирательств и урегулирований, когда компании спорят по вопросам, связанным с патентами на программное обеспечение , авторскими правами и коммерческой тайной . Инструменты криминалистики программного обеспечения могут сравнивать код для определения корреляции — меры, которую можно использовать в качестве руководства для эксперта по криминалистике программного обеспечения.
Предыдущие методы криминалистики программного обеспечения
[ редактировать ]Предыдущие методы сравнения кода включали хеширование , статистический анализ текста , сопоставление и токенизацию . Эти методы сравнивали код программного обеспечения и давали единый показатель, показывающий, имело ли место копирование. Однако эти меры не были достаточно точными, чтобы быть приемлемыми в суде, поскольку результаты не были точными, алгоритмы можно было легко обмануть простыми подстановками в коде, а методы не учитывали тот факт, что код мог быть схожим по причинам. кроме копирования.
Нарушение авторских прав
[ редактировать ]После использования программных инструментов для сравнения кода с целью определения степени корреляции эксперт может использовать процесс итеративной фильтрации, чтобы определить, что коррелирующий код вызван сторонним кодом, инструментами генерации кода, часто используемыми именами, общими алгоритмами, общими программисты, или копирование. Если корреляция произошла из-за копирования, и копировщик не имел полномочий от правообладателя, то нарушение авторских прав произошло .
Защита коммерческой тайны и нарушение прав
[ редактировать ]Программное обеспечение может содержать коммерческую тайну, которая обеспечивает бизнесу конкурентное преимущество. Для выявления кражи коммерческой тайны можно использовать те же инструменты и процессы, что и для обнаружения нарушения авторских прав. Если код был скопирован без разрешения и этот код имеет характеристики коммерческой тайны (он общеизвестен, компания хранит его в секрете, а его секретность сохраняет свою ценность для бизнеса), то скопированный код представляет собой кражу коммерческой тайны.
Кража коммерческой тайны может также включать в себя использование функциональности кода без его буквального копирования. Сравнение функциональности кода — очень сложная задача, которую еще не удалось решить ни одному алгоритму в разумные сроки. По этой причине обнаружение кражи функциональности кода по-прежнему в основном выполняется вручную.
Нарушение патентных прав
[ редактировать ]Как и в случае с функциональностью, составляющей коммерческую тайну, в настоящее время невозможно научно обнаружить нарушение патентных прав на программное обеспечение, поскольку патенты на программное обеспечение охватывают общую реализацию, а не конкретный исходный код. Например, программа, реализующая запатентованное изобретение, может быть написана на многих доступных языках программирования, используя разные имена функций и имен переменных и выполняя операции в разных последовательностях. Существует так много комбинаций способов реализации изобретений в программном обеспечении, что даже самые мощные современные компьютеры не могут учесть все комбинации кода, которые могут нарушить патент. Эта работа по-прежнему остается за экспертами-людьми, использующими свои знания и опыт, но это проблема, которую многие специалисты по криминалистике программного обеспечения пытаются автоматизировать, находя алгоритм или упрощая процесс.
Объективные факты важнее субъективных доказательств
[ редактировать ]Одним из важных правил любого судебно-медицинского анализа является то, что в первую очередь необходимо учитывать объективные факты. Просмотр комментариев в коде или поиск в Интернете информации о компаниях, распространяющих код, и программистах, написавших код, полезны только после того, как будут рассмотрены объективные факты, касающиеся корреляции. После проведения анализа с использованием криминалистических инструментов и процедур аналитики могут приступить к изучению субъективных доказательств, таких как комментарии в коде. Если информация в этих субъективных доказательствах противоречит объективному анализу, аналитикам необходимо усомниться в субъективных доказательствах. Поддельные уведомления об авторских правах, уведомления об открытом исходном коде или имена программистов, которые были добавлены к исходному коду после копирования с целью замаскировать копирование, не являются редкостью в реальных случаях кражи кода.