Настройка многофакторной аутентификации в Office 365 с помощью Swivel PINpad

Настройка многофакторной аутентификации в Office 365 с помощью Swivel PINpad

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

 

 

 

1. Введение

2. Общие сведения

3. Архитектура и системные требования

4. Интеграция

5. Результаты

6. Выводы

 

 

Введение

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

За примерами далеко ходить не нужно. Недавно в прессе появились интимные фотографии американских знаменитостей, которые были получены из облачного сервиса компании Apple - они были собраны через перехват паролей на доступ к обычным сервисам. А недавно получили широкую огласку большие базы паролей таких почтовых сервисов как Mail.ru, "Яндекс" и Google. Это само по себе является существенным ухудшением ситуации с паролями, поскольку утекшие базы стали сырьем для словарей. После этих случаев разработчики облачных сервисов предложили ввести дополнительный способ аутентификации с помощью SMS, посылаемых на мобильный телефон, хотя это и более дорогой способ аутентификации и менее удобный - SMS не всегда вовремя доходит.

Тем не менее, для компаний, особенно распределенных, использование в своей работе облачных сервисов достаточно удобно, поэтому разработчики средств защиты предлагают технологии, которые позволяют сделать аутентификацию даже по паролю достаточно надёжной, не прибегая при этом к использованию для этого второго канала передачи информации, такого как SMS, или дополнительных устройств генерации одноразовых паролей. В частности, это можно сделать с помощью технологии экранной панели аутентификации PINpad, которую предлагает компания Swivel.

 

Общие сведения

Набор офисных сервисов Office 365 является одним из наиболее популярных инструментов для организации бизнес-процессов, поэтому сотрудники компаний доверяют ему наиболее ценные данные. К тому же Office 365 часто используется для взаимодействия сотрудников с клиентами и партнёрами, но при этом редко кто пользуется возможностью двухфакторной аутентификации, заложенной в этом сервисе. В результате, иногда перехваченный или подобранный пароль позволяет злоумышленникам вмешиваться в работу корпоративных бизнес-процессов, а если с корпоративных адресов рассылаются спам или фишинговые сообщения, то это может отрицательно отразиться на репутации компании. Зафиксированы даже случаи, когда получение удаленного доступа к облачному сервису компании позволяло злоумышленнику полностью уничтожить данные и остановить нормальную работу компании. Именно поэтому клиентам, которые активно используют данный сервис в своей работе стоит задуматься о том, как обезопасить своих сотрудников от подобных неприятностей во время работы - это может принести как репутацией, так и вполне финансовый ущерб. При этом Microsoft предоставляет возможность по настройке двухфакторной федеративной аутентификации в Office 365 через корпоративную службу Active Directory, но мало кто этой возможностью пользуется.

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

К счастью, компания Swivel предложила не менее удобный, но достаточно дешёвый способ аутентификации без использования дополнительных каналов передачи информации. Его использование не сложнее классического пароля, но лучше защищает как от перехвата парольной информации, так и от её подбора. Подробнее Anti-Malware.ru уже описывали этот метод аутентификации в обзоре технологии. Стоит только сказать, что компания Microsoft предлагает метод, который позволяет использовать Swivel PINpad для аутентификации в том числе и в облачном сервисе Office 365.

 

Архитектура и системные требования

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

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

Следует отметить, что в случае интеграции механизма аутентификации Swivel в облачные сервисы Microsoft Office 365 используется технология федеративной аутентификации. То есть для аутентификации используется такая схема, в которой облачный сервис доверяет механизм аутентификации стороннему ресурсу - в данном случае корпоративному северу Active Directory (точнее промежуточному серверу федеративной аутентификации AD – серверу ADFS). Это позволяет контролировать тех пользователей, которые пытаются получить доступ к корпоративной части облака Microsoft - все запросы на аутентификацию вначале проходят через защитные механизмы Microsoft, а потом передаются в корпоративный домен AD через ADFS, где информация о запросе на аутентификацию может быть зафиксирована и в дальнейшем использована для проведения анализа или расследования.

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

 

Рисунок 1. Предварительная настройка так называемого единого входа с помощью механизма федерации AD

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

 

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

 

Рисунок 2. Интерактивная инструкция по настройке федеративного доступа между Office 365 и нашим «корпоративным»

