🟩 Экспертиза программ для ЭВМ

Фундаментальное методическое руководство по исследованию исходного и объектного кода в судебных и досудебных целях

📘🧪 Уважаемые коллеги! Настоящее методическое руководство представляет собой систематизированное изложение принципов, методов, алгоритмов и практических рекомендаций по организации и проведению экспертизы программ для ЭВМ. Данный вид исследований относится к числу наиболее сложных и наукоемких в современной судебной экспертизе, поскольку требует от специалиста глубоких познаний в области дискретной математики, теории алгоритмов, языков программирования, архитектуры вычислительных систем, криптографии, а также процессуального права. Материал структурирован по разделам, каждый из которых представляет собой законченный методический блок. 🖥️⚖️🧠

  1. 📌 Введение: место и роль экспертизы ПО в системе судебных исследований

В условиях цифровой трансформации всех сфер общественной жизни программное обеспечение становится не только продуктом интеллектуальной деятельности, но и объектом гражданского оборота, предметом лицензионных соглашений, а также орудием или средством совершения правонарушений. Экспертиза программ для ЭВМ представляет собой процессуальное действие, заключающееся в проведении исследования программы для электронных вычислительных машин (в исходной, объектной форме или в виде прошивки) и даче заключения по вопросам, требующим специальных познаний в области компьютерных наук и информационных технологий. Данное руководство призвано унифицировать подходы и минимизировать экспертные ошибки. 🎯📚

  1. 🧩 Нормативно-правовая основа производства экспертизы

Методическая работа базируется на следующих нормативных документах:

2.1. Федеральное законодательство:

  • Федеральный закон от 31.05.2001 № 73-ФЗ «О государственной судебно-экспертной деятельности в Российской Федерации» — определяет правовые основы, принципы независимости, объективности и полноты.
  • Гражданский процессуальный кодекс РФ (ст. 79–87) — регламентирует назначение и производство экспертизы в гражданском процессе.
  • Арбитражный процессуальный кодекс РФ (ст. 82–87) — особенности экспертизы в арбитражном судопроизводстве.
  • Уголовно-процессуальный кодекс РФ (ст. 195–207) — порядок назначения экспертизы по уголовным делам.
  • Часть четвертая Гражданского кодекса РФ (ст. 1259, 1261, 1270) — правовая охрана программ для ЭВМ как объектов авторского права.

2.2. Ведомственные и отраслевые документы:

  • Приказ Минюста России от 27.12.2012 № 237 «Об утверждении Перечня родов (видов) судебных экспертиз».
  • Методические рекомендации по производству судебных компьютерно-технических экспертиз (РФЦСЭ при Минюсте России).
  • ГОСТ Р 57194-2016 «Защита информации. Судебная компьютерно-техническая экспертиза. Общие требования».

Эксперт обязан руководствоваться данными документами в ходе каждого исследования. 📜✅

  1. 🧰 Объекты экспертного исследования: классификация и требования к предоставлению

При производстве экспертизы программ для ЭВМ на исследование могут быть представлены следующие объекты:

Код группы Тип объектов Примеры Требования к предоставлению
Группа А Исходные тексты программ .c,.cpp,.h,.py,.java,.cs,.go,.rs Полные тексты, с комментариями, без обфускации
Группа Б Исполняемые (объектные) модули .exe,.dll,.so,.bin,.elf Без повреждений, с указанием версии компилятора
Группа В Прошивки и встраиваемое ПО firmware.bin,.hex,.s19 Дамп, снятый программатором
Группа Г Данные, сопутствующие работе ПО Логи, дампы памяти, файлы конфигурации, реестр В неизменном виде, с хешами
Группа Д Техническая документация ТЗ, спецификации, блок-схемы, UML-диаграммы Подписанные, с датами

Все объекты перед началом исследования подлежат обязательной фиксации с вычислением контрольных сумм (MD5, SHA-256). Образцы носителей создаются с использованием аппаратных write-blocker’ов. 🗂️📸

  1. 🧬 Классификация видов экспертизы ПО по целям и задачам

В зависимости от поставленных вопросов и материалов дела выделяют следующие виды экспертизы программ для ЭВМ:

4.1. Автороведческая экспертиза ПО 🖋️

  • Установление авторства конкретного лица или организации.
  • Определение степени оригинальности кода.

4.2. Идентификационная экспертиза (на предмет заимствования/плагиата) 🔍

  • Сравнение исходных или объектных кодов.
  • Выявление контрафактности.

4.3. Технико-криминалистическая экспертиза ПО 🕵️

  • Обнаружение недекларированных возможностей (закладок, «черных ходов»).
  • Анализ вредоносного функционала.
  • Исследование следов взлома.

4.4. Лицензионная экспертиза 📜

  • Проверка соблюдения условий лицензионного соглашения (включая open-source лицензии: GPL, MIT, Apache и др.).

4.5. Экспертиза соответствия технической документации 📄

  • Анализ реализации заявленных функций.
  • Выявление избыточного функционала.

