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

 

Введение

Фанаты Starcraft наверняка помнят те времена, когда можно было играть не через Battle.net, а через левый сервер на эмуляторе bnetd (или даже поднять собственный). Игра была той же, но лицензионный ключ не требовался. Или вспомнить другой случай: несколько лет назад многие радовались новости о том, что простой американский парень Джордж Френсис Хоц — младший aka geohot (тот самый, что в прошлом году объявил о создании своего автопилота для автомобилей) «обул» корпорацию Sony, взломав защиту PlayStation 3.

Ни Blizzard, ни Sony, ясное дело, не были рады таким публичным пощечинам и в конечном счете нашли крайних. В первом деле такой оказалась компания Internet Gateway, во втором — Джордж и сотоварищи из сообщества fail0verflow. В обоих кейсах дело касалось в том числе реверс-инжиниринга программного кода.

К чему мы это вспомнили? К тому, что занятие обратной разработкой софта без согласия правообладателя кода законно и ненаказуемо только в очень редких случаях. Да-да, букве закона (и не только американского, но и нашего) знакомо такое явление, как реверс-инжиниринг. Конечно, не настолько хорошо и детально, как хотелось бы, но и то, что есть, — это намного лучше, чем ничего. Но давай-ка начнем с самого начала.

 

Обратная разработка и закон

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

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

Законы, которые ограничивают реверсинг, в каждой стране (а в США — в каждом штате) свои, и их нормы могут сильно различаться. Давай пройдемся по основным из них.

США

  • Закон об авторском праве и положения о добросовестном использовании (раздел 17 Свода законов США (U. S. C.) и статья 107 указанного раздела)
  • Закон о секрете производства
  • Положения о запрете обхода технических мер защиты Закона об авторском праве в цифровую эпоху (он же тот самый DMCA) (статья 1201 раздела 17 Свода законов США)
  • Закон о конфиденциальности электронной связи (статья 2510 раздела 18 Свода законов США)

Россия

  • Гражданский кодекс (часть четвертая)
  • Федеральный закон «О коммерческой тайне»
  • Федеральный закон «Об информации, информационных технологиях и о защите информации»

Евросоюз

  • Директива 2009/24/ЕС о правовой охране компьютерных программ

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

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

Вот, например, как выглядит лицензионное соглашение для Kaspersky Rescue Disk 10:

«Запрещается декомпилировать, дизассемблировать, модифицировать или выполнять производные работы, основанные на ПО, целиком или частично за исключением случаев, предусмотренных применимым законодательством».

А вот EULA для продуктов Cisco:

Customer specifically agrees not to:
(iii) reverse engineer or decompile, decrypt, disassemble or otherwise reduce the Software to human-readable form, except to the extent otherwise expressly permitted under applicable law notwithstanding this restriction or except to the extent that Cisco is legally required to permit such specific activity pursuant to any applicable open source license...

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

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

В России дел, связанных с реверсом, почти нет, так что детали пока не успели накопиться. Гораздо интереснее изучить прецеденты в США, где примеров много. В рамках этой статьи я рассмотрю упомянутый в начале кейс Blizzard.

 

Blizzard против bnetd

Началась эта история еще в 1998 году, когда фирма Blizzard приступила к продажам игры Starcraft. Спустя несколько месяцев студент Калифорнийского университета в Сан-Диего Марк Бейзингер (Mark Baysinger) занялся реверс-инжинирингом протокола, по которому игра подключалась к серверу Battle.net.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Check Also

Malware vs WordPress. Проверяем защитные плагины в боевых условиях

Wordpress — одна из самых распространенных систем управления сайтом и поэтому вызывает при…

Оставить мнение