Интерактивная инструкция по настройке федеративного доступа между Office365 и нашим «корпоративным»

 

Интеграция

Процесс подготовки к интеграции можно разделить на два этапа. Вначале нужно настроить федеративную аутентификацию между Office 365 и корпоративной службой Active Directory, как это описано в интерактивной инструкции в самом сервисе. Вполне возможно, что такая интеграция уже была вами проделана. Далее можно интегрировать сам продукт Swivel в корпоративную структуру Active Directory, как это было описано в уже опубликованном на Anti-malware.ru материале. Сама же интеграция заключается в модификации корпоративного шлюза для федеративной аутентификации, который нужно было построить на первом этапе, так, чтобы реализовать в нем поддержку технологии аутентификации Swivel.

Теперь несколько слов о развернутой в нашей корпоративной сети системе. В первую очередь в ней располагается виртуальная машина с развернутой в ней простенькой структурой Active Directory, которая обеспечивает аутентификацию пользователей в нашем домене AD. Однако, чтобы настроить облачный сервис для аутентификации в моём "корпоративном" домене, нужно было установить дополнительный ADFS-сервер и вначале интегрировать его в соответствии с процедурой (см. Рисунок 2) с Office 365, чтобы обеспечить переброс запросов на аутентификацию из облачного сервера в мою «корпоративную» инфраструктуру.

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

 

Рисунок 3. Создание маршрута из-вне к компьютеру с установленным ADFS, AD и Swivel (его локальный IP-адрес 192.168.1.5)

Создание маршрута из-вне к компьютеру с установленным ADFS, AD и Swivel (его локальный IP-адрес 192.168.1.5)

 

После того, как заработала федеративная аутентификация с Office 365, её нужно было модифицировать, чтобы встроить в неё процедуру Swivel. Впрочем, интеграция Active Directory и Swivel была достаточно подробно описана в предыдущей статье серии, поэтому останавливаться на ней сейчас подробно мы не будем. Стоит отметить только один момент — должна быть настроена одноканальная аутентификация, как это указано на Рисуноке 4.

 

Рисунок 4. Настройки сервера Swivel для одноканальной процедуры аутентификации

Настройки сервера Swivel для одноканальной процедуры аутентификации

 

Не менее важной частью проделанной нами работы была интеграция необходимых элементов аутентификации в ADFS-сервер, который собственно и обеспечивает проведение процедуры для внешних пользователей. Для настройки его интерфейса мне потребовался набор файлов, которые предлагает компания Swivel в виде архива ADFSfiles.zip. Из него нужно скопировать файлы pinsafe_image.aspx и exists.aspx в специально созданную директорию adfs\ls - это странички для выдачи пользователям интерфейса аутентификации.

