Многие из нас привыкли начинать утро с чтения новостей. Если раньше это событие обычно сопровождал шелест свежей газеты или щелчки переключателя телепрограмм, то сейчас роль СМИ играет смартфон, планшет, ноутбук или стационарный компьютер. Для доступа к мобильному устройству большинство пользователей смахивает экран блокировки, набирает короткий ПИН-код, выводит по точкам графический ключ либо сканирует палец, радужную оболочку глаза или лицо. В редких случаях средством защиты служит длинный пароль. Вряд ли вы удивитесь, если узнаете, что все эти способы можно обойти, и, скорее всего, скажете, что ничего страшного нет (вас не взломают, ничего ценного нет и т. п.). А ведь эти средства защиты ограничивают доступ посторонних не только к новостным заметкам, с которых современные люди привыкли начинать утро, но и к их практически полным личностям, только цифровым.
Насколько серьезно должно быть защищено устройство, зависит от важности хранимой на нем информации и, соответственно, модели нарушителя (как мы уже говорили, следует понять: каков уровень его подготовки, какими ресурсами он располагает, будет ли возможная атака против вас случайной или целенаправленной и т. д.). Если это смартфон (планшет) для повседневной болтовни с друзьями, съемки селфи и запуска игр, то потенциальный злоумышленник, скорее всего, окажется простым воришкой и не будет тратить много ресурсов и времени на разблокировку устройства. Он либо присвоит телефон и отформатирует имеющийся в нем накопитель информации, либо, если средства защиты не позволят сменить аккаунт на вашем гаджете, продаст его на запчасти. В обоих случаях ваши персональные данные не будут скомпрометированы. Существует риск кражи средств со счетов, если интернет-банк привязан к имеющейся в устройстве SIM-карте и карта не была вовремя заблокирована (либо не защищена ПИН-кодом). Совсем другое дело, если вы крупный предприниматель, госслужащий или публичная персона, – раскрытие хранимой на вашем аппарате информации может вызвать что-то вроде локальной (а может, даже и глобальной) катастрофы. Спровоцировать ее может нарушитель, целенаправленно охотящийся именно за этим устройством (точнее, за данными на нем), и, если за преступником стоит крупная конкурирующая организация или спецслужбы, в такую операцию могут быть вложены колоссальные средства. В этом случае злоумышленник всеми силами постарается получить доступ к данным, хранящимся на устройстве.
Исходя из модели потенциального нарушителя, следует выбрать наиболее безопасный из доступных способов защиты, не забывая об удобстве и соотнося его с важностью хранимой на устройстве информации. Чуть позже мы поговорим обо всех этих способах защиты, используемых при доступе к самым разным устройствам и цифровым службам (операционным системам компьютеров, аккаунтам в социальных сетях, беспроводным сетям и т. п.), а сейчас рассмотрим реальные случаи, позволяющие представить масштаб проблемы слабых паролей.
Слабые пароли
В июле 2015 г. был взломан сайт знакомств для женатых мужчин и женщин AshleyMadison.com (созданный фактически для поиска любовников и любовниц) и в открытый доступ попали данные 30 млн пользователей этого сайта с адресами электронной почты, паролями и другой конфиденциальной информацией. Самое примечательное то, что в десятке наиболее популярных паролей, которые использовали многие клиенты, были следующие: «123456», «12345», «password», «DEFAULT», «123456789», «qwerty», «12345678», «abc123», «pussy» и «1234567»[17].
КЕЙС В январе 2021 г. в открытом доступе были опубликованы данные о 2,28 млн пользователях сайта знакомств MeetMindful. Файл размером 1,2 Гб содержит полную базу данных (БД) посетителей сайта, включая такие данные, как реальные Ф.И.О., адреса электронной почты, города проживания, даты рождения, IP-адреса, хешированные пароли от аккаунтов и др. Используя похищенные данные, нетрудно найти их владельцев, которые в итоге могут стать мишенями вымогателей, фишеров, шантажистов и прочих злоумышленников[18].
Важно обратить внимание: AshleyMadison.com – ресурс, предполагающий
Согласно инфографике[20], предоставленной компанией Eset, 90 % американских компаний в течение года становятся жертвами хакеров, причем 76 % атак возможны из-за ненадежных или украденных паролей[21]. Поскольку свыше 60 % пользователей используют одни и те же пароли на разных сайтах и устройствах, ущерб от взлома возрастает в несколько раз. Компания WP Engine провела исследование, в котором проанализировала 10 млн скомпрометированных паролей, созданных самыми разными пользователями интернета. В большинстве из 50 самых распространенных паролей использовались либо только строчные буквы, либо только цифры; 10 % паролей заканчивались цифрами, чаще всего единицей. Оказалось, что при создании паролей пользователи часто набирают на клавиатуре комбинации, которые легко запомнить и можно машинально повторить. Поэтому так популярны комбинации клавиш, расположенных рядом, например «qwerty». В ходе исследования были выявлены и составлены списки самых распространенных слов, одним из которых было «love». Интересно, что слово «love» намного чаще использовалось людьми 1980-х и 1990-х гг. рождения, чем представителями предыдущих поколений, а женщины использовали этот пароль в четыре раза чаще, чем мужчины[22].
Кстати, если обзавестись программой для перебора паролей и словариком из 10 000 самых распространенных паролей, можно попробовать расшифровать запароленные файлы и документы пользователя даже в тех случаях, когда о самом пользователе не известно ничего. Такая простейшая атака помогает вскрыть пароль в 30 % случаев[23].
Распространенных слабых паролей очень много, нет смысла перечислять их все. Важно понять принципы составления сложных паролей, которые окажутся не по зубам злоумышленникам. Для этого нужно руководствоваться несколькими рекомендациями, но сначала о том, как пароли взламывают.
Как злоумышленники подбирают пароли
Сложно составить надежный пароль, не понимая, как работают хакеры, мошенники, специалисты по информационной безопасности, следственные органы и спецслужбы. Зная об их приемах, можно проанализировать слабые места собственных кодовых фраз и сменить их, пока не стало слишком поздно. Итак, как злоумышленник может узнать/угадать/подобрать ваш пароль?
■ Силовой метод. Как правило, этот метод применяется к людям, которым действительно есть, что скрывать. Злоумышленник может требованиями, угрозами или с помощью физического воздействия заставить выдать пароль. Спецслужбы и органы правопорядка при этом могут ссылаться на закон, согласно которому они могут досмотреть содержимое устройства, но следует знать: в России закон не обязывает владельца разблокировать его для досмотра[24].
■ Перебор. Злоумышленник использует специальную программу, позволяющую в автоматическом режиме очень быстро перебирать пароли. Существует несколько видов перебора паролей[25]:
○
○
○
○
○
● фрукт;
● часть лица;
● русский поэт;
● цветок;
● страна.
В большинстве случаев ответы – это «яблоко», «нос», «Пушкин», «роза» и «Россия». Это и есть пример шаблонности мышления, предсказуемости, которую злоумышленники учитывают при взломе паролей[28].
○
В современные системы защиты разработчики встраивают специальные алгоритмы, к которым относятся временная блокировка доступа к устройству после нескольких попыток подряд ввести неправильный пароль и отображение генерируемого CAPTCHA[29] -кода (случайного набора символов (слов) или уравнений, которые надо решить). Злоумышленники стараются обойти такие ограничения, подключая к устройствам аппаратные клавиатуры или специальные сервисные инструменты и применяя программы автоматического распознавания и ввода CAPTCHA-кода. К сожалению, есть программы, сайты и устройства, которые не имеют таких ограничений и допускают неограниченное количество попыток подбора пароля. Кроме того, иногда устройства, программы или сайты хранят в доступных файлах хешированные пароли, которые злоумышленник может похитить и перейти к следующему указанному здесь способу перебора.
○
Вкратце о хешировании
Хеш-сумма – это значение пароля, зашифрованное по специальному криптографическому алгоритму (существует много разных алгоритмов различной степени криптостойкости – MD5, SHA-1, SHA-3 и др.). Постоянно разрабатываются новые алгоритмы с целью повышения их стойкости. В качестве примера рассмотрим принцип работы алгоритма SHA-1 (в настоящее время считается устаревшим и постепенно выходит из обращения). Если зашифровать по алгоритму SHA-1 слово «взлом», получится хеш-значение 94d6ad7efefe1b647da47625e75712f87405c3c1 (и это значение всегда будет соответствовать слову «взлом»). Не важно, какой длины данные шифруются, будь то слово из 5 букв, как в примере, или 100 специальных символов: в итоге вы получите хеш-значение фиксированной длины из 40 случайных символов (у других алгоритмов длина строки может быть иной). Даже слово «Взлом», написанное с прописной буквы, будет зашифровано в абсолютно другой хеш (9281eea3837f94218b04024d23c9d20a71811b4a). Вы можете поэкспериментировать с хешированием паролей на сайте https://www.hashemall.com и с их расшифровкой на сайте https://crackstation.net. На большинстве сайтов, в программах и системах пароли в открытом виде, как правило, не хранятся, а используются их хеш-значения. Процесс регистрации/авторизации на защищенном сайте происходит по описанному ниже сценарию.
При регистрации:
■ пользователь пересылает логин и пароль на сайт, где
■ к паролю присоединяется соль (термин поясняется ниже), сгенерированная с помощью криптографически стойкого генератора псевдослучайных чисел,
■ а затем, зная пароль (или его первый хеш) и соль, с помощью стандартной криптографической хеш-функции, например SHA256, вычисляют хеш-значение.
■ Соль и хеш-значение сохраняются в базе данных пользователей.
При аутентификации/авторизации:
■ пользователь пересылает логин и пароль (в открытом виде по защищенному каналу/протоколу, в зашифрованном виде или в виде хеш-значения) на сайт, где
■ соль и хеш-значение пользователя извлекаются из базы данных,
■ соль добавляется к введенному паролю и с помощью той же самой функции вычисляется хеш-значение.
■ Хеш-значение введенного пароля сравнивается с хеш-значением, сохраненном в базе данных. Если они совпадают – пароль верен, тогда пользователь аутентифицируется и допускается в систему. В противном случае пользователю сообщают о неправильном пароле.
Украв базу данных, злоумышленник получает доступ к хеш-значениям паролей, а не к самим паролям и, соответственно, в большинстве случаев не сможет залогиниться от имени какого-либо пользователя (разумеется, он может перехватить данные при передаче на сервер пароля конкретного пользователя, но этот случай не связан с безопасностью всех остальных посетителей сайта и будет рассмотрен в соответствующих главах этой книги). Для успешной аутентификации хакеру нужно извлечь из хеш-значений исходные пароли, используя вспомогательные средства (например, таблицы, в которых все распространенные пароли сопоставлены с их хеш-значениями). Это легко удается сделать при использовании не только простых и распространенных паролей, но также сложных и длинных. Взломав один хеш, злоумышленник получает доступ ко всем аккаунтам, где используется тот же пароль.
Допустим, когда-то давно на сайте http://site.ru использовалась БД, в которой хранились открытые пароли и их хеши, и она утекла к хакерам. Спустя какое-то время была украдена база данных другого сайта, скажем http://site2.ru, в которой были записаны только хеши паролей (алгоритм хеширования, естественно, тот же). Хакер сканирует базу данных http://site2.ru в поисках хешей, совпадающих с найденными в базе данных http://site.ru. Обнаружив совпадения, хакер может раскрыть соответствующие пароли в базе данных http://site2.ru, несмотря на то что там хранились только хеши (и сложность пароля здесь не играет роли).
Также хакер может формировать собственную базу хешей, даже если их нет ни в одной БД. При этом он обычно учитывает специфику взламываемого сайта. Если формат пароля не требует спецзнаков, значит, пароль состоит только из букв и цифр. Также учитывается регион, где используется сайт, его тематика (например, если пользователи сайта – пенсионеры, то они могут использовать как пароли имена внуков) и т. д. Так хакер может вычислить хеши для наиболее популярных парольных фраз, а затем сравнить со своей базой хешей украденную с сайта БД с хешами реальных пользователей.
Взломав один хеш, злоумышленник получает доступ ко всем аккаунтам, где используется тот же пароль.
Поэтому для дополнительной защиты от подбора паролей их хеш-значения «солят», т. е. к значению хеша добавляют некое единое для всех пользователей системы (сайта) или уникальное для каждого пользователя значение, называемое солью[30], и получают второе хеш-значение. Соль снижает вероятность подбора пароля злоумышленником, так как «радужные таблицы», о которых речь пойдет чуть ниже, не позволят сравнить хеш-значения и определить (открыть) пароли. Если соль одинакова для всех пользователей, то и у разных пользователей с одинаковыми паролями будут одинаковые вторые хеш-значения, а если уникальна, то вторые хеш-значения всех пользователей, даже с одинаковыми паролями, будут различны.
Например, если пользователь А и пользователь Б используют пароль «Яблоко», то в первом случае их парольный хеш будет одинаковым (скажем, 422a41… без соли и a5ed85… с солью у обоих пользователей[31]), а во втором – различным (скажем, 422a41… без соли у обоих пользователей и a5ed85… у одного и fc1a95… у второго (с солью)).
Кстати, если пароль хешируется на стороне клиента, т. е. на компьютере (устройстве) пользователя, это хеш-значение становится, по сути, самим паролем, так как именно хеш передается пользователем на сервер для аутентификации. Злоумышленник может перехватить хеш и зайти на сервер под именем пользователя, даже не зная его пароля. Поэтому в таких случаях необходимы дополнительные меры защиты, например использование протокола HTTPS (TLS)[32].
Еще можно упомянуть о коллизиях – случаях, когда криптографический алгоритм создает одинаковые хеш-значения для разных фрагментов данных. Этим недостатком грешит большинство хеш-функций, одни меньше (SHA-256, SHA-512, whirlpool и др.), другие больше (например, MD5 или SHA-1). Злоумышленники могут использовать и эту особенность, но несколько иначе. Имея один набор данных, они могут подобрать другой (к примеру, файл) с таким же хешем, как у первого. Вектор атаки следующий: злоумышленник подменяет корректный файл своим экземпляром с закладкой, вредоносным макросом или загрузчиком трояна. И этот зловредный файл будет иметь такой же хеш или цифровую подпись[33].
Сначала злоумышленник выясняет, какой алгоритм был использован для хеширования паролей. Это относительно несложно, поскольку криптографические алгоритмы независимо от размера входных данных генерируют хеш-значения фиксированной длины и эта длина различна для разных алгоритмов.
«Несоленые» хеши обрабатываются злоумышленником с использованием таблиц ранее сопоставленных друг с другом хешей-паролей. Таблицы бывают разного типа, например «радужными» (они представляют собой перечень соответствий не всех ранее подобранных паролей и их хешей, а только первых элементов таких цепочек)[34]. Подключив таблицы к программе взлома, хакер будет перебирать возможные варианты, пока не расшифрует пароли. Простые и распространенные будут расшифрованы мгновенно; чем пароли длиннее и сложнее, тем больше потребуется времени.
Взлом «соленых» хешей, если значение соли известно злоумышленнику, производится аналогично, только в программе взлома указывается еще и соль. В данном случае работа злоумышленника значительно усложняется, так как для «соленых» хешей нужно генерировать собственные таблицы под каждую соль.
Все становится намного интереснее, если соль хакеру неизвестна. В том случае, если для всех пользователей используется одинаковая соль, хакер несколько раз пробует зарегистрироваться в системе и сравнивает значения первого хеша и второго («соленого»), пытаясь выяснить, какое значение используется при «солении». Выяснив его, хакер возвращается к предыдущему методу перебора. Либо, если доступа к собственным хешам у него нет, он пробует извлечь соль из хешей перебором.
Если для каждого пароля используется различное значение соли, т. е. динамическая соль, это будет самый сложный вариант для хакера: ему придется взламывать каждое хеш-значение по отдельности, на что уйдет гораздо больше времени. Либо атака станет невозможной, если злоумышленник не поймет алгоритм генерации соли.
КЕЙС В марте 2013 г. Нэйт Андерсон, заместитель главного редактора журнала
Для еще большего усложнения задачи злоумышленника используется такой метод, как «растяжение пароля». Суть его в рекурсивном алгоритме хеширования: раз за разом, десятки тысяч раз вычисляется хеш самого хеша. Количество итераций (вычислений хеша) должно быть таким, чтобы вычисление шло не менее секунды (чем больше, тем дольше взламывать). Для взлома хакеру нужно точно знать количество итераций (иначе получится другой хеш) и ждать не менее секунды после каждой попытки. Таким образом, атака получается очень длительной и поэтому маловероятной – но не невозможной. Чтобы справиться с задержкой, злоумышленнику понадобится более мощный компьютер, чем тот, на котором производилось хеширование[36].
Но, учитывая, что для ведения атак (перебора паролей) злоумышленники могут привлекать распределенные компьютерные системы любых масштабов (т. е. состоящие из компьютеров, совместно работающих над одной задачей), взлом всегда принципиально возможен; вопрос только в том, сколько времени займет атака. Мощные хакерские инструменты, использующие ресурсы графического процессора типа OclHashCat, позволяют взломать даже длинные пароли, просто для взлома потребуется больше времени.
■ Прочие методы. Социальная инженерия, фишинг (использование подложных сайтов и приложений), использование специального аппаратного и программного обеспечения: кейлогеров (программ, которые регистрируют нажатие клавиш и действия мыши), снифферов (программ для перехвата трафика), троянов и т. п.[37] Все эти способы будут описаны далее в книге, в соответствующих главах.
Обобщая всю информацию, можно выделить несколько основных правил, о которых речь пойдет далее.
Как выбрать надежный пароль
Хотя для аутентификации на сайтах и в пользовательских приложениях все чаще применяются биометрические технологии и прочие методы, реализуемые с помощью электронных устройств, а IT-компании призывают к отказу от паролей[38], вопрос надежности паролей не теряет актуальности. Существует программное обеспечение, сайты и электронные девайсы, для доступа к которым требуется старый добрый пароль, и, если он будет достаточно сложным, злоумышленник не сможет его подобрать.
Для обеспечения надежной парольной защиты нужно запомнить несколько основных правил:
1. Пароль должен быть относительно длинным и стойким к взлому.
2. Пароль следует хранить в безопасном месте и защищать от компрометации.
3. Разные сервисы – разные пароли.
4. Пароль нужно периодически менять.
5. Информация для восстановления пароля должна быть сложна и тщательно защищена.
6. Если поддерживается многофакторная аутентификация – она должна быть включена.
7. Вынос мусора, или удаление своих следов. Это правило не связано с надежностью паролей, но очень важно.
КЕЙС В ночь с 4 на 5 мая 2018 г. в Копенгагене злоумышленники взломали компанию Bycyklen, управляющую городской системой велопроката, и стерли все данные, до которых смогли добраться. В результате из строя вышли 1660 электровелосипедов, расположенных в различных местах по всему городу. Велосипеды были оснащены планшетами под управлением операционной системы Android и для учета поездок и определения местонахождения подключены к сети Bycyklen. Специалистам компании пришлось вручную перезагружать все планшеты на электровелосипедах в городе[39].
Длинные пароли взламывать сложнее, но и сложнее запоминать. Здесь применим общий принцип: чем ценнее объект, тем лучше он должен быть защищен от похищения. Верно же, что полотенца и смену белья вы храните в шкафу или комоде, а деньги и документы – в укромном месте: в сейфе или банке? И чем больше сумма или важнее документы, тем больше усилий вы предпринимаете для их защиты. Так и с цифровыми данными. Можно использовать относительно простой пароль для аккаунта на бесплатном сайте, содержащего минимум персональной информации. То же касается ящика электронной почты, предназначенного, например, для получения массовых рассылок (но в такой ящик не должны попадать письма, способные нанести вам ущерб в случае их прочтения злоумышленником). А важный рабочий или личный адрес электронной почты, аккаунты в социальных сетях, а уже тем более доступ к финансовой информации нужно защищать существенно надежнее.
КЕЙС В 2014 г. хакеры нашли брешь в системе безопасности одного из серверов кинокомпании Sony Pictures и получили доступ ко многим терабайтам внутренних данных: сведениям о 47 000 сотрудниках компании, в том числе Анджелине Джоли и Сильвестре Сталлоне (включая сканы их паспортов, копии контрактов, личные портфолио, сведения о доходах и многие другие конфиденциальные данные); цифровым копиям фильмов, еще не вышедших в прокат; почтовой переписке между сотрудниками компании; логинам и паролям к многочисленным рабочим аккаунтам в сети Twitter и многому-многому другому. Также была полностью выведена из строя внутренняя сеть компании, из-за чего работа Sony Pictures остановилась на несколько дней[40]. Интересно, что рабочий пароль Майкла Линтона, генерального директора компании Sony Entertainment, был таким: sonyml3[41].
На момент написания книги рекомендации таковы: надежные пароли должны быть длиной не меньше 12 символов (лучше больше) и включать в себя строчные и прописные буквы, цифры и специальные символы. Кстати, пароли многих «продвинутых» пользователей вполне предсказуемы: например, в длинном пароле используются ряды словарных слов, прописной становится первая или последняя буква в пароле, а в конце добавляется цифра 1 и т. д. Не следуйте по их пути, такой подход не обеспечит должного уровня защиты. На сайте https://www.betterbuys.com/estimating-password-cracking-times/ можно проверить, сколько времени занял взлом того или иного пароля – с учетом развития компьютерных систем – в разные годы: с 1982-го до наших дней. Стоит отметить, что на взлом пароля, на подбор которого брут-форсом в 1991 г. уходило почти 4000 лет, спустя 30 лет потребуется «всего лишь» 9,5 лет.
Пароль не должен быть похож на логин и содержать следующих друг за другом одинаковых символов (например, aaa или 111) либо последовательностей букв или цифр (например, abc или 123). Также следует избегать паролей, содержащих названия сайтов или имена доменов, на которых используются. Как вариант, можно использовать длинные кодовые фразы, например строку из песни, где удалены пробелы и/или каждое слово начинается с прописной буквы (или даже специального символа) либо слова переставлены в обратном порядке и т. п. Например, фразу «В лесу родилась елочка» можно изменить, вместо пробелов вставлять, скажем, цифры по числу букв в предыдущем слове: «В1лесу4родилась8елочка6». Также можно заменить в слове часть букв цифрами, поменять местами последнюю и первую буквы, вставить в середину слова точку с запятой и т. п. При этом следует учитывать механизмы мутации в программах для перебора паролей: они также учитывают возможные замены букв на похожие цифры (например, «o» на «0» или «g» на «9»).
История одного взлома
Вкратце расскажем о том, как проводил взлом базы хешированных паролей один из хакеров. Он воспользовался стареньким компьютером с процессором Core 2 Duo и программой Ultimate Distributed Cracker со скоростью перебора 5 млн паролей в секунду. В результате было вскрыто 31 790 паролей из 41 037 MD5-хешей. Первым делом хакер провел поиск цифровых комбинаций длиной до 11 символов и за 5 минут нашел 15 759 паролей. После этого запустил перебор пар с помощью конкатенации (склейки) слов из этого словаря (такой метод часто называют «гибридная атака»), в результате за считаные минуты легко подбирались пароли вида 1111111111123123. В результате найдено еще 358 паролей. Затем за несколько минут он вскрыл 5767 паролей короче 7 символов. Далее он искал слова из словарей на разных языках и подстановки: убирал из слов все гласные, случайно менял регистр одной-двух букв в любом месте, случайно нажимал CAPS LOCK в любом месте слова, добавлял в конец слова до трех случайных цифр плюс легко запоминающиеся сочетания (2010, 2011 и пр.), добавлял в начало слова до двух случайных цифр плюс легко запоминающиеся сочетания (123, 1111 и пр.), добавлял случайный символ в любое место слова, добавлял знаки препинания в начало и/или в конец слова, использовал «хакерские» замены («один» = «1», «s» = «$», «a» = «@» и т. п.), имитировал ошибки переключения раскладки (русское слово в английской раскладке, и наоборот). За 30 минут удалось взломать еще 5213 паролей. Далее хакер применил частотный анализ для длинных паролей, состоящих из букв разных регистров и цифр (из найденных паролей извлекаются подстроки (фрагменты строк по заданному шаблону), сортируются по частоте, и создается словарь из 10 000 самых частых сочетаний, добавляются все одно– и двухсимвольные комбинации). Затем он произвел перебор с конкатенацией двух-трех слов из такого словаря. Операция заняла почти 7 часов, и было найдено 4693 длинных и сложных пароля[42].
Нельзя включать в пароли любые данные, характеризующие вас, будь то имя, дата рождения, номер телефона, фамилия прабабушки, название любимого музыкального коллектива или кличка кошки. Всю эту информацию злоумышленник может выяснить и упростить себе процесс взлома. Кроме того, крайне не рекомендуется использовать в паролях словарные слова, так как первым делом злоумышленники проводят «быструю» атаку по словарю. Проверить устойчивость своего пароля к взлому можно с помощью специальных онлайн-сервисов[43],[44].
Не следует использовать русские слова в английской раскладке. У злоумышленников есть специальные словари с такими комбинациями, поэтому этот метод не сработает. Кроме того, такие пароли очень трудно вводить на устройствах, где кириллица не отображается на клавишах одновременно с латиницей.
Примечание. В 2019 г. компания DeviceLock проанализировала 4 млрд утекших учетных записей на предмет наличия наиболее популярных паролей, в том числе кириллических. «Безумную десятку» составляют пароли (в порядке убывания популярности): я; пароль; йцукен; любовь; привет; люблю; наташа; максим; андрей; солнышко[45].
Разумеется, никому не следует сообщать не только пароли, но и принцип, по которому вы составляете свои кодовые фразы. Узнав, что вы используете в пароле слова из любимой песни, злоумышленники могут просканировать ваш плейлист в социальной сети и сформировать список возможных комбинаций.
Также не стоит составлять пароли по схеме типа
КЕЙС В 2013 г. с серверов всем известной корпорации Adobe были похищены данные около 150 млн учетных записей[46] (кстати, это повод сменить пароль к учетной записи Adobe, если она у вас есть). Благодаря этой утечке у вас есть прекрасная возможность посмотреть, какие пароли не стоит использовать: на сайте https://zed0.co.uk/crossword/ можно найти множество кроссвордов, составленных из похищенных паролей.
Вряд ли кто-то вывесит на видном месте ключ от своей квартиры, чтобы любой мог в нее войти. Но большинство пользователей пренебрегают правилами безопасности, открыто набирая пароли, записывая их на стикерах и прилепляя эти стикеры на монитор, сообщая свои пароли кому ни попадя и авторизуясь на сомнительных сайтах.
КЕЙС В апреле 2015 г. в результате деятельности хакеров на несколько часов была парализована работа французского телеканала TV5Monde. Были выведены из строя служебные серверы, отвечающие за обработку электронной почты, видеомонтаж, трансляцию сигнала. Вещание канала было прервано, а на страницах компании в социальных сетях были опубликованы экстремистские материалы. Причиной произошедшего стала беспечность сотрудников телекомпании: во время съемки интервью с одним из репортеров в кадр за его спиной попал стол одного из сотрудников, заклеенный стикерами с паролями к учетным записям канала в популярных соцсетях. В кадр попали логины и пароли для официальных аккаунтов YouTube, Twitter и Instagram компании, причем пароль к аккаунту на сайте YouTube был lemotdepassedeyoutube, что можно перевести с французского как «пароль от YouTube»[47].
Чтобы защитить себя и своих близких, свои данные, нужно не только максимально серьезно подходить к составлению паролей, следя за тем, чтобы они были достаточно сложными, но также при их вводе и хранении соблюдать правила безопасности.
Находясь в общественном месте, нужно помнить о том, что пароль могут увидеть посторонние, и при его вводе прикрывать рукой экран смартфона или клавиатуру ноутбука; примерно так же вы поступаете при наборе ПИН-кода в банкомате. И очень важно, чтобы при вводе пароля вместо его символов на экране отображались кружочки или звездочки. Если система не скрывает пароль при вводе, к ней нет доверия. В некоторых системах, защищающих пароль от подсматривания, по мере ввода каждый символ все же на мгновение отображается в открытом виде, что снижает уровень безопасности и позволяет злоумышленникам подсмотреть пароль, записав изображение на экране с помощью скрытых грабберов[48] экрана или камеры. Иногда настройки позволяют избавиться от этой уязвимости.
Нельзя вводить пароли и передавать любые другие персональные (особенно банковские) данные в открытых сетях (например, MT_FREE, действующей в московском общественном транспорте). Вводить пароли можно только в доверенных сетях, доступ к которым защищен соответствующим образом (должна быть защищена и сама точка доступа). Следует учитывать, что даже в закрытых недомашних сетях (общественных и корпоративных) введенные данные могут быть перехвачены сетевым администратором или злоумышленником, поэтому нужно четко разделить контролируемые зоны и использовать разные профили, о чем мы говорили ранее.
Вводить пароли рекомендуется только на сайтах, использующих протокол HTTPS (а не HTTP) с подтвержденными сертификатами, о чем сообщит адресная строка в браузере (обычно в ней появляется зеленый замочек). Это не панацея (сертификаты специально выпускаются для мошеннических сайтов в центрах, где нет проверки отправителя и используются на поддельных сайтах злоумышленниками), но риск перехвата вводимых данных все же снижается. Кроме того, не рекомендуется вводить учетные данные и указывать свою персональную информацию на сайтах, не хеширующих пароли. В некоторых случаях подобные сайты можно распознать так: после запроса по поводу восстановления пароля с сайта поступает электронное письмо, в котором старый пароль указан в открытом виде. Надежные ресурсы вместо учетных данных обычно присылают ссылку, перейдя по которой можно создать новый пароль.
Также следует внимательно проверять адрес сайта, на котором вы планируете ввести учетные данные, так как злоумышленники зачастую имитируют оригинальные сайты, меняя 1–2 буквы в URL-адресе (например, https://www.mircosoft.com или https://www.microsoft.cm вместо https://www.microsoft.com) либо используют вовсе посторонний адрес, хотя интерфейс такой же, как у настоящего ресурса. Это сейчас вы видите разницу, а при открытии страницы в браузере, особенно на мобильном устройстве, вряд ли вы читаете адрес, тем более если он целиком не помещается в строке.
Примечание. Не стоит доверять свои пароли родственникам. В плане информационной безопасности они могут быть еще более неосторожны, чем вы.
В реальной жизни вы используете разные ключи для доступа в подъезд, квартиру, дачный дом, офис, автомобиль, к почтовому ящику, банковской ячейке или персональному сейфу и даже для открытия замка на велосипедном тросике. Глупо, если ко всем замкам будет подходить единый ключ (злоумышленник запросто сделает слепок ключа от домофона или почтового ящика и попадет к вам в жилище или угонит велосипед). И тем более глупо, если вы сделаете этот ключ доступным абсолютно для всех (хотя многие так и поступают, только в цифровой среде). Вот и для защиты персональных данных на каждом сайте или в приложении должен использоваться уникальный пароль. Ведь если, к примеру, вы используете один и тот же пароль для доступа к сайту платежной системы PayPal с записями о ваших банковских картах/счетах и к социальной сети «ВКонтакте», то в случае утечки базы данных «ВКонтакте» (либо угона пароля методами социальной инженерии и т. п.) под угрозой оказываются и ваши финансовые средства. Для аутентификации/авторизации на сайте платежной системы злоумышленнику нужен только адрес электронной почты и пароль, который он уже знает. Адрес электронной почты он тоже знает, если вы используете один и тот же почтовый аккаунт для регистрации на разных сайтах, в том числе и на сайтах социальных сетей.
О безопасности баз данных
Компания DeviceLock, разрабатывающая системы защиты данных от утечек, провела исследование уровня безопасности облачных баз данных, расположенных в российском сегменте интернета. Проанализировав свыше 1900 серверов, специалисты компании выяснили, что 52 % серверов предоставляли возможность неавторизованного доступа, а 10 % при этом содержали персональные данные пользователей или коммерческую информацию компаний, еще 4 % ранее были взломаны хакерами, которые оставили требования о выкупе. Среди крупнейших уязвимых баз данных оказались: БД финансовой компании «Финсервис» (https://finservice.pro) объемом 157 Гб, содержащая имена, адреса, контактные и паспортные данные, кредитные истории и информацию о выданных займах; база сервиса автообзвона «Звонок» (https://zvonok.com) объемом 21 Гб, содержащая телефонные номера и записи звонков; данные подмосковных станций скорой медицинской помощи объемом более 18 Гб, содержащие всю информацию о вызовах бригад, включая имена, адреса и телефоны пациентов[49]; база российского телемедицинского сервиса DOC+ объемом более 3 Гб, содержащая данные сотрудников и некоторых пользователей (включая диагнозы); базы данных информационной системы «Сетевой Город. Образование», содержащая персональные данные учеников и учителей школ Екатеринбурга, Ингушетии, Свердловской области и Якутии, а также большое число клиентских баз различных проектов электронной коммерции[50].
По словам Алекса Стамоса, начальника службы безопасности Facebook, «повторное использование паролей – пример большого вреда от простой проблемы. Как только сайт взламывают, пароли в итоге попадают в базы данных, а преступники мастерски настраивают программное обеспечение, чтобы опробовать те же пароли на других аккаунтах»[51]. Компания B2B International собрала интересную статистику, согласно которой только 35 % пользователей создают новую парольную комбинацию для каждого отдельного аккаунта, большинство же предпочитает оперировать ограниченным набором паролей, а 8 % вообще имеют один пароль для всего. При этом 69 % опрошенных признали, что испытывают стресс, читая новости об утечке данных[52].
Зачастую сохранность вашей конфиденциальной информации зависит не от сложности используемого вами пароля, а от надежности защиты сервиса, где он используется. Утечки персональных данных с серверов происходят ежедневно – и мелкие, и крупные, такие как взлом 3 млрд аккаунтов пользователей компании Yahoo[53]. Мы узнаем только об обнародованных фактах кражи персональной информации, а ведь многие компании скрывают правду об утечках, чтобы не нанести вреда своей репутации.
В 2016 г. помимо уже упомянутого сайта AshleyMadison.com атаке подвергся ресурс AdultFriendFinder[54], а также другие сайты схожей тематики, принадлежащие одной компании. В сеть утекли учетные данные пользователей ресурсов Adultfriendfinder.com, Cams.com, Penthouse.com, Stripshow.com и iCams.com. Всего было похищено свыше 412 млн записей: это были персональные данные, накопленные почти за 20 лет. Важно отметить, что часть адресов электронной почты в базе имела вид email@address.com@deleted1.com, т. е. компания хранила данные даже тех пользователей, которые решили удалить свои аккаунты. Также интересно, что в базе присутствовало около 6000 адресов, принадлежащих американским правительственным ведомствам, и свыше 78 000 адресов доменной зоны министерства обороны США. В тройке самых популярных паролей: 123456 (900 000 записей), 12345 (свыше 635 000 записей) и 123456789 (более 585 000 записей).
В России тоже случаются неприятные инциденты с пользовательскими данными, чаще происходящие из-за того, что владельцы сайтов пренебрегают элементарными правилами безопасности. Эта проблема касается не только небольших персональных сайтов, но и крупных ресурсов, в том числе и государственных[55]. В руках у злоумышленников оказываются базы данных социальных сетей, операторов сотовой связи и даже банковских и государственных структур.
Летом 2019 г. стало известно об утечке свыше 450 000 логинов (ими служили адреса электронной почты) и паролей крупного российского онлайн-ритейлера Ozon. Компания сбросила пароли в аккаунтах пользователей, обнаруженных в базе данных. По мнению специалиста по информационной безопасности Cisco Systems Алексея Лукацкого, были возможны три сценария утечки данных: «Базу мог слить сотрудник Ozon, ее мог украсть хакер, залезший внутрь организации, и, наконец, причиной утечки мог стать некорректно настроенный внешний сервер, открывающий несанкционированный доступ к базе любому желающему. Я не могу исключить все три варианта»[56].
Поэтому, чтобы предотвратить возможный несанкционированный доступ к своим аккаунтам, необходимо периодически менять пароли от учетных записей, особенно хранящих банковские реквизиты и важные персональные данные. В теории такой прием должен свести к минимуму возможный «угон» конфиденциальных сведений о вас: доступ к вашему аккаунту у злоумышленника будет только до следующей смены пароля. Но на практике происходит обратное: уровень защиты учетной записи снижается, и вот почему:
1. Пользователю лень запоминать новый сложный пароль, поэтому он сознательно упрощает его (либо использует старый пароль с незначительным изменением). Если злоумышленникам известен его старый пароль, то, используя маски или вычислив алгоритм, по которому пользователь составляет пароли, они могут без особого труда подобрать новый. При таком отношении к правилам безопасности чем чаще мы вынуждены менять пароли, тем большей уязвимости подвержены.
2. Чтобы не потерять новый пароль, пользователь записывает его на стикере или в обычный текстовой файл, что сводит на нет все аспекты безопасности.
Эксперты в области информационной безопасности рекомендуют менять пароли (по крайней мере важные) каждые 30 дней. Кроме того, ни в коем случае нельзя пренебрегать письмами с рекомендацией смены пароля. Как правило, такие сообщения рассылаются при выявлении попытки несанкционированного доступа к серверам компании-отправителя. При этом важно учитывать, что похожие письма могут рассылать и злоумышленники, чтобы перехватить ваши учетные данные. Руководствуясь правилом «нулевого доверия»[57],
Ежемесячно запоминать свыше десятка новых сложных паролей – задача далеко не тривиальная. Поэтому, чтобы не упрощать пароли или не применять предсказуемые и/или однотипные алгоритмы, снижая таким образом уровень безопасности, можно воспользоваться специальным программным обеспечением –
Менеджеры паролей
Специальные приложения, называемые менеджерами паролей, позволяют хранить учетные данные (логин/пароль) к любому количеству сайтов и программ. Единственное, что вам требуется, это помнить и вводить главный пароль (мастер-пароль) при каждом использовании менеджера – при сохранении пароля (обычно в связке с логином) или его подстановке для аутентификации.
Примечание. Несколько лет назад сотрудниками журнала «Хакер» был проведен тест популярных менеджеров паролей на предмет безопасности[58]. Все три типа атак (атака на главный пароль; атака на содержимое базы паролей; атака с подменой DLL-файлов) выдержал только один из исследованных менеджеров – KeePass (https://keepass.info).
Рекомендуется выбирать менеджер паролей с локальным (на устройстве пользователя), а не облачным хранением базы паролей. Это менее удобно, но чуть безопаснее, поскольку возможен перехват трафика или взлом сервера компании-разработчика программы (это не редкость, пример – компания LastPass[59]). Главный пароль менеджеры вообще не сохраняют, это единственный неудобный набор символов, который вам нужно запомнить (или распечатать на бумаге и хранить в сейфе).
Примечание. Если вы подозреваете, что хакеры или спецслужбы могут вести против вас мощную целенаправленную атаку с использованием весьма больших ресурсов, менеджер паролей противопоказан: он хранит все ваши пароли в одном месте. В этом случае единственный приемлемый для вас вариант – сгенерировать стойкие пароли, записать их на бумаге и хранить в безопасном месте.
Так как современный пользователь интернета не только работает за компьютером, но запускает те же программы и сервисы на мобильных устройствах, менеджеры паролей оснащаются функцией синхронизации. Важно иметь в виду, что многие менеджеры предполагают синхронизацию через облако (например, сервис Google Drive). Это небезопасный вариант, так как база ваших данных может быть скомпрометирована хакерами или владельцами облачного хранилища. Для более надежной защиты рекомендуется использовать менеджеры с непосредственной синхронизацией между устройствами (в KeePass синхронизация возможна через пиринговый сервис Resilio Sync[60]).
Кейс В 2021 г. стало известно о взломе компании Click Studios, разработавшей менеджер паролей Passwordstate, которым пользуется свыше 370 000 сотрудников 29 000 компаний по всему миру. Злоумышленники распространили среди пользователей программы поддельное обновление и заразили их устройства вредоносной программой Moserware. После запуска на компьютере жертвы Moserware передавала данные на серверы злоумышленников, где хранилища паролей могут быть расшифрованы с помощью специальных свободно доступных инструментов[61].
Ранее менеджер паролей казался гораздо менее надежным инструментом, чем своя голова (плюс собственные алгоритмы). Но мир меняется: количество и масштаб утечек данных в эпоху больших данных только растут. И вчерашние методы могут быть совершенно неэффективны сегодня.
Многие злоумышленники сегодня не пытаются угадать или взломать пароль, а эксплуатируют механизм восстановления забытого пароля и угадывают ответ на ваш «секретный вопрос». Это возможно, так как многие пользователи выбирают шаблонные вопросы вроде «девичья фамилия матери», «первый автомобиль» и «кличка животного». Эту и подобную информацию легко узнать, открыв ваши аккаунты в социальных сетях, заглянув на сайты частных объявлений или даже просто пообщавшись с вашими друзьями или родственниками, а может быть, даже и лично с вами, выдав себя за кого-либо и притупив вашу бдительность. Кроме того, хакер может учесть особенности, характерные для региона или национальности жертвы. Например, в англоязычной среде наиболее вероятным ответом на вопрос «Ваше любимое блюдо?» будет
Поэтому важно использовать (если допускает система) собственные вопросы, ответы на которые знаете только вы и на которые нельзя ответить односложно. Либо на стандартный вопрос типа «Как назывался ваш первый автомобиль?» вы можете ответить абракадаброй, известной только вам (
КЕЙС Исследователи компании VPNMentor выяснили, что база данных мобильного коммуникационного приложения (и телефонного справочника) Dalil в Саудовской Аравии с профилями более чем 5 млн пользователей находится в открытом доступе в интернете. База содержит такие данные, как номер, IMEI и прочие данные мобильного телефона; IP-адрес; данные GPS о передвижениях владельца; его имя и фамилию, профессию и др. С помощью этих данных легко идентифицировать пользователя по аккаунтам в социальных сетях и определить его местонахождение. Кроме того, учитывая, что в Саудовской Аравии действуют одни из самых строгих в мире законов о цензуре, допускающие в том числе прослушивание телефонных звонков, правительство этой страны с помощью базы данных Dalil может легко идентифицировать пользователей по их телефонным номерам, а также определить, с кем они контактируют, и в дальнейшем преследовать по политическим мотивам[62].
В настоящее время вместо ненадежных и довольно неудобных систем восстановления доступа с помощью секретных вопросов все чаще используется многофакторная аутентификация, которая во многих случаях надежнее и, безусловно, удобнее.
Хотя многофакторная аутентификация и не обеспечивает 100 %-ной защиты, она все же существенно повышает безопасность приложений и веб-сервисов, где используется. Подробнее об этом методе защиты мы поговорим в соответствующем разделе данной главы.
КЕЙС В 2020 г. хакерами было взломано 1800 учетных записей пользователей игровой платформы Roblox. Злоумышленники оставили в профилях сообщение «Попроси своих родителей голосовать за Трампа в этом году! #MAGA2020» и изменили аватары во взломанных профилях, «надев на них типичную для сторонников Дональда Трампа одежду: красные кепки и футболки с американским флагом и орланом. Пострадавшие не включили двухфакторную аутентификацию, у многих были очень простые или многократно используемые пароли. Позднее выяснилось, что хакеры в процессе взлома использовали paste-сайты[63] с незашифрованными логинами/паролями пользователей Roblox[64].
Тема удаления персональных данных выходит за рамки этой книги. Главное, что вам нужно знать: брошенные аккаунты могут скомпрометировать вас, поэтому не ленитесь удалять их. Можно самостоятельно удалить аккаунт с помощью его настроек или отправить соответствующий запрос владельцам (администраторам) сайта.
Помимо того, что, завладев брошенным аккаунтом, злоумышленник сможет отсылать от вашего имени спам вашим друзьям (и те могут поверить написанному, так как доверяют вам) и другим пользователям, он получит доступ к вашей персональной информации, указанной в учетной записи. Это могут быть как телефоны и адреса, так и платежная информация, если вы приобретали на этом сайте какие-либо услуги или товары. Используя обнаруженный там адрес электронной почты, злоумышленник может попытаться залогиниться на других сайтах с вашими аккаунтами или даже использовать его, чтобы перехватить информацию для восстановления и смены пароля без вашего ведома. Кроме того, узнав пароль от неиспользуемого аккаунта, преступник может взломать другие ваши аккаунты, особенно если вы создаете кодовые фразы по одной и той же схеме. Узнать сервисы, на которых зарегистрирован тот же ваш адрес электронной почты, можно, просканировав утекшие базы данных. Также можно отправить запрос о регистрации нового профиля на том или ином сайте с вашим адресом. Если адрес электронной почты уже зарегистрирован (используется), система оповестит об этом.
Выше перечислены общие принципы подхода к выбору паролей для устройств. Эти советы касаются прежде всего компьютеров и устройств интернета вещей, так как специфика использования мобильных гаджетов не предполагает ввода сложных кодовых фраз, это попросту неудобно. Мобильным устройствам и особенностям их защиты посвящена отдельная глава.
Многофакторная аутентификация
Специалисты по информационной безопасности давно пришли к выводу, что пароли не обеспечивают должного уровня защиты от несанкционированного доступа. Для защиты от фишинга и подбора паролей разрабатываются специальные алгоритмы многофакторной аутентификации. Вместе с привычной парольной защитой используется второй фактор аутентификации – обычно это одноразовый код, высылаемый через SMS-службы либо по электронной почте или генерируемый специальными приложениями, в том числе на сайтах типа Mos.ru. Такие коды действуют или определенное время, или до момента ввода пользователем (или отправки/генерации нового кода), поэтому их кража бесполезна. Но поскольку человеку трудно запоминать и придумывать одноразовые пароли, то требуются дополнительные технологии, чтобы многофакторная аутентификация работала корректно.