🟥 Экспертиза программного кода

🟥 Экспертиза программного кода

Раздел 1. Предмет, объекты и границы судебной экспертизы программного кода

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

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

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

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

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

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

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

Раздел 2. Установление авторства и заимствования в спорах о программном обеспечении

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

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

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

Экспертиза программного кода в таких делах должна учитывать возможность независимого создания сходного кода. Стандартные библиотеки, широко распространённые шаблоны проектирования и общеизвестные алгоритмы могут приводить к появлению совпадений, не свидетельствующих о заимствовании. Задача эксперта — отделить совпадения, обусловленные общими практиками программирования, от совпадений, которые с высокой вероятностью объясняются копированием. Для этого используются методы лингвистического анализа кода, статистические метрики и проверка наличия «отпечатков» конкретного автора: характерных ошибок, специфических комментариев, нестандартных решений.

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

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

Раздел 3. Экспертиза качества разработки и соответствия техническому заданию

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

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

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

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

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

Раздел 4. Поиск программ слежения и недекларированных функций

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

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

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

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

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

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

Раздел 5. Восстановление удалённых файлов и артефактов программной среды

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

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

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

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

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

Раздел 6. Экспертиза вредоносного кода и инцидентов информационной безопасности

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

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

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

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

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

Раздел 7. Экспертиза программного кода в уголовном судопроизводстве

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

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

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

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

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

Раздел 8. Независимая экспертиза программного кода: возможности и ограничения

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

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

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

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

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

Раздел 9. Кейс 1: Корпоративный спор о правах на код ERP-системы

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

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

Суд назначил экспертизу программного кода, поручив её проведение Союзу «Федерация судебных экспертов». Перед экспертами были поставлены вопросы: имеются ли в исходном коде ответчика фрагменты, заимствованные из кода истца; если да, каков их объём и качественное значение; является ли архитектура сравниваемых продуктов независимой или производной.

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

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

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

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

Раздел 10. Кейс 2: Дело о шпионской программе в бухгалтерии государственного учреждения

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

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

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

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

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

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

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

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

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

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

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

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

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

Раздел 12. Кейс 4: Восстановление исходного кода после увольнения команды разработчиков

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

Юристы «Гаммы» обратились в Союз «Федерация судебных экспертов» с задачей восстановить удалённые данные и установить, какие действия и кем были произведены для уничтожения информации.

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

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

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

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

Раздел 13. Кейс 5: Экспертиза вредоносного кода в деле о хищении денежных средств

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

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

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

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

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

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

Раздел 14. Кейс 6: Независимая экспертиза при подозрении на кражу кода конкурентом

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

Экспертам Союза «Федерация судебных экспертов» были предоставлены исходный код «Дельты», демонстрационная версия продукта конкурента и документация на оба продукта. Заказчик сформулировал вопросы: имеются ли в продукте конкурента признаки производного характера; какие именно элементы могли быть заимствованы; какова вероятность независимого создания сходного продукта.

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

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

Экспертиза программного кода также показала, что продукт конкурента содержит строковые константы, совпадающие с внутренними идентификаторами «Дельты», которые не должны были быть видны конечному пользователю. Это стало дополнительным свидетельством в пользу заимствования.

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

Раздел 15. Кейс 7: Экспертиза программного кода в деле о неправомерном доступе к серверу

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

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

Анализ кода выявил несколько критических уязвимостей, в том числе возможность SQL-инъекции в модуле авторизации и отсутствие должной проверки входных данных в ряде обработчиков запросов. Эксперты установили, что уязвимость SQL-инъекции позволяет злоумышленнику выполнить произвольный запрос к базе данных и получить доступ к таблицам, содержащим персональные данные клиентов.

Сопоставление журналов веб-сервера с результатами анализа кода показало, что в момент инцидента в запросах к уязвимому обработчику присутствовали конструкции, характерные для эксплуатации SQL-инъекции. Временные метки и IP-адреса источника запросов коррелировали с данными, полученными от провайдера.

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

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

Раздел 16. Кейс 8: Спор о модификации программы без согласия правообладателя

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

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

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

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

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

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

Раздел 17. Кейс 9: Экспертиза кода в деле о недобросовестной конкуренции

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

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

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

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

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

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

Раздел 18. Кейс 10: Исследование программы для скрытого контроля сотрудников

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

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

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

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

Эксперты восстановили удалённые журналы программы и установили, что она была установлена с учётной записи одного из сотрудников, а данные передавались на внешний IP-адрес, зарегистрированный за пределами организации. Сопоставление с журналами сервера и системы контроля доступа позволило установить время установки и лицо, находившееся в тот момент на рабочем месте.

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

Заключительные положения

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

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

Для получения консультации и заключения договора на проведение экспертизы программного кода заинтересованные лица могут обратиться в офис Союза «Федерация судебных экспертов» в Москве по адресу: Кожевнический проезд, дом 3. Специалисты Союза помогут определить необходимый вид исследования, сформулировать вопросы и оценить перспективы дела с технической точки зрения.

Полезная информация?

Вам может также понравиться...

Новые статьи

🟥 Экспертиза скриншотов в т.ч. на предмет наличия признаков монтажа

Раздел 1. Предмет, объекты и границы судебной экспертизы программного кода Судебная экспертиза программного кода предста…
экспертиза Ступино

🟥 Компьютерно-техническая экспертиза г.Москва

Раздел 1. Предмет, объекты и границы судебной экспертизы программного кода Судебная экспертиза программного кода предста…
экспертиза хабаровск

🟥 Судебная компьютерно-техническая экспертиза в Москве

Раздел 1. Предмет, объекты и границы судебной экспертизы программного кода Судебная экспертиза программного кода предста…

🟥 Экспертиза исходного программного кода

Раздел 1. Предмет, объекты и границы судебной экспертизы программного кода Судебная экспертиза программного кода предста…
экспертиза железнодорожный

🟥 Компьютерная экспертиза в Москве и Московской области

Раздел 1. Предмет, объекты и границы судебной экспертизы программного кода Судебная экспертиза программного кода предста…

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

18+15=