Угрозы информационной безопасности




Основные типы угроз информационной безопасности веб-приложения:


1. Угрозы конфиденциальности – несанкционированный доступ к данным.

2. Угрозы целостности – несанкционированное искажение или уничтожение данных.

3. Угрозы доступности – ограничение или блокирование доступа к данным.


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

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

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


Виды угроз


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

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

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

Во время посещения сайта, между пользователем и севером устанавливаются доверительные отношения, как в технологическом, так и в психологическом аспектах. Пользователь ожидает, что сайт предоставит ему легитимное содержимое. Кроме того, пользователь не ожидает атак со стороны сайта. Эксплуатируя это доверие, злоумышленник может использовать различные методы для проведения атак на клиентов сервера. Такого рода атаки могут быть задействованы как в сложных сценариях атаки (watering hole, drive by), так и в более привычных — клиент-сайд атаках, например XSS.

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

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


Виды атак на веб-приложения


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

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

10. Языки запросов XPath, XQuery.

\XPath (XML Path Language) — язык запросов к элементам XML-документа. Разработан для организации доступа к частям документа XML в файлах трансформации XSLTи является стандартом консорциума W3C. XPath призван реализовать навигацию по DOM в XML. В XPath используется компактный синтаксис, отличный от принятого в XML.

XML имеет древовидную структуру. В документе всегда имеется корневой элемент (инструкция <?xml version="1.0"?> к дереву отношения не имеет). У элемента дерева всегда существуют потомки и предки, кроме корневого элемента, у которого предков нет, а также тупиковых элементов (листьев дерева), у которых нет потомков. Каждый элемент дерева находится на определённом уровне вложенности (далее — «уровень»). У элементов на одном уровне бывают предыдущие и следующие «братские» элементы, каждый из которых образует со своими потомками отдельный слой внутри уровня.

Это очень похоже на организацию каталогов в файловой системе, и строка XPath в логическом смысле — правила выбора пути к нужным «файлам» — элементам.

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

XQuery — язык запросов, разработанный для обработки данных в формате XML. XQuery использует XML как свою модель данных.

XQuery 1.0 был разработан рабочей группой XML Query в составе организации W3C.

XQuery является языком, который может выполнять запросы к структурированным или полуструктурированным XML-данным. С xml поддержке в типа данных Компонент Database Engine, документы могут храниться в базе данных и запрашиваться при помощи языка XQuery.

Язык XQuery основан на существующем языке запросов XPath с дополнительной улучшенной поддержкой итераций, результатов сортировки и возможности конструировать необходимые структуры XML. Язык XQuery работает с моделью данных XQuery. Это абстракция XML-документов и результатов XQuery, которые могут быть типизированными и нетипизированными. Сведения о типе основываются на типах, предоставляемых языком XML-схем W3C. Если нет доступных сведений по типам, XQuery считает данные нетипизированными.Это похоже на то, как XPath версии 1.0 обрабатывает XML.

Для запроса к экземпляру XML, который хранится в переменной или столбце типа xml , можно использовать методы типа данных xml.

11. Языки преобразования данных XSL, XQuery.

XSL (eXtensible Stylesheet Language) — семейство рекомендаций консорциума W3C, описывающее языки преобразования и визуализации XML-документов. Состоит из трех частей:

  • XSL Transformations (XSLT) — язык преобразований XML-документов.
  • XSL Formatting Objects (XSL-FO) — язык разметки типографских макетов и иных предпечатных материалов.
  • XPath — язык путей и выражений, используемый в XSLT для доступа к отдельным частям XML-документа.

Основные отличия от CSS

· CSS и XSL — принципиально разные технологии. Их области применения пересекаются лишь частично.

· CSS-форматирование HTML-документа применяется браузером на клиентской стороне, а XSL-преобразование выполняется, как правило, на сервере, затем его результат отправляется в браузер клиента.

· Языком, лежащим в основе XSL, является XML, а это означает, что XSL более гибок, универсален, и у разработчиков появляется возможность использования средств контроля за корректностью составления таких стилевых списков (используя DTD или схемы данных).

