Безопасность и защита сайтов


Безопасность и защита сайтов — задача, с которой рано или поздно приходится сталкиваться владельцу любого хоть сколь-нибудь ценного ресурса. Вопрос безопасности можно решить максимально плотно уже на этапе разработки веб-сайта, либо насильно вернуться к нему в случае возникших на этапе функционирования проблем. Основная задача защиты сайтов — разработка ресурса, предельно удовлетворяющего требованиям безопасности, либо приведение уже имеющегося сайта к этим требованиям путем анализа использующихся и потенциально опасных уязвимостей с последующем выполнением ряда работ для их устранения и отсутствия в перспективе. Надо учитывать, что безопасность сайта подразумевает не только безопасность кода и используемого ПО, но и безопасность его администрирования, сохранность паролей, защиту от перегрузок, а также решение ряда организационных и технических вопросов с провайдером.
 Услуги по защите сайтов и Web-проектов +7 (495) 231-4831
 версия для печати   
  Классы угроз

Классификация угроз безопасности Web-приложений

Данная классификация представляет собой совместную попытку членов международного консорциума собрать воедино и упорядочить угрозы безопасности Web-сайтов. Члены Web Application Security Consortium создали данный проект для унификации стандартной терминологии описания угроз безопасности Web-приложений. Это даёт возможность разработчикам приложений, специалистам в области безопасности, производителям программных продуктов и аудиторам использовать единый язык при своем взаимодействии.

Данный документ содержит компиляцию и квинтэссенцию известных классов атак, которые представляют угрозы для Web-приложений. Каждому классу атак присвоено стандартное название и описаны его ключевые особенности. Классы организованы в иерархическую структуру.

Классы атак

1. Аутентификация (Authentication)

Раздел, посвященный аутентификации, описывает атаки направленные на используемые Web-приложением методы проверки идентификатора пользователя, службы или приложения. Аутентификация использует как минимум один из трех механизмов (факторов): "что-то, что мы имеем", "что-то, что мы знаем" или "что-то, что мы есть". В этом разделе описываются атаки, направленные на обход или эксплуатацию уязвимостей в механизмах реализации аутентификации Web-серверов.

Краткое описание [подробное описание в формате .pdf – 337 Kb]

  1. Подбор (Brute Force)
    автоматизированный процесс проб и ошибок, использующийся для того, чтобы угадать имя пользователя, пароль, номер кредитной карточки, ключ шифрования и т.д.
  2. Недостаточная аутентификация (Insufficient Authentication)
    эта уязвимость возникает, когда Web-сервер позволяет атакующему получать доступ к важной информации или функциям сервера без должной аутентификации
  3. Небезопасное восстановление паролей (Weak Password Recovery Validation)
    эта уязвимость возникает, когда Web-сервер позволяет атакующему несанкционированно получать, модифицировать или восстанавливать пароли других пользователей

2. Авторизация (Authorization)

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

Краткое описание [подробное описание в формате .pdf – 353 Kb]

  1. Предсказуемое значение идентификатора сессии (Credential/Session Prediction)
    предсказуемое значение идентификатора сессии позволяет перехватывать сессии других пользователей
  2. Недостаточная авторизация (Insufficient Authorization)
    недостаточная авторизация возникает, когда Web-сервер позволяет атакующему получать доступ к важной информации или функциям, доступ к которым должен быть ограничен
  3. Отсутствие таймаута сессии (Insufficient Session Expiration)
    в случае если для идентификатора сессии или учетных данных не предусмотрен таймаут или его значение слишком велико, злоумышленник может воспользоваться старыми данными для авторизации
  4. Фиксация сессии (Session Fixation)
    используя данный класс атак, злоумышленник присваивает идентификатору сессии пользователя заданное значение

3. Атаки на клиентов (Client-side Attacks)

Этот раздел описывает атаки на пользователей Web-сервера. Во время посещения сайта, между пользователем и севером устанавливаются доверительные отношения, как в технологическом, так и в психологическом аспектах. Пользователь ожидает, что сайт предоставит ему легитимное содержимое. Кроме того, пользователь не ожидает атак со стороны сайта. Эксплуатируя это доверие, злоумышленник может использовать различные методы для проведения атак на клиентов сервера.

Краткое описание [подробное описание в формате .pdf – 369 Kb]

  1. Подмена содержимого (Content Spoofing)
    используя эту технику, злоумышленник заставляет пользователя поверить, что страницы сгенерированны Web-сервером, а не переданы из внешнего источника
  2. Межсайтовое выполнение сценариев (Cross-site Scripting, XSS)
    наличие уязвимости Cross-site Scripting позволяет атакующему передать серверу исполняемый код, который будет перенаправлен браузеру пользователя
  3. Расщепление HTTP-запроса (HTTP Response Splitting)
    при использовании данной уязвимости злоумышленник посылает серверу специальным образом сформированный запрос, ответ на который интерпретируется целью атаки как два разных ответа

