Одним из средств противодействия угрозам нарушения конфи­денциальности является использование средств идентификации и аутентификации пользователей.

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

Аутентификация— проверка принадлежности предъявленного пользователем идентификатора именно этому пользователю. Это проверка подлинности пользователя.

Очень часто используется понятие учетной записи, представляю­щее собой объединение идентификатора и пароля пользователя.

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

• индивидуальный объект заданного типа (удостоверение, про­пуск, магнитную карту и т.д.), называемый токеном;

• биометрические характеристики (голосовые характеристики, отпечатки пальцев, рисунок сетчатки глаза и т.д.);

• знание некоторой информации (пароль).

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

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

Пароль представляет собой известную только данному пользова­телю последовательность символов. Способы проверки правильно­сти пароля могут быть различными:

• по хранимой в системе копии пароля или его свертке;

• по некоторому проверочному значению;

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

Особое внимание разработчики программного обеспечения уде­ляют способам хранения паролей. Наиболее часто используются следующие:

• в отрытом виде;

• в виде свертки;

• в зашифрованном виде.

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

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

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

Рассмотрим основные угрозы безопасности веб-серверовв соот­ветствии с перечнем классификаций угроз веб-сервисам.

На первом месте в этой классификации стоят Атаки на средства аутентификации.

Основными типами угроз безопасности в процессе аутентифика­ции являются:

Подбор (Brute Force). В современной форме это автоматизирован­ный процесс проб и ошибок, направленный на определение пра­вильной информации, запрашиваемой системой. Это может быть имя пользователя, пароль, номер кредитной карточки, ключ шиф­рования и т.д.

Применительно к определению параметров учетной записи вы­деляют прямой и обратный подбор. В первом случае известно имя

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

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

Недостаточная аутентификация (Insufficient Authentication). Эта уязвимость возникает, когда разработчики сайтов оставляют для час­ти ресурсов возможность доступа без проверки учетных данных пользователя. Ошибочно считать, что страница будет недоступной, если нигде на сайте не упомянут ее адрес. Методами доступа к таким страницам могут служить перебор типичных файлов и директорий, анализ сообщений об ошибках и журналов перекрестных ссылок. Даже простое чтение документации к приложению может дать зло­умышленнику необходимую информацию. Все ресурсы должны быть защищены адекватно важности их содержимого и функциональных возможностей.

Небезопасное восстановление паролей (Weak Password Recovery Vali­dation). Большая часть веб-сервисов, требующих идентификации пользователей, делает скидку на их забывчивость и предусматривает механизмы восстановления утраченного пароля. В некоторых случа­ях атакующий имеет возможность несанкционированно получать, модифицировать или восстанавливать пароли других пользователей.

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

Атаки на клиентов (Client-side Attacks). Современные реализации http протокола включают в себя возможность выполнения на клиент-

ской стороне программного кода, загружаемого с сервера. Потенци­ально это открывает для злоумышленников возможность загрузки и выполнения на клиентском компьютере вредоносных программ. Си­туация осложняется тем, что пользователь не ожидает атаки со сто­роны сайта, доверяет ему. На использовании этого доверия основаны различные способы атак на клиентов сервера. Рассмотрим некоторые из них:

Подмена содержимого {Content Spoofing). Для выполнения этого класса атак злоумышленник должен тем или иным способом спро­воцировать пользователя перейти по специально созданной ссылке. Она может быть доставлена при помощи любого из существующих в сети Интернет способов обмена информацией якобы от надежно­го адресата. Возможно и автоматическое ее открытие в браузере пользователя с использованием межсайтового выполнения сцена­риев.

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

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

Эта атака может использоваться для создания ложных страниц, таких, как формы ввода пароля, пресс-релизы и т.д.

