❎ Компьютерная экспертиза программного обеспечения на предмет соответствия условиям договора

❎ Компьютерная экспертиза программного обеспечения на предмет соответствия условиям договора

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

Настоящая статья, подготовленная специалистами Автономной некоммерческой организации «Центр инженерных экспертиз», представляет собой комплексный анализ теоретических и прикладных аспектов проведения судебной компьютерно-технической экспертизы программного обеспечения, направленной на установление соответствия разработанного продукта условиям договора и требованиям технического задания. В работе рассматриваются онтологический статус программного обеспечения как объекта экспертного исследования, процессуальные основания назначения и производства экспертизы, методологический каркас исследования, таксономия разрешаемых вопросов, а также доказательственное значение экспертного заключения в системе судебных доказательств. Особое внимание уделяется практическим кейсам, иллюстрирующим применение научно-методического аппарата для решения конкретных задач правоприменительной практики, возникающих в спорах между заказчиками и разработчиками программного обеспечения.

Раздел 1. Онтологический статус программного обеспечения как объекта экспертного исследования в контексте договорных отношений

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

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

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

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

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

Компьютерная экспертиза программного обеспечения на предмет соответствия условиям договора назначается определением суда в случаях, когда при рассмотрении гражданского, арбитражного или административного дела возникают вопросы, требующие специальных познаний в области информационных технологий, программирования, проектирования программных систем, тестирования и оценки качества программного обеспечения. Процессуальная инициация экспертизы осуществляется по ходатайству лиц, участвующих в деле, или по собственной инициативе суда в соответствии с положениями статей 79 Гражданского процессуального кодекса Российской Федерации, 82 Арбитражного процессуального кодекса Российской Федерации.

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

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

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

  • Криминалистическое обеспечение сохранности цифровых артефактов. Эксперт обязан обеспечить неизменность предоставленных объектов исследования путем создания битовых копий носителей информации и фиксации контрольных сумм (криптографических хэшей) с использованием алгоритмов семейства SHA-2, SHA-3. Указанные меры гарантируют, что в процессе исследования объекты не подверглись модификации, и позволяют впоследствии проверить достоверность проведенных исследований.
  • Аналитическая фаза, включающая применение комплекса исследовательских методик, адекватных поставленным задачам и природе исследуемого объекта. На данном этапе эксперт проводит статический и динамический анализ, функциональное тестирование, нагрузочное тестирование, анализ документации и иные исследования, необходимые для ответа на поставленные вопросы.
  • Синтез полученных данных и формулировка выводов в форме, прямо отвечающей на поставленные судом вопросы. Выводы должны быть сформулированы ясным и недвусмысленным языком, не допускающим множественного толкования, и при этом быть понятными лицам, не обладающим специальными познаниями.
  • Составление письменного заключения эксперта, соответствующего требованиям процессуального законодательства. Заключение должно содержать подробное описание проведенных исследований, использованных методов и инструментов, позволяющее проверить обоснованность и достоверность сделанных выводов.

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

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

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

В зависимости от целей и задач экспертизы применяются следующие группы методов:

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

Раздел 4. Таксономия вопросов, разрешаемых в рамках экспертизы на предмет соответствия условиям договора

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

  1. 1. Вопросы, связанные с полнотой и качеством реализации функциональных требований
  • Реализованы ли в представленном программном обеспечении все функции, предусмотренные техническим заданием (с указанием конкретных разделов и пунктов), и если нет, то какие именно функции отсутствуют или реализованы не в полном объеме?
  • Соответствует ли реализация каждой из предусмотренных функций требованиям технического задания к порядку выполнения, входным и выходным данным, условиям и ограничениям?
  • Имеются ли в программном обеспечении функции, не предусмотренные техническим заданием, и если да, то каково их назначение и влияние на основную функциональность?
  • Обеспечивает ли программное обеспечение возможность выполнения всех заявленных функций одновременно, без взаимных блокировок, конфликтов и снижения производительности ниже допустимого уровня?
  1. 2. Вопросы, связанные с наличием и характером дефектов
  • Содержатся ли в программном обеспечении ошибки, сбои, дефекты или иные недостатки, препятствующие его нормальной эксплуатации в соответствии с целевым назначением?
  • Какова природа выявленных дефектов: являются ли они следствием ошибок проектирования (некорректная архитектура, неверный выбор алгоритмов), ошибок кодирования (нарушение синтаксиса, логические ошибки), нарушения технологии разработки, использования несовместимых компонентов или иных причин?
  • Какова степень критичности выявленных дефектов: относятся ли они к категории критических (делающих невозможным использование программы по назначению), значительных (ограничивающих функциональность, ухудшающих потребительские свойства) или незначительных (не влияющих на основную работу программы)?
  • Являются ли выявленные дефекты устранимыми, и если да, то каков предполагаемый объем трудозатрат, необходимых для их устранения?
  1. 3. Вопросы, связанные с соответствием требованиям к производительности и надежности
  • Соответствует ли фактическая производительность программного обеспечения требованиям, установленным техническим заданием, в части времени реакции на действия пользователя, времени выполнения отдельных операций, пропускной способности?
  • Обеспечивает ли программное обеспечение возможность одновременной работы указанного в техническом задании количества пользователей без критического снижения производительности?
  • Соответствует ли программное обеспечение требованиям к надежности, включая время непрерывной работы без сбоев, устойчивость к внешним воздействиям, механизмы восстановления после отказов?
  • Обеспечивает ли программное обеспечение сохранность данных при сбоях, аварийных завершениях, отключениях питания и иных нештатных ситуациях?
  1. 4. Вопросы, связанные с соответствием требованиям к информационной безопасности
  • Соответствует ли реализация механизмов аутентификации и авторизации требованиям технического задания, включая правила формирования и хранения паролей, разграничение прав доступа для различных категорий пользователей?
  • Обеспечивает ли программное обеспечение защиту данных при передаче по сети и хранении на носителях в соответствии с требованиями технического задания?
  • Содержатся ли в программном обеспечении недекларированные возможности, функции, не описанные в документации, позволяющие осуществлять несанкционированный доступ к данным или управлению системой?
  • Соответствует ли программное обеспечение требованиям к аудиту событий, включая фиксацию действий пользователей, попыток несанкционированного доступа, изменений конфигурации?
  1. 5. Вопросы, связанные с соответствием требованиям к составу и содержанию документации
  • Соответствует ли состав переданной заказчику документации требованиям технического задания, все ли предусмотренные документы представлены?
  • Соответствует ли содержание представленной документации фактической реализации программного обеспечения, правильно ли и полно ли описаны функции, порядок работы, установка, настройка, администрирование?
  • Содержит ли документация инструкции по действиям в нештатных ситуациях, по устранению типовых проблем, по резервному копированию и восстановлению?
  1. 6. Вопросы, связанные с объемом и стоимостью работ по устранению недостатков
  • Каков объем трудозатрат (в человеко-часах, человеко-днях), необходимых для устранения выявленных недостатков и приведения программного обеспечения в соответствие с требованиями технического задания?
  • Какова рыночная стоимость работ по устранению выявленных недостатков, исходя из сложившихся на рынке информационных технологий расценок на аналогичные виды работ?
  • Возможно ли использование программного обеспечения по назначению при наличии выявленных недостатков, либо недостатки носят критический характер, делающий эксплуатацию программы невозможной?

