Traffic Cardinal Traffic Cardinal написал 26.03.2025

Киберпаранойя 5.5: почему автозаполнение нужно отключить

Traffic Cardinal Traffic Cardinal написал 26.03.2025
13 мин
0
362
Содержание

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

banner banner

А, да? Такое уже есть и называется автозаполнение? Что ж, читатель, ты прав — но лишь в том, что такое действительно есть. А вот в том, что ты активно этой штукой пользуешься (если пользуешься) — ты лев. Ведь только лев настолько смелый, чтобы буквально раздаривать свои конфиденциальные данные каждому встречному.

О том, как так получается, что люди «автозаполняют» email, а у них угоняют номера карт, читайте ниже.

Что такое автозаполнение?

Нет, мы не будем рассказывать о том, какая это удобная штука, что она позволяет заполнять формы автоматически. Речь о том, что такое автозаполнение с технической точки зрения: как оно реализовано, какие там есть типы информации, чем они отличаются и как именно подставляются. Если душно — пролистайте ниже.

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

Формы и поля

Начнем с автозаполнения через формы и поля. А точнее — с автозаполнения через типы полей формы. Например:

  • UNKNOWN_TYPE — тип данных не определился.

  • NAME_FIRST— Евгений.

  • NAME_MIDDLE — Юрьевич.

  • NAME_LAST— Иванов.

  • NAME_FULL — Иванов Евгений Юрьевич.

  • EMAIL_ADDRESS[email protected].

  • ADDRESS_HOME_LINE1 — Лубянка, 1.

  • ADDRESS_HOME_CITY — Москва.

  • ADDRESS_HOME_STA — 107031.

  • ADDRESS_HOME_COUNTRY — Российская Федерация.

  • CREDIT_CARD_NAME_FULL — Ivanov Evgeniy.

  • CREDIT_CARD_NUMBER — 0228 0228 0228 0228.

  • CREDIT_CARD_VERIFICATION_CODE — 123 (CVV2).

  • USERNAME — yatoptiloh228.

Список не является исчерпывающим, но суть должна быть понятна. В данном случае каждый тип информации привязан к конкретному полю. Что в теории гарантирует правильную подстановку (на практике — нет).

Исторические подсказки

Если же автозаполнение реализовано через исторические подсказки, то жесткой привязки «Тип поля → Тип данных» нет. В этом случае все работает примерно следующим образом:

  1. Юзер вводит какую-то информацию в какое-то поле.
  2. Браузер это запоминает.
  3. При вводе в поле, которое, по его мнению, подходит данной информации по контексту, браузер подставляет ранее запомненное значение.

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

Autocomplete

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

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

Как угоняют данные автозаполнения

А теперь добавьте ко всему описанному выше следующие возможности:

  • Тупую замену имени поля — ничто не мешает админу сайта написать около «Поля для ввода пароля» или «Номера карты» слово «email». В этом случае, если, допустим, над ним будет «Поле для ввода логина», введя информацию в него, вы автоматически передадите соответствующий этому логину пароль или номер карты. И, если поторопитесь нажать Enter или «Отправить» — подарите его кибергопникам.

  • Тупую замену имени поля с маскировкой — аналогично, только поверх вашего пароля или номера карты вы будете видеть псевдо-email, сгенерированный на основе введенного вами логина. Ну или еще что-то — тут уже ситуативно. И с 99,9% вероятностью это приведет к тому, что вы не заметите подвоха и абсолютно спокойно нажмете Enter или «Отправить».

  • Игры с именами полей — используя ранее упомянутое автозаполнение через метод Исторические подсказки, злоумышленник может выудить из вашего браузера инфу путем «обзывания поля» именами, которые браузер с большой долей вероятности интерпретирует неправильно. Это тот самый пример с кастомными формами и передачей инфы из условного card_number в number_of_promo_code. Опять же — поверх данной инфы может быть накинута маскировка, что приведет к подтверждению отправки формы с конфиденциальными данными.

  • С конца в начало — а еще хацкер может сделать финт ушами и создать длиннющую форму, например, какой-то опросник или психологический тест. Вы будете заполнять его минут 5 ручками, попутно пролистывая страницу все ниже. Ближе к концу, когда часть формы уже будет скрыта «за границами экрана», вам подкинут поле с автозаполнением. Например, email для отправки результата психологического теста. Вы, устав от и без того длительного заполнения полей, радостно на это поле кликнете. В скрытые «за границами экрана» поля подтянется инфа, которую даже не нужно маскировать — ведь вы все равно ее не видите перед собой. А листать страницу вверх вам вряд ли захочется. Ну и дальше — подтверждение отправки своих данных хацкеру, без какой-либо задней мысли.

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

И, возможно, кто-то для себя сделал вывод, что пока он не нажмет Enter или «Отправить» — все будет хорошо. А вот и нет :D

Все дело в том, что помимо POST-запросов (формы обычно отправляются с их помощью), есть еще такие приколы, как:

  • Капча. Да-да, капча. Никто не мешает замаскировать под интерфейс капчи любые «подтверждения» пользователем.

  • AJAX-запросы. Они позволяют считывать, что пользователь вводит в поле формы обратной связи в режиме реального времени. То есть вам даже не нужно будет нажимать «Отправить», чтобы передать инфу. Пример того, как они работают — автоподсказка свободных логинов, если вводимый вами уже занят, выводимая в реальном времени.

  • JavaScript. С их помощью можно творить вообще все что угодно, если есть фантазия и прямые руки.

Чем еще опасно автозаполнение

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

Неконфиденциальная информация важна

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

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

А ведь сегодня есть еще и нейросети…

Прилы

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

Совсем другое дело — перехват данных автозаполнения или буфера обмена. Вот такое сможет уже каждый второй разработчик прил, если захочет. А теперь вспоминаем о том, что автозаполнение есть не только в браузере, но и в самих ОС смартфонов. И вспоминаем, сколько всего там уже содержится — не очень «надежно», не так ли? Зачем разработчики ОС для смартфонов оставляют такие дыры? Чтобы им было проще переводить стрелки на мифических злоумышленников в случае слива инфы, которую о вас собирают они сами.

Как-то так ¯\_(ツ)_/¯

Как защититься от угона инфы через автозаполнение

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

В качестве компромисса можно:

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

  • Отключить предиктивный ввод текста — да-да, еще одно кощунство :D Мы предлагаем вам отключить Т9 и прочие «ускорители кнопанья». Зачем? Чтобы очередной JavaScript или AJAX-запрос не инициировал с их помощью автонабор часто вводимых вами данных.

  • Регулярно очищать данные автозаполнения — пожалуй, самый действенный способ без отключения фичи. Вот только какой тогда смысл в автозаполнении?

  • Регулярно очищать буфер обмена — это актуально для работы со смартфонов, где буфер обмена обычно многослойный и содержит не только последнюю скопированную инфу, а несколько десятков копирований.

  • Рандомизировать данные — метод для извращенцев. Зачем это нормальному человеку, который считает удобство автозаполнения более ценным, чем баланс на своей карте, мы не знаем. Но если вы из таких и хотите потроллить кибергопов — развлекайтесь :D

Однако все это полумеры. Или скорее даже «четвертьмеры»… Реально более или менее защитить ваши данные может лишь полное отключение автозаполнения. Причем везде.

Подводя итоги

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

Здравствуйте! У вас включен блокировщик рекламы, часть сайта не будет работать!