Контакты
Подписка 2026

Flexible SCA – это про переиспользование кода

Дарья Орешкина, 23/12/21

По данным аналитиков Forrester [1], доля компонентов с открытым кодом (Open Source Software) в кодовой базе программных продуктов в 2020 г. составляла в среднем 75%, другие эксперты дают более смелые оценки – до 90%. Стремительно нарастающий объем мирового Open Source вовлекает все новых игроков не только из коммерческого сектора, но и из государственного: переиспользование кода и включение отечественных разработок Open Source в международные проекты стратегически важны на государственном уровне.

Автор: Дарья Орешкина, директор по развитию бизнеса компании Web Control

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

Тем не менее переиспользование кода – де-факто мейнстрим для разработки ПО как для коммерческих, так и для госкомпаний. Выбирать и включать в проекты подходящие компоненты помогают качественные инструменты класса Software Composition Analysis (SCA), при этом наиболее глубоко анализировать переиспользование могут SCA с функцией поиска и анализа дубликатов.

Наверное, многие слышали про такие решения для композиционного анализа на российском рынке, как Checkmarx, JFrog, Snyk, Sonatype, Synopsys, Veracode, WhiteSource, а в начале 2021 г. этот список пополнился отечественным решением CodeScoring, которое расширяет функциональность SCA с анализа Open Source до анализа и контроля всех видов переиспользования кода, включая проприетарный код. CodeScoring использует алгоритмы машинного обучения, обработки искусственных и естественных языков для углубленного анализа переиспользования кода и контроля авторства, то есть идентификации непосредственно того разработчика, который включил код в проект.

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

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

  • идентификацией известных уязвимостей в Open Source;
  • пользовательским интерфейсом;
  • интерфейсами для связи с внешними базами и многими другими.

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

Продукт получил название CodeScoring и в начале 2021 г. был представлен на рынке как самостоятельное решение. Продукт позиционируется как Flexible SCA, работает не только с Open Source, но и с проприетарным кодом и позволяет проводить ретроспективный анализ с анализом истории появления проблем.

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

CodeScoring разбирает код на открытый и проприетарный, обнаруживает заимствования как открытого, так и собственного кода (утечка интеллектуальной собственности в другие проекты или дубликаты внутри одного проекта). Для открытого кода формируется список Software Bill of Materials (SBoM), включающий информацию по известным уязвимостям и лицензионным соглашениям используемого Open Source, отслеживает соблюдение лицензионной политики компании и выявляет несовместимые лицензии. CodeScoring определяет не только факт, но и направление заимствований. Кроме кода система анализирует авторский состав и профилирует техническую экспертизу исполнителей, что помогает в подборе специалистов с нужными техническими навыками на основе подтвержденной компетенции в проект.

Рассмотрим, что получают от использования CodeScoring различные участники процесса разработки.

Сопровождение реестра алгоритмов и программ

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

CodeScoring для приемки кода от внешних подрядчиков

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

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

Безопасная разработка

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

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

Обеспечение юридической чистоты

Еще несколько лет назад вопросы юридической чистоты в разработке ограничивались в основном договорной работой с подрядчиками. Однако в последние три года кроме судебных тяжб за закрытыми дверями появились и громкие судебные дела, связанные с авторскими правами: "Лаборатория Касперского" против "Киберсекьюрити Солюшнс", иск разработчика к Veeam Software AG, иск Рамблера к Nginx. При этом суды часто встают на сторону авторов изобретений. Важно понимать, насколько ваш продукт принадлежит вам. CodeScoring может в этом значительно помочь. Решение обнаруживает заимствования и направление копирования, кто у кого скопировал код. И конечно же, будучи SCA-решением, CodeScoring автоматически распознает используемые в проекте Open Source лицензии, их совместимость и пригодность для применения в коммерческом продукте.

CodeScoring для HR

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

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

Заключение

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


  1. Отчет The Forrester WaveTM: Software Composition Analysis, Q3 2021, https://www.forrester.com/report/the-forrester-wave-tmsoftware-composition-analysis-q3-2021/RES176091 
