Green-sell.info

Новые технологии
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Обеспечение безопасности web сервисов

Обеспечение безопасности Web-сервисов

Обеспечение безопасности Web-сервисов

Обеспечение безопасности Web-сервисов

Что же такое Web-сервис?

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

Чтобы понять принцип работы Web-сервисов, давайте рассмотрим типичную схему взаимодействия их поставщиков и клиентов (рис. 1).

Уже приведенная схема демонстрирует нам особенности Web-сервисной среды, которые влияют на специфику их защиты. Назовем эти особенности:

  • высокая доступность данных — Web-сервисы, собственно, и разрабатывались с целью повышения доступности и интегрируемости гетерогенных приложений;
  • соединения с другими Web-сервисами и приложениями не ограничены физическими границами какой-либо защищенной сети;
  • обмен данными происходит через общедоступную сеть Интернет, что предоставляет злоумышленникам расширенные возможности для их перехвата;
  • данные передаются в формате, пропускаемом многими межсетевыми экранами (XML);
  • возможность групповой адресации сообщений, затрудняющая применение средств информационной безопасности, ориентированных на одноадресную передачу;
  • наличие особо уязвимых компонентов архитектуры Web-сервисов, в частности регистров, что позволяет вывести из строя сразу многие Web-сервисы в случае успешной DoS-атаки на уязвимый участок;
  • минимальное участие человека в процессах реализации Web-сервисов — для большинства пользователей они представляются «черными» ящиками.

Согласно мнению аналитиков организации OASIS Web Services Interoperability, главные угрозы, нацеленные на Web-сервисы, — это несанкционированные изменения сообщений, потеря их конфиденциальности и аутентичности отправителей, DoS-атаки, то есть угрозы информационной безопасности Web-сервисов, практически идентичны угрозам, направленным на другие цифровые ресурсы. Обеспечение информационной безопасности Web-сервисов предполагает использование общепринятых технологий информационной безопасности — шифрования, цифровых подписей, парольной защиты и т.д. Можно сказать, что стандарты информационной безопасности Web-сервисов соответствуют специфичной архитектуре ИБ Web-сервисов, но механизмы реализации данной архитектуры вполне традиционны.

В настоящее время разработан целый ряд стандартов и спецификаций информационной безопасности Web-сервисов (рис. 2).

Одним из наиболее популярных стандартов является WS-Security, описывающий процессы аутентификации и авторизации в среде обмена SOAP-сообщениями. WS-Security предусматривает аутентификацию пользователя по средствам пар логин/пароль, сертификатов Х.509 или протокола Kerberos. Эти же технологии реализуют цифровую подпись, позволяющую удостовериться в целостности сообщения. Разработчики WS-Security также позаботились и о шифровании SOAP-сообщений, определив механизмы использования в среде SOAP стандарта XML Encryption.

Защита Web-сервисов должна быть комплексной: от информационных угроз необходимо защищать не только SOAP-сообщения, но также все другие составляющие архитектуры Web-сервисов: их интерфейсы, средства обнаружения сервисов (регистры) и т.д. Например, последняя версия перспективного стандарта UDDI обеспечивает такие немаловажные с точки зрения информационной безопасности функции, как целостность данных и шифрование содержимого регистра Web-сервисов.

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

Обеспечение безопасности web-серверов

Введение

В самом общем виде web можно разделить на два основных компонента: web-серверы — они являются приложениями, которые формируют информацию, доступную по протоколу НТТР, и web -браузеры (клиенты) — они используются для доступа и показа информации, хранящейся на web-серверах . В основном будем рассматривать проблемы безопасности, касающиеся web-серверов .

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

Враждебно настроенные пользователи интернета могут использовать ошибки ПО в web-серверах лежащей в основе ОС или в программах, создающих динамические web-страницы, для получения неавторизованного доступа к web-серверу .

  1. Результатом этого может быть получение доступа к файлам или каталогам, которые не предназначены для открытого доступа, либо выполнение привилегированных команд и/или установка ПО на web-сервер .
  2. Информация на web-сервере может быть преднамеренно изменена с враждебными целями. Наиболее общим примером такой угрозы является подмена содержимого web-сайта.