Межсайтовое выполнение сценариев (Cross-site Scripting, XSS). Эта угроза безопасности связана с возможностью передачи злоумышлен­ником веб-серверу исполняемого кода, созданного на одном из язы­ков программирования активного содержимого веб-страниц. Этот код впоследствии будет перенаправлен на компьютер пользователя и исполнен в контексте безопасности сервера. В его распоряжении окажутся все данные, доступные с помощью интернет-обозревателя. При этом для атакующего открываются большие возможности. Он может завладеть идентификационными параметрами пользователя, перенаправить его на другой сервер, осуществив подмену содержи­мого и т.д.

Ссылки на код или сам код может быть передан в адресах, заго­ловках HTTP запросов, значениях полей форм и т.п.

Существует две разновидности атак этого типа. Постоянные от­личаются от непостоянных тем, что при их осуществлении передача

кода серверу и передача его клиенту осуществляются в разных HTTP запросах.

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

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

Существуют и более изощренные атаки на клиентов веб-серви­сов, основанные на использовании различных уязвимостей, напри­мер, расщепление HTTP запроса и др.

Следующий класс атак направлен на несанкционированное вы­полнение командили программного кода на веб-сервере.

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

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

Основными атаками такого рода являются:

Переполнение буфера (Buffer Overflow). Это очень распространенная ошибка при программировании. Такая ситуация возникает, когда объем заносимых в память данных превышает размер выделенной для их размещения памяти (буфера). При этом сохраняемые данные переписывают соседние области памяти сервера. Результат, как пра­вило, непредсказуем. Скорее всего, это приведет к ошибке и остано­ву сервера, т.е. к реализации атаки типа «отказ в облуживании».

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

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

Атака на функции форматирования строк (Format String Attack). Используемые при программировании веб-сайтов языки програм­мирования могут содержать операторы записи форматированной символьной информации, обладающие достаточно широкими воз­можностями. Если переданные пользователями данные применяют­ся в качестве аргументов таких функций, злоумышленник может передать сайту строку, содержащую символы форматирования. При этом он может получить возможность изменения последовательно­сти выполнения программы на сервере, перезаписывая некоторые области памяти с помощью этих программ. В результате у него появ­ляется возможность выполнения произвольного кода на сервере, считывания данных из стека, вызывать ошибки в программе (атака типа «отказ в обслуживании»).

Внедрение операторов LDAP (LDAP Injection) и SQL (SQL Injection). Атаки этих типов направлены на веб-серверы, создающие запросы к службам LDAP или SQL запросы к серверам СУБД на основе данных, вводимых пользователем для генерации динамически веб-страниц. Это запросы к службам каталога и запросы на языке SQL к серверу СУБД соответственно. Путем модификации этих запросов, которые будут выполняться на серверах с высоким уровнем привилегий, зло­умышленник может получить контроль над указанными серверами.

Выполнение команд операционной системы (OS Commanding). Путем манипуляций с данными запроса можно попытаться выполнить ко­манды операционной системы на веб-сервере. Как и в случае внед­рения операторов LDAP w SQL, они будут выполняться с тем же уров­нем привилегий, с каким работает компонент приложения. Послед­ствия могут быть достаточно серьезными.

Внедрение серверных расширений (SSI Injection). Злоумышленник может попробовать передать серверу сценарии SSI, используемые для генерации исходного кода страниц. Эти сценарии выполняются сервером перед генерацией HTML страницы. В этом случае у атаку­ющего появляется возможность выполнения команд операционной систем и включения запрещенного содержимого в генерируемую страницу.

Внедрение операторов XPath (XPath Injection). С появлением языка XML появилась еще одна возможность изменить логику работы про­граммы на сервере путем составления пользовательского запроса. Если в работе веб-сервера предусмотрена возможность создания за­просов к ЛЖ£-документам на языке XPath на основе вводимых поль-

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

