Разработка безопасных приложений. Часть 1. Обзор рынка SAST 2021

Разработка безопасных приложений. Часть 1. Обзор рынка SAST 2021

Мы начинаем цикл статей, посвящённый безопасной разработке приложений — DevSecOps. Эта концепция подразумевает противодействие угрозам на всех этапах создания программного продукта. Процесс DevSecOps невозможен без обеспечения безопасности исходного кода, поэтому в первой части мы расскажем о рынке средств статического тестирования защищённости приложений (Static Application Security Testing, SAST).

 

 

 

 

 

  1. Введение
  2. Что такое SAST
  3. Мировой рынок SAST
  4. Российский рынок SAST
  5. Обзор популярных российских продуктов класса SAST
    1. 5.1. AppChecker
    2. 5.2. PT Application Inspector
    3. 5.3. PVS-Studio
    4. 5.4. SafeERP Code Security
    5. 5.5. Solar appScreener
  6. Обзор популярных зарубежных продуктов класса SAST
    1. 6.1. Checkmarx CxSAST
    2. 6.2. Fortify Static Code Analyzer (SCA)
    3. 6.3. HCL Security AppScan Source
  7. Выводы

Введение

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

 

Рисунок 1. Процессы DevSecOps по версии Gartner

Процессы DevSecOps по версии Gartner

 

Ранее мы провели несколько онлайн-конференций AM Live и обсудили некоторые аспекты методологии DevSecOps. Не так давно ведущие эксперты рынка рассказали зрителям об основах безопасной разработки, а встреча прошедшая в конце марта была посвящена обеспечению безопасности исходного кода.

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

В отчёте «Application Security Testing Market — Global Industry Analysis, Size, Share, Growth, Trends, and Forecast 2017 — 2025» от Transparency Market Research рынок тестирования безопасности приложений сегментирован на следующие классы продуктов:

  • Static Application Security Testing (SAST) — статический анализ приложения с доступом к исходному коду (методом «белого ящика»);
  • Dynamic Application Security Testing (DAST) — динамический анализ приложения без доступа к исходному коду и среде исполнения (методом «чёрного ящика»);
  • Interactive Application Security Testing (IAST) — динамический анализ безопасности приложения с доступом к исходному коду и среде исполнения серверной части (методом «белого ящика»).

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

Что такое SAST

SAST (Static Application Security Testing) — это анализ кода или его части на наличие уязвимостей без запуска исследуемого приложения на исполнение. Он также обеспечивает соответствие руководствам и стандартам без фактического выполнения базового кода. SAST был одним из первых вспомогательных инструментов для оценки уязвимости приложений.

Одной из ключевых сильных сторон SAST является широкий охват языков программирования и платформ разработки. Для практически любого основного языка найдётся несколько вендоров, предлагающих инструменты по статическому анализу кода. Ещё одним плюсом является то, что SAST легко внедряется — весьма просто добавить статический сканер в конвейер разработки или в IDE.

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

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

К SAST предъявляются следующие требования:

  • Наличие качественных технологий и алгоритмов для глубокого анализа кода и выявления уязвимостей.
  • Регулярно обновляемая база правил с возможностями гибкой настройки и расширения.
  • SAST должен предоставлять в виде отчётов исчерпывающие обоснования наличия уязвимости и давать подробные рекомендации по устранению последней.
  • SAST должен сопоставлять результаты анализа при повторном сканировании отредактированного кода (выделение исправленных, неисправленных, вновь появившихся уязвимостей).
  • SAST должен поддерживать большое число языков программирования.
  • SAST должен интегрироваться со средами разработки, системами контроля версий и отслеживания ошибок.
  • Обеспечение связи между разработчиками и экспертами отвечающими за безопасность.
  • Минимальное количество ложных срабатываний.
  • Представление результатов анализа в удобном для восприятия виде.
  • Наличие средств автоматического составления отчётов.
  • Возможность проводить анализ кода удалённо.

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

SAST лучше всего подходит для поиска ошибок в строках кода, однако не очень эффективен при обнаружении недостатков потока данных.

Мировой рынок SAST

Согласно исследованию «DevSecOps Market Size, Share and Global Market Forecast to 2023», проведённому MarketsandMarkets, рынок DevSecOps оценивался в 1,5 млрд долларов США в 2018 году и по прогнозам достигнет 5,9 млрд долларов США к 2023 году, увеличиваясь в среднем на 31,2 % за год.

 

Рисунок 2. Динамика глобального рынка DevSecOps по версии MarketsandMarkets

Динамика глобального рынка DevSecOps по версии MarketsandMarkets

 