Семейство XSL [

XSL-трансформация

С помощью XSL можно трансформировать XML-документ в любой вид, будь то HTML, WML, RTF, PDF, SQL, или даже SWF (flash-запускаемый модуль), а также XSL. XSL несёт в себе информацию о том, как будет оформлен документ, где и как должны располагаться данные.

Раздел 4

  1. Веб-сервисы. Спецификация WSDL. Протоколы SOAP и REST. Средства для работы с сервисами.

Web-сервис (служба) – программа, которая организовывает взаимодействие между сайтами. Информация с одного портала передается на другой.

 

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

1. TCP/IP – протокол, который понимается практически любым сетевым оборудованием, от мэйнфреймов до портативных устройств и PDA.

2. HTML - универсальный язык разметки, используемый для демонстрации контента устройствами потребителей.

3. XML – универсальное средство для обработки всех разновидностей данных. На его базе могут работать и прочие протоколы обмена информацией: SOAP и WSDL.

4. UDDI – универсальный источник распознавания, интеграции и описания. Работает, как правило, в частных сетях и пока не нашел достаточного распространения.

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

 

Преимущества

· Создание необходимых условий для взаимодействия программных компонентов вне зависимости от платформы.

· Веб-сервисы основываются на открытых стандартных протоколах. За счет внедрения XML обеспечивается простота формирования и настройки веб-сервисов.

· Применение HTTP гарантирует взаимодействие систем посредством межсетевого доступа.

Недостатки

· Невысокая производительность и большой объем трафика, в сравнении с системами RMI, CORBA, DCOM, за счет использоваться XML-сообщений в разрезе текста.

· Уровень безопасности. Все современные веб-сервисы должны внедрять кодирование, и требовать авторизации пользователя. Хватит ли здесь наличия HTTPS или необходимы более надежные протоколы, как XML Encryption, SAML и т.д., – решаются в ходе разработки.

Спецификация WSDL

WSDL (англ. Web Services Description Language) — язык описания веб-сервисов и доступа к ним, основанный на языке XML.

 

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

WSDL определяет службу [service], как набор конечных точек [endpoint], или портов [port]. При этом специфичные параметры реализации — формат данных, настройки транспортного протокола — отделены от определения абстрактных сообщений [message], операций [operation] и типов портов [port type], что позволяет переиспользовать эти определения. Конкретный тип порта с указанным протоколом передачи и форматом сообщений образует связывание [binding], ассоциация связывания с конкретным сетевым адресом образует порт, а множество портов образует службу. Отсюда для описания службы в WSDL используются следующие сущности:

Тип [type] — контейнер для описания типов данных с помощью какого-либо языка (например, XSD).

Сообщение [message] — абстрактное типизированное определение данных для обмена.

Операция [operation] — абстрактное описание поддерживаемого службой действия или функции.

Тип порта [port type] — абстрактный набор операций, поддерживаемых одной или несколькими конечными точками.

Связывание [binding] — спецификация транспортного протокола и формата данных для конкретного типа порта.

Порт [port] — единичная конечная точка, определенная путем задания связывания и конкретного сетевого адреса.

Служба [service] — множество связанных конечных точек.

Эти элементы будут детально описаны в следующем разделе. Важно отметить, что WSDL не вводит нового языка определения типов. WSDL признает потребность в развитом механизме типизации для описания формата сообщений и поддерживает спецификацию XML Schema (XSD) как каноническую систему типизации. Однако это вовсе не означает, что выбор грамматики ограничивается только одной XSD — использование других грамматик допустимо посредством использования механизма расширения.

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

В дополнение к описанию самого механизма определения служб эта спецификация дает введение в расширения связывания [binding extension] для следующих протоколов и форматов сообщений:

· SOAP 1.1

· HTTP GET / POST

· MIME

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

 

В этом документе используются следующие пространства имен с префиксами:

 

В текущей спецификации используется свободный синтаксис для описания XML-грамматики WSDL:

· Вместо использования строгой грамматики типы XML-сущностей, используемые в WSDL, описываются с помощью фрагментов XML с примерами этих сущностей.

· Имена элементов, заканчивающиеся на ... (например, <element...>), означают, что элементы или атрибуты, не имеющие значения в данном контексте, были опущены.

· За XML-элементами и атрибутами следуют количественные квантификаторы: ? (0 или 1), * (0 или более), + (1 или более).

· Более светлым фоном выделяются конструкции, упоминаемые впервые, либо представляющие основной интерес в контексте конкретного примера.

· Комментарий <-- extensibility element --> указывает на то, что в этой точке возможно включение элементов расширения из другого пространства имен (соответствует ##other в XSD)

· Примеры, начинающиеся в <?xml, содержат достаточные данные и соответствуют данной спецификации, остальные примеры являются фрагментами документов.

Для строгого формального определения грамматики WSDL в разделе A4 приведены XSD-схемы.

Протокол SOAP

SOAP (от англ. Simple Object Access Protocol — простой протокол доступа к объектам) — протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался в основном для реализации удалённого вызова процедур (RPC). Сейчас протокол используется для обмена произвольными сообщениями в формате XML, а не только для вызова процедур. Официальная спецификация последней версии 1.2 протокола никак не расшифровывает название SOAP. SOAP является расширением протокола XML-RPC.

SOAP может использоваться с любым протоколом прикладного уровня: SMTP, FTP, HTTP, HTTPS и др. Однако его взаимодействие с каждым из этих протоколов имеет свои особенности, которые должны быть определены отдельно. Чаще всего SOAP используется поверх HTTP.

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

Основные операции SOAP

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

· Сервер производит публикацию своей информации (расположение, какие методы поддерживает), чтобы клиент нашел этот сервер. Публикация происходит в UDDI каталог.

Структура SOAP сообщений:

· SOAP Envelope (конверт) — сюда входит все сообщение. Состоит из заголовка и тела.

· SOAP Header (заголовок) — дополнительная информация (авторизация, например).

· SOAP Body (тело) — само сообщение.

· SOAP Fault (ошибка) — способ передачи ошибки от сервера к клиенту.

Протокол REST

REST (сокр. от англ. Representational State Transfer — «передача состояния представления») — архитектурный стиль взаимодействия компонентов распределённого приложения в сети. REST представляет собой согласованный набор ограничений, учитываемых при проектировании распределённой гипермедиа-системы. В определённых случаях (интернет-магазины, поисковые системы, прочие системы, основанные на данных) это приводит к повышению производительности и упрощению архитектуры. В широком смысле[уточнить] компоненты в REST взаимодействуют наподобие взаимодействия клиентов и серверов во Всемирной паутине. REST является альтернативой RPC[1].

В сети Интернет вызов удалённой процедуры может представлять собой обычный HTTP-запрос (обычно «GET» или «POST»; такой запрос называют «REST-запрос»), а необходимые данные передаются в качестве параметров запроса[2][3].

Для веб-служб, построенных с учётом REST (то есть не нарушающих накладываемых им ограничений), применяют термин «RESTful».

В отличие от веб-сервисов (веб-служб) на основе SOAP, не существует «официального» стандарта для RESTful веб-API. Дело в том, что REST является архитектурным стилем, в то время как SOAP является протоколом. Несмотря на то, что REST не является стандартом сам по себе, большинство RESTful-реализаций используют стандарты, такие как HTTP, URL, JSON и XML.

 

(или)

 

REST(Representational State Transfer) – это спецификация, построенная на стандартах HTTP, URL, XML и RDF (Resource Description Format).

Это не протокол, а технология, основанная на использовании набора операций: GET, PUT, POST и DELETE. Этих четырех операций оказывается достаточно для манипуляций с сетевыми ресурсами. Они позволяют отделить размещение ресурсов на сервере от восприятия этой информации клиентом и потоковую передачу информации. Горизонтальный подход REST к протоколам означает сохранение существующего уровня HTTP, без выстраивания уровней поверх него. При этом предполагается отказаться от разработки новых протоколов и использовать несколько старых, считая, что для работы с объектами достаточно уметь выполнять четыре типа действий. Так, протокол HTTP определяет методы GET/PUT/POST/DELETE.

В соответствии с базовыми принципами REST надо обращаться к объекту а не вызывать процедуру и передавать ей объект, как в RPC. В протоколе HTTP уже есть ряд методов работы с объектами. При этом, если XML-RPC использует из HTTP-протокола только транспортную часть для передачи XML запроса/ответа, то REST задействует HTTP полностью: и авторизационные заголовки, предпочтения по формату, языку, кодировке, по виду ответа, различные заголовки. Само тело сообщения может передаваться в разных форматах: XML либо JSON. Близость к HTTP упрощает и ускоряет его обработку веб-серверами.
REST остается HTTP – запросом и может оказаться более производительным по сравнению с SOAP. SOAP, в свою очередь, более надежен и безопасен.

 

 

  1. Веб-серверы Apache, nginx, jBoss. Размещение приложений в сети Интернет. Управление серверами.

Apache HTTP-сервер — свободный веб-сервер.

Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.

Ядро[править | править код]

Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation, без участия сторонних программистов.

Теоретически, ядро apache может функционировать в чистом виде, без использования модулей. Однако, функциональность такого решения крайне ограничена.

Ядро Apache полностью написано на языке программирования C.

Система конфигурации[править | править код]

Система конфигурации Apache основана на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:

· Конфигурация сервера (httpd.conf).

· Конфигурация виртуального хоста (httpd.conf c версии 2.2, extra/httpd-vhosts.conf).

· Конфигурация уровня директории (.htaccess).

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

Часть модулей использует в своей работе конфигурационные файлы операционной системы (например /etc/passwd и /etc/hosts).

Помимо этого, параметры могут быть заданы через ключи командной строки.

nginx (engine x — англ. Engine X; по-русски произносится как э́нгинкс[6] или э́нжин-и́кс[7]) — веб-сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах (тестировалась сборка и работа на FreeBSD, OpenBSD, Linux, Solaris, Mac OS X, AIX и HP-UX).

Основные функции [ править | править код ]

nginx позиционируется производителем как простой, быстрый и надёжный сервер, не перегруженный функциями.
Применение nginx целесообразно прежде всего для статических веб-сайтов и как прокси-сервера перед динамическими сайтами.[источник не указан 2094 дня]

HTTP-сервер[править | править код]

· обслуживание неизменяемых запросов, индексных файлов, автоматическое создание списка файлов, кеш дескрипторов открытых файлов

· акселерированное проксирование без кэширования, простое распределение нагрузки и отказоустойчивость

· поддержка кеширования при акселерированном проксировании и FastCGI

· акселерированная поддержка FastCGI и memcached серверов, простое распределение нагрузки и отказоустойчивость

· модульность, фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, HTTP-аутентификация, SSI-фильтр

· несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре через прокси или FastCGI, выполняются параллельно

· поддержка SSL

· поддержка PSGI, WSGI

· экспериментальная поддержка встроенного Perl

В nginx рабочие процессы обслуживают одновременно множество соединений, мультиплексируя их вызовами операционной системы select, epoll (Linux) и kqueue (FreeBSD). Рабочие процессы выполняют цикл обработки событий от дескрипторов (см. Событийно-ориентированное программирование). Полученные от клиента данные разбираются с помощью конечного автомата. Разобранный запрос последовательно обрабатывается цепочкой модулей, задаваемой конфигурацией. Ответ клиенту формируется в буферах, которые хранят данные либо в памяти, либо указывают на отрезок файла. Буфера объединяются в цепочки, определяющие последовательность, в которой данные будут переданы клиенту. Если операционная система поддерживает эффективные операции ввода-вывода, такие как writev и sendfile, то nginxприменяет их по возможности.

Алгоритм работы HTTP сервера выглядит следующим образом[10]:

1. получить очередной дескриптор из kevent(2);

2. прочитать данные из файла и записать в socket, используя либо write(2)/read(2)

WildFly (ранее JBoss Application Server или JBoss AS) — Java EE-сервер приложений с открытым исходным кодом, разработанный одноимённой компанией. Как и многие открытые программы, разрабатываемые коммерческими организациями, WildFly можно свободно загрузить и использовать, однако поддержка и консультации осуществляются за деньги. Достаточно хорошая реализация принципов Java EE делает WildFly конкурентом для аналогичных проприетарных программных решений, таких, как WebSphere или WebLogic.

 

 

3.CMS (Content Management System) на примере Drupal, WordPress, Radiant, Octopress.

Информационная система, используемая для организации совместного доступа и управления содержимым («контентом»)

· Инструменты для создания контента

· Управление хранением

· Предоставление и поиск информации

· Обеспечение доступа к информации различных типов (документы, видео, изображения, звук)

CMS по принципу работы

l С динамической генерацией страниц

l С генерацией при редактировании

l Смешанные

CMS по назначению

l Сайты-визитки

l Блоги

l Форумы

l Галереи

l Системы дистанционного обучения

l Коллективная работа пользователей

l Wiki

l Интернет-магазины

l Универсальные

Работу динамических сайтов обеспечивают CMS или движки — Wordpress, Joomla, ModX, Битрикс и т. д. Их интерфейс обычно не сложнее, чем у текстового редактора — для публикации контента достаточно самых общих знаний html. Главный минус динамических сайтов — большие затраты системных ресурсов: при каждом обращении пользователя взаимодействуют веб-сервер, приложения для генерации страниц и база данных. Резкий рост количества посетителей или запросов означает, что скорость загрузки сайта падает. Кэширование частично снимает это неудобство, но его можно использовать не всегда и не везде. Потребление системных ресурсов открывает уязвимость для DDoS-атак — большое количество запросов выбивает их из эфира. В большинстве случаев движки — системы c открытым кодом, поэтому найти и использовать уязвимости может любой желающий. Наверняка вы уже слышали о том, как можно сломать комментарием Wordpress, а через HTTP-заголовки на Joomla! можно получить доступ к базе данных сайта.

я самых незначительных изменений в содержание сайта. Ускорить и облегчить этот процесс призваны разнообразные генераторы статических сайтов.

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


Дата добавления: 2020-04-25; просмотров: 195; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!