🟥 Независимая экспертиза программного обеспечения в Москве и МО
Раздел 1. Теоретико-правовые основания независимой экспертизы программного обеспечения
1.1. Понятие и сущность независимой экспертизы программного обеспечения
Независимая экспертиза программного обеспечения представляет собой специализированный вид исследования, осуществляемый лицами, обладающими специальными познаниями в области информационных технологий и программирования, не заинтересованными в исходе дела и не находящимися в служебной или иной зависимости от сторон спора. Сущность данного института раскрывается через триаду элементов: предмет исследования (программный код, алгоритмы, архитектурные решения, базы данных, документация), субъект исследования (эксперт-программист или группа специалистов соответствующей квалификации) и процессуальная форма (заключение, обладающее доказательственным значением).
В отличие от государственной судебной экспертизы, независимая экспертиза программного обеспечения может проводиться как в рамках судебного процесса по назначению суда, так и во внесудебном порядке по инициативе заинтересованной стороны. Именно независимый характер исследования позволяет сторонам спора получить объективную техническую оценку, которая впоследствии может быть представлена в качестве доказательства или использована для досудебного урегулирования конфликта. Федерация судебных экспертов на протяжении более чем двадцати лет обеспечивает проведение независимой экспертизы программного обеспечения на всей территории Российской Федерации, располагая сетью из семидесяти офисов и штатом высококвалифицированных специалистов .
Предмет независимой экспертизы программного обеспечения неоднороден и включает несколько крупных блоков. Первый блок связан с установлением соответствия программного продукта условиям договора или технического задания. Второй блок охватывает исследования, направленные на выявление фактов заимствования кода, плагиата или неправомерного использования чужих алгоритмических решений. Третий блок касается диагностики качества программного обеспечения: наличия дефектов, ошибок, уязвимостей, недекларированных возможностей. Четвертый блок включает стоимостную оценку программных продуктов и трудозатрат на их создание или доработку. Каждый из перечисленных блоков требует от эксперта специализированных познаний и применения особых методик.
1.2. Место независимой экспертизы программного обеспечения в системе судебных экспертиз
В системе судебных экспертиз независимая экспертиза программного обеспечения занимает положение, определяемое ее родовой принадлежностью к классу компьютерно-технических экспертиз. Вместе с тем, она обладает существенной спецификой, отличающей ее от экспертизы аппаратных средств. Если компьютерно-техническая экспертиза оборудования исследует физические устройства и носители информации, то независимая экспертиза программного обеспечения имеет дело с нематериальными объектами: алгоритмами, структурами данных, логикой функционирования программных продуктов . Это различие принципиально, поскольку методы исследования программных объектов требуют иного инструментария и иной квалификации эксперта.
С процессуальной точки зрения независимая экспертиза программного обеспечения может выступать в нескольких качествах. Во-первых, как судебная экспертиза, назначаемая судом в порядке, предусмотренном процессуальным законодательством. Во-вторых, как досудебное исследование, результаты которого используются сторонами для оценки перспектив спора или в качестве письменного доказательства. В-третьих, как рецензия на ранее проведенное экспертное заключение, позволяющая выявить методологические ошибки или необоснованные выводы. Федерация судебных экспертов обеспечивает проведение независимой экспертизы программного обеспечения во всех перечисленных формах, гарантируя процессуальную допустимость и техническую обоснованность результатов.
1.3. Принципы независимой экспертизы программного обеспечения
Независимая экспертиза программного обеспечения базируется на ряде основополагающих принципов, соблюдение которых является условием допустимости полученных результатов в качестве доказательства. Принцип объективности требует, чтобы выводы эксперта основывались исключительно на результатах проведенного исследования, а не на позиции заказчика или иных заинтересованных лиц. Принцип всесторонности предполагает исследование всех существенных для дела обстоятельств, а не только тех, на которые указано в вопросах. Принцип научной обоснованности означает применение методик, признанных в профессиональном сообществе и апробированных практикой.
Принцип независимости имеет в контексте рассматриваемого вида экспертизы особое значение. Он означает не только отсутствие служебной или имущественной зависимости эксперта от сторон, но и интеллектуальную независимость: эксперт не связан доводами сторон и формулирует выводы на основе собственного профессионального суждения. Федерация судебных экспертов как экспертная организация обеспечивает соблюдение принципа независимости путем распределения заказов между экспертами без учета интересов заказчиков и создания условий, исключающих внешнее давление на специалистов.
Принцип процессуальной допустимости требует, чтобы экспертиза проводилась с соблюдением требований законодательства об экспертной деятельности, а заключение содержало все необходимые реквизиты и было оформлено надлежащим образом. Нарушение процессуальных требований может повлечь признание заключения недопустимым доказательством, независимо от его технической обоснованности. Поэтому Федерация судебных экспертов уделяет первостепенное внимание соответствию процедур проведения независимой экспертизы программного обеспечения действующим нормативным требованиям.
Раздел 2. Объекты и предмет независимой экспертизы программного обеспечения
2.1. Программный код как объект экспертного исследования
Программный код является центральным объектом независимой экспертизы программного обеспечения. В зависимости от целей исследования эксперту могут быть представлены исходный код (на языках программирования высокого уровня), исполняемый код (скомпилированные бинарные файлы), либо оба вида одновременно. Каждый из них обладает собственной доказательственной ценностью и требует применения различных методов анализа.
Исходный код предоставляет наиболее полную информацию о логике работы программы, ее архитектуре и алгоритмах. Однако его получение не всегда возможно: разработчики не обязаны передавать исходный код заказчику, если иное не предусмотрено договором. В случаях, когда исходный код недоступен, экспертиза проводится на основе исполняемого кода с применением методов обратной инженерии. Федерация судебных экспертов располагает специалистами, владеющими методиками декомпиляции и дизассемблирования для различных платформ и языков программирования, что позволяет проводить независимую экспертизу программного обеспечения даже при ограниченном доступе к исходным текстам.
При исследовании программного кода эксперты решают следующие типовые задачи: установление авторства фрагментов кода, выявление фактов заимствования, определение объема и качества выполненных работ, диагностика дефектов и уязвимостей. Для каждой из перечисленных задач применяются специфические методики, выбор которых определяется характером объекта и поставленными вопросами. Например, для установления факта заимствования может использоваться сравнительный анализ токенизированных последовательностей, выявление уникальных структурных паттернов, сопоставление архитектурных решений. Для диагностики дефектов применяются методы статического и динамического анализа.
2.2. Алгоритмы и архитектурные решения
Алгоритмы и архитектурные решения представляют собой объекты, которые не всегда выражены в форме, доступной для непосредственного восприятия, но при этом могут являться предметом самостоятельного экспертного исследования. Алгоритм как последовательность операций, приводящая к решению задачи, может быть заимствован независимо от того, на каком языке программирования он реализован. Архитектурные решения, понимаемые как общая организация программной системы, также могут воспроизводиться при создании производных продуктов.
Независимая экспертиза программного обеспечения в части исследования алгоритмов и архитектуры требует от эксперта глубокого понимания не только синтаксиса языков программирования, но и принципов проектирования программных систем. Эксперт должен уметь абстрагироваться от конкретной реализации и выявлять концептуальное сходство между программными продуктами, которое может свидетельствовать о заимствовании. Вместе с тем, необходимо учитывать, что многие алгоритмы и архитектурные паттерны являются общеизвестными и их использование не может рассматриваться как нарушение исключительных прав.
Федерация судебных экспертов при проведении независимой экспертизы программного обеспечения алгоритмической и архитектурной составляющих руководствуется принципом разграничения общего и особенного: эксперт выделяет те элементы, которые являются стандартными для данной предметной области и не могут быть присвоены каким-либо лицом, и те, которые обладают признаками оригинальности и творческого вклада конкретного разработчика.
2.3. Базы данных и информационные системы
Базы данных как объект независимой экспертизы программного обеспечения имеют двойственную природу. С одной стороны, структура базы данных (схема, набор таблиц и связей между ними) может являться результатом творческого труда и охраняться как часть программного продукта. С другой стороны, содержание базы данных может иметь самостоятельную ценность и исследоваться на предмет полноты, целостности или несанкционированного изменения.
Информационные системы на платформе «1С» являются одним из наиболее распространенных объектов экспертного исследования в российской практике. Специфика таких систем состоит в том, что они сочетают в себе платформенную часть (разработанную правообладателем) и конфигурацию (создаваемую при внедрении). Споры часто возникают относительно объема и качества работ по доработке конфигураций, а также относительно правомерности использования тех или иных модулей. Независимая экспертиза программного обеспечения в отношении баз данных «1С» требует от эксперта познаний не только в области информационных технологий, но и в предметной области (бухгалтерский учет, управление торговлей, расчет заработной платы), поскольку без понимания хозяйственных операций невозможно корректно интерпретировать данные .
Методы исследования баз данных включают анализ структуры и метаданных, проверку целостности и истории изменений, восстановление удаленных записей, сопоставление электронных записей с фактическими хозяйственными процессами. Применение этих методов позволяет выявлять аномалии, свидетельствующие о нарушениях, и устанавливать юридически значимые обстоятельства.
2.4. Документация программного обеспечения
Документация программного обеспечения — техническое задание, проектная документация, руководства пользователя, акты сдачи-приемки — выступает одновременно как объект самостоятельного исследования и как средство для интерпретации других объектов. В первом качестве документация может исследоваться на предмет соответствия фактическому состоянию программного продукта. Во втором качестве она служит эталоном, с которым эксперт сопоставляет реальные характеристики программы.
Независимая экспертиза программного обеспечения в части документации решает задачи установления полноты и непротиворечивости документации, ее соответствия требованиям стандартов, а также соответствия фактической реализации задокументированным требованиям. Особое значение имеет техническое задание, поскольку именно оно фиксирует обязательства разработчика перед заказчиком. Эксперт сопоставляет каждый пункт технического задания с фактически реализованной функциональностью и делает вывод о степени выполнения обязательств.
Федерация судебных экспертов рекомендует заказчикам независимой экспертизы программного обеспечения предоставлять максимально полный комплект документации, включая не только итоговые документы, но и переписку сторон в процессе разработки, протоколы совещаний, промежуточные версии технических заданий. Эти материалы позволяют восстановить контекст и избежать односторонних выводов.
Раздел 3. Методология независимой экспертизы программного обеспечения
3.1. Статический анализ программного кода
Статический анализ представляет собой метод исследования программного обеспечения без его запуска. Эксперт изучает исходный или исполняемый код, выявляя структурные особенности, потенциальные дефекты, следы заимствования. Преимущество статического анализа состоит в возможности исследовать весь код целиком, а не только те участки, которые активируются при выполнении. Это особенно важно при установлении фактов заимствования, поскольку позволяет обнаружить совпадения в тех фрагментах, которые не задействованы в обычной работе программы.
Инструментарий статического анализа включает как стандартные средства разработки (компиляторы с флагами предупреждений, линтеры), так и специализированные системы сравнения кода. Для целей независимой экспертизы программного обеспечения применяются методы токенизации (разбиения кода на лексемы с последующим сравнением последовательностей), выявления клонированных фрагментов, анализа метрик сложности и связности. Эксперт должен уметь интерпретировать результаты автоматизированного анализа, поскольку высокий процент совпадений сам по себе не свидетельствует о заимствовании: он может объясняться использованием общих библиотек или стандартных конструкций.
Статический анализ завершается формулированием предварительных выводов, которые впоследствии проверяются с помощью других методов. В частности, выявленные совпадения могут быть проверены путем сопоставления дат создания файлов, анализа истории разработки (если доступна), сопоставления с открытыми репозиториями. Такой перекрестный анализ повышает достоверность выводов и снижает риск ошибочной интерпретации.
3.2. Динамический анализ и имитационные эксперименты
Динамический анализ предполагает запуск программного обеспечения в контролируемой среде с целью наблюдения за его поведением. Этот метод применяется в случаях, когда необходимо установить, реализована ли фактически та или иная функция, соответствует ли поведение программы заявленным требованиям, имеются ли недекларированные возможности или скрытые механизмы.
При проведении независимой экспертизы программного обеспечения динамический анализ часто сочетается с имитационными экспериментами, в ходе которых эксперт воспроизводит условия, указанные в техническом задании или договоре, и фиксирует поведение программы. Например, если заказчик утверждает, что система не выполняет определенную операцию, эксперт создает тестовые данные и проверяет, выполняется ли операция в действительности. Результаты такого эксперимента документируются с помощью скриншотов, видеозаписи или протоколов.
Среда для динамического анализа должна обеспечивать изоляцию от внешних воздействий и неизменность исходного состояния программы. Для этого используются виртуальные машины, контейнеры, а также средства фиксации состояния системы до и после эксперимента. Применение динамического анализа требует от эксперта не только технической квалификации, но и методической дисциплины: каждый шаг должен быть документирован, чтобы результаты могли быть воспроизведены и проверены.
3.3. Сравнительный анализ программных продуктов
Сравнительный анализ является ключевым методом при исследовании вопросов заимствования и сходства программных продуктов. Он включает несколько уровней: сравнение на уровне исходного кода, сравнение алгоритмической логики, сравнение структуры данных, сравнение архитектурных решений. Для каждого уровня применяются соответствующие метрики и инструменты.
На уровне исходного кода сравнение может проводиться с использованием методов нормализации (приведение к единому форматированию, удаление комментариев и пробелов) и последующего сопоставления токенизированных последовательностей. Существуют также методы выявления семантического сходства, которые позволяют обнаруживать переписанный код с измененными именами переменных и переструктурированными блоками. Однако следует учитывать, что автоматизированные методы дают лишь предварительную оценку, окончательный вывод формулируется экспертом с учетом всех обстоятельств.
Федерация судебных экспертов при проведении независимой экспертизы программного обеспечения сравнительного характера руководствуется принципом доказательности: каждый вывод о сходстве или различии должен быть подкреплен конкретными данными, которые могут быть проверены судом и другими участниками процесса. Это означает, что эксперт не ограничивается указанием на процент совпадений, но раскрывает методику сравнения, приводит конкретные фрагменты, объясняет критерии оценки.
3.4. Реверс-инжиниринг и декомпиляция
Реверс-инжиниринг применяется в случаях, когда исходный код недоступен, но необходимо восстановить логику работы программы для ее исследования. Методы реверс-инжиниринга включают дизассемблирование (преобразование машинного кода в ассемблерный), декомпиляцию (восстановление кода высокого уровня из бинарного), анализ структур данных и вызовов функций.
Независимая экспертиза программного обеспечения с применением реверс-инжиниринга требует от эксперта высокой квалификации и осторожности в выводах, поскольку восстановленный код может отличаться от оригинального исходного кода. Эксперт должен учитывать возможные искажения, вносимые компилятором и оптимизациями, и формулировать выводы с учетом этих ограничений. В частности, вывод о заимствовании, основанный исключительно на результатах декомпиляции, может быть оспорен, если совпадения объясняются типовыми решениями, неизбежными при данной архитектуре или языке программирования.
В практике независимой экспертизы программного обеспечения реверс-инжиниринг часто сочетается с другими методами: статическим анализом восстановленного кода, динамическим анализом поведения программы, сравнительным анализом с доступными исходными текстами. Только комплексное применение методов позволяет получить обоснованный вывод.
3.5. Документальный анализ и сопоставление требований
Документальный анализ представляет собой метод исследования, при котором эксперт изучает договоры, технические задания, акты, переписку и иные документы, сопоставляя их содержание с фактическим состоянием программного продукта. Этот метод является основным при разрешении споров о качестве выполненных работ и соответствии результатов договорным обязательствам.
Процедура документального анализа включает следующие этапы: выявление всех документов, имеющих отношение к предмету спора; установление иерархии требований (какие документы являются основными, какие — производными); формулирование перечня проверяемых требований; проверка каждого требования на предмет фактического исполнения; фиксация результатов проверки с указанием источников. На заключительном этапе эксперт обобщает результаты и формулирует вывод о степени соответствия программного продукта требованиям.
Особенность независимой экспертизы программного обеспечения в части документального анализа состоит в необходимости сочетать техническую экспертизу с юридической интерпретацией договорных условий. Эксперт не вправе давать правовую оценку договору, но он должен правильно понять его техническое содержание и применить его как критерий для оценки программного продукта.
Раздел 4. Процессуальные аспекты независимой экспертизы программного обеспечения
4.1. Назначение независимой экспертизы в судебном процессе
Назначение независимой экспертизы программного обеспечения в судебном процессе осуществляется по ходатайству стороны или по инициативе суда. В ходатайстве сторона указывает вопросы, которые необходимо поставить перед экспертом, и организацию, которой поручается проведение исследования. Суд оценивает обоснованность ходатайства и, при согласии, выносит определение о назначении экспертизы.
Федерация судебных экспертов принимает поручения судов на проведение независимой экспертизы программного обеспечения по всем категориям дел, где требуется специальные познания в области информационных технологий. Это дела о защите исключительных прав на программное обеспечение, споры о качестве разработки, дела о неправомерном доступе к компьютерной информации, трудовые споры, связанные с созданием программных продуктов. Эксперты Федерации имеют опыт участия в процессах всех уровней, включая арбитражные суды и суды общей юрисдикции.
При формулировании вопросов перед экспертом необходимо соблюдать требования корректности: вопросы должны быть конкретными, исключать двусмысленность, находиться в пределах специальных познаний эксперта и не требовать правовой оценки. Некорректно ставить перед экспертом вопросы о том, является ли лицо нарушителем авторских прав, подлежит ли иск удовлетворению, поскольку эти вопросы относятся к исключительной компетенции суда. Правильная формулировка вопроса ориентирована на установление технических фактов: имеются ли в коде совпадения, соответствует ли функциональность требованиям, содержатся ли в программе недекларированные возможности.
4.2. Требования к заключению эксперта
Заключение эксперта по результатам независимой экспертизы программного обеспечения должно соответствовать требованиям процессуального законодательства и содержать необходимые элементы. Вводная часть включает сведения об эксперте (образование, специальность, стаж работы), основания для проведения экспертизы, перечень поставленных вопросов, перечень предоставленных материалов, предупреждение об уголовной ответственности за дачу заведомо ложного заключения.
Исследовательская часть содержит подробное описание проведенных исследований, примененных методов, использованных инструментов, полученных промежуточных результатов. Исследовательская часть должна быть изложена языком, понятным для лиц, не обладающих специальными познаниями, но при этом содержать достаточную информацию для проверки обоснованности выводов. Выводы формулируются в виде четких и однозначных ответов на поставленные вопросы, изложенных в форме утвердительных предложений.
Федерация судебных экспертов обеспечивает соответствие заключаемых экспертных заключений всем процессуальным требованиям, включая полноту и всесторонность исследования, научную обоснованность выводов, отсутствие противоречий между исследовательской частью и выводами. При необходимости эксперты готовы дать пояснения в судебном заседании, ответить на вопросы суда и сторон.
4.3. Оценка заключения независимой экспертизы судом
Заключение независимой экспертизы программного обеспечения не имеет для суда заранее установленной силы и оценивается наряду с другими доказательствами по общим правилам. Суд проверяет соответствие заключения требованиям процессуального законодательства, полноту и всесторонность проведенного исследования, научную обоснованность выводов, отсутствие противоречий, квалификацию эксперта и его незаинтересованность в исходе дела.
В случае возникновения сомнений в обоснованности или полноте заключения суд может вызвать эксперта для дачи пояснений, назначить дополнительную экспертизу (поручив ее тому же или другому эксперту) либо повторную экспертизу (поручив ее другому эксперту). Независимая экспертиза программного обеспечения, проведенная с соблюдением всех требований, является весомым доказательством, которое суды, как правило, принимают во внимание при вынесении решения. Вместе с тем, стороны вправе представить рецензию на заключение, выявившую методологические или фактические ошибки, что может повлиять на оценку доказательства судом.
4.4. Досудебная независимая экспертиза
Досудебная независимая экспертиза программного обеспечения проводится по инициативе заинтересованной стороны до обращения в суд или в процессе подготовки к судебному разбирательству. Ее результаты могут быть использованы для оценки перспектив спора, для формулирования исковых требований, для подготовки ходатайства о назначении судебной экспертизы, а также в качестве письменного доказательства.
Преимущество досудебной экспертизы состоит в возможности получить техническую оценку в сжатые сроки и без процессуальных формальностей, связанных с назначением экспертизы судом. Вместе с тем, такая экспертиза не обладает статусом судебной, и ее результаты оцениваются судом наравне с другими письменными доказательствами. Процессуальная сила досудебного заключения зависит от его обоснованности, полноты и соблюдения методических требований.
Федерация судебных экспертов проводит независимую экспертизу программного обеспечения как в судебном, так и в досудебном порядке, обеспечивая единые стандарты качества и объективности независимо от формы проведения исследования. Заказчик получает заключение, которое может быть использовано в суде, если суд признает его допустимым и достоверным доказательством.
Раздел 5. Типовые вопросы, разрешаемые в рамках независимой экспертизы программного обеспечения
5.1. Вопросы установления соответствия техническому заданию
Споры о соответствии программного продукта техническому заданию являются одной из наиболее распространенных категорий дел, требующих проведения независимой экспертизы программного обеспечения. Заказчик утверждает, что разработчик не выполнил обязательства, разработчик возражает, ссылаясь на субъективность требований или на то, что заказчик неверно интерпретирует техническое задание. Разрешить такой спор без специальных познаний невозможно.
Типовые вопросы, ставящиеся перед экспертом в таких делах, формулируются следующим образом: содержит ли программный комплекс все функции и модули, перечисленные в акте сдачи-приемки работ; соответствует ли фактическая функциональность программного продукта требованиям технического задания; какие именно функции не реализованы или реализованы с отклонениями от требований; являются ли выявленные недостатки существенными и препятствуют ли они использованию продукта по назначению.
Ответы на эти вопросы требуют от эксперта последовательного сопоставления каждого пункта технического задания с фактическим состоянием программного продукта. Федерация судебных экспертов применяет методику покомпонентной проверки, при которой эксперт фиксирует результат проверки каждого требования в отдельности, а затем обобщает результаты. Такой подход позволяет избежать как необоснованного огульного отрицания, так и необоснованного признания полного соответствия.
5.2. Вопросы установления фактов заимствования кода
Установление фактов заимствования программного кода представляет собой наиболее сложную категорию вопросов, разрешаемых в рамках независимой экспертизы программного обеспечения. Сложность обусловлена как техническими факторами (необходимость анализа больших объемов кода, применения специализированных методов сравнения), так и методологическими (разграничение заимствования и независимого создания схожих решений).
Перед экспертом ставятся вопросы: имеются ли в исходном коде программного продукта ответчика фрагменты, тождественные или сходные до степени смешения с фрагментами кода истца; какова количественная мера сходства между программными продуктами; могут ли выявленные совпадения являться результатом независимой творческой деятельности разных разработчиков; подвергался ли код целенаправленным изменениям с целью сокрытия факта заимствования.
Ответ на последний вопрос особенно важен, поскольку современные нарушители часто прибегают к обфускации — запутыванию кода, делающему его трудночитаемым и затрудняющему сравнение. Эксперт должен уметь распознавать признаки обфускации и оценивать, является ли она результатом обычной практики защиты кода или целенаправленных действий по сокрытию заимствования.
5.3. Вопросы диагностики дефектов и уязвимостей
Диагностика дефектов и уязвимостей программного обеспечения является самостоятельным направлением независимой экспертизы программного обеспечения. Дефекты могут быть классифицированы по степени критичности: от незначительных ошибок, не влияющих на работоспособность, до критических, делающих продукт непригодным для использования. Уязвимости представляют собой особую категорию дефектов, которые могут быть использованы для несанкционированного доступа, модификации или уничтожения информации.
Типовые вопросы диагностического характера: содержит ли исследуемое программное обеспечение дефекты, которые повлекли или могли повлечь его неработоспособность; каковы причины возникновения выявленных дефектов; присутствуют ли в программном коде недекларированные возможности, позволяющие осуществлять несанкционированный сбор, копирование или передачу данных; привела ли архитектура программного решения к систематическим сбоям в работе информационной системы.
При проведении независимой экспертизы программного обеспечения диагностического характера эксперты Федерации судебных экспертов применяют комбинацию статического и динамического анализа, а также методов имитационного моделирования. Результаты диагностики оформляются в виде перечня выявленных дефектов с указанием их критичности и возможных последствий.
5.4. Вопросы стоимостной оценки программных продуктов
Стоимостная оценка программного обеспечения и трудозатрат на его создание или доработку требуется при разрешении споров о размере убытков, при определении стоимости неосновательного обогащения, при разделе имущества, при налогообложении. Независимая экспертиза программного обеспечения в этой части опирается на методы, разработанные в рамках оценки интеллектуальной собственности, с учетом специфики программных продуктов.
Перед экспертом ставятся вопросы: какова рыночная стоимость разработки программного модуля с учетом технологического стека и сложности алгоритмов; каков объем трудозатрат, необходимых для устранения выявленных недостатков; является ли примененная методика расчета доли собственного кода методологически корректной. Ответы на эти вопросы требуют от эксперта познаний в области ценообразования на рынке информационных технологий, а также понимания технологических процессов разработки.
Федерация судебных экспертов при проведении независимой экспертизы программного обеспечения стоимостного характера использует комплексный подход, сочетающий анализ трудозатрат (методом функциональных точек или иными признанными методиками) с анализом рыночных цен на аналогичные разработки. Такой подход позволяет получить обоснованную оценку, которая может быть принята судом.
Раздел 6. Практические кейсы независимой экспертизы программного обеспечения
6.1. Кейс 1. Спор о соответствии ERP-системы техническому заданию
В арбитражный суд города Москвы обратилось производственное предприятие с иском о взыскании с IT-компании убытков в размере 18 миллионов рублей, уплаченных по договору на внедрение ERP-системы. Истец утверждал, что система не соответствует ключевым требованиям технического задания и непригодна для использования в производственном процессе. Ответчик возражал, ссылаясь на то, что все существенные функции были реализованы, а отдельные недостатки не носят критического характера.
Судом была назначена независимая экспертиза программного обеспечения, проведение которой поручено экспертам Федерации судебных экспертов. Перед экспертами были поставлены вопросы о соответствии функциональности системы пунктам технического задания и о существенности выявленных несоответствий.
В ходе исследования эксперты провели детальную проверку 67 позиций технического задания. Для каждой позиции была выполнена верификация фактической реализации: эксперт обращался к функциональности системы, проверял наличие соответствующих модулей, интерфейсов и возможностей. Результаты фиксировались в таблице соответствия. Было установлено, что 14 функций (21 процент от общего числа) не были реализованы или реализованы с существенными отклонениями. В частности, отсутствовал модуль планирования производства, не была реализована интеграция с бухгалтерской системой в части автоматического формирования проводок, а подсистема отчетности не поддерживала требуемые формы.
Эксперты также оценили существенность выявленных недостатков. Модуль планирования производства относился к ключевым функциям, ради которых приобреталась система. Его отсутствие делало невозможным достижение целей договора. Интеграция с бухгалтерией хотя и не была критичной для запуска системы, но ее отсутствие означало, что заказчик не получил результат, на который рассчитывал. С учетом этого эксперты пришли к выводу, что выявленные несоответствия являются существенными и препятствуют использованию системы по назначению.
Суд, оценив заключение независимой экспертизы программного обеспечения в совокупности с другими доказательствами, признал требования истца обоснованными и взыскал с ответчика уплаченную сумму. Решение было оставлено в силе апелляционной и кассационной инстанциями.
6.2. Кейс 2. Дело о заимствовании кода системы управления винодельческой отраслью
Разработчик системы управления для винодельческой отрасли обратился в суд с иском о защите исключительных прав на программное обеспечение. Истец утверждал, что конкурирующая организация выпустила на рынок продукт, созданный путем копирования и незначительной модификации его системы. Ответчик настаивал на том, что продукт разработан самостоятельно, а совпадения объясняются использованием общих библиотек и типовых решений.
Для разрешения спора была назначена независимая экспертиза программного обеспечения. Экспертам предстояло сравнить исходный код двух программных продуктов и установить наличие или отсутствие заимствования.
В ходе исследования эксперты применили методологию многоуровневого сравнения. На первом уровне был проведен анализ файловой структуры и архитектуры проектов. Было выявлено сходство в организации модулей: оба продукта использовали схожую схему разделения на функциональные блоки, совпадали названия ряда директорий и файлов. На втором уровне был проведен токенизированный анализ исходного кода, который показал высокий процент совпадений в отдельных модулях. Наиболее значительное сходство было обнаружено в модуле формирования отчетов: последовательность операций, структура данных и даже имена переменных совпадали с точностью до незначительных изменений.
Эксперты также проверили возможность независимого создания таких совпадений. Было установлено, что использованные в модуле отчетности алгоритмы не являются стандартными для данной предметной области и не встречаются в открытых источниках в такой реализации. Комбинация конкретных технических решений, включая выбор структур данных и последовательность вызовов функций, обладала признаками оригинальности, что делало вероятность независимого воспроизведения крайне низкой.
На основании проведенного исследования эксперты пришли к выводу о наличии заимствования в части модуля отчетности. В отношении остальных модулей вывод был менее категоричным: совпадения объяснялись частично использованием общих библиотек и типовых паттернов, частично — возможным заимствованием идей, но без прямого копирования кода.
Суд принял заключение независимой экспертизы программного обеспечения в качестве доказательства и удовлетворил иск частично, запретив ответчику использование модуля отчетности и взыскав компенсацию. Решение было основано на том, что даже частичное заимствование является нарушением исключительных прав.
6.3. Кейс 3. Спор о качестве доработки конфигураций «1С»
Арбитражный суд города Москвы рассматривал дело по иску управляющей компании к IT-подрядчику о взыскании неосновательного обогащения. Истец утверждал, что работы по доработке конфигураций «1С: Бухгалтерия» и «1С: Документооборот» выполнены не в полном объеме и не соответствуют условиям договора. Ответчик настаивал на том, что все работы выполнены и приняты заказчиком по актам без замечаний.
Сложность дела состояла в том, что доступ к рабочей среде «1С» для непосредственной проверки функционала предоставлен не был. Экспертам Федерации судебных экспертов предстояло провести независимую экспертизу программного обеспечения на основе документации: договоров, технических заданий, актов сдачи-приемки и архива обращений в систему технической поддержки.
Эксперты проанализировали архив системы Help Desk, содержащий все обращения заказчика в процессе эксплуатации системы. Анализ показал, что в течение трех месяцев после сдачи работ заказчик направил 47 обращений, связанных с ошибками в работе доработанных модулей. Из них 23 обращения касались функций, которые, согласно акту сдачи-приемки, были реализованы. Эксперты сопоставили содержание обращений с перечнем работ по договору и установили, что часть заявленных работ фактически не была выполнена: заказчик продолжал пользоваться старыми версиями модулей, которые не были заменены.
Кроме того, эксперты провели анализ трудозатрат, заявленных подрядчиком в актах, и сопоставили их с объемом фактически выполненных работ, восстановленным по документации. Было установлено, что заявленный объем трудозатрат превышает фактический не менее чем на 30 процентов. Эксперты отметили, что часть работ, отраженных в актах, не подтверждается ни документацией, ни архивом обращений.
Суд, основываясь на заключении независимой экспертизы программного обеспечения, признал требования истца обоснованными в части невыполненных работ и завышения трудозатрат. С ответчика была взыскана сумма неосновательного обогащения, соответствующая стоимости невыполненных работ.
6.4. Кейс 4. Дело о недекларированных возможностях в программном обеспечении
Гражданин обратился в суд с иском к разработчику мобильного приложения, утверждая, что приложение осуществляет несанкционированный сбор и передачу персональных данных. Ответчик отрицал наличие каких-либо скрытых функций, утверждая, что приложение собирает только те данные, которые необходимы для его работы и указаны в пользовательском соглашении.
Для проверки доводов сторон была назначена независимая экспертиза программного обеспечения. Перед экспертами были поставлены вопросы о наличии в приложении недекларированных возможностей и о том, какие данные фактически собираются и передаются.
Эксперты провели статический анализ декомпилированного кода приложения и динамический анализ поведения в контролируемой среде. Статический анализ выявил наличие кода, не описанного в документации и не связанного с заявленными функциями. Этот код содержал вызовы API для доступа к контактам, геолокации и файловой системе. Динамический анализ подтвердил, что при определенных условиях (запуск приложения, переход в фоновый режим, подключение к сети) приложение фактически обращается к этим ресурсам и передает данные на сервер, адрес которого не указан в пользовательском соглашении.
Эксперты также проанализировали трафик и установили, что передаваемые данные включают не только информацию, необходимую для функционирования приложения, но и сведения, не имеющие отношения к его работе: список контактов, историю местоположений, идентификаторы устройства. Объем передаваемых данных существенно превышал заявленный в политике конфиденциальности.
На основании проведенного исследования эксперты пришли к выводу о наличии в приложении недекларированных возможностей, позволяющих осуществлять несанкционированный сбор и передачу персональных данных. Суд удовлетворил требования истца, обязав ответчика прекратить сбор данных и удалить уже собранную информацию. Заключение независимой экспертизы программного обеспечения сыграло решающую роль в установлении фактов, которые истец не мог доказать самостоятельно.
6.5. Кейс 5. Спор о самостоятельности программных продуктов
Компания «АльтЭль» обратилась в суд с иском к компании «Нума Технологии», утверждая, что программное обеспечение ответчика представляет собой копию и модификацию ее собственных разработок. В подтверждение своих доводов истец ссылался на совпадение исходного кода до 99 процентов, а также на то, что компанию ответчика возглавляет бывший генеральный директор «АльтЭль». Ответчик утверждал, что разработал продукты самостоятельно, используя общедоступные технологии и открытые репозитории.
Судом была назначена независимая экспертиза программного обеспечения, проведение которой поручено экспертам, специализирующимся на анализе программного кода. Эксперты проанализировали статистическую структуру кода обеих программ, выявили наличие нетиповых семантических конструкций, исследовали даты публикации кода и сопоставили их с датами регистрации программ в Роспатенте.
Эксперты установили, что высокий процент совпадений, на который ссылался истец, объясняется использованием общих библиотек с открытым исходным кодом, которые составляют значительную часть обоих продуктов. При исключении стандартных библиотек и типовых конструкций процент совпадений снижался до незначительной величины. Кроме того, эксперты выявили в коде ответчика уникальные конструкции, отсутствующие в продуктах истца, что свидетельствовало о самостоятельной разработке.
Эксперты также проанализировали хронологию: даты создания файлов в репозиториях обеих компаний показали, что код ответчика в части уникальных модулей был создан в период, когда истец еще не имел соответствующих разработок. Это дополнительно подтверждало вывод о самостоятельности.
Суд, оценив заключение независимой экспертизы программного обеспечения, отказал истцу в удовлетворении требований, указав на отсутствие доказательств нарушения авторских прав. Апелляционная и кассационная инстанции оставили решение без изменения. Дело стало прецедентом, демонстрирующим важность разграничения общего и особенного при сравнении программного кода.
6.6. Кейс 6. Дело о восстановлении удаленного исходного кода
IT-компания обратилась в суд с иском к бывшему сотруднику, который, по утверждению истца, перед увольнением удалил исходный код разрабатываемого проекта. Ответчик отрицал умышленное удаление, утверждая, что код был утерян в результате сбоя оборудования. Для установления обстоятельств удаления и возможности восстановления кода была назначена независимая экспертиза программного обеспечения.
Эксперты Федерации судебных экспертов провели исследование жестких дисков и серверного оборудования истца. Первым этапом стало создание побитовых копий носителей информации с фиксацией хэш-сумм. Работа с копиями, а не с оригиналами, гарантировала неизменность исходных данных и процессуальную допустимость результатов.
На копиях эксперты применили методы восстановления удаленных данных. Были обнаружены следы удаления файлов, характер которых указывал на использование стандартных команд операционной системы, а не на сбой оборудования. Временные метки удаления коррелировали с периодом, когда ответчик имел доступ к системе. Кроме того, в журналах системы были обнаружены записи о подключении внешнего носителя в момент, предшествующий удалению, что позволяло предположить копирование данных перед удалением.
Экспертам удалось восстановить значительную часть удаленного кода: около 70 процентов файлов были извлечены в пригодном для анализа виде. Восстановленный код был передан истцу вместе с заключением. Эксперты также отметили, что часть кода восстановлению не подлежит из-за перезаписи секторов, но сохранившиеся фрагменты позволяют продолжить разработку.
Суд признал факт умышленного удаления кода ответчиком доказанным на основании заключения независимой экспертизы программного обеспечения и взыскал с него убытки, связанные с необходимостью повторной разработки утраченных модулей.
6.7. Кейс 7. Спор о соответствии сайта техническому заданию
Заказчик и разработчик спорили об объеме и качестве работ по созданию корпоративного сайта. Заказчик утверждал, что сайт не соответствует требованиям технического задания по функциональности, дизайну и производительности. Разработчик настаивал на том, что все существенные требования выполнены, а отдельные недостатки не являются критичными.
Независимая экспертиза программного обеспечения, проведенная экспертами Федерации судебных экспертов, включала анализ технического задания, исследование кода сайта и имитационные испытания. Эксперты проверили 38 требований, из которых 12 не были выполнены или выполнены с отклонениями. В частности, не была реализована заявленная интеграция с CRM-системой, отсутствовала поддержка многоязычности, а время загрузки страниц превышало нормативы, указанные в техническом задании.
Эксперты также проанализировали качество кода и выявили многочисленные нарушения стандартов разработки, которые могли привести к уязвимостям безопасности. В заключении были даны рекомендации по устранению выявленных недостатков.
Суд, основываясь на заключении, взыскал с разработчика стоимость невыполненных работ и обязал устранить критические дефекты. Заключение независимой экспертизы программного обеспечения позволило заказчику получить объективную оценку результата работ, которую он не мог сформулировать самостоятельно в технических терминах.
6.8. Кейс 8. Дело о сходстве программ для торговли на бирже
Предметом спора стало программное обеспечение для автоматизированной торговли на фондовом рынке. Истец утверждал, что ответчик неправомерно использовал его торговый алгоритм, получив доступ к программе через бывшего сотрудника. Ответчик отрицал использование алгоритма, утверждая, что его программа основана на собственных разработках.
Независимая экспертиза программного обеспечения включала сравнение алгоритмической логики обеих программ. Эксперты провели декомпиляцию исполняемых файлов и восстановили логику работы ключевых модулей. Сравнение показало, что последовательность принятия торговых решений, структура данных и параметры алгоритма в обеих программах совпадают с высокой степенью точности. Эксперты отметили, что совпадение не может быть объяснено использованием стандартных библиотек, поскольку комбинация конкретных параметров и логических условий являлась уникальной.
Кроме того, эксперты обнаружили в коде ответчика фрагменты, идентичные коду истца, включая комментарии и характерные ошибки, которые не влияли на работоспособность, но сохранялись при копировании. Это свидетельствовало о прямом заимствовании.
Суд признал факт неправомерного использования алгоритма доказанным и запретил ответчику использование программы, взыскав компенсацию в пользу истца.
6.9. Кейс 9. Спор о стоимости разработки программного продукта
При разделе имущества между супругами возник спор о стоимости программного продукта, созданного в период брака. Один из супругов утверждал, что продукт имеет значительную рыночную стоимость, другой настаивал на низкой оценке. Для определения стоимости была назначена независимая экспертиза программного обеспечения.
Эксперты провели анализ трудозатрат на создание продукта, используя метод функциональных точек, и сопоставили полученные значения с рыночными ставками разработчиков соответствующей квалификации. Было установлено, что продукт содержит 14 функциональных модулей, каждый из которых требовал определенного объема работ. Общая трудоемкость была оценена в 1 200 человеко-часов. С учетом рыночной стоимости часа работы программиста стоимость разработки составила сумму, значительно превышающую ту, на которую указывал ответчик.
Эксперты также учли уникальность продукта и его потенциальную коммерческую ценность, что позволило определить итоговую рыночную стоимость. Заключение независимой экспертизы программного обеспечения было принято судом в качестве основы для раздела имущества.
6.10. Кейс 10. Дело о рецензировании заключения другой экспертной организации
Сторона по делу представила заключение независимой экспертизы программного обеспечения, выполненное одной из экспертных организаций, в качестве доказательства отсутствия заимствования кода. Противная сторона, не соглашаясь с выводами, обратилась в Федерацию судебных экспертов с запросом на проведение рецензирования заключения.
Рецензирование включало проверку методологической обоснованности исследования, полноты проведенного анализа, корректности примененных методов и обоснованности выводов. Эксперты Федерации установили, что в заключении были допущены существенные методологические ошибки. В частности, сравнение кода проводилось без нормализации, что привело к искажению результатов: высокий процент совпадений был получен за счет служебных символов и пробелов, а не за счет содержательного сходства. Кроме того, эксперт не исследовал возможность независимого создания выявленных совпадений, ограничившись констатацией факта сходства.
Рецензия, подготовленная по результатам независимой экспертизы программного обеспечения, была представлена в суд и послужила основанием для назначения повторной экспертизы. Повторная экспертиза, проведенная с соблюдением методологических требований, опровергла выводы первоначального заключения. Суд критически оценил первоначальное заключение и принял во внимание результаты повторной экспертизы. Этот кейс демонстрирует важность методологической корректности при проведении независимой экспертизы программного обеспечения и ценность института рецензирования как инструмента контроля качества экспертных заключений.
Раздел 7. Организационные аспекты обращения в Федерацию судебных экспертов
7.1. Порядок обращения и необходимые материалы
Обращение в Федерацию судебных экспертов для проведения независимой экспертизы программного обеспечения начинается с консультации, в ходе которой заказчик излагает суть проблемы и формулирует предварительные вопросы. Специалисты Федерации оценивают, относится ли вопрос к компетенции экспертов, и определяют вид необходимой экспертизы. При необходимости эксперты помогают заказчику сформулировать вопросы в технически корректной форме, исключающей правовые категории и двусмысленность.
Для проведения независимой экспертизы программного обеспечения заказчику необходимо предоставить следующие материалы: программный код (исходный или исполняемый) в том виде, в котором он доступен; техническое задание и иную проектную документацию; договоры на разработку или лицензирование; акты сдачи-приемки и переписку сторон; документацию пользователя; при наличии — скриншоты ошибок, логи системы, иную информацию, относящуюся к предмету исследования. От полноты предоставленных материалов напрямую зависят сроки и стоимость экспертизы, а также обоснованность выводов.
Федерация судебных экспертов принимает заявки на проведение независимой экспертизы программного обеспечения как от юридических, так и от физических лиц. Заявка может быть подана через официальный сайт, по электронной почте или по телефону. После получения заявки специалисты связываются с заказчиком для уточнения деталей и определения сроков.
7.2. Сроки и стоимость проведения исследования
Сроки проведения независимой экспертизы программного обеспечения зависят от сложности объекта и объема исследуемого материала. Простые исследования, связанные с проверкой соответствия отдельных функций техническому заданию, могут быть выполнены в течение пятнадцати рабочих дней. Сложные исследования, включающие анализ больших объемов кода, сравнение программных продуктов, восстановление удаленных данных, требуют более длительного времени и могут занимать от одного до трех месяцев.
Стоимость независимой экспертизы программного обеспечения рассчитывается индивидуально для каждого заказа и зависит от следующих факторов: объем исследуемого кода, сложность архитектуры, необходимость применения специализированных методов (декомпиляция, реверс-инжиниринг, восстановление данных), количество поставленных вопросов, срочность выполнения. Ориентировочные цены на отдельные виды исследований публикуются на сайте Федерации, однако точная стоимость определяется после ознакомления с материалами.
Федерация судебных экспертов гарантирует прозрачность ценообразования: заказчик получает смету до начала работ, а итоговая стоимость не превышает согласованной суммы без дополнительного согласования. В случае, если в процессе исследования выявляется необходимость в дополнительных работах, заказчик уведомляется и принимает решение о целесообразности их проведения.
7.3. География присутствия и доступность услуг
Федерация судебных экспертов располагает сетью из семидесяти офисов и филиалов на территории Российской Федерации, что обеспечивает доступность независимой экспертизы программного обеспечения во всех регионах страны . Заказчику не требуется приезжать в Москву: экспертиза может быть проведена в ближайшем офисе Федерации, либо эксперты выезжают на место для осмотра объектов. В случаях, когда исследование не требует физического доступа к оборудованию, материалы могут быть переданы в электронном виде, а экспертиза проведена дистанционно.
Ежегодно Федерация выполняет более четырех тысяч экспертиз и исследований, из которых значительная часть приходится на компьютерно-технические экспертизы, включая независимую экспертизу программного обеспечения . Штат включает сто пятнадцать судебных экспертов в столичном офисе и пятьсот сотрудников в региональных подразделениях, что позволяет оперативно реагировать на запросы любой сложности.
7.4. Гарантии качества и процессуальной допустимости
Федерация судебных экспертов обеспечивает соответствие проводимых исследований требованиям процессуального законодательства и стандартам экспертной деятельности. Заключения, выдаваемые по результатам независимой экспертизы программного обеспечения, содержат все необходимые реквизиты, включая сведения об эксперте, перечень материалов, описание методики, обоснование выводов. Эксперты предупреждаются об уголовной ответственности за дачу заведомо ложного заключения.
При проведении экспертизы по поручению суда Федерация обеспечивает соблюдение процессуальных сроков и требований к оформлению. Эксперты готовы дать пояснения в судебном заседании, ответить на вопросы суда и сторон, представить дополнительные материалы. В случае необходимости проведения дополнительной или повторной экспертизы Федерация готова выполнить соответствующие исследования в установленном порядке.
Заказчик независимой экспертизы программного обеспечения получает не только заключение, но и квалифицированную поддержку на всех этапах: от формулирования вопросов до представления результатов в суде. Специалисты Федерации консультируют по вопросам использования заключения в процессе, помогают подготовить ходатайства и возражения, связанные с экспертизой.
Независимая экспертиза программного обеспечения является востребованным инструментом разрешения споров в сфере информационных технологий. Федерация судебных экспертов, обладая многолетним опытом, сетью региональных представительств и штатом квалифицированных экспертов, обеспечивает проведение исследований на высоком профессиональном уровне. Обращение в Федерацию гарантирует заказчику объективность, процессуальную допустимость и техническую обоснованность результатов независимой экспертизы программного обеспечения.

Задать вопрос экспертам