
Структурированные учебные заметки, охватывающие основы веб-хакинга, распространенные уязвимости, методы тестирования на проникновение и защитную безопасность, с подобранными списками инструментов и ресурсов.
В процессе изучения веб-безопасности я глубоко осознал, что связанные с ней знания огромны и разрозненны. Без относительно чёткой структуры это создаёт ненужные трудности в обучении. Поэтому, получив поверхностное понимание веб-безопасности, я попытался систематизировать и записать некоторые знания и идеи, что и привело к созданию этих заметок. Надеюсь, они помогут новичкам, входящим в сферу кибербезопасности.
Прежде чем начать, необходимо прояснить, что такое веб-безопасность. Простое определение: веб-безопасность — это совокупность аспектов безопасности, касающихся веб-сайтов, веб-приложений и веб-сервисов. Другими словами, веб-безопасность фокусируется на безопасности прикладного уровня, особенно на безопасности, связанной с сетевым контентом. Для изучения веб-безопасности необходимо освоить сетевые протоколы, особенности веб-приложений и соответствующие проблемы безопасности, а также использование различных инструментов. На практике эти области довольно разрозненны и сложны. Я попытался разбить и реорганизовать соответствующий материал по следующей логике.
История учит нас понимать настоящее и будущее. Сначала нужно изучить историю развития этой области. Чтобы лучше понять, почему веб-безопасность сегодня такова и в каком направлении развиваются исследования, необходимо разобраться в эволюции веб-технологий и методов сетевой атаки и защиты. Это и есть первая часть заметок: описание развития веб-технологий и базовых понятий в сфере безопасности.
Получив общее представление об истории веб-безопасности, можно приступить к изучению основ компьютерных сетей — это вторая часть, где представлены некоторые базовые знания о сетях. Учитывая обилие и быстрое развитие таких технологических ветвей, как сетевые базы данных, веб-серверы и т.д., я ограничился описанием только сетевых протоколов, опустив сетевые приложения. Однако на практике желательно разбираться в различных языках программирования, веб-фреймворках, сетевых сервисах и особенностях операционных систем.
Обладая базой, можно перейти к более детальным аспектам атаки и защиты, например, к изучению конкретных типов уязвимостей, особенностей определённых языков/приложений и соответствующих проблем безопасности. Это третья часть заметок. Она следует типичному порядку пентеста: сбор информации, распространённые веб-уязвимости, распространённые языки и фреймворки, методы внутреннего проникновения и т.д. С этой частью обычно знакомятся, начиная изучать пентест.
Кроме того, облака становятся важной частью веб-мира. Будь то использование публичных облаков для лёгких сервисов или частных облаков, контейнеры и другие технологии становятся всё более значимыми.
Четвёртая часть возвращается к защите: описывается построение команды безопасности, 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. Полный текст лицензии можно прочитать здесь.
Содержание заметок собрано из открытых источников. Упомянутые техники предназначены исключительно для законных сценариев, таких как обучение и авторизованное тестирование. Из соображений общественной безопасности некоторые материалы не включены. Пожалуйста, соблюдайте законодательство, включая «Закон КНР о кибербезопасности» и «Закон КНР о защите компьютерного программного обеспечения», и не проводите тестирование на неавторизованных объектах.