SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Как начать тестировать безопасность уже
сегодня
Сергей Белов
Mail.Ru Group
QA MeetUp - 6 июля, Нижний Новгород
Intro
Ситуация:
1) У вас есть web приложение
2) Вы для него уже пишете автотесты
3) Но никто не тестирует безопасность
Задача:
Начать тестировать безопасность :)
Как вообще происходит поиск уязвимостей?
1) Анализ приложения и бизнес логики
2) Сбор параметров для взаимодействия (Client Side - javascript sinks &
sources / Server side - HTTP)
3) Отправка неожидаемых данных, которые могут: изменить чужие данные,
нарушить конфиденциальность, вызвать отказ в обслуживании
Что мы сделаем сегодня
1) Изучим 6 видов уязвимостей
2) Возьмем готовые автотесты
3) Превратим их в сканер безопасности
Insecure Direct Object References (IDOR)
Insecure Direct Object References (IDOR)
Позволяет получить доступ к объектам (каким-то данным) из-за проблем
ACL.
1) https://example.com/document/123 - документ пользователя A
2) https://example.com/document/124 - документ пользователя B
Проблема возникает на моменте, когда пользователь A, узнав
(подобрав) ID документа пользователя B, может получить к нему доступ
(чтение/редактирование/удаление).
Как внедрить такие проверки в автотесты?
1) После сохранения / добавления данных запрашивать не ID объекта в
ответе, а объект другого пользователя (заранее его захардкодив)
2) Брать список объектов пользователя A и запрашивать их под сессией
(кукой) пользователя B
Так же это могут быть не только объекты, а просто страницы (делаем
“паука” на сбор ссылок - обходим под другой сессией)
Insecure Direct Object References (IDOR)
Cross Site Scripting (XSS)
Cross Site Scripting (XSS)
Злоумышленник внедряет javascript код и исполняет его в браузере жертвы
(доступ к DOM / временным хранилищам - cookies / local storage / etc).
Примеры:
- Привет, <script>alert(1)</script>
- Смотри фото <img src="/pic.png" onload="alert(1)">
- <script>
var name = 'Username'+alert(1)+'';
</script>
Cross Site Scripting (XSS)
Самые частые "опасные” символы:
● "
● '
● <
● >
Задача сводится к тому, чтобы матчить текущий паттерн + спецсимволы
Cross Site Scripting (XSS)
Текущий юзкейс:
1. Задать имя пользователя John
2. expect: john
Новый юзкейс:
1. Задать имя пользователя John<
2. expect: john<
SQL injection
SQL injection
Обычный кейс:
http://example.com/news?id=1(select * from news where id = '1')
Автотест подставляет: 1
Кейс с проверкой sql injection:
http://example.com/news?id=-1' or sleep(5) -- (select * from news where
id = '-1' or sleep(5) -- ')
Автотест подставляет: -1' or sleep(5) --
Если время ответа более 5 секунд - возможно есть уязвимость
Template injection
Обычный кейс:
testValue = John
Кейс проверки template injection:
testValue = John{{7*7}}
Уязвимость есть: John49
Уязвимость нет: John{{7*7}}
Template injection
Время жизни токенов и сессий
1) Проверяем атаки "повтора" - берем одноразовые токены (смс код, токен
для перевода денег и т.п.) и отправляем несколько раз
2) Работа с сессиями - берем cookies и:
a) меняем пароль
b) включаем двухфакторку
c) выходим из аккаунта
d) специфичные кейсы: частичная смена IP / User-Agent / страны и т.п.
Проверяем, что сессия более не валидна
3) Пытаемся придумать тесткейсы на время жизни сессии
Время жизни токенов и сессий
Тестирование рейтлимитов
Много (>100) раз повторяем запрос на действие и пытаемся:
1) Заспамить другого юзера (отправка приглашений на почту)
2) Возможно потратить деньги сервиса (отправка смс, звонки)
3) Вызвать отказ в обслуживании ("тяжелые" запросы - конвертация
изображений и т.п.)
Тестирование рейтлимитов
Плюсы:
● Сокращение времени на изучение функционала
● Большое покрытие
● Внедрение в CI
● Простое тестирование protocol specific мест
Минусы:
● Не найдем логические и “сложные” уязвимости
● Не протестируем уязвимости платформы, библиотек, фреймворков
● На начальных этапах - большое количество false positive срабатываний
Security Testing Web Applications throughout Automated Software Tests (2006) -
https://www.owasp.org/images/9/99/AutomatedSecurityTestingofWebApplications-StephendeVries.pdf
Автотесты и безопасность
Тестируйте безопасность!
@sergeybelove
s.belov@corp.mail.ru

