Спроси эксперта. 2 сезон 2 серия. Тестирование приложений на уязвимости. Практика построения SDLC.
1. Solar inCode - сканер софта на «дыры»
30 марта 2017 года
Даниил Чернов,
Руководитель направления Solar inCode,
Solar Security
2. solarsecurity.ru +7 (499) 755-07-70
Особенности разработки приложений
с точки зрения ИБ
Дыры в софте:
Уязвимости
Недекларированные возможности
(закладки)
2
4. solarsecurity.ru +7 (499) 755-07-70
Откуда берутся уязвимости
4
Культура разработки – разработчик не уделяет внимания:
Языковым конструкциям, которые использует
Коду, который используется как сторонний
Безопасности связей между компонентами, которые разрабатывает
Недостаток времени:
Техническое задание разрабатывается быстро
Программное обеспечение разработается быстро:
задержка в разработке – потеря денег
Можно удовлетворить только два из трех желаний: быстро, качественно и недорого
ОБЫЧНО – ЭТО БЫСТРО И НЕДОРОГО
5. solarsecurity.ru +7 (499) 755-07-70
Статистика за 2015 год
5
Более 75% успешных кибератак эксплуатируют «дыры» в ПО, т.к. на
сегодняшний день это самое слабое звено технической защиты
Уязвимости для платформы Android – 15% из всех уязвимостей, публично
опубликованных за 2015 год
SQLi – 8,4% из всех атак за прошедший 2015 год
7. solarsecurity.ru +7 (499) 755-07-70
Сложности работы со сканерами кода
7
Получить исходный код у разработчиков
Убедиться, что код «собирается в проект» и не имеет «неразрешенных
зависимостей»
Проверить код: корректно запустить скан
Суметь понять, что написано в отчете
Донести до разработчиков все найденные уязвимости и объяснить их
понятным языком
8. solarsecurity.ru +7 (499) 755-07-70
Solar inCode – сканер программного кода
• умеет работать без исходных кодов. Это значит, что не надо просить исходные коды у
разработчиков, а можно получить скомпилированные файлы для анализа у системного
администратора или скачать мобильные приложения с Google Play или AppStore.
Практичность и удобство
• выдает детальные рекомендации по настройке наложенных средств защиты: SIEM, WAF,
Firewall
Настройка средств защиты
• выдает детальные рекомендации по устранению уязвимостей̆ кода на русском языке с
описанием способов их эксплуатации
Понятные рекомендации
9
10. solarsecurity.ru +7 (499) 755-07-70
Обзор функциональности
10
Статический анализ
Java, Scala, PHP, Android, iOS, С#, PHP, PL/SQL, Python
Ruby, C/C++, VB 6.0, T/SQL
Бинарный анализ: Android, iOS, jar, war, C/C++
Рекомендации по настройке наложенных
средств защиты
Потенциальные НДВ
Интеграция с репозиторием
Загрузка мобильных приложений
Выгрузка отчётов (pdf, html)
11. solarsecurity.ru +7 (499) 755-07-70
Услуги по «ручному» анализу кода
Практически любые языки программирования, включая
Delphi.
Опыт в reverse engineering:
Восстановление bytecode for java и C#;
Декомпиляция C/C++ и objective C.
Работы выполняются экспертами вручную.
Стоимость оценивается по объему исходного кода.
Если требуется аутсорсинг без приобретения продукта, мы
готовы предложить сервисные услуги – разовые и по
подписке.
11
12. Solar Security
127 015 г. Москва, ул. Вятская 35/4, БЦ «Вятка» I подъезд
Телефон офиса: +7 499 755 07 70
Техническая поддержка: +7 499 755 02 20
Email: info@solarsecurity.ru
13. Практика построения процесса безопасной разработки
30 марта 2017 года
Ярослав Александров
Ведущий эксперт направления
Application Security
15. solarsecurity.ru +7 (499) 755-07-70
Методология безопасной разработки
15
SDL – Security Development Lifecycle (Microsoft)
Тестирование на соответствие требованиям
информационной безопасности (ИБ) на всех этапах
Тестирование на соответствие требованиям ИБ
независимыми по отношению к разработчикам
экспертами в области информационной безопасности
Тестирование на соответствие требованиям ИБ с
возможным наложением вето на выпуск релиза
Тестирование на соответствие требованиям ИБ после
каждого внесения изменений в код или при обновлении
базы правил поиска уязвимостей
16. solarsecurity.ru +7 (499) 755-07-70
Внедрение тестирования на соответствие
требованиям ИБ
16
In-House Outsourcing Fixing cost
Функционирующая
система ~ 100 * X
Приемка проекта
~ 10 * X
Разработка проекта
(ручной анализ)
X
Разработка проекта
(непрерывная
интеграция)
X
Исходный код Исполняемый код
17. solarsecurity.ru +7 (499) 755-07-70
inCode: возможности
17
Настройка проекта и запуск сканирования
Код, исключаемый из проекта при анализе
Применяемые наборы правил поиска уязвимостей
Результаты сканирования
Подробные описания, рекомендации по устранению
Комментарии, изменение критичности
Отслеживание истории уязвимости
Отслеживание ложных срабатываний
Рекомендации по настройке СЗИ
Отслеживание динамики результатов
Выгрузка отчетов (PCI DSS 3.2, OWASP Top 10, OWASP Mobile Top 10)
Создание дополнительных правил поиска уязвимостей
Администрирование: пользователи, группы, права
18. solarsecurity.ru +7 (499) 755-07-70
inCode: интерфейс командной строки (CLI)
18
Генерация REST запросов к inCode
Аутентификация через токен
Интеграция:
CI (непрерывная интеграция)
VCS (система контроля версий)
Bug tracking (система управления
проектом)
Build tool (средство сборки)
IDE (среда разработки)
Плагин к средствам сборки и IDE
Bug
tracking
Build
Tool
CLIGUI
Version Control
System
Continuous
Integration
IDE
19. solarsecurity.ru +7 (499) 755-07-70
Архитектура inCode и пример установки
19
worker workerworker
queue
GUI user
GUI user
CLI user
CLI user
DB
module
Java/Scala,
Android
module
PHP
queue
module
JavaScript
module
T-SQL
module
Python
module
C/C++
module
iOS
module
C#
module
PL/SQL
module
Visual Basic
module
Ruby
...
...
info
20. solarsecurity.ru +7 (499) 755-07-70
Роли пользователей inCode: пример
20
Руководитель, менеджер
Динамика результатов сканирований групп проектов
Интегрированная оценка безопасности приложений
Технический руководитель проекта, специалист по
информационной безопасности
Запуск сканирования через графический интерфейс
Работа с результатами сканирований
Динамика результатов в рамках проекта
Выгрузка pdf-отчетов по классификациям
Дополнительные правила поиска уязвимостей
Разработчик
Интерфейс командной строки, плагины к IDE
Подробные результаты сканирований
21. solarsecurity.ru +7 (499) 755-07-70
Схема интеграции inCode: пример
21
Developer
IDE
CLI
commit
Bug Tracking
Build Tool
Build Tool
TestNG
Test
Environment
VCS
CI
Team Lead
Security Officer
Results analysis
Manager
Analytics
GUI
scan
MR→dev
night build
22. solarsecurity.ru +7 (499) 755-07-70
После внедрения inCode
22
Отлаженный процесс автоматического обнаружения
уязвимостей, встроенный в непрерывный цикл
разработки программного кода
Только «безопасные» релизы проектов
Снижение концентрации уязвимостей по всем
проектам
Увеличение осведомленности разработчиков в области
безопасной разработки
23. Solar Security
127 015 г. Москва, ул. Вятская 35/4, БЦ «Вятка» I подъезд
Телефон офиса: +7 499 755 07 70
Техническая поддержка: +7 499 755 02 20
Email: info@solarsecurity.ru