АНАЛИЗ ИСХОДНОГО КОДА НА ПРЕДМЕТ НАЛИЧИЯ

advertisement
АНАЛИЗ ИСХОДНОГО КОДА НА ПРЕДМЕТ НАЛИЧИЯ УЯЗВИМОСТЕЙ
CHECKMARX SUITE®
Краткая
справочная
информация
для специалистов по информационной безопасности и информационным технологиям, системных интеграторов, бизнес-партнеров и заказчиков
В данном документе в краткой табличной форме
приведена основная справочная информация по
продукту «Checkmarx Suite®» , разработанному
компанией «Checkmarx»
Полное или частичное копирование, использование, а
также публичные ссылки на данный документ
недопустимы без письменного разрешения на это
компании “Интернейшнл АйТи Дистрибьюшн”
ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ
Термин/
Определение
API
CLI
IDE
POC
Описание
Интерфейс программирования приложений (англ. Application Programming Interface) - набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах. Используется программистами при написании всевозможных приложений.
Интерфейс командной строки (англ. Command Line Interface) - разновидность текстового интерфейса.
Интегрированная среда разработки (англ. Integrated Development Environment) - система программных средств, используемая программистами для разработки программного обеспечения.
Подтверждение концепции (англ. Proof Of Concept) – развертывание ПО для демонстрации,
заявленных в спецификации, возможностей программного обеспечения.
КРАТКАЯ ИНФОРМАЦИЯ О ПРОДУКТЕ
Параметр
Checkmarx Suite®
Основные потребители
Уникальные возможности
Описание
Checkmarx Suite® представляет собой современное решение для статического
анализа исходного кода на предмет наличия уязвимостей, позволяющее выявлять, контролировать и устранять проблемы безопасности на уровне разработки программного обеспечения.
CxSuite распознает множество уязвимостей из разных категорий, поддерживает
максимальное количество операционных систем, языков программирования и
сред разработки.
Возможность встраивания в цикл разработки позволяет решать проблемы с
безопасностью по мере написания кода, и тем самым существенно экономить
время и ресурсы.
 Государственные и коммерческие предприятия, заинтересованные в аудите, используемого заказного программного обеспечения;
 Финансовые организации и банки, использующие ПО собственной разработки;
 Организации, занимающиеся разработкой или сертификацией ПО;
 Сканирование исходного кода без компиляции;
 Наличие встроенного интуитивно понятного языка запросов, позволяющего
адаптировать процесс анализа кода к конкретной задаче;
 Выявление «критичных точек» в коде, изменения в которых, позволяют
устранить ряд связанных уязвимостей;
 Возможность интеграции в применяемую в организации, систему разработки
ПО;
 Поддержка большинства современных языков программирования и систем
разработки ПО.
ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ СИСТЕМЫ
Параметр
Поддержка наиболее распространенных языков программирования
Описание








Java
Microsoft C#.net
PHP
C/C++
Microsoft Visual Basic
VB.NET
Java Script
Apex
Параметр
Высокая точность анализа
Запатентованная технология
Virtual Compiler
Опция инкрементального сканирования
Визуализация атак
Собственный язык запросов
Широкие возможности поиска
уязвимостей
Типовые запросы на поиск
уязвимостей
Обеспечение соответствия
требованиям бизнес логики
Обеспечение соответствия
лучшим практикам программирования
Поддерживаемые стандарты
Реализация ролевой модели
доступа
Создание отчетов и экспорт
результатов
Многоуровневая архитектура
Описание
 Ruby
 Perl
 ASP.net
 Python
 PL/SQL
 HTML5
 Windows Mobile
 Android
 Objective-C
Если выявленная проблема не является таковой, соответствующий участок
кода можно отметить, и тогда Checkmarx при последующих проверках не будет выделять подобные участки как уязвимые.
 Сканирование кода без компиляции;
 Сканировать можно несвязные файлы, отдельные модули или какие-либо