Mais conteúdo relacionado

Mais procurados

тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложенийZestranec
 
Penetration testing (AS IS)
Penetration testing (AS IS)Penetration testing (AS IS)
Penetration testing (AS IS)Dmitry Evteev
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхDmitry Evteev
 
Что такое пентест
Что такое пентестЧто такое пентест
Что такое пентестDmitry Evteev
 
Blind SQL Injections. Достаточно ли хороши ваши тесты?
Blind SQL Injections. Достаточно ли хороши ваши тесты?Blind SQL Injections. Достаточно ли хороши ваши тесты?
Blind SQL Injections. Достаточно ли хороши ваши тесты?Igor Bondarenko
 
Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. ОсновыPositive Hack Days
 
Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015odnoklassniki.ru
 
Ломаем (и строим) вместе
Ломаем (и строим) вместеЛомаем (и строим) вместе
Ломаем (и строим) вместеDmitry Evteev
 
Cis critical security controls. контроль 3 безопасная конфигурация устройств
Cis critical security controls. контроль 3   безопасная конфигурация устройствCis critical security controls. контроль 3   безопасная конфигурация устройств
Cis critical security controls. контроль 3 безопасная конфигурация устройствTeymur Kheirkhabarov
 
очир абушинов
очир абушиновочир абушинов
очир абушиновAlexei Lupan
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложенияMaxim Krentovskiy
 
Основи використання MVC
Основи використання MVCОснови використання MVC
Основи використання MVCIgor Bronovskyy
 
Введение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийВведение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийDmitry Evteev
 
Нагрузочное тестирование информационных систем
Нагрузочное тестирование информационных системНагрузочное тестирование информационных систем
Нагрузочное тестирование информационных системDenis Makrushin
 
Охота на угрозы на BIS summit 2016
Охота на угрозы на BIS summit 2016Охота на угрозы на BIS summit 2016
Охота на угрозы на BIS summit 2016Sergey Soldatov
 
А не поговорить ли нам о XSS!
А не поговорить ли нам о XSS!А не поговорить ли нам о XSS!
А не поговорить ли нам о XSS!SQALab
 
Sqa days2010 polazhenko_osstm
Sqa days2010 polazhenko_osstmSqa days2010 polazhenko_osstm
Sqa days2010 polazhenko_osstmAlexei Lupan
 
Security testing
Security testingSecurity testing
Security testingMageCloud
 

Mais procurados (19)

тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложений
 
Penetration testing (AS IS)
Penetration testing (AS IS)Penetration testing (AS IS)
Penetration testing (AS IS)
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
 
Что такое пентест
Что такое пентестЧто такое пентест
Что такое пентест
 
Blind SQL Injections. Достаточно ли хороши ваши тесты?
Blind SQL Injections. Достаточно ли хороши ваши тесты?Blind SQL Injections. Достаточно ли хороши ваши тесты?
Blind SQL Injections. Достаточно ли хороши ваши тесты?
 
Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. Основы
 
Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015
 
Ломаем (и строим) вместе
Ломаем (и строим) вместеЛомаем (и строим) вместе
Ломаем (и строим) вместе
 
Cis critical security controls. контроль 3 безопасная конфигурация устройств
Cis critical security controls. контроль 3   безопасная конфигурация устройствCis critical security controls. контроль 3   безопасная конфигурация устройств
Cis critical security controls. контроль 3 безопасная конфигурация устройств
 
очир абушинов
очир абушиновочир абушинов
очир абушинов
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложения
 
Основи використання MVC
Основи використання MVCОснови використання MVC
Основи використання MVC
 
Введение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийВведение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложений
 
Нагрузочное тестирование информационных систем
Нагрузочное тестирование информационных системНагрузочное тестирование информационных систем
Нагрузочное тестирование информационных систем
 
Охота на угрозы на BIS summit 2016
Охота на угрозы на BIS summit 2016Охота на угрозы на BIS summit 2016
Охота на угрозы на BIS summit 2016
 
