Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Законно ли использовать reverse engineering в ІТ

Многие ІТ-специалисты практически ежедневно сталкиваются с реверс-инжинирингом. Ведь процесс помогает в обучении, исследовании софта и железа, их составляющих элементов и принципов работы. В некоторых случаях reverse engineering используют для оценки уровня Game Developers и т. д. Кто впервые столкнулся с термином — некоторые статьи в википедии и «лурке».

Если кратко, reverse engineering — законен, но с рядом условий.

В данной статье предлагаю ознакомиться с правовой стороной процесса. Опишу основные принципы реверс-инжиниринга по итогу судебных прецедентов США по делам Nintendo v. Atari, SEGA v. Accolade и Bowers v. Baystate Technologies.

Одни из первых судебных дел по реверс-инжинирингу появились при попытках обойти защиту игровых консолей. К примеру, такие компании как SEGA, Nintendo были заинтересованы в том, чтобы к ним обращались за лицензией, выплачивали вознаграждения «за допуск» к консоли и выпускали игры по их условиям (и достаточно часто — эксклюзивно).

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

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

Atari Games Corp. v. Nintendo of America Inc. 975 F.2d 832 (Fed. Cir. 1992)

Nintendo разработало 10NES program, которое не допускало к работе на игровой консоли видеоигры неавторизованных производителей.

Nintendo-10NES-Lockout-Chip. Источник изображения

Atari попыталось найти доступ к консоли. Для этого при реверс-инжиниринге удаляли и исследовали чипы 10NES, копировали и воспроизводили объектный код.

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

Дело: Sega Enterprises Ltd. v. Accolade, Inc. 977 F.2d 1510 (9th Cir. 1992)

SEGA ограничивала совместимость игр со своей консолью Genesis (Sega Mega Drive), а также разработала trademark security system (TMSS). Когда игровой картридж вставлялся в систему, микропроцессор консоли искал код инициации TMSS, который состоял из четырех байтов данных — букв «S-E-G-A». Если система Genesis (Sega Mega Drive) находила код инициализации TMSS в нужном месте, игра запускалась на консоли. Дополнительно TMSS отображал на экране «PRODUCED BY OR UNDER LICENSE FROM SEGA ENTERPRISES LTD».

Sega Genesis / Mega Drive. Источник изображения

Accolade, используя реверс-инжиниринг, обеспечила совместимость видеоигр с Genesis. Гейм-девеловеры Accolade также «нашли» код инициации TMSS, установили, что он не влияет на совместимость Genesis II с их играми. Но разработчики предположили, что это некая функция на будущее, в итоге было принято решение скопировать и TMSS код.

После выпуска новой консоли от SEGA — Genesis III, видео игры от Accolade с TMSS, также начали отображать уведомление «PRODUCED BY OR UNDER LICENSE FROM SEGA ENTERPRISES LTD», что не соответствовало действительности.

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

Источник изображения

Принципы, которые сформировали суды, по итогу кейсов:

  • автор не получает эксклюзивные права «в целом», так как авторское право не защищает идеи, процессы, операции. Или другими словами — сама идея не допускать к консоли при помощи чипа, программы — не защищается;
  • для защиты процессов и методов, следует использовать патентное право;
  • реверс-инжиниринг является добросовестным, когда «nature of a work» требует промежуточного копирования для понимания идей и процессов, неохраняемых элементов;
  • без реверс-инжиниринга объектного кода владелец произведения фактически будет иметь монополию на функциональные аспекты работы, которые защищаются авторским правом;
  • для законного реверс-инжиниринга, должна использоваться копия произведения, полученная законным путем.

Так как в кейсе Atari — Nintendo, копия кода была получена незаконно, то реверс-инжиниринг был признан таким, что нарушает права Nintendo.

А в кейсе SEGA — Accolade, SEGA доказала возможность «доступа» к консоли без 4-битного файла с кодом инициализации TMSS. Таким образом, игры Accolade могли быть совместимыми без ложного уведомления «PRODUCED BY OR UNDER LICENSE FROM SEGA ENTERPRISES LTD». Но суд решил, что коммерческая эксплуатация функционального кода была косвенной и имела минимальное влияние.

И уже 1998 году в США был принят Digital Millennium Copyright Act, который на законодательном уровне разрешает обратный инжиниринг защищенной программы, чтобы выяснить, как заставить ее взаимодействовать (т.е. обмениваться информацией и использовать ее) с другими программами.

