Принцип разумной достаточности при проведении экспертиз контрафактного софта

Какие возможности должна иметь программа, позволяющая анализировать программное обеспечение, установленное на компьютере? Какие файлы и с какой целью нужно анализировать? А главное – какие выводы на основании этого анализа может сделать эксперт, проводящий исследование? Эти и многие другие вопросы, конечно же,  учитываются разработчиками специализированного программного обеспечения (например, программы «Defacto»), используемого для производства экспертиз и исследований при расследовании преступлений, связанных с нарушением авторских и смежных прав на программное обеспечение.

Точно такими же вопросами задаются и пользователи этих специализированных программ, как профессионалы, так и любители. К числу профессиональных пользователей программы «Defacto» относятся в первую очередь эксперты судебной компьютерной и компьютерно-технической экспертизы и сотрудники оперативных подразделений МВД. Для оказания помощи в работе именно этой категории пользователей и создавалась данная программа. Но не меньший интерес к программе проявляют и обычные пользователи, которые хотят узнать – детектируется ли используемый ими софт как пиратский софт и какова реальная стоимость незаконно используемых программ. Вот как раз эта категория пользователей и предъявляет завышенные требования к программе, предназначенной для экспресс-аудита программного обеспечения. Рассмотрим эти требования более подробно и посмотрим – насколько они актуальны, справедливы и востребованы на практике.

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

Одной из функций, востребованных с точки зрения обычных пользователей, является умение искать на проверяемом диске различные программы, созданные и используемые для нарушения авторских прав, например, «кейгены» («keygen», от слов «keygenerator» - генератор ключей). Однако, само наличие на диске в каталоге с той или иной программой файла с именем «keygen.exe» не является признаком того, что на данном компьютере имело место нарушение авторских прав разработчиков или правообладателей программного обеспечения.

Даже если файл с именем «keygen.exe» присутствует на диске, то необходимо убедиться в следующем:

  1. файл действительно является исполнимым и работоспособным, а не поврежден в результате ошибки в файловой системе на диске, некорректной распаковки или воздействия вредоносной программы;
  2. файл действительно является генератором ключей, а не иной программой, переименованной в файл с именем «keygen.exe». Любой пользователь может назвать любую программу любым именем, не привязываясь к ее функциональным возможностям. Более того, у большого количества вирусов, относящихся к файловым червям, есть привычка создавать на диске файлы с именем, содержащим слово «keygen», в надежде привлечь внимание пользователей работающих в файлообменной сети и, замаскировавшись таким образом, внедриться на очередной заражаемый компьютер;
  3. файл действительно генерирует ключи к указанной программе, а не к какой-то иной программе или вовсе некорректные ключи.

Никаким эмпирическим путем проверить описанные выше пункты программа не сможет:

  1. даже дизассемблирование не даст понять, какие инструкции должны стоять на том или ином месте программы по замыслу автора, насколько «жизнеспособен» данный фрагмент кода;
  2. анализатор автоматически не поймет, является анализируемая программа тем, за кого она себя выдает;
  3. анализатор автоматически не поймет, подойдет ли тот или иной генерируемый код к той или иной программе.

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

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

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

И.Ю. Юрин, эксперт, http://www.nhtcu.ru