Каждый вид требует специфических методов и инструментов. 🧩🎯

  1. 🛠️ Методы исследования: полный методический арсенал

В основе любой экспертизы программ для ЭВМ лежат три группы методов, применяемых как изолированно, так и в комбинации.

5.1. Методы статического анализа 🔬

  • Лексический анализ: поиск уникальных строк, идентификаторов, комментариев, магических чисел.
  • Синтаксический анализ: построение абстрактного синтаксического дерева (AST), выявление структуры.
  • Семантический анализ: сравнение поведения на уровне алгоритмов (независимо от синтаксиса).
  • Сигнатурный анализ: поиск фрагментов кода по заранее известным сигнатурам (например, для библиотек).
  • Метрический анализ: вычисление метрик Холстеда, цикломатической сложности по Маккейбу.

5.2. Методы динамического анализа 🧪

  • Трассировка системных вызовов: API Monitor, Process Monitor, strace (Linux).
  • Мониторинг сетевой активности: Wireshark, tcpdump, Charles Proxy.
  • Отладка на уровне пользователя: x64dbg, OllyDbg, gdb, lldb.
  • Отладка на уровне ядра: WinDbg, kd.
  • Исполнение в изолированной среде: Cuckoo Sandbox, ANY.RUN, FireEye AX.
  • Эмуляция: QEMU, Unicorn Engine.

5.3. Методы обратной разработки (reverse engineering) 🛠️

  • Дизассемблирование: преобразование машинного кода в ассемблерный текст (IDA Pro, Ghidra, Radare2).
  • Декомпиляция: восстановление исходного кода высокого уровня (Hex-Rays, Ghidra decompiler, dnSpy для.NET).
  • Распаковка и деобфускация: снятие упаковщиков (UPX, Themida, VMProtect, Enigma Protector).

Выбор конкретных методов определяется характером поставленных вопросов и доступными материалами. 📐🧪

  1. 📋 Пошаговый алгоритм производства экспертизы

Производство экспертизы программ для ЭВМ осуществляется в соответствии со следующим методическим алгоритмом:

Этап 1. Организационно-подготовительный 🗂️
1.1. Изучение определения суда (или договора на досудебное исследование).
1.2. Проверка полноты и достаточности представленных материалов.
1.3. Составление плана-графика работ.
1.4. Подготовка рабочего места и инструментов.

Этап 2. Предварительное исследование объектов 🔎
2.1. Внешний осмотр носителей информации (фотофиксация).
2.2. Вычисление контрольных сумм для каждого файла.
2.3. Определение типа файлов (сигнатуры, магические числа).
2.4. Выявление наличия упаковщиков или обфускации.

Этап 3. Разработка частной методики 📝
3.1. Детализация методов применительно к конкретному объекту.
3.2. Подготовка тестовых стендов и виртуальных машин.
3.3. Создание референсных образцов (при необходимости).

Этап 4. Проведение исследования 🧪
4.1. Статический анализ кода (по этапам, описанным в разделе 5.1).
4.2. Динамический анализ (по этапам, описанным в разделе 5.2).
4.3. Сравнительное исследование (сопоставление с образцами).
4.4. Документирование каждого действия с фиксацией результатов.

Этап 5. Анализ и синтез полученных данных 🧠
5.1. Систематизация выявленных признаков.
5.2. Оценка их идентификационной значимости.
5.3. Формулирование промежуточных выводов.
5.4. Сопоставление с вопросами экспертизы.

Этап 6. Оформление заключения эксперта 📄
6.1. Написание вводной, исследовательской и синтезирующей частей.
6.2. Формулирование выводов (категорических или вероятностных).
6.3. Подготовка приложений (скриншоты, таблицы, распечатки кода, графики).
6.4. Подписание и направление заказчику или в суд.

Этап 7. Дополнительные и повторные экспертизы 🔁 (при назначении)
7.1. Изучение замечаний к первичному заключению.
7.2. Проведение дополнительных исследований (без изменения выводов).
7.3. Повторное исследование с учетом новых материалов.

Весь ход работ фиксируется в рабочем журнале эксперта. 📋✔️

  1. 📄 Структура и содержание заключения эксперта

Заключение эксперта по результатам экспертизы программ для ЭВМ должно содержать следующие обязательные элементы:

7.1. Вводная часть:

  • наименование экспертного учреждения;
  • дата и место составления;
  • основание производства (номер дела, определение суда или договор);
  • сведения об эксперте (ФИО, образование, стаж, квалификация, аттестация);
  • предупреждение об ответственности по ст. 307 УК РФ (подпись эксперта);
  • список поступивших материалов с указанием контрольных сумм;
  • вопросы, поставленные перед экспертом (в точной формулировке).