По прогнозам Grand View Research рынок средств защиты приложений достигнет 10,7 млрд долларов США к 2025 году, увеличиваясь в среднем на 17,7 % за год. При этом в рамках средств анализа кода SAST и DAST занимают одинаковые позиции по продажам в масштабах мирового рынка.

 

Рисунок 3. Распределение типов анализаторов по долям продаж в масштабах мирового рынка по данным Grand View Research

Распределение типов анализаторов по долям продаж в масштабах мирового рынка по данным Grand View Research

 

С точки зрения исполнения продукты могут быть установлены непосредственно у заказчика (on-premise) или быть облачными (software-as-a-service).

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

 

Рисунок 4. Квадрант Gartner для тестирования безопасности приложений

Квадрант Gartner для тестирования безопасности приложений

 

Gartner в отчёте «Critical Capabilities for Application Security Testing» выделяет на мировом рынке следующих основных игроков:

  • CAST;
  • Checkmarx;
  • Contrast Security;
  • GitLab;
  • HCL Software;
  • Micro Focus;
  • Onapsis;
  • Rapid7;
  • Synopsys;
  • Veracode;
  • WhiteHat Security.

Российский рынок SAST

В России рыночный сегмент SAST на данный момент хорошо развит. На российском рынке присутствуют как отечественные вендоры, так и зарубежные.

Среди российских участников рынка можно выделить:

  • Positive Technologies;
  • PVS-Studio;
  • «Газинформсервис»;
  • «Ростелеком-Солар»;
  • ГК «Эшелон».

Среди зарубежных игроков можно отметить:

  • Checkmarx;
  • HCL;
  • Micro Focus.

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

Краткий обзор продуктов, популярных на российском и мировом рынках, приведён ниже.

Обзор популярных российских продуктов класса SAST

 

 

AppChecker

Статический анализатор кода AppChecker предназначен для автоматизированного поиска дефектов в исходном коде приложений разработанных на С#, C / C++, Java, PHP.

AppChecker осуществляет поиск дефектов с помощью постоянно обновляемой базы сигнатур, а также ищет программные закладки. AppChecker интегрируется с системами управления версиями ПО — git, Subversion.

 

Рисунок 5. Интерфейс AppChecker

Интерфейс AppChecker

 

Среди ключевых особенностей продукта можно выделить следующие:

  • Осуществляется поиск свыше 100 типов дефектов.
  • Полностью поддерживается классификация CWE.
  • Сигнатуры дефектов сформированы с учётом различных стандартов и рекомендаций по безопасному программированию от OWASP, CERT, NIST и др.
  • Применение технологии «тонкий клиент» (используется веб-интерфейс) позволяет проводить совместный аудит кода силами нескольких экспертов.
  • Гибкая конфигурация анализируемых проектов позволяет учитывать влияние таких особенностей языков программирования, как, например, директивы прекомпиляции в C / C++.

Подробнее с продуктом можно ознакомиться здесь.

 

 

PT Application Inspector

PT Application Inspector позволяет выявлять уязвимости и признаки недекларированных возможностей. Он анализирует исходный код или готовое приложение, комбинируя статические, динамические и интерактивные методы (SAST, DAST и IAST). По итогам анализа PT Application Inspector не только выдаёт данные о номере строки и типе уязвимости, но и генерирует эксплойты — безопасные, но эффективные тестовые запросы, которые помогают подтвердить или опровергнуть наличие уязвимости.

 

Рисунок 6. Интерфейс PT Application Inspector

Интерфейс PT Application Inspector

 

Среди ключевых особенностей продукта можно выделить следующие:

  • Поддержка анализа веб-приложений и большого набора систем разработки для бизнес-приложений.
  • Отечественный, локализованный продукт.
  • Широкий набор поддерживаемых государственных стандартов.
  • Использование базы уязвимостей веб-приложений WASC и классификатора CWE.
  • Возможность визуализации программного кода и поиска программных закладок.
  • Автоматическая выгрузка результатов анализа в межсетевой экран уровня веб-приложений PT Application Firewall, который применяет правила для блокировки атак на уязвимое приложение на время исправления кода.
  • Наличие сертификата ФСТЭК России.

Подробнее с продуктом можно ознакомиться здесь.

 

 

PVS-Studio

Анализатор PVS-Studio выявляет не только потенциальные уязвимости, но и опечатки, «мёртвый» код и другие ошибки. Для удобства специалистов, которые будут использовать PVS-Studio как SAST-инструмент, продукт отображает свои предупреждения в соответствии со стандартами Common Weakness Enumeration и SEI CERT, а также поддерживает стандарт MISRA (в процессе реализации).

 

Рисунок 7. Интерфейс PVS-Studio

Интерфейс PVS-Studio

 

