Фундаментальное методическое руководство по исследованию исходного и объектного кода в судебных и досудебных целях
📘🧪 Уважаемые коллеги! Настоящее методическое руководство представляет собой систематизированное изложение принципов, методов, алгоритмов и практических рекомендаций по организации и проведению экспертизы программ для ЭВМ. Данный вид исследований относится к числу наиболее сложных и наукоемких в современной судебной экспертизе, поскольку требует от специалиста глубоких познаний в области дискретной математики, теории алгоритмов, языков программирования, архитектуры вычислительных систем, криптографии, а также процессуального права. Материал структурирован по разделам, каждый из которых представляет собой законченный методический блок. 🖥️⚖️🧠
- 📌 Введение: место и роль экспертизы ПО в системе судебных исследований
В условиях цифровой трансформации всех сфер общественной жизни программное обеспечение становится не только продуктом интеллектуальной деятельности, но и объектом гражданского оборота, предметом лицензионных соглашений, а также орудием или средством совершения правонарушений. Экспертиза программ для ЭВМ представляет собой процессуальное действие, заключающееся в проведении исследования программы для электронных вычислительных машин (в исходной, объектной форме или в виде прошивки) и даче заключения по вопросам, требующим специальных познаний в области компьютерных наук и информационных технологий. Данное руководство призвано унифицировать подходы и минимизировать экспертные ошибки. 🎯📚
- 🧩 Нормативно-правовая основа производства экспертизы
Методическая работа базируется на следующих нормативных документах:
2.1. Федеральное законодательство:
- Федеральный закон от 31.05.2001 № 73-ФЗ «О государственной судебно-экспертной деятельности в Российской Федерации» — определяет правовые основы, принципы независимости, объективности и полноты.
- Гражданский процессуальный кодекс РФ (ст. 79–87) — регламентирует назначение и производство экспертизы в гражданском процессе.
- Арбитражный процессуальный кодекс РФ (ст. 82–87) — особенности экспертизы в арбитражном судопроизводстве.
- Уголовно-процессуальный кодекс РФ (ст. 195–207) — порядок назначения экспертизы по уголовным делам.
- Часть четвертая Гражданского кодекса РФ (ст. 1259, 1261, 1270) — правовая охрана программ для ЭВМ как объектов авторского права.
2.2. Ведомственные и отраслевые документы:
- Приказ Минюста России от 27.12.2012 № 237 «Об утверждении Перечня родов (видов) судебных экспертиз».
- Методические рекомендации по производству судебных компьютерно-технических экспертиз (РФЦСЭ при Минюсте России).
- ГОСТ Р 57194-2016 «Защита информации. Судебная компьютерно-техническая экспертиза. Общие требования».
Эксперт обязан руководствоваться данными документами в ходе каждого исследования. 📜✅
- 🧰 Объекты экспертного исследования: классификация и требования к предоставлению
При производстве экспертизы программ для ЭВМ на исследование могут быть представлены следующие объекты:
| Код группы | Тип объектов | Примеры | Требования к предоставлению |
| Группа А | Исходные тексты программ | .c,.cpp,.h,.py,.java,.cs,.go,.rs | Полные тексты, с комментариями, без обфускации |
| Группа Б | Исполняемые (объектные) модули | .exe,.dll,.so,.bin,.elf | Без повреждений, с указанием версии компилятора |
| Группа В | Прошивки и встраиваемое ПО | firmware.bin,.hex,.s19 | Дамп, снятый программатором |
| Группа Г | Данные, сопутствующие работе ПО | Логи, дампы памяти, файлы конфигурации, реестр | В неизменном виде, с хешами |
| Группа Д | Техническая документация | ТЗ, спецификации, блок-схемы, UML-диаграммы | Подписанные, с датами |
Все объекты перед началом исследования подлежат обязательной фиксации с вычислением контрольных сумм (MD5, SHA-256). Образцы носителей создаются с использованием аппаратных write-blocker’ов. 🗂️📸
- 🧬 Классификация видов экспертизы ПО по целям и задачам
В зависимости от поставленных вопросов и материалов дела выделяют следующие виды экспертизы программ для ЭВМ:
4.1. Автороведческая экспертиза ПО 🖋️
- Установление авторства конкретного лица или организации.
- Определение степени оригинальности кода.
4.2. Идентификационная экспертиза (на предмет заимствования/плагиата) 🔍
- Сравнение исходных или объектных кодов.
- Выявление контрафактности.
4.3. Технико-криминалистическая экспертиза ПО 🕵️
- Обнаружение недекларированных возможностей (закладок, «черных ходов»).
- Анализ вредоносного функционала.
- Исследование следов взлома.
4.4. Лицензионная экспертиза 📜
- Проверка соблюдения условий лицензионного соглашения (включая open-source лицензии: GPL, MIT, Apache и др.).
4.5. Экспертиза соответствия технической документации 📄
- Анализ реализации заявленных функций.
- Выявление избыточного функционала.
Каждый вид требует специфических методов и инструментов. 🧩🎯
- 🛠️ Методы исследования: полный методический арсенал
В основе любой экспертизы программ для ЭВМ лежат три группы методов, применяемых как изолированно, так и в комбинации.
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.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. Повторное исследование с учетом новых материалов.
Весь ход работ фиксируется в рабочем журнале эксперта. 📋✔️
- 📄 Структура и содержание заключения эксперта
Заключение эксперта по результатам экспертизы программ для ЭВМ должно содержать следующие обязательные элементы:
7.1. Вводная часть:
- наименование экспертного учреждения;
- дата и место составления;
- основание производства (номер дела, определение суда или договор);
- сведения об эксперте (ФИО, образование, стаж, квалификация, аттестация);
- предупреждение об ответственности по ст. 307 УК РФ (подпись эксперта);
- список поступивших материалов с указанием контрольных сумм;
- вопросы, поставленные перед экспертом (в точной формулировке).
7.2. Исследовательская часть:
- описание состояния объектов (видимые повреждения, маркировка);
- описание примененных методов и инструментов с обоснованием выбора;
- детальное изложение хода исследования по каждому вопросу;
- промежуточные результаты (таблицы, скриншоты, графики, листинги кода);
- отметки о применении технических средств (фотоаппарат, write-blocker, ПО).
7.3. Синтезирующая часть (анализ):
- логическое обоснование перехода от выявленных признаков к выводам;
- оценка совпадений и различий;
- указание на факторы, которые могли повлиять на результат (оптимизация компилятора, обфускация).
7.4. Выводы:
- конкретные, краткие, однозначные ответы на каждый вопрос;
- категорические («да», «нет») или вероятностные («с высокой степенью вероятности», «не представляется возможным»).
7.5. Приложения:
- распечатки фрагментов кода с выделением совпадающих блоков;
- сравнительные таблицы;
- акты применения технических средств;
- фототаблицы (при выездной работе).
Заключение подписывается экспертом и заверяется печатью организации. 📑🖊️
- 🧪 Кейс №1. Идентификационная экспертиза: установление факта заимствования кода в ERP-системе
📌 Вводные данные: АО «СофтПром» (Истец) обратилось в Арбитражный суд г. Москвы с иском к ООО «ТехноСофт» (Ответчик) о взыскании 87 млн руб. за незаконное использование программы управления производственными запасами. Истец утверждал, что Ответчик скопировал его код. Ответчик заявлял о самостоятельной разработке.
🔬 Проведена судебная экспертиза программ для ЭВМ. Объекты исследования: исходный код Истца (540 тыс. строк на C#.NET Framework 4.7.2) и объектный код Ответчика (исполняемый файл ERPModule.exe). Исходный код Ответчика не был предоставлен.
📐 Методика исследования:
- Предварительный этап: вычислены контрольные суммы всех файлов. Определено, что код Ответчика скомпилирован с оптимизацией /O2.
- Дизассемблирование объектного кода Ответчика: использована IDA Pro 8.3. Получено ассемблерное представление объемом 1,8 млн строк.
- Компиляция исходного кода Истца в аналогичных условиях (VS 2019,.NET 4.7.2, оптимизация /O2) для получения референсного объектного кода.
- Нормализация кода: приведение к единому виду (замена абсолютных адресов на метки, игнорирование различий в регистрах).
- Сравнение с использованием BinDiff: сопоставлены графы потоков управления (CFG) для 3500 функций.
- Анализ уникальных констант: в коде Истца обнаружены 47 специфических числовых констант (например, коэффициенты для расчета оптимального заказа — 0.3714285714). В коде Ответчика выявлены те же константы с точностью до 10 знака.
- Выявление ошибок (багов): в коде Истца присутствовал специфический баг в алгоритме расчета резервного запаса (при определенном условии возникало переполнение int). Аналогичный баг воспроизведен при динамическом анализе кода Ответчика.
📊 Результаты исследования:
- Установлено 93% совпадения нетривиальных фрагментов кода (функции более 50 инструкций).
- Коэффициент корреляции CFG для ключевого модуля расчета заказов составил 0,94.
- Совпадение уникальных констант — 43 из 47 (91,5%).
📄 Вывод эксперта: Объектный код Ответчика содержит фрагменты, которые с высокой степенью вероятности (более 95%) являются результатом компиляции исходного кода Истца с незначительными модификациями (замена имен переменных, перестановка блоков).
🏛️ Судебное решение: Иск удовлетворен. Взыскано 72 млн руб. компенсации и судебные расходы. Заключение эксперта признано надлежащим доказательством. 💼⚖️
- 🧪 Кейс №2. Технико-криминалистическая экспертиза: выявление недекларированной возможности в АСУ ТП
📌 Вводные данные: В производстве Следственного комитета РФ находилось уголовное дело по факту остановки конвейера на химическом комбинате (ч. 1 ст. 272 УК РФ — неправомерный доступ к компьютерной информации). Поставщик ПО (ООО «Автоматика») подозревался во внедрении «закладки». Назначена судебная экспертиза программ для ЭВМ.
🔬 Объекты: прошивка промышленного контроллера Siemens S7-1200 (файл.bin, 4 МБ), архив логов SCADA-системы, дампы памяти.
📐 Методика исследования:
- Снятие дампа Flash-памяти контроллера с помощью программатора (использован Dediprog SF600).
- Анализ структуры прошивки: выявлено, что она состоит из загрузчика (2 КБ), основного кода и пользовательского блока.
- Дизассемблирование (архитектура ARM Cortex-M3) — использована Ghidra 11.0.
- Статический поиск строк — обнаружена строка «debug_backdoor_enable».
- Динамический анализ на стенде (контроллер + нагрузочный модуль). При подаче определенной последовательности входных сигналов (4 импульса с интервалом 300 мс) прошивка инициировала запись данных в скрытый буфер.
- Анализ сетевого трафика (Wireshark): через 1 минуту после активации контроллер отправлял UDP-пакет на IP 10.10.10.200 с зашифрованными данными о работе конвейера.
- Обратная разработка алгоритма шифрования — простой XOR с ключом 0xDE.
📊 Результаты: Установлено наличие недекларированной возможности, позволяющей удаленно получать информацию о технологическом процессе и воздействовать на управление (остановка конвейера по команде).
📄 Вывод: Прошивка содержит вредоносный функционал (программную закладку), не предусмотренный технической документацией.
🏛️ Уголовное дело: Передано в суд. Поставщик привлечен к ответственности. 🏭🔐🚨
- 🧪 Кейс №3. Лицензионная экспертиза: нарушение условий GPL-лицензии в коммерческом продукте
📌 Вводные данные: Фонд свободного программного обеспечения (представитель в РФ) направил претензию компании ООО «ВидеоМир» за использование библиотеки FFmpeg (лицензия LGPL) в своем видеоредакторе без предоставления исходного кода модификаций. Назначена досудебная экспертиза программ для ЭВМ по инициативе ответчика.
🔬 Объекты: исполняемый файл VideoEdit.exe (версия 5.2), оригинальная библиотека FFmpeg (исходный код и DLL).
📐 Методика исследования:
- Анализ зависимостей (Dependency Walker) — установлено, что VideoEdit.exe статически слинкован с кодеками FFmpeg (отсутствует отдельный FFmpeg.dll).
- Поиск строк в исполняемом файле: найдены строки «libavcodec», «FFmpeg version 4.4», а также полное уведомление об авторских правах.
- Сравнение сигнатур функций: извлечены хеши 1200 функций. 340 функций совпали с функциями FFmpeg с точностью 99,9%.
- Анализ лицензионных условий: LGPL требует, чтобы при статической линковке библиотеки все производное ПО распространялось под той же лицензией или предоставлялся объектный код для перелинковки.
- Проверка соблюдения: исходный код VideoEdit.exe не опубликован, объектный код для перелинковки не предоставлен.
📊 Результаты: Нарушение условий LGPL подтверждено. Статическая линковка без открытия исходных кодов является грубым нарушением.
📄 Заключение: В действиях ООО «ВидеоМир» усматривается нарушение лицензионных обязательств.
💼 Разрешение: ООО «ВидеоМир» по итогам переговоров опубликовало исходные коды модификаций на GitHub и выплатило компенсацию правообладателю. 📜💻
- 🧰 Инструментальное обеспечение: требования и порядок применения
Для качественного производства экспертизы программ для ЭВМ необходимо использовать следующий минимальный набор инструментов с соблюдением лицензионных требований:
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. Порядок применения:
- Все программные средства должны быть установлены на чистую рабочую станцию.
- Перед началом работы проводится антивирусная проверка.
- Включена запись экрана (или ведется журнал действий). 🖥️🧰
- 🧪 Особенности исследования обфусцированного и запакованного кода
Одной из наиболее сложных задач является анализ кода, прошедшего обфускацию (намеренное запутывание) или упаковку (сжатие/шифрование). Методика работы:
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. Нормализация кода:
- Удаление комментариев и пробелов.
- Приведение имен переменных и функций к унифицированному виду (например, 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% — однозначно заимствование. 📊🔍
- 🧪 Методика динамического анализа с мониторингом системных вызовов
Динамический анализ незаменим при исследовании вредоносного ПО или поиске недекларированных возможностей.
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. Документирование:
- В заключении приводятся скриншоты логов с указанием времени и параметров.
- Обязательна привязка к контрольной сумме исследованного файла. 🧪🖥️
- 🧾 Требования к фиксации и хранению объектов (Chain of Custody)
Соблюдение цепочки хранения доказательств критично для допустимости результатов экспертизы программ для ЭВМ.
15.1. Приемка объектов:
- Составление акта приема-передачи с указанием: даты, места, участвующих лиц.
- Описание внешнего состояния носителя (наклейки, повреждения, маркировка).
- Вычисление контрольных сумм (MD5 или SHA-256) для каждого файла и запись их в акт.
- Фотофиксация носителя.
15.2. Хранение:
- Оригиналы носителей хранятся в опечатанном сейфе или металлическом шкафу.
- Доступ к оригиналам имеет только руководитель экспертного учреждения.
- Эксперт работает исключительно с битовыми копиями (образами).
15.3. Работа с копиями:
- Копирование осуществляется с использованием аппаратного write-blocker’а.
- Копия подписывается экспертом, указывается дата и контрольная сумма.
- Копия хранится в изолированной папке, защищенной от записи.
15.4. Передача объектов (если предусмотрена):
- Оформляется акт передачи.
- Проверяются контрольные суммы до и после передачи.
15.5. Уничтожение (по окончании дела):
- По письменному указанию суда или заказчика.
- Акт уничтожения с подписями. 🔐📦
- 🌍 Выездная экспертиза: организация и проведение в регионах России
Актуальная проблема: Специалистов, способных провести экспертизу программ для ЭВМ на высоком методическом уровне, крайне мало (по экспертным оценкам, не более 300 на всю РФ). Большинство сосредоточено в Москве, Санкт-Петербурге и Новосибирске. При этом потребность в таких исследованиях возникает во всех регионах.
Наше решение: Мы готовы вылетать для проведения данной экспертизы в любой регион России — от Калининграда до Камчатки, от Мурманска до Дербента. ✈️🗺️
16.1. Основания для выезда:
- Определение суда о производстве экспертизы вне места нахождения экспертной организации.
- Договор с заказчиком на проведение выездного досудебного исследования.
16.2. Регламент выезда:
- Заявка: заказчик направляет запрос с указанием региона, количества объектов, предполагаемых дат.
- Согласование: мы подтверждаем возможность выезда, направляем смету командировочных расходов.
- Предоплата: 50% стоимости + полная стоимость командировочных (авиа/ЖД билеты, гостиница, суточные).
- Прибытие: эксперт (1-2 человека) прибывает на место с оборудованием (ноутбуки, write-blocker, камера, инструменты для клонирования).
- Осмотр и изъятие: в присутствии заказчика (и/или понятых) производится:
- визуальный осмотр;
- фотофиксация;
- клонирование носителей на выездной SSD (с записью контрольных сумм);
- опечатывание оригиналов (если требуется).
- Акт выполненных работ: подписывается сторонами.
- Лабораторный этап: копии носителей доставляются в основную лабораторию, где проводится полный цикл анализа.
- Предоставление заключения: направляется заказчику/в суд в электронном и бумажном виде.
16.3. Сроки выезда:
- Подготовка к выезду: 2-5 рабочих дней.
- Время в пути: зависит от региона (от 1 до 10 дней с учетом возврата).
- Лабораторная обработка: от 10 до 60 дней (в зависимости от объема).
16.4. Примеры регионов, куда осуществлялись выезды:
- Республика Крым (г. Симферополь) — прошивки навигационного оборудования.
- Краснодарский край (г. Краснодар) — ERP-система нефтетрейдера.
- Свердловская область (г. Екатеринбург) — АСУ ТП завода.
- Иркутская область (г. Иркутск) — банковское ПО.
- Приморский край (г. Владивосток) — споры о мобильном приложении.
- Республика Дагестан (г. Махачкала) — исследование кассового ПО.
Выезд возможен в любой, даже самый удаленный регион (Чукотка, Ямал, Камчатка) при условии транспортной доступности. 🚐✈️
- 📊 Критерии оценки степени заимствования (метрический подход)
Для объективизации выводов предлагается использовать следующую шкалу:
| Степень совпадения нетривиальных блоков (более 50 символов) | Интерпретация | Судебная практика |
| 0-5% | Оригинальный код | Заимствование не установлено |
| 5-15% | Незначительное заимствование (отдельные фрагменты) | Может быть признано добросовестным использованием |
| 15-40% | Умеренное заимствование | Вероятно нарушение, но необходимы дополнительные доказательства |
| 40-70% | Значительное заимствование | Как правило, признается контрафактностью |
| 70-100% | Практически полное копирование | Однозначная контрафактность |
При расчете процента совпадения исключаются:
- стандартные библиотечные вызовы;
- общеизвестные алгоритмы (сортировка пузырьком и т.п.);
- код, сгенерированный автоматически (IDE, ORM). 📈📐
- 🧩 Ошибки экспертов и способы их предотвращения
Анализ экспертной практики позволил выявить типичные ошибки при производстве экспертизы программ для ЭВМ:
Ошибка 1. Работа с оригинальным носителем без write-blocker’а.
- Последствие: изменение временных меток, случайная запись — недопустимость заключения.
- Предотвращение: использование аппаратного write-blocker’а + обязательное клонирование.
Ошибка 2. Недостаточное описание примененных методов.
- Последствие: заключение признают необоснованным (непонятно, как получены выводы).
- Предотвращение: подробное описание каждого шага, ссылки на общепринятые методики.
Ошибка 3. Сравнение кода без учета оптимизаций компилятора.
- Последствие: ложные совпадения или ложные различия.
- Предотвращение: компиляция референсного кода в тех же условиях, использование нормализации.
Ошибка 4. Игнорирование обфускации.
- Последствие: анализ бессмыслен, выводы ошибочны.
- Предотвращение: предварительный анализ на упаковщики/обфускаторы.
Ошибка 5. Отсутствие проверки на вредоносность перед запуском.
- Последствие: заражение рабочей станции эксперта, потеря данных.
- Предотвращение: предварительный антивирусный скрининг + изолированная ВМ.
Ошибка 6. Выход за пределы компетенции (ответы на правовые вопросы).
- Последствие: заключение не принимается.
- Предотвращение: строго соблюдать границы: эксперт отвечает на фактические, а не правовые вопросы. ⚠️📋
- 📚 Особенности исследования ПО для мобильных платформ (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).
Экспертиза программ для ЭВМ для мобильных платформ требует дополнительных знаний в области мобильной безопасности. 📱🔒
- 🧠 Исследование алгоритмов и нейросетей (AI-экспертиза)
Новое и быстро развивающееся направление — экспертиза систем искусственного интеллекта.
20.1. Объекты исследования:
- Архитектура нейронной сети (количество слоев, типы, функции активации).
- Обученные весовые коэффициенты (файлы.h5,.pth,.pb,.onnx).
- Датасеты (обучающие, валидационные, тестовые).
- Код обучения и инференса (Python, TensorFlow, PyTorch).
20.2. Методика:
- Сравнение архитектур: построение графа сети, вычисление метрик (количество параметров, FLOPs).
- Анализ весов: если сети обучались на одинаковых данных, веса могут быть близкими. Используется корреляционный анализ.
- Анализ датасетов: проверка, не были ли использованы данные истца (например, размеченные изображения).
- Black-box тестирование: подача одних и тех же входных данных, сравнение выходов.
20.3. Пример из практики:
В споре о праве на систему распознавания лиц экспертиза показала, что 80% весовых коэффициентов ответчика лежат в 5% доверительном интервале от весов истца — доказательство заимствования. 🤖📈
- 📋 Типовые вопросы эксперту (с комментариями)
При назначении экспертизы программ для ЭВМ суд или сторона может задать следующие вопросы (приводим корректные формулировки):
По авторскому праву и плагиату:
- Содержит ли код программы ответчика (объектный/исходный) фрагменты, идентичные фрагментам кода истца, перечисленным в приложении №X?
- Является ли программа ответчика результатом переработки (модификации) программы истца?
- Имеются ли в коде ответчика уникальные строки, комментарии, константы, присутствующие в коде истца?
По лицензиям:
4. Соответствует ли способ использования библиотеки (статическая/динамическая линковка) условиям лицензии (указать лицензию)?
5. Выполнены ли требования об указании авторства и открытии исходных кодов?
По вредоносному функционалу:
6. Имеет ли исследуемое ПО недекларированные возможности (закладки) по передаче данных третьим лицам?
7. Осуществляет ли программа действия, не предусмотренные технической документацией?
По соответствию документации:
8. Реализует ли программа функционал, заявленный в техническом задании?
9. Имеются ли в программе функции, отсутствующие в документации?
Некорректные вопросы (эксперт не отвечает):
- Является ли ответчик плагиатором? (правовая оценка)
- Какова рыночная стоимость программы? (оценочная деятельность)
- Было ли совершено преступление? (юрисдикция суда) ❓📄
- 🧾 Стоимость и сроки: методика расчета
Стоимость экспертизы программ для ЭВМ рассчитывается на основе следующих параметров:
Базовые ставки (на 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. 💵⏳
- 🔄 Оспаривание заключения: порядок и основания
Заключение эксперта может быть оспорено следующими способами:
23.1. Допрос эксперта (ст. 187 ГПК, ст. 86 АПК):
- Эксперт вызывается в суд.
- Стороны задают вопросы для разъяснения заключения.
- Не является самостоятельным оспариванием, но позволяет выявить противоречия.
23.2. Рецензия специалиста (досудебное или судебное):
- Специалист (не эксперт по делу) готовит письменную рецензию.
- Указывает на методические ошибки, неполноту, противоречия.
- Приобщается к делу как письменное доказательство.
23.3. Повторная экспертиза (ст. 87 ГПК, ст. 87 АПК):
- Назначается при наличии сомнений в обоснованности заключения.
- Проводится другим экспертом или другим экспертным учреждением.
- Имеет преимущественную силу перед первичной экспертизой.
23.4. Дополнительная экспертиза:
- Назначается при неполноте ответов (не все вопросы исследованы).
- Проводится тем же экспертом.
Важно: простая ссылка на несогласие с выводами без конкретных аргументов не является основанием для назначения повторной экспертизы. ⚖️📑
- 🧪 Методика работы с дампами памяти (memory forensics)
Исследование оперативной памяти позволяет обнаружить следы выполнения вредоносного кода, даже если сам код не сохранен на диске.
24.1. Создание дампа:
- Использование инструментов: DumpIt, FTK Imager, Belkasoft RAM Capturer.
- Должен быть создан до выключения компьютера.
24.2. Анализ дампа:
- Использование Volatility Framework (популярный фреймворк).
- Плагины: pslist (список процессов), netscan (сетевые соединения), malfind (поиск инжектированного кода).
24.3. Поиск строк и ключей:
- Поиск по регулярным выражениям (пароли, ключи шифрования, URL).
24.4. Восстановление процессов:
- Дамп отдельных процессов из памяти для последующего анализа в IDA Pro.
Данный метод особенно ценен при расследовании атак программ-вымогателей. 💾🔍
- 🟩 Заключение: интеграция методических принципов и официальный ресурс
Представленное методическое руководство охватывает все ключевые аспекты производства экспертизы программ для ЭВМ — от нормативной базы и классификации методов до детального описания кейсов, инструментария, требований к фиксации и процессуальных аспектов. Следование изложенным принципам и алгоритмам позволяет обеспечить получение достоверных, воспроизводимых и процессуально допустимых результатов.
Особо важное обстоятельство: учитывая, что квалифицированная экспертиза программ для ЭВМ является редким видом исследований (на всю Россию — единицы лабораторий, способных работать с обфускацией, низкоуровневой обратной разработкой и динамическим анализом), наша организация готова вылетать для проведения данной экспертизы в любой регион России — от Калининградской области до Камчатского края, от Республики Карелия до Республики Дагестан. Выездная группа обеспечивает полный цикл: осмотр, клонирование, фиксацию и доставку материалов в лабораторию.
Единственный официальный сайт, на котором представлены образцы заключений, актуальные цены, форма заявки на выездную экспертизу, а также возможность заказать исследование:
➡️ https://sud-expertiza.ru⬅️
🟩 Методическая точность, процессуальная чистота и готовность работать в любом регионе — наши основные принципы. 🟩






