SlideShare a Scribd company logo
1 of 28
Разработка безопасных приложений
            на практике




Второй Евразийский CIO Конгресс
О чем будем говорить

   • Кому нужна разработка безопасных приложений
   • Выгоды от разработки безопасных приложений
   • Основные этапы разработки безопасных приложений
   • Разработка безопасных приложений на основе Microsoft
       SDL
   • Как быстро начать внедрять Security Development
       Lifecycle
   • Демонстрация инструментов разработки безопасных
       приложений


  www.pointlane.ru                                          2
Почему именно разработка безопасного ПО?

 • Облака, виртуализация
 • Статистика из практики тестов на проникновение
     • 4 из 10 web приложений с доступом из Internet содержат
          уязвимости уровня high priority
     • 7 из 10 приложений в корпоративных сетях содержат
          уязвимости уровня high priority и critical


 Вывод: надо бороться с причиной, а не со следствием




  www.pointlane.ru                                              3
Кому нужна безопасная разработка

 • Компании профессионально занимающиеся разработкой
    программного обеспечения


 • Руководители ИТ в крупных компаниях, поддерживающих и
    развивающих собственные приложения
     • Спросите российских вендоров: разрабатывают ли они
          безопасное ПО и как они это делают?


 • Проектным командам, разрабатывающим продукт или
    решения в рамках проекта

  www.pointlane.ru                                          4
Стратегии разработки

 • «Найти и обезвредить»
     • Сканирование приложений на уязвимости
     • Тестирование на проникновение


 • «Защитить и отложить»
     • Использование WAF, application-level proxy


 • Изначально безопасная разработка
     • Интеграция инструментов и практик в жизненный цикл
          разработки ПО

  www.pointlane.ru                                          5
Стратегии разработки




                       Источник: Aberdeen Group




  www.pointlane.ru                            6
Выгоды от разработки безопасного ПО

      Относительная стоимость устранения                                                           •     Расходы на команду
 30                ошибок
                                                                                                         (разработчики,
                                                                  Выпуск
 25                                                                                                      администраторы,
                                                                                                         тестировщики) в ходе
 20
                                                                                                         устранения ошибок
 15                                                                                                      (уязвимостей)
 10                                                                                                •     Потеря
                                                                                                         производительности
  5
                                                                                                         бизнес-подразделений
  0
        Требования/                 Интеграция/ Финальное                    После
                      Кодирование
        Архитектура                 Тестирование тестирование               выпуска
                                     компонент

                                              Источник: National Institute of Standards and Technology




      www.pointlane.ru                                                                                                      7
Что говорят аналитики

 •     Исследование Aberdeen:
        •    Предотвращение одной уязвимости почти полностью покрывает годовые
             затраты на повышение безопасности разработки
        •    Предотвратить проблему с безопасностью в 4 раза дешевле чем
             разбираться с ее последствиями


 •     Исследование Forrester:
        •    Разработка безопасного ПО еще не стала широко распространенной
             практикой
        •    Компании применяющие методы SDL демонстрируют гораздо более
             быстрый возврат инвестиций



     www.pointlane.ru                                                         8
Выход в облака: OWASP Top 10 threats

 •     Injections
 •     Cross-site scripting
 •     Authentication and session management
 •     Direct object references
 •     Cross-site request forgery
 •     Security misconfiguration
 •     Insecure cryptographic storage
 •     Failure to restrict URL access
 •     Insufficient transport layer protection
 •     Invalidated redirects and forwards


     www.pointlane.ru                            9
История Microsoft SDL




    Процесс безопасной разработки прошел многолетнее тестирование и
             шлифовку в рамках Microsoft и других компаний.


  www.pointlane.ru                                                    10
Этапы применения SDL
                SDL – обязательная политика в Майкрософт с 2004 г.


   Обуче           Требо         Проекти         Реали         Провер                          Реагиро
                                                                              Выпуск
    ние            вания         рование         зация           ка                             вание

Начальное      Определение     Моделирован   Выбор          Динамическое    План           Выполнение
               владельца от    ие угроз      инструментов   тестирование    реагирования   плана
обучение       бизнеса                                      и fuzzing
                               Анализ        Блокирование                   Заключитель-   реагирования
по основам     Анализ рисков   опасных       запрещенных    Проверка        ный анализ     на инциденты
безопасност    безопасности    областей      функций        моделей угроз   безопасности
и              и конфиден-                   Статический    и опасных       Архив
               циальности                    анализ         областей        выпусков
               Определение
               требований к
               качеству




Обучение                       Технология и процесс                            Ответственность



                               Постоянные улучшения процессов
      www.pointlane.ru                                                                                    11
Фаза: обучение

                                      Проекти            Реали                                           Реагирова
 Обучение
  Training         Requirements
                   Требования          Design        Implementation     Verification
                                                                        Проверка         Release
                                                                                         Выпуск           Response
                                      рование            зация                                              ние




Обследовать подготовленность организации по темам безопасности и защиты данных.


