Программно-компьютерное исследование программного обеспечения

Программное обеспечение используется в государственных системах, бизнесе, промышленности и повседневной жизни. Ошибки в коде, вмешательство в работу системы, вредоносные программы или незаконное копирование могут привести к утрате данных и другим неблагоприятным последствиям. Для установления технических обстоятельств проводится программно-компьютерное исследование.

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

Что исследуется

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

Основная задача заключается не в общей оценке удобства программы, а в установлении конкретных фактов. Например, необходимо определить, связана ли неисправность с ошибкой в коде, изменялись ли файлы после передачи заказчику или содержится ли в программе функциональность, о которой пользователь не был уведомлен.

Основные задачи исследования

  • Выявление программных ошибок — установление причин зависаний, некорректных расчетов, потери данных и других сбоев.
  • Поиск вредоносных компонентов — проверка на наличие вирусов, троянских программ, бэкдоров, шпионских модулей и иных опасных элементов.
  • Анализ изменений в программном продукте — определение факта добавления, удаления или изменения файлов и отдельных фрагментов кода.
  • Проверка оригинальности — сопоставление исходного кода, структуры программы и отдельных технических решений с представленными образцами.
  • Исследование лицензионных ограничений — установление того, какие программные компоненты использованы и соответствуют ли они заявленным условиям распространения.
  • Определение причин цифрового инцидента — анализ обстоятельств утечки данных, несанкционированного доступа или нарушения работы информационной системы.

Где применяются результаты

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

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

Методы и инструменты

Выбор методики зависит от поставленных вопросов, состояния объектов и доступных исходных материалов. Обычно применяются несколько взаимодополняющих подходов:

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

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

Как организуется исследование

  1. Определяются вопросы. Они должны быть конкретными и относиться к специальным знаниям. Вопрос о том, кто виновен в произошедшем, не является техническим и относится к компетенции суда или органа расследования.
  2. Формируются материалы. Передаются программные файлы, образы носителей, техническая документация, договоры, переписка и сведения об обстоятельствах инцидента.
  3. Проверяется пригодность объектов. Специалист устанавливает, можно ли провести исследование с учетом целостности файлов и полноты предоставленной информации.
  4. Проводится анализ. Применяются выбранные методы, фиксируются обнаруженные признаки и при необходимости воспроизводятся спорные процессы.
  5. Оформляются выводы. Результаты излагаются в заключении или техническом отчете с описанием объектов, методик, полученных данных и обоснованием выводов.

Правовые основы

Порядок проведения судебной экспертизы в Республике Казахстан регулируется Законом Республики Казахстан «О судебно-экспертной деятельности». Документ устанавливает требования к экспертам, их правам и обязанностям, основаниям назначения исследования и содержанию экспертного заключения.

Если исследование проводится в рамках уголовного производства, значение имеют положения Уголовно-процессуального кодекса Республики Казахстан. При рассмотрении гражданских споров применяются нормы Гражданского процессуального кодекса Республики Казахстан.

Вопросы охраны программного кода и исключительных прав связаны с Законом Республики Казахстан «Об авторском праве и смежных правах». При исследовании информационных систем, содержащих сведения о физических лицах, также необходимо учитывать требования Закона Республики Казахстан «О персональных данных и их защите».

Какие вопросы можно поставить специалисту

Корректная постановка вопросов влияет на полезность результата. Они могут быть сформулированы следующим образом:

  • Имеются ли в представленном программном продукте признаки вредоносного кода?
  • Соответствует ли фактическая функциональность программы ее техническому описанию?
  • Какие причины вызвали зафиксированный сбой информационной системы?
  • Вносились ли изменения в программные файлы после определенной даты?
  • Совпадают ли исследуемые фрагменты исходного кода с представленным образцом?
  • Позволяют ли журналы событий установить последовательность действий пользователя или программы?

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

Что влияет на достоверность выводов

Качество исследования зависит от сохранности цифровых объектов, полноты исходных данных и точности поставленных вопросов. Желательно передавать оригинальные носители либо их корректные копии, сведения о способе обнаружения проблемы и описание действий, которые выполнялись с системой.

Если программа исследуется после обновления или переустановки, это также необходимо зафиксировать. Даже небольшое изменение конфигурации может повлиять на воспроизведение ошибки и привести к отличию результатов от первоначальных условий.

Программно-компьютерное исследование объединяет знания в области программирования, информационной безопасности и цифровой криминалистики. Его главная ценность состоит в том, что технические процессы переводятся в понятные и проверяемые выводы, которые могут помочь установить обстоятельства спора или цифрового инцидента.