А не поговорить ли нам о XSS!
А не поговорить ли нам о XSS!А не поговорить ли нам о XSS!
А не поговорить ли нам о XSS!
 
penetest VS. APT
penetest VS. APTpenetest VS. APT
penetest VS. APT
 
Sqa days2010 polazhenko_osstm
Sqa days2010 polazhenko_osstmSqa days2010 polazhenko_osstm
Sqa days2010 polazhenko_osstm
 
Security testing
Security testingSecurity testing
Security testing
 

Semelhante a Как начать тестировать безопасность уже сегодня

Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...Sigma Software
 
Практика использования Solar inCode
Практика использования Solar inCodeПрактика использования Solar inCode
Практика использования Solar inCodeSolar Security
 
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...Sigma Software
 
ЄВГЕНІЙ ТОЛЧИНСКИЙ «Як manual QA може протестувати проект з боку security» QA...
ЄВГЕНІЙ ТОЛЧИНСКИЙ «Як manual QA може протестувати проект з боку security» QA...ЄВГЕНІЙ ТОЛЧИНСКИЙ «Як manual QA може протестувати проект з боку security» QA...
ЄВГЕНІЙ ТОЛЧИНСКИЙ «Як manual QA може протестувати проект з боку security» QA...GoQA
 
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...Badoo Development
 
Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийSQALab
 
Testing RIA with Selenium
Testing RIA with SeleniumTesting RIA with Selenium
Testing RIA with SeleniumSergey Shvets
 
Svyatoslav Login
Svyatoslav LoginSvyatoslav Login
Svyatoslav LoginDakiry
 
Benchmark сканеров SQL injection
Benchmark сканеров SQL injectionBenchmark сканеров SQL injection
Benchmark сканеров SQL injectionAndrew Petukhov
 
Как реагировать на инциденты ИБ с помощью DLP?
Как реагировать на инциденты ИБ с помощью DLP? Как реагировать на инциденты ИБ с помощью DLP?
Как реагировать на инциденты ИБ с помощью DLP? Solar Security
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parseryalegko
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
Blind Sql Injections. Хороши ли ваши тесты?
Blind Sql Injections. Хороши ли ваши тесты?Blind Sql Injections. Хороши ли ваши тесты?
Blind Sql Injections. Хороши ли ваши тесты?Zestranec
 
Надежность ПО и Runtime Verification
Надежность ПО и Runtime VerificationНадежность ПО и Runtime Verification
Надежность ПО и Runtime Verificationru_Parallels
 
Расследование инцидентов: как правильно понять, что он произошел и как об это...
Расследование инцидентов: как правильно понять, что он произошел и как об это...Расследование инцидентов: как правильно понять, что он произошел и как об это...
Расследование инцидентов: как правильно понять, что он произошел и как об это...jet_information_security
 
Опыт построения и эксплуатации коммерческого SOC
Опыт построения и эксплуатации коммерческого SOCОпыт построения и эксплуатации коммерческого SOC
Опыт построения и эксплуатации коммерческого SOCSolar Security
 
Web осень 2012 лекция 11
Web осень 2012 лекция 11Web осень 2012 лекция 11
Web осень 2012 лекция 11Technopark
 

Semelhante a Как начать тестировать безопасность уже сегодня (20)

Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
 
Практика использования Solar inCode
Практика использования Solar inCodeПрактика использования Solar inCode
Практика использования Solar inCode
 
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
 
ЄВГЕНІЙ ТОЛЧИНСКИЙ «Як manual QA може протестувати проект з боку security» QA...
ЄВГЕНІЙ ТОЛЧИНСКИЙ «Як manual QA може протестувати проект з боку security» QA...ЄВГЕНІЙ ТОЛЧИНСКИЙ «Як manual QA може протестувати проект з боку security» QA...
ЄВГЕНІЙ ТОЛЧИНСКИЙ «Як manual QA може протестувати проект з боку security» QA...
 
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
 
Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложений
 
Testing RIA with Selenium
Testing RIA with SeleniumTesting RIA with Selenium
Testing RIA with Selenium
 
Svyatoslav Login
Svyatoslav LoginSvyatoslav Login
Svyatoslav Login
 
Benchmark сканеров SQL injection
Benchmark сканеров SQL injectionBenchmark сканеров SQL injection
Benchmark сканеров SQL injection
 