иные объекты приложения, в привычной среде программирования.
При проведении повторного сканирования отсутствует необходимость пересканирования неизмененного фрагмента кода. Автоматически будет пересканирована только измененная часть кода,
Графическое отображение векторов потенциальных атак.
Интуитивно понятный язык построения запросов позволяет максимально
адаптировать анализ кода к особенностям анализируемого приложения.
 Наличие "из коробки" нескольких сотен готовых запросов на поиск уязвимостей;
 Графическое представление выявленных уязвимостей;
 SQL-инъекции
 Межсайтовый скриптинг
 Инъекции в код
 Переполнение буфера
 Подмена значений параметров
 Подделка межсайтовых запросов
 Разделение HTTP-запросов
 Подмена журналов
 DoS-атаки
 Фиксация сессии
 Заражение сессии
 Необработанные исключения
 Неосвобожденные ресурсы
 Ввод данных без проверки
 Перенаправление на подменный URL
 "Зашитое" в код фиксированное значение пароля
 Загрузка потенциально небезопасных файлов
 И др.
Возможность поиска не соответствующего заявленным возможностям, функционала, в коде приложения
Наличие "из коробки" типовых запросов и шаблонов соответствия отраслевым
стандартам (PCI, HIPAA, SOX, и др.).
OWASP Top 10 2013, OWASP Mobile Top 10, SANS 25, PCI DSS, HIPAA, Mitre
CWE, FISMA, BSIMM, MISRA
Права доступа пользователей, определенные в соответствии с ролевой моделью CxSuite, обеспечивают доступность проектов и связанных с ними результатов сканирования. Полномочия по управлению правами доступа пользователей также определены в ролевой модели.
Наличие необходимых средств- для создания отчётов по задачам и проектам.
Экспорт в форматы xml, csv и др. Интеграция с системами обработки заявок.
Сервер управления, способный обеспечить сканирование проекта параллель-
Параметр
Возможность масштабирования и встраивания в цикл разработки
Описание
но на необходимом количестве “движков”. Возможность использования «тонких» и «толстых» клиентов.
 Возможность работы с проектами, практически любого объема
 Возможность интеграции в применяемую в организации, систему разработки ПО