Также нужно скопировать файлы PINsafeASPNetFilter.dll и PINsafeClient.dll в директорию adfs\ls\bin - это исполнимые части фильтра, который перенаправляет процесс аутентификации в мой сервер Swivel и контроллер домена. В наборе файлов также есть пример конфигурации для сервера ADFS, из которого нужно перенести одну секцию в реальный web.config. Примерное содержание секции такое (описания есть не для всех ключей - только для важных, подробную информацию по ключам можно найти на специальной странице https://kb.swivelsecure.com/wiki/index.php/Microsoft_Office_365):

<appSettings>

  <add key="PINsafeServer" value="192.168.1.6" />

<!--Здесь нужно указать IP-адрес домена AD с установленным на него модулем Swivel — у меня он располагался в соседней виртуальной машине-->

  <add key="PINsafePort" value="8080" />

<!--Порт-->

  <add key="PINsafeContext" value="pinsafe" />

<!--Имя приложения-->

  <add key="PINsafeSecure" value="True" />

  <add key="PINsafeSecret" value="secret" />

  <add key="PINsafeLogonPath" value="/adfs/ls/" />

  <add key="PINsafeLogoffPath" value="/adfs/ls/" />

<!--Пути для установки страниц аутентификации, куда я поместил соответствующие формы pinsafe_image.aspx и exists.aspx-->

  <add key="PINsafeExcludedPaths" value="/adfs/ls/MasterPages/;./pinsafe_image.aspx" />

<!--Здесь указываются все дополнительные пути на сервере, которые могут быть использованы-->

  <add key="PINsafeIgnoreDomain" value="true" />

  <add key="PINsafeAcceptSelfSigned" value="True" />

  <add key="PINsafePassword" value="True" />

  <add key="PINsafeImage" value="True" />

  <add key="PINsafeMessage" value="False" />

  <add key="PINsafeCookieSecret" value="jRKQLRgI//Szz4UfCYtgNI/1KTbOwRYV+X/efvljcGNMW0tWEmlvJdORTl69rXP/" />

  <add key="PINsafeIdleTimeSecs" value="300" />

  <add key="AllowNonPINsafeUsers" value="False" />

  <add key="PINsafeFilterEnabled" value="True" />

  <add key="PINsafeAuthenticationDomain" value="" />

  <add key="PINsafeUsernameField" value="ctl00$ContentPlaceHolder1$UsernameTextBox" />

  <add key="PINsafeOTCField" value="otc" />

</appSettings>

Кроме того, мне пришлось модифицировать файл FormsSignIn.aspx сервера, в который нужно вставить фрагменты из примера Swivel, чтобы на странице проверки аутентификации Office 365 появились необходимые интерфейсные элементы для аутентификации. Выполнив все эти действия, мне удалось добиться, чтобы вход в Office 365 можно было выполнить с помощью Swivel PINpad.

 

Результаты

Собственно, процедура аутентификации в Office 365 после всех проделанных мной операций выглядит примерно так: вначале набирается логин и пароль в самом сервисе, как это было и раньше, см. Рисунок 5.

 

Рисунок 5. Основная страница аутентификации Office 365

Основная страница аутентификации Office365

 

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

 

Рисунок 6. Страница для аутентификации по технологии Swivel

Страница для аутентификации по технологии Swivel

 

Правда, далеко не всегда удавалось правильно попасть по нужным клавишам виртуальной клавиатуры, и тогда можно было обнаружить вот такое сообщение:

 

Рисунок 7. Сообщение об ошибке аутентификации Swivel

Сообщение об ошибке аутентификации Swivel

 

При правильно же набранном дополнительном коде аутентификации мой сервер переадресовывал уже браузер на основной сайт Office 365.

Хотелось бы отметить, что с моей точки зрения как пользователя, интеграция Swivel с авторизацией в Office 365 закрывает для злоумышленника такие возможности, как автоматический сбор и создание базы данных паролей. Для этого придется, как минимум, нанимать людей, которые будут распознавать пароль по собранным троянцем данным. И даже если пароли распознаны вручную, для их использования придется также использовать ручной труд. Это сильно удорожает взлом механизма аутентификации при минимуме затрат для компании-клиента. В то же время для пользователя, особенно работающего на планшетных операционных системах, типа Windows 8.1, iOS или Android, процедура аутентификации не сильно меняется. Но главное, не требуется дополнительного канала для аутентификации, который может оказаться дорогим и не удобным в использовании. То есть внедрение подобного механизма вполне оправдано, особенно для большого количества пользователей. 

 

Выводы

Технология экранной аутентификации, предлагаемая компаний Swivel является более защищенной, чем набор пароля с помощью клавиатуры, без задействования при этом второго канала коммуникаций, такого как SMS, что могло бы сделать использование облачного сервиса более дорогим и менее удобным. Естественно, от целенаправленных атак с возможностью привлечения ручного распознавания она не защитит — в этом случае стоит использовать более дорогие методы аутентификации с привлечением дополнительных устройств. Технология же Swivel хорошо подходит для усиления защиты массового доступа пользователей к корпоративной сети. Например, ее можно использовать для доступа клиентов или партнеров в личный кабинет компании на корпоративном SharePoint или рядовых сотрудников к корпоративной почте Exchange.

В моем частном случае интеграция потребовала достаточно сложной настройки - несколько дней, чтобы разобраться, получить демонстрационный доступ к Office 365 и приобрести прямой IP-адрес. Но для корпоративных пользователей, которые уже имеют федеративную аутентификацию по домену Active Directory и используют сервис Office 365, это наверняка не будет проблемой. Скорее всего, у них это получится быстрее.

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

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

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

RSS: Новые статьи на Anti-Malware.ru