В предыдущих статьях я описывал методы защиты Web-приложений с точки зрения проектирования и программирования. Пришло время рассмотреть вопрос о том, как обеспечивается безопасность пользователей этих приложений, и в первую очередь поговорить о механизме регистрации. Давно ушли в прошлое те времена, когда администратор мог просто создать файл .htaccess и применить встроенный базовый механизм аутентификации на языке HTML, который был простым в использовании, но в то же время исключительно неэффективным. Фишинг, психологические атаки, хищение персональных данных и другие виды мошенничества в Internet встречаются все чаще. Поэтому с точки зрения безопасности при выполнении большинства транзакций в сети Web, и прежде всего повторяющихся транзакций, которые предполагают доступ к персональным финансовым данным, полагаться исключительно на пароли не стоит. Одно дело, если кто-то получит доступ к вашей учетной записи в Internet-магазине Amazon или к учетной записи в бесплатной службе электронной почты. Если же злоумышленник взломает ваш банковский счет через Internet — это уже совсем другая история.

После ряда получивших широкую огласку посягательств на конфиденциальные данные крупных организаций общественность и руководство государства стали уделять больше внимания растущей угрозе подобного рода преступлений. Представители многих отраслей, особенно тех, чья деятельность регламентируется государственными инстанциями, начинают выступать за внедрение двухфакторной аутентификации пользователей своих Web-приложений. Мощный удар был нанесен по учреждениям сферы банковских услуг. Internet-преступники обращают свои взоры на банки по той же причине, что и обычные взломщики, — потому что в банках хранятся деньги. В недавно разосланном письме Совет США по проверке финансовых учреждений (Federal Financial Institution Examination Council, FFIEC), играющий роль совета управляющих для большинства банков, изложил свои рекомендации, в которых содержится адресованное банкам требование реализовать механизм двухфакторной аутентификации в онлайновых банковских приложениях.

Вполне вероятно, что ваш банк уже сообщил вам об этих изменениях и вы, возможно, уже начали пользоваться новыми методами. Если нет, то несомненно скоро начнете — в упомянутых «рекомендациях» содержится требование, согласно которому банки должны приступить к оказанию услуг с использованием двухфакторной аутентификации уже к началу 2007 г. За ними обязательно последуют и другие секторы (такие, как государственные ведомства, учреждения здравоохранения, юридические организации), функционирование которых предполагает обмен большими объемами персональных данных по каналам Internet. Итак, что же, собственно, представляет собой эта двухфакторная аутентификация и как можно с ее помощью защитить свои Web-приложения? Давайте познакомимся с данной технологией и с некоторыми решениями, представленными сегодня на рынке.

Первое знакомство

В своей статье «Варианты аутентификации» (опубликованной в Windows IT Pro /RE № 3 за 2007 г. — Прим. ред.) Джон Хоуи рассказал о различиях между однофакторной и двухфакторной аутентификацией, так что я не буду подробно останавливаться на этой теме.

Отметим, не вдаваясь в детали, что механизм, предполагающий регистрацию в системе с использованием сочетания имени пользователя и пароля, называется однофакторной аутентификацией. А если для установления личности пользователя применяются два способа (обычно речь идет о комбинации имя пользователя/пароль в сочетании с объектом, который либо имеется только у пользователя (например, маркер, карточка с ключом, цифровой сертификат), либо является его уникальной характеристикой (биометрические данные)), то это уже двухфакторная аутентификация.

Для работы с обоими компонентами двухфакторной схемы можно использовать аппаратные средства — устройства для считывания маркеров и биометрических данных. Стоимость таких изделий на протяжении последних нескольких лет постоянно снижалась. При оптовых покупках USB-устройства для считывания маркеров можно приобрести по невероятно низкой цене, и многие изготовители поставляют на рынок ноутбуки со встроенными средствами дактилоскопической аутентификации. Эти устройства предоставляют информацию (обычно в форме цифровых сертификатов либо биометрических данных), которая является дополнительным средством авторизации пользователей. Аутентификация на базе двух маркеров является эффективным средством защиты от хакеров из-за трудности взлома таких устройств. Однако реализация этой технологии не сводится к покупке связки USB-брелков для ключей и сертификатов. Чтобы интегрировать в свой сайт такой механизм аутентификации, необходимо провести большую работу по программированию сервера базы данных (впрочем, надо сказать, что специалисты Microsoft упростили эту задачу, встроив в Windows XP и более поздние версии средства для осуществления двухфакторной аутентификации). Таким образом, определенные расходы предстоят, однако эти суммы гораздо меньше тех, которые пришлось бы выплачивать раньше.

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

