Защита вашего аккаунта Google с помощью двухфакторной аутентификации

Вступление

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

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

Другой вариант — взломать его почту тем или иным способом и получить оттуда ссылку или временный пароль, который сгенерирует сервис для восстановления пароля. Этим список вариантов, конечно, не ограничивается, но в этой статье речь не об этом.

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

Четвертый тип атак — MITM («человек в середине»). Если вход выполняется по паролю, то можно представить следующий сценарий атаки:

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

Для данной атаки в локальной сети перенаправить трафик можно двумя способами:

  • ARP спуфинг. Во время этой атаки, компьютер атакующего рассылает ложные сообщения ARP пакета о том, что MAC адресом роутера является MAC адрес компьютера атакующего. В результате компьютеры в локальной сети начинают отправлять сетевые пакеты через компьютер атакующего. Это универсальный вариант, который подойдёт во всех случаях.
  • DNS спуфинг. Суть в подмене ответов на DNS запросы, в результате компьютер жертвы будет получать неправильные IP адреса для запрашиваемых хостов. Этот вариант подходит только если подключение к удалённому серверу или сайту выполняется по имени хоста.

Для перехвата паролей пользователя в реальном времени на сайтах часто используется DNS спуфинг, когда пользователь заходит на фейковых сайт, который выглядит как оригинал и вводит там данные. Например, существовало несколько клонов сети Vkontakte, которые воровали пользовательские данные.

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

Про безопасность и параметры файлов cookie можно почитать здесь.

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

Также, некоторые боятся использовать авторизацию на различных сервисах через аккаунты в соцсетях (Facebook, Vk, и т.д.). В целом, такой способ авторизации достаточно безопасен и его бояться не стоит. При таком способе авторизации на сайтах пароль не используется. Вместо этого между сторонним сайтом и аккаунтом в соцсетях настроено безопасное соединение по протоколу OAuth, которое использует ключи. Сайт доверяет публичному соцсервису и не проверяет пароль, но он спрашивает у сервиса, выполняющего аутентификацию, проверенный вы пользователь или нет. Сервис, выполняющий аутентификацию проверяя вас, выдает OAuth токен вам в браузерную сессию, который и возвращает токен авторизации сайту.При условии, что ваш компьютер и браузер не скомпрометированы, такая передача одноразового токена безопасна. Перехватить и использовать такой токен на другом компьютере практически невозможно, но единственное, что сам процесс аутентификации в соцсети может быть скомпрометированы через те же самые cookie (мало кто выходит из Facebook, и сессия постоянно поддерживается).

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

Защита Google аккаунта

Почему надо защищать именно его? Многие хранят пароли, сохраняемые Google Chrome в Google аккаунте. И действительно, это удобно, но опасно, если не использовать дополнительную защиту. При таком использовании Google аккаунта обязательно требуется включить двухфакторную аутентификацию (2FA). 2FA практически на 100% делает процесс аутентификации безопасным (см. применения ниже). На данный момент его следует включать на всех сайтах, где это доступно.

2FA включена
2FA включена

Для настройки 2FA в Google аккаунте:

  1. Зайдите в настройки Google аккаунта по ссылке https://myaccount.google.com/security
  2. В разделе «Вход в аккаунт Google» кликните на Двухэтапная аутентификация.
  3. Нажмите на кнопку Включить. Вы автоматически будете получать уведомления от Google на всех телефонах Android, где вы вошли в аккаунт Google.
  4. В разделе Уведомлений от Google вы увидите список устройств, на которых вы были авторизованы с Google аккаунтом. Удалите те, в которых вы сомневаетесь.
  5. Добавьте дополнительные варианты для второго этапа аутентификации. Я рекомендую использовать приложение Google Authenticator.
  6. Также, дополнительно добавьте номер телефона для SMS на случай, если телефон сломается, но у вас будет доступ к SIM карте.

Как это работает?

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

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

Настроены разные методы 2FA
Настроены разные методы 2FA