СРЕДА ФУНКЦИОНИРОВАНИЯ
Назначение
Централизованная архитектура (POC)
Количество строк
кода
150K
300K
ОС
Веб сервер
Windows XP, 7
Windows Server
2003, 2008, 2012
(Ultidev может
быть установлен
вместе с CxSuite)
Другое ПО
200K
Централизованная архитектура (Промышленная)
600K
1.2M
4M
CxEngine(Промышленная)
Несколько CxEngine серверов
(для параллельного сканирования),
каждый сервер должен соответствовать указанным требованиям.
CxManager (Промышленная)
Windows Installer
3.1 или выше
NET framework
3.5 SP1 или выше
2M
200K
600K
Windows Server
2003, 2008, 2012
IIS 6/7/8
1.2M
2M
4.5M
IIS 6/7/8
Database (Промышленная)
SQL Сервер
(Express не рекомендуется)
2005/2008/2012
Для CxSuite веб клиента, рекомендуется использовать дисплей с разрешением не менее 1280 x 1024.
АППАРАТНОЕ ОБЕСПЕЧЕНИЕ
Назначение
Централизованная архитектура (POC)
Централизованная архитектура (Промышленная)
CxEngine(Промышленная)
Несколько CxEngine серверов
(для параллельного сканирования),
каждый сервер должен соответствовать указанным требованиям.
Количество
строк кода
Оперативная
память
150K
300K
200K
600K
1.2M
2M
4M
200K
1.5 GB
3 GB
6 GB
10 GB
16 GB
24 GB
44 GB
2 GB
600K
6 GB
1.2M
12 GB
2M
20 GB
4M
45 GB
Количество
ядер процессора
Частота процессора
Объем дискового пространства
2
2 GHz
5 GB
Минимум: 3
Рекомендовано: 6
Минимум:
2,3 GHz
Рекомендовано: 2.8 GHz
Минимум: 2
Рекомендовано: 4
Минимум:
2,3 GHz
Рекомендовано: 2.8 GHz
250 GB
50 GB
Назначение
CxManager (Промышленная)
Database (Промышленная)
Количество
строк кода
Оперативная
память
Минимум:
2 GB
Рекомендовано:
4 GB
Количество
ядер процессора
Частота процессора
2
Минимум:
2 GHz
Рекомендовано: 2.5 GHz
Объем дискового пространства
250 GB
50 GB
АРХИТЕКТУРА CHECKMARX SUITE®
Компоненты
CxEngine
Database
CxManager
SxSuite Web Interface
IDE Plugins
CxAudit
Описание
Компоненты сервера
Осуществляет сканирование программного кода
Осуществляет хранение результатов сканирования и системные настройки. Для
рабочего применения рекомендуется использовать MS SQL Server. Для POC
может быть установлена VistaDB, поставляемая вместе с CxSuite.
Осуществляет все системные функции и управление системой, объединяет все
системные компоненты. Для работы рекомендуется использовать IIS Web Server. Для POC может быть установлен UltiDev, поставляемый вместе с CxSuite.
Клиентские компоненты
Веб интерфейс для управления проектами сканирования и анализа кода.
IDE плагин позволяющий интегрировать сканирование и результаты сканирования кода непосредственно в среду разработки ПО.
Клиентское Windows-приложение, которое взаимодействует с CxSuite сервером
через HTTP. CxAudit используется для модификации стандартных запросов
CxSuite для нестандартного кода. Это помогает в устранении ложных срабатываний и гарантирует достоверность всех обнаруженных уязвимостей. CxAudit
позволяет выполнять сканирование проекта и модифицировать запросы анализа кода локально, и затем принимать решение о синхронизации результатов
сканирования и/или модифицированных запросов с сервером. CxAudit проекты
могут синхронизироваться с сервером CxSuite вместе с результатами последне-
CxConsole
API Scripts
го сканирования, или сохраняться в локальный или сетевой папке, чтобы создать новый проект. CxAudit включает в себя интерфейс для просмотра и редактирования результатов сканирования, похожий на веб-интерфейс в CxSuite.
Интерфейс командной строки для запуска сканирования кода в CxSuite. Может
использоваться для встраивания вызовов в программное обеспечение разработки ПО.
CxSuite API предоставляет разработчикам возможность создавать клиентские
скрипты для работы с CxSuite проектами.
CxSuite поддерживает централизованную архитектуру, где все серверные компоненты установлены на одном
хосте, или распределенную архитектуру, где каждый или все серверные компоненты установлены на выделенных узлах.
Поскольку один CxEngine сервер может выполнять сканирование только одного проекта, для повышения
производительности можно использовать несколько CxEngine серверов для параллельного сканирования
отдельных частей одного проекта, либо нескольких проектов одновременно. Каждый CxEngine сервер может
обрабатывать более 100К строк кода в час.
Коммуникации между клиентами и CxManager, и связь между CxManager и CxEngine осуществляется через
HTTP или HTTPS.
КАК ЭТО РАБОТАЕТ
Параметр
Технология
Virtual Compiler
Поиск уязвимостей
Поиск несоответствия
функциональным возможностям
Анализ на соответствие
стандартам
Создание отчетов и экспорт результатов
Реализация ролевой модели доступа
Описание
Сканирование кода осуществляется путем загрузки в систему любого фрагмента кода приложения, написанного на любом из поддерживаемых языков программирования без необходимости компиляции.
Анализ кода производится с применением множества готовых шаблонов запросов для поиска уязвимостей. Шаблоны разработаны для каждого поддерживаемого языка программирования. Любой запрос может быть модифицирован
пользователем системы под свои конкретные задачи. Результат анализа отображает уязвимости с соответствующими векторами атак, сопровождая данные
графами. Графы позволяют найти те фрагменты кода, так называемые, критичные точки, изменение которых помогут устранить сразу все подобные уязвимости, находящиеся ниже в иерархии. Доступ к графам возможет прямо из среды разработки. Графы позволяют:
 Выявлять связи между однотипными уязвимостями
 Оценивать волновой эффект уязвимости во всём коде и определять оптимальное место для её устранения
 Выполнять операции с уязвимостями, основываясь на их иерархии
 Выделять наиболее приоритетные проблемы для их более эффективного
решения
 Выбирать лучший из возможных методов решения проблемы
