Solar inCode — сканер программного кода приложений на наличие уязвимостей информационной безопасности и закладок. В отличие от конкурирующих решений рассчитан на службу безопасности, а не на разработчика.
Solar inCode умеет:
- Сканировать исходные коды, бинарные и даже исполняемые файлы
- Сканировать мобильные приложения по ссылке в App Store, Google Play
- Проверять на уязвимости унаследованное ПО
- Декомпилировать и деобфусцировать код приложения
- Проверять смарт-контракты, написанные на Solidity
- Формировать детальные рекомендации по настройке компенсирующих мер на WAF
Solar inCode выбирают, потому что он:
- Не требует опыта разработки для работы с системой и имеет интуитивно понятный интерфейс
- Предоставляет понятные отчеты на русском языке
- Автоматически детектирует язык приложения и без труда понимает программы-полиглоты, написанные на нескольких языках
- Формирует детальные рекомендации по настройке компенсирующих мер на WAF
- Легко интегрируется в процесс безопасной разработки SDLC
- Может работать по модели SaaS или устанавливаться на локальный сервер
Solar inCode – инструмент статического анализа кода, предназначенный для выявления уязвимостей информационной безопасности и недекларированных возможностей (НДВ). Основной отличительной чертой продукта является возможность восстанавливать исходный код приложений из рабочего файла с использованием технологии декомпиляции (обратной инженерии).
Статический анализ кода
Solar inCode позволяет проводить анализ исходного кода, написанного на следующих языках:
Java, JavaScript, Scala, PHP, Python, Ruby, HTML5, PL/SQL, T/SQL, Java for Android, Swift, Objective C, С#, C/C++, VB 6.0, Delphi, ABAP, Solidity, Groovy, Kotlin.
Исходный код может загружаться для анализа как простой загрузкой файлов с исходным кодом в сканер, так и напрямую из репозитория.
В случаях, когда исходный код недоступен, можно загрузить в Solar inCode рабочие файлы мобильного или web-приложения. В частности, для мобильных приложений достаточно просто скопировать в сканер ссылку на его страницу в Google Play или Apple Store. Приложение будет автоматически скачано, декомпилировано и проверено.
Динамический и интерактивный анализ кода
Solar inCode 2.2 включает в себя модули динамического и интерактивного анализа (DAST/IAST) с двумя режимами работы – fuzzing-методов и fuzzing-запросов. Совместное использование статического, динамического и интерактивного анализа позволяет добиться более полных результатов проверки на уязвимости, ошибки и закладки в исходном коде приложений.
Поиск потенциальных НДВ
Поиск недекларированных возможностей является нетривиальной задачей, даже если ее решать в «ручном режиме» в идеальных условиях: когда есть исходный код, подробная документация к нему и большое количество времени. В Solar inCode реализован ряд алгоритмов автоматического поиска НДВ. Эти алгоритмы являются нашей собственной базой знаний и постоянно пополняются. Конечно, нельзя утверждать, что сканер сможет выявить все НДВ в приложении. Но, учитывая, что алгоритм поиска автоматизирован, количество выявляемых НДВ достаточно велико.
Проверяя исходный код с помощью Solar inCode, пользователь имеет возможность редактировать правила поиска уязвимостей и отмечать ложные срабатывания. В ходе такого обучения системы удается создавать развитые механизмы выявления ложноположительных срабатываний, а также определять новые типы уязвимостей и недекларированных возможностей.
Рекомендации по настройке наложенных средств защиты
Значительной долей приложений, которые наши клиенты проверяют на наличие уязвимостей, являются web-приложения. Они находятся на рубеже периметра защиты и, как правило, в них обрабатывается важная информация, которая привлекает злоумышленников. Риски достаточно велики, но в ряде случаев для устранения обнаруженной в коде уязвимости разработчики называют неприемлемый срок, например, в несколько месяцев. Это может быть связано как с ресурсными сложностями разработчиков, так и с объективной необходимостью внести большие архитектурные изменения в код приложения. Определенное количество опасных уязвимостей можно закрыть наложенными средствами защиты, пока не будет исправлен код приложения. Для этого Solar inCode предлагает детальные рекомендации по настройке наложенных средств защиты информации (СЗИ). Этот функционал реализован для многих популярных в России СЗИ, например, Imperva WAF, Cisco, Check Point.
Интеграция в разработку
Solar InCode встраивается в системы непрерывной интеграции (Continuous Integration – CI), позволяя наладить процесс контроля качества и снижая временные затраты на решение данной задачи. Кроме этого, Solar InCode помогает автоматизировать проверку новых сборок ПО и может быть встроен в процесс безопасной разработки (SDLC). Решение позволяет разграничить доступ пользователей к ПО, чтобы каждый разработчик мог контролировать уровень безопасности и наличие ошибок только в своей части проекта.
Понятный интерфейс
Интерфейс Solar InCode отличается простотой и удобством, в его основу заложена облегченная логика взаимодействия с пользователем, не требующая глубоких технических знаний для интерпретации результатов сканирования. На выбор пользователя предлагается русский и английский язык интерфейса. Также поддерживается работа с решением через командную строку.
Выгрузка отчетов
Помимо удобного интерфейсного представления результатов, в Solar inCode реализован гибкий функционал генерации отчетов в форматах .pdf, .html, а также в формате системы Solar inView. Отчеты формируются автоматически, а их содержание и наполнение может быть выбрано пользователем.
Solar inCode состоит из системы отчетности и системы анализа, в которую входит несколько функциональных модулей.
Механизмы системы отчетности inCode реализуют следующий функционал:
- Выдача рекомендаций в формате как ИБ, так и разработки.
- Отчетность в формате ИБ представляет собой детальные рекомендации по устранению уязвимостей на русском языке с описанием способов их эксплуатации. Также данный формат содержит детальные рекомендации по настройке средств защиты и мониторинга. Такие рекомендации полезны, когда необходимо заблокировать возможность эксплуатации уязвимостей еще ДО того, как будет исправлен код.
- Отчетность в формате разработки содержит детальные описания уязвимостей, ссылку на участки кода, содержащие данные уязвимости, и рекомендации по их устранению путем внесения изменений в код.
- Постоянно пополняемые базы сигнатур уязвимостей и детальных рекомендаций по их устранению.
- Возможность выгрузки отчетов в различных форматах.
Система анализа
Механизмы системы анализа inCode представлены несколькими функциональными модулями.
Технологии анализа кода
В основе Solar inCode лежат две технологии:
- декомпиляция – восстановление исходного кода из исполняемых файлов;
- технология анализа исходного кода, включающая в себя лексический и семантический модули.
Важно подчеркнуть ценность семантического модуля анализа. Большинство уязвимостей в программном коде – это не лексические ошибки в записи инструкций, которые можно обнаружить лексическим анализатором, а ошибки в последовательности этих инструкций. Такие ошибки можно обнаружить, только если представить, как эти инструкции будут выполняться и что будет результатом их выполнения. Это можно сделать, только выполнив семантический анализ, результатом которого является математическая модель выполнения программы.
Модуль Enterprise
Данный модуль успешно используется в настоящее время и реализует следующий функционал:
- Анализ исходного кода приложений;
- Бинарный анализ приложений;
Анализ приложений, реализованных на различных языках, осуществляется с применением запатентованной технологии реверс-инжиниринга. Данная технология позволяет восстановить исходный код с высокой степенью точности, даже если к коду были применены обфусцирующие (запутывающие) преобразования.
Модуль нечеткой логики (Fuzzy Logic Engine)
Данный модуль необходим для минимизации количества ложных срабатываний (False Positive) и пропуска уязвимостей в коде (False Negative). Данный модуль реализован с использованием математического аппарата нечеткой логики и является технологическим ноу-хау Ростелеком-Solar. Параметры работы фильтров данного модуля определяются базой знаний, которая постоянно пополняется по результатам проведенных проектов. Количество ложных срабатываний и пропусков уязвимостей является одним из ключевых параметров сканера кода, поэтому технологическая модернизация данного модуля является важным приоритетом развития продукта.
Возможности интеграции inCode
Решение Solar inCode обладает широкими возможностями интеграции:
- Интеграция с репозиторием разработки. Код для анализа загружается напрямую из репозитория, в этом случае отсутствует необходимость каждый раз загружать файлы с исходным кодом.
- Интеграция с Service Desk. При обнаружении уязвимостей безопасник может не только устранить уязвимости силами своего подразделения, но и в несколько кликов открыть кейс по реализации выданных рекомендаций другими подразделениями. Например, чтобы администраторы внесли соответствующие правила в WAF или SIEM.
- Интеграция в процессы непрерывной интеграции (Continuous Integration) и безопасной разработки (SDLC).
- Интеграция с Solar inView. Результаты работы Solar inCode встраиваются в структуру отчетности и метрик inView.