При необходимости (то есть в любом случае!) создать стандартные курсы обучения.


   • Разработать критерии качества программы обучения
             •   Содержимое должно покрывать темы безопасного дизайна, разработки, тестирования и защиты данных
   • Определить частоту тренингов
             •   Разработчик должен пройти не менее n тренингов в год
   • Определить минимальный приемлемый порог тренингов в группе разработки
             •   80% процентов технического персонала должны пройти минимальные обязательные тренинги до выпуска
                 RTM версии продукта



     www.pointlane.ru                                                                                              12
Источники для обучения

                     Как написать безопасный код на
                     С++, Java, Perl, PHP, ASP. NET

                     Защищенный код для Windows Vista

                     Игра «Spot the vuln»

                     10 уязвимостей веб проектов - OWASP Top Ten

                     Курсы SANS

                     Книга по SDL

                     Упрощенный SDL




  www.pointlane.ru                                                 13
Фаза: Требования

                              Проекти      Реали                                  Реагирова
 Обучение
  Training     Requirements
               Требования      Design   Implementation   Verification
                                                         Проверка       Release
                                                                        Выпуск     Response
                              рование      зация                                     ние




Возможность заложить безопасный фундамент для проекта


   • Команда разработки определяет лидеров и консультантов по
     темам безопасности
   • Назначается ответственный за безопасность
   • Ответственный проверяет план разработки продукта,
     рекомендует изменения или устанавливает дополнительные
     требования к безопасности продукта
   • Определить приоритет, процедуру отслеживания и исправления
     ошибок (bug tracking/job assignment system)
   • Определить и задокументировать порог отбраковки продукта по
     ошибкам связанным с безопасностью и защитой данных
     www.pointlane.ru                                                                     14
Фаза: Проектирование

                               Проекти      Реали                                  Реагирова
 Обучение
  Training      Requirements
                Требования      Design   Implementation   Verification
                                                          Проверка       Release
                                                                         Выпуск     Response
                               рование      зация                                     ние




