Как применить методологию и инструменты Microsoft SDL для того чтобы в ваших веб приложения было меньше уязвимостей. В свою очередь это позволит тратить меньше сил и средств на обслуживание вашего веб приложения.
3. • Сроки запуска проекта
горят
• Нет ресурсов и
специалистов для
обеспечения безопасных
практик
• Мы стартап – нам нужно
быстрее стать
популярными и заработать
много денег
• Безопасность
необходимое зло
4.
5. после выпуска дороже в 30 раз
Относительная стоимость устранения ошибок
30
Выпуск
25
20
15
10
5
0
Требования/ Интеграция/ Финальное После
Кодирование
Архитектура Тестирование тестирование выпуска
компонент
Источник: National Institute of Standards and Technology
9. Sun Solaris 10 1191
Red Hat Enterprise Linux Server v.5 1580
FreeBSD 6.x 86
Microsoft Windows Server 2008 302
Apple Mac OS X 1555
Red Hat Enterprise Linux Client v.5 1709
Ubuntu Linux 8.04 (выпуск 2008 год) 1397
Windows XP (выпуск 2001 год) 498
Windows 7 170
Oracle Database 11.x 315
IBM DB2 9.x 98
MySQL 5.x 66
Microsoft SQL Server 2008 1
Mozilla Firefox 4.0 (04.2011) 14 Firefox 3.5.x (2009) 161
Opera 11 (10.2010) 10 Opera 9.x (2008) 56
Google Chrome 11 (04.2011) 30 Chrome 5.x (5.2010) 56
Microsoft Internet Explorer 9 (03.2011) 18 Explorer 8.x (3.2009) 104
Cisco ASA 7.x 71
Microsoft ISA Server 2006 7
Microsoft Forefront TMG 2
В ядре Linux 2.6 — 596 уязвимостей . Почти в 3 раза больше уязвимостей
чем в Windows 7
10. SDL – обязательная политика в Майкрософт с 2004 г.
Обуче Требо Проекти Реали Провер Реагиро
Выпуск
ние вания рование зация ка вание
Начальное Определение Моделирован Выбор Динамическое План Выполнение
владельца от ие угроз инструментов тестирование реагирования плана
обучение бизнеса и fuzzing реагирования
Анализ Блокировани Заключитель-
по Анализ опасных е Проверка ный анализ на инциденты
основам рисков областей запрещенных моделей угроз безопасности
безопасно безопасности функций и опасных Архив
сти и конфиден- Статический областей выпусков
циальности анализ
Определение
требований к
качеству
Обучение Технология и процесс Ответственность
Постоянные улучшения процессов
11.
12. SDL THREAT MODELING TOOL
Формализует и упрощает
моделирование угроз так
чтобы им мог
заниматься архитектор
13. Как написать безопасный код на
С++, Java, Perl, PHP, ASP. NET
Защищенный код для Windows Vista
Игра «Spot the vuln»
10 уязвимостей веб проектов - OWASP Top Ten
Курсы SANS
Книга по SDL
Упрощенный SDL
Курсы по SDL
14.
15.
16. ПРОТИВОДЕЙСТВИЯ АТАКЕ
• Не использовать GET-запросы для
внесения изменений в БД и доступа к
важным данным
22. ПРОТИВОДЕЙСТВИЯ АТАКЕ
HTTP Referer
Html.AntiForgeryToken() ValidateAntiForgeryToken
ViewStateUserKey
23. МЕТОД УСТАРЕЛ, ПРИМЕНИМ ТОЛЬКО ДЛЯ СТАРЫХ БРАУЗЕРОВ
[{"Id":1,"Amt":3.14},{"Id":2,"Amt":2.72}]
Конструкция
<script src="http://example.com/Home/AdminBalances"></script>
загружает JSON-массив как валидный
JavaScript код и выполняет его.
__defineSetter__
24. ПРОТИВОДЕЙСТВИЯ АТАКЕ
{"d" : "bankaccountnumber", "$1234.56" }
__defineSetter__ для данной атаки
больше
26. ПРОТИВОДЕЙСТВИЯ АТАКЕ
• [Bind(Include = ―Title‖, Exclude =
―ViewCount‖)]
• Использовать Data Transfer Objects
(DTO) - модели данных представлений,
отличные от моделей данных
33. Вебсайт SDL
The Simplified Implementation of the
SDL
Блог об SDL
Microsoft Enterprise Library
Microsoft Web Protection Library
Best Practice Analyzer for ASP.NET
Microsoft Web Application
Configuration Analyzer v2.0