|
|
Обзор подготовлен
При поддержке
Программное обеспечение сегодня стало таким же продуктом купли-продажи, как, например, предметы обихода. На него распространяется законодательство об авторских правах, интеллектуальной собственности и т.д. Соответственно, эти продукты деятельности ИТ-компаний тоже должны оплачиваться. А, значит, они должны иметь соответствующую защиту от пиратов и хакеров.
В последнее время все громче звучат возмущенные голоса сторонников бесплатного программного обеспечения. Некоторые люди считают, что все ПО должно распространяться свободно, без взимания какой-либо платы. Но почему-то они не задумываются, что чаще всего этот вид интеллектуальной собственности разрабатывается не на коленке, не в свободное от постоянной работы время, а в офисном пространстве за зарплату под определенные потребности, с определенным функционалом и для конкретных нужд.
С другой стороны, владельцы офисных зданий хотят получать арендную плату, а разработчики программного обеспечения нуждаются в питании, одежде и развлечениях и т.д. Иными словами, ПО всегда имеет свою себестоимость. Программное обеспечение сегодня стало таким же продуктом купли-продажи, как, например, предметы обихода. На него распространяется законодательство об авторских правах, интеллектуальной собственности и т.д. Соответственно, эти продукты деятельности ИТ-компаний тоже должны оплачиваться…
Согласно законодательству, исполняемый код программного обеспечения достаточно изменить всего лишь на 15%, и это уже будет считаться совершенно новым продуктом! В результате практически любой специалист, разбирающийся в языках программирования, может взять программу, немного ее изменить и модифицировать – и выпустить уже под своим брендом. Из всего этого следует вывод, что интеллектуальная собственность нуждается в защите. Как с юридической точки зрения, так и с технологической. В борьбу с промышленным и бытовым пиратством вступают различные системы защиты, направленные, например, на защиту от нелегального использования и копирования.
Михаил Калиниченко, генеральный директор компании StarForce Technologies, делится с CNews: «До сих пор наибольшей популярностью пользуется защита с привязкой к оптическому носителю, хотя в последнее время у наших клиентов вызывает интерес и такой сервис, как защита исполняемого кода приложения. В связи с этим нами был разработан такой продукт, как StarForce Crypto. Это решение защищает участки кода, которые представляют собой интеллектуальную ценность и важны для бизнеса. Преимуществом использования такой технологии является то, что защиту исполняемого кода можно дополнять другими системами защиты – например, выпустить программное обеспечение с привязкой к диску или через интернет (к компьютеру)».
Но даже в случае, если программное обеспечение распространяется бесплатно, его тоже можно и нужно защищать. Ведь неспроста существует такая категория приложений, которые распространяются бесплатно всем желающим, но при этом содержат ограничения на коммерческое использование или модификацию.
Согласитесь, ведь даже разработчикам freeware было бы неприятно увидеть, как немного измененный продукт, выпущенный ими бесплатно, принесет прибыль тем, кто решит его использовать в коммерческих целях. Есть и другой тип ПО, который можно спокойно запускать, изучать, распространять и улучшать – это, так называемое, свободное программное обеспечение. Правда, в данном случае, некоторые расходы могут понадобиться, например, за платную техническую поддержку (в распространении свободного ПО встречаются и такие бизнес-модели).
Сегодня существует несколько способов защитить программное обеспечение. Но особое внимание хотелось бы обратить именно на защиту первоисточника – исполняемого кода приложения. Это особенно важно при выпуске уникального продукта. В противном случае конкуренты могут изучить алгоритм работы приложения, преобразовать, модифицировать его и выпустить на рынок новый продукт. Не тратя особенных усилий на разработку уникального кода.
Обычно для того чтобы модернизировать программу или на ее базе выпустить новое решение, злоумышленникам сначала необходимо изучить исполняемый код приложения. Как правило, делается это с помощью специальных инструментов, которые позволяют разобрать программу «по винтикам». Эти инструменты называются дизассемблерами и отладчиками, используются также системы мониторинга. Они изучают как сам исполняемый код приложения, так и отслеживают каждое действие программы в компьютере.
Решением проблемы в случае угрозы исследования программы может быть обфускация, или запутывание кода. Под этим термином понимается приведение кода к виду, сохраняющему функционал программы, но затрудняющему или делающему невозможным анализ и понимание алгоритмов работы приложения. В основном этот способ используется для защиты приложений от воссоздания исполняемого кода и незаконного использования приложения. Кроме того, код представляется в таком виде, что невозможно выделить участки кода, которые нужны программе для работы, а какие являются лишними, «мусором».
Достаточно часто используют нетипичное расположение стека, его размера или варианты применения. Если при анализе программы хакер отбросит часть кода, то функционирование программы может оказаться невозможным, или работа приложения может нарушиться. Иногда для усложнения работы взломщиков в исполняемый код приложения встраивают «пустышки», которые выполняют некоторую на первый взгляд сложную и важную работу, а на самом деле не имеют никакого отношения к работе программы.
Перейдем от теории к практике. «Наша компания занимается разработкой и дистрибуцией программного обеспечения для автобизнеса – достаточно узкий сегмент, в котором мы уже давно работаем. Для защиты разработанного нами программного обеспечения от незаконного копирования и взлома мы активно используем российские технологии – и привязку к диску, и защиту распространяемых через интернет приложений (осуществляется привязка к компьютеру), а также систему, позволяющую защищать сам исполняемый код приложения от анализа и взлома. На наш взгляд, это сейчас актуально», - говорит руководитель отдела информационных технологий компании «АвтоДилер» Владислав Копысов.
В настоящее время в эксплуатации находятся различные системы защиты программного обеспечения, но в основном они нацелены на защиту от копирования и несанкционированного использования. Тем не менее, на рынке представлено несколько решений, позволяющих защитить именно исходный код приложения от анализа, реверс-инжиниринга.
В основном они разработаны западными компаниями. Так, продукт компании SolidShield Technologies генерирует защиту на самом коде программы, работает эта компания на территории Европы и США с 2006 года. Другое известное решение, распространенное на Ближнем Востоке, Европе и США, - Defendion Software Security. Другие продукты подобного типа представлены также только в странах США и Европы, например - EXECryptor 2.4.1 от StrongBit Technology. Это софтверная криптографическая защита самого кода программы, с последующей компрессией файла. Из аналогичных систем защиты на российском рынке можно выделить StarForce Crypto. В основе данного метода защиты лежит шифрование (преобразование исполняемого кода в инструкции виртуальной машины StarForce), которое позволяет усложнить процесс изучения и модификации программного кода нелегальными пользователями.
Если же рассматривать ситуацию в целом, то, используя защиту программного обеспечения от исследований, нужно иметь в виду то, что лучше не только применять обфускацию на отдельных частях кода, но и защищать всю программу целиком. То есть для усиления надежности можно использовать одновременно сразу несколько систем защиты, например, защиту исполняемого кода дополнить привязкой к диску или к компьютеру.
Екатерина Быстрова