На основе готовых шаблонов или полностью самостоятельно, пользователь
системы может сформировать необходимый набор запросов, позволяющий
выявить в коде сканируемого приложения программные модули, не соответствующие заявленной функциональности.
Применение готовых шаблонов, их модификаций и разработанных пользователями CxSuite, собственных запросов, позволяет оценить соответствие сканируемого приложения отраслевым стандартам и лучшим практикам разработки ПО.
Отчеты, содержащие всю необходимую информацию о результатах сканировании, можно создавать в следующих форматах:
 PDF
 RTF
 CSV
 XML
Пользователям CxSuite может быть присвоена одна из следующих ролей:
 Scanners: может создавать проекты для своей команды, сканировать и просматривать результаты всех существующих проектов своей команды.
 Reviewers: может просматривать результаты сканирования проектов, со-
Возможность масштабирования и встраивания в
цикл разработки
зданных в своей команде, но не может создавать или сканировать существующие проекты.
 Company Manager: может создавать и управлять проектами для любой из
команд компании, а так же создавать и управлять командами и пользователями компании.
 Service Provider (SP) Manager: может создавать и управлять проектами
любой из команд SP компании, а так же создавать и управлять командами и
пользователями SP компании.
 Server Manager: администратор пользователей. Имеет полный набор привилегий для всей системы, включая все вышеперечисленные. Так же обладает правами на конфигурирование системы.
Специальные IDE плагины позволяют интегрировать CxSuite в следующие системы:
 Eclipse
 Visual Studio
 IntelliJ
 Jenkins
