Экспертиза исходного кода - кто и как проводит
Цифровизация – тенденция современности. Обойтись без компьютерных программ, мобильных приложений невозможно. Создатели программного обеспечения – программисты, использующие языки программирования, создающие исходные коды.
Исходный код приложения – это его текстовый образ, созданный при помощи определенного языка программирования.
Качество, грамотность, надежность определяют общую стабильность программы, степень ее устойчивости к вирусным, хакерским атакам, уникальность – показывает, что продукт является оригинальным, созданным без нарушений авторских прав, затрагивания наработок других специалистов. Определить все эти показатели помогает экспертиза исходного кода it проекта. Кто уполномочен на ее проведение? Каковы особенности и алгоритмы процесса?
Кто проводит экспертизу?
Экспертиза – зона ответственности частных и государственных организаций. Их сотрудники – специалисты IT-отрасли, программисты, обладающие соответствующими знаниями, пользующиеся профессиональным программным обеспечением. Эксперт должен ориентироваться в различных языках программирования, понимать архитектуру, устройство ПО.
Деятельность компаний лицензирована, результаты проведенных экспертиз могут использоваться как судебные доказательства. Также они могут подтверждать незаконное копирование объектов авторского права, либо опровергать его, указывать на несовершенства разработок, уязвимости, нуждающиеся в срочном устранении.
Что можно проверить?
Экспертиза исходного кода направлена на анализ следующих продуктов:
- Утилиты, ПО, мобильные приложения (независимо от специфики). В исходном коде зафиксированы базовые алгоритмы, определяющие принципы функционирования программы, взаимодействия ее модулей, компонентов;
- Библиотеки. В них хранятся базовые наборы функций, использование которых допустимо при разработке различных приложений;
- Скрипты. Коды скриптов короткие, однако, отрицать их значимость нельзя. Разработки помогают автоматизировать выполнение рутинных процессов, расширить исходный программный функционал;
- Драйверы. Миниатюрные программы, обеспечивающие корректное взаимодействие операционной среды, Windows, Linux или MacOS, с аппаратной частью: видеокартой, процессором, жестким диском. Чем совершеннее драйвер, тем эффективнее ПО использует доступные ресурсы, тем выше быстродействие;
- Операционные системы. Среды для взаимодействия пользователя с компьютером, позволяющие запускать нужные приложения, активировать функции, реализовывать потенциал аппаратной части;
- Модули. Универсальные программные элементы, использование которых возможно в различных приложениях. Установка модулей преследует открытие новых функций, автоматизацию действий, улучшение взаимодействия с аппаратными и программными компонентами.
Задачи экспертизы исходного кода
Перед экспертизой нужно определить вопросы, на которые она должна ответить. Список вероятных задач таков:
- Обнаружение ошибок в исходном коде.
Даже небольшие недочеты могут привести к серьезным сбоям ПО, делать его уязвимым для сетевых атак, провоцировать риски потери личных данных, их утраты из-за повреждения, кражи; - Оценка качества кода.
Лаконичность, краткость, структурированность кода – все это определяет быстродействие программы, функциональность, скорость выполнения операций, возможности модернизации, совершенствования, выпуска новых версий и редакций; - Определение соответствия ТЗ, предоставленному заказчику.
Если утилита была создана не по личной инициативе разработчика, а по заказу, она должна отвечать требованиям клиента; - Обнаружение дубликатов.
Повторяющиеся части кода допустимы, однако, они делают приложение более громоздким, медленным, требовательным к аппаратным ресурсам, без положительного влияния на функциональность. Чем меньше таких фрагментов – тем лучше, в идеале – полное отсутствие; - Оценка универсальности.
Универсальный код может быть использован не в конкретном приложении, а в комплексе родственных программ; - Поиск плагиата, фактов незаконного копирования, нарушения авторских прав разработчика.
В данном случае эксперт сравнивает пару исходных кодов it-проектов (оригинал и вероятную копию). Он ищет признаки, указывающие на нелегитимное использование, полные и замаскированные сходства.
Как проводится экспертиза кода программы?
Классическая схема экспертизы исходного кода выглядит следующим образом:
- Первичное изучение файлов, полученных от заказчика. Они предоставляются на внешнем носителе, например, флеш-карте, либо пересылаются по электронной почте, загружаются в облачное хранилище с последующим открытием доступа;
- Анализ кода ручными и инструментальными методами, выполнение поставленных задач, обнаружение уязвимостей, сравнение эталона с вероятной копией, определение ошибок, устранение которых поможет увеличить быстродействие приложение, расширить его функционал, лучше адаптировать к дальнейшей модернизации, выпуску обновлений;
- Подготовка экспертного заключения, где закреплены ответы на поставленные вопросы, имеются подписи, печати, подтверждающие подлинность, обеспечивающие возможность использования в качестве судебного доказательства.
Статический и динамический анализ
Для подготовки максимально точных выводов, эксперт должен использовать все доступные средства, инструменты и методики, прибегать к статическому, динамическому анализу. Особенности таковы:
- Статический. Исследования без прямого задействования исследуемой программы. Специалист сконцентрирован исключительно на исследовании кода, определяет целостность структуры, правильность оформления, отсутствие фрагментов-повторов;
- Динамический. Предполагает запуск программы, чей исходный код является объектом исследования. Динамический анализ помогает в определении фактических функций и возможностей, понимании четкости взаимодействия с другими аппаратными, системными, программными модулями.
Оформление заключения по экспертизе
Заключительная стадия экспертизы – подготовка заключения, где закреплены ответы на поставленные вопросы, объяснены способы поиска ответов, указано используемое для динамического анализа программное обеспечение. Заключение, заверенное печатями лицензированных организаций, подписями экспертов – это неопровержимое доказательство для суда, которое можно использовать, например, в делах о нарушении авторского права, подтвердив следующее:
- Факт единоличного обладания объектом интеллектуальной собственности, в данном случае – исходным кодом;
- Факт неправомерного использования исходного кода, приведший к репутационным, финансовым и другим потерям;
- Качество исходного кода, либо, наоборот, его несоответствие поставленному ТЗ, что важно при возникновении разногласий на этой почве.
Конечно, суд примет во внимание только профессиональное заключение. Деятельность организации, предоставившей его, должна быть лицензирована не только по общим государственным стандартам, но и по специализированным, подтверждающим, что она имеет право работать с конфиденциальными данными, средствами криптографической защиты.
Комментарии