Раздел 5. Анализ судебной практики применения экспертизы для установления соответствия условиям договора

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

Кейс 1. Исследование соответствия программного обеспечения требованиям государственного контракта

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

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

  • Соответствует ли разработанное программное обеспечение требованиям технического задания, являющегося неотъемлемой частью государственного контракта, в части функциональных характеристик, указанных в разделах 2. 1-2. 15 технического задания?
  • Имеются ли в программном обеспечении недостатки, препятствующие его использованию по назначению, и если да, то какова причина их возникновения?

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

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

Кейс 2. Исследование вопроса о наличии скрытых дефектов в программном обеспечении для управления производством

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

Для установления причин возникновения дефектов судом была назначена экспертиза, перед которой были поставлены следующие вопросы:

  • Имеются ли в программном обеспечении дефекты, которые могли привести к выдаче некорректных управляющих воздействий на производственное оборудование?
  • Какова причина возникновения выявленных дефектов: ошибки проектирования и разработки либо неправильная эксплуатация и внешние факторы?

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

Кейс 3. Исследование соответствия программного обеспечения требованиям к производительности

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

Перед экспертами были поставлены следующие вопросы:

  • Соответствует ли производительность программного обеспечения требованиям технического задания в части времени реакции на запросы пользователей при одновременной работе 100 пользователей?
  • Обусловлено ли несоответствие производительности, если оно имеется, недостатками программной реализации либо недостаточной мощностью аппаратного обеспечения?

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

Кейс 4. Исследование вопроса о наличии не декларированных возможностей в программном обеспечении

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

Перед экспертами были поставлены следующие вопросы:

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

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

Раздел 6. Доказательственное значение заключения эксперта и требования к его содержанию

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

К содержанию заключения эксперта предъявляются следующие требования, установленные статьей 86 Гражданского процессуального кодекса Российской Федерации, статьей 86 Арбитражного процессуального кодекса Российской Федерации, а также Федеральным законом от 31 мая 2001 года № 73-ФЗ «О государственной судебно-экспертной деятельности в Российской Федерации»:

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

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

Раздел 7. Компетенция и квалификация экспертов, проводящих исследования на предмет соответствия условиям договора

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

К необходимым компетенциям эксперта относятся:

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

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

Раздел 8. Значение досудебной подготовки материалов для последующей судебной экспертизы

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

Ключевые рекомендации по подготовке материалов для экспертизы:

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

Заключение

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

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

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

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

Новые статьи

🟩 Посмертная экспертиза: судебно-экспертный анализ

В условиях цифровой трансформации экономики и государственного управления программное обеспечение (ПО) приобрело статус …

🟩 Посмертная экспертиза: экспертно-медицинский анализ, методология и клиническая практика

В условиях цифровой трансформации экономики и государственного управления программное обеспечение (ПО) приобрело статус …

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

В условиях цифровой трансформации экономики и государственного управления программное обеспечение (ПО) приобрело статус …

🟩 Посмертная судебная экспертиза: методологический базис ретроспективной диагностики

В условиях цифровой трансформации экономики и государственного управления программное обеспечение (ПО) приобрело статус …

🟩 Посмертная судебная экспертиза

В условиях цифровой трансформации экономики и государственного управления программное обеспечение (ПО) приобрело статус …

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

3+15=