Среди ключевых особенностей продукта можно выделить следующие:

  • Кросс-платформенный анализатор обеспечивает полное покрытие кода.
  • Отчёты доступны в форматах HTML, XML, CSV, TXT, JSON, CompileError, TaskList, TeamCity.
  • Поддержка большого числа языков программирования и компиляторов: Visual Studio, C, C++, C++/CLI, C++/CX (WinRT), MinGW, IAR Embedded Workbench, GNU Arm Embedded Toolchain, Arm Embedded, GCC compiler, Qt Creator, Eclipse, GCC, Clang, IntelliJ IDEA, Android Studio, Java и др.
  • Соответствие диагностик PVS-Studio различным стандартам (OWASP Top 10 Web Application Security Risks, AUTOSAR C++ 14 Coding Guidelines, CWE, OWASP Application Security Verification Standard).

Подробнее с продуктом можно ознакомиться здесь.

 

 

SafeERP Code Security

Программный модуль Code Security в составе платформы SafeERP предназначен для выявления небезопасного состояния программного кода ABAP в информационных системах на платформе SAP NetWeaver. Мы уже писали о том, как обеспечить безопасность ERP-систем SAP на примере решения SafeERP Suite.

SafeERP Code Security позволяет осуществлять анализ ABAP-кода непосредственно в процессах жизненного цикла программного обеспечения (выявление небезопасного состояния программного кода на этапах его разработки, квалификационное тестирование, инсталляция, эксплуатация, перенос по ландшафту системы).

Продукт содержит базу знаний и рекомендаций для разработчика, позволяет проводить итерационное сканирование кода непосредственно в процессе разработки внутри SAP-системы. Включён в реестр отечественного ПО и имеет сертификат ФСТЭК России как средство контроля защищенности.

 

Рисунок 8. Интерфейс SafeERP

Интерфейс SafeERP

 

Среди ключевых особенностей продукта можно выделить следующие:

  • Простая интеграция в SAP-инфраструктуру в виде дополнения (аддона).
  • Агенты для SAP NW, SAP Java, SAP HANA.
  • Большое количество актуальных проверок.
  • Доступ ко всему репозиторию системы SAP и, как следствие, возможность проверки вложенности программных пакетов.
  • Возможность встраивания в транспортную систему ландшафта SAP.
  • Настройка и работа со всем SAP-ландшафтом из единой консоли управления. 
  • Регулярные обновления в соответствии с выпуском SAP Note.
  • Удобный русскоязычный интерфейс и рекомендации по недостаткам.

Подробнее с продуктом можно ознакомиться здесь.

 

 

Solar appScreener

Solar appScreener (до версии 3.0 — Solar inCode) — инструмент статического анализа кода, предназначенный для выявления уязвимостей и недекларированных возможностей в коде приложений. Solar appScreener работает полностью автоматически. Можно выделить два типа статического анализа, который выполняет этот продукт: анализ исходного кода программы и анализ её исполняемых файлов.

Когда исходный код недоступен, можно загрузить в Solar appScreener рабочие файлы мобильного или веб-приложения. Для мобильных приложений достаточно просто скопировать в сканер ссылку на страницу в Google Play или App Store. Приложение будет автоматически скачано и проверено.

 

Рисунок 9. Интерфейс Solar appScreener

Интерфейс Solar appScreener

 

Среди ключевых особенностей продукта можно выделить следующие:

  • Возможность восстанавливать исходный код приложений из рабочего файла с использованием технологии декомпиляции (обратной инженерии).
  • Большое число (36) поддерживаемых языков программирования: ABAP, Apex, ASP.NET, COBOL, С#, C / C++, Objective-C, Delphi, Go, Groovy, HTML5, Java, Java for Android, JavaScript, JSP, Kotlin, Pascal, Perl, PHP, PL/SQL, T/SQL, Python, Ruby, Rust, Scala, Solidity, Swift, TypeScript, VBA, VB.NET, VBScript, Visual Basic 6.0, Vyper, 1C, LotusScript, Dart.
  • Легко интегрируется с репозиториями Git и Subversion, VSC-хостингами GitLab GitHub и Bitbucket, серверами CI / CD Jenkins, TeamCity, Azure DevOps Server 2019 (ранее — TFS CI), системой отслеживания ошибок Atlassian Jira и c платформой непрерывного анализа и измерения качества кода SonarQube.
  • Исходный код может передаваться на анализ как простой загрузкой файлов с ним в сканер, так и напрямую из репозитория.
  • Для выполнения разового сканирования программного кода можно воспользоваться сервисом Solar appScreener по модели SaaS.
  • Для взаимодействия с другими системами и сервисами сканер имеет встроенный открытый API.

Подробнее с продуктом можно ознакомиться здесь.

 

