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

Предыстория — процесс разработки

Истец SAS и ответчик WPL являются конкурентами на рынке программного обеспечения, используемого для управления и анализа больших и сложных наборов данных. Истец на протяжении многих лет распространял свои проприетарные программные приложения (Система SAS), запускающие программы, написанные на одноименном языке SAS. WPL стремилась создать приложение, которое могло бы конкурировать с системой SAS, а именно приложение, которое можно было бы вывести на рынок и которое запускало бы программы, написанные на SAS. Компания успешно разработала такое приложение (названное WPS), и клиенты начали отказываться от системы SAS в пользу WPS.

В рамках своих усилий по разработке WPS ответчик получил лицензию на использование предоставленной истцом «Learning Edition» — среды, предназначенной для программистов, чтобы научиться кодировать в SAS. Среди положений лицензионного соглашения на программное обеспечение для Learning Edition было ограничение на обратное проектирование программного обеспечения.

При разработке WPS ответчик не пытался декомпилировать Learning Edition или иным образом «снести его» или «заглянуть под капот». Вместо этого он будет запускать код SAS как через Learning Edition, так и через WPS, оценивать выходные данные обеих систем и настраивать код C++, входящий в состав WPS, чтобы выходные данные совпадали.

Судебное разбирательство в суде первой инстанции

Истец подал иск против ответчика как в федеральный суд США, так и в британский суд, утверждая, что ряд требований, включая нарушение авторских прав, нарушение контракта, мошенническую торговую практику и мошенничество. Особое значение имело требование о нарушении контракта — истец утверждал, что метод ответчика по разработке WPS путем корректировки кода WPS на основе выходных данных по сравнению с выходными данными Learning Edition — был обратным проектированием, запрещенным в соответствии с условиями лицензионного соглашения Learning Edition.

Суд низшей инстанции согласился с истцом и признал ответчика ответственным за нарушение договора из-за обратного проектирования на этапе упрощенного судопроизводства. Дело было передано в суд по другим вопросам, где, наряду с возмещением убытков за нарушение контракта и мошенническую торговую практику, суд присудил истцу компенсацию почти на 80 миллионов долларов. Ответчик добивался пересмотра дела в Четвертом округе. В апелляционной инстанции суд подтвердил решение суда низшей инстанции по вопросу обратного инжиниринга.

Апелляционный суд: это был обратный инжиниринг

В частности, ответчик утверждал в апелляционной жалобе, что решение суда низшей инстанции в упрощенном порядке по делу о нарушении контракта/реверс-инжиниринге было неправомерным, поскольку термин «реверс-инжиниринг» в лицензионном соглашении был двусмысленным. Истец и ответчик предложили конкурирующие определения того, что, по их мнению, должен означать обратный инжиниринг. Ответчик предложил узкое определение — по сути, реверс-инжиниринг должен иметь своей целью воссоздание исходного кода. Истец, однако, предложил более широкое определение, охватывающее другие усилия по «анализу продукта для изучения деталей его дизайна, конструкции или производства с целью создания копии или улучшенной версии».

Различия в определениях были важны — ответчик не пытался и не пытался получить доступ или скопировать исходный код Learning Edition. Если бы определение реверс-инжиниринга ограничивалось воссозданием исходного кода, то с разработкой WPS все было бы в порядке.

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

SAS Institute, Inc. против World Programming Ltd., — F.3d — , 2017 WL 4781380 (4-й окружной суд, 24 октября 2017 г.)