7.2. Исследовательская часть:

  • описание состояния объектов (видимые повреждения, маркировка);
  • описание примененных методов и инструментов с обоснованием выбора;
  • детальное изложение хода исследования по каждому вопросу;
  • промежуточные результаты (таблицы, скриншоты, графики, листинги кода);
  • отметки о применении технических средств (фотоаппарат, write-blocker, ПО).

7.3. Синтезирующая часть (анализ):

  • логическое обоснование перехода от выявленных признаков к выводам;
  • оценка совпадений и различий;
  • указание на факторы, которые могли повлиять на результат (оптимизация компилятора, обфускация).

7.4. Выводы:

  • конкретные, краткие, однозначные ответы на каждый вопрос;
  • категорические («да», «нет») или вероятностные («с высокой степенью вероятности», «не представляется возможным»).

7.5. Приложения:

  • распечатки фрагментов кода с выделением совпадающих блоков;
  • сравнительные таблицы;
  • акты применения технических средств;
  • фототаблицы (при выездной работе).

Заключение подписывается экспертом и заверяется печатью организации. 📑🖊️

  1. 🧪 Кейс №1. Идентификационная экспертиза: установление факта заимствования кода в ERP-системе

📌 Вводные данные: АО «СофтПром» (Истец) обратилось в Арбитражный суд г. Москвы с иском к ООО «ТехноСофт» (Ответчик) о взыскании 87 млн руб. за незаконное использование программы управления производственными запасами. Истец утверждал, что Ответчик скопировал его код. Ответчик заявлял о самостоятельной разработке.