4. Выполнение кода (Command Execution)

Эта секция описывает атаки, направленные на выполнение кода на Web-сервере. Все серверы используют данные, преданные пользователем при обработке запросов. Часто эти данные используются при составлении команд, применяемых для генерации динамического содержимого. Если при разработке не учитываются требования безопасности, злоумышленник получает возможность модифицировать исполняемые команды.

Краткое описание [подробное описание в формате .pdf – 398 Kb]

  1. Переполнение буфера (Buffer Overflow)
    эксплуатация переполнения буфера позволяет злоумышленнику изменить путь исполнения программы путем перезаписи данных в памяти системы
  2. Атака на функции форматирования строк (Format String Attack)
    при использовании этих атак путь исполнения программы модифицируется методои перезаписи областей памяти с помощью функций форматирования символьных переменных
  3. Внедрение операторов LDAP (LDAP Injection)
    атаки этого типа направлены на Web-серверы, создающие запросы к службе LDAP на основе данных, вводимых пользователем
  4. Выполнение команд ОС (OS Commanding)
    атаки этого класса направлены на выполнение команд операционной системы на Web-сервере путем манипуляции входными данными
  5. Внедрение операторов SQL (SQL Injection)
    эти атаки направлены на Web-серверы, создающие SQL запросы к серверам СУБД на основе данных, вводимых пользователем
  6. Внедрение серверных сценариев (SSI Injection)
    атаки данного класса позволяют злоумышленнику передать исполняемый код, который в дальнейшем будет выполнен на Web-сервере
  7. Внедрение операторов XPath (XPath Injection)
    эти атаки направлены на Web-серверы, создающие запросы на языке XPath на основе данных, вводимых пользователем

5. Разглашение информации (Information Disclosure)

Атаки данного класса направлены на получение дополнительной информации о Web-приложении. Используя эти уязвимости, злоумышленник может определить используемые дистрибутивы ПО, номера версий клиента и сервера и установленные обновления. В других случаях, в утекающей информации может содержаться расположение временных файлов или резервных копий. Во многих случаях эти данные не требуются для работы пользователя. Большинство серверов предоставляют доступ к чрезмерному объему данных, однако необходимо минимизировать объем служебной информации. Чем большими знаниями о приложении будет располагать злоумышленник, тем легче ему будет скомпрометировать систему.

Краткое описание [подробное описание в формате .pdf – 385 Kb]

  1. Индексирование директорий (Directory Indexing)
    атаки данного класса позволяют атакующему получить информацию о наличии файлов в Web каталоге, которые недоступны при обычной навигации по Web сайту
  2. Идентификация приложений (Web Server/Application Fingerprinting)
    определение версий приложений используется злоумышленником для получения информации об используемых сервером и клиентом операционных системах, Web-северах и браузерах
  3. Утечка информации (Information Leakage)
    эти уязвимости возникают в ситуациях, когда сервер публикует важную информацию, например комментарии разработчиков или сообщения об ошибках, которая может быть использована для компрометации системы
  4. Обратный путь в директориях (Path Traversal)
    данная техника атак направлена на получение доступа к файлам, директориям и командам, находящимся вне основной директории Web-сервера.
  5. Предсказуемое расположение ресурсов (Predictable Resource Location)
    позволяет злоумышленнику получить доступ к скрытым данным или функциональным возможностя

6. Логические атаки (Logical Attacks)

Атаки данного класса направлены на эксплуатацию функций приложения или логики его функционирования. Логика приложения представляет собой ожидаемый процесс функционирования программы при выполнении определенных действий. В качестве примеров можно привести восстановление пролей, регистрацию учетных записей, , аукционные торги, транзакции в системах электронной коммерции. Приложение может требовать от пользователя корректного выполнения нескольких последовательных действий для выполнения определенной задачи. Злоумышленник может обойти или использовать эти механизмы в своих целях.

Краткое описание [подробное описание в формате .pdf – 355 Kb]

  1. Злоупотребление функциональными возможностями (Abuse of Functionality)
    данные атаки направлены на использование функций Web-приложения с целью обхода механизмов разграничение доступа
  2. Отказ в обслуживании (Denial of Service)
    данный класс атак направлен на нарушение доступности Web-сервера
  3. Недостаточное противодействие автоматизации (Insufficient Anti-automation)
    эти уязвимости возникаеют, в случае, если сервер позволяет автоматически выполнять операции, которые должны проводиться вручную
  4. Недостаточная проверка процесса (Insufficient Process Validation)
    уязвимости этого класса возникают, когда сервер недостаточно проверяет последовательность выполнения операций приложения
Раздел подготовлен с использованием материалов,
Web Application Security Consortium
  © 2008-2009, ProtectMe  +7 (495) 231-4831  
  «Лаборатория защиты» E-mail: info@protectme.ru