Какие продукты имеются на рынке

Для более крупных сетей, ориентированных на потребителей, подходит лозунг «Чем проще, тем лучше»: чем меньше действий приходится выполнять пользователю, тем лучше. Авторы исследования «Почему фишинг-атаки достигают цели?» (Why Phishing Works?), недавно опубликованного Гарвардским университетом и Калифорнийским университетом в Беркли (http://people.deas.harvard.edu/~rachna/papers/why_phishing_works.pdf ), обнаружили, что, хотя пользователи заинтересованы в том, чтобы их Web-приложения были лучше защищены, они не желают изменения существующих процедур.

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

Геолокализация. Один из методов аутентификации состоит в привязке пользователя к географической точке, т. е. в изучении исходного IP-адреса пользователя или других сетевых данных. Этот метод базируется на предпосылке, что каждый пользователь почти всегда входит в сеть из одного и того же места. В зависимости от уровня детализации контроля данный механизм аутентификации принимает регистрацию только из определенного района, от конкретной центральной телефонной станции, от определенного Internet-провайдера (люди нечасто меняют поставщиков услуг Internet) или использует другие критерии на базе IP. Предположим, к примеру, что некий пользователь обычно выходит в Internet у себя дома в Нью-Йорке через кабельную службу компании Time Warner. Если вместо этого попытка установить соединение будет предпринята из другого места, программа сочтет ее весьма подозрительной и либо заблокирует, либо задаст по этому адресу несколько тестовых вопросов, дабы убедиться, что пользователь именно тот, за кого себя выдает. Найти такую информацию просто; специально для этой цели существуют коммерческие базы данных обновляемых IP-адресов с привязкой к географическим регионам. Важнейшее преимущество данного метода состоит в том, что он может применяться в фоновом режиме, незаметно для пользователя, и обеспечивает двухфакторную аутентификацию с помощью объектов, которые имеются в распоряжении пользователя (сочетание имени пользователя и пароля), и характеристики пользователя (его местоположение, выявляемое через IP-адрес). Но если ограничиться только этим методом, у злоумышленников будет шанс прорвать оборону; помимо прочего, они могут использовать спуфинг IP-адресов или взламывать учетные записи, действуя из того же географического района, что и легитимные пользователи. Кроме того, если первая попытка войти в систему окажется неудачной и начнется процедура аутентификации на базе тестовых вопросов, ей будут присущи все слабости, характерные для метода однофакторной аутентификации. Адрес пользователя или девичья фамилия его матери — это те сведения, которыми, по-видимому, квалифицированный организатор фишинг-атак уже располагает (или может с легкостью получить их с помощью дополнительных фишинг-атак). Из-за упомянутых недостатков я не рекомендую полагаться исключительно на этот метод ни администраторам приложений с высокими требованиями к защите данных, ни представителям организаций, деятельность которых регламентируется государственными инстанциями. С другой стороны, это вполне приемлемый вариант модернизации для тех организаций, где применяется однофакторная аутентификация. В такой компании можно без особых затрат реализовать этот механизм силами сотрудников и с легкостью внедрить его среди пользователей. Такая система аутентификации вполне может применяться, например, на Web-сайте кадровой службы компании.

Аутентификация на базе анализа поведения. Еще один подход базируется на анализе поведения пользователей. В центре внимания контролирующей системы — действия пользователя после регистрации на Web-узле. В тех случаях когда пользователь настаивает на выполнении задач, связанных с определенным риском, начинается следующий этап аутентификации, уже на более высоком уровне. Одно из решений, где используется этот метод, — разработанная компанией Entrust технология IdentityGuard. Она не предусматривает тщательной аутентификации «у парадного входа», но следит за действиями пользователя после того, как он оказался на Web-узле. Определенные действия пользователя могут повлечь за собой запрос на дополнительную аутентификацию, которая может осуществляться в форме опознавательных вопросов, телефонного звонка или прямого отказа в выполнении транзакции. Если пользователь, который обычно заходит на сайт раз в месяц, внезапно начинает регистрироваться по несколько раз в день, программа, вероятно, обратит на него внимание. Разработчик системы может принять решение ограничить доступ пользователя или задать ему тестовые вопросы. Этот механизм напоминает модель, применяемую эмитентами кредитных карт, которая представляет собой систему отслеживания мошеннических действий и применения жестких мер при несоблюдении запрета с помощью специальной базы данных, где фиксируются действия пользователей. Кроме того, компания Entrust предлагает интегрированные решения с маркерами и средствами биометрического контроля, позволяющие с самого начала выполнять процедуру двухфакторной аутентификации.

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

Опознавательные изображения. Еще один тип двухфакторной аутентификации в среде Web — это опознавательные изображения. Примером продукта, в котором этот подход реализован, может служить система Passmark компании Passmark Security. В этой системе, которую избрал Bank of America, клиенты выбирают для себя изображение и название. Если регистрация осуществляется с заранее известного компьютера, то на экране компьютера клиента появляется изображение, служащее ключом к сайту (Sitekey). Если изображения нет, значит, клиент попал на Web-узел, который не является официальным сайтом банка. Но если изображение появляется, клиент вводит пароль и система начинает процесс регистрации. Если же клиент заходит на сайт не со своего обычного места, система, перед тем как отобразить Sitekey, задает ему один из трех опознавательных вопросов. Достоинство данного метода состоит в том, что программа, отслеживающая нажатия клавиш на клавиатуре, keystroke logger, не может идентифицировать ключ Sitekey, поскольку он является графическим файлом. И еще одно достоинство: этот метод осуществляет взаимную аутентификацию, т. е. аутентификация Web-узла выполняется в тандеме с аутентификацией клиента.

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

Компания Green Armor Solutions предлагает несколько иную реализацию рассматриваемого метода. Ее сотрудники разработали технологию IdentityCue, в которой используются визуальные подсказки, созданные из хешей пароля и регистрационного идентификатора. Эти подсказки помогают пользователю подтвердить идентичность системы, не полагаясь на предсказуемые файлы изображений. Кроме того, в подсказках используется сочетание защищенных файлов-маяков и эвристических данных (таких, как версия браузера, часовой пояс) из сеанса работы в Web для дальнейшей аутентификации пользователя. Свободный от недостатков, основанных исключительно на опознавании изображений систем аутентификации, данный метод обеспечивает достаточно прочную связь с самим пользователем, причем связь эта не основывается на опознавательных вопросах, которые могут предоставить опытному хакеру дополнительные сведения о личности пользователя.

Точку ставить рано

Мы познакомились лишь с некоторыми из множества представленных на рынке решений, и нет никаких сомнений, что с развитием технологии на свет появятся новые методы аутентификации. Каждый метод имеет свои «за» и «против», и ни один из них нельзя назвать совершенным. Однако переход вашего Web-узла на двухфакторную систему аутентификации может стать исключительно важной операцией модернизации с точки зрения безопасности. В некоторых случаях федеральные, штатные или местные регулирующие инстанции могут даже потребовать от вас проведения такой модернизации. Двухфакторная аутентификация — еще один барьер для потенциальных хакеров и организаторов фишинг-атак, еще один рубеж вашей обороны. А если Web-сайт будет хорошо защищен, большинство мошенников отступят и займутся поисками более легкой наживы.

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

Тони Хаулетт (thowlett@netsecuritysvcs.com ) — президент сетевой консалтинговой фирмы Network Security Services. Имеет сертификаты CISSP и GSNA