✅ Как экспертиза программного обеспечения доказывает незаконное использование исходного кода

✅ Как экспертиза программного обеспечения доказывает незаконное использование исходного кода

📌 Введение: угроза утечки интеллектуальной собственности

  • Программный код часто является коммерческой тайной и основным активом IT-компании. Утечка кода к конкуренту или его использование бывшим сотрудником для создания продукта-«двойника» может привести к потере конкурентного преимущества и многомиллионным убыткам. 🎯
  • Независимая экспертиза ПО (в частности, экспертиза плагиата исходного кода) — это единственный способ получить юридически значимые доказательства для суда (ст. 1301, 1252 ГК РФ). Настоящая консультация в научно-юридическом стиле — о том, как экспертиза выявляет заимствования, какие методы используются и какие доказательства нужно собрать.

⚖️ Глава 1. Юридическая база: почему код — это объект авторского права

Исходный код программы для ЭВМ охраняется как литературное произведение (ст. 1261 ГК РФ). Незаконное копирование (полное или частичное) влечёт:

  • гражданско-правовую ответственность (компенсация от 10 000 до 5 000 000 ₽ — ст. 1301 ГК РФ);
  • уголовную ответственность (ст. 146 УК РФ — при крупном ущербе);
  • административную (ст. 7.12 КоАП РФ).

Однако просто сказать суду «он украл мой код» недостаточно. Нужны объективные технические доказательства заимствования, которые может предоставить только независимый эксперт. 🔍

🕵️ Глава 2. Методы выявления плагиата в коде (инженерный подход)

Эксперт не «угадывает», а использует математические и алгоритмические методы сравнения, устойчивые к попыткам маскировки.

2.1. Прямое копирование (Type‑1)

МетодКак работаетПример
Сравнение хеш-сумм (MD5, SHA-256)Если два файла идентичны — их хеш-суммы совпадаютСлучай: вор скопировал модуль целиком, не изменив ни байта
Сравнение байт-кода (для скомпилированных программ)Декомпиляция бинарного файла и сравнение с эталоннымДаже если исходный код утерян, эксперт может сравнить ассемблерный код (ASM)

2.2. Модифицированное копирование (Type‑2, Type‑3)

МетодУстойчивостьЧто выявляет
Сравнение синтаксических деревьев (AST)Переименование переменных, перестановка блоковСтруктурная эквивалентность кода
Анализ n-грамм (n=5..10)Вставка «мусорных» строк, изменение отступовФрагменты копипасты (короткие куски)
Сравнение строковых константУдаление комментариев не помогает, если скопированы уникальные названия полей, сообщения об ошибкахИндивидуальные «почерки» программиста

2.3. Семантическая эквивалентность (Type‑4)

  • Разные алгоритмы, решающие одну задачу, могут быть признаны экспортом заимствования, если в них встречаются уникальные, нестандартные решения (например, сортировка с «ручной» реализацией QuickSort, которая совпадает с вашей до инвариантов циклов).

🧾 Глава 3. Что искать эксперту: улики в коде (чек-лист)

Помимо сравнения алгоритмов, эксперт ищет артефакты, которые сложно удалить:

  • Комментарии на русском языке (или другом языке), совпадающие с оригиналом. Даже если код переписан, комментарии часто копируют.
  • Имена переменных и функций (camelCase, snake_case, специфические сокращения). Например, в оригинале calcDiscountedPriceForWholesale (уникальное длинное имя). У подозреваемого встречается то же самое.
  • Орфографические ошибки в сообщениях об ошибках (например, ‘saving failedd’ с двумя d). Случайное совпадение маловероятно.
  • Одинаковые структуры пакетов (Java: com.yourcompany.oldproject.security), если подозреваемый не сменил все названия.
  • Конфигурационные файлы (pom.xml, package.json, requirements.txt) с одинаковыми версиями редких библиотек.

📋 Глава 4. Что нужно предоставить эксперту для доказательства кражи кода

КатегорияКонкретные материалыПочему важно
Ваш исходный код (оригинал)Репозиторий (Git, SVN) со всей историей измененийУстановить авторство и дату создания
Подозрительный продукт конкурентаИсходный код (если доступен), исполняемый файл (.exe,.dll,.apk), скриншоты описания функционалаДля сравнения
Документы, подтверждающие ваше авторствоСвидетельство о регистрации программы для ЭВМ, договоры с разработчиками, техническое задание (ТЗ)Правоустанавливающие документы
Сведения о бывшем сотрудникеТрудовой договор, NDA (соглашение о неразглашении), доступ к коду, дата увольненияСвязь лица с утечкой

⚖️ Глава 5. Как доказать, что код не мог быть создан независимо (вероятностный подход)

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

5.1. Пример из практики №1: Плагиат алгоритма шифрования