🔬 Проведена судебная экспертиза программ для ЭВМ. Объекты исследования: исходный код Истца (540 тыс. строк на C#.NET Framework 4.7.2) и объектный код Ответчика (исполняемый файл ERPModule.exe). Исходный код Ответчика не был предоставлен.

📐 Методика исследования:

  1. Предварительный этап: вычислены контрольные суммы всех файлов. Определено, что код Ответчика скомпилирован с оптимизацией /O2.
  2. Дизассемблирование объектного кода Ответчика: использована IDA Pro 8.3. Получено ассемблерное представление объемом 1,8 млн строк.
  3. Компиляция исходного кода Истца в аналогичных условиях (VS 2019,.NET 4.7.2, оптимизация /O2) для получения референсного объектного кода.
  4. Нормализация кода: приведение к единому виду (замена абсолютных адресов на метки, игнорирование различий в регистрах).
  5. Сравнение с использованием BinDiff: сопоставлены графы потоков управления (CFG) для 3500 функций.
  6. Анализ уникальных констант: в коде Истца обнаружены 47 специфических числовых констант (например, коэффициенты для расчета оптимального заказа — 0.3714285714). В коде Ответчика выявлены те же константы с точностью до 10 знака.
  7. Выявление ошибок (багов): в коде Истца присутствовал специфический баг в алгоритме расчета резервного запаса (при определенном условии возникало переполнение int). Аналогичный баг воспроизведен при динамическом анализе кода Ответчика.

📊 Результаты исследования:

  • Установлено 93% совпадения нетривиальных фрагментов кода (функции более 50 инструкций).
  • Коэффициент корреляции CFG для ключевого модуля расчета заказов составил 0,94.
  • Совпадение уникальных констант — 43 из 47 (91,5%).

📄 Вывод эксперта: Объектный код Ответчика содержит фрагменты, которые с высокой степенью вероятности (более 95%) являются результатом компиляции исходного кода Истца с незначительными модификациями (замена имен переменных, перестановка блоков).

🏛️ Судебное решение: Иск удовлетворен. Взыскано 72 млн руб. компенсации и судебные расходы. Заключение эксперта признано надлежащим доказательством. 💼⚖️

  1. 🧪 Кейс №2. Технико-криминалистическая экспертиза: выявление недекларированной возможности в АСУ ТП

📌 Вводные данные: В производстве Следственного комитета РФ находилось уголовное дело по факту остановки конвейера на химическом комбинате (ч. 1 ст. 272 УК РФ — неправомерный доступ к компьютерной информации). Поставщик ПО (ООО «Автоматика») подозревался во внедрении «закладки». Назначена судебная экспертиза программ для ЭВМ.

🔬 Объекты: прошивка промышленного контроллера Siemens S7-1200 (файл.bin, 4 МБ), архив логов SCADA-системы, дампы памяти.

📐 Методика исследования:

  1. Снятие дампа Flash-памяти контроллера с помощью программатора (использован Dediprog SF600).
  2. Анализ структуры прошивки: выявлено, что она состоит из загрузчика (2 КБ), основного кода и пользовательского блока.
  3. Дизассемблирование (архитектура ARM Cortex-M3) — использована Ghidra 11.0.
  4. Статический поиск строк — обнаружена строка «debug_backdoor_enable».
  5. Динамический анализ на стенде (контроллер + нагрузочный модуль). При подаче определенной последовательности входных сигналов (4 импульса с интервалом 300 мс) прошивка инициировала запись данных в скрытый буфер.
  6. Анализ сетевого трафика (Wireshark): через 1 минуту после активации контроллер отправлял UDP-пакет на IP 10.10.10.200 с зашифрованными данными о работе конвейера.
  7. Обратная разработка алгоритма шифрования — простой XOR с ключом 0xDE.

📊 Результаты: Установлено наличие недекларированной возможности, позволяющей удаленно получать информацию о технологическом процессе и воздействовать на управление (остановка конвейера по команде).

📄 Вывод: Прошивка содержит вредоносный функционал (программную закладку), не предусмотренный технической документацией.

🏛️ Уголовное дело: Передано в суд. Поставщик привлечен к ответственности. 🏭🔐🚨

  1. 🧪 Кейс №3. Лицензионная экспертиза: нарушение условий GPL-лицензии в коммерческом продукте

📌 Вводные данные: Фонд свободного программного обеспечения (представитель в РФ) направил претензию компании ООО «ВидеоМир» за использование библиотеки FFmpeg (лицензия LGPL) в своем видеоредакторе без предоставления исходного кода модификаций. Назначена досудебная экспертиза программ для ЭВМ по инициативе ответчика.

🔬 Объекты: исполняемый файл VideoEdit.exe (версия 5.2), оригинальная библиотека FFmpeg (исходный код и DLL).

📐 Методика исследования:

  1. Анализ зависимостей (Dependency Walker) — установлено, что VideoEdit.exe статически слинкован с кодеками FFmpeg (отсутствует отдельный FFmpeg.dll).
  2. Поиск строк в исполняемом файле: найдены строки «libavcodec», «FFmpeg version 4.4», а также полное уведомление об авторских правах.
  3. Сравнение сигнатур функций: извлечены хеши 1200 функций. 340 функций совпали с функциями FFmpeg с точностью 99,9%.
  4. Анализ лицензионных условий: LGPL требует, чтобы при статической линковке библиотеки все производное ПО распространялось под той же лицензией или предоставлялся объектный код для перелинковки.
  5. Проверка соблюдения: исходный код VideoEdit.exe не опубликован, объектный код для перелинковки не предоставлен.

📊 Результаты: Нарушение условий LGPL подтверждено. Статическая линковка без открытия исходных кодов является грубым нарушением.

📄 Заключение: В действиях ООО «ВидеоМир» усматривается нарушение лицензионных обязательств.

💼 Разрешение: ООО «ВидеоМир» по итогам переговоров опубликовало исходные коды модификаций на GitHub и выплатило компенсацию правообладателю. 📜💻

  1. 🧰 Инструментальное обеспечение: требования и порядок применения

Для качественного производства экспертизы программ для ЭВМ необходимо использовать следующий минимальный набор инструментов с соблюдением лицензионных требований:

11.1. Аппаратное обеспечение:

  • Рабочая станция эксперта (процессор не ниже Intel i7, RAM ≥ 32 ГБ, SSD ≥ 1 ТБ).
  • Write-blocker аппаратный (Tableau, Logicube или аналог) — обязателен при работе с оригинальными носителями.
  • Клонировщик дисков (например, Startech duplicator).
  • Программатор Flash-памяти (для работы с прошивками).
  • Фотоаппарат для фиксации.

11.2. Программное обеспечение:

  • Дизассемблеры: IDA Pro (Hex-Rays) — профессиональный, Ghidra — свободный.
  • Отладчики: x64dbg (Windows), WinDbg (kernel debug), gdb (Linux).
  • Средства статического анализа: SonarQube, PVS-Studio, Clang Static Analyzer.
  • Средства динамического анализа: Process Monitor, API Monitor, Wireshark, Cuckoo Sandbox.
  • Средства сравнения: Beyond Compare (коммерческий), Meld (свободный), BinDiff.
  • Средства для работы с образами: FTK Imager, dd (Linux), Guymager.

11.3. Порядок применения:

  • Все программные средства должны быть установлены на чистую рабочую станцию.
  • Перед началом работы проводится антивирусная проверка.
  • Включена запись экрана (или ведется журнал действий). 🖥️🧰
  1. 🧪 Особенности исследования обфусцированного и запакованного кода

Одной из наиболее сложных задач является анализ кода, прошедшего обфускацию (намеренное запутывание) или упаковку (сжатие/шифрование). Методика работы:

12.1. Определение типа упаковки/обфускации:

  • Используются инструменты: Detect It Easy (DIE), PEiD, ExeInfo PE.
  • Типовые упаковщики: UPX (распаковывается автоматически), Themida, VMProtect, Enigma Protector, Obsidium.

12.2. Распаковка (unpacking):

  • Автоматическая: для UPX — upx -d файл.exe.
  • Ручная (в отладчике): установить точку останова на OEP (Original Entry Point). Алгоритм:
    a) Запустить файл под отладчиком (x64dbg).
    b) Обойти анти-отладочные приемы (NOP-инструкции, патч флагов).
    c) Дождаться, пока упаковщик распакует оригинальный код в память.
    d) Перейти к OEP (обычно по инструкции JMP или RET).
    e) Выполнить дамп памяти (Scylla или встроенный дампер x64dbg).
    f) Восстановить импортные таблицы (Import Reconstruction).

