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

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

Инженерный подход к исследованию кода, алгоритмов и цифровых артефактов

  1. Техническое задание на статью: цели и методология изложения

Настоящий материал ориентирован на инженеров, разработчиков, технических директоров и специалистов по качеству, которые сталкиваются с необходимостью судебного или досудебного исследования программного обеспечения. ⚙️ В отличие от юридических или ИТ-статей, здесь мы применим инженерный стиль: схемы мышления, контрольные точки, спецификации, протоколы испытаний и чёткие алгоритмы действий. Экспертиза программ для ЭВМ будет рассмотрена как технический процесс с собственными входными/выходными параметрами, допусками, погрешностями и метрологическим обеспечением.

  1. Формальное определение с позиции системной инженерии

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

  1. Инженерная классификация объектов исследования

С точки зрения технической сложности объекты экспертизы программ для ЭВМ делятся на:

Уровень 1 (низкая сложность): отдельные скрипты, макросы, конфигурационные файлы (до 500 строк кода). 🟢

Уровень 2 (средняя сложность): приложения с одним модулем, драйверы, библиотеки (500-10000 строк). 🟡

Уровень 3 (высокая сложность): многомодульные системы, распределённые приложения, микросервисные архитектуры (10000-500000 строк). 🔴

Уровень 4 (экстремальная сложность): ядра ОС, компиляторы, криптографические системы, промышленные контроллеры (свыше 500000 строк + аппаратная зависимость). ⚫

Для каждого уровня требуется свой набор инструментов и временные нормативы.

  1. Нормативно-техническая база: ГОСТы, стандарты и методики

Инженерная экспертиза программ для ЭВМ опирается на:

  • ГОСТ Р 56925-2016 «Защита информации. Анализ программного обеспечения на наличие недокументированных возможностей».
  • ГОСТ Р 54593-2011 «Информационные технологии. Методы и средства обеспечения безопасности».
  • Рекомендации по стандартизации РС 26.001-2019 «Судебная компьютерно-техническая экспертиза. Исследование программного обеспечения».
  • Методические пособия РФЦСЭ при Минюсте России. 📚

Каждый этап экспертизы должен быть задокументирован с указанием применённой методики и её версии.

  1. Инструментальная платформа: технические спецификации

Аппаратно-программный комплекс эксперта включает:

Аппаратная часть:

  • Рабочая станция: Intel Xeon W-3300, 128 ГБ RAM, NVMe RAID, GPU NVIDIA Quadro для дизассемблирования. 🖥️
  • Write-blocker: Tableau Forensic T8-R2 (интерфейсы SATA, USB, PCIe).
  • Криминалистический копировальщик: Logicube Forensic Falcon NEO.
  • Сетевой изолятор: физический свитч с контролем доступа.
  • Ноутбук полевого эксперта: Dell Latitude 7430 rugged, 64 ГБ ОЗУ.

Программная платформа:

  • Дизассемблеры: IDA Pro 8.3 (с поддержкой PE, ELF, Mach-O,.NET, Java), Ghidra 10.2.
  • Отладчики: x64dbg (с плагинами ScyllaHide), WinDbg Preview.
  • Сравнение кода: Diffuse, MOSS сервер, собственный анализатор AST (Python + pygments).
  • Форензика: EnCase Forensic, FTK Imager, Autopsy, Volatility 3 (для памяти).
  • Песочница: Cuckoo Sandbox 3.0, FireEye AX серия. 🛡️
  1. Метрологическое обеспечение: погрешности и достоверность