Ситуация: Банк «А» разработал уникальный алгоритм шифрования для мобильного приложения. Из банка ушёл разработчик (Петров). Через год конкурент «Б» выпустил приложение с идентичным алгоритмом.

Действия эксперта:

  • Декомпилировал APK приложения конкурента.
  • Сравнил байт-код с эталонным (предоставленным банком).
  • Обнаружил идентичную последовательность шагов (MATRIX: 17 операций XOR (исключающее «ИЛИ»), сдвигов и S-боксов) в той же последовательности.

Результат: Суд признал Петрова и конкурента виновными в нарушении авторских прав (ст. 1301 ГК РФ), взыскана компенсация 1,5 млн руб. 💪

5.2. Пример из практики №2: Доказательство через опечатку в сообщении об ошибке

Ситуация: Студия «А» разработала игровой движок для мобильной игры. Через полгода бывший сотрудник выпустил «свою» игру с тем же движком. В оригинале в сообщении об ошибке assert была опечатка: ‘Invlaid value’ (вместо ‘Invalid value’). 😂

Действия эксперта: Эксперт нашёл эту же опечатку в коде конкурента — совпадение, которое невозможно объяснить «независимой разработкой».

Результат: Досудебное урегулирование: конкурент выплатил 2 млн руб., игра была переписана.

🔒 Глава 6. Если исходный код конкурента недоступен (закрытый бинарный файл)

Ситуация сложнее, но не безнадёжна. Эксперт использует:

  • Дизассемблирование — преобразование машинного кода (0/1) в ассемблерный код.
  • Декомпиляцию — преобразование ассемблера в псевдокод высокого уровня (C-подобный).
  • Сравнение потоков управления (CFG — Control Flow Graph) — даже без имён переменных, структура ветвлений может быть идентичной.

Пример из практики №3: Бинарное сравнение драйвера принтера

Ситуация: Конкурент скопировал драйвер для печати этикеток. Исходный код конкурента отсутствовал.

Действия эксперта:

  • Выполнил декомпиляцию бинарного файла конкурента в Hex-Rays (IDA Pro).
  • Сравнил псевдокод и обнаружил 80% совпадений, включая уникальные константы (0xDEADBEEF, 0xFEEDFACE).

Результат: Суд принял заключение, конкурент выплатил компенсацию. 💪

📊 Глава 7. Таблица: методы и их доказательственная сила

МетодЧто доказываетСила аргумента
Совпадение хеш-сумм (MD5) фаловИдентичность файловОчень высокая (прямое копирование)
Совпадение AST-деревьевЗаимствование с переименованиемВысокая
Совпадение уникальных строкИндивидуальный «почерк» разработчикаВысокая
Совпадение алгоритмов с редкими константамиНевозможность случайного совпаденияВысокая
Совпадение имён пакетов (package name)Неудачная попытка маскировкиСредняя

💲 Глава 8. Стоимость экспертизы (ориентиры на 2025 г.)

Тип работСтоимость (₽)Сроки (раб. дни)
Сравнение исходного кода (до 10 000 строк)от 40 000 до 80 0005–7
Сравнение бинарных файлов (наличие декомпиляции)от 60 000 до 120 00010–15
Полный криминалистический анализ (определение степени заимствования в %)от 100 000 до 200 00010–20
Экспресс-режим (срочно)надбавка 30–50%2–5

🎯 Заключение

Доказать незаконное использование исходного кода — сложная, но решаемая задача. Независимая экспертиза даёт суду математические, воспроизводимые критерии сходства: хеш-суммы, AST-деревья, n-граммы, уникальные строки.

Для заказчика важно:

  1. сохранять историю версий (Git);
  2. регистрировать программу для ЭВМ в Роспатенте;
  3. при подозрении на утечку срочно обращаться к экспертам (пока код конкурента не изменился).

Для заказа экспертизы ПО обращайтесь в Союз «Федерация судебных экспертов» (сайт: https://patexp.ru/).

Похожие статьи

Новые статьи

🆘 Ходатайство о проведении судебно-медицинской экспертизы

📌 Введение: угроза утечки интеллектуальной собственности Программный код часто является коммерческой тайной и ос…

🆘Дендрологическая экспертиза упавшего дерева

📌 Введение: угроза утечки интеллектуальной собственности Программный код часто является коммерческой тайной и ос…

🟥 Экспертиза таунхауса

📌 Введение: угроза утечки интеллектуальной собственности Программный код часто является коммерческой тайной и ос…

❎ Судмедэкспертиза после побоев

📌 Введение: угроза утечки интеллектуальной собственности Программный код часто является коммерческой тайной и ос…

▶️ Экспертиза товара ненадлежащего качества потребителем

📌 Введение: угроза утечки интеллектуальной собственности Программный код часто является коммерческой тайной и ос…

Задавайте любые вопросы

20+9=