Компьютерная техническая экспертиза программного обеспечения | ВЫСШАЯ ШКОЛА СУДЕБНЫХ ЭКСПЕРТИЗ

Компьютерная техническая экспертиза программного обеспечения

Василий
Staff 3 месяца назад
Здравствуйте!
Компьютерная техническая экспертиза программного обеспечения
1 Answers
Независимая экспертиза
Staff 3 месяца назад

Здравствуйте.
Рады приветствовать вас на сайте Союз «Федерация судебных экспертов».
Вы обратились с темой, которая становится всё более востребованной в условиях цифровизации: споры о работоспособности, соответствии условиям договора, наличии скрытых модулей, ошибок (багов), недекларированных возможностей или нарушений лицензионных соглашений в программном обеспечении. Такие споры возникают при сдаче готового ПО, при интеграции систем, при проверке на наличие вредоносного кода, а также в рамках уголовных дел (например, о неправомерном доступе). Ответить на вопросы, связанные с качеством и поведением программы, может только компьютерная техническая экспертиза программного обеспечения. Это исследование, которое проводится с использованием специальных инструментов (отладчики, дизассемблеры, анализаторы трафика, статические и динамические анализаторы кода) и позволяет ответить, соответствует ли ПО заявленным характеристикам, есть ли в нём дефекты, кто их автор (разработчик или внешний взломщик), и какие последствия могут быть от его работы.
Ниже я подробно отвечаю на все ваши вопросы: стоимость, сроки, документы, процедура, трудности и где провести в Москве.
1. Стоимость
Цена на компьютерную техническую экспертизу программного обеспечения сильно варьируется в зависимости от сложности программы (количество строк кода, наличие документации, необходимость реверс-инжиниринга, анализ сетевого взаимодействия). Приведу ориентиры по Москве на 2025 год:

  • Экспертиза одного модуля / простого ПО (например, проверка на соответствие техническому заданию, наличие документированных функций, тестирование на типовых сценариях) – 50 000 – 90 000 рублей.
  • Стандартная экспертиза (исследование программы среднего размера: 5–10 модулей, анализ алгоритмов, проверка на недекларированные возможности, изучение логов, базовое статическое и динамическое тестирование) – 100 000 – 180 000 рублей.
  • Сложная экспертиза (крупная система: более 50 000 строк кода, анализ с исходными кодами или без них – дизассемблирование, трассировка вызовов, восстановление алгоритмов, анализ сетевых пакетов, проверка на закладки, исследование взаимодействия с оборудованием) – 200 000 – 400 000 рублей.
  • Экспертиза в рамках уголовного дела (с изъятием и копированием носителей, обеспечением цепочки хранения доказательств, подготовкой заключения для следствия и суда) – от 250 000 рублей, часто почасовой тариф (5 000 – 8 000 руб./час).

Если нужно исследовать несколько версий ПО (например, до и после обновления) или несколько программ, стоимость увеличивается на 50–80% от базовой за каждую дополнительную программу. Срочное выполнение (за 5–10 дней) – плюс 40–60%.
2. Сроки

  • Простое ПО (один модуль) – 7–10 рабочих дней.
  • Стандартная экспертиза – 14–20 рабочих дней.
  • Сложная экспертиза (с реверс-инжинирингом) – 25–40 рабочих дней.
  • Уголовное дело (полный цикл) – 30–60 рабочих дней (в зависимости от объема изъятых носителей).