пр Управление инцидентами ИБ (Dozor)
пр Управление инцидентами ИБ (Dozor)пр Управление инцидентами ИБ (Dozor)
пр Управление инцидентами ИБ (Dozor)
 
Как реагировать на инциденты ИБ с помощью DLP?
Как реагировать на инциденты ИБ с помощью DLP? Как реагировать на инциденты ИБ с помощью DLP?
Как реагировать на инциденты ИБ с помощью DLP?
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parser
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
Sql injection
Sql injectionSql injection
Sql injection
 
Blind Sql Injections. Хороши ли ваши тесты?
Blind Sql Injections. Хороши ли ваши тесты?Blind Sql Injections. Хороши ли ваши тесты?
Blind Sql Injections. Хороши ли ваши тесты?
 
Надежность ПО и Runtime Verification
Надежность ПО и Runtime VerificationНадежность ПО и Runtime Verification
Надежность ПО и Runtime Verification
 
Расследование инцидентов: как правильно понять, что он произошел и как об это...
Расследование инцидентов: как правильно понять, что он произошел и как об это...Расследование инцидентов: как правильно понять, что он произошел и как об это...
Расследование инцидентов: как правильно понять, что он произошел и как об это...
 
Опыт построения и эксплуатации коммерческого SOC
Опыт построения и эксплуатации коммерческого SOCОпыт построения и эксплуатации коммерческого SOC
Опыт построения и эксплуатации коммерческого SOC
 
2.про soc от solar security
2.про soc от solar security2.про soc от solar security
2.про soc от solar security
 
Web осень 2012 лекция 11
Web осень 2012 лекция 11Web осень 2012 лекция 11
Web осень 2012 лекция 11
 

Mais de Sergey Belov

Attacking thru HTTP Host header
Attacking thru HTTP Host headerAttacking thru HTTP Host header
Attacking thru HTTP Host headerSergey Belov
 
ZeroNights - SmartTV
ZeroNights - SmartTV ZeroNights - SmartTV
ZeroNights - SmartTV Sergey Belov
 
(Не)безопасный frontend
(Не)безопасный frontend(Не)безопасный frontend
(Не)безопасный frontendSergey Belov
 
современная практика статического анализа безопасности кода веб приложений
современная практика статического анализа безопасности кода веб приложенийсовременная практика статического анализа безопасности кода веб приложений
современная практика статического анализа безопасности кода веб приложенийSergey Belov
 
CodeFest 2014 - Pentesting client/server API
CodeFest 2014 - Pentesting client/server APICodeFest 2014 - Pentesting client/server API
CodeFest 2014 - Pentesting client/server APISergey Belov
 
CodeFest 2012 - Пентест на стероидах
CodeFest 2012 - Пентест на стероидахCodeFest 2012 - Пентест на стероидах
CodeFest 2012 - Пентест на стероидахSergey Belov
 

Mais de Sergey Belov (7)

Attacking thru HTTP Host header
Attacking thru HTTP Host headerAttacking thru HTTP Host header
Attacking thru HTTP Host header
 
ZeroNights - SmartTV
ZeroNights - SmartTV ZeroNights - SmartTV
ZeroNights - SmartTV
 
(Не)безопасный frontend
(Не)безопасный frontend(Не)безопасный frontend
(Не)безопасный frontend
 
современная практика статического анализа безопасности кода веб приложений
современная практика статического анализа безопасности кода веб приложенийсовременная практика статического анализа безопасности кода веб приложений
современная практика статического анализа безопасности кода веб приложений
 
CodeFest 2014 - Pentesting client/server API
CodeFest 2014 - Pentesting client/server APICodeFest 2014 - Pentesting client/server API
CodeFest 2014 - Pentesting client/server API
 
Nginx warhead
Nginx warheadNginx warhead
Nginx warhead
 
CodeFest 2012 - Пентест на стероидах
CodeFest 2012 - Пентест на стероидахCodeFest 2012 - Пентест на стероидах
CodeFest 2012 - Пентест на стероидах
 