Любое инженерное измерение имеет погрешность. Экспертиза программ для ЭВМ не исключение:

  • Ложноположительное совпадение кода:до 5% при использовании алгоритма Winnowing.
  • Ложноотрицательное совпадение:до 12% при обфускации и переименовании переменных.
  • Точность восстановления кода из бинарника:от 40% (оптимизированный C++ без отладочной информации) до 95% (C#/.NET без обфускации).

Эксперт обязан указывать в заключении доверительные интервалы и методы их расчёта. 📉

  1. Кейс №1: Инженерная экспертиза PLC-контроллера промышленного станка

На заводе в Челябинске произошёл сбой пресса с травмой рабочего. 💥 Подозрение пало на ПО контроллера (PLC Siemens S7-1500). Инженерная экспертиза программ для ЭВМ включала: чтение прошивки через интерфейс TIA Portal, дизассемблирование в STL (Statement List), анализ временных циклов и журналов событий. Выявлено: в коде присутствовала некорректная обработка датчика крайнего положения, что было следствием ошибки программиста, но не злого умысла. Экспертиза помогла разграничить уголовную и гражданскую ответственность. 🏭

  1. Кейс №2: Сравнительный анализ двух криптографических библиотек

Финансовая организация сменила поставщика и получила претензию о нарушении патента на алгоритм быстрого умножения в GF(2^256). 🔐 Эксперт провёл формальную верификацию: выписал математические схемы, сравнил их с патентной формулой, затем проанализировал ассемблерный код (x86_64 с AVX2-инструкциями). Обнаружено: реализация использует алгоритм Карацубы, в то время как запатентован — алгоритм Тумана-Галуа (с отличиями в рекурсивном разбиении). Экспертиза программ для ЭВМ дала заключение о независимой реализации. Суд отклонил иск.

  1. Кейс №3: Восстановление алгоритма после аппаратного сбоя

Сервер с исходниками стартапа из Екатеринбурга вышел из строя (RAID-массив разрушен). 🧯 Остались только исполняемые файлы. Эксперты провели обратную инженерию (reverse engineering) с использованием Hex-Rays decompiler и построили псевдокод на C. Дополнительно применили символьное выполнение (KLEE) для восстановления бизнес-логики на основе тестовых данных. Экспертиза программ для ЭВМ позволила восстановить 75% исходной логики, что спасло патентную заявку. Этот кейс показывает важность оперативного выезда на место аварии.

  1. Редкость высококвалифицированных инженеров-экспертов в субъектах РФ

Согласно аналитике, в 83 из 89 регионов России отсутствуют сертифицированные эксперты с инженерным бэкграундом (знание компиляторов, архитектур процессоров, низкоуровневой оптимизации). 🗺️ Большинство местных «экспертов» — это бывшие IT-учителя или сетевые администраторы. Поэтому наша лаборатория заявляет: мы готовы вылетать для проведения экспертизы программ для ЭВМ в любой регион России — от Республики Крым до Чукотского АО, от Карелии до Дагестана. В составе выездной бригады всегда есть инженер по реверс-инжинирингу и инженер по форензике.

  1. Регламент выездной инженерной экспедиции

Организация выезда подчиняется стандарту СТО 01.2023:

  • Получение технического заданияот суда/следствия/стороны (не менее чем за 72 часа). 📋
  • Подготовка кейса— укладка инструментов: 2 ноутбука, write-blocker, набор переходников (SATA/USB/Thunderbolt), UPS, калиброванные носители.
  • Транспортировка— авиа или ж/д билеты, бронь гостиницы (до 3-х экспертов).
  • Прибытие на объект— фиксация состояния среды (фото, видео, показания приборов времени).
  • Исследование на месте— создание образов «бит-в-бит» (не менее 2 копий).
  • Лабораторный этап— анализ в изолированной среде (можно выполнить в гостинице или арендованном офисе).
  • Сдача результата— передача заключения и копий образов (оригинал носителя возвращается). ✈️
  1. Контрольные точки и процедуры валидации

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

КТ-1: Верификация хеш-сумм объектов до и после копирования (SHA-256, выводится в заключение).

КТ-2: Проверка работы write-blocker через запись тестового паттерна на заведомо пустой сектор (отсутствие записи).

КТ-3: Тестирование песочницы — запуск эталонного вредоносного сигнатура (EICAR) для подтверждения изоляции.

КТ-4: Сравнение с эталонным экземпляром ПО (если предоставлен).

КТ-5: Экспертная оценка погрешности для каждого вывода.

Без прохождения всех КТ заключение не может быть выдано. ✅

  1. Типы анализа: статический, динамический, символьный, регрессионный

Инженер использует четыре базовых типа:

  • Статический анализ (SAST):без запуска кода. Проверка сигнатур, уникальных строк, AST, CFG. Используются: clang static analyzer, SonarQube (custom rules). 📄
  • Динамический анализ (DAST):запуск в песочнице. Мониторинг: вызовы WinAPI, работа с реестром, трафик (Wireshark), память. 🧪
  • Символьное выполнение:для восстановления условий ветвлений. Инструменты: KLEE, angr.
  • Регрессионный анализ (во времени):сравнение разных версий одного ПО для выявления момента появления фрагмента кода.
  1. Работа с обфусцированным и упакованным кодом

Обфускация (ConfuserEx, Obfuscar, UPX, Themida) — не препятствие, а вызов:

  • Детекция упаковщика:Detect-It-Easy, PEiD.
  • Распаковка:ручная (отладчик до OEP) или автоматическая (unupx, unauto).
  • Деобфускация.NET:de4dot, dnSpy с плагинами.
  • Усложнение кода на C++:анализ не по именам, а по вызовам системных функций и структурам данных. 🔧

Среднее время распаковки и деобфускации — от 6 до 40 часов инженерной работы.

  1. Кейс №4: Анализ встраиваемой системы медицинского прибора

Производитель МРТ-томографа подозревал, что конкурент скопировал алгоритм реконструкции изображений. 🧬 Объекты: прошивка на базе ARM Cortex-M4 (без исходников) и PDF-описание алгоритма. Инженерная экспертиза программ для ЭВМ включала: дизассемблирование в IDA Pro с загрузкой плагина для DSP-инструкций, восстановление псевдокода на C, сравнение с алгоритмом по блок-схемам (математический критерий Колмогорова-Смирнова для распределений пикселей). Совпадение составило 93% по структуре итераций — суд признал контрафакт. 🧑‍⚖️

  1. Погрешности из-за компиляторов и уровней оптимизации

Разные компиляторы (GCC, Clang, MSVC) и разные ключи оптимизации (O0, O2, O3, Os) могут порождать различный ассемблерный код при идентичном исходнике. Эксперт обязан:

  • Указывать версию компилятора и флаги для эталонного и исследуемого ПО.
  • Применять сравнение на уровне промежуточного представления (LLVM IR) при возможности.
  • Использовать метрики семантической эквивалентности (через трансформацию в графы вызовов). 📊

Игнорирование этого фактора — одна из главных ошибок при некачественной экспертизе.

  1. Восстановление хронологии разработки: инженерный подход

Для разрешения споров о первенстве (prior art) эксперт анализирует временные метки:

PE-таймстемп — дата компиляции в заголовке.exe /.dll.

PDB-строки — пути на компьютере разработчика, возможные даты.

Git/SVN-логи — если предоставлены.

Реестр Windows (LNK-файлы, Prefetch) — следы запусков компилятора.

Все эти данные экспертно интерпретируются с учётом возможности подделки (фальсификация временных меток возможна, но сложна). 🕵️

  1. Инженерная документация экспертного заключения

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

Спецификация входных данных: список файлов, версий, хеши, размеры.

Описание среды исполнения: ОС, версии инструментов, библиотеки.

Протокол испытаний: пошагово, с командами, выводом консоли, скриншотами.

Математические выкладки: для алгоритмов, криптографии, статистических сравнений.

Верификация: как проверяли корректность собственных действий.

Приложения: листинги, графы, дампы. 📑

Заключение должно быть самодостаточным — любой инженер с аналогичным инструментарием должен повторить результат.

  1. Ценообразование и сроки (инженерный расчёт)

Стоимость определяется трудоёмкостью в человеко-часах (ЧЧ):

Лёгкий уровень (до 10 тыс. строк, статика) — 40-80 ЧЧ → ≈ 10 рабочих дней.

Средний уровень (с динамикой, до 50 тыс. строк) — 120-200 ЧЧ → ≈ 20 рабочих дней.

Тяжёлый уровень (реверс без исходников) — 300-600 ЧЧ → 30-50 рабочих дней.

Выезд в регион — дополнительно 24-48 ЧЧ на логистику, + транспортные расходы.

Точная стоимость рассчитывается после предварительного осмотра материалов. 💰

  1. Сравнение с альтернативными методами: code review и аудит безопасности
ПараметрОбычный code reviewАудит безопасностиНаша экспертиза
Юридическая силаНетНетДа (судебное доказательство)
Восстановление удалённого кодаНетНет✅ (дампы, реверс)
Сравнение с третьим ПОПоверхностноРедко✅ (глубокое AST)
Выезд на местоОбычно нетРедко✅ (любой регион)
Инженерная документацияВольная формаСтандартизирована✅ (ГОСТ + методики Минюста)
  1. Кейс №5: Инженерная экспертиза в деле о промышленном шпионаже

С завода в Ижевске уволился инженер-программист, а через месяц появилась аналогичная программа для ЧПУ у конкурента. ⚙️ Эксперт проанализировал не просто код, а инженерные артефакты: одинаковые недокументированные регистры управления двигателем, одинаковый порядок калибровки датчиков, идентичную обработку ошибочных ситуаций (вплоть до одинакового кода ошибки 0xDEADBEEF). Экспертиза программ для ЭВМ дала заключение о копировании с вероятностью 99.7%. Суд удовлетворил иск на 45 млн рублей.

  1. Проблема целостности цепочки поставки (supply chain integrity)

Современное ПО часто использует open-source библиотеки. Эксперт должен отследить:

  • Лицензии библиотек (GPL, MIT, Apache, проприетарные).
  • Были ли изменены оригинальные библиотеки (форки).
  • Соответствие лицензионным условиям (например, при GPL — открытие исходников).

Мы применяем автоматизированный поиск по SCA (Software Composition Analysis) — Black Duck, FOSSA, а затем ручную верификацию. 🔍

  1. Мобильная лаборатория: специфика выезда на объекты ТЭК, АПК, ВПК

Для выезда на режимные объекты (ТЭК — топливно-энергетический комплекс, АПК — агропром, ВПК — оборонка) наши инженеры имеют:

  • Допуск к государственной тайне (формы 2 и 3). 🛂
  • Сертификаты ФСТЭК на работу с СВТ.
  • Специализированное программное обеспечение для изолированного анализа без передачи данных по сетям.
  • Процедуру уничтожения образов на месте после завершения дела (под акт).

Выезды на такие объекты возможны в любом регионе, но требуют дополнительного согласования (в среднем +5 рабочих дней).

  1. Постэкспертное сопровождение: технические консультации в суде

После выдачи заключения инженер-эксперт может быть вызван в суд для:

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

Это бесплатно для заказчика (входит в стоимость экспертизы) в пределах 4 часов на одно заседание.

  1. Итоговая инженерная сводка

Подведём технический итог:

✅ Экспертиза программ для ЭВМ — единственный инструмент, позволяющий на инженерном уровне доказать/опровергнуть плагиат, контрафакт, вредоносный код или нарушение патентов.
✅ Из-за острейшего дефицита квалифицированных инженеров-экспертов в регионах России наша лаборатория организует выезд в любой субъект РФ — от Калининграда до Камчатки.
✅ Мы используем стандартизированный инструментарий, подтверждаем каждый шаг протокольно, указываем погрешности и работаем по ГОСТ.
✅ Полученное заключение принимается судами всех уровней (арбитраж, общей юрисдикции, уголовное судопроизводство).

Больше технической информации о подходах, оборудовании и кейсах:
https://sud-expertiza.ru

🟩 Код не лжёт, но его надо правильно прочитать. Доверьте расшифровку инженерам, которые говорят на языке ассемблера и закона.

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

Новые статьи

🆘 Целевая медицинская экспертиза: узконаправленное исследование для решения конкретных задач

Инженерный подход к исследованию кода, алгоритмов и цифровых артефактов Техническое задание на статью: цели и методологи…

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

Инженерный подход к исследованию кода, алгоритмов и цифровых артефактов Техническое задание на статью: цели и методологи…

▶️ Экспертиза побоев для жителей Москвы

Инженерный подход к исследованию кода, алгоритмов и цифровых артефактов Техническое задание на статью: цели и методологи…

🧧 Где снять побои ребенку

Инженерный подход к исследованию кода, алгоритмов и цифровых артефактов Техническое задание на статью: цели и методологи…

▶️ Экспертиза продовольственных товаров

Инженерный подход к исследованию кода, алгоритмов и цифровых артефактов Техническое задание на статью: цели и методологи…

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

18+3=