Рассмотрим проблемы, связанные с безопасностью при инсталлировании, конфигурировании и сопровождении web-серверов . Перечислим кратко основные вопросы:

  • Безопасное инсталлирование и конфигурирование лежащей в основе ОС.
  • Безопасное инсталлирование и конфигурирование ПО web-сервера .

Развертывание соответствующих сетевых механизмов защиты:

  • Firewall’ы;
  • Intrusion detection systems (IDS);
  • DNS.

Здесь нужно придерживаться следующих принципов.

Следует реализовать соответствующую практику управления безопасностью и контроль за функционированием системы.

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

Для гарантирования безопасности web-сервера и поддержки сетевой инфраструктуры должны быть рассмотрены и реализованы следующие основные моменты:

  • Политика безопасности информационной системы организации.
  • Принципы управления и контроля конфигурации и ее изменений.
  • Анализ риска и определенные подходы к управлению риском.
  • Стандартные конфигурации ПО, которые удовлетворяют политике безопасности информационной системы.
  • Необходимый объем знаний и тренинги, обеспечивающие требуемый объем знаний.
  • Способы восстановления после внезапных сбоев.
  • Соответствующая сертификация и аккредитация.

Следует гарантировать, что ОС, на которой выполняется web-сервер , развернута, сконфигурирована и управляется в соответствии с требованиями безопасности.

Первым шагом в обеспечении безопасности web-сервера является безопасность лежащей в основе ОС. Большинство доступных web-серверов выполняются на ОС общего назначения. Многих проблем безопасности можно избежать, если ОС, лежащая в основе web-сервера , сконфигурирована соответствующим образом. Конфигурации по умолчанию для аппаратуры и ПО обычно устанавливаются производителями, при этом, как правило, делается упор на использование возможностей, функциональностей исходного ПО , а также на простоту использования возможностей, связанных с безопасностью. Также следует понимать, что производители не знают требований безопасности каждой организации, поэтому web -администратор должен сконфигурировать новые серверы в соответствии с требованиями безопасности и переконфигурировать их каждый раз при изменении этих требований. Обеспечение безопасности ОС как минимум должна включать следующие шаги:

  • выполнение patch’ей и upgrade’ов ОС;
  • удаление или запрещение ненужных сервисов и приложений;
  • конфигурирование управления ресурсами;
  • тестирование безопасности ОС.

Следует гарантировать, что ПО web-сервера развернуто, сконфигурировано и управляется в соответствии с требованиями безопасности, определенными в организации.

Во многих аспектах инсталляция и конфигурирование безопасности ПО web-сервера аналогично процессу инсталляции и конфигурирования ОС. Главным принципом, как и раньше, является инсталляция минимального числа требуемых сервисов web-сервера и удаление всех известных уязвимостей с помощью patche’ей и upgrade’ов. Если инсталляционная программа устанавливает какие-то ненужные приложения, сервисы или скрипты, они должны быть удалены немедленно после завершения процесса установки. Обеспечение безопасности web-сервера как минимум должно включать следующие шаги:

  • выполнение patch’ей и upgrade’ов ПО web-сервера – удаление или запрещение ненужных сервисов, приложений и примеров содержимого;
  • конфигурирование аутентификации пользователей web-сервера ;
  • конфигурирование управления ресурсами web-сервера ;
  • тестирование безопасности приложения web-сервера и конкретного содержимого web-сервера .

Следует предпринять шаги для гарантирования того, что на web-сайте публикуется только корректное содержимое.

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

