
Структурированные учебные заметки, охватывающие основы веб-хакинга, распространенные уязвимости, методы тестирования на проникновение и защитную безопасность, с подобранными списками инструментов и ресурсов.
В процессе изучения веб-безопасности я глубоко осознал, что связанные с ней знания огромны и разрозненны. Без относительно чёткой структуры это создаёт ненужные трудности в обучении. Поэтому, получив поверхностное понимание веб-безопасности, я попытался систематизировать и записать некоторые знания и идеи, что и привело к созданию этих заметок. Надеюсь, они помогут новичкам, входящим в сферу кибербезопасности.
Прежде чем начать, необходимо прояснить, что такое веб-безопасность. Простое определение: веб-безопасность — это совокупность аспектов безопасности, касающихся веб-сайтов, веб-приложений и веб-сервисов. Другими словами, веб-безопасность фокусируется на безопасности прикладного уровня, особенно на безопасности, связанной с сетевым контентом. Для изучения веб-безопасности необходимо освоить сетевые протоколы, особенности веб-приложений и соответствующие проблемы безопасности, а также использование различных инструментов. На практике эти области довольно разрозненны и сложны. Я попытался разбить и реорганизовать соответствующий материал по следующей логике.
История учит нас понимать настоящее и будущее. Сначала нужно изучить историю развития этой области. Чтобы лучше понять, почему веб-безопасность сегодня такова и в каком направлении развиваются исследования, необходимо разобраться в эволюции веб-технологий и методов сетевой атаки и защиты. Это и есть первая часть заметок: описание развития веб-технологий и базовых понятий в сфере безопасности.
Получив общее представление об истории веб-безопасности, можно приступить к изучению основ компьютерных сетей — это вторая часть, где представлены некоторые базовые знания о сетях. Учитывая обилие и быстрое развитие таких технологических ветвей, как сетевые базы данных, веб-серверы и т.д., я ограничился описанием только сетевых протоколов, опустив сетевые приложения. Однако на практике желательно разбираться в различных языках программирования, веб-фреймворках, сетевых сервисах и особенностях операционных систем.
Обладая базой, можно перейти к более детальным аспектам атаки и защиты, например, к изучению конкретных типов уязвимостей, особенностей определённых языков/приложений и соответствующих проблем безопасности. Это третья часть заметок. Она следует типичному порядку пентеста: сбор информации, распространённые веб-уязвимости, распространённые языки и фреймворки, методы внутреннего проникновения и т.д. С этой частью обычно знакомятся, начиная изучать пентест.
Кроме того, облака становятся важной частью веб-мира. Будь то использование публичных облаков для лёгких сервисов или частных облаков, контейнеры и другие технологии становятся всё более значимыми.
Четвёртая часть возвращается к защите: описывается построение команды безопасности, threat intelligence, управление рисками и т.д., а также более детальные технические темы, такие как honeypots и трассировка.
Наконец, более конкретные приложения — главным образом, описание и использование инструментов. В этой части представлены списки рекомендуемых инструментов и ресурсов, а также неклассифицированный контент.
Такова общая структура. На практике можно начинать с любой точки и учиться по спирали. Материал можно рассматривать и как целостное руководство, и как справочник.
Поскольку мои знания ограничены, а время не бесконечно, в заметках могут быть ошибки или неполнота, которые я постепенно исправляю и дополняю. Если вы заметите упущения или ошибки, пожалуйста, укажите на них через Issue или PR. Буду очень признателен.
При составлении заметок я ссылался и цитировал множество материалов, ссылки на которые оставлены в конце. Огромное спасибо авторам за их труды. Онлайн-версию заметок можно посмотреть здесь.
git clone https://github.com/LyleMi/Learn-Web-Hacking.git
cd Learn-Web-Hacking
pip install sphinx sphinx-rtd-theme
make html
Если у вас есть вопросы, замечания или предложения, пожалуйста, создавайте Issue или PR. Заранее благодарю.
Спасибо всем участникам.
Проект распространяется по лицензии CC0 1.0. Полный текст лицензии можно прочитать здесь.