Разработан скрипт для кражи ПИН-кода через браузер смартфона


    Различные способы ввода влияют на углы наклона, но нейросеть распознаёт ПИН-код в любом случае после сбора данных скриптом

    Как известно, в любом смартфоне установлено множество датчиков — GPS, свет, датчики ориентации, движения и ещё около 20 сенсоров — все они непрерывно выдают данные, чтобы смартфон мог взаимодействовать с окружающим физическим миром. У разработчиков есть несколько способов доступа к информации с этих сенсоров, в том числе через мобильный браузер, согласно официальным Javascript API.

    Именно этот способ открывает широкое поле возможностей для удалённого взлома. Например, специалисты из Школы информатики при Университете Ньюкасла разработали скрипт PINlogger.js, с помощью которого через браузер можно определять, какие кнопки нажимает пользователь на экранной клавиатуре. Скрипт считывает информацию с сенсоров наклона мобильного устройства при каждом нажатии. Удивительно, но в некоторых браузерах (Safari) запущенный в браузере скрипт продолжает собирать данные даже с залоченного экрана. Аналогично он работает, если на соседней вкладке вы набираете пароль в онлайн-банкинге, не закрыв предыдущую вкладку.

    Этот способ подходит для кражи ПИН-кода как через вредоносный сайт со скриптом, так и из любого мобильного приложения, которое имеет доступ к информации с сенсоров. Точность распознавания цифр ПИН-кода довольно высока. Четырёхзначный ПИН-код распознаётся с первой попытки с вероятностью 70%, со второй — 86%, с третьей — 94%, а с пятой попытки — с вероятностью 98% для разных пользователей или 99% для одного пользователя.


    Векторы атаки с соседних вкладок (b) работают только в Chrome и Dolphin под iOS, а атака из фрейма (a) — во всех популярных браузерах, в том числе Safari, Chrome, Firefox, Opera и Dolphin

    Для практической демонстрации атаки был разработан специальный интерфейс для ввода четырёхзначных ПИН-кодов. Клиентская часть отправляла на сервер показания сенсоров ориентации и движения. Серверную часть реализовали на Node.js, а показания сенсоров сохраняли в базе данных MobgoLab.

    В данной демонстрации исследователям было легко определять события нажатий по клавиатуре с помощью события onkeydown. Авторы научной работы обращают внимание, что аналогичный подход используется в других программах для сборка ПИН-кодов по информации с сенсоров, таких как TouchLogger и TapLogger. Если нужно обнаружить нажатия на залоченном экране, то может понадобиться более сложный сценарий сегментации данных сенсора, чтобы вычленить нужные фрагменты данных. Например, это можно сделать по измерению пиковых амплитуд сигнала и с использованием дополнительных сенсоров, как показано в предыдущих научных работах. Код для ввода данных опубликован на GitHub.

    В базе данных накапливается информация о нажатиях и показаниях сенсоров в момент нажатия. Каждый из 10 добровольцев по пять раз вводил 50 четырёхзначных ПИН-кодов (всего 2488 правильно введённых ПИН-кода). Этот набор данных затем использовался для извлечения признаков и последующего обучения нейросети (70% данных использовались для обучения, 15% для проверки и 15% для тестирования).

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



    Исследователи обращают внимание, что большинство пользователей не осознают опасность утечки персональных данных путём съёма данных с сенсоров. Опрос пользователей показал, что большинство из них видят угрозу в GPS или в камере, а не в том, что представляет более реальную угрозу — во внутренних датчиках движения, наклона и других. Число 25 приведено не случайно: именно столько датчиков насчитали исследователи в стандартном смартфоне. На диаграмме внизу показаны результаты опроса — в каких из 25 сенсоров пользователи видят наибольшую угрозу.



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



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

    С помощью этих открытых данных можно не только собирать ПИН-коды и пароли, но и следить за пользователем. Любой сайт может определить, когда человек принимает звонок и кладёт трубку,



    … когда человек сидит, идёт или бежит.



    Повторим, вся эта информация доступна любому сайту и любому приложению без какого-либо разрешения. Сайты получают её стандартными средствами JavaScript.

    Специалистам по безопасности и крупнейшим игрокам мобильной индустрии эта проблема безопасности хорошо известна, но пока они не пришли к единому мнению, как её решить.

    Научная работа опубликована 7 апреля 2017 года в журнале International Journal of Information Security (doi:10.1007/s10207-017-0369-x), в открытом доступе.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 20

      +5
      Хм, Firefox-то даже заряд батарейки перестал отдавать JS скриптам, чтобы не помогать в деанонимизации, а тут полный фарш датчиков, причём даже неактивной вкладке, ужас какой. Разработчиками мобильных браузеров есть повод задуматься, зачем всё это отдавать сайтам (сам не видел сайтов, которые действительно требуют эту информацию для нормальной работы).
        0
        Простые сайты, вероятно никогда и не потребуют. А вот для некоторых веб-приложений эти датчики могут быть полезны.
          +3
          Нужно запрос выдавать на использование таких данных. На компьютерах это вроде бы реализовано, не понятно, зачем на мобильных устройствах действовать по-другому.
            +1
            Тут полностью согласен.
            0

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

              0
              Оно может по соотношению сторон определять. Я видел такой сайт, пришлось окно хрома делать непривычной формы
                0
                Это сейчас тренд — щас «накоучерят» оставшихся ПМов и будет вообще везде
        • UFO just landed and posted this here
            +7
            Совершенно логичное продолжение «html applications». Если мы можем сделать что-то напоминающее десктопное приложение с помощью html + js, то мы можем сделать что-то напоминающее десктопный кейлоггер с помощью html + js.

            Я немного скучаю по временам, когда веб был ламповый, 1.0, а худшее, что можно было потерять, отключив JS в браузере, это снежинки, летающие за курсором.
              0
              хоть какая то польза от трясущихся рук
                0
                Простите за возможно глупый вопрос, но я не могу придумать ни одного сценария, при котором этой уязвимостью имело бы смысл пользоваться. Почему бы зловредному скрипту просто не взять введенные данные из поля?
                  0
                  пин разблокировки телефона, пароль на адрессную книгу
                    0

                    пин к мобильному банку

                    • UFO just landed and posted this here
                        0
                        пин к мобильному банку

                        Это тот который каждый раз разный?



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

                        • UFO just landed and posted this here
                          0
                          Таргетированная атака проводится в разы, если не на порядок, проще и быстрее.

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

                          Как вариант, создаем точку доступа без пароля, многие смартфоны любят такую халяву и с радостью соединяются. Так же на точке настроен либо снифер трафика, либо какой-либо другой вариант заставить перейти на подконтрольный веб-сервер, смотрим логи веб-сервера и выдаем (на другом устройтве) заранее собранную информацию на этот смартфон по цифровому отпечатку.
                      0
                      Из будущих рекомендаций производителей:… прижали смартфон жёстко к горизонтальной поверхности и мягкими нажатиями подушечками пальцев, аккуратненько вводим пин код, не допуская сотрясений и резких движений.
                        +1
                        «Ни в коем случае не доверяйте сенсорному вводу пин-кода, только усилием мысли!» из рекламного буклета 2025 г.
                          0

                          "Ни в коем случае не вводите правильный ПИН-код с первого раза. Используйте бекспейс"

                      Only users with full accounts can post comments. Log in, please.