3. Какие документы необходимы
Для того чтобы начать компьютерную техническую экспертизу программного обеспечения, вам потребуется предоставить:

  1. Определение суда о назначении экспертизы (если экспертиза судебная) или договор / заявление (если досудебная по инициативе стороны). В определении должны быть четко сформулированы вопросы, например:

    • «Соответствует ли программное обеспечение (название, версия) условиям договора (или техническому заданию)?»
    • «Имеются ли в ПО дефекты (ошибки, сбои), и если да, то какова их причина – нарушение разработчиком алгоритмов или некорректная эксплуатация?»
    • «Обладает ли ПО недекларированными возможностями (функциями, не описанными в документации)?»
    • «Могло ли ПО самостоятельно, без действий пользователя, удалить (или изменить) определённые файлы/данные?»
  2. Само программное обеспечение в виде:

    • Дистрибутива (установочных файлов) на физическом носителе (DVD, флешка) или в виде образа диска (ISO, IMG).
    • Исходных кодов (если они есть и если требуется их анализ) – их предоставляют на отдельном носителе.
    • Уже установленной копии на выделенном компьютере (если исследование предполагает работу в реальной среде).
    • Доступа к облачной версии (логин, пароль, если ПО работает по модели SaaS).
  3. Техническую документацию на ПО: техническое задание (ТЗ), описание архитектуры, руководство пользователя, руководство администратора, спецификацию API (если есть), протоколы тестирования (если проводились).
  4. Логи работы ПО (журналы событий, дампы ошибок, crash-логи) – если цель экспертизы – выяснить причину сбоя.
  5. Акт о сбое / инциденте (если ПО работало неправильно) с описанием даты, времени, действий пользователя, наблюдаемого результата.
  6. Договор на разработку или поставку ПО (чтобы понять, какие функции были обещаны, а какие – нет).
  7. Образ жесткого диска (или другого носителя) с установленным ПО и данными, если исследование проводится в рамках уголовного или гражданского дела с изъятием компьютера.
  8. Сведения о среде исполнения: операционная система, версия, обновления, наличие антивирусов, брандмауэров, других программ, с которыми взаимодействует исследуемое ПО.

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

  1. Вы связываетесь с нами, описываете задачу. Мы оцениваем сложность, сроки и стоимость, даём рекомендации по формулировке вопросов.
  2. Заключаете договор. Если экспертиза судебная – получаем определение суда и материалы дела.
  3. Эксперт-программист (часто с квалификацией в области reverse engineering или информационной безопасности) принимает объекты исследования:

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

    • Просмотр кода (если есть исходники) или дизассемблированного кода (если исходников нет).
    • Анализ структуры файлов (PE, ELF, Mach-O), таблиц импорта/экспорта, строк, ресурсов.
    • Поиск известных уязвимостей и «вредоносных» паттернов (например, вызовов функций для скрытого доступа к сети).
  5. Проводит динамический анализ (запуск программы в контролируемой среде):

    • Отслеживает системные вызовы, обращения к реестру, файловой системе, сети.
    • Использует отладчик (GDB, WinDbg, x64dbg) для пошагового выполнения кода, установки точек останова.
    • Анализирует сетевой трафик (Wireshark, Fiddler) – куда и какие данные передаёт программа.
    • Тестирует на соответствие ТЗ: выполняет сценарии использования, сравнивает результат с ожидаемым.
  6. При необходимости проводит реверс-инжиниринг (восстановление алгоритмов при отсутствии исходного кода) – это трудоёмкий процесс, требующий специальных инструментов (IDA Pro, Ghidra, Radare2).
  7. Фиксирует все дефекты, недокументированные функции, ошибки, сбои. Особое внимание – может ли ПО само, без участия пользователя, удалять/изменять данные (это частый вопрос в спорах).
  8. Эксперт готовит заключение, где отвечает на поставленные вопросы, прикладывает логи, скриншоты, фрагменты кода, диаграммы вызовов, результаты трассировки.
  9. Заключение передаётся в суд (или заказчику). При необходимости эксперт вызывается в суд для допроса.

