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

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

Объектами программно-компьютерной экспертизы являются следующие компоненты:

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

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

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

Задачи, которые решаются с помощью программно-компьютерной экспертизы

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

  • Установление общих характеристик исследуемого программного обеспечения, анализ его компонентного состава.
  • Классификация отдельных системных или прикладных программных средств, входящих в представленное для проведения экспертизы программное обеспечение.
  • Установление контрафактности (или наличия таковых признаков) программного обеспечения в целом или его компонентов.
  • Установление специфических характеристик исследуемого программного обеспечения. Определяется тип программного обеспечения, его наименование, версия, разработчик, вид представления (удаленный, явный или скрытый).
  • Установление данных владельца и разработчика исследуемого программного средства. Для юридических лиц устанавливаются реквизиты организации. Для физических лиц – данные, удостоверяющие личность.
  • Определение файлового состава исследуемого программного обеспечения с указанием их параметров – даты создания, типа, размера (объема), прочих атрибутов.
  • Установление функционального предназначения исследуемого программного средства.
  • Выявление наличия на исследуемой компьютерной системе программного обеспечения, предназначенного для решения определенной задачи.
  • Установление технических характеристик аппаратного средства, необходимых для нормального функционирования исследуемого программного обеспечения.
  • Определение совместимости программного и аппаратного состава компьютерной системы и исследуемого программного обеспечения.
  • Установление принадлежности данного класса задач к функциональным возможностям исследуемого программного обеспечения.
  • Установление текущего состояния компьютерной системы, а именно программного обеспечения, уровень работоспособности системы и способность системы к реализации определенных задач.
  • Установление конфигурации устройств ввода-вывода в данной компьютерной системе, оснащенной исследуемым программным обеспечением.
  • Выявление в исследуемом программном обеспечении отклонения от стандартных параметров (наличие недокументированных функций, инфицирования и пр.).
  • Установление наличия в исследуемом программном обеспечении программных или программно-аппаратных средств защиты от копировании и несанкционированного доступа.
  • Определение алгоритмов представленного для исследования программного средства.
  • Установление способа защиты программного обеспечения.
  • Установление инструментов разработки исследуемого программного обеспечения (типов компиляторов, языка программирования, системных библиотек).
  • Выявление скрытых кодов с первоначальной версией программы.
  • Определение модификаций исходных алгоритмов.
  • Установление применения специфических приемов алгоритмизации и программирования.
  • Установление хронологии производства изменений в исследуемом программном обеспечении.
  • Установление хронологии применения исследуемого программного средства, начиная с момента его установки и активации.
  • Установление возможных последствий последующей эксплуатации представленного на экспертизу программного обеспечения.
  • Установление возможности выполнения исследуемой программой заданных функций после внесения изменений.

Методы проведения программно-компьютерной экспертизы

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

  • Методы анализа исходных кодов.
  • Методы исследования программных алгоритмов.
  • Методы изучения исполняемых кодов (загрузочных модулей).

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

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

Порядок проведения программно-компьютерной экспертизы

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

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