Описание
Тестирование безопасности — одна из наиболее интересных тем во всей профессии тестировщика.
Здесь пересекаются знания теории тестирования, поведения приложений, человеческой психологии и распространенных компьютерных ошибок.
Наиболее популярна эта тема для веб-приложений. Почему?
- Веб-приложения ориентированы на массовое использование, поэтому сбои в работе, вызванные действиями злоумышленника, могут оказать негативное воздействие на большое количество ни в чём неповинных пользователей.
- Веб-приложения могут хранить конфиденциальную информацию, утечка этих данных может иметь очень серьёзные последствия.
- Доступ к веб-приложению имеет множество “недоверенных” пользователей, при этом владельцы или разработчики приложения как правило не могут контролировать или ограничивать их действия.
- Обмен информацией между браузером и сервером происходит по открытым каналам с использованием открытых протоколов, поэтому сложно контролировать данные, передаваемые клиентами.
- Разработка веб-приложений не всегда ведётся с должным вниманием к обеспечению защищенности и надёжности, потому что время разработки продукта для рынка — важнее качества.
Естественно, ошибки могут возникать не только в самих веб-приложениях. Уязвимость может находиться в веб-сервере, операционной системе, почтовой системе, или ftp-клиенте. Но задача создания защищенного окружения в большей степени находится в зоне ответственности системных администраторов, а вот защищенность веб-приложения — целиком на совести его разработчиков и тестировщиков.
На тренинге мы рассмотрим как простые способы поиска уязвимостей, не требующие особых знаний, так и более сложные и комплексные задачи, при тестировании которых придется углубиться в схемы работы приложений.
Краткое содержание курса:
Введение
- что такое уязвимость
- чем уязвимость отличается от бага
- чем опасны уязвимости
- что такое “вектор атаки” и эксплойт
Примеры логических уязвимостей
- смена пароля чужого аккаунта и token
- неавторизованный доступ к контенту
- валидация данных и наборов данных
Брутфорс
- что такое брутфорс
- как устроена капча
- словари паролей
HTML инъекция
- что такое инъекция кода
- чем опасны инъекции
- пример простой HTML-инъекции
- какие бывают способы борьбы с инъекциям
- как устроено веб-приложение
- свойства value, data и т.п.
- чем опасна HTML-инъекция
- пример поиска и использования HTML-инъекции
JavaScript-инъекция
- где стоит искать JavaScript-инъекцию
- чем опасна JavaScript-инъекция
- пример JavaScript-инъекции
XSS атака
- что такое XSS и отличается ли она от JavaScript-инъекции?
- чем опасны XSS
- что такое self-XSS
- примеры XSS атак
- как устроена авторизация и работа с cookie-файлами
CSRF – подделка запроса пользователя
- что такое CSRF
- что такое token запроса
- чем опасен CSRF
- пример CSRF
SQL-инъекция (часть I)
- что такое SQL-инъекция
- когда стоит искать SQL-инъекцию
- чем опасна SQL-инъекция
- пример инъекции для GET-запроса
- сложный пример SQL-инъекции для POST-запроса – авторизация без пароля
- что такое “слепая (blind) SQL-инъекция”, способы поиска
- комментирование в SQL и изменения вида запроса
- пример SQL-инъекции на вставке данных Insert
- работа с ответом сервера
- пример слепой SQL-инъекции
Сканирование кода на наличие backdoor
- что такое захват shell
- чем опасен захват shell
- как происходит захват shell и что такое exec
- раскрытие полного пути (Full path disclosure)
- пример захвата shell
Загрузка вредоносного файла на сервер
- как файлы передаются на сервер
- как обойти валидацию данных
- чем опасен исполняемый файл на сервере
- пример загрузки файла на сервер
Продвинутые техники
- как устроены сканеры безопасности веб-приложений
- что такое социальная инженерия
- что такое Bug Bounty программы и причем тут тестирование безопасности
Технические требования
Для выполнения заданий вам потребуется:
- Windows 7+ / Mac OS Mohave+ / Ubuntu 18.08+
- Процессор i-серии (i3, i5, i7) или аналогичный от AMD
- Минимум 4 GB RAM
- 10 GB на жёстком диске
Отзывы
Отзывов пока нет.