Следует гарантировать защиту web-содержимого от неавторизованного доступа или модификации.

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

  • инсталлирование только необходимых сервисов;
  • инсталлирование web-содержимого на выделенном жестком диске или в выделенном разделе;
  • возможность выполнять запись (uploads) только в директории, которые не являются читаемыми из web-сервера , а доступны по некоторому другому протоколу (например, ftp);
  • определение единственной директории для всех скриптов или программ, которые выполняются для создания web-содержимого и являются внешними по отношению к web-серверу ;
  • запрещение использования жестких или символических ссылок в файловой системе ОС, на которой выполняется web-сервер ;
  • создание матрицы доступа к web-содержимому, которая определяет, какие папки и файлы внутри директории web-сервера имеют ограничения по доступу;
  • запрет просмотра директории в файловой системе;
  • использование аутентификации пользователей с помощью цифровых подписей и других криптографических механизмов;
  • использование систем обнаружения проникновений, основанных на хосте и /или проверки целостности файлов, для обнаружения проникновения и проверки целостности web-содержимого.

Следует использовать активное содержимое только после тщательного взвешивания получаемых при этом преимуществ в сравнении с увеличением рисков.

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

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

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

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

Следует обеспечивать безопасность сетевой инфраструктуры для защиты web-серверов .

Сетевая инфраструктура , в которой функционирует web-сервер , играет важную роль в обеспечении безопасности web-сервера . Во многом сетевая инфраструктура является первой линией обороны web-сервера . Однако только тщательное проектирование сети не является достаточным для защиты web-сервера . Частота и варианты web -атак, совершаемых сегодня, говорят о том, что безопасность web-серверов может быть обеспечена только с использованием различных и расположенных на разных уровнях механизмов обороны (так называемая «оборона вглубь»).

Следует гарантировать постоянное функционирование системы обеспечения безопасности.

Поддержание безопасного функционирования web-сервера требует постоянных усилий и наличия достаточного количества ресурсов. Поддержание безопасности web-сервера обычно включает следующие шаги:

  • своевременное применение patch’ей и upgrade’ов;
  • конфигурирование, защита и анализ лог файлов;
  • частое выполнение back up’а критической информации;
  • поддержка защищенных копий web-содержимого;
  • определение процедур восстановления при компрометации и следование им при обнаружении проникновения;
  • периодическое тестирование безопасности .

Рассмотрим общие принципы, которые применимы ко всем системам.

Причины уязвимости web-сервера

Основные проблемы, связанные с безопасностью функционирования публично доступного web -сайта, возникают по следующим причинам:

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

«АСТ» имеет опыт внедрения комплексных систем по защите корпоративных веб-сервисов и бизнес-приложений, способных обеспечить всестороннюю защиту от описанных угроз как на уровне фронт-энда сервисов, так и на уровне их внутренней функциональной инфраструктуры. При этом используются методологии и лучшие в своем классе продукты, гарантирующие высокий уровень безопасности.

Современные информационные услуги становятся все более удобными, интерактивными и клиентоориентированными и все чаще предоставляются удаленно посредством сети Интернет через обычный веб-интерфейс. Такие простые сервисы как электронная почта, заказ пиццы, покупка каких-либо вещей или такие сложные как дистанционное банковское обслуживание, предоставление государственных услуг – сегодня все доступно через сеть. Это очень удобно, но и это очень опасно. Особенно учитывая то, что возможность веб-доступа могут иметь не только фронтофисы информационных систем (ИС) розничных компаний, но и критичные бизнес-системы, а сервисы предоставляются не только в сегменте b2c, но и b2b. Поэтому атака на веб-сервисы – одна из самых опасных и распространенных угроз, способная вызвать финансовые или репутационные потери для владельца сервиса, но и привести к финансовым потерям его клиентов. Ежегодные прямые убытки от атак на веб-ресурсы по разным данным составляют от 1 до 3,5 триллионов долларов США. Косвенные убытки и потери, связанные с ущербом репутации, упущенной прибылью, похищением данных кредитных карт, персональных данных и пр. не поддаются оценке.

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

Угрозы, которым подвергаются корпоративные веб-сервисы, имеют пять основных видов:

  • Нарушение доступности сервиса вследствие атаки типа «отказ в обслуживании».
  • Подмена веб-сайта или изменение его содержания с целью осуществления прямых злонамеренных действий или сбора данных для последующего их использования.
  • Внедрение вредоносного кода на веб-сайт без его видимого изменения с целью осуществления атаки на ИС владельца сервиса или на пользователей.
  • Мошенничество с клиентскими данными (кража/изменение данных CRM, биллинга и пр).
  • Утечка данных с веб-ресурса – прямая кража персональных данных пользователей, информации об их банковских картах и т.п.