Одним из принципов построения системы информационной без­опасности является принцип сокрытия данных о структуре и прин­ципах работы информационной системы. Против этого направлены атаки, целью которых служит разглашение информации (Information Disclosure). Знание версий работающего в системе программного обеспечения, наличия и версий установленных обновлений, места расположения временных файлов и резервных копий — вся эта ин­формация может помочь злоумышленнику в планировании атаки на систему. Чем большими знаниями о приложении он будет распола­гать, тем легче будет достичь своей цели.

Примерами таких угроз веб-серверам могут служить:

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

Идентификация приложений (Web Server/Application Fingerprinting). Информация о версиях работающих на сервере приложений может быть получена из анализа особенностей его поведения и информа­ции, предоставляемой самим сервером. В этот список входят: осо­бенности реализации протокола http, заголовки HTTP-ответов, ис­пользуемые сервером расширения файлов (.asp или jsp), значение Cookie (ASPSESSIONи т.д.), сообщения об ошибках, структура ката­логов и используемое соглашение об именах (Windows/Unix), интер­фейсы поддержки разработки веб-приложений (Frontpage/ WebPub-lisher), интерфейсы администрирования сервера (iPlanet/Comanche), определение версий операционной системы.

Примерно так же обстоит дело с определением версий клиентских приложений. Анализ косвенных данных может дать обширную инфор­мацию системе. Так, например, анализ заголовков почтовых сообще­ний, созданных с помощью клиента Microsoft Outlook, позволяет опре­делить версию установленного на компьютере браузера Internet Explorer.

Все это очень важно для атакующего, поскольку детали его ата­кующих действий могут сильно различаться в зависимости от версии операционной системы или приложения. Кроме того, эти знания позволят тщательно скрыть следы взлома системы. Недаром доку­мент RFC 2068 рекомендует использовать настраиваемые параметры в заголовках HTTP ответов.

Утечка информации (Information Leakage). Порой на веб-сервере разработчики размещают свои комментарии, посвященные деталям

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

Обратный путь в директориях {Path Traversal). Одной из целей ата­ки на сервер может служить получение доступа к файловой системе сервера вне зоны, отведенной веб-серверу. Для этого можно попы­таться внедрить символы «../» в адрес страницы, чтобы выйти из ос­новной папки сервера. Если не получается напрямую, можно попро­бовать сделать это, используя сценарии или приложения, основан­ные на механизме шаблонов.

Предсказуемое расположение ресурсов {Predictable Resource Loca­tion). Получить доступ к дополнительной информации о сервере и работающих на нем приложениях злоумышленник может, зная рас­положение содержимого, не предназначенного для общего доступа. Эта угроза очень похожа на описанную выше угрозу индексирования директорий, с той разницей, что у атакующего нет перед глазами выданного сервером списка файлов и папок, а есть знания типичной структуры сервера и приложений. Недостающие данные могут быть получены путем подбора.

Знание логики работы приложения дает в руки злоумышленника дополнительные возможности для проведения логических атак {Log­ical Attacks), к которым обычно относят следующие:

Злоупотребление функциональными возможностями {Abuse of Func­tionality). Угроза использования функций веб-приложения для вы­полнения деструктивных действий. Это могут быть функции каких-либо второстепенных компонентов приложения. Например, функ­ция рассылки в чате может быть использована для рассылки ссылок на подготовленный злоумышленником сервер всем текущим поль­зователям, а модуль передачи данных из HTML формы на почтовый адрес — в качестве ретранслятора для рассылки спама.

Недостаточное противодействие автоматизации {Insufficient Anti-automation). Автоматизация работы сервера избавляет администра­тора от рутинной работы, ускоряет процессы взаимодействия систем, однако в некоторых случаях необходимо ограничивать ее возможно­сти. Кроме того, некоторые операции должны производиться вруч­ную. Адля некоторых функций приложения необходимо реализовы-вать защиту от автоматических атак. Отклик системы на автомати­зированное воздействие извне должен быть минимальным, чтобы

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








Дата добавления: 2017-04-20; просмотров: 537;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.018 сек.