Графические ключи так же предсказуемы, как пароли «1234567» и «password»

Многочисленные утечки данных не раз доказывали, что самые распространенные пароли (а также самые уязвимые), это всевозможные вариации на тему «password», «p@$$w0rd» и «1234567». Когда в 2008 году в Android появились графические ключи, казалось, они могут изменить ситуацию.

Теперь становится ясно, что ситуация с графическими ключами мало отличается от ситуации с обычными паролями. Выпускница Норвежского университета естественных и технических наук Марте Лёге (Marte Løge) провела исследование данной темы, в ходе защиты магистерской диссертации. Свой доклад под названием «Скажи мне кто ты, и я скажу тебе, как выглядит твой графический пароль» Лёге зачитала на конференции PasswordsCon в Лас-Вегасе, пишет xakep.ru.

Так как графически ключи еще сравнительно молоды, и собрать большое количество примеров реальных ключей «из жизни» затруднительно, выборка у Лёге получилась небольшая – она проанализировала 4 000 Android lock Patterns (ALP). Тем не менее, полученные на выходе данные оказались небезынтересны.

«Люди предсказуемы. В случае графических паролей, мы наблюдаем тот же подход, которым люди руководствуются при создании PIN-кодов и обычных буквенно-числовых комбинаций», — рассказала Лёге на конференции. ALP может содержать не менее 4 узлов и не более 9, что суммарно дает  389,112 возможных комбинаций. Так же как в случае с обычными паролями, число комбинаций возрастает экспоненциально, вместе с длиной графического ключа.

Длина графического ключа Число комбинаций
4 1,624
5 7,152
6 26,016
7 72,912
8 140,704
9 140,704

 

В целом, основные собранные данные таковы:

  • 44% ALP начинаются из верхнего левого узла
  • 77% начинаются в одном из четырех углов экрана
  • 5 – среднее число задействованных в графическом пароле узлов, то есть взломщику придется перебрать менее 8 000 комбинаций
  • Во многих случаях графический пароль состоит за 4 узлов, а это уже менее 1,624 комбинаций
  • Чаще всего ALP вводят слева направо и сверху вниз, что тоже значительно облегчает подбор

Лёге попросила опрошенных создать три разных ALP: для банковского приложения, для приложению для покупок и для разблокировки смартфона.
К сожалению, опрошенные мужчины и женщины, в подавляющем большинстве, создали ключи из 4-5 узлов. Наименее популярны у пользователей, по неясной причине, оказались пароли длиной 8 узлов, и даже пароли из максимальных 9 узлов набрали больше «голосов».
На иллюстрации ниже верхняя колонка – пароли мужчин, нижняя – пароли женщин:

 

 

Мужчины в целом придумывают более сложные и длинные пароли, чем женщины. Самые сложные пароли – у молодых мужчин. Иллюстрация ниже демонстрирует разницу в сложности паролей:

 

 

Однако количество узлов – не единственный важный фактор для создания надежного графического ключа. Специфическая последовательность соединения узлов также является ключевым моментом для такого пароля. Если присвоить узлам пароля числа, расположив их так же, как они расположены на клавиатуре обычного телефона, получится, что последовательность 1, 2, 3, 6 куда менее безопасна, чем 2, 1, 3, 6, которая меняет направление.

Мужчины и здесь выбирают более надежные комбинации, такие как последовательность 2, 3, 1. Женщины почти никогда не выбирают комбинации с пересечениями. Лёге отмечает, что людям, в целом, сложно запомнить паттерны высокой сложности.

 

 

Команда исследователей формализовала систему оценки сложности графических ключей еще в 2014 году, представив документ «Dissecting pattern unlock: The effect of pattern strength meter on pattern selection».

Опираясь на данную систему оценки надежности комбинаций, Лёге получила следующие цифры: самый ненадежный пароль среди опрошенных набрал 6,6 баллов, самый надежный – 46,8 баллов. Средняя надежность пароля составила 13,6 баллов.

