ScholarGate
Ассистент

Безопасность веб-приложений

Безопасность веб-приложений рассматривает уязвимости, специфичные для веб-программного обеспечения — инъекции, межсайтовый скриптинг, нарушения аутентификации и контроля доступа, — которые являются одними из наиболее распространенных и значимых в современных системах.

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

Безопасность веб-приложений — это практика защиты веб-ориентированного программного обеспечения и его пользователей от атак, которые используют уязвимости в обработке входных данных, сеансов, аутентификации и контроля доступа приложением, а также слабости в модели безопасности браузера.

Scope

Эта тема охватывает модель угроз веб-приложений (недоверенный клиент, враждебная сеть, многопользовательские серверы) и характерные для нее классы уязвимостей: инъекции (SQL и командные), межсайтовый скриптинг, межсайтовая подделка запросов, нарушения контроля доступа и аутентификации, а также небезопасная десериализация. Она охватывает модель безопасности браузера (политика одного источника, политика безопасности контента) и стандартные средства защиты. Она исключает низкоуровневую эксплуатацию памяти и общие процессы безопасной разработки, рассматриваемые в смежных темах.

Core questions

  • Почему смешивание недоверенного ввода с кодом или запросами создает уязвимости инъекций?
  • Как межсайтовый скриптинг и межсайтовая подделка запросов атакуют пользователей сайта?
  • Как политика одного источника браузера ограничивает возможности веб-кода?
  • Как обычно нарушаются аутентификация, сеансы и контроль доступа в веб-приложениях?
  • Какие стандартные средства защиты предотвращают наиболее распространенные веб-уязвимости?

Key concepts

  • SQL- и командные инъекции
  • межсайтовый скриптинг (XSS)
  • межсайтовая подделка запросов (CSRF)
  • нарушение контроля доступа
  • нарушение аутентификации и управления сеансами
  • политика одного источника
  • политика безопасности контента
  • параметризованные запросы
  • OWASP Top Ten

Key theories

Инъекции и путаница кода/данных
Уязвимости инъекций (SQL-инъекции, командные инъекции) возникают, когда недоверенный ввод интерпретируется как код; защита заключается в разделении данных и кода, главным образом с помощью параметризованных запросов и строгого кодирования вывода.
Модель безопасности браузера и клиентские атаки
Политика одного источника изолирует контент из разных источников, но межсайтовый скриптинг внедряет скрипт злоумышленника в доверенную страницу, а межсайтовая подделка запросов злоупотребляет аутентифицированным сеансом пользователя; средства защиты включают кодирование вывода, политику безопасности контента и токены защиты от CSRF.

Mechanisms

SQL-инъекция происходит, когда пользовательский ввод конкатенируется в запрос, позволяя злоумышленнику изменить его логику; параметризованные запросы исправляют это путем привязки ввода как данных. Межсайтовый скриптинг внедряет скрипт в страницу, который затем выполняется браузерами других пользователей, что смягчается контекстно-зависимым кодированием вывода и политикой безопасности контента. Межсайтовая подделка запросов обманывает аутентифицированный браузер, заставляя его выполнять нежелательные запросы, что защищается с помощью токенов защиты от CSRF и файлов cookie SameSite. Ошибки контроля доступа возникают, когда сервер не проверяет авторизацию при каждом запросе.

Clinical relevance

Уязвимости веб-приложений являются причиной многих крупнейших утечек данных: SQL-инъекции и нарушения контроля доступа привели к раскрытию миллиардов записей, а межсайтовый скриптинг регулярно компрометирует учетные записи пользователей. Поскольку почти все сервисы имеют веб-интерфейс, веб-безопасность напрямую влияет на электронную коммерцию, банковские услуги, медицинские порталы и государственные системы, а также является основой для тестирования на проникновение, программ вознаграждения за обнаружение ошибок (bug-bounty) и режимов соответствия, таких как PCI-DSS.

Evidence & guidelines

OWASP Top Ten является де-факто справочником по распространенным веб-рискам, дополненным Стандартом проверки безопасности приложений OWASP (ASVS) и «шпаргалками» (cheat sheets). Защитные механизмы, обеспечиваемые браузером (политика безопасности контента, файлы cookie SameSite, целостность подресурсов), стандартизированы W3C и WHATWG. Фреймворки соответствия, такие как PCI-DSS, предписывают меры контроля веб-безопасности для систем, обрабатывающих платежные данные.

History

Безопасность веб-приложений развивалась вместе с динамическим вебом конца 1990-х и 2000-х годов, когда базы данных и пользовательский ввод породили уязвимости инъекций и скриптинга. OWASP Top Ten (впервые выпущенный в 2003 году) стандартизировал осведомленность о наиболее критических рисках. Защитные механизмы на стороне браузера развивались через политику одного источника, а затем и политику безопасности контента, в то время как знаковые утечки неоднократно демонстрировали реальную стоимость SQL-инъекций и нарушений контроля доступа.

Key figures

  • Dafydd Stuttard
  • Ross Anderson
  • Jeremiah Grossman
  • Michal Zalewski

Related topics

Seminal works

  • stuttard2011
  • owasp2021
  • anderson2020

Frequently asked questions

Какое единственное наиболее эффективное средство защиты от SQL-инъекций?
Использование параметризованных запросов (подготовленных выражений), которые отправляют структуру SQL и предоставленные пользователем значения отдельно, так что ввод никогда не может быть интерпретирован как часть запроса. Это позволяет разделить код и данные и нейтрализует класс атак.
Чем межсайтовый скриптинг отличается от SQL-инъекций?
Оба возникают из-за недоверенного ввода, но SQL-инъекции нацелены на базу данных сервера, в то время как межсайтовый скриптинг внедряет вредоносный скрипт, который выполняется в браузерах других пользователей на доверенном сайте. SQLi крадет или изменяет данные сервера; XSS перехватывает пользовательские сеансы и действия.

Methods for this concept

Related concepts