Интернет является незаменимой вещью, позволяющей общаться и находить нужную информацию. Однако глобальная паутина таит в себе немало угроз в виде вредоносных файлов и сайтов, которые способны не только нанести вред устройству, но и похитить персональные данные владельца. Сегодня рассмотрим понятие кликджекинга. Сейчас он набрал невероятную популярность у злоумышленников, из-за чего каждый пользователь может пострадать от внешней атаки.
Что это такое?
Clickjacking – термин, состоящий из двух частей: «click» (клик) и «jacking» (взлом). Им называют механизм обмана пользователей интернета, который построен на «похищении» кликов. Как правило, задачей кликджекинга становится похищение персональных данных владельца того или иного устройства, включая личную переписку и даже банковские карты. Кроме того, подобная атака способна обеспечить доступ к компьютеру или другому гаджету для дальнейшего управления им.
В технические аспекты кликджекинга мы углубимся чуть позже, а пока сосредоточимся на общем принципе работы данного вида атак. Злоумышленник заманивает пользователя на страницу веб-сайта, который внешне выглядит совершенно безобидно. На видимый слой ресурса накладывается вредоносный код, представляющий собой определенный элемент управления (например, кнопку).
Таким образом, совершив клик, казалось бы, по пустой части окна, пользователь может оформить подписку на получение уведомлений от фишингового сайта или вовсе приобрести совершенно ненужный товар. При этом сам человек не видит, какое действие совершается, ведь целевые для злоумышленника элементы интерфейса оказываются скрыты.
Рассмотрим принцип действия кликджекинга на одном из множества примеров. Допустим, вы проводите время в какой-то социальной сети и решаете посмотреть видеоролик. Вы нажимаете кнопку «Play», под которой скрывается другая невидимая кнопка, но вместо воспроизведения попадаете на главную страницу опасного сайта.
И это лишь малая из бед, которые могут с вами произойти. Порой злоумышленникам удается встроить в страницу код, который крадет персональные данные со страницы в социальной сети, что впоследствии используется для деанонимизации человека.
История
Кликджекинг – это довольно старое явление, которое впервые было использовано еще в 2002 году. Именно тогда была выявлена уязвимость сайтов, позволяющая разместить на странице прозрачный слой, незаметный для обывателя.
До 2008 году данной проблеме не уделялось должного внимания, но, когда создатели термина «clickjacking» Иеремия Гроссман и Роберт Хансен обнаружили уязвимость Adobe Flash Player, это заставило говорить о кликджекинге, как о глобальном и очень опасном явлении на просторах интернета.
Типы атак
Кликджекинг характеризуется множеством форм, которые используются злоумышленниками в разных ситуациях. Сегодня можно выделить следующие типы атак:
- Классический (Clickjacking). Мошенник использует скрытый слой интернет-страницы для совершения целевых действий на другом сайте. При помощи подобного типа атак в США было оформлено немало покупок на Amazon.
- Лайкджекинг (Likejacking). Технология обмана, впервые замеченная на Facebook. Запуская видео или кликая по другому элементу интерфейса, пользователь нажимает невидимую кнопку лайка и незаметно для себя ставит отметку «Нравится».
- Курсорджекинг (Cursorjacking). Незаметное перемещение курсора компьютерной мышки для совершения тех или иных действий на веб-странице. Данная атака впервые была замечена в 2010 году на операционных системах Mac OS X при взаимодействии с некоторыми браузерами.
- Маусджекинг (Mousejacking). Подвид курсорджекинга, впервые выявленный в 2016 году. Эта технология работает с беспроводными компьютерными мышками, позволяя злоумышленнику управлять действиями пользователя.
- Кукиджекинг (Cookiejacking). Вид кликджекинга, направленный на похищение данных cookie путем совершения пользователем нажатий по невидимому слою страницы.
- Файлджекинг (Filejacking). Продвинутый тип атак, построенный на базе возможностей интернет-браузеров. Пользователь невольно создает файловый сервер через стандартное окно выбора файлов Windows, после чего к его ПК подключается мошенник.
- Парольджекинг (Passwordjacking). Принцип похищения паролей через использование небезопасного автозаполнения форм. Встречается на компьютерах, где пароли сохраняются через https.
Поскольку кликджекинг не побежден и до сих пор продолжает существовать, увеличивая размеры кошельков мошенников, продолжают появляться новые виды. Поэтому не исключено, что в ходе прочтения материала где-то на просторах интернета появился еще один тип атаки через взлом кликов.
Как найти кликджекинг на сайте
Увы, признаки кликджекинга невозможно заметить, не прибегая к дополнительным средствам. Ведь принцип работы «вредителя» строится на невидимой оболочке веб-сайта. Однако его следы удается обнаружить в коде страницы. Рассмотрим принцип поиска кликджекинга на примере веб-консоли Mozilla Firefox:
- Авторизуйтесь в VK.
- Очистите cookies для подозрительного сайта.
- Откройте новую вкладку.
- Запустите веб-консоль комбинацией клавиш «Ctrl» + «Shift» + «K».
- Введите в адресную строку URL-адрес подозрительной страницы.
- Перейдите во вкладку «Сеть».
- Если здесь присутствует обращения формата «widget_auth.php», то подозрительный сайт использует кликджекинг для авторизации в VK, а наличие обращения «widget_like.php» свидетельствует о работе лайкджекинга.
Конечно, описанный способ поиска кликджекинга подходит для выявления ограниченного количества атак. Рассмотреть их все не представляется возможным, поэтому оптимальным вариантом защиты от подобного является полное понимание работы Clickjacking. Далее мы подробно расскажем об этом.
Clickjacking в действии
Чтобы не попасться на кликджекинг, нужно понимать, как он работает. Сначала мошенник настраивает среду, которая будет использоваться для атаки, а потом запускает угрозу. Давайте посмотрим, как злоумышленники это делают.
На заметку. В нашем примере будет рассматриваться пример создания кликджекинга через программу Node.js, которую вы можете установить на компьютер – https://nodejs.org/.
Настройка среды
Итак, первым делом злоумышленник готовит почву для совершения атаки. Он клонирует интерфейс сайта, чтобы встроить в него элементы кликджекинга. Вот как выглядит настройка среды для github.com:
- Клонирование осуществляется командой «git clone https://github.com/auth0-blog/clickjacking-sample-app.git».
- Далее устанавливается зависимость сайта командой «npm install».
- Для просмотра уязвимого сайта используется запрос «npm start».
Как видите, создание опасной среды не отнимает у злоумышленника много времени. Далее он может ознакомиться с получившейся страницей-подделкой, введя в адресной строке запрос http://localhost:3000.
В следующем пункте материала при анализе способа запуска атаки мы будем рассматривать пример работы кликджекинга, когда пользователь случайно оформляет покупку фильма, сам того не зная.
Запуск атаки кликджекинга
Чтобы ничего не подозревающий пользователь оформил ненужную покупку, злоумышленник создает фейковую страницу, не имеющую ничего общего с представленным ресурсом.
Так, например, на экране появляется окно с информацией о том, что он выиграл приз. Ему останется лишь кликнуть по кнопке, и покупка будет оформлена. Вот, как это выглядит со стороны мошенника:
- В окне терминала выполняется команда «node attacker-server.js».
- В новом окне браузера открывается фейковая страница с призом, расположенная по адресу http://localhost:4000.
- Если посмотреть ее код, то можно увидеть, что в нем используется запрос к той самой кнопке покупки фильма по адресу http://localhost:3000/purchase.
Таким образом, одна кнопка наслаивается на другую. Но как злоумышленнику удалось добиться такого результата?
Анатомия атаки
Если ознакомиться с телом страницы злоумышленника, открыв «index.ejs» из папки «view», то можно заметить видимую (attacker_website) и невидимую (vulnerable_website) часть шаблона.
Объединение двух компонентов происходит за счет правил CSS. Чтобы сделать элемент невидимым (в нашем случае это «vulnerable_website»), ему присваивается значение «0.0» для компонента «opacity». По своему расположению он перекрывает «attacker_website» и накладывается на него.
Что не относится к кликджекингу
Чтобы закрыть тему с кликджекингом, нужно выделить примеры абсолютно легальных элементов интерфейса, которые действуют практически так же, как и рассмотренная форма атаки:
- социальный замок;
- подписка;
- активный фон сайта;
- push-рассылки.
Чаще всего с кликджекингом путают push-рассылки от сайтов. Однако здесь нет никакого нарушения конфиденциальности пользователя. Ведь он сам нажимает кнопку «ОК», соглашаясь тем самым с получением пуш-уведомлений от выбранного ресурса.