ПРИЛОЖЕНИЕ 1
ОПЕРАЦИОННЫЕ СИСТЕМЫ И СРЕДСТВА РАЗРАБОТКИ, ПРОТЕСТИРОВАННЫЕ НА СОВМЕСТИМОСТЬ С CXSUITE 7.1.6
Windows
Browsers
Eclipse
(for
plugin)
Visual
Studio
(for
plugin)
IntelliJ
(for
plugin)
Jenkins
(for plugin)
Как 32-bit так и 64-bit, версии
могут быть использованы:
Internet Explorer
7-11
Safari 5
Chrome 37
Firefox 33
3.5.2 –
4.3.1
2005
2008
2010
2012
2013
11.1.5
12.1.3
7.1.4.0-12
Enterprise
XP, 7
Server 2003, 2008, 2012
ПОДДЕРЖИВАЕМЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Следующие языки программирования поддерживаются в версии CxSuite 7.1.6:
Среда программирования
Первичные языки
программирования
Вторичные языки
программирования
Frameworks
Расширения
файлов
Java
Java
J2SE
J2EE
JSP
JavaScript
VBScript
PL\SQL
HTML 5
Struts
Spring MVC 2.5
iBatis 2.3*
GWT
Hibernate
OWASP ESAPI
JSTL FMT Taglib
ATG DSP Taglib
Java Server Faces
(JSF) 2.x
.javasln
.project
.java
.jsp
.jspf
.tag
.tld
.NET
C#
VB.NET
ASP.NET
JavaScript
VBScript
PL\SQL
HTML 5
Enterprise Libraries
Telerik
ComponentArt
Infragistics
FarPoint
iBatis 2.3*
Hibernate.Net [*]
Entity framework up
to 4.3.1
.sln
.csproj
.cs
.cshtml
.xaml
.vb
ASP
ASP
JavaScript [**]
VBScript
PL\SQL
HTML 5
ASP.Net MVC
framework
.asp
VB
VB6
.bas
.vbp
Среда программирования
Первичные языки
программирования
Вторичные языки
программирования
Frameworks
Расширения
файлов
.frm
.cls
.dsr
.ctl
.vb
C/C++
C/C++
MISRA
.cpp
.c++
.cxx
.hpp
.hh
.h++
.hxx
.c
.cc
.h
PHP
PHP
Zend 1.1
Kohana 3.0
CakePHP
Symfony
Smarty
OWASP ESAPI
.php
.php3
.php4
.php5
.phtm
.phtml
.tpl
.ctp
.twig
SalesForce
Apex
Ruby
Ruby
Ruby on Rails
.rb
.rhtml
.rxml
.rjs
.erb
JavaScript
JavaScript
JQuery
Node.js
Ajax
Knockout
AngularJS 1.0.x,
1.2.x, 1.3.0
.js
.htm
.html
VisualForce
.apex
.apexp
.page
.component
.cls
.trigger
.tgr
.object
.report
.workflow
Среда программирования
Первичные языки
программирования
Вторичные языки
программирования
Frameworks
VBScript
Расширения
файлов
.vbs
Perl
Perl 5.005 – 5.14
Android
Java
iOS
Objective C
.pl
.pm
.plx
.psgi
iOS mobile
applications
.m
.h
.xib
HTML 5
PL\SQL
.pls
.sql
.pkh
.pks
.pkb
.pck
Python
Python
JavaScript
VB script
PL\SQL
Groovy
Groovy
JavaScript
VB script
PL\SQL
Django
.py
.groovy
.gsh
.gvy
.gy
Other
extensions:
.aspx
.ascx
.config
.xml
.cgi
.inc
[*] Требуются некоторые настройки.
[**] Только на стороне клиента
Запросы для поиска уязвимостей исполняемые в версии Checkmarx Suite 7.1.6 на 10 ноября 2014 г.
https://www.checkmarx.com/technology/supported-coding-languages/
ПРИЛОЖЕНИЕ 2
ЛИЦЕНЗИРОВАНИЕ
Основными параметрами для расчета стоимости лицензий и выработке требований к оборудованию являются:
1. Число одновременно сканируемых проектов;
2. Число строк кода по каждому из сканируемых проектов;
3. Периодичность выполнения сканирований;
4. Количество и роли (в соответствии с классификацией, представленной в таблице) сотрудников;
Решение предлагается пакетами, каждый из пакетов, кроме Cx-Single, может впоследствии расширяться путем добавления так называемых Add-On – базовых и пользовательских.
Для примера рассмотрим содержание пакета Cx-Starter, который включает:
∙
Cx-Server
1 шт. координирует работу до 8-ми модулей Cx-Engine, выполняющих
сканирование и пользователей, принимающих участие в процессе проверки/исправления кода;
∙
Cx-Engine
рование;
-
1 шт. -
сканирует и анализирует код, выполняет одно конкурентное скани-
∙
Cx-Auditor
1 шт. лицензия на пользователя, который авторизован на внесение изменений в язык запросов решения (позволяет добавлять описание уязвимостей и т.д.);
∙
Cx- Scanner 2 шт. лицензия на пользователя, авторизованного на запуск процесса
сканирования и просмотра результатов анализа;
∙
Cx-Reviewer 10 шт. тов сканирования онлайн;
лицензия на пользователя, авторизованного на просмотр результа-
ПРЕДЛАГАЕМЫЕ ТИПЫ ЛИЦЕНЗИЙ
Тип лицензии
Описание
Single Server/User
Cx-Single
Single User License (No add-on licenses allowed). Cx-Server + Cx-Engine + Cx-Auditor + CxScanner. Including 4-hour remote training.
Add-On - Base
Cx-Server
Module to coordinate up to 8 CxEngines and user management activity.
Cx-Engine
Module for code scanning and analysis. A single CxEngine can perform one concurrent scan.
Add-On - Users
Cx-Auditor
A user authorized to adjust and customize queries.
Cx-Scanner
A user authorized to initiate scans and review results.
Cx-IDE
A user authorized to initiate scans from Interactive Development Environments (including an
IDE plug-in)
Cx-Reviewer
A user authorized to interactively review scan results online.
Packages
Cx-Starter
Cx-Server + Cx-Engine + Cx-Auditor + 2 Cx-Scanners + 10 Cx-Reviewers deployed for multiserver multi-user usage for initial deployment only.
Cx-Advanced
Cx-Server + 2 Cx-Engines + Cx-Auditor + 5 Cx-Scanners + 20 Cx-Reviewers + 2 Cx-Training
Cx-Comprehensive
Cx-Server + 3 CxEngines + 2 Cx-Auditors + 20 Cx-Scanners + 50 Cx-Reviewers + 3 CxTraining.
Service*
* No partner discount. *not include travel & Expenses
Cx-Training
Training Day - 8 hours
Cx-PS
Professional Service Day - 8 hours
Download