Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo

1

Безопасность веб-приложений сегодня Дмитрий Евтеев (Позитив Текнолоджиз)

2

По данным компании  Positive Technologies  более 80% сайтов содержат критические уязвимости вероятность автоматизированного заражения страниц уязвимого веб-приложения вредоносным кодом составляет сегодня приблизительно 15-20% http://ptsecurity.ru/analytics.asp

3

Распределение веб-уязвимостей по данным  VERACODE http://info.veracode.com/rs/veracode/images/soss-v3.pdf

4

Что такое уязвимость типа «Внедрение операторов  SQL » Web- сервер СУБД http://web/? id=6329&print=Y … . SELECT * from news where id = 6329 … .

5

Что такое уязвимость типа «Внедрение операторов  SQL » Web- сервер СУБД http://web/? id=6329+union+select+id,pwd,0+from... … . SELECT * from news where id = 6329 union select id,pwd,0 from… … .

6

Что такое уязвимость типа «Межсайтовое выполнение сценариев» Web- сервер http://web/?search=secureweb … print &quot;<b>secureweb</b>&quot;; …

7

Что такое уязвимость типа «Межсайтовое выполнение сценариев» Web- сервер 1.  fuzzing,  поиск  уязвимости 2.  Передача «заряженной» ссылки : http://web/?search=secureweb&quot;><script>...</script> 3. Переход по ссылке 4. Выполнение исполняемого кода в браузере пользователя 5. Например, передача  Web-сессии (cookies) 6. Работа с Web-приложением от  имени атакованного пользователя

8

По данным всех авторитетных источников, наиболее распространено использование следующих уязвимостей : Внедрение операторов  SQL Межсайтовое выполнение сценариев Выход за каталог веб-сервера (и  Local/Remote File Including ) Подбор Выполнение команд на сервере

9

Распределение использования веб-уязвимостей по данным подразделения  IBM X-Force http://public.dhe.ibm.com/common/ssi/ecm/en/wgl03007usen/WGL03007USEN.PDF

10

Использование уязвимости  SQL Injection http://public.dhe.ibm.com/common/ssi/ecm/en/wgl03007usen/WGL03007USEN.PDF

11

Как «рождаются» уязвимости http://info.veracode.com/rs/veracode/images/soss-v3.pdf

12