Все это – серьезные риски, которые должны учитываться, а потенциальные потери – минимизироваться. «АСТ» имеет опыт внедрения комплексных систем по защите корпоративных веб-сервисов и бизнес-приложений, способных обеспечить всестороннюю защиту от описанных угроз как на уровне фронт-энда сервисов, так и на уровне их внутренней функциональной инфраструктуры. При этом используются методологии и лучшие в своем классе продукты, гарантирующие высокий уровень безопасности.

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

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

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

То есть причинами угроз безопасности — взломов и утечек данных — могут быть:

  • Уязвимости самого сайта / приложения перед кибератакой — например, отсутствие защиты от перебора паролей, возможность внедрения стороннего кода (XSS, SQL-инъекции, отсутствие защиты от CSRF)
  • Недостаточное быстродействие системы или повышенная ресурсоёмкость обработки запросов, что приводит к уязвимости к атакам типа «отказ в обслуживании» — (D)DoS
  • Ошибки, допущенные администратором веб-сервера — несвоевременное обновление ПО или небезопасное конфигурирование сервисов
  • Незнание или несоблюдение сотрудниками банальных правил безопасности — простые пароли, ввод данных на фишинговых сайтах, заражение вирусами ПК.

Рекомендации

  • Доверяйте разработку требовательных к уровню безопасности сервисов опытным специалистам. Новички, как правило, могут добиться работоспособности приложения, но не в состоянии учесть риски взлома и атак типа «отказ в обслуживании».
  • Администрированием сервера должен на регулярной основе заниматься компетентный специалист, большинство заражений сайтов вирусами происходит из-за того, что серверное ПО никто не обновляет, а очень много утечек данных связаны с неверным конфигурированием серверных служб (из банального — открытые «в мир» порты систем хранения).
  • Обучайте пользователей основам информационной безопасности, урезайте права до необходимого для работы минимума и используйте мониторинг доступа к чувствительной информации. Огромное количество проблем связано именно с некомпетентностью нетехнического персонала, возникающих как из-за банальной некомпетентности (попался на фишинг, «случайно» удалил данные), так и по злому умыслу (хищение клиентской базы, слив заказов конкурентам и т.д.)
  • Если вас мучают сомнения о безопасности вашего сайта, то закажите аудит безопасности у независимой компании. Мы на своей практике были по обе стороны этого процесса — и мы проверяли сторонние разработки на уязвимости, и разработанные нами системы проверяли — особенно много и тщательно в банковской / финансовой сфере.

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

Основы информационной безопасности: оценка рисков и затрат, основные подходы

Информационная безопасность — обеспечение конфиденциальности, целостности и доступности информации.

Конфиденциальность — обеспечение исключительно авторизованного доступа к информации: информация не должна предоставляться и не должна раскрываться неавторизованным физическим лицам, организациям или процессам. Целостность — поддержание и обеспечение точности и полноты данных на протяжении всего жизненного цикла: данные не должны быть изменены неавторизованным или незаметным способом. Доступность — обеспечение беспрепятственного доступа к информации авторизованным пользователям: системы хранения и обработки информации, интерфейсы работы с информацией, системы обеспечения авторизованного доступа и каналы связи должны функционировать корректно.

Информационная безопасность — очень важное направление в информационных технологиях. В современном мире достаточно много угроз лежит именно в сфере обеспечения безопасности данных.

DDoS — распределенные атаки типа «отказ в обслуживании»

DoS-атака — это атака типа «отказ в обслуживании» — Denial of Service. DDоS — это атака того же типа, но распределённая (distributed), то есть производящаяся с более чем одного атакующего компьютера.

Cуть этой разновидности атак состоит в том, чтобы «перегрузить» атакуемый сервер или «забить» каналы связи, что или ухудшает качество работы атакуемого приложения, или вызывает сбой и вообще прекращает его работу.

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

Процессы, которые важны для информационной безопасности

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