Можно ли запретить реверс-инжиниринг договором

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

В качестве примера можно взять кейс Bowers v. Baystate Technologies (320 F.3d 1317, Fed. Cir. 2003). Нарушение авторских прав Bowers на программу Designer’s Toolkit, а также условий лицензии обошлись Baystate в 5 270 142 $. Так как компания незаконно использовала реверс-инжиниринг для создания своей программы Draft-Pak. Как резюмировал суд — нарушающая сторона должна сопоставить преимущества нарушения с возможными убытками, или «the breaching party must weigh the benefits of breach against the arguably de minimus damages arising from merely discerning non-protected code».

Но стоит обратить внимание, что в зависимости применяемого права, судебной практики, условия подписания — оговорки могут быть признаны недействительными и высшую силу может иметь закон.

В Украине программное обеспечение относится к объектам авторского права и реверс-инжиниринг (или декомпилирование) разрешается.

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

Вывод

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

На сегодня большинство договоров содержат запрет на реверс-инжиниринг (лицензионные соглашения, договоры с ИТ-специалистами, NDA), и такие нормы будут иметь высшую силу по сравнению с законом во многих странах. Рекомендую внимательно относиться к тому, что подписываете и какие обязательства на себя принимаете при разработке ИТ-продуктов и взаимоотношениях с заказчиками.

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Пока вы рассуждаете о законности реверса, Китай во всю силу его использует.

Очень интересная статья на подумать. Даже не задумывался о том, законно ли это. Теперь нужно будет обращать внимание на договоры и соглашения связанные с . Реверс-инжиниринг или копирование (с целью понять механизм работы) нормальная практика. Уверен что за этим будущее!

Есть куда более громкие и близкие «простым смертным» кейсы. Кому интересно, можете погуглить про DeCSS, дело Дмитрия Склярова и тд.

После прочтения первого предложения последнего абзаца возник вопрос — в каких странах лицензионное соглашение имеет высшую силу по сравнению с законом?

По общему правилу — договор (лицензионное соглашение) обязательно к исполнению. Односторонний отказ или не выполнение обязательств не допускается.

В отношении «стран», нужно смотреть предметные нормы законодательства и судебные прецеденты. Общего правила нет. Везде кейсы будут рассматриваться исходя из всех вводных: конкретные условия договора и как они прописаны, соотношение с местными закона, порядок подписания (не было ли злоупотребления влиянием, принуждения).

Моя рекомендация — если договор подписан, его исполнять, или же вносить правки в условия договора до или после подписания. Если потребуется предметная оценка — привлекать юристов страны, право которой выбрано в договоре (обычно прописывается арбитраж и право какой страны будет использоваться), или международных юристов, для оценки всех рисков.

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

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

Так вот, реверс-инжиниринг есть обычное познание, и вы не можете его запретить человеку, как не можете запретить собаке брать след. Это кто мы есть. И кем всегда будем. Вы можете разрушить систему образования и медицину, но реверс-инжиниринг останется.

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

ИСКЛЮЧЕНИЕ: реверс-инжиниринг опасных объектов. Например, как запрет генетического программирования людей и вообще вывода пород и так далее. Естественно, это запрет нарушают, но лишь потому, что нет достаточной военной пистюлины за нарушение. Собственно, коронавирус именно так получили — реверс-инжинирингом SARS, как бы американы теперь не орали что это всё Китай.

Я так и сказал — реверс-инжиниринг не запретишь. Запретить можно неавторизованную продажу авторских прав — а вот их-то и надо доказывать. Нет доказательств — лососните тунца или подкупайте судью.

Есть ряд факторов, которые следует учитывать, среди них: закон, договор, прецедент, что и как охраняется, суть объекта и тд. Считаю, лучше не использовать «категоричное» да или нет. Это же право) и несколько тезисов к материалу:

Закон: предоставляет право на реверс-инжинирнг, особенности, ограничения. Также право на развитие технологий, науки имеют высшую силу. Не стоит забывать и про ряд действий, где нет нарушения объектов авторского права и не требуется разрешение, например, обучение/некоммерческое использование в «объеме, оправданном целью» и тд