Как «рождаются» уязвимости (2) Более 40% паролей можно взломать из-за простоты Статистика по паролям низкой стойкости у администраторов : Данные основываются   на анализе более 185 тысяч паролей пользователей ( http://www.ptsecurity.ru/download/PT-Metrics-Passwords-2009.pdf ).

13

Как «рождаются» уязвимости (3) Распределение уязвимостей согласно классам WASC WSTCv2 (обобщенные результаты по данным  Positive Technologies  за 2009 год) http://ptsecurity.ru/analytics.asp

14

Какие цели преследует злоумышленник взламывая ваш сайт ? Black SEO Распространение вредоносного кода Кража и подмена информации Проведение атаки типа  DoS Использование сайта в качестве плацдарма для проведения атак на внутренние ресурсы компании Ради шутки  

15

Пути компрометации данных держателей карт по данным  VERIZON http://www.verizonbusiness.com/resources/reports/rp_data-breach-investigations-report-2011_en_xg.pdf

16

Взломы ради шуток… Статистика дефейсов  zone-h.org  ( http://zone-h.org/stats/ymd )

17

Какие методы использует злоумышленник при взломе вашего сайта ? Уязвимости «нулевого» дня Тестирование функций  (fuzzing) Поиск уязвимостей на основе анализа исходного кода, используемого приложения на вашем сайте (включая его компоненты) Взлом вашего сайта путем проведения атаки на другие сайты, расположенные на  shared- хостинге

18

Подходы по снижению угроз Директивный подход ( Directive) Software Development Life Cycle  ( SDLC ), «бумажная безопасность», выстраивание высокоуровневых процессов Детективный подход ( Detective) Тестирование функций (black/white-box), фаззинг (fuzzing), статический/динамический/ручной анализ исходного кода Профилактический подход ( Preventive) Intrusion Detection/Prevention Systems (IDS/IPS) ,  Web Application Firewall  ( WAF ) Корректирующий подход ( Corrective) Ведение журналов событий, обработка инцидентов Подход к восстановлению   ( Recovery) Резервное копирование, стратегия обеспечения непрерывности бизнес-процессов ( BS25999 )

19

Современный (детективный) подход обнаружения уязвимостей в веб-приложениях

20

А может  WAF?

21

Что такое  Web Application Firewall (WAF) http:// server /?id=6329&print=Y АТАКА WAF Webserver http:// server /?id=5351 http:// server /?id=8234 http:// server /? id=&quot;><script>... http:// server /?id=1+union+select... http:// server /? id=/../../../etc/passwd Нормализация данных Decode HTML entities (e.g. &#99;, &quot;, &#xAA;) Escaped characters (e.g. , 01, AA, AABB) Null byte string termination ... Поиск сигнатуры   /(sel)(ect.+fr)(om)/is /(uni)(on.+sel)(ect)/is ...

22

«Ложка дегтя в бочке меда» За универсальность фильтров приходится расплачиваться ошибками первого и второго рода Не все фильтры одинаково полезны Ряд уязвимостей в веб-приложениях нельзя выявить сигнатурным путем Появление уязвимостей  0day!

23

Уязвимость уязвимости рознь Неполный список администраторов  такого приложения :   **admin, user**, r**t , …

24

Трудности обнаружения наиболее распространенных уязвимостей Внедрение операторов  SQL Огромное разнообразие СУБД (гибкость языка  SQL ) Межсайтовое выполнение сценариев Помимо постоянного развития браузеров –  Dom-based XSS Выход за каталог («выше») Local File Including ,  PHP wrappers,  замена  null-byte Remote File Including , когда требуется «полный»  URL

25

PHPIDS??! Мое приложение сможет работать? REGEXP: (?:%c0%ae)|(?:(?:|)(home|conf|usr|etc|proc|opt|s?bin|local|dev|tmp|kern|[br]oot|sys|system|windows|winnt|program|%[a-z_-]{3,}%)(?:|))|(?:(?:|)inetpub|localstartasp|bootini)

26

ModSecurity??! Универсальный способ проведения  SQL- инъекций с обходом фильтров по умолчанию /*!sql-code*/  и /*! 12345 sql-code*/ XSS over SQLi /?id=-1/*!+union+select+' %3Cscri '+' pt%3Eal '+' ert(1)%3C/script%3E ',2,3*/ Выполнение команд на сервере over unserialize(), пример :  O:8:&quot;Database&quot;:1:{s:8:&quot;shutdown&quot;;a:2:{i:0;s:6:&quot; system &quot;;i:1;s:2:&quot; ls &quot;;}} cookie[sessid]=Tzo4OiJEYXRhYmFzZSI6MTp7czo4OiJzaHV0ZG93biI7YToyOntpOjA7czo2OiJzeXN0ZW0iO2k6MTtzOjI6ImxzIjt9fQ0KDQo= HTTP Parameter Pollution ,  HTTP Parameter Fragmentation , замена  null-byte ,  etc

27

Защита веб-приложений должна быть комплексной Требования к ИБ Архитектура Разработка ( SDLC) Внедрение ( CIS, etc) Поддержка Оценка защищенности Превентивный контроль

28

Эффективное использование WAF (Virtual Patching)

29

Эффективное использование WAF (Virtual Patching) Система контроля защищенности ( eq MaxPatrol ) Обнаружение уязвимости, решение по устранению, правила фильтрации для  Web Application Firewall Пример : <Location /injectblind.asp> SecRule ARGS:id &quot;!^{1,8}$&quot; &quot;deny,log,status:403,msg:'just-in-time patching #1'&quot; </Location> WAF (eq ModSecurity),  закрытие вектора атаки до момента устранения

30

Что нас ждет впереди ? Перерождение известных уязвимостей (фрагментированные  SQL -инъекции,  HTML5 ) Развитие комплексных и более сложных атак  ( одновременное использование уязвимостей кода и среды функционирования ) Развитие направления уязвимостей типа « Race Condition » Массовые атаки на веб-приложения станут повседневной нормой

31

Спасибо за внимание! [email_address] http://devteev.blogspot.com

More Related Content

Безопасность веб-приложений сегодня

  • 1. Безопасность веб-приложений сегодня Дмитрий Евтеев (Позитив Текнолоджиз)
  • 2. По данным компании Positive Technologies более 80% сайтов содержат критические уязвимости вероятность автоматизированного заражения страниц уязвимого веб-приложения вредоносным кодом составляет сегодня приблизительно 15-20% http://ptsecurity.ru/analytics.asp
  • 3. Распределение веб-уязвимостей по данным VERACODE http://info.veracode.com/rs/veracode/images/soss-v3.pdf
  • 4. Что такое уязвимость типа «Внедрение операторов SQL » Web- сервер СУБД http://web/? id=6329&print=Y … . SELECT * from news where id = 6329 … .
  • 5. Что такое уязвимость типа «Внедрение операторов SQL » Web- сервер СУБД http://web/? id=6329+union+select+id,pwd,0+from... … . SELECT * from news where id = 6329 union select id,pwd,0 from… … .
  • 6. Что такое уязвимость типа «Межсайтовое выполнение сценариев» Web- сервер http://web/?search=secureweb … print &quot;<b>secureweb</b>&quot;; …
  • 7. Что такое уязвимость типа «Межсайтовое выполнение сценариев» Web- сервер 1. fuzzing, поиск уязвимости 2. Передача «заряженной» ссылки : http://web/?search=secureweb&quot;><script>...</script> 3. Переход по ссылке 4. Выполнение исполняемого кода в браузере пользователя 5. Например, передача Web-сессии (cookies) 6. Работа с Web-приложением от имени атакованного пользователя
  • 8. По данным всех авторитетных источников, наиболее распространено использование следующих уязвимостей : Внедрение операторов SQL Межсайтовое выполнение сценариев Выход за каталог веб-сервера (и Local/Remote File Including ) Подбор Выполнение команд на сервере
  • 9. Распределение использования веб-уязвимостей по данным подразделения IBM X-Force http://public.dhe.ibm.com/common/ssi/ecm/en/wgl03007usen/WGL03007USEN.PDF
  • 10. Использование уязвимости SQL Injection http://public.dhe.ibm.com/common/ssi/ecm/en/wgl03007usen/WGL03007USEN.PDF
  • 11. Как «рождаются» уязвимости http://info.veracode.com/rs/veracode/images/soss-v3.pdf
  • 12. Как «рождаются» уязвимости (2) Более 40% паролей можно взломать из-за простоты Статистика по паролям низкой стойкости у администраторов : Данные основываются на анализе более 185 тысяч паролей пользователей ( http://www.ptsecurity.ru/download/PT-Metrics-Passwords-2009.pdf ).
  • 13. Как «рождаются» уязвимости (3) Распределение уязвимостей согласно классам WASC WSTCv2 (обобщенные результаты по данным Positive Technologies за 2009 год) http://ptsecurity.ru/analytics.asp
  • 14. Какие цели преследует злоумышленник взламывая ваш сайт ? Black SEO Распространение вредоносного кода Кража и подмена информации Проведение атаки типа DoS Использование сайта в качестве плацдарма для проведения атак на внутренние ресурсы компании Ради шутки 
  • 15. Пути компрометации данных держателей карт по данным VERIZON http://www.verizonbusiness.com/resources/reports/rp_data-breach-investigations-report-2011_en_xg.pdf
  • 16. Взломы ради шуток… Статистика дефейсов zone-h.org ( http://zone-h.org/stats/ymd )
  • 17. Какие методы использует злоумышленник при взломе вашего сайта ? Уязвимости «нулевого» дня Тестирование функций (fuzzing) Поиск уязвимостей на основе анализа исходного кода, используемого приложения на вашем сайте (включая его компоненты) Взлом вашего сайта путем проведения атаки на другие сайты, расположенные на shared- хостинге
  • 18. Подходы по снижению угроз Директивный подход ( Directive) Software Development Life Cycle ( SDLC ), «бумажная безопасность», выстраивание высокоуровневых процессов Детективный подход ( Detective) Тестирование функций (black/white-box), фаззинг (fuzzing), статический/динамический/ручной анализ исходного кода Профилактический подход ( Preventive) Intrusion Detection/Prevention Systems (IDS/IPS) , Web Application Firewall ( WAF ) Корректирующий подход ( Corrective) Ведение журналов событий, обработка инцидентов Подход к восстановлению ( Recovery) Резервное копирование, стратегия обеспечения непрерывности бизнес-процессов ( BS25999 )
  • 19. Современный (детективный) подход обнаружения уязвимостей в веб-приложениях
  • 21. Что такое Web Application Firewall (WAF) http:// server /?id=6329&print=Y АТАКА WAF Webserver http:// server /?id=5351 http:// server /?id=8234 http:// server /? id=&quot;><script>... http:// server /?id=1+union+select... http:// server /? id=/../../../etc/passwd Нормализация данных Decode HTML entities (e.g. &#99;, &quot;, &#xAA;) Escaped characters (e.g. , 01, AA, AABB) Null byte string termination ... Поиск сигнатуры /(sel)(ect.+fr)(om)/is /(uni)(on.+sel)(ect)/is ...
  • 22. «Ложка дегтя в бочке меда» За универсальность фильтров приходится расплачиваться ошибками первого и второго рода Не все фильтры одинаково полезны Ряд уязвимостей в веб-приложениях нельзя выявить сигнатурным путем Появление уязвимостей 0day!
  • 23. Уязвимость уязвимости рознь Неполный список администраторов такого приложения : **admin, user**, r**t , …
  • 24. Трудности обнаружения наиболее распространенных уязвимостей Внедрение операторов SQL Огромное разнообразие СУБД (гибкость языка SQL ) Межсайтовое выполнение сценариев Помимо постоянного развития браузеров – Dom-based XSS Выход за каталог («выше») Local File Including , PHP wrappers, замена null-byte Remote File Including , когда требуется «полный» URL
  • 25. PHPIDS??! Мое приложение сможет работать? REGEXP: (?:%c0%ae)|(?:(?:|)(home|conf|usr|etc|proc|opt|s?bin|local|dev|tmp|kern|[br]oot|sys|system|windows|winnt|program|%[a-z_-]{3,}%)(?:|))|(?:(?:|)inetpub|localstartasp|bootini)
  • 26. ModSecurity??! Универсальный способ проведения SQL- инъекций с обходом фильтров по умолчанию /*!sql-code*/ и /*! 12345 sql-code*/ XSS over SQLi /?id=-1/*!+union+select+' %3Cscri '+' pt%3Eal '+' ert(1)%3C/script%3E ',2,3*/ Выполнение команд на сервере over unserialize(), пример : O:8:&quot;Database&quot;:1:{s:8:&quot;shutdown&quot;;a:2:{i:0;s:6:&quot; system &quot;;i:1;s:2:&quot; ls &quot;;}} cookie[sessid]=Tzo4OiJEYXRhYmFzZSI6MTp7czo4OiJzaHV0ZG93biI7YToyOntpOjA7czo2OiJzeXN0ZW0iO2k6MTtzOjI6ImxzIjt9fQ0KDQo= HTTP Parameter Pollution , HTTP Parameter Fragmentation , замена null-byte , etc
  • 27. Защита веб-приложений должна быть комплексной Требования к ИБ Архитектура Разработка ( SDLC) Внедрение ( CIS, etc) Поддержка Оценка защищенности Превентивный контроль
  • 29. Эффективное использование WAF (Virtual Patching) Система контроля защищенности ( eq MaxPatrol ) Обнаружение уязвимости, решение по устранению, правила фильтрации для Web Application Firewall Пример : <Location /injectblind.asp> SecRule ARGS:id &quot;!^{1,8}$&quot; &quot;deny,log,status:403,msg:'just-in-time patching #1'&quot; </Location> WAF (eq ModSecurity), закрытие вектора атаки до момента устранения
  • 30. Что нас ждет впереди ? Перерождение известных уязвимостей (фрагментированные SQL -инъекции, HTML5 ) Развитие комплексных и более сложных атак ( одновременное использование уязвимостей кода и среды функционирования ) Развитие направления уязвимостей типа « Race Condition » Массовые атаки на веб-приложения станут повседневной нормой
  • 31. Спасибо за внимание! [email_address] http://devteev.blogspot.com