12.3. Деобфускация:

  • Для скриптовых языков (JavaScript, Python) — использовать деобфускаторы (de4js, unpy2exe).
  • Для.NET — инструменты: de4dot (снимает большинство обфускаторов: ConfuserEx, Dotfuscator).
  • Для нативных приложений — ручной анализ в IDA Pro с плагинами (например, Deobfuscator).

12.4. Анализ распакованного кода:

  • После распаковки применяются стандартные методы статического и динамического анализа.
  • В заключении обязательно указывается факт наличия упаковки/обфускации и методы, примененные для ее преодоления.

❗️ Важно: При невозможности распаковки эксперт делает вывод о невозможности ответить на поставленные вопросы. 🔓🔐

  1. 🧬 Методика сравнительного анализа исходных кодов (плагиат)

Сравнительный анализ — одна из самых частых задач. Методика включает следующие шаги:

Шаг 1. Нормализация кода:

  • Удаление комментариев и пробелов.
  • Приведение имен переменных и функций к унифицированному виду (например, var1, var2).
  • Учет эквивалентных синтаксических конструкций (if(a) b++; vs if(a) { b++; }).

Шаг 2. Вычисление хешей блоков:

  • Разбиение кода на блоки фиксированного размера (например, 100 строк с перекрытием 50%).
  • Вычисление хешей (MD5, SHA-1) для каждого блока.

Шаг 3. Поиск совпадений:

  • Использование алгоритмов LCS (Longest Common Subsequence).
  • Использование специализированных утилит: Moss (Measure Of Software Similarity), JPlag, Simian.
  • Ручная проверка наиболее длинных совпадений.

Шаг 4. Анализ уникальных маркеров:

  • Поиск уникальных строк (ошибки, комментарии на определенном языке).
  • Поиск специфических числовых констант.
  • Поиск нетривиальных алгоритмических конструкций.

Шаг 5. Статистическая оценка:

  • Процент совпадения нетривиальных блоков (не менее 100 символов).
  • Оценка вероятности случайного совпадения (при больших объемах кода стремится к нулю).

Шаг 6. Формулирование вывода:

  • Если совпадение нетривиальных блоков превышает 30-40% при объеме кода >10 000 строк — вероятно заимствование.
  • Если превышает 80% — однозначно заимствование. 📊🔍
  1. 🧪 Методика динамического анализа с мониторингом системных вызовов

Динамический анализ незаменим при исследовании вредоносного ПО или поиске недекларированных возможностей.

14.1. Подготовка среды:

  • Использование виртуальной машины (VMware, VirtualBox, QEMU).
  • Создание снапшота (чистого состояния) до запуска.
  • Отключение сетевых мостов или настройка имитации сети (INetSim).

14.2. Инструменты мониторинга:

  • Process Monitor (ProcMon) — отслеживает файловую систему, реестр, процессы.
  • API Monitor — перехватывает вызовы Windows API (с параметрами).
  • Wireshark — захват сетевого трафика.
  • strace (Linux) — трассировка системных вызовов.

14.3. Проведение анализа:

  • Запуск исследуемой программы.
  • Фиксация всех действий в течение 5-15 минут (или до завершения).
  • При подозрении — выполнение действий, активирующих скрытый функционал (специфические команды, даты, таймеры).
  • Остановка мониторинга, сохранение логов.

14.4. Анализ результатов:

  • Поиск обращений к необычным библиотекам (криптографическим, сетевым).
  • Поиск исходящих соединений на неожиданные IP-адреса.
  • Поиск записи в скрытые файлы или разделы реестра.
  • Поиск запуска других процессов (инжект кода).

14.5. Документирование:

  • В заключении приводятся скриншоты логов с указанием времени и параметров.
  • Обязательна привязка к контрольной сумме исследованного файла. 🧪🖥️
  1. 🧾 Требования к фиксации и хранению объектов (Chain of Custody)

Соблюдение цепочки хранения доказательств критично для допустимости результатов экспертизы программ для ЭВМ.

15.1. Приемка объектов:

  • Составление акта приема-передачи с указанием: даты, места, участвующих лиц.
  • Описание внешнего состояния носителя (наклейки, повреждения, маркировка).
  • Вычисление контрольных сумм (MD5 или SHA-256) для каждого файла и запись их в акт.
  • Фотофиксация носителя.

15.2. Хранение:

  • Оригиналы носителей хранятся в опечатанном сейфе или металлическом шкафу.
  • Доступ к оригиналам имеет только руководитель экспертного учреждения.
  • Эксперт работает исключительно с битовыми копиями (образами).

15.3. Работа с копиями:

  • Копирование осуществляется с использованием аппаратного write-blocker’а.
  • Копия подписывается экспертом, указывается дата и контрольная сумма.
  • Копия хранится в изолированной папке, защищенной от записи.

