Программная экспертиза - Software forensics

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

Прошлые методы криминалистики программного обеспечения

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

Нарушение авторского права

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

Защита коммерческой тайны и нарушение прав

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

Кража коммерческой тайны также может включать изъятие функциональности кода без его буквального копирования. Сравнение функциональности кода - очень сложная задача, которую еще предстоит решить ни одним алгоритмом в разумные сроки. По этой причине обнаружение кражи функциональности кода по-прежнему в основном выполняется вручную.

Нарушение патента

Как и в случае с функциональностью коммерческой тайны, в настоящее время невозможно научно обнаружить нарушение патентов на программное обеспечение, поскольку патенты на программное обеспечение охватывают общую реализацию, а не конкретный исходный код. Например, программа, реализующая запатентованное изобретение, может быть написана на многих доступных языках программирования с использованием разных имен функций и имен переменных и выполнения операций в разных последовательностях. Существует так много комбинаций способов реализации изобретений в программном обеспечении, что даже самые мощные современные компьютеры не могут рассматривать все комбинации кода, которые могут нарушить патент. Эта работа по-прежнему предоставляется экспертам-людям, использующим свои знания и опыт, но это проблема, которую многие специалисты по криминалистике программного обеспечения пытаются автоматизировать, находя алгоритм или упрощая процесс.

Объективные факты перед субъективными доказательствами

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

Рекомендации