Если вам нужно войти в свой аккаунт на чужом телефоне, используйте режим инкогнито в браузере. Чтобы выйти из аккаунта, закройте все окна инкогнито, когда закончите пользоваться телефоном.

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

Почему не стоит использовать SMS как основной способ для 2FA?

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

Самый удобный и безопасный способ двухфакторной аутентификации — OTP приложение (One-time Passcode), в данном случае поддерживается Google Authenticator для Android и iPhone. Настраивается оно максимально просто.

Добавление OTP приложения
Добавление OTP приложения
  1. Установите данное приложение на смартфоне.
  2. В разделе «Добавьте дополнительные варианты для второго этапа аутентификации» найдите пункт Приложение Authenticator и кликните Создать. Выберите тип смартфона.
  3. Откройте приложение Google Authenticator на смартфоне, нажмите в нем + и отсканируйте QR код с экрана.
  4. Введите 6-значный OTP код, сгенерированный приложением после добавления ключа.

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

Прочие настройки Google безопасности

Вернитесь в раздел Безопасность вашего Google аккаунта. Внизу страницы войдите в секцию «Ваши устройства». Тут вы можете посмотреть на устройства, на которых вы вошли в аккаунт, а также удалить ненадежные.

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

Настройка безопасности Google Chrome

Если вы используете сохранение паролей в Google аккаунт, то важно, чтобы на компьютере, на который вы залогинились, был установлен пароль пользователя. В этом случае для прочтения или изменения паролей в браузере каждый раз будет спрашиваться еще и пароль аккаунта Windows. В отличие от Mozilla Firefox, мастер пароля для безопасного хранения паролей в Chrome нет — надо использовать системный.

Кроме этого вот рекомендации по настройке Chrome:

  • Регулярно чистите кэш браузера, включая cookies.
  • Проверяйте список установленных дополнений по разделе chrome://extensions/. Удаляйте подозрительные.
  • Зайдите в раздел настройки безопасности chrome://settings/security и убедитесь, что там выбрана стандартная или расширенная защита.
  • Начиная с версии 83 браузера вы можете включить «Use Secure DNS» (Использовать безопасный DNS-сервер). Эта очень полезная опция включает протокол DNS-over-HTTP, которая защитит от DNS-спуфинга и заодно разблокирует некоторые сайты. Выберите они из персонализированных DNS серверов: Google Public DNS (8.8.8.8), Cisco OpenDNS (208.67.222.222), Cloudflare (1.1.1.2), Quad9 (9.9.9.9).
  • Проходите периодические проверки Google на предмет украденных паролей. Перейдите в браузере по ссылке chrome://settings/passwords. Там вы увидите новый пункт «Проверить пароли», открыв который вы сможете увидеть список небезопасных или ранее утекших в сеть паролей.

Ну и в заключение напомню также общие рекомендации по паролям:

  • пароли должны быть разные на разных сервисах. Никогда не используйте одинаковый пароль на вашем аккаунте и почтовом ящике для восстановления пароля;
  • достаточно сложные с точки зрения подбора по словарю (не менее 8 символов, со спец. символами), но легкие для вашего запоминания;
  • используйте свой собственный алгоритм для генерации пароля, например, заменяйте определенные слова символами;
  • не используйте личные данные в паролях;
  • периодически меняйте пароли — они раньше или позже могут утечь;
  • всегда добавляйте информацию для восстановления пароля, секретный вопрос, другой email и телефон для восстановления.

Желаю вам безопасного паролехранения!

P.S. Это моя первая статья здесь, поэтому буду рад вашим ^ апвоутам ^. Даунвоуты, напротив, демотивируют, но главное - никак не помогают улучшить материал. Если у вас есть замечания, исправления, рекомендации - лучше поделитесь ими в комментариях вместо даунвоута, я с радостью улучшу статью. Спасибо!

44
3 комментария

Огромное спасибо автору этой статьии !!! Очень интересная и полезная информация.браво!!!👍👍👍  Вы добрый человек.😊

Спасибо большое за добрый комментарий. Это воодушевляет сделать ещё что-то полезное! 

крутая статья, информация понятная и полезная!