Взломы, утечки данных и неработоспособность ключевых систем приводит как к финансовых потерям, так и к репутационным издержкам. Чтобы снизить риски в сфере ИБ стоит внедрять базовые процессы ИБ в разработку, тестирование и системное администрирование.

Реализовавшиеся риски в области информационной безопасности дорого обходятся бизнесу. Вероятность проблем можно существенно снизить, если встроить процессы ИБ в разработку, тестирование и системное администрирование.

Защита Web-сервисов с использованием mod_security

Web-сервисы все чаще становятся неотъемлемой частью Web-приложений нового поколения. И они также уязвимы к атакам. Природа таких атак точно такая же, как и для обычных Web-приложений, однако принцип действий разный. Эти атаки могут привести к утечке информации; далее, они способствуют удаленному выполнению команд. Используя WSDL, хакер может определить точку доступа и доступные интерфейсы Web-сервисов. Интерфейсы эти принимают данные с использованием SOAP по HTTP/HTTPS и без хорошей защиты на уровне исходного кода могут быть взломаны. mod_security работает как Web-модуль сервера Apache, идеальный для защиты Web-сервисов против атак, которые также включают специально обработанные POST запросы, содержащие SOAP конверты.

Web-сервисы все чаще становятся неотъемлемой частью Web-приложений нового поколения. И они также уязвимы к атакам. Природа таких атак точно такая же, как и для обычных Web-приложений, однако принцип действий разный. Эти атаки могут привести к утечке информации; далее, они способствуют удаленному выполнению команд. Используя WSDL, хакер может определить точку доступа и доступные интерфейсы Web-сервисов. Интерфейсы эти принимают данные с использованием SOAP по HTTP/HTTPS и без хорошей защиты на уровне исходного кода могут быть взломаны. mod_security работает как Web-модуль сервера Apache, идеальный для защиты Web-сервисов против атак, которые также включают специально обработанные POST запросы, содержащие SOAP конверты.

Проблемный Домен

Для атаки Web-сервисов существует четыре основных направления:

  • Инъекция в буфер с непостоянным размером
  • Инъекция метасимвола
  • SQL инъекция
  • SOAP раскрытие дефектного кода

Обычно конфигурации межсетевых экранов беспрепятственно пропускают входящий HTTP/HTTPS трафик. Каждая из вышеуказанных атак, проще говоря, представляет собой посылку специально обработанного трафика, выглядящего как обычный трафик, поэтому он и проходит через межсетевой экран. В этой статье будут описаны пути и средства разделения легального и злоумышленного HTTP/HTTPS трафика, и, в дальнейшем, блокировки злоумышленного. Выполнение этих действий поможет резко снизить вероятность успешного проведения атаки через 80/443 порты.

Каково же решение?

Решений на самом деле очень много, начиная с установки дополнительных проверок на вводимые данные. Один из способов – провести проверку содержимого каждого входящего запроса и сравнить его с заранее определенными правилами. Это предотвратит проникновение злоумышленных SOAP запросов в Web-службы на уровне исходного кода. Mod_security может использоваться для защиты против всех типов нападений в том случае, когда вы правильно развернули и настроили его для Web-служб. В этой статье будет подробно рассказано — как настраивать mod_security для защиты Web-служб.

После установки Web-служб необходимо провести грамотную защиту от различных направлений атак. Каждое направление атак требует своего подхода со стороны защиты. В качестве примера рассмотрим фиктивный случай с банком.

Blue Bank (www.bluebank.example.com) только что принял Web-сервисы с использованием mod_security. Эти службы предоставляют банковые сервисы через Интернет для финансовых партнеров и клиентов (баланс счета, денежные переводы, исправление личных данных). На рисунке 1 показана архитектура развертки Web служб Blue Bank’a.

Рисунок 1. Система Web-служб Blue Bank’a

Существует много способов развертывания Web-служб. В нашем случае Web-служба запускается на Tomcat/Axis и подключается к Web-серверу Apache. Приложения банковских Web-сервисов написаны на Java (с расширением файла .jws).

Важные части настроек Apache и Axis включают в себя Apache httpd.conf, который загружает Tomcat:

