Журнал "Information Security/ Информационная безопасность" #2, 2021
– Что отличает ваш продукт от других SCA? – Наша компания достаточно давно занимается комплексным аудитом ПО, который включает в себя анализ ориги- нальности кода, оценку трудоемкости его исполнения, качества и авторского состава. Композиционный анализ исход- ного кода является частью такого аудита. Существующие на рынке решения для автоматизации композиционного ана- лиза в полной мере нас не устраивали, и мы решили сделать эту автоматизацию сами. Получилось решение, функцио- нальность которого вышла за рамки простого композиционного анализа, так как попутно мы решили вопросы авто- матического определения качества исходного кода и скоринга авторов. Дело в том, что традиционные SCA- решения, как и десять лет назад, ориен- тированы в первую очередь на иденти- фикацию Open Source пакетов (OSS) и выдачу заказчику имеющейся по ним информации. Они просто сравнивают файлы на идентичность с известными пакетами и говорят, из каких компонен- тов состоит код заказчика, какие извест- ные уязвимости присутствуют и какие лицензионные ограничения существуют. Мы же устанавливаем авторство, то есть ищем похожий код и идентифици- руем не только идентичный, но и похо- жий код. Поэтому мы позиционируемся как Flexible SCA. Это позволяет нам видеть то, что ускользает от традицион- ных SCA. Кроме того, по нашему мнению, воз- можности SCA сильно недооценены заказчиками. Такие инструменты исполь- зуются главным образом как часть ста- тического анализа для выявления известных уязвимостей в заимствован- ном коде OSS и применения к ним поли- тик безопасности или для отслеживания лицензионной чистоты разработанного продукта. То есть цель – быстро получить ответ на вопрос, можно ли ПО выпускать или нужно что-то исправить. Однако при правильном подходе подобные решения открывают новые возможности и для повышения качества ПО, и для оптимизации процессов разработки, и для оценки квалификации авторов. У каждого компонента есть автор, источником качества тоже является автор, он же несет ответственность за привнесенные заимствованием уязви- мости и лицензионные ограничения. Недостаточно просто заблокировать релиз, нужно понимать, кто будет исправ- лять код. Именно поэтому CodeScoring, позволяющий не только делать анализ самого кода, но и связывать конкретный код с конкретным разработчиком, вклю- чая транзитивное заимствование, и при этом оценивать (скорить) этих авторов, является инновационным. Такого подхо- да сейчас в мире нет ни у кого. Как правило, вопрос влияния состава программного кода на качество ПО оста- ется за пределами контроля SCA, потому что традиционно этим занимаются дру- гие специализированные системы, кото- рые, в свою очередь, упускают то, что наличие большого количества уязвимо- стей и лицензионных недостатков является прямой составляющей такого понятия, как технический долг. На наш взгляд, отслеживание состава ПО, слож- ности кода и объема технического долга тесно связано с идентификацией уязви- мостей и лицензий и они обязаны оце- ниваться системами композиционного анализа. – Как качество и сложность проектов связаны с безопас- ностью? – Если говорить про сложность и без- опасность, то здесь важно уточнить, что под сложностью мы имеем в виду цикло- матическую сложность – количество линейно независимых маршрутов через программный код. Чем больше развилок, тем сложнее программа. В среде спе- циалистов, профессионально занимаю- щихся анализом кода (код-майнеров), достаточно известно исследование о том, что если цикломатическая слож- ность близится к числу 50, то веро- ятность внесения ошибки в программный код с каждым новым изменением бли- зится к 100%. То есть чтобы ни делали программисты с таким кодом, они, ско- рее всего, сделают ошибку. Наличие такой ситуации в проекте – прямая угро- за его безопасности. – Специалисты по безопасности в той или иной мере анализируют выпускаемое ПО, но что может ускользать от внимания безопас- ников? – Опять же, поскольку у нас есть опыт проведения аудита ПО, мы видим, что специалисты по безопасности, как правило, фокусируются на анализе конечного результата. Они проверяют либо сборку, либо исходный код, попав- ший в сборку, на наличие уязвимостей и каких-либо чувствительных данных, но редко смотрят историю разработки и код-артефакты, то есть наборы дан- ных, которые сопутствуют разработке (файлы, тикеты в системах управления задачами, которые зачастую содержат доступ к боевым площадкам). Чувстви- тельные данные могут находиться в исходном коде, который публикуется в системах контроля версий, в конфи- гурационных файлах, и, по опыту нашей компании, могу сказать, что так бывает практически в каждом втором проекте, который мы анализируем. Потенциаль- но эти данные могут быть скомпроме- тированы инсайдерами или даже по ошибке выгружены в публичные репо- зитории. Опытные разработчики ста- раются следить за этим, но редко кто 42 • ТЕХНОЛОГИИ CodeScoring: российское решение для композиционного анализа кода начале 2021 г. на рынке инструментов разработки появилось оригинальное решение CodeScoring для анализа и оценки кодовой базы на лицензионное соответствие, наличие известных уязвимостей и уровня технического долга от российской компании Профископ. Это первое отечественное решение для композиционного анализа исходного кода (SCA). Об особенностях CodeScoring и решаемых им задачах с CEO и основателем компании Алексеем Смирновым побеседовала эксперт компании Web Control Дарья Орешкина. В Алексей Смирнов, CEO и основатель компании CodeScoring
Made with FlippingBook
RkJQdWJsaXNoZXIy Mzk4NzYw