Solar inCode – системаанализа программного кода на наличие уязвимостей ИБ
1 of 14
Download to read offline
More Related Content
Solar inCode – системаанализа программного кода на наличие уязвимостей ИБ
1. Solar inCode – система
анализа программного кода
на наличие уязвимостей ИБ
18 декабря 2015 г.
Чернов Даниил
CISA, CISSP
Руководитель Направления
Application Security
3. solarsecurity.ru +7 (499) 755-07-70
По рзелульаттам илссеовадний одонго
анлигйскго унвиертсиета, не иеемт
занчнеия, в кокам пряокде рсапожолены
бкувы в солве. Галвоне, чотбы преавя и
пслоендяя бквуы блыи на мсете.
Осатльлыне бкувы мгоут селдовтаь в
плоонм бсепордяке, все-рвано ткест
чтаитсея без порблелм. Пичрионй эгоото
ялвятеся то, что мы не чиатем кдаужю
бкуву по отдльенотси, а все солво
цликеом.
Иногда ошибке в тексте не критичны
4. solarsecurity.ru +7 (499) 755-07-70
В больнице, на кровати,
лежит человек ,весь
замотанный бинтами и
диктует письмо:
- Уважаемый господин
редактор! Спешу сообщить
вам, что в вашем
самоучителе по прыжкам с
парашютом на пятой
странице есть опечатка!
Но могут обойтись дорого…
5. solarsecurity.ru +7 (499) 755-07-70
Откуда берутся уязвимости
5
Культура разработки – разработчик не уделяет внимания:
Языковым конструкциям, которые использует
Коду, который используется как сторонний
Безопасности связей между компонентами, которые разрабатывает
Недостаток времени:
Техническое задание разрабатывается быстро
Программное обеспечение разработается быстро:
задержка в разработке – потеря денег
Можно удовлетворить только два из трех желаний: быстро,
качественно и недорого
ОБЫЧНО – ЭТО БЫСТРО И НЕДОРОГО
6. solarsecurity.ru +7 (499) 755-07-70
Статистика за 2014 год
6
Более 70% успешных кибератак эксплуатируют
«дыры» в ПО, т.к. на сегодняшний день это самое
слабое звено технической защиты
Уязвимости для платформы Android – 15% из всех
уязвимостей, публично опубликованных за 2014 год
SQLi – 8,4% из всех атак за прошедший 2014 год
7. solarsecurity.ru +7 (499) 755-07-70
Сложности
7
Получить исходный код у разработчиков
Убедиться, что код «собирается в проект» и не имеет
«неразрешенных зависимостей»
Проверить код: корректно запустить скан
Суметь понять, что написано в отчете
Донести до разработчиков все найденные уязвимости
и объяснить их понятным языком
8. solarsecurity.ru +7 (499) 755-07-70
Solar inCode – сканер программного кода
• выдает детальные рекомендации по устранению уязвимостей̆ кода на
русском языке с описанием способов их эксплуатации
Понятные рекомендации
• выдает детальные рекомендации по настройке наложенных средств
защиты: SIEM, WAF, Firewall
Настройка средств защиты
• умеет работать без исходных кодов. Это значит, что не надо просить
исходные коды у разработчиков, а можно получить скомпилированные
файлы для анализа у системного администратора или скачать мобильные
приложения с Google Play или AppStore.
Практичность и удобство
9. solarsecurity.ru +7 (499) 755-07-70
Обзор функциональности
9
Статический анализ
Java, Scala: Web-приложения, Android
Бинарный анализ: Android, jar, war,
В разработке: PHP, iOS
Планы: C#/, PL/SQL, Javascript
Рекомендации по настройке наложенных средств защиты
Потенциальные НДВ
Интеграция с репозиторием
Загрузка apk по url (Google Play)
Выгрузка отчётов (pdf, html)
10. solarsecurity.ru +7 (499) 755-07-70
Solar inCode – цена, опыт
внедрения
• От 3М рублей
Стоимость
• Банк Балтика
• Банк Образование
• Мсофт (дочерняя компания Маском)
• Яндекс.Деньги
Пользователи
#3: Многие вещи проходят путь от сложных навыков и умений до понятной, удобной и автоматизированной технологии. Например, современный автомобиль: когда-то управление автомобилем было очень сложным, а теперь это это автоматизированная технология. Современным автомобилем может управлять автопилот, а человеческое вмешательство необходимо в случае возникновения внештатных ситуаций.
Так и с анализом приложений на дыры: когда-то это было искусством, в нашем продукте мы постарались это искусство максимально автоматизировать. Вы видели, что анализ запускается в два клика.
#4: Итак, что же делает наш продукт. Он анализирует безопасность приложений, как по исходным кодам, так и без них.
Что такое программа. Это текст, который написан по определенным правилам синтаксиса и семантики. Его тоже пишут люди.
Мы все когда пишем текст, который идет в печать, понимаем, что его необходимо проверить на ошибки и опечатки, логические нестыковки. Это не так критично, когда мы пишем письмо коллеге, но сильно критично, когда мы пишем статью в печатное издание. Для выявление ошибок и нестыковок есть специальные люди, которые выявляют такие ошибки. Но что такое софт, программное обеспечение, которым мы пользуемся? Это тоже текст. Написанный на языке программирования, с соблюдением определенных правил синтаксиса и семантики. Важное отличие здесь состоит в том, что этот текст: это набор четких инструкций и алгоритмов, которые будет выполнять наш ноутбук, сервер или мобильное устройство, на котором будет запущена программа. У программистов тоже есть свои корректоры. Они называются тестировщики. Но так сложилось, что тестировщики выявляют ошибки, которые влияют на функционирование системы, за ее работоспособность. А в то же время ряд ошибок приводит к тому, что систему можно взломать. Эти ошибки мы назваем уязвимостями. Если же программист вставил скрытый код, который позволяет ему управлять программой - это закладка или недекларированная возможность.
#5:
Мы все когда пишем текст, который идет в печать, понимаем, что его необходимо проверить на ошибки и опечатки, логические нестыковки. Это не так критично, когда мы пишем письмо коллеге, но сильно критично, когда мы пишем статью в печатное издание. Для выявление ошибок и нестыковок есть специальные люди, которые выявляют такие ошибки. Но что такое софт, программное обеспечение, которым мы пользуемся? Это тоже текст. Написанный на языке программирования, с соблюдением определенных правил синтаксиса и семантики. Важное отличие здесь состоит в том, что этот текст: это набор четких инструкций и алгоритмов, которые будет выполнять наш ноутбук, сервер или мобильное устройство, на котором будет запущена программа. У программистов тоже есть свои корректоры. Они называются тестировщики. Но так сложилось, что тестировщики выявляют ошибки, которые влияют на функционирование системы, за ее работоспособность. А в то же время ряд ошибок приводит к тому, что систему можно взломать. Эти ошибки мы назваем уязвимостями. Если же программист вставил скрытый код, который позволяет ему управлять программой - это закладка или недекларированная возможность.
#7: А что было раньше? Почему это стало актуально сейчас? Раньше было тоже самое.
Дыры в средствах защиты периметра хорошо защищены. Теперь атаки чаще всего проходят через дыры в самом ПО, которое торчит наружу.
#8: В организациях, за безопасность от взломов как правило отвечает выделенный человек: безопасник. В общем-то, основная несправедливость жизни заключается в том, что если случается инцидент, то отвечать будет он.
Аналогия: Исходный код это чертеж, по которому собирается автомобиль. Рабочий файл, в обычной жизни – это программка, которую вы запускаете на своем компьютере, это уже готовый автомобиль. Причем, если в обычной жизни у сервисменов есть чертежи и техническая документация на узлы автомобиля, то в случае с программкой таких чертежей нет. Это темный ящик.
#11: Например:
организации, предоставляющие онлайн-сервисы внешним пользователям через персональный личный кабинет (например, банки, телекомы, авиаперевозчики)
организации, осуществляющие продажу товаров и услуг в онлайне (н-р, Интернет-магазин)
итд.