Файл Axis — web.xml, который поддерживает AxisServlet для Web сервисов в обработке:

С того момента, как выше указанные настройки вступили в силу, вы можете ставить любые Web-службы на свой сервер. Если посмотреть ответ сервера на запрос банера, то можно увидеть следующее:

Этот баннер указывает на то, что Web-сервер крутится на Apache/2.0.50 (Unix) с запущенным модулем mod_jk2/2.0.4. Axis запускается как часть Web-приложения Tomcat и готов для поднятия Web-сервисов. Для обеспечения безопасности на уровне Web- сервисов, Blue Bank загрузил модуль mod_security, предоставляющий возможности программной фильтрации. Следующая строка в httpd.conf загружает модуль безопасности:

С установленным mod_security Blue Bank может добавить правила фильтрации в httpd.conf:

Этого вполне достаточно, чтобы позволить системным администраторам и разработчикам использовать mod_security для обнаружения входящих злонамеренных HTTP/HTTPS запросов.

Метод/Интерфейс вывода баланса счета из данных, полученных от WSDL

Тщательно рассмотренный WSDL-ответ является результатом выполнения входящего HTTP запроса. Особый интерес здесь представляет метод инициализации, который берет банковый id и передает состояние счета обратно клиенту через HTTP. Тэг операции устанавливает методы, которые может использовать клиент Web-сервисов. Важные отрывки файла WSDL включают:

Как показано выше, передача id конкретному методу приведет к возврату строки в выходных данных. Когда вы посылаете id банкового счета как входные данные Web-сервису, вы получаете информацию о балансе счета.

Вызов Web-сервиса через HTTP

Клиенты или партнеры Blue Bank, запрашивающие информацию о состоянии счета через Интернет могут выбрать информацию реквизита, послав правильно собранный конверт Web-сервисам банка. На рисунке 2 показан HTTP запрос на информацию о балансе счета с id 12123, посланный Web-сервису.

Рисунок 2. Вызов Web сервиса через HTTP

Существует несколько способов создания SOAP клиентов, которые будут генерировать SOAP запросы правильного формата. Ниже представлен пример SOAP клиента с использованием SOAP::Lite на Perl. Следующий простой код генерирует SOAP запрос:

Однако существует вероятность перехвата HTTP-запроса с помощью снифера, например ethereal. HTTP/SOAP запрос, посланный на www.bluebank.example.com с id 12123 сгенерирует что-то вроде этого:

Встраиваем ресурсы Web-сервисов в mod_security

Web сервис Blue Bank’а использует URL www.bluebank.example.com/axis/getBalance.jws. Необходимо создать набор правил для этого ресурса. Blue Bank встроил этот ресурс в httpd.conf:

Следующий блок директивы относится к критерию фильтрации для /axis/getBalance.jws. Здесь добавляется требуемая метка-заполнитель для защиты Web-сервиса. Метки-заполнители находятся в блоке .

Здесь находятся две очень важные директивы:

Эта директива отключает другие правила и дает пустое пространство для нового набора правил, разрешающих вводить только путь.

Для вызова процедур Web сервисов используется метод POST. Следовательно, следующая директива, которую следует задействовать – SecFilterScanPost – для включения POST фильтрации.

Выполнив эти действия, Blue Bank установил защиту в форме mod_security. Кроме того, mod_security знает что нужно охранять – id, который посылают клиенты Web-сервису в SOAP конверте.

Защищаемся от Других Направлений Атак

Первым делом для защиты ото всех входящих злоумышленных запросов, Blue Bank’у нужно перехватить значение id, чтобы предостеречь клиента от ввода неверного значения. SOAP запрос использует XML тэг для передачи информации id во внутренний код Web сервиса. Тэг выглядит примерно следующим образом:

Чтобы отфильтровать запрос, mod_security должен как-то прочитать значение, ассоциированное с тэгом; в нашем случае это 12123. В mod_security имеется несколько возможностей для перехвата значения, переданного с POST запросом. Один из методов – это использование заготовленного фильтра:

