Спроси эксперта. Solar inСode все, что вы хотели узнать про...

27
27.04.2016 Все, что вы хотели узнать про «дыры» в коде, но не у кого было спросить

Transcript of Спроси эксперта. Solar inСode все, что вы хотели узнать про...

Page 1: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

27.04.2016

Все, что вы хотели узнать про «дыры» в коде, но не у кого было спросить

Page 2: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

О чем пойдет речь

Что такое дыры

Как они появляются в коде

Какими инструментами их находить

Что делать с найденными дырами

2

Page 3: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70 3

Особенности разработки приложений с точки зрения ИБ

Дыры в софте:

Уязвимости

Недекларированные возможности (закладки)

Page 4: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70 4

Откуда берутся уязвимости

Культура разработки – разработчик не уделяет внимания: Языковым конструкциям, которые использует Коду, который используется как сторонний Безопасности связей между компонентами, которые

разрабатывает

Недостаток времени: Техническое задание разрабатывается быстро Программное обеспечение разработается быстро:

задержка в разработке – потеря денег

Можно удовлетворить только два из трех желаний: быстро, качественно и недорого

ОБЫЧНО – ЭТО БЫСТРО И НЕДОРОГО

Page 5: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70 5

Статистика за 2015 год

Более 75% успешных кибератак эксплуатируют «дыры» в ПО, т.к. на сегодняшний день это самое слабое звено технической защиты

Уязвимости для платформы Android – 15% из всех уязвимостей, публично опубликованных за 2015 год

SQLi – 8,4% из всех атак за прошедший 2015 год

Page 6: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить
Page 7: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Что делать при выявлении уязвимости

Идеальный вариант – устранить уязвимость, переписав код

Некоторые уязвимости веб-приложений можно закрыть наложенными средствами защиты

7

Page 8: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Bug bounty

Официальная возможность заработать на найденных дырах

В среднем – несколько сотен долларов за уязвимостьЧрезмерно активное исследование на дыры может

завалить исследуемую систему, к этому надо быть готовым

8

Page 9: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Что делать, если получили информацию об уязвимостях от внешних лиц

Поблагодарить человека за присланную информациюПроверить уязвимостьЕсли она подтвердилась – принять решение

об устранении, исходя из ее критичностиКритичные уязвимости устранять

как можно быстрееСтараться не отвечать

приславшему в стиле «да это вообще не уязвимость»

9

Page 10: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70 10

Сложности

Получить исходный код у разработчиков Убедиться, что код «собирается в проект» и не имеет

«неразрешенных зависимостей» Проверить код: корректно запустить скан Суметь понять, что написано в отчете Донести до разработчиков все найденные уязвимости и

объяснить их понятным языком

Page 11: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Методология безопасного программирования

SDL – Secure Development Lifecycle

Официально считается, что SDL был впервые внедрен в Microsoft в 2004 г.

SDL предполагает закладывание требований по ИБ еще на этапе ТЗ на систему.

Важным элементом является тестирование кода на безопасность с возможным наложением вето на передачу релиза в production

11

Page 12: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Кто, когда и сколько должен проверять софт

В идеале тестировать необходимо после внесения изменений в код

Если изменений не происходит, то рекомендуется делать проверки при обновлении базы уязвимостей

Тестировать должно независимое от разработки лицо, которое компетентно в вопросах ИБ

12

Page 13: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70 13

Как проверить софт?

Page 14: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Откуда брать информацию об уязвимостях. Некоторые источники

https://www.owasp.orghttps://cwe.mitre.org/https://capec.mitre.org/https://www.cvedetails.com/http://csrc.nist.gov/groups/ST/index.

html

14

Page 15: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Белый ящик. С исходниками или без

С исходниками нет сложностей с восстановлением кода

Без исходников можно брат приложение прямо из production, есть гарантия, что вы проверяете тот же самый код, а не зачищенную версию

Без исходников вы также анализируете дыры в скомпилированных кусках софта, взятого из других источников.

15

Page 16: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Проверка на НДВ («закладки»)

