Сертификат AM Test Lab
Номер сертификата: 166
Дата выдачи: 11.07.2016
Срок действия: 11.07.2021
Введение
Полгода назад мы публиковали обзор российского и мирового рынка анализаторов исходного кода, в котором были описаны риски, связанные с использованием решений с открытым исходным текстом и заказных программных разработок. В данной статье рассматривается один из продуктов класса анализаторов исходного кода — InfoWatch Appercut. Это универсальный статический анализатор, предназначенный в первую очередь для аудита безопасности программного кода на финальном этапе разработки и приемки.
InfoWatch Appercut создан, в первую очередь, для квалифицированных специалистов, производящих оценку и аудит программного обеспечения. У продукта две основных категории целевой аудитории — это компании-разработчики и заказчики программных разработок. Разработчики могут использовать продукт для оценки качества написанного кода и исправления ошибок в процессе разработки и обновления программ. Компании-заказчики могут применять InfoWatch Appercut для проведения аудита выполненного заказа и проверки уже используемых решений на качество исполнения кода, наличие уязвимостей и программных закладок.
Отличительной особенностью продукта является его универсальность — поддерживается анализ всех групп программного обеспечения, используемого у бизнес-пользователей. В этот список входят веб-приложения, бизнес-приложения, включая надстройки над системами 1С, SAP, Lotus и исполняемый код для систем управления базами данных, а также классические приложения для настольных операционных систем.
В обзоре приводятся системные требования данного продукта, описываются функциональные возможности и непосредственно работа с продуктом. Вся информация в данной статье применима к InfoWatch Appercut версии 4.4.
Системные требования
InfoWatch Appercut выпускается в клиент-серверном исполнении и разворачивается на любом компьютере, удовлетворяющем системным требованиям. Доступ к интерфейсу InfoWatch Appercut осуществляется через веб-интерфейс.
Минимальные системные требования для развертывания серверной части продукта:
- Оперативная память — не менее 8 Гб.
- Свободное место на жестком диске — минимум 600 Мб.
- Операционная система — Microsoft Windows 7, Microsoft Windows 8, Microsoft Windows Server 2008, Microsoft Windows Server 2012.
Для подключения к веб-интерфейсу продукта разработчик рекомендует браузер Google Chrome версии 17 и выше, но при подготовке данного обзора работа проверялась также в браузерах Internet Explorer и Mozilla Firefox, при этом никаких проблем выявлено не было.
В качестве альтернативного варианта заказчикам доступна функциональность продукта в виде SaaS-услуги — доступа к публичному облаку компании InfoWatch без необходимости установки программного обеспечения.
Кроме того, InfoWatch Appercut входит в состав InfoWatch Attack Killer как один из компонентов комплексного решения по защите от целенаправленных атак на веб-приложения. Подробнее об использовании технологий Appercut в комплексном решении Attack Killer можно узнать в нашей статье.
Лицензирование InfoWatch Appercut
InfoWatch предлагает два вида лицензий для Appercut — Standard и Enterprise. Первый тип предназначен для выполнения разовых задач по сканированию и больше подходит для внутреннего аудита безопасности программных разработок. Второй тип — для разработчиков программных продуктов, в нем есть многопользовательский доступ и средства автоматизации работы с продуктом, что позволяет встроить его в систему управления версиями и обеспечить доступ к отчетам для большого числа сотрудников.
Доступные функции для лицензии Standard:
- Выполнение сканирования.
- Доступ к базе знаний с информацией об ошибках программирования.
- Управление шаблонами (паттернами) ошибок программирования и программных закладок.
- Две встроенные учетные записи — администратора и обычного пользователя, без возможности создания новых идентификаторов.
- Выгрузка отчетов в форматах DOC и HTML.
Дополнительные функции в лицензии Enterprise, по сравнению со Standard:
- Возможность управления учетными записями без ограничений.
- Поддержка интерфейса командной строки для работы с продуктом (используется для автоматизации запуска задач по сканированию).
- Дополнительные форматы отчетов — PDF и XML (применяется для автоматизации обработки результатов сканирования).
InfoWatch Appercut может также поставляться в виде SDK для интеграции в состав сложных проектов разработки и аудита программного кода.
Функциональные возможности InfoWatch Appercut
InfoWatch Appercut позволяет выполнять статический анализ исходных текстов программ, написанных на следующих языках программирования:
- языки программирования десктоп-приложений: Borland Delphi, Java, Visual Basic, C#, Java;
- языки веб-программирования: JavaScript, PHP, Python;
- процедурные языки баз данных: PL\SQL, T-SQL;
- бизнес-код: LotusScript, SAP Abap4, встроенный язык программирования и файлы прикладных решений (конфигурации) в 1С:Предприятие версии 8.
Доступ к интерфейсу InfoWatch Appercut осуществляется через веб-консоль по защищенному протоколу HTTPS, что позволяет обеспечить защиту передаваемых данных (включая исходный код) через открытые сети. Благодаря использованию защищенного протокола обеспечивается безопасность, в том числе при использовании продукта в облаке InfoWatch.
Для работы в системе разных пользователей, например, группы разработчиков или нескольких сотрудников, выполняющих приемку заказанного продукта, InfoWatch Appercut поддерживает разграничение доступа к интерфейсу. В продукте имеются две роли — пользователя и администратора. Администратор обладает рядом дополнительных функций, включая возможность управления учетными записями и настройку паттернов для сканирования. База учетных записей настраивается только в интерфейсе Appercut, интеграция с доменом Active Directory и возможность импорта аккаунтов отсутствуют.
Загрузка исходных текстов для анализа выполняется непосредственно через веб-интерфейс. Поддерживается загрузка архивов в формате ZIP. Язык программирования определяется автоматически, поддерживается работа с мультиязычными проектами, когда в одном архиве содержатся файлы в разных форматах. Реализовано два типа проверки — быстрое сканирование и работа с проектами. В быстром сканировании настройки выполняются непосредственно вместе с загрузкой архива с данными, а результаты анализа хранятся в общем разделе. В проектах поддерживается разделение работы с разными программами, для каждого проекта задаются свои параметры проверки, а история сканирований хранится в отдельном разделе по каждому проекту.
База шаблонов (паттернов) уязвимостей и программных ошибок выполнена в виде отчуждаемых файлов, которые можно независимо друг от друга загружать в продукт. При запуске сканирования администратор может выбрать перечень паттернов, которые применяются к конкретному анализу. При наличии достаточной квалификации пользователь продукта может разработать собственные паттерны и применить их для анализа. Компания InfoWatch регулярно готовит и выпускает обновление шаблонов, что позволяет поддерживать продукт в актуальном состоянии и эффективно обнаруживать ранее неизвестные угрозы. Для всех групп ошибок и уязвимостей встроено подробное описание с примерами, рекомендациями по устранению и дополнительной информацией. Кроме того, все типы проблем делятся по степени критичности на три уровня риска — высокий, средний и низкий. Уровни можно изменить как в самих паттернах, так и в настройках применения паттернов в каждом отдельном сканировании или проекте. Результаты работы могут быть обработаны в интерфейсе продукта или выгружены в виде отчетов в форматах PDF, HTML, DOC и XML.
InfoWatch Appercut поддерживает ручную верификацию результатов сканирования — для каждой найденной проблемы пользователь продукта может принять одно из двух решений: подтвердить проблему или отметить ее как ложное срабатывание. В дальнейшем из отчета по сканированию исключаются элементы, помеченные как ложные.
Для компаний-разработчиков важна интеграция средства анализа исходного кода в процесс разработки, и InfoWatch Appercut обладает всеми необходимыми для этого функциями. Наличие утилиты командной строки и выгрузки результатов сканирования позволяет автоматизировать передачу кода на анализ в момент его компиляции или выгрузки в систему хранения версий, а машинночитаемый формат XML позволяет обеспечить обратную связь и вывести ошибки в среду разработки, используемую программистом, связав результаты непосредственно с нужными фрагментами исходных текстов. Для среды программирования Eclipse предоставляется готовая надстройка для упрощения взаимодействия программистов с продуктом.
Работа с продуктом
Работа с веб-консолью InfoWatch Appercut начинается с окна авторизации в системе, по умолчанию в системе присутствует учетная запись администратора с именем пользователя и паролем admin.
Рисунок 1. Авторизация в веб-интерфейсе InfoWatch Appercut
После авторизации пользователь попадает в интерфейс проведения быстрого сканирования. Навигация осуществляется с помощью верхнего меню, в котором расположены следующие ссылки:
- Проекты — переход в раздел с проектами для сканирования повторяющихся заданий.
- Быстрое сканирование — интерфейс выполнения разовой проверки исходного кода.
- Отчеты — переход к мастеру создания отчетов, в том числе комплексных, включающих в себя данные из набора сканирований.
- Администрирование — раздел, доступный только администратору, где располагается управление пользователями.
- Аккаунт — управление собственной учетной записью.
- Выход — сброс авторизации в системе для смены пользователя или при окончании работы с интерфейсом.
В разделе «Проекты» отображается список текущих проектов и кнопка для добавления, по нажатию на которую запрашивается название нового проекта. Внутри каждого проекта присутствует четыре вкладки, с помощью которых обеспечивается работа со сканером. В первом разделе выполняется загрузка файлов для анализа и запускается работа сканера.
Рисунок 2. Интерфейс проекта в InfoWatch Appercut, первый экран с выбором файлов для загрузки
После загрузки набора файлов (поддерживается мультизагрузка и работа с ZIP-архивами) становится активной кнопка «Сканировать». После завершения формирования списка файлов и запуска сканера InfoWatch Appercut производит ряд действий по сканированию — анализирует и распаковывает файлы, строит структуру проекта, проводит анализ исходных текстов и поиск совпадений с паттернами. Весь процесс сканирования отображается в режиме реального времени в интерфейсе продукта, при этом пользователь может перейти в другие разделы и позднее вернуться к статусу сканирования, то есть процесс сканирования выполняется в фоновом режиме и не требует внимания со стороны пользователя.
Рисунок 3. Работа сканера в InfoWatch Appercut
По завершению анализа открывается отчет с перечнем и подробным описанием найденных проблем. Все проблемы разбиты на группы в соответствии с паттернами ошибок и уязвимостей, для каждого типа доступна ссылка на подробное описание паттерна и рекомендации по устранению подобных ошибок. В правом блоке располагаются кнопки для быстрой выгрузки списка проблем в форматы PDF, HTML, DOC и XML.
Рисунок 4. Пример описания одного из типов уязвимостей исходного кода в InfoWatch Appercut
В результатах сканирования под каждой проблемой присутствуют кнопки «Правильно» и «Ложное срабатывание», они используются для верификации найденных проблем квалифицированным специалистом. После отметки проблемы как правильной она фиксируется в результатах как определенная. При выборе ложного срабатывания проблема исключается из отчетов, но остается в результатах сканирования. Стоит отметить небольшой недостаток интерфейса верификации проблем — изменение ранее установленной отметки не поддерживается, поэтому в случае ошибки единственный выход для пользователя — заново запустить сканирование и повторить ранее проставленные отметки.
Рисунок 5. Результаты сканирования исходного текста в InfoWatch Appercut
Для обеспечения тонкой настройки сканера используется интерфейс управления паттернами, в котором отображается список всех возможных проблем, уязвимостей и ошибок, разбитый по языкам программирования. При наличии административных прав доступа пользователь может выбрать список паттернов для исключения их из процесса сканирования. Дополнительно поддерживается переопределение уровня важности шаблона — заданное по умолчанию значение можно изменить, повысив или понизив уровень каждой проблемы.
Рисунок 6. Шаблоны (паттерны) уязвимостей и ошибок программирования в InfoWatch Appercut
InfoWatch Appercut позволяет выгружать отчеты разными способами — из результатов сканирования, как описано выше, и из раздела «Отчеты». Между этими способами есть важное различие — в отдельном разделе отчеты создаются с помощью настраиваемого генератора и могут объединять результаты разных сканирований. Для каждого отчета выбирается список языков программирования, составляется перечень сканирований, задается формат вывода и дополнительные параметры.
Рисунок 7. Мастер создания отчетов в InfoWatch Appercut
Последний раздел — администрирование — состоит из единственной функции управления учетными записями. Поддерживаются функции добавления новых пользователей, удаления и редактирования существующих. Для каждого пользователя задается пароль и выбирается его роль в системе.
Рисунок 8. Управление пользовательской учетной записью в InfoWatch Appercut
Выводы
InfoWatch Appercut обладает удобным и интуитивно понятным веб-интерфейсом. Продукт легко разворачивается в любой инфраструктуре, а за счет поддержки SaaS-варианта может применяться без развертывания программной части. В ходе тестирования продукт показал высокую степень эффективности обнаружения различных уязвимостей и программных ошибок. Также стоит отметить высокую скорость работы — на минимальных системных требованиях сканирование 900 файлов PHP и JavaScript на 360 тысяч строк кода длилось менее 5 минут.
Продукт одинаково хорошо подходит для своих целевых заказчиков — компании-разработчики оценят различные функции по интеграции в системы разработки, сборки и контроля версий, а также удобство работы с отчетами и подсказки по уязвимостям, а конечные пользователи с легкостью проведут оценку безопасности заказного программного обеспечения. Широкий набор поддерживаемых языков программирования охватывает все основные сферы разработки — веб-приложения, прикладные скрипты для бизнес-приложений, процедурные элементы баз данных и десктоп-приложения.
В завершение обзора хочется отметить, что InfoWatch Appercut разрабатывается российской компанией, поэтому весь интерфейс полностью русскоязычный, включая документацию, описание уязвимостей и информацию о классификации ошибок программирования. Продукт имеет сертификат ФСТЭК России на соответствие техническим условиям и на отсутствие недекларированных возможностей по 4 уровню контроля.
Достоинства:
- Большое число поддерживаемых языков программирования.
- Быстрая работа сканера.
- Не сохраняет исходные коды после сканирования, только результаты проверки.
- Наличие возможности обновления базы паттернов ошибок программирования, регулярный выпуск новых баз разработчиком.
- Возможность интеграции в системы сборки и контроля версий, наличие расширения для IDE Eclipse.
- Подробное описание классов уязвимости с общими рекомендациями по устранению.
- Быстрое развертывание в инфраструктуре заказчика с минимальными настройками (есть возможность использования сервиса из облака).
- Удобный веб-интерфейс.
- Полностью русскоязычный интерфейс, описания уязвимостей и документация на русском языке, наличие сертификата ФСТЭК России.
Недостатки:
- Отсутствие привязки рекомендаций по устранению к конкретному обнаруженному коду.
- Отсутствие возможности реакции на обнаруженные уязвимости, например, путем генерации патчей или создания правил в веб-брандмауэре (WAF), только в интеграции с Wallarm.
- Отсутствует тесная интеграция со средами разработки, что исключает использование непосредственно в процессе разработки (разработчики не попадают в целевую аудиторию продукта).