Где провести в Москве. Компьютерную техническую экспертизу программного обеспечения проводят специализированные экспертные организации, имеющие лицензированное ПО (IDA Pro, Ghidra, VMware, Wireshark) и опытных экспертов-программистов, знакомых с судебной практикой. Союз «Федерация судебных экспертов» имеет собственную компьютерно-техническую лабораторию в Москве, изолированные стенды, лицензии на профессиональные дизассемблеры и отладчики. Также можно обратиться в лаборатории при МВД, ФСБ или в коммерческие центры (например, Group-IB, BI.ZONE), но их услуги могут быть ориентированы на корпоративные расследования, а не на судебные экспертизы.
5. Какие трудности могут возникнуть

  • Отсутствие исходных кодов. Если у вас нет исходного кода, а только бинарный файл (exe, dll, apk), анализ занимает в 3–5 раз больше времени, а глубина выводов ограничена. Эксперт не сможет ответить на некоторые вопросы (например, «была ли ошибка в алгоритме сортировки» без запуска программы), но сможет сказать, какие функции вызывает программа, с какими файлами работает.
  • Обфускация и защита от анализа. Многие коммерческие программы защищены обфускаторами (упаковщиками, шифраторами), которые мешают дизассемблированию. Эксперту потребуется сначала распаковать/расшифровать код – это дополнительные дни и стоимость (от 30 000 рублей).
  • Динамический анализ невозможен. Если ПО требует специального оборудования (станок, медицинский прибор, банкомат) или работает только в защищённой среде (например, АСУ ТП), запустить его в лаборатории не получится. Эксперт выезжает на место установки – это увеличивает стоимость и сроки.
  • Нестабильность воспроизведения ошибки. Если ошибка (баг) возникает не всегда (например, при определённой фазе луны или при большой загрузке сервера), эксперт может не суметь её воспроизвести. В заключении он укажет, что «дефект не воспроизведён в лабораторных условиях, что не означает его отсутствия». Суд может посчитать это неубедительным.
  • Спор о версии ПО. Ответчик может заявить, что вы предоставили на экспертизу не ту версию программы, которая была в эксплуатации. Нужны доказательства (хэш-суммы, даты файлов, логи обновлений).
  • Недекларированные возможности. Если эксперт находит скрытую функцию (например, передачу данных на сторонний сервер), разработчик может заявить, что это «технологический трафик» или «лицензионная проверка». Эксперт должен будет доказать, что эта функция не описана в документации и не связана с основной работой ПО – это требует анализа огромного объёма документации и кода.
  • Сложность с юридической формулировкой. Вопросы для экспертизы должны быть составлены грамотно. Судья может написать: «Соответствует ли ПО требованиям технического регламента?» – но технического регламента на ПО нет. Эксперт вынужден будет дать развёрнутое пояснение, что такое соответствие можно оценить только по договору или ТЗ. Мы помогаем корректно формулировать вопросы.

6. Общие правила и процедура проведения
Правила:

  • Экспертиза проводится в соответствии с методическими рекомендациями РФЦСЭ при Минюсте России, а также на основе общих принципов компьютерно-технической экспертизы.
  • Эксперт должен обеспечить неизменность исследуемого ПО и данных (использовать битовые копии, исключить запись на оригинальный носитель).
  • Если экспертиза судебная, эксперт предупреждается об уголовной ответственности по ст. 307 УК РФ.
  • Все действия эксперта фиксируются в рабочем журнале: какие инструменты запускались, какие точки останова ставились, какие изменения вносились в среду.

Процедура в общем виде:

  1. Приёмка объектов и документов, проверка целостности носителей (контрольные суммы).
  2. Создание изолированной среды (виртуальная машина с отключённой сетью или с эмуляцией сети).
  3. Установка (или копирование) ПО в среду.
  4. Статический анализ бинарных файлов/исходных кодов.
  5. Динамический анализ: запуск, мониторинг, отладка, тестирование сценариев.
  6. Анализ сетевого трафика (если сеть разрешена).
  7. Анализ логов, дампов памяти (при сбоях).
  8. Синтез результатов, формулировка ответов на вопросы.
  9. Оформление заключения с приложением распечаток кода, скриншотов, графиков вызовов, логов.
  10. Передача заключения заказчику или в суд.

Важное дополнение: Компьютерная техническая экспертиза программного обеспечения не тождественна «тестированию ПО» или «аудиту безопасности». Это именно судебное исследование, которое должно быть воспроизводимым, документированным и независимым. Не пытайтесь провести её силами штатного программиста – его выводы не примет суд. Только эксперт, имеющий соответствующую квалификацию и статус, может дать заключение, которое станет доказательством.
За подробной и точной консультацией приглашаем вас в наш офис Союз «Федерация судебных экспертов», адрес которого указан на сайте: https://kriminalist77.ru/kontakty