Допустить к защите в ГАК

Заведующий кафедрой информационной безопасности

д. т.н. профессор

       

(подпись)

«___» ________20__ г.

ИССЛЕДОВАНИЕ БЕЗОПАСНОСТИ СОВРЕМЕННЫХ ВЕБ-ТЕХНОЛОГИЙ ЕДИНОГО ВХОДА

(Выпускная квалификационная работа)

Научный руководитель:

доцент

        //

(подпись)

Автор работы:

        //

(подпись)

Оглавление

Оглавление        2

Введение        4

1. Исследование безопасности SSO-технологий        8

1.1 Обзор стандартов OAuth и OpenID        8

1.2 Общие принципы OAuth и OpenID        11

1.3 Методология исследования безопасности SSO-технологий        13

1.4 Анализ SSO-технологий нескольких крупных провайдеров        15

1.4.1 Кросс-доменный транспорт        16

1.4.2 Автоматические перенаправления        17

1.4.3 Вариативность параметра redirect_uri        18

1.4.4 Домены конечных точек        18

1.5 Модели логина        20

1.5.1 Стандартная модель        20

1.5.2 Прокси-модель        20

1.5.3 Модель Контроллер        21

1.5.4 Нативная модель        21

2 Атаки на некоторые SSO-сервисы и клиенты        22

2.1 Стандартная модель        22

НЕ нашли? Не то? Что вы ищете?

2.2 Прокси-модель        23

2.3 Модель Контроллер        24

2.4 Нативная модель        25

Заключение        27

Список литературы        28


Введение

OAuth [1] и OpenID [2] являются наиболее известными сегодня стандартами единого входа (Single sign-on, SSO) для пользователей веб-сервисов, каждый из которых имеет свою долгую историю и закреплен в соответствующем стандарте или RFC документе (OAuth). В середине 2000-ых их появлению и развитию способствовала интеграция большого количества сервисов между собой и в рамках www, и в рамках внутренних корпоративных информационных систем: хотелось иметь, во-первых, единую учетную запись для входа сразу во все сервисы, во-вторых, единый механизм для предоставления доступа к своим данным на сайтах или сервисах. OpenID считается одним из самых известных и надежных решений для единого входа, а OAuth, предназначенный изначально только для авторизации на доступ к клиентским данным, фактически используется ещё и как технология единого входа тоже.

Актуальность темы дипломной работы определяется возросшей ролью открытых стандартов SSO и значительным количеством серьезных уязвимостей, до сих пор обнаруживаемых регулярно у крупных OpenID - и OAuth-провайдеров. Аутентификация через Facebook или GoogleID постепенно начинает дополнять или полностью заменять обычный вход на многих сайтах, а поддержка OAuth в течение последних лет появляется ещё и у приложений, сильно отличающихся от веб-сервисов средой исполнения: в нативных программах и мобильных платформах. При этом, например, в случае Facebook за 2012-ый год можно заметить всего около 4 публикаций о более или менее значимых проблемах безопасности в их протоколе OAuth [6-9], в 2013-ом же году в открытом доступе уже около 7 различных статей [10-16]. Одна из недавних серьезных академических публикаций [8] показывает, как исследователи смогли обойти аутентификацию сразу нескольких основных сервис-провайдеров. Ни одно из перечисленных исследований при этом не объясняет природу появления множества различных ошибок реализации OpenID или OAuth, а также не рассматривает защищенность самих приложений в целом, как правило сосредотачиваясь либо на изучении абстрактных моделей и уже хорошо известных атак, либо на поиске различных уязвимостей в каждой отдельной реализации протокола в отрыве от их общих принципов и от особенностей систем в целом. Вопрос о том, содержат ли указанные технологии какие-либо уязвимости, которые трудно или вообще невозможно исправить, является открытым. Для ответа на этот вопрос необходимо рассмотреть общие принципы и базовые механизмы таких протоколов с точки зрения безопасности, при этом обязательно учитывая реальные условия, среду исполнения и особенности приложений.

Степень разработанности проблемы. Важно, что оба исследуемых стандарта описывают ключевые механизмы безопасности, внедряемые в приложения и сервисы: найденные злоумышленником слабости только в аутентификации или в авторизации сразу могут дать ему возможность скомпрометировать систему напрямую, например, просто получив доступ к необходимым данным, минуя другие атаки и этапы. Кроме этого, очевидно, что если у сервис-провайдера уязвима технология SSO, то под угрозой оказываются сразу все клиенты такого провайдера, поэтому баги таких протоколов у крупных провайдеров ценны и интересны с точки зрения атакующего, а возможные уязвимости уже внутри самих стандартов — невероятно дороги и, к счастью, крайне редки [17, 18]. Благодаря таким особенностям OAuth и OpenID стали одним из основных ядер, вокруг которого концентрируются исследования по безопасности как с академической стороны (криптография, формальный анализ, проверка моделей, приватность и защита персональных данных) [20-23, 30], так и со стороны независимых исследований (ручной анализ, техники новых атак) [7,  8, 14, 16]. Говорить о гарантированно безопасном протоколе можно лишь в рамках какой-то модели, и при этом можно действительно обеспечить защищенность самого протокола [20, 23]  при соблюдении необходимых рекомендаций из модели угроз [24]. Однако любая модель как минимум неполна по сравнению с конкретной реализацией этого протокола и не может дать больше, чем в эту модель изначально заложено (возможные атаки, уровень абстракции), и кроме этого может быть неточна. По этой причине, подобно какому-либо давно используемому криптографическому примитиву, формально не доказанная безопасность которого требует регулярных проверок от криптоаналитиков, научным сообществом точно так же негласно поощряется постоянный поиск проблем безопасности стандартов и технологий SSO, новых атак на них и способов защиты, а также методов их исследования. Рассмотрение безопасности технологий SSO с учётом особенностей приложений и сред исполнения может позволить обнаружить ранее неизвестные направления для атак. При этом, исследование безопасности общих базовых механизмов таких технологий потенциально может выявить наиболее серьезные проблемы, актуальные сразу для огромного количества различных протоколов и приложений.

Цель дипломной работы состоит в исследовании безопасности современных технологий единого входа.

Задачи дипломной работы:

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

Объектом исследования в дипломной работе является защищенность SSO-технологий на основе на основе OpenID и OAuth.

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

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

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

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

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

Наиболее существенные результаты, полученные в процессе исследования, состоят в следующем:

    Выявлены фундаментальные проблемы безопасности SSO-протоколов Показаны новые виды атак на популярные приложения с использованием выявленных слабостей Дана классификация SSO-приложений, в контексте которой предложены методы для обнаружения уязвимостей, связанных с особенностями технологий SSO

1. Исследование безопасности SSO-технологий

1.1 Обзор стандартов OAuth и OpenID

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

Протоколы на основе OpenID и OAuth задумывались прежде всего для веб-приложений и сайтов, и поэтому работают поверх веб-стека, то есть, являются веб-протоколами, работающими над HTTP и внутри браузера, в отличие, к примеру, от таких протоколов аутентификации, как Kerberos, который использует в качестве транспорта непосредственно TCP или UDP. Несмотря на привязку к веб-технологиям, оба стандарта используются даже в тех системах, которые не являются веб-приложениями или сайтами в чистом виде, например, для аутентификации нативных программ [3], в мобильных платформах [4] и в корпоративных приложениях [5].

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4