Помимо прочего, графические ключи оказались подвержены той же «болезни», что и численно-буквенные пароли, в качестве которых пользователи часто используют обычные слова. Более 10% полученных Лёге паролей оказались обычным буквами, которые пользователи чертили на экране. Хуже того, почти всегда выяснялось, что это не просто буква, но первая буква имени самого опрошенного, его супруга(ги), ребенка и так далее. Если атакующий, пытается взломать смартфон и знает имя жертвы, все становится совсем просто.

 

«Было очень забавно видеть, что люди используют ту же стратегию запоминания, к которой привыкли, используя численно-буквенные пароли. Тот же самый образ мысли», — рассказала Лёге. Выходит, если атакующим удастся собрать достаточно большое количество графических ключей, они смогут воспользоваться моделью Маркова, что значительно увеличит их шансы на успех. Лёге не стала фокусироваться на данном методе взлома в своем докладе из этических соображений.

В заключение Лёге дала ряд советов, как сделать ALP безопаснее. Во-первых, в графическом ключе стоит использовать большее количество узлов, что сделает пароль более сложным. Во-вторых, стоит добавить пересечений, так как они усложняют атакующим подбор комбинации и помогут запутать злоумышленника, если тот решил подсмотреть пароль через плечо жертвы. В-третьих, стоит отключить опцию «показывать паттерн» в настройках безопасности Android: если линии между точками не будут отображаться на экране, подсмотреть ваш пароль станет еще сложнее.

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

Новый способ перепрограммирования NES Tetris, не выходя из игры

Специалисты обнаружили новый метод перепрограммирования NES Tetris, который может помочь любителям набирать очки избежать сбоев в игре.

Ранее в этом году стало известно, что один из игроков классического «Тетриса» впервые нажал на «kill screen» игры, активировав «аварийный режим» после невероятного 40-минутного прохождения 1 511 строк.

«Экран убийства» — это уровень в компьютерной игре, который удерживает игрока от продолжения игры из-за ошибки в реализации. Вместо того, чтобы завершаться нормально, игра заикается, сбрасывается или вызывает другие ошибки, препятствующие ей.

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

Ещё с 2021 года было известно о базовом методе внедрения внешнего кода в NES Tetris, когда игроки исследовали декомпилированный код игры.

Совсем недавно Displaced Gamers выложили видео, где подробно рассказывается, как перепрограммировать «Тетрис», играя в него, с помощью кодирования в таблице высоких результатов.

 

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

Зачастую именно это неожиданное прерывание является причиной перескакивания кода в самую глубь оперативной памяти, где «мусорные» данные считываются как код, что приводит к ошибке в игре.

Именно этим «прыжком» игроки научились управлять с помощью того, как Tetris обрабатывает потенциальные вводы при запуске на японской версии консоли Famicom.

Японская Famicom оснащается двумя контроллерами, подключаемыми к устройству, в отличие от американской Nintendo Entertainment System (NES). Через порт расширения на передней панели системы игроки могут подключить контроллеры сторонних производителей.

Код игры Tetris считывает входные данные с этого «дополнительного» порта контроллера, к которому можно подключить два дополнительных стандартных контроллера NES с помощью адаптера.

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

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

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

Если поставить «(G» в целевую часть таблицы высоких результатов B-Type, то можно заставить игру перейти в другую область таблицы высоких результатов, где она начнет последовательно считывать имена «голым металлическим» кодом, где буквы и цифры представляют собой операционные коды для процессора NES.

В области ввода имени могут быть использованы лишь 43 возможных символа и 10 различных цифр, которые могут быть частью высокого балла. Это означает, что только небольшая часть доступных инструкций опкода NES может быть «закодирована» в таблицу высоких результатов, используя доступную поверхность атаки.

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

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

Ограниченное пространство в таблице высоких результатов также не оставляет места для прямого кодирования сложных программ поверх реального кода Tetris.

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

RSS: Новости на портале Anti-Malware.ru