Самое глубокое тестирование на НДВ можно провести только силами эксперта. У него обязательно должна быть документация на систему

Автоматически можно искать НДВ в коде по шаблонным признакам:«Захардкоженный»

парольВременной триггер

16

Page 17: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70 17

Продукты для статического анализа кода

IBM Security AppScan Source

APPERCUT

HP Fortify Static Code Analyzer

Checkmarx Static Code Analysis

PT Application Inspector

Solar inCode

Page 18: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Здесь могла бы быть ваша реклама

18

Page 19: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

На что обратить внимание при выборе сканера

Поддержка тех языков программирования, которые Вам нужны

Понятный для Вас отчет: язык отчета, описание «дыр», рекомендаций итп

Возможность проверки приложений как по исходникам, так и без

Удобство работы: управление правилами поиска уязвимостей, кастомизация отчетов, интеграция с репозиториями, Bug Tracking Systems, IDE

Возможность генерации рекомендаций для наложенных СЗИ

Количество пропусков уязвимостейКоличество ложных срабатываний 19

Page 20: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Cloud vs OnSite

Облачный формат:как правило не требует

вложения в железо и софт

Но надо внутренне согласиться с передачей своего кода наружу

Как правило дешевле и выгоднее, если у Вас небольшие объемы анализируемого кода

20

Page 21: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Cloud vs OnSite

OnSiteТребует внедрения и

администрированияДает больше возможностей по

автоматизации SDLАнализируемый код не уходит

в облакоКак правило является

предпочтительным вариантом для клиентов с большим количеством разрабатываемого/анализируемого кода

21

Page 22: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70 22

Основные языки

ActionScript Delphi MXML (Flex) ASP.NET VB.NET, C# (.NET) C/C++ Classic ASP (with

VBScript) COBOL HTML JavaScript AJAX

JSP Objective-C PL/SQL Python T-SQL Visual Basic VBScript XML PHP Scala Java Java for

Android

Page 23: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Что должно быть в отчетах

Executive SummaryБенчмаркинг Статистика найденных уязвимостейДинамика изменения уязвимостейОписание найденных уязвимостей и возможных атакКритичность найденных уязвимостейРекомендации по корректировке кодаРекомендации по настройке

наложенных СЗИ (где применимо)Служебная информация

по анализируемому коду: структура проекта, объем кода итп.

23

Page 24: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

ФСТЭК России про контроль кода

21 приказ:11. В случае определения в соответствии с Требованиями к защите персональных при их обработке в информационных системах персональных данных, утвержденными постановлением Правительства Российской Федерации от 1 ноября 2012 г. N1119, в качестве актуальных угроз безопасности персональных данных 1-го и 2-го типов дополнительно к мерам по обеспечению безопасности персональных данных, указанным в пункте 8 настоящего документа, могут применяться следующие меры:• проверка системного и (или) прикладного программного

обеспечения, включая программный код, на отсутствие недекларированных возможностей с использованием автоматизированных средств и (или) без использования таковых;

• тестирование информационной системы на проникновения;• использование в информационной системе системного и (или)

прикладного программного обеспечения, разработанного с использованием методов защищенного программирования. 24

Page 25: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Реестр отечественного ПО

25

Page 26: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

solarsecurity.ru +7 (499) 755-07-70

Полезные ссылки

Анализаторы исходного кода – обзор рынка в России и в мире: https://www.anti-malware.ru/reviews/Code_analyzers_market_overview_Russia_and_world

Базы уязвимостей: https://www.owasp.org https://cwe.mitre.org/ https://capec.mitre.org/ https://www.cvedetails.com/ http://csrc.nist.gov/groups/ST/index.html

Microsoft SDL: https://www.microsoft.com/en-us/sdl/

http://bdu.fstec.ru/

26

Page 27: Спроси эксперта. Solar inСode все, что вы хотели узнать про "дыры" в коде, но не у кого было спросить

Даниил ЧерновРуководитель направления

Application Securitywww.solarsecurity.ru

[email protected]