Обзор популярных зарубежных продуктов класса SAST

 

 

Checkmarx CxSAST

Checkmarx CxSAST позволяет в автоматическом режиме обнаруживать и идентифицировать уязвимости в нескомпилированном коде на наиболее распространённых языках программирования. CxSAST может быть установлен самостоятельно или интегрирован в цикл разработки (SDLC) для сокращения времени на обнаружение и устранение уязвимостей.

 

Рисунок 10. Интерфейс Checkmarx CxSAST

Интерфейс Checkmarx CxSAST

 

Среди ключевых особенностей продукта можно выделить следующие:

  • Визуализация кода в виде блок-схем маршрутов выполнения.
  • По результатам сканирования выдаются рекомендации по исправлению проблем с привязкой к графической схеме.
  • Поддерживает 27 языков программирования: Java, C#, JavaScript, TypeScript, PHP, Apex, Python, Groovy, PL/SQL, HTML5, ASP, VB.NET, Perl, VBScript, Ruby, C / C++, VB, Scala, Objective-C, Swift.
  • Интегрируется с различными средами разработки (Eclipse, Visual Studio, IntelliJ и пр.), серверами сборки (Jenkins, Bamboo, TeamCity, Maven, CLI), системами контроля версий (Bitbucket и др.) и отслеживания ошибок (Atlassian Jira и др.).

Подробнее с продуктом можно ознакомиться здесь.

 

 

Fortify Static Code Analyzer (SCA)

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

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

 

Рисунок 11. Интерфейс Fortify Static Code Analyzer

Интерфейс Fortify Static Code Analyzer

 

Среди ключевых особенностей продукта можно выделить следующие:

  • Поддержка 21 языка программирования, в том числе ABAP / BSP, ASP.NET, Python, Ruby.
  • Охват более 900 категорий уязвимостей, внесённых в OWASP Top 10 и SANS Top 25, соответствие стандартам DISA STIG, PCI DSS и другим.
  • Локальная и облачная модель анализа угроз.
  • Наличие механизма взаимодействия с системами управления непрерывной интеграцией, позволяющего автоматически создавать отчёты об ошибках.
  • Использование алгоритмов машинного обучения, снижающее риск ложных срабатываний.

Подробнее с продуктом можно ознакомиться здесь.

 

 

HCL Security AppScan Source

HCL Security AppScan Source (ранее IBM Security AppScan) предназначен для специалистов по информационной безопасности, требует высокой квалификации, зато формирует более полную картину уязвимостей с привязкой к исходному коду. Продукт обеспечивает взаимодействие между сотрудниками ответственными за безопасность приложений и разработчиками. Обладает средствами интеграции с распространёнными средами разработки, что позволяет отслеживать уязвимости на ранних стадиях. Статический анализ поддерживает 21 язык программирования.

 

Рисунок 12. Интерфейс HCL Security AppScan Source

Интерфейс HCL Security AppScan Source

 

Среди ключевых особенностей продукта можно выделить следующие:

  • Поддерживает языки программирования Java, JavaScript, JSP, ColdFusion, C, C++, Objective-C, .NET (C#, ASP.NET, VB.NET), Classic ASP (JavaScript / VBScript), PHP, Perl, VisualBasic 6, PL/SQL, T-SQL, SAP, ABAP, COBOL.
  • Создание общих отчётов и отчётов о соблюдении требований законодательства с использованием более 40 различных шаблонов, доступных сразу после установки.
  • Настройка и возможность расширения с помощью платформы AppScan eXtension Framework или непосредственная интеграция в существующие системы с помощью AppScan SDK.
  • Функции категоризации ссылок, область действия которых не ограничивается защитой приложения, а позволяет определить риски для пользователей от перехода на вредоносные или нежелательные сайты.
  • AppScan Standard помогает снизить риск утечек данных и атак на веб-приложения перед развёртыванием сайта и выполняет оценку рисков в процессе эксплуатации.
  • Помогает определить, какие технологии сайта могут повлиять на результаты сканирования AppScan.

Подробнее с продуктом можно ознакомиться здесь.

Выводы

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

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

В России сегмент рынка продуктов SAST хорошо развит. На российском рынке присутствуют как отечественные вендоры (Positive Technologies, PVS-Studio, «Газинформсервис», «Ростелеком-Солар», ГК «Эшелон»), так и зарубежные (Checkmarx, HCL, Micro Focus). Впрочем, есть и пространство для роста: например, не все из отечественных производителей проверяют код 1С, хотя такая возможность, как представляется, могла бы быть интересна заказчикам.

Полезные ссылки: 
Anti-Malware TelegramПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

RSS: Новые статьи на Anti-Malware.ru