Upload
badoo-development
View
14.372
Download
0
Embed Size (px)
DESCRIPTION
Презентация с первой конференции Badoo для тестировщиков LoveQA.
Citation preview
Системы обнаружения уязвимостей в web
приложении на примере Badoo
Еремин Станислав, Badoo Development
Безопасность? Зачем?
Ручное тестирование
- данные от пользователя
- негативный сценарий
- code review
Глобальные проекты
- Internal security
- php-fpm
- AntiCSRF
- AntiXSS
Автоматическое тестирование
- Selenium
- сканеры уязвимостей
Сканеры уязвимостей и алгоритмы их работы
1) создаем дерево сайта
2) вычленяем параметры
3) добавляем к ним шаблоны
4) проверяем по базе
Настройка окружения
XSS (Cross Site Scripting)http://somesite.com/test.php?title=MyTitle<?phpecho “<title>” . $_GET[“title”] . “</title>”;?>
<title><script>alert(1);</script></title>
<title><script>alert(1);</script></title>
<title></title><script>alert(1);</script></title>
SQL injectionhttp://somesite.com/index.php?id=1
…db->query(“select * from table where id = “ . $_GET[‘id’]);
...
- спецсимволы: ‘ , “ , \ …- логические запросы:
… and 1=1 TRUE… and 1=2 FALSE
Сканеры
skipfish
ПЛЮСЫ МИНУСЫ
подробное дерево проекта
долго работает
простота использования слабый анализатор js
много настроек много ложных срабатываний
Nikto
ПЛЮСЫ МИНУСЫ
база стандартных файлов и путей
много ложных срабатываний
быстро работает нет анализатора js
узкая специализация узкая специализация
ПЛЮСЫ МИНУСЫ
основа для вашего сканера
сложный в освоении
много готовых плагинов
подробные описания дефолтных багов
ПЛЮСЫ МИНУСЫ
многофункциональность цена
мало ложных срабатываний
неизвестные алгоритмы
умный анализатор js
Таблица сравнения
Цена Функционал Правильность срабатываний
Удобство использования
skipfish free простые уязвимости, дерево
много ложных срабатываний
практичесик автономен в работе
nikto/wikto free сканер директорий и файлов
сильно зависит от факторов настройки
мало настроек, основы
Acunetix $1000-$10000+ free trial
выгуливает собаку 99%
мало офф документации
w3af free фреймворк 50/50 Свои .py скрипты
1. проверяй уязвимости руками!
2. учись сам находить, анализировать и использовать их!
3. знай узкие места в своем приложении!
4. понимай значение сканеров!