Определить и задокументировать архитектуру безопасности и идентифицировать
   критические компоненты безопасности

  • Минимизировать поверхность атаки.
        • Ограничить ее установками по умолчанию (отключить ненужные сервисы, использовать
          принцип минимальных привилегий
  • Определить критерии выпуска обновления продукта в связи с изменением в
    безопасности продукта
        • Результаты автоматизированного тестирования атак
        • Устаревание криптографических алгоритмов или замена слабых алгоритмов
  • Моделирование угроз
        • Систематический анализ свойств продукта и его архитектуры с точки зрения
          безопасности
        • Определить угрозы и меры снижения угроз
      www.pointlane.ru                                                                     15
Моделирование угроз


                      • Продумать
                        требования к
                        безопасности
                        продукта, сценарии
                        Spoofing
                        использования.
                        Tampering
                      • Идентифицировать
                        Repudiation
                        классы
                        пользователей.
                        Denial of Service
                      • Ожидаемое
                        поведение.of privilege
                        Elevation




  www.pointlane.ru                           16
SDL Threat Modeling Tool


                                • Обучает созданию диаграмм
                                  угроз
                                • Анализ угроз и мер защиты
                                • Интеграция с багтреккером
                                • Отчеты по угрозам и
                                  уязвимостям




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

   www.pointlane.ru                                      17
Фаза: Реализация

                                Проекти          Реали                                 Реагирова
Обучение
 Training      Requirements
               Требования        Design      Implementation   Verification
                                                              Проверка       Release
                                                                             Выпуск     Response
                                рование          зация                                    ние




Разработка кода и ревью процессов, документации и инструментов необходимых для
безопасного развертывания и эксплуатации разрабатываемого продукта

            Спецификация утвержденных инструментов и их аналогов
            Статический анализ (/analyze (PREfast), FXCop, CAT.NET)
            Поиск случаев использования запрещенных API
            Применение механизмов защиты предоставляемых ОС (NX, ASLR и
            HeapTermination)
            Соблюдение специфических требований безопасности для сетевых сервисов
            (крос сайт скриптинг , SQL иньекции и.т.д)
            Использование безопасных версий библиотек и фреймворков
            Прочие рекомендации ( Standard Annotation Language (SAL))


     www.pointlane.ru                                                                          18
Фаза: Проверка - Инструменты


BinScope Binary Analyzer
 • Убедиться что SDL соблюден при компиляции и сборке
MiniFuzz File Fuzzer
  • !exploitable
RegexFuzer
Attack Surface Analyzer
  • Анализ снимков системы
AppVerifier
  • Динамический анализ системы




   www.pointlane.ru                                     19
Фаза: Проверка

                              Проекти        Реали                                   Реагирова
Обучение
 Training      Requirements
               Требования      Design     Implementation   Verification
                                                           Проверка       Release
                                                                          Выпуск      Response
                              рование        зация                                      ние




Начните проверки как можно раньше. В идеале сразу же после стадии “code complete”.

            Начните планирование процесса реагирования на обнаружение уязвимостей в выпущенном
            продукте
            Повторно проверьте поверхность атаки. Все ли вы учли?
            MiniFuzz тестирование – файлами, вводом данных в интерфейсные элементы и код сетевой
            подсистемы
            При необходимости выполнить “security push” (с каждым разом все реже)
                Не является заменой работе над безопасностью в процессе разработки продукта
                Ревью кода
                Тестирование на проникновение
                Ревью дизайна и архитектуры в свете вновь обнаруженных угроз




     www.pointlane.ru                                                                        20
Фаза: Выпуск и план реагирования

                              Проекти      Реали                                  Реагирова
Обучение
 Training      Requirements
               Требования      Design   Implementation   Verification
                                                         Проверка       Release
                                                                        Выпуск     Response
                              рование      зация                                     ние




Создать политики поддержки продукта

            Создать план реагирования на инциденты безопасности - Software
            Security Incident Response Plan (SSIRP)
               Контакты и ресурсы внутри организации для адекватной реакции на
               обнаружение уязвимостей и защиту от атак
               24x7x365 контакт с 3-5 инженерами, 3-5 специалистами маркетинга, и
               1-2 менеджеров верхнего уровня
            Обратите внимание на необходимость выпуска экстренных обновлений
            вашего продукта из за уязвимостей в коде сторонних производителей
            включенном в ваш продукт. Так же может быть необходимость
            обновлять продукт после обновления ОС.



    www.pointlane.ru                                                                      21
Фаза: Выпуск – Final Security Review (FSR)

                             Проекти      Реали                                  Реагирова
Обучение
 Training     Requirements
              Требования      Design   Implementation   Verification
                                                        Проверка       Release
                                                                       Выпуск     Response
                             рование      зация                                     ние




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

            Получаем независимое заключение готовности продукта к выпуску
            FSR не является:
                Тестом на проникновение. Запрещено ломать и обновлять продукт.
                Первой проверкой безопасности продукта
                Процессом финальной подписи продукта и отправки его в тираж

       Ключевая концепция: Эта фаза не используется как точка для
       завершения всех задач пропущенных на предыдущих стадиях


    www.pointlane.ru                                                                     22
Фаза: Выпуск – Архив

                             Проекти      Реали                                  Реагирова
Обучение
 Training     Requirements
              Требования      Design   Implementation   Verification
                                                        Проверка       Release
                                                                       Выпуск     Response
                             рование      зация                                     ние




План реагирования на инциденты безопасности создан

            Документация для клиентов обновлена
            Создан централизованный архив исходного кода,
            символов, моделей атак RTM версии продукта



    www.pointlane.ru                                                                     23
Фаза: Реагирование

                             Проекти      Реали                                  Реагирова
Обучение
 Training     Requirements
              Требования      Design   Implementation   Verification
                                                        Проверка       Release
                                                                       Выпуск     Response
                             рование      зация                                     ние




Инцидент случился? Идем по заранее созданному плану.

            Выполняем активности по плану реагирования на
            инциденты безопасности и выпускаем обновления в
            соответствии с графиком релизов


    www.pointlane.ru                                                                     24
Что можно сделать уже сейчас

 • Создать каталог приложений
     • Не забываем про EUC
 • Произвести оценку рисков
     • Критичность для бизнеса
     • Обрабатываемая информация
 • Закрепить ответственность
     • В целом за безопасную разработку
     • Собственники и потребители приложений
 • Определиться и четко следовать стратегии


  www.pointlane.ru                             25
Что можно сделать уже сейчас

 • Провести хотя бы минимальное обучение для
    разработчиков
     • Code review
     • Static/dynamic analysis
     • Banned functions repository
     • Manual/automated pentest
     • Fuzzing
 • Создать и поддерживать прозрачный и открытый диалог
    между IT и ИБ
     •    Комитет по безопасной разработке в рамках комитета по ИТ/ИБ
 • Постоянный мониторинг и контроль KPI по приложениям

  www.pointlane.ru                                                      26
Где найти больше информации



  www.microsoft.com/sdl

  www.Secunia.org

  The Simplified Implementation of the SDL

  Блог об SDL




  www.pointlane.ru                           27
Спасибо за внимание!

                       Компания «Pointlane»
                       Москва, ул. Ильинка, д 4
                       Тел +7 (495) 233-65-08
                       consult@pointlane.ru
                       www.pointlane.ru

  www.pointlane.ru                                28

More Related Content

What's hot

Внутреннее качество в процедурах информационной безопасности
Внутреннее качество в процедурах информационной безопасностиВнутреннее качество в процедурах информационной безопасности
Внутреннее качество в процедурах информационной безопасностиAlex Babenko
 
SDL/SSDL для руководителей
SDL/SSDL для руководителейSDL/SSDL для руководителей
SDL/SSDL для руководителейValery Boronin
 
О PCI P2PE в общих чертах
О PCI P2PE в общих чертахО PCI P2PE в общих чертах
О PCI P2PE в общих чертахAlex Babenko
 
2015 02 пм качалин sdl
2015 02 пм качалин sdl2015 02 пм качалин sdl
2015 02 пм качалин sdlAlexey Kachalin
 
Опасная разработка. Дорожная карта движения к катастрофе
Опасная разработка. Дорожная карта движения к катастрофеОпасная разработка. Дорожная карта движения к катастрофе
Опасная разработка. Дорожная карта движения к катастрофеSelectedPresentations
 
PT Application Inspector SSDL Edition листовка
PT Application Inspector SSDL Edition листовкаPT Application Inspector SSDL Edition листовка
PT Application Inspector SSDL Edition листовкаValery Boronin
 
Обеспечение качества ПО: международный опыт
Обеспечение качества ПО: международный опытОбеспечение качества ПО: международный опыт
Обеспечение качества ПО: международный опытAleksey Lukatskiy
 
лекция безопасная разработка приложений
лекция  безопасная разработка приложенийлекция  безопасная разработка приложений
лекция безопасная разработка приложенийAlexander Kolybelnikov
 
ЛОМАТЬ И СТРОИТЬ, И СНОВА ЛОМАТЬ
ЛОМАТЬ И СТРОИТЬ, И СНОВА ЛОМАТЬЛОМАТЬ И СТРОИТЬ, И СНОВА ЛОМАТЬ
ЛОМАТЬ И СТРОИТЬ, И СНОВА ЛОМАТЬPositive Hack Days
 
Ломать и строить. PHDays 2015
Ломать и строить. PHDays 2015Ломать и строить. PHDays 2015
Ломать и строить. PHDays 2015Alexey Kachalin
 
Разработка ПО в рамках PCI DSS, как ее видит жуткий зануда
Разработка ПО в рамках PCI DSS, как ее видит жуткий занудаРазработка ПО в рамках PCI DSS, как ее видит жуткий зануда
Разработка ПО в рамках PCI DSS, как ее видит жуткий занудаRISSPA_SPb
 
Сделать безопасно и сертифицировано — ЗАО «ПМ» на DevCon 2015
Сделать безопасно и сертифицировано — ЗАО «ПМ» на DevCon 2015Сделать безопасно и сертифицировано — ЗАО «ПМ» на DevCon 2015
Сделать безопасно и сертифицировано — ЗАО «ПМ» на DevCon 2015Maxim Avdyunin
 
Алексей Лукацкий. SDLC – блажь, веяние моды или требование регуляторов?
Алексей Лукацкий. SDLC – блажь, веяние моды или требование регуляторов?Алексей Лукацкий. SDLC – блажь, веяние моды или требование регуляторов?
Алексей Лукацкий. SDLC – блажь, веяние моды или требование регуляторов?Positive Hack Days
 
Внедрение безопасной разработки (Infosecurity 2014)
Внедрение безопасной разработки (Infosecurity 2014)Внедрение безопасной разработки (Infosecurity 2014)
Внедрение безопасной разработки (Infosecurity 2014)Alexey Kachalin
 
Разработка средств защиты в России и на Западе: разность подходов
Разработка средств защиты в России и на Западе: разность подходовРазработка средств защиты в России и на Западе: разность подходов
Разработка средств защиты в России и на Западе: разность подходовAleksey Lukatskiy
 
Alexander Dmitriev - Практика построения ключевых процессов менеджмента инфор...
Alexander Dmitriev - Практика построения ключевых процессов менеджмента инфор...Alexander Dmitriev - Практика построения ключевых процессов менеджмента инфор...
Alexander Dmitriev - Практика построения ключевых процессов менеджмента инфор...UISGCON
 
Мониторинг своими руками
Мониторинг своими рукамиМониторинг своими руками
Мониторинг своими рукамиSergey Soldatov
 
пр Разработка комплекта документов по управлению ИБ (прозоров)
пр Разработка комплекта документов по управлению ИБ (прозоров)пр Разработка комплекта документов по управлению ИБ (прозоров)
пр Разработка комплекта документов по управлению ИБ (прозоров)Andrey Prozorov, CISM, CIPP/E, CDPSE. LA 27001
 
Контроль уязвимостей в программных приложениях
Контроль уязвимостей в программных приложенияхКонтроль уязвимостей в программных приложениях
Контроль уязвимостей в программных приложенияхjet_information_security
 
SOC Technologies and processes
SOC Technologies and processesSOC Technologies and processes
SOC Technologies and processesAlexey Kachalin
 

What's hot (20)

Внутреннее качество в процедурах информационной безопасности
Внутреннее качество в процедурах информационной безопасностиВнутреннее качество в процедурах информационной безопасности
Внутреннее качество в процедурах информационной безопасности
 
SDL/SSDL для руководителей
SDL/SSDL для руководителейSDL/SSDL для руководителей
SDL/SSDL для руководителей
 
О PCI P2PE в общих чертах
О PCI P2PE в общих чертахО PCI P2PE в общих чертах
О PCI P2PE в общих чертах
 
2015 02 пм качалин sdl
2015 02 пм качалин sdl2015 02 пм качалин sdl
2015 02 пм качалин sdl
 
Опасная разработка. Дорожная карта движения к катастрофе
Опасная разработка. Дорожная карта движения к катастрофеОпасная разработка. Дорожная карта движения к катастрофе
Опасная разработка. Дорожная карта движения к катастрофе
 
PT Application Inspector SSDL Edition листовка
PT Application Inspector SSDL Edition листовкаPT Application Inspector SSDL Edition листовка
PT Application Inspector SSDL Edition листовка
 
Обеспечение качества ПО: международный опыт
Обеспечение качества ПО: международный опытОбеспечение качества ПО: международный опыт
Обеспечение качества ПО: международный опыт
 
лекция безопасная разработка приложений
лекция  безопасная разработка приложенийлекция  безопасная разработка приложений
лекция безопасная разработка приложений
 
ЛОМАТЬ И СТРОИТЬ, И СНОВА ЛОМАТЬ
ЛОМАТЬ И СТРОИТЬ, И СНОВА ЛОМАТЬЛОМАТЬ И СТРОИТЬ, И СНОВА ЛОМАТЬ
ЛОМАТЬ И СТРОИТЬ, И СНОВА ЛОМАТЬ
 
Ломать и строить. PHDays 2015
Ломать и строить. PHDays 2015Ломать и строить. PHDays 2015
Ломать и строить. PHDays 2015
 
Разработка ПО в рамках PCI DSS, как ее видит жуткий зануда
Разработка ПО в рамках PCI DSS, как ее видит жуткий занудаРазработка ПО в рамках PCI DSS, как ее видит жуткий зануда
Разработка ПО в рамках PCI DSS, как ее видит жуткий зануда
 
Сделать безопасно и сертифицировано — ЗАО «ПМ» на DevCon 2015
Сделать безопасно и сертифицировано — ЗАО «ПМ» на DevCon 2015Сделать безопасно и сертифицировано — ЗАО «ПМ» на DevCon 2015
Сделать безопасно и сертифицировано — ЗАО «ПМ» на DevCon 2015
 
Алексей Лукацкий. SDLC – блажь, веяние моды или требование регуляторов?
Алексей Лукацкий. SDLC – блажь, веяние моды или требование регуляторов?Алексей Лукацкий. SDLC – блажь, веяние моды или требование регуляторов?
Алексей Лукацкий. SDLC – блажь, веяние моды или требование регуляторов?
 
Внедрение безопасной разработки (Infosecurity 2014)
Внедрение безопасной разработки (Infosecurity 2014)Внедрение безопасной разработки (Infosecurity 2014)
Внедрение безопасной разработки (Infosecurity 2014)
 
Разработка средств защиты в России и на Западе: разность подходов
Разработка средств защиты в России и на Западе: разность подходовРазработка средств защиты в России и на Западе: разность подходов
Разработка средств защиты в России и на Западе: разность подходов
 
Alexander Dmitriev - Практика построения ключевых процессов менеджмента инфор...
Alexander Dmitriev - Практика построения ключевых процессов менеджмента инфор...Alexander Dmitriev - Практика построения ключевых процессов менеджмента инфор...
Alexander Dmitriev - Практика построения ключевых процессов менеджмента инфор...
 
Мониторинг своими руками
Мониторинг своими рукамиМониторинг своими руками
Мониторинг своими руками
 
пр Разработка комплекта документов по управлению ИБ (прозоров)
пр Разработка комплекта документов по управлению ИБ (прозоров)пр Разработка комплекта документов по управлению ИБ (прозоров)
пр Разработка комплекта документов по управлению ИБ (прозоров)
 
Контроль уязвимостей в программных приложениях
Контроль уязвимостей в программных приложенияхКонтроль уязвимостей в программных приложениях
Контроль уязвимостей в программных приложениях
 
SOC Technologies and processes
SOC Technologies and processesSOC Technologies and processes
SOC Technologies and processes
 

Similar to Безопасная разработка приложений на практике

Req Labs'2011. Коммуникация нефункциональных требований
Req Labs'2011. Коммуникация нефункциональных требованийReq Labs'2011. Коммуникация нефункциональных требований
Req Labs'2011. Коммуникация нефункциональных требованийAlexander Kalouguine
 
Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...
Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...
Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...SQADays_2009_Piter
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU
 
Успешный проект внедрения Docsvision вертекс юнайтед
Успешный проект внедрения Docsvision вертекс юнайтедУспешный проект внедрения Docsvision вертекс юнайтед
Успешный проект внедрения Docsvision вертекс юнайтедDocsvision
 
Тестирование весна 2014 лекция 1
Тестирование весна 2014 лекция 1Тестирование весна 2014 лекция 1
Тестирование весна 2014 лекция 1Technopark
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summaryAnton Zhukov
 
Лекция 1 введение в тестирование ПО, основные понятия и принципы
Лекция 1 введение в тестирование ПО, основные понятия и принципыЛекция 1 введение в тестирование ПО, основные понятия и принципы
Лекция 1 введение в тестирование ПО, основные понятия и принципыSergey Chuburov
 
Вебинар Microsoft ALM (11.12.2012)
Вебинар Microsoft ALM (11.12.2012)Вебинар Microsoft ALM (11.12.2012)
Вебинар Microsoft ALM (11.12.2012)Dmitry Melikov
 
Articul Media: Производительность - неотъемлемая составляющая качества проекта
Articul Media: Производительность - неотъемлемая составляющая качества проектаArticul Media: Производительность - неотъемлемая составляющая качества проекта
Articul Media: Производительность - неотъемлемая составляющая качества проектаArticul Media
 
Бизнес и системный анализ весна 2013 лекция 6
Бизнес и системный анализ весна 2013 лекция 6Бизнес и системный анализ весна 2013 лекция 6
Бизнес и системный анализ весна 2013 лекция 6Technopark
 
Тестирование осень 2013 лекция 1
Тестирование осень 2013 лекция 1Тестирование осень 2013 лекция 1
Тестирование осень 2013 лекция 1Technopark
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Организация тестирования встроенных систем в компании «с нуля»
Организация тестирования встроенных систем в компании «с нуля»Организация тестирования встроенных систем в компании «с нуля»
Организация тестирования встроенных систем в компании «с нуля»Vladimir Sklyar
 
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...QAFest
 
Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmapKrystsinaDurovich
 
Внедрение практик юзабилити в процесс разработки ПО в соответствии с СMMI
Внедрение практик юзабилити в процесс разработки ПО в соответствии с СMMIВнедрение практик юзабилити в процесс разработки ПО в соответствии с СMMI
Внедрение практик юзабилити в процесс разработки ПО в соответствии с СMMIDmitry Pavlov
 
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUAREТехники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARESQALab
 

Similar to Безопасная разработка приложений на практике (20)

Req Labs'2011. Коммуникация нефункциональных требований
Req Labs'2011. Коммуникация нефункциональных требованийReq Labs'2011. Коммуникация нефункциональных требований
Req Labs'2011. Коммуникация нефункциональных требований
 
Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...
Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...
Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
 
Успешный проект внедрения Docsvision вертекс юнайтед
Успешный проект внедрения Docsvision вертекс юнайтедУспешный проект внедрения Docsvision вертекс юнайтед
Успешный проект внедрения Docsvision вертекс юнайтед
 
Тестирование весна 2014 лекция 1
Тестирование весна 2014 лекция 1Тестирование весна 2014 лекция 1
Тестирование весна 2014 лекция 1
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
 
Лекция 1 введение в тестирование ПО, основные понятия и принципы
Лекция 1 введение в тестирование ПО, основные понятия и принципыЛекция 1 введение в тестирование ПО, основные понятия и принципы
Лекция 1 введение в тестирование ПО, основные понятия и принципы
 
Вебинар Microsoft ALM (11.12.2012)
Вебинар Microsoft ALM (11.12.2012)Вебинар Microsoft ALM (11.12.2012)
Вебинар Microsoft ALM (11.12.2012)
 
Articul Media: Производительность - неотъемлемая составляющая качества проекта
Articul Media: Производительность - неотъемлемая составляющая качества проектаArticul Media: Производительность - неотъемлемая составляющая качества проекта
Articul Media: Производительность - неотъемлемая составляющая качества проекта
 
Бизнес и системный анализ весна 2013 лекция 6
Бизнес и системный анализ весна 2013 лекция 6Бизнес и системный анализ весна 2013 лекция 6
Бизнес и системный анализ весна 2013 лекция 6
 
Тестирование осень 2013 лекция 1
Тестирование осень 2013 лекция 1Тестирование осень 2013 лекция 1
Тестирование осень 2013 лекция 1
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Организация тестирования встроенных систем в компании «с нуля»
Организация тестирования встроенных систем в компании «с нуля»Организация тестирования встроенных систем в компании «с нуля»
Организация тестирования встроенных систем в компании «с нуля»
 
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
 
Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmap
 
Внедрение практик юзабилити в процесс разработки ПО в соответствии с СMMI
Внедрение практик юзабилити в процесс разработки ПО в соответствии с СMMIВнедрение практик юзабилити в процесс разработки ПО в соответствии с СMMI
Внедрение практик юзабилити в процесс разработки ПО в соответствии с СMMI
 
Мировые тренды развития SOC
Мировые тренды развития SOCМировые тренды развития SOC
Мировые тренды развития SOC
 
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUAREТехники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
 
PMIufa 2012-03-01
PMIufa 2012-03-01PMIufa 2012-03-01
PMIufa 2012-03-01
 

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

  • 1. Разработка безопасных приложений на практике Второй Евразийский CIO Конгресс
  • 2. О чем будем говорить • Кому нужна разработка безопасных приложений • Выгоды от разработки безопасных приложений • Основные этапы разработки безопасных приложений • Разработка безопасных приложений на основе Microsoft SDL • Как быстро начать внедрять Security Development Lifecycle • Демонстрация инструментов разработки безопасных приложений www.pointlane.ru 2
  • 3. Почему именно разработка безопасного ПО? • Облака, виртуализация • Статистика из практики тестов на проникновение • 4 из 10 web приложений с доступом из Internet содержат уязвимости уровня high priority • 7 из 10 приложений в корпоративных сетях содержат уязвимости уровня high priority и critical Вывод: надо бороться с причиной, а не со следствием www.pointlane.ru 3
  • 4. Кому нужна безопасная разработка • Компании профессионально занимающиеся разработкой программного обеспечения • Руководители ИТ в крупных компаниях, поддерживающих и развивающих собственные приложения • Спросите российских вендоров: разрабатывают ли они безопасное ПО и как они это делают? • Проектным командам, разрабатывающим продукт или решения в рамках проекта www.pointlane.ru 4
  • 5. Стратегии разработки • «Найти и обезвредить» • Сканирование приложений на уязвимости • Тестирование на проникновение • «Защитить и отложить» • Использование WAF, application-level proxy • Изначально безопасная разработка • Интеграция инструментов и практик в жизненный цикл разработки ПО www.pointlane.ru 5
  • 6. Стратегии разработки Источник: Aberdeen Group www.pointlane.ru 6
  • 7. Выгоды от разработки безопасного ПО Относительная стоимость устранения • Расходы на команду 30 ошибок (разработчики, Выпуск 25 администраторы, тестировщики) в ходе 20 устранения ошибок 15 (уязвимостей) 10 • Потеря производительности 5 бизнес-подразделений 0 Требования/ Интеграция/ Финальное После Кодирование Архитектура Тестирование тестирование выпуска компонент Источник: National Institute of Standards and Technology www.pointlane.ru 7
  • 8. Что говорят аналитики • Исследование Aberdeen: • Предотвращение одной уязвимости почти полностью покрывает годовые затраты на повышение безопасности разработки • Предотвратить проблему с безопасностью в 4 раза дешевле чем разбираться с ее последствиями • Исследование Forrester: • Разработка безопасного ПО еще не стала широко распространенной практикой • Компании применяющие методы SDL демонстрируют гораздо более быстрый возврат инвестиций www.pointlane.ru 8
  • 9. Выход в облака: OWASP Top 10 threats • Injections • Cross-site scripting • Authentication and session management • Direct object references • Cross-site request forgery • Security misconfiguration • Insecure cryptographic storage • Failure to restrict URL access • Insufficient transport layer protection • Invalidated redirects and forwards www.pointlane.ru 9
  • 10. История Microsoft SDL Процесс безопасной разработки прошел многолетнее тестирование и шлифовку в рамках Microsoft и других компаний. www.pointlane.ru 10
  • 11. Этапы применения SDL SDL – обязательная политика в Майкрософт с 2004 г. Обуче Требо Проекти Реали Провер Реагиро Выпуск ние вания рование зация ка вание Начальное Определение Моделирован Выбор Динамическое План Выполнение владельца от ие угроз инструментов тестирование реагирования плана обучение бизнеса и fuzzing Анализ Блокирование Заключитель- реагирования по основам Анализ рисков опасных запрещенных Проверка ный анализ на инциденты безопасност безопасности областей функций моделей угроз безопасности и и конфиден- Статический и опасных Архив циальности анализ областей выпусков Определение требований к качеству Обучение Технология и процесс Ответственность Постоянные улучшения процессов www.pointlane.ru 11
  • 12. Фаза: обучение Проекти Реали Реагирова Обучение Training Requirements Требования Design Implementation Verification Проверка Release Выпуск Response рование зация ние Обследовать подготовленность организации по темам безопасности и защиты данных. При необходимости (то есть в любом случае!) создать стандартные курсы обучения. • Разработать критерии качества программы обучения • Содержимое должно покрывать темы безопасного дизайна, разработки, тестирования и защиты данных • Определить частоту тренингов • Разработчик должен пройти не менее n тренингов в год • Определить минимальный приемлемый порог тренингов в группе разработки • 80% процентов технического персонала должны пройти минимальные обязательные тренинги до выпуска RTM версии продукта www.pointlane.ru 12
  • 13. Источники для обучения Как написать безопасный код на С++, Java, Perl, PHP, ASP. NET Защищенный код для Windows Vista Игра «Spot the vuln» 10 уязвимостей веб проектов - OWASP Top Ten Курсы SANS Книга по SDL Упрощенный SDL www.pointlane.ru 13
  • 14. Фаза: Требования Проекти Реали Реагирова Обучение Training Requirements Требования Design Implementation Verification Проверка Release Выпуск Response рование зация ние Возможность заложить безопасный фундамент для проекта • Команда разработки определяет лидеров и консультантов по темам безопасности • Назначается ответственный за безопасность • Ответственный проверяет план разработки продукта, рекомендует изменения или устанавливает дополнительные требования к безопасности продукта • Определить приоритет, процедуру отслеживания и исправления ошибок (bug tracking/job assignment system) • Определить и задокументировать порог отбраковки продукта по ошибкам связанным с безопасностью и защитой данных www.pointlane.ru 14
  • 15. Фаза: Проектирование Проекти Реали Реагирова Обучение Training Requirements Требования Design Implementation Verification Проверка Release Выпуск Response рование зация ние Определить и задокументировать архитектуру безопасности и идентифицировать критические компоненты безопасности • Минимизировать поверхность атаки. • Ограничить ее установками по умолчанию (отключить ненужные сервисы, использовать принцип минимальных привилегий • Определить критерии выпуска обновления продукта в связи с изменением в безопасности продукта • Результаты автоматизированного тестирования атак • Устаревание криптографических алгоритмов или замена слабых алгоритмов • Моделирование угроз • Систематический анализ свойств продукта и его архитектуры с точки зрения безопасности • Определить угрозы и меры снижения угроз www.pointlane.ru 15
  • 16. Моделирование угроз • Продумать требования к безопасности продукта, сценарии Spoofing использования. Tampering • Идентифицировать Repudiation классы пользователей. Denial of Service • Ожидаемое поведение.of privilege Elevation www.pointlane.ru 16
  • 17. SDL Threat Modeling Tool • Обучает созданию диаграмм угроз • Анализ угроз и мер защиты • Интеграция с багтреккером • Отчеты по угрозам и уязвимостям Формализует и упрощает моделирование угроз так чтобы им мог заниматься архитектор www.pointlane.ru 17
  • 18. Фаза: Реализация Проекти Реали Реагирова Обучение Training Requirements Требования Design Implementation Verification Проверка Release Выпуск Response рование зация ние Разработка кода и ревью процессов, документации и инструментов необходимых для безопасного развертывания и эксплуатации разрабатываемого продукта Спецификация утвержденных инструментов и их аналогов Статический анализ (/analyze (PREfast), FXCop, CAT.NET) Поиск случаев использования запрещенных API Применение механизмов защиты предоставляемых ОС (NX, ASLR и HeapTermination) Соблюдение специфических требований безопасности для сетевых сервисов (крос сайт скриптинг , SQL иньекции и.т.д) Использование безопасных версий библиотек и фреймворков Прочие рекомендации ( Standard Annotation Language (SAL)) www.pointlane.ru 18
  • 19. Фаза: Проверка - Инструменты BinScope Binary Analyzer • Убедиться что SDL соблюден при компиляции и сборке MiniFuzz File Fuzzer • !exploitable RegexFuzer Attack Surface Analyzer • Анализ снимков системы AppVerifier • Динамический анализ системы www.pointlane.ru 19
  • 20. Фаза: Проверка Проекти Реали Реагирова Обучение Training Requirements Требования Design Implementation Verification Проверка Release Выпуск Response рование зация ние Начните проверки как можно раньше. В идеале сразу же после стадии “code complete”. Начните планирование процесса реагирования на обнаружение уязвимостей в выпущенном продукте Повторно проверьте поверхность атаки. Все ли вы учли? MiniFuzz тестирование – файлами, вводом данных в интерфейсные элементы и код сетевой подсистемы При необходимости выполнить “security push” (с каждым разом все реже) Не является заменой работе над безопасностью в процессе разработки продукта Ревью кода Тестирование на проникновение Ревью дизайна и архитектуры в свете вновь обнаруженных угроз www.pointlane.ru 20
  • 21. Фаза: Выпуск и план реагирования Проекти Реали Реагирова Обучение Training Requirements Требования Design Implementation Verification Проверка Release Выпуск Response рование зация ние Создать политики поддержки продукта Создать план реагирования на инциденты безопасности - Software Security Incident Response Plan (SSIRP) Контакты и ресурсы внутри организации для адекватной реакции на обнаружение уязвимостей и защиту от атак 24x7x365 контакт с 3-5 инженерами, 3-5 специалистами маркетинга, и 1-2 менеджеров верхнего уровня Обратите внимание на необходимость выпуска экстренных обновлений вашего продукта из за уязвимостей в коде сторонних производителей включенном в ваш продукт. Так же может быть необходимость обновлять продукт после обновления ОС. www.pointlane.ru 21
  • 22. Фаза: Выпуск – Final Security Review (FSR) Проекти Реали Реагирова Обучение Training Requirements Требования Design Implementation Verification Проверка Release Выпуск Response рование зация ние Проверить продукт на соответствие требованиям SDL и отсутствие известных уязвимостей Получаем независимое заключение готовности продукта к выпуску FSR не является: Тестом на проникновение. Запрещено ломать и обновлять продукт. Первой проверкой безопасности продукта Процессом финальной подписи продукта и отправки его в тираж Ключевая концепция: Эта фаза не используется как точка для завершения всех задач пропущенных на предыдущих стадиях www.pointlane.ru 22
  • 23. Фаза: Выпуск – Архив Проекти Реали Реагирова Обучение Training Requirements Требования Design Implementation Verification Проверка Release Выпуск Response рование зация ние План реагирования на инциденты безопасности создан Документация для клиентов обновлена Создан централизованный архив исходного кода, символов, моделей атак RTM версии продукта www.pointlane.ru 23
  • 24. Фаза: Реагирование Проекти Реали Реагирова Обучение Training Requirements Требования Design Implementation Verification Проверка Release Выпуск Response рование зация ние Инцидент случился? Идем по заранее созданному плану. Выполняем активности по плану реагирования на инциденты безопасности и выпускаем обновления в соответствии с графиком релизов www.pointlane.ru 24
  • 25. Что можно сделать уже сейчас • Создать каталог приложений • Не забываем про EUC • Произвести оценку рисков • Критичность для бизнеса • Обрабатываемая информация • Закрепить ответственность • В целом за безопасную разработку • Собственники и потребители приложений • Определиться и четко следовать стратегии www.pointlane.ru 25
  • 26. Что можно сделать уже сейчас • Провести хотя бы минимальное обучение для разработчиков • Code review • Static/dynamic analysis • Banned functions repository • Manual/automated pentest • Fuzzing • Создать и поддерживать прозрачный и открытый диалог между IT и ИБ • Комитет по безопасной разработке в рамках комитета по ИТ/ИБ • Постоянный мониторинг и контроль KPI по приложениям www.pointlane.ru 26
  • 27. Где найти больше информации www.microsoft.com/sdl www.Secunia.org The Simplified Implementation of the SDL Блог об SDL www.pointlane.ru 27
  • 28. Спасибо за внимание! Компания «Pointlane» Москва, ул. Ильинка, д 4 Тел +7 (495) 233-65-08 consult@pointlane.ru www.pointlane.ru www.pointlane.ru 28