Выделенная линия перехватывает запрос, сделанный на id. POST_PAYLOAD перехватывает блок данных POST и пытается сравнить его с правильной маской ( ]*> ). Эта маска регулярного выражения подтверждает, что существует тэг для id. Только после этого процесс пойдет дальше по оставшимся проверкам (из-за цепной директивы). Другими словами, если тэг id существует, mod_security переходит к следующей проверке.

Если в POST запросе содержится id, то сервер сможет обработать информацию. Однако злоумышленник может модифицировать определенное значение, чтобы провести инъекцию. Существует четыре основных методов атак.

Вид атаки 1: Инъекция в буфер с непостоянным размером

Одной из основных опасностей при передаче большого буфера в переменную является то, что большой буфер может вызвать сбой в работе приложения и/или выполнить произвольный код во время работы. Правило, представленное ниже защищает переменную id от данного типа атаки:

Эта директива позволяет принимать в буфер только первые пять символов. Используется маска ввода ]*>. <6,>. Чтобы убедиться в том, что описанный выше блок директив работает, Blue Bank может послать два запроса, один – соответствующий установленной длине; другой – превышающий её.

В случае, приведенном выше, буфер из пяти символов был пропущен и сервер прислал ответ со значением $2500. Ниже показан запрос и ответ сервера на id 121234 (шесть символов):

Модуль mod_security отклонил этот запрос. Статус 500 говорит о том, что ответ получен. Таким образом, запрос никогда не затронет уровня Web-сервисов. Blue Bank’у удалось поострить грамотную защиту от переполнения буфера – часто встречающейся и игнорируемой уязвимости.

Вид Атаки 2: Инъекция Мета Символа

Другая угроза состоит в использовании мета символов (%,’,”). Эти символы могут стать причиной атаки методом SQL инъекции, приводящей к утечке информации. Следующая стратегия обеспечит устойчивость к таким атакам.

Маска выражения ]*>.*[^a-zA-Z0-9][^ отклоняет HTTP запрос, если переменная POST_PAYLOAD содержит символы, не являющимися строковыми. Это очень важная возможность в модуле mod_security.

Ниже показан запрос и ответ сервера на id 12’12:

Эта атака тоже не удалась, а mod_security перехватил её.

Вид Атаки 3: SQL инъекция

В переменные можно вставлять и SQL операторы. Возможно и объединение нескольких SQL операторов. Если ваше приложение не очищает такие входные данные, то злоумышленники могут добавить SQL операторы к уже существующим, часто с плачевными последствиями. Blue Bank блокировал атаки типа SQL-инъекция, добавив следующие директивы:

Выделенные жирным строки проверяют, содержатся ли в запросе слова «select * from . . .», а если находит их, то возвращает статус 500, как в предыдущем примере. Аналогично вы можете добавить SQL операторы, которые следует блокировать, обновлять и т.п.

Вид Атаки 4: SOAP Раскрытие Дефектного Кода

Один из основных источников информации в Web-сервисах – это дефектный код. Вызванная на сервере ошибка может создать дефектный код. Ниже представлен запрос злоумышленника и ответ сервера в результате подстановки символа «а» вместо целого числа в переменную id:

Как показано в ответе сервера, дефектный код может раскрыть критическую внутреннюю информацию. Это достаточно веский довод для создания соответствующих фильтров:

Эта директива сканирует выходной блок данных и принимает определенные фильтры.

Директива блокирует исходящий трафик, содержащий дефектные коды. Если атакующий посылает сформированный запрос с символом «а» в поле целых чисел, он получит ответ, похожий на этот:

Заключение

mod_security выглядит как еще один продукт в области безопасности, однако имеет хорошее превосходство над другими уже доступными утилитами. Кроме обнаружения вторжений и системы защиты на уровне HTTP, mod_security также имеет возможности фильтрования POST_PAYLOAD.

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

Shreeraj Shah основатель и руководитель Net-Square.

Подписывайтесь на каналы «SecurityLab» в Telegram и Яндекс.Дзен, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.

Читать еще:  Planner язык программирования
Ссылка на основную публикацию
Adblock
detector