Темы:Безопасная разработкаЖурнал "Информационная безопасность" №5, 2021SCACodeScoring
Практика защиты персональных данных в 2027 году: требования и инструменты. 14 октября на Форуме ITSEC 2026
Полное расписание мероприятий Форума ITSEC 2026 →

Программа мероприятий
для руководителей и специалистов
по защите информации

Посетить
Статьи по той же темеСтатьи по той же теме

  • Достижимость уязвимостей в Open Source
    Антон Володченко, руководитель разработки продукта платформы безопасной разработки CodeScoring
    Open Source содержит много уязвимостей, а отделить реальные риски от потенциальных и сфокусироваться на том, что действительно опасно, помогают подходы, такие как анализ достижимости.
  • SafeERP – новая архитектура защиты бизнес-приложений
    Римма Кулешова, менеджер продукта SafeERP компании “Газинформсервис”
    Признание ERP-систем частью КИИ меняет подход к безопасности бизнес-приложений. На первый план выходят вопросы непрерывного контроля, управления рисками и прозрачности процессов внутри 1С и SAP. Римма Кулешова рассказывает о новой модели защиты ERP и о том, почему безопасность бизнес-логики становится отдельным направлением ИБ.
  • ИИ в аудите смарт-контрактов и проблема масштаба
    Александр Подобных, Независимый эксперт по ИБ в SICP.ueba.su
    Смарт-контракты пишутся быстрее, чем их успевают нормально проверять. Ошибки при этом каждый раз разные – от простых просчетов в логике до сложных сценариев с оракулами и внешними протоколами. Разбор каждого инцидента занимает время, а их становится все больше и больше. В какой-то момент проблема сводится уже не к сложности, а к объему: ручной аудит не успевает покрывать все, что появляется.
  • Когда платформа становится безопаснее, чем безопасник
    Александр Трифанов, руководитель направления Application Security, "Авито"
    В крупных компаниях стало слишком много инженерии. Команды растут, микросервисы множатся, инфраструктура усложняется, а вместе с ней – и стоимость ее поддержки. Поэтому идея внутренних платформ выглядит естественным ответом на хаос. То, что раньше требовало согласований и ручных настроек, теперь превращается в сервис – Platform as a Service, Publication as a Service, Admin as a Service.
  • Как инструменты разработки становятся средствами для кражи криптоактивов
    Дмитрий Пойда, аналитик по расследованиям AML/KYT провайдера “Шард”
    Количество атак на цепочку поставок программного обеспечения в прошлом году выросло на 156% по сравнению с годом ранее, по данным исследования Sonatype. Разберемся, как эта угроза проявляет себя в мире криптовалют, и почему привычные инструменты разработчика становятся орудием злоумышленников.
  • Почему DevSecOps не приживается в АСУ ТП и MES – и как его адаптировать
    Артем Пузанков, руководитель группы внедрения практик безопасной разработки Positive Technologies
    Внедрение DevSecOps стало нормой для ИТ-разработки, однако в промышленных системах этот подход сталкивается с серьезными ограничениями. Приоритеты в этих средах – надежность, непрерывность работы и соблюдение отраслевых стандартов – изначально противоречат динамике CI/CD и гибкости DevOps. Дополнительные препятствия создают закрытые контуры, устаревшие технологии и фрагментированная структура ответственности.

Хотите участвовать?

Выберите вариант!

КАЛЕНДАРЬ МЕРОПРИЯТИЙ 2026
ПОСЕТИТЬ МЕРОПРИЯТИЯ
ВЫСТУПИТЬ НА КОНФЕРЕНЦИЯХ
СТАТЬ АВТОРОМ
13-14 октября приглашаем экспертов и практиков выступить на Форуме ITSEC 2026!
Отправить заявку на участие →

More...
ТБ Форум 2026
13 октября. Защищенный удаленный доступ на Форуме ITSEC 2026
Регистрация открыта →

More...