Договор: соглашение 2 и более сторон, которое «обязательно к исполнению» и имеет высшую силу во многом. В том же деле Bowers v. Baystate Technologies, суд четко указал: «A copyright is a right against the world. Contracts, by contrast, generally affect only their parties; strangers may do as they please, so contracts do not create `exclusive rights». Прецедентное право указывает, что частные стороны могут по договору отказаться от права обратного инжиниринга и такая оговорка будет иметь силу выше закона в отношениях между такими сторонами.
Соглашение с PS, разработчиками, и даже стандартные NDA часто запрещают реверс-инжинирнг (только вычитывал на днях от крупной ИТ-компании).
Другой вопрос — как докажут этот процесс и что действительно нарушаются права, а не используются лишь идеи, методы и прочие объекты, которые не охраняются авторским правом.

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

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

Например, воровство запрещено — но посмотри, насколько серьёзные деньжищи нужно вкладывать, чтобы его таки запретить с определённой долей вероятности. Вот и с реверс-инжинирингом также, недостаточно буквы закона, нужен общественный договор. А как можете догадаться, монополисты не сильно в ладах с народом, а народ не особо рьяно готов защищать права монополюг. Как раз наоборот, потребитель любит конкуренцию, и не любит конских наценок на де-факто просто запрет другим производить то же самое. И этот [желаемый монополистами] запрет базируется НЕ на интеллектуальной собственности, а просто на физической способности чему-то помешать.

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

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

Суд, по-моему мнению, сформировал достаточно четкую позицию — дело нарушеющей стороны взвесить все «+» и «-») «the breaching party must weigh the benefits of breach against the arguably de minimus damages arising from merely discerning non-protected code»

вот благодяря таким моралистам, попам и деятелям культуры наука в жопе, бо каждая гретта вопит об аморальности экспериментов над людьми
почему это вдруг над чипами можно, а над людьми и животными нельзя?

На поверку, ДНК Греты покажет наличие в ней животных. Так что она сама результат эксперимента.
А я сказал лишь что запреты людей не остановят, они всё равно будут это делать, просто придётся вложить больше денег в защиту от любопытных глаз (читай китайские тюрьмы).

На Хабре была подробная статья о том, кто конкретно занимался работами по сарс подобным вирусам. Голландец и его ученица из Кетая, решившая обойти учителя. «Американы» только деньги поставляли по требованию кетайцев «для обеспечения биологической защиты лабораторий».

Дык не сработала защита :)
А выражение «только деньги поставляли» — сам-то в чудеса веришь? Ты лично сам дал кому попало денег просто так? Тот кто заплатил за преступление называется «главарь», а не «только поставлял денег по требованию исполнителей».

А превзойти пытаются все и всех, наука это спорт, и денег дают только победителям.

Не «просто так». Кетайцы пугают всех, что, если вирусы вырвутся, то всем будет плохо. Это как высасывание денег из США на «разоружение» СССР (и потом РФ).
Не буду отрицать, что американцы, возможно, надеялись аутсорсить работы над опасными вирусами в дальнейшем, но сарс — это чисто кетайская тема с начала века.

Чув колись про один трюк про те, як обійти заборону в США на реверс-інжінірінг. Одна людина займається суто дослідженням роботи програми, дізассемблінгом і тд. Потім вона йде до іншої людини і пояснює їй на словах як працює логіка програми і як її відтворити. Не знаю, чи то була просто байка, чи то дійсно так працює.

Точняк, це було про leaked source code.

Прекрасный пример — поддержка Dolby звука для T2 телевизорных приставок и прочей мелкой электроники. Платить 5 баксов с устройства просто за хер собачий, за право (и микросхему) раскодировать поток кодеком прошлого века — нахрен не упало. Когда программные средства делают это нахаляву.

Как по мне, с прошивкой BIOS много мороки, давно бы сделали API-интерфейс чтобы добавлять модули, чтобы потом «неизвестные» создали для установки уже поверх кошерной заводской прошивки добавкой нужный файлик.

Я имею в виду максимальное упрощение для юзера, вплоть до автопоиска на карте памяти

Проще — вообще не совать это в BIOS, а брать дополнительным файлом. Ты же не шьёшь кодеки компьютера в BIOS? Вот и в устройствах этого не требуется. Когда там 64Мб оперативы на борту, поверь, там стоит честный Линукс, с целью сильно сократить цену разработки. А значит кодек можно поставить вместе с приложением, юзер и знать не будет что что-то там пиратит. Приложение в свою очередь тоже этого не сообщит.

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

Дякую за цікаву тему і прекрасний матеріал!

Можно добавить, что даже если за сам ревер-инжиниринг не засудят, то могут засудить за взаимодействие с программным продуктом.
torrentfreak.com/images/bossorder.pdf

Підписатись на коментарі