Как начать тестировать безопасность уже сегодня

  • 1. Как начать тестировать безопасность уже сегодня Сергей Белов Mail.Ru Group QA MeetUp - 6 июля, Нижний Новгород
  • 2. Intro Ситуация: 1) У вас есть web приложение 2) Вы для него уже пишете автотесты 3) Но никто не тестирует безопасность Задача: Начать тестировать безопасность :)
  • 3. Как вообще происходит поиск уязвимостей? 1) Анализ приложения и бизнес логики 2) Сбор параметров для взаимодействия (Client Side - javascript sinks & sources / Server side - HTTP) 3) Отправка неожидаемых данных, которые могут: изменить чужие данные, нарушить конфиденциальность, вызвать отказ в обслуживании
  • 4. Что мы сделаем сегодня 1) Изучим 6 видов уязвимостей 2) Возьмем готовые автотесты 3) Превратим их в сканер безопасности
  • 5. Insecure Direct Object References (IDOR)
  • 6. Insecure Direct Object References (IDOR) Позволяет получить доступ к объектам (каким-то данным) из-за проблем ACL. 1) https://example.com/document/123 - документ пользователя A 2) https://example.com/document/124 - документ пользователя B Проблема возникает на моменте, когда пользователь A, узнав (подобрав) ID документа пользователя B, может получить к нему доступ (чтение/редактирование/удаление).
  • 7. Как внедрить такие проверки в автотесты? 1) После сохранения / добавления данных запрашивать не ID объекта в ответе, а объект другого пользователя (заранее его захардкодив) 2) Брать список объектов пользователя A и запрашивать их под сессией (кукой) пользователя B Так же это могут быть не только объекты, а просто страницы (делаем “паука” на сбор ссылок - обходим под другой сессией) Insecure Direct Object References (IDOR)
  • 9. Cross Site Scripting (XSS) Злоумышленник внедряет javascript код и исполняет его в браузере жертвы (доступ к DOM / временным хранилищам - cookies / local storage / etc). Примеры: - Привет, <script>alert(1)</script> - Смотри фото <img src="/pic.png" onload="alert(1)"> - <script> var name = 'Username'+alert(1)+''; </script>
  • 10. Cross Site Scripting (XSS) Самые частые "опасные” символы: ● " ● ' ● < ● > Задача сводится к тому, чтобы матчить текущий паттерн + спецсимволы
  • 11. Cross Site Scripting (XSS) Текущий юзкейс: 1. Задать имя пользователя John 2. expect: john Новый юзкейс: 1. Задать имя пользователя John< 2. expect: john<
  • 13. SQL injection Обычный кейс: http://example.com/news?id=1(select * from news where id = '1') Автотест подставляет: 1 Кейс с проверкой sql injection: http://example.com/news?id=-1' or sleep(5) -- (select * from news where id = '-1' or sleep(5) -- ') Автотест подставляет: -1' or sleep(5) -- Если время ответа более 5 секунд - возможно есть уязвимость
  • 15. Обычный кейс: testValue = John Кейс проверки template injection: testValue = John{{7*7}} Уязвимость есть: John49 Уязвимость нет: John{{7*7}} Template injection
  • 17. 1) Проверяем атаки "повтора" - берем одноразовые токены (смс код, токен для перевода денег и т.п.) и отправляем несколько раз 2) Работа с сессиями - берем cookies и: a) меняем пароль b) включаем двухфакторку c) выходим из аккаунта d) специфичные кейсы: частичная смена IP / User-Agent / страны и т.п. Проверяем, что сессия более не валидна 3) Пытаемся придумать тесткейсы на время жизни сессии Время жизни токенов и сессий
  • 19. Много (>100) раз повторяем запрос на действие и пытаемся: 1) Заспамить другого юзера (отправка приглашений на почту) 2) Возможно потратить деньги сервиса (отправка смс, звонки) 3) Вызвать отказ в обслуживании ("тяжелые" запросы - конвертация изображений и т.п.) Тестирование рейтлимитов
  • 20. Плюсы: ● Сокращение времени на изучение функционала ● Большое покрытие ● Внедрение в CI ● Простое тестирование protocol specific мест Минусы: ● Не найдем логические и “сложные” уязвимости ● Не протестируем уязвимости платформы, библиотек, фреймворков ● На начальных этапах - большое количество false positive срабатываний Security Testing Web Applications throughout Automated Software Tests (2006) - https://www.owasp.org/images/9/99/AutomatedSecurityTestingofWebApplications-StephendeVries.pdf Автотесты и безопасность