15.4. Передача объектов (если предусмотрена):

  • Оформляется акт передачи.
  • Проверяются контрольные суммы до и после передачи.

15.5. Уничтожение (по окончании дела):

  • По письменному указанию суда или заказчика.
  • Акт уничтожения с подписями. 🔐📦
  1. 🌍 Выездная экспертиза: организация и проведение в регионах России

Актуальная проблема: Специалистов, способных провести экспертизу программ для ЭВМ на высоком методическом уровне, крайне мало (по экспертным оценкам, не более 300 на всю РФ). Большинство сосредоточено в Москве, Санкт-Петербурге и Новосибирске. При этом потребность в таких исследованиях возникает во всех регионах.

Наше решение: Мы готовы вылетать для проведения данной экспертизы в любой регион России — от Калининграда до Камчатки, от Мурманска до Дербента. ✈️🗺️

16.1. Основания для выезда:

  • Определение суда о производстве экспертизы вне места нахождения экспертной организации.
  • Договор с заказчиком на проведение выездного досудебного исследования.

16.2. Регламент выезда:

  1. Заявка: заказчик направляет запрос с указанием региона, количества объектов, предполагаемых дат.
  2. Согласование: мы подтверждаем возможность выезда, направляем смету командировочных расходов.
  3. Предоплата: 50% стоимости + полная стоимость командировочных (авиа/ЖД билеты, гостиница, суточные).
  4. Прибытие: эксперт (1-2 человека) прибывает на место с оборудованием (ноутбуки, write-blocker, камера, инструменты для клонирования).
  5. Осмотр и изъятие: в присутствии заказчика (и/или понятых) производится:
    • визуальный осмотр;
    • фотофиксация;
    • клонирование носителей на выездной SSD (с записью контрольных сумм);
    • опечатывание оригиналов (если требуется).
  6. Акт выполненных работ: подписывается сторонами.
  7. Лабораторный этап: копии носителей доставляются в основную лабораторию, где проводится полный цикл анализа.
  8. Предоставление заключения: направляется заказчику/в суд в электронном и бумажном виде.

16.3. Сроки выезда:

  • Подготовка к выезду: 2-5 рабочих дней.
  • Время в пути: зависит от региона (от 1 до 10 дней с учетом возврата).
  • Лабораторная обработка: от 10 до 60 дней (в зависимости от объема).

16.4. Примеры регионов, куда осуществлялись выезды:

  • Республика Крым (г. Симферополь) — прошивки навигационного оборудования.
  • Краснодарский край (г. Краснодар) — ERP-система нефтетрейдера.
  • Свердловская область (г. Екатеринбург) — АСУ ТП завода.
  • Иркутская область (г. Иркутск) — банковское ПО.
  • Приморский край (г. Владивосток) — споры о мобильном приложении.
  • Республика Дагестан (г. Махачкала) — исследование кассового ПО.

Выезд возможен в любой, даже самый удаленный регион (Чукотка, Ямал, Камчатка) при условии транспортной доступности. 🚐✈️

  1. 📊 Критерии оценки степени заимствования (метрический подход)

Для объективизации выводов предлагается использовать следующую шкалу:

Степень совпадения нетривиальных блоков (более 50 символов) Интерпретация Судебная практика
0-5% Оригинальный код Заимствование не установлено
5-15% Незначительное заимствование (отдельные фрагменты) Может быть признано добросовестным использованием
15-40% Умеренное заимствование Вероятно нарушение, но необходимы дополнительные доказательства
40-70% Значительное заимствование Как правило, признается контрафактностью
70-100% Практически полное копирование Однозначная контрафактность

При расчете процента совпадения исключаются:

  • стандартные библиотечные вызовы;
  • общеизвестные алгоритмы (сортировка пузырьком и т.п.);
  • код, сгенерированный автоматически (IDE, ORM). 📈📐
  1. 🧩 Ошибки экспертов и способы их предотвращения

Анализ экспертной практики позволил выявить типичные ошибки при производстве экспертизы программ для ЭВМ:

Ошибка 1. Работа с оригинальным носителем без write-blocker’а.

  • Последствие: изменение временных меток, случайная запись — недопустимость заключения.
  • Предотвращение: использование аппаратного write-blocker’а + обязательное клонирование.

Ошибка 2. Недостаточное описание примененных методов.

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

Ошибка 3. Сравнение кода без учета оптимизаций компилятора.

  • Последствие: ложные совпадения или ложные различия.
  • Предотвращение: компиляция референсного кода в тех же условиях, использование нормализации.

Ошибка 4. Игнорирование обфускации.

  • Последствие: анализ бессмыслен, выводы ошибочны.
  • Предотвращение: предварительный анализ на упаковщики/обфускаторы.

Ошибка 5. Отсутствие проверки на вредоносность перед запуском.

  • Последствие: заражение рабочей станции эксперта, потеря данных.
  • Предотвращение: предварительный антивирусный скрининг + изолированная ВМ.

Ошибка 6. Выход за пределы компетенции (ответы на правовые вопросы).

  • Последствие: заключение не принимается.
  • Предотвращение: строго соблюдать границы: эксперт отвечает на фактические, а не правовые вопросы. ⚠️📋
  1. 📚 Особенности исследования ПО для мобильных платформ (iOS, Android)

Мобильные приложения имеют свою специфику, которая должна учитываться в методике.

19.1. Android (.apk,.aab):

  • Распаковка APK-файла (по сути ZIP-архив).
  • Анализ манифеста AndroidManifest.xml (разрешения, активности).
  • Декомпиляция DEX-кода в Java (используются jadx, CFR, Bytecode Viewer).
  • Анализ нативных библиотек (.so) — стандартными методами (IDA Pro, Ghidra).
  • Динамический анализ на эмуляторе (Android Studio AVD) или реальном устройстве с перехватом трафика (Frida, Objection).

19.2. iOS (.ipa):

  • Извлечение исполняемого файла из.ipa (Mach-O формат).
  • Анализ с помощью IDA Pro (поддерживает ARM64).
  • Декомпиляция Objective-C/Swift (Hopper, Ghidra).
  • Динамический анализ на джейлбрейкнутом устройстве (cycript, Frida).

19.3. Специфические вопросы:

  • Исследование разрешений (доступ к контактам, геолокации, камере).
  • Выявление скрытой отправки данных на сторонние серверы.
  • Анализ обфускации (ProGuard для Android, LLVM Obfuscator для iOS).

Экспертиза программ для ЭВМ для мобильных платформ требует дополнительных знаний в области мобильной безопасности. 📱🔒

  1. 🧠 Исследование алгоритмов и нейросетей (AI-экспертиза)

Новое и быстро развивающееся направление — экспертиза систем искусственного интеллекта.

20.1. Объекты исследования:

  • Архитектура нейронной сети (количество слоев, типы, функции активации).
  • Обученные весовые коэффициенты (файлы.h5,.pth,.pb,.onnx).
  • Датасеты (обучающие, валидационные, тестовые).
  • Код обучения и инференса (Python, TensorFlow, PyTorch).

20.2. Методика:

  • Сравнение архитектур: построение графа сети, вычисление метрик (количество параметров, FLOPs).
  • Анализ весов: если сети обучались на одинаковых данных, веса могут быть близкими. Используется корреляционный анализ.
  • Анализ датасетов: проверка, не были ли использованы данные истца (например, размеченные изображения).
  • Black-box тестирование: подача одних и тех же входных данных, сравнение выходов.

20.3. Пример из практики:
В споре о праве на систему распознавания лиц экспертиза показала, что 80% весовых коэффициентов ответчика лежат в 5% доверительном интервале от весов истца — доказательство заимствования. 🤖📈

  1. 📋 Типовые вопросы эксперту (с комментариями)

При назначении экспертизы программ для ЭВМ суд или сторона может задать следующие вопросы (приводим корректные формулировки):

По авторскому праву и плагиату:

  1. Содержит ли код программы ответчика (объектный/исходный) фрагменты, идентичные фрагментам кода истца, перечисленным в приложении №X?
  2. Является ли программа ответчика результатом переработки (модификации) программы истца?
  3. Имеются ли в коде ответчика уникальные строки, комментарии, константы, присутствующие в коде истца?

По лицензиям:
4. Соответствует ли способ использования библиотеки (статическая/динамическая линковка) условиям лицензии (указать лицензию)?
5. Выполнены ли требования об указании авторства и открытии исходных кодов?

По вредоносному функционалу:
6. Имеет ли исследуемое ПО недекларированные возможности (закладки) по передаче данных третьим лицам?
7. Осуществляет ли программа действия, не предусмотренные технической документацией?

По соответствию документации:
8. Реализует ли программа функционал, заявленный в техническом задании?
9. Имеются ли в программе функции, отсутствующие в документации?

Некорректные вопросы (эксперт не отвечает):

  • Является ли ответчик плагиатором? (правовая оценка)
  • Какова рыночная стоимость программы? (оценочная деятельность)
  • Было ли совершено преступление? (юрисдикция суда) ❓📄
  1. 🧾 Стоимость и сроки: методика расчета

Стоимость экспертизы программ для ЭВМ рассчитывается на основе следующих параметров:

Базовые ставки (на 2025 год):

Вид работ Единица измерения Стоимость (руб.)
Изучение материалов дела (до 200 стр.) 1 час 3 500
Статический анализ 1 000 строк исходного кода 1 000 строк 5 000
Статический анализ 1 МБ объектного кода 1 МБ 7 000
Динамический анализ (1 сессия) 1 сессия (до 4 часов) 25 000
Дизассемблирование (за 1 час работы) 1 час 4 500
Оформление заключения (за 1 страницу) 1 стр. (1800 зн.) 1 200
Выезд эксперта (командировочные) 1 сутки 5 000 + билеты/гостиница

Пример расчета для объема 200 000 строк кода + динамика:

  • Статика: 200 × 5 000 = 1 000 000 руб.
  • Динамика: 5 сессий × 25 000 = 125 000 руб.
  • Оформление заключения (50 стр.): 50 × 1 200 = 60 000 руб.
  • Итого: 1 185 000 руб. (без выезда)

Сроки:

  • до 50 000 строк: 10-15 рабочих дней
  • 50-200 тыс. строк: 15-30 рабочих дней
  • 200-500 тыс. строк: 30-60 рабочих дней
  • более 500 тыс. строк: 60-90 рабочих дней

Срочные работы (в 2 раза быстрее) — коэффициент 1,5-2,0. 💵⏳

  1. 🔄 Оспаривание заключения: порядок и основания

Заключение эксперта может быть оспорено следующими способами:

23.1. Допрос эксперта (ст. 187 ГПК, ст. 86 АПК):

  • Эксперт вызывается в суд.
  • Стороны задают вопросы для разъяснения заключения.
  • Не является самостоятельным оспариванием, но позволяет выявить противоречия.

23.2. Рецензия специалиста (досудебное или судебное):

  • Специалист (не эксперт по делу) готовит письменную рецензию.
  • Указывает на методические ошибки, неполноту, противоречия.
  • Приобщается к делу как письменное доказательство.

23.3. Повторная экспертиза (ст. 87 ГПК, ст. 87 АПК):

  • Назначается при наличии сомнений в обоснованности заключения.
  • Проводится другим экспертом или другим экспертным учреждением.
  • Имеет преимущественную силу перед первичной экспертизой.

23.4. Дополнительная экспертиза:

  • Назначается при неполноте ответов (не все вопросы исследованы).
  • Проводится тем же экспертом.

Важно: простая ссылка на несогласие с выводами без конкретных аргументов не является основанием для назначения повторной экспертизы. ⚖️📑

  1. 🧪 Методика работы с дампами памяти (memory forensics)

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

24.1. Создание дампа:

  • Использование инструментов: DumpIt, FTK Imager, Belkasoft RAM Capturer.
  • Должен быть создан до выключения компьютера.

24.2. Анализ дампа:

  • Использование Volatility Framework (популярный фреймворк).
  • Плагины: pslist (список процессов), netscan (сетевые соединения), malfind (поиск инжектированного кода).

24.3. Поиск строк и ключей:

  • Поиск по регулярным выражениям (пароли, ключи шифрования, URL).

24.4. Восстановление процессов:

  • Дамп отдельных процессов из памяти для последующего анализа в IDA Pro.

Данный метод особенно ценен при расследовании атак программ-вымогателей. 💾🔍

  1. 🟩 Заключение: интеграция методических принципов и официальный ресурс

Представленное методическое руководство охватывает все ключевые аспекты производства экспертизы программ для ЭВМ — от нормативной базы и классификации методов до детального описания кейсов, инструментария, требований к фиксации и процессуальных аспектов. Следование изложенным принципам и алгоритмам позволяет обеспечить получение достоверных, воспроизводимых и процессуально допустимых результатов.

Особо важное обстоятельство: учитывая, что квалифицированная экспертиза программ для ЭВМ является редким видом исследований (на всю Россию — единицы лабораторий, способных работать с обфускацией, низкоуровневой обратной разработкой и динамическим анализом), наша организация готова вылетать для проведения данной экспертизы в любой регион России — от Калининградской области до Камчатского края, от Республики Карелия до Республики Дагестан. Выездная группа обеспечивает полный цикл: осмотр, клонирование, фиксацию и доставку материалов в лабораторию.

Единственный официальный сайт, на котором представлены образцы заключений, актуальные цены, форма заявки на выездную экспертизу, а также возможность заказать исследование:
➡️ https://sud-expertiza.ru⬅️

🟩 Методическая точность, процессуальная чистота и готовность работать в любом регионе — наши основные принципы. 🟩

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

Новые статьи

🏗️ Рецензия на строительную экспертизу — способ оспорить заключение в суде

Фундаментальное методическое руководство по исследованию исходного и объектного кода в судебных и досудебных целях 📘🧪 Ув…

🔍 Криминалистическая экспертиза

Фундаментальное методическое руководство по исследованию исходного и объектного кода в судебных и досудебных целях 📘🧪 Ув…

🕵️‍♂️ Судебная портретная экспертиза

Фундаментальное методическое руководство по исследованию исходного и объектного кода в судебных и досудебных целях 📘🧪 Ув…

📄 Техническая экспертиза документов

Фундаментальное методическое руководство по исследованию исходного и объектного кода в судебных и досудебных целях 📘🧪 Ув…

🔥 Пожарно-техническая экспертиза

Фундаментальное методическое руководство по исследованию исходного и объектного кода в судебных и досудебных целях 📘🧪 Ув…