Экономим миллионы, или как оценить экономический эффект свободы от веб-майнеров

CPU load when mining Monero under Windows

Перепечатка публикации на securelist.ru от 17 сентября 2019.

Краткая аннотация:

Мы провели оценку позитивного экономического и экологического эффекта, вызванного блокировкой веб-майнеров продуктами «Лаборатории Касперского». Совокупную мощность блокировки можно рассчитать достаточно точно по формуле <W>·N, где <W> — среднее значение прироста энергопотребления пользовательского устройства во время веб-майнинга, а N — число заблокированных попыток по данным Kaspersky Security Network за 2018 год. Данная мощность составляет 18,8±11,8 гигаватт (ГВт), что два раза больше, чем усредненная мгновенная мощность потребления всех майнеров биткойна в том же году. Для расчета энергии необходимо данную оценку мощности умножить на среднее время, которое пользовательские устройства тратят на веб-майнинг, т. е. по формуле <W>·N·t, где t — время, которое бы проработал веб-майнер, если бы не был заблокирован нашим продуктом. Поскольку мы не можем получить эту оценку по данным «Лаборатории Касперского», была использована информация из открытых источников сторонних исследователей, в соответствии с которыми оценка электроэнергии, сэкономленной пользователями наших продуктов, составляет от 240 до 1670 мегаватт-часов (МВт·ч). Если пересчитать по среднему тарифу на электроэнергию для населения (физических лиц), это составит от 900 тысяч до 6,3 миллиона рублей. Или до 800 тонн выбросов CO2, если вы заботитесь об экологии.

Excess energy consumption vs. TDP

Так насколько же хорошо мы помогаем бороться с излишним энергопотреблением?

Майнинг криптовалют — энергозатратное мероприятие. По некоторым оценкам, майнеры биткойна потребляют столько же электроэнергии, сколько тратят жители Чехии — страны с населением более 10 миллионов (порядка 67 тераватт-часов в год). При этом, как мы уже отмечали, делают это с многократной избыточностью — но ровно до тех пор, пока это экономически оправданно. А как быть с теми, кто вынужден майнить не по своей воле? Речь идет о веб-майнерах — сайтах, которые используют ресурс пользовательских систем для майнинга криптовалют. Поскольку чаще всего это происходит вопреки желанию пользователей, такие сайты определяются защитными продуктами как вредоносные и блокируются.

TDP distribution of CPUs in Kaspersky Security Network

В 2018 году продукты «Лаборатории Касперского» заблокировали 470 млн попыток загрузки скриптов и обращений к майнинговым ресурсам у пользователей, участвующих в Kaspersky Security Network. Можно ли оценить экономический (и экологический) эффект от этой, безусловно, положительной деятельности? Чтобы ответить на этот вопрос, нам пришлось разобраться с несколькими вещами: зависимостью прироста потребления системы в режиме веб-майнинга от TDP процессора, распределением процессоров по TDP в Kaspersky Security Network, и, наконец, с временем, какое веб-майнеры могли бы проработать, если бы не были заблокированы.

Читать полностью на securelist.ru или в .pdf-файле (1,2 Мбайт)

Assessing the impact of protection from web miners

CPU load under Mac OS

Thousands of dollars and tons of CO2

Excerpt of an original publication by Sergey Lurye on September 17, 2019.

Brief summary:

We evaluated the positive economic and environmental impact of blocking web miners with Kaspersky products. The total power saving can be calculated with known accuracy using the formula <w>·N, where <w> is the average value of the increase in power consumption of the user device during web mining, and N is the number of blocked attempts according to Kaspersky Security Network (KSN) data for 2018. This figure is equal to 18.8±11.8 gigawatts (GW), which is twice the average power consumption rate of all Bitcoin miners in that same year. To assess the amount of saved energy based on this power consumption rate, this number is multiplied by the average time that user devices spend on web mining, that is, according to the formula <w>·N·t, where t is the average time that web miners would have been working had they not been blocked by our products. Since this value cannot be obtained from Kaspersky data, we used information from open sources provided by third-party researchers, according to which the estimated amount of electricity saved by users of our products ranges from 240 to 1,670 megawatt hours (MWh). Using the average prices for individual consumers, this amount of electricity could cost up to 200 thousand dollars for residents in North America or up to 250 thousand euros for residents in Europe. Or amount up to 800 of CO2 emission, if you prefer that kind of comparison.

So what’s the Kaspersky contribution to the fight against excess energy consumption?

CPU load when mining Monero under Windows

Cryptocurrency mining is an energy-intensive business. According to some estimates, Bitcoin miners consume the same amount of energy as the Czech Republic, a country of more than 10 million people (around 67 Terawatt-hours per year). At the same time, as we already noted, they do this with multiple redundancy — but only as long as this is economically justified. But what about users that are forced to mine against their will — that is, systems affected by web miners (websites mining cryptocurrency)? Since this most often happens illicitly, such sites are detected by security solutions as malicious and blocked.

TDP distribution of CPUs in Kaspersky Security Network

In 2018, Kaspersky products blocked 470 million attempts to download scripts and attempts to connect to mining resources on the computers and devices participating in Kaspersky Security Network. Is it possible to assess the economic (and environmental) impact of this undoubtedly positive activity? To answer this question, we had to tackle several issues: assess the increase in electricity consumption due to web mining (spoiler — it’s nearly equal to TDP), estimate the TDP distribution of CPUs in Kaspersky Security Network, and make a wild guess at how much time the web mining could have lasted if such attempts hadn’t been blocked.

Read the full article at Securelist.com or download the .pdf (1.2 MBytes).

Эксперимент: насколько легко следить за человеком при помощи умных часов?

Smart watch app sending accelerometer and gyroscope signals

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

Перепечатка оригинальной публикации в блоге Лаборатории Касперского от 30 мая 2018.

То есть понять, что он делал: ходил, сидел, набирал текст на клавиатуре и так далее. Мы решили проверить, насколько страшна эта угроза на практике, и узнать, какие данные реально можно собрать.

Smart watch can be spying on you

Эксперимент: можно ли узнать пароль от компьютера по движению умных часов

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

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

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

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

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

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

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

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

Итак, «заразив» ваши умные часы, можно распознать, что вы печатаете. Но сложно. Более того, с хорошей точностью распознать получится не все, а лишь некоторые фрагменты текста, которые вы за время слежки успеет ввести несколько раз — пароль для разблокировки компьютера, например. В рамках нашего эксперимента мы с точностью 96% смогли восстановить пароль от компьютера и с точностью до 87% — PIN-код от кредитки, когда человек вводит его в банкомате.

Smart watch app sending accelerometer and gyroscope signals

Не все так страшно

Впрочем, для злоумышленников такие данные будут не очень полезны — чтобы ими воспользоваться, нужно сначала завладеть вашим компьютером или кредиткой. А вот определить, скажем, номер карты и CVC-код так просто не получится.

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

А вот номер кредитки для покупки чего-то в Интернете человек вводит не сразу после того, как сел за стол, — этому, скорее всего, предшествует какое-то количество времени за компьютером, да и после ввода человек вряд ли сразу же уйдет. То есть определить точный момент ввода номера кредитки невозможно — и потому очень сложно его восстановить.

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

Кому стоит беспокоиться из-за умных часов

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

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

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

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

Experiment: How easy is it to spy on a smartwatch wearer?

Smart watch can be spying on you

Can a smartwatch be used to spy on its owner? Sure, and we already know lots of ways. But here’s another: A spying app installed on a smartphone can send data from the built-in motion sensors (namely, accelerometer and gyroscope) to a remote server, and that data can be used to piece together the wearer’s actions — walking, sitting, typing, and so on.

A reprint from the original publication on Kaspersky Daily blog from May 30, 2018.

How extensive is the threat in practice, and what data can really be siphoned off? We decided to investigate.

Smart watch can be spying on you

Experiment: Can smartwatch movements reveal a password?

We started with an Android-based smartwatch, wrote a no-frills app to process and transmit accelerometer data, and analyzed what we could get from this data. For more details, see our full report.

The data can indeed be used to work out if the wearer is walking or sitting. Moreover, it’s possible to dig deeper and figure out if the person is out for a stroll or changing subway trains — the accelerometer patterns differ slightly; that’s also how fitness trackers differentiate between, say, walking and cycling.

It’s also easy to see when a person is typing on a computer. But working out what they are typing is way more complex. Everyone has a specific way of typing: the ten-finger method, the one- or two-digit keyboard stab, or something in-between. Basically, different people typing the same phrase can produce very different accelerometer signals — although one person entering a password several times in a row will produce pretty similar graphs.

So, a neural network trained to recognize how a particular individual enters text could make out what that person types. And if this neural network happens to be schooled in your particular way of typing, the accelerometer data from the smartwatch on your wrist could be used to recognize a password based on your hand movements.

However, the training process would require the neural network to track you for quite a long time. The processors in modern portable gadgets are not powerful enough to run a neural network directly, so the data has to be sent to a server.

And therein lies trouble for a would-be spy: The constant upload of accelerometer readings consumes a fair bit of Internet traffic and zaps the smartwatch battery in a matter of hours (six, to be precise, in our case). Both of those telltale signs are easy to spot, alerting the wearer that something is wrong. Both, however, are easily minimized by scooping up data selectively, for example when the target arrives at work, a likely time for password entry.

In short, your smartwatch can be used to identify what you’re typing. But it’s hard, and accurate recovery relies on repeat text entry. In our experiment, we were able to recover a computer password with 96% accuracy and a PIN code entered at an ATM with 87% accuracy.

Smart watch app sending accelerometer and gyroscope signals

It could be worse

For cybercriminals, however, such data is not all that useful. To use it, they’d still need access to your computer or credit card. The task of determining a card number or CVC code is way trickier.

Here’s why. On returning to the workplace, first thing the smartwatch owner types is almost certainly a password to unlock their computer. That is, the accelerometer graph indicates first walking, then typing. Based on data obtained just for this brief period, it’s possible to recover the password.

But the person won’t enter a credit card number as soon as they sit down — or get up and walk away immediately after entering that data. What’s more, no one will ever enter this information several times in short succession.

To steal data-entry information from a smartwatch, attackers need predictable activity followed by data entered several times. The latter part, incidentally, is yet another reason not to use the same password for different services.

Who should worry about smartwatches?

Our research has shown that data obtained from a smartwatch acceleration sensor can be used to recover information about the wearer: movements, habits, some typed information (for example, a laptop password).

Infecting a smartwatch with data-siphoning malware that lets cybercriminals recover this information is quite straightforward. They just need to create an app (say, a trendy clockface or fitness tracker), add a function to read accelerometer data, and upload it to Google Play. In theory, such an app will pass the malware screening, since there is nothing outwardly malicious in what it does.

Should you worry about being spied on by someone using this technique? Only if that someone has a strong motivation to spy on you, specifically. The average cybercrook is after easy pickings and won’t have much to gain.

But if your computer password or route to the office is of value to someone, a smartwatch is a viable tracking tool. In this case, our advice is:

  • Take note if your smartwatch is overly traffic-hungry or the battery drains quickly.
  • Don’t give apps too many permissions. In particular, watch out for apps that want to retrieve account info and geographical coordinates. Without this data, intruders will struggle to ascertain that it’s your smartwatch they’ve infected.
  • Install a security solution on your smartphone that can help detect spyware before it starts spying.

Троянские часы: киберфизические риски носимых гаджетов

Accelerometer and gyroscope signals while entering keyphrase, different persons

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

Репринт оригинальной публикации Securelist от 29 мая 2018.

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

В ходе исследования мы выяснили, какие возможности открывает анализ сигнала носимых устройств для потенциальных злоумышленников, и пришли к неутешительным выводам: несмотря на то, что встроенные в изученные гаджеты датчики не могут (пока) составить альтернативу “традиционным” кейлоггерам, они позволяют сформировать поведенческий профиль пользователя и зафиксировать моменты ввода критически важных данных. Такое профилирование может происходить незаметно, с помощью легитимных приложений, исполняемых непосредственно на самом устройстве. Оно дает “умельцам” дополнительные возможности по проникновению в частную жизнь жертвы и облегчает доступ к корпоративной сети компании, в которой она работает.

Итак, обо всем по порядку.

Поведенческое профилирование пользователей

Когда мы читаем описание носимых устройств, то прежде всего видим, что это “миниатюрные цифровые гаджеты”. Однако важно понимать, что большинство умных часов является киберфизическими системами, поскольку оснащены датчиками ускорения (акселерометрами) и вращения (гироскопами). Нередко в них встроены еще и датчики магнитного поля (магнитометры). Что можно узнать о пользователе, если непрерывно записывать сигналы с этих сенсоров? Больше, чем хотелось бы владельцу гаджета.

Для нашего исследования мы написали довольно простое приложение на основе референсного кода Google и провели несколько занятных экспериментов cо смарт-часами Huawei Watch (первое поколение), Kingwear KW88 и PYiALCYX200, работающими на базе операционных систем Android Wear 2.5 и Android 5.1 for Smartwatch. Выбор был продиктован доступностью устройств и, конечно, простотой написания приложений для них (полагаем, что алгоритмы работы со встроенными гироскопом и акселерометром в iOS могут быть аналогичны тому, что мы опишем ниже).

Smart watch spying experiment

Запись сигналов с умных часов в эксперименте по вводу пароля

Чтобы определить оптимальную частоту опроса сенсоров, мы провели серию испытаний с разными устройствами, начав с таких маломощных (с процессорной точки зрения) образцов, как Arduino 101 и Xiaomi Mi Band 2. Однако скорость опроса датчиков и отправки данных оказалась неудовлетворительной — для получения более-менее внятных значений взаимной корреляции нужно было обеспечить частоту опроса сенсоров не менее 50 Гц. От скорости опроса более 100 Гц мы тоже отказались: 8 Кбайт данных в секунду может быть не так и много, но не для многочасовых “логов”. В итоге наше приложение опрашивало встроенные датчики с частотой 100 Гц и записывало данные о мгновенных значениях показаний акселерометра и гироскопа по трем осям (x, y, z) в память телефона.

Сразу скажем, что получить “цифровой слепок” за весь день на практике не так-то просто, поскольку заряда аккумулятора устройства Huawei хватает не более чем на шесть часов автономной работы в таком режиме.

Но давайте посмотрим на показания акселерометра в течение этого времени. По вертикали приведены величины ускорения в м/с2, по горизонтали — номера отсчетов (в среднем каждый соответствует 10 миллисекундам). Для полноты картины ниже представлены графики показаний акселерометра и гироскопа.

Accelerometer signal patterns

Цифровой профиль пользователя, записанный в течение часа. Сверху — сигналы акселерометра, снизу — сигналы гироскопа

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

Самый очевидный паттерн движения — это ходьба. С него мы и начнем.

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

Взглянем подробнее на области, где наблюдаются наибольшие колебания за короткие промежутки времени (это фиолетовые зоны Pattern 1, Pattern 3, Pattern 5).

Accelerometer and gyroscope signal pattern while walking

Показания акселерометра и гироскопа при ходьбе

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

 Numerical integration of accelerometer signals for axes X and Y

Результат численного интегрирования данных акселерометра, дающий оценку перемещения пользователя по осям x и y в течение часа (перемещение по оси z равно нулю, поэтому на графике не показано)

Примечательно, что если отложить перемещение по оси Y в зависимости от перемещения по оси X, получается примерный путь человека. Скорее всего, дистанции тут определены неточно, но порядок верный — тысячи метров, и это на самом деле впечатляет, поскольку способ очень примитивный. Для уточнения пройденной дистанции можно воспользоваться антропометрическими данными и примерно оценить длину каждого шага (что, в общем-то, и делают фитнес-трекеры), но мы оставим это за пределами нашего исследования.

Visualization of user's path as derived from numerical integration of accelerometer signals

Приблизительный путь человека, определенный как результат численного интегрирования данных акселерометра по осям X и Y

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

Ниже показан еще один отрезок длительностью 22 минуты. Это явно не ходьба — периодичных колебаний сигнала не наблюдается. Однако мы видим периодическое изменение огибающей сигнала ускорения по одной оси. Это может быть общественный транспорт, который движется прямолинейно, но с остановками. Что же это? Маршрутное такси?

Accelerometer data during public transportation

Данные акселерометра во время поездки в транспорте

А вот еще один отрезок.

An unusual pattern of accelerometer data

Pattern 3, данные акселерометра

Предположительно это смесь коротких участков ходьбы (по несколько секунд), пауз, резких взмахов рукой. Можно предположить, что человек находится в закрытом помещении.

Ниже мы расшифровали все области на графике.

Accelerometer data, interpreted

Показания акселерометра и гироскопа, с расшифровкой областей

Это три промежутка ходьбы по 12, 3 и 5 минут, между которыми испытуемый ехал на метро (20 и 24 минуты). Короткий пеший отрезок имеет определенные особенности, поскольку это была пересадка с одной станции метро на другую. Они хорошо видны, но нас интересовал вопрос определения их с помощью алгоритмов, доступных для исполнения на самих носимых устройствах. Поэтому вместо нейронных сетей, которые, как мы уже знаем, очень неплохо справляются с такого рода задачами, мы использовали простейший подсчет взаимной корреляции.

Взяв два паттерна ходьбы (обозначим их как Walking 1 и Walking 2), мы рассчитали их взаимную корреляцию и взаимную корреляцию с шумовыми данными, использовав массивы сигнальных данных длительностью по 10 секунд.

         Function
Experiment
max (cor) Ax max (cor) Ay max (cor) Az max (cor) Wx max (cor) Wy max (cor) Wz
Walking 1 and Walking 2 0,73 0,70 0,64 0,62 0,41 0,83
Walking 1 and Noise 0,33 0,30 0,32 0,30 0,33 0,33

Максимумы функций взаимной корреляции паттернов ходьбы друг с другом и ходьбы с произвольным шумовым паттерном

Из таблицы видно, что даже такой элементарный подход, как подсчет функции взаимной корреляции, позволяет идентифицировать паттерны движения пользователя в его “цифровом слепке” с точностью (если очень грубо интерпретировать корреляцию) до 83%. Этот показатель может выглядеть не таким уж высоким, но подчеркнем — мы не оптимизировали размер выборки и не использовали сложные алгоритмы, например метод главных компонент.

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

Без данных об ориентации осей X и Y в пространстве (скорее всего, разных на отдельных отрезках) вопрос расшифровки траектории движения усложняется, сводясь к геометрической задаче наложения отрезков известной длины на карту местности. Опять же, если попробовать поставить себя на место злоумышленника, можно предположить, что всплески магнитного поля будут “выдавать” моменты разгона и торможения электропоезда (а также трамвая и троллейбуса), что даст дополнительную информацию, позволяющую уточнить количество промежуточных точек на интересующих его отрезках. Но это мы тоже пока оставим за рамками нашего исследования.

Киберфизический перехват критически важных данных

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

ПИН-код банковской карты

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

Сигналы акселерометра при вводе ПИН-кода на клавиатуре банкомата

Забегая немного вперед, скажем: элементарными методами из показаний датчиков получить ПИН-код банковской карты в открытом виде не так-то просто. Однако этот кусок “акселерометрического лога” демонстрирует определенные особенности — так, в первой половине графика видно горизонтальное положение руки, а во второй половине заметны колебания значений при нажатии на клавиши банкомата. Особенности сигналов по трем осям акселерометра и гироскопа с применением нейронных сетей, если верить коллегам из “Стивенсовского технологического института“, позволяют расшифровать ПИН-код произвольного человека с точностью не менее 80%. Слабым местом такой атаки является то, что нейронную сеть пока что затруднительно реализовать на вычислительных мощностях умных часов, однако выявить данный паттерн с помощью простейшего подсчета взаимной корреляции, чтобы впоследствии “слить” его для расшифровки на более мощной ЭВМ, — вполне реально. Что мы, собственно, и сделали.

         Function
Experiment
max (cor) Ax max (cor) Ay max (cor) Az max (cor) Wx max (cor) Wy max (cor) Wz
One person and different tries 0,79 0,87 0,73 0,82 0,51 0,81

Максимумы функций взаимной корреляции данных ввода ПИН-кода на банкомате

Опять же, если достаточно грубо интерпретировать полученные результаты, можно утверждать, что точность идентификации паттерна ввода ПИН-кода в общем потоке сигнальной информации составляет порядка 87%. Не так уж и мало.

Парольная фраза от компьютера и код разблокировки телефона

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

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

Мы попросили четырех человек ввести в компьютер одну и ту же фразу из 13 символов 20 раз. Двое из них также четырежды (каждый) разблокировали смартфон LG Nexus 5X, используя 4-значный ключ. Дополнительно мы записали движения каждого из участников, когда они эмулировали “обычное” поведение — в частности, общаясь в чате. По окончании эксперимента мы синхронизировали время показаний, отрезав лишние сигналы.

Всего было получено 480 дискретных функций для всех осей сенсора. Каждая из них содержит 250-350 отсчетов, точное количество зависит от времени набора парольной фразы или произвольных данных (порядка трех секунд).

Accelerometer and gyroscope signals while entering keyphrase

Сигнал по осям акселерометра и гироскопа для четырех попыток ввода одного пароля одним и тем же человеком на настольном компьютере

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

Accelerometer and gyroscope signals while entering keyphrase, different persons

Сигнал по осям акселерометра и гироскопа для попыток ввода одного и того же пароля разными людьми на настольном компьютере

При наложении сигналов, полученных от разных людей, видно, что хотя вводят они одну и ту же фразу, делают это по-разному, и даже визуально экстремумы не совпадают!

 Accelerometer and gyroscope data while unblocking the smartphones

Попытки ввода кода разблокировки смартфона двумя разными людьми

С мобильным телефоном ситуация похожая. Кроме того, акселерометр фиксирует моменты нажатия на экран большим пальцем, по которым легко определить длину ключа.

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

В таблице указаны максимумы функций взаимной корреляции данных соответствующих осей акселерометра и гироскопа.

         Function
Experiment
max (cor) Ax max (cor) Ay max (cor) Az max (cor) Wx max (cor) Wy max (cor) Wz
One person 0,92 0,63 0,71 0,55 0,76 0,96
Different persons 0,65 0,35 0,31 0,23 0,37 0,76

Максимумы функций взаимной корреляции данных ввода пароля разными людьми для настольного компьютера

Отсюда видно, что даже такой простой и прямолинейный подход, как подсчет корреляций, может обеспечить, грубо говоря, точность идентификации человека до 96%! Если же сравнить максимумы функции взаимной корреляции для сигналов разных людей в режиме ввода произвольного текста, то максимум корреляции не превышает 44%.

         Function
Experiment
max (cor) Ax max (cor) Ay max (cor) Az max (cor) Wx max (cor) Wy max (cor) Wz
One person and different activity 0,32 0,27 0,39 0,26 0,30 0,44

Максимумы функций взаимной корреляции данных соответствующих, различной деятельности (ввод пароля vs. обычный серфинг)

         Function
Experiment
max (cor) Ax max (cor) Ay max (cor) Az max (cor) Wx max (cor) Wy max (cor) Wz
Oneperson 0,64 0,47 0,56 0,41 0,30 0,58
Different persons 0,33 0,40 0,40 0,32 0,38 0,34

Максимумы функций взаимной корреляции данных ввода кода разблокировки одним и тем же человеком и разными людьми

Обратите внимание, что самые маленькие значения функции взаимной корреляции мы получили для ввода кода разблокировки смартфона (до 64%), а самые большие (до 96%) — при вводе пароля от компьютера. Это вполне объяснимо, ведь перемещение руки и соответствующие ускорения — линейные и угловые — в момент разблокировки минимальны.

Однако еще раз отметим, что для подсчета функции корреляции вполне достаточно даже тех вычислительных мощностей, что есть в распоряжении смарт-часов, а значит, эту задачу “умный” носимый гаджет может решать самостоятельно!

Выводы

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

Записанный сигнал может быть передан телефоном на сервер злоумышленника, как только появится доступ к Интернету. Так ничем не примечательное фитнес-приложение или новый циферблат часов из магазина Google Play вполне может использоваться против вас, причем уже сейчас. Усугубляется ситуация тем, что достаточно один раз отослать вашу геометку и запросить разрешение на получение адреса электронной почты, на которую зарегистрирован аккаунт Google Play, и по вашим движениям можно будет узнать, кто вы, куда ходили, как часто пользовались смартфоном и когда вводили ПИН-код в банкомат.

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

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

Вероятный сценарий применения носимых устройств злоумышленниками связан с загрузкой на смарт-часы легитимного приложения — например, фитнес-трекера, который периодически будет отправлять на сервер пакеты данных размером в несколько десятков килобайт (в частности, для 13-символьной парольной фразы размер несжатой “сигнальной сигнатуры” составил порядка 48 килобайт).

Поскольку сами по себе программы не являются вредоносными, мы предполагаем, что, помимо экспериментально проверенных нами устройств на Android Wear/Android for Smartwatch, такой сценарий может быть применим и для смарт-часов продукции Apple.

Рекомендации

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

  1. Так, если приложение отправляет запрос на получение данных об аккаунте пользователя (разрешение GET_ACCOUNTS в Android), это повод для беспокойства — ведь злоумышленникам надо сопоставить “цифровой отпечаток” с его владельцем. Впрочем, в программе также может быть предусмотрена регистрация с вводом адреса электронной почты — но в этом случае вы хотя бы вольны ввести адрес, отличный от адреса учетной записи Google Play, к которому привязана банковская карта.
  2. Если же приложение дополнительно запрашивает разрешение на отправку геолокационных данных, то ваше беспокойство должно возрасти еще больше. Очевидная рекомендация в этой ситуации: не стоит выдавать фитнес-трекерам, которые вы загружаете на свои умные часы, лишних разрешений и указывать при регистрации корпоративные электронные адреса.
  3. Быстрый расход заряда батареи устройства также может быть серьезным поводом для беспокойства. Если ваш гаджет держит заряд вместо суток всего несколько часов, не исключено, что это сигнал о том, что за вами установлена слежка. Теоретически часы могут хранить до 57 часов записей вашей активности и сливать эти данные в сеть.

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

Trojan watch: the cyberphysical risks of wearable gadgets

Smart watch spying experiment

We continue to research how proliferation of IoT devices affects the daily lives of users and their information security. In our previous study, we touched upon ways of intercepting authentication data using single-board microcomputers. This time, we turned out attention to wearable devices: smartwatches and fitness trackers. Or more precisely, the accelerometers and gyroscopes inside them.

A reprint from the original publication on Securelist from May 29, 2018.

From the hoo-ha surrounding Strava, we already know that even impersonal data on user physical activity can make public what should be non-public information. But at the individual level, the risks are far worse: these smart devices are able to track the moments you’re entering a PIN code in an ATM, signing into a service, or unlocking a smartphone.

In our study, we examined how analyzing signals within wearable devices creates opportunities for potential intruders. The findings were less than encouraging: although looking at the signals from embedded sensors we investigated cannot (yet) emulate “traditional” keyloggers, this can be used to build a behavioral profile of users and detect the entry of critical data. Such profiling can happen discreetly using legitimate apps that run directly on the device itself. This broadens the capacity for cybercriminals to penetrate victims’ privacy and facilitates access to the corporate network of the company where they work.

So, first things first.

Behavioral profiling of users

When people hear the phrase ‘smart wearables’, they most probably think of miniature digital gadgets. However, it is important to understand that most smartwatches are cyberphysical systems, since they are equipped with sensors to measure acceleration (accelerometers) and rotation (gyroscopes). These are inexpensive miniature microcircuits that frequently contain magnetic field sensors (magnetometers) as well. What can be discovered about the user if the signals from these sensors are continuously logged? More than the owner of the gadget would like.

For the purpose of our study, we wrote a fairly simple app based on Google’s reference code and carried out some neat experiments with the Huawei Watch (first generation), Kingwear KW88, and PYiALCY X200 smartwatches based on the Android Wear 2.5 and Android 5.1 for Smartwatch operating systems. These watches were chosen for their availability and the simplicity of writing apps for them (we assume that exploiting the embedded gyroscope and accelerometer in iOS would follow a similar path).

Smart watch spying experiment

Logging smartwatch signals during password entry

To determine the optimal sampling frequency of the sensors, we conducted a series of tests with different devices, starting with low-power models (in terms of processor) such as the Arduino 101 and Xiaomi Mi Band 2. However, the sensor sampling and data transfer rates were unsatisfactory — to obtain cross-correlation values that were more or less satisfactory required a sampling frequency of at least 50 Hz. We also rejected sampling rates greater than 100 Hz: 8 Kbytes of data per second might not be that much, but not for hours-long logs. As a result, our app sampled the embedded sensors with a frequency of 100 Hz and logged the instantaneous values of the accelerometer and gyroscope readings along three axes (x, y, z) in the phone’s memory.

Admittedly, getting a “digital snapshot” of a whole day isn’t that easy, because the Huawei watch’s battery life in this mode is no more than six hours.

But let’s take a look at the accelerometer readings for this period. The vertical axis shows the acceleration in m/s2, and the horizontal the number of samples (each corresponds to 10 milliseconds on average). For a complete picture, the accelerometer and gyroscope readings are presented in the graphs below.

Accelerometer signal patterns

Digital profile of a user recorded in one hour. Top — accelerometer signals, bottom — gyroscope signals

The graphs contains five areas in which different patterns are clearly visible. For those versed in kinematics, this graph tells a lot about the user.

The most obvious motion pattern is walking. We’ll start with that.

When the user is walking, the hand wearing the smartwatch oscillates like a pendulum. Pendulum swings are a periodic process. Therefore, if there are areas on the graph where the acceleration or orientation readings from the motion sensor vary according to the law of periodicity, it can be assumed that the user was walking at that moment. When analyzing the data, it is worth considering the accelerometer and gyroscope readings as a whole.

Let’s take a closer look at the areas with the greatest oscillations over short time intervals (the purple areas Pattern1, Pattern3, and Pattern5).

Accelerometer and gyroscope signal pattern while walking

Accelerometer and gyroscope readings during walking

In our case, periodic oscillations of the hand were observed for a duration of 12 minutes (Pattern1, figure above). Without requesting geoinformation, it’s difficult to say exactly where the user was going, although a double numerical integration of the acceleration data shows with an accuracy up to the integration constants (initial velocity and coordinates) that the person was walking somewhere, and with varying characteristic velocity.

 Numerical integration of accelerometer signals for axes X and Y

Result of the numerical integration of the accelerometer data, which gives an estimate of the user’s movement along the x and y axes in the space of one hour (z-axis displacement is zero, so the graph does not show it)

Note that plotting the Y-axis displacement relative to the X-axis displacement gives the person’s approximate path. The distances here are not overly precise, but they are in the order of thousands of meters, which is actually quite impressive, because the method is very primitive. To refine the distance traveled, anthropometric data can be used to estimate the length of each step (which is basically what fitness trackers do), but we shall not include this in our study.

Visualization of user's path as derived from numerical integration of accelerometer signals

Approximate path of the person under observation, determined on the basis of numerically integrating the accelerometer data along the X and Y axes

It is more difficult to analyze the less active areas. Clearly, the person was at rest during these periods. The orientation of the watch does not change, and there is acceleration, which suggests that the person is moving by car (or elevator).

Another 22-minute segment is shown below. This is clearly not walking — there are no observable periodic oscillations of the signal. However, we see a periodic change in the acceleration signal envelope along one axis. It might be a means of public transport that moves in a straight line, but with stops. What is it? Some sort of public transportation?

Accelerometer data during public transportation

Accelerometer data when traveling on public transport

Here’s another time slice.

An unusual pattern of accelerometer data

Pattern 3, accelerometer data

This seems to be a mixture of short periods of walking (for a few seconds), pauses, and abrupt hand movements. The person is presumably indoors.

Below we interpret all the areas on the graph.

Accelerometer data, interpreted

Accelerometer and gyroscope readings with decoding of areas

These are three periods of walking (12, 3, and 5 minutes) interspersed with subway journeys (20 and 24 minutes). The short walking interval has some particular characteristics, since it involved changing from one subway line to another. These features are clearly visible, but our interest was in determining them using algorithms that can be executed on the wearable devices themselves. Therefore, instead of neural networks (which we know to be great at this kind of task), we used a simple cross-correlation calculation.

Taking two walking patterns (Walking1 and Walking2), we calculated their cross-correlation with each other and the cross-correlation with noise data using 10-second signal data arrays.

         Function
Experiment
max (cor) Ax max (cor) Ay max (cor) Az max (cor) Wx max (cor) Wy max (cor) Wz
Walking1 and Walking2 0.73 0.70 0.64 0.62 0.41 0.83
Walking1 and Noise 0.33 0.30 0.32 0.30 0.33 0.33

Maxima of the functions for cross-correlation of walking patterns with each other and with an arbitrary noise pattern

It can be seen from the table that even this elementary approach for calculating cross-correlation functions allows us to identify the user’s movement patterns within his/her “digital snapshot” with an accuracy of up to 83% (given a very rough interpretation of the correlation). This indicator may not seem that high, but it should be stressed that we did not optimize the sample size and did not use more complex algorithms, for example, principle component analysis, which is assumed to work quite well in determining the characteristic parts of the signal log.

What does this provide to the potential attackers? Having identified the user’s movements in the subway, and knowing the characteristic directions of such movement, we can determine which subway line the user is traveling on. Sure, it would be much easier having data about the orientation of the X and Y axes in space, which could be obtained using a magnetometer. Unfortunately, however, the strong electromagnetic pickup from the electric motors, the low accuracy of determining a northerly direction, and the relatively few magnetometers in smartwatches forced us to abandon this idea.

Without data on the orientation of the X and Y axes in space (most likely, different for individual periods), the problem of decoding the motion trajectory becomes a geometric task of overlaying time slices of known length onto the terrain map. Again, placing ourselves in the attacker’s shoes, we would look for the magnetic field bursts indicate the acceleration/deceleration of an electric train (or tram or trolleybus), which can provide additional information allowing us to work out the number of interim points in the time slices of interest to us. But this too is outside the scope of our study.

Cyberphysical interception of critical data

But what does this all reveal about the user’s behavior? More than a bit, it turns out. It is possible to determine when the user arrives at work, signs into a company computer, unlocks his or her phone, etc. Comparing data on the subject’s movement with the coordinates, we can pinpoint the moments when they visited a bank and entered a PIN code at an ATM.

PIN codes

How easy is it to capture a PIN code from accelerometer and gyroscope signals from a smartwatch worn on the wrist? We asked four volunteers to enter personal PINs at a real ATM.

Accelerometer signals while entering ATM PIN

Accelerometer signals when entering a PIN code on an ATM keypad

Jumping slightly ahead, it’s not so simple to intercept an unencrypted PIN code from sensor readings by elementary means. However, this section of the “accelerometer log” gives away certain information — for example, the first half of the graph shows that the hand is in a horizontal position, while the oscillating values in the second half indicate keys being pressed on the ATM keypad. With neural networks, signals from the three axes of the accelerometer and gyroscope can be used to decipher the PIN code of a random person with a minimum accuracy of 80% (according to colleagues from Stevens Institute of Technology). The disadvantage of such an attack is that the computing power of smartwatches is not yet sufficient to implement a neural network; however, it is quite feasible to identify this pattern using a simple cross-correlation calculation and then transfer the data to a more powerful machine for decoding. Which is what we did, in fact.

         Function
Experiment
max (cor) Ax max (cor) Ay max (cor) Az max (cor) Wx max (cor) Wy max (cor) Wz
One person and different tries 0.79 0.87 0.73 0.82 0.51 0.81

Maxima of the functions for cross-correlation of PIN entry data at an ATM

Roughly interpreting these results, it is possible to claim 87% accuracy in recovering the PIN entry pattern from the general flow of signal traffic. Not bad.

Passwords and unlock codes

Besides trips to the ATM, we were interested in two more scenarios in which a smartwatch can undermine user security: entering computer passwords and unlocking smartphones. We already knew the answer (for computers and phones) using a neural network, of course, but we still wanted to explore first-hand, so to speak, the risks of wearing a smartwatch.

Sure, capturing a password entered manually on a computer requires the person to wear a smartwatch on both wrists, which is an unlikely scenario. And although, theoretically, dictionaries could be used to recover semantically meaningful text from one-handed signals, it won’t help if the password is sufficiently strong. But, again, the main danger here is less about the actual recovery of the password from sensor signals than the ease of detecting when it is being entered. Let’s consider these scenarios in detail.

We asked four people to enter the same 13-character password on a computer 20 times. Similarly, we conducted an experiment in which two participants unlocked an LG Nexus 5X smartphone four times each with a 4-digit key. We also logged the movements of each participant when emulating “normal” behavior, especially in chat rooms. At the end of the experiment, we synchronized the time of the readings, cutting out superfluous signals.

In total, 480 discrete functions were obtained for all sensor axes. Each of them contains 250-350 readings, depending on the time taken to enter the password or arbitrary data (approximately three seconds).

Accelerometer and gyroscope signals while entering keyphrase

Signal along the accelerometer and gyroscope axes for four attempts by one person to enter one password on a desktop computer

To the naked eye, the resulting graphs are almost identical; the extremes coincide, partly because the password and mode of entry were identical in all attempts. This means that the digital fingerprints produced by one and the same person are very similar to each other.

 Accelerometer and gyroscope signals while entering keyphrase, different persons

Signals along the accelerometer and gyroscope axes for attempts to enter the same password by different people on a desktop computer

When overlaying the signals received from different people, it can be seen that, although the passphrase is the same, it is entered differently, and even visually the extremes do not coincide!

Accelerometer and gyroscope data while unblocking the smartphones

Attempts to enter a smartphone unlock code by two different people

It is a similar story with mobile phones. Moreover, the accelerometer captures the moments when the screen is tapped with the thumb, from which the key length can be readily determined.

But the eye can be deceived. Statistics, on the other hand, are harder to hoodwink. We started with the simplest and most obvious method of calculating the cross-correlation functions for the password entry attempts by one person and for those by different people.

The table shows the maxima of the functions for cross-correlation of data for the corresponding axes of the accelerometer and gyroscope.

         Function
Experiment
max (cor) Ax max (cor) Ay max (cor) Az max (cor) Wx max (cor) Wy max (cor) Wz
One person 0.92 0.63 0.71 0.55 0.76 0.96
Different persons 0.65 0.35 0.31 0.23 0.37 0.76

Maxima of the functions for cross-correlation of password input data entered by different people on a desktop computer

Broadly speaking, it follows that even a very simple cross-correlation calculation can identify a person with up to 96% accuracy! If we compare the maxima of the cross-correlation function for signals from different people in arbitrary text input mode, the correlation maximum does not exceed 44%.

         Function
Experiment
max (cor) Ax max (cor) Ay max (cor) Az max (cor) Wx max (cor) Wy max (cor) Wz
One person and different activity 0.32 0.27 0.39 0.26 0.30 0.44

Maxima of the functions for cross-correlation of data for different activities (password entry vs. usual surfing)

         Function
Experiment
max (cor) Ax max (cor) Ay max (cor) Az max (cor) Wx max (cor) Wy max (cor) Wz
One person 0.64 0.47 0.56 0.41 0.30 0.58
Different persons 0.33 0.40 0.40 0.32 0.38 0.34

Maxima of the functions for cross-correlation of data for an unlock code entered by one person and by different people

Note that the smallest cross-correlation function values were obtained for entering the smartphone unlock code (up to 64%), and the largest (up to 96%) for entering the computer password. This is to be expected, since the hand movements and corresponding acceleration (linear and angular) are minimal in the case of unlocking.

However, we note once more that the computing power available to a smartwatch is sufficient to calculate the correlation function, which means that a smart wearable gadget can perform this task by itself!

Conclusions

Speaking from the information security point of view, we can conclude that, without a doubt, portable cyberphysical systems expand the attack surface for potential intruders. That said, the main danger lies not in the direct interception of input data — that is quite difficult (the most successful results are achieved using neural networks) and thus far the accuracy leaves much to be desired. It lies instead in the profiling of users’ physical behavior based on signals from embedded sensors. Being “smart,” such devices are able to start and stop logging information from sensors not only through external commands, but on the occurrence of certain events or the fulfillment of certain conditions.

The recorded signals can be transmitted by the phone to the attacker’s server whenever the latter has access to the Internet. So an unassuming fitness app or a new watch face from the Google Play store can be used against you, right now in fact. The situation is compounded by the fact that, in addition to this app, simply sending your geotag once and requesting the email address linked to your Google Play account is enough to determine, based on your movements, who you are, where you’ve been, your smartphone usage, and when you entered a PIN at an ATM.

We found that extracting data from traffic likely to correspond to a password or other sensitive information (name, surname, email address) is a fairly straightforward task. Applying the full power of available recognition algorithms to these data on a PC or in cloud services, attackers, as shown earlier, can subsequently recover this sensitive information from accelerometer and gyroscope signal logs. Moreover, the accumulation of these signals over an extended period facilitates the tracking of user movements — and that’s without geoinformation services (such as GPS/GLONASS, or base station signals).

We established that the use of simple methods of analyzing signals from embedded sensors such as accelerometers and gyroscopes makes it possible (even with the computing power of a wearable device) to determine the moments when one and the same text is entered (for example, authentication data) to an accuracy of up to 96% for desktop computers and up to 64% for mobile devices. The latter accuracy could be improved by writing more complex algorithms for processing the signals received, but we intentionally applied the most basic mathematical toolbox. Considering that we viewed this experiment through the prism of the threat to corporate users, the results obtained for the desktop computer are a major cause for concern.

A probable scenario involving the use of wearable devices relates to downloading a legitimate app to a smartwatch — for example, a fitness tracker that periodically sends data packets of several dozen kilobytes in size to a server (for example, the uncompressed “signal signature” for the 13-character password was about 48 kilobytes).

Since the apps themselves are legitimate, we assume that, alongside our Android Wear/Android for Smartwatch test case, this scenario can be applied to Apple smartwatches, too.

Recommendations

There are several indications that an app downloaded onto a smartwatch might not be safe.

  1. If, for instance, the app sends a request for data about the user’s account (the GET_ACCOUNTS permission in Android), this is cause for concern, since cybercriminals need to match the “digital fingerprint” with its owner. However, the app can also allow the user to register by providing an email address — but in this case you are at least free to enter an address different to that of the Google Play account to which your bank card is linked.
  2. If the app additionally requests permission to send geolocation data, your suspicions should be aroused even further. The obvious advice in this situation is not to give additional permissions to fitness trackers that you download onto your smartwatch, and to specify a company email address at the time of registration.
  3. A short battery life can also be a serious cause for concern. If your gadget discharges in just a few hours, this is a sign that you may be under observation. Theoretically, a smartwatch can store logs of your activity with length up to dozens of hours and upload this data later.

In general, we recommend keeping a close eye on smartwatches sported by employees at your office, and perhaps regulating their use in the company’s security policies. We plan to continue our research into cyberphysical systems such as wearable smart gadgets, and the additional risks of using them.

Почему #DeleteFacebook уже поздно

На днях Facebook оказался в центре громкого скандала. В СМИ появилась информация о том, что данные о предпочтениях 50 миллионов пользователей Facebook стали достоянием коммуникационной компании из Кембриджа по имени Cambridge Analytica, и эти данные были использованы для целенаправленной политической рекламы. Дополнительное недовольство общественности вызвало то, как повел себя в данной ситуации сам Facebook.

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

Facebook users' profiles have been for sale for a while

Продать всех знакомых за 1 доллар

Для начала давайте восстановим хронологию. Все началось в 2014 году с исследования Михаля Косински, профессора Кембриджского университета, совместно с двумя соавторами из Стэнфордского и Калифорнийского университетов.

В этом исследовании добровольцам предлагалось составить портрет их личности по модели OCEAN (Openness, Conscientiousness, Extravertism, Agreeableness, Neuroticism), для чего им было предложено загрузить Facebook-приложение MyPersonality, которое анализировало их предпочтения (лайки). Добровольцев набралось примерно 86 тысяч. Самый главный вывод, который сделал Косински с соавторами из этого исследования — Сеть знает о людях намного больше, чем люди знают о себе сами.

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

Тем временем Facebook ужесточил настройки приватности, и лайки стали по умолчанию недоступны сторонним приложениям. Но тут на помощь пришел краудсорсинг в лице платформы Amazon Mechanical Turk, где было размещено приложение Thisisyourdigitallife. Пользователям сообщалось, что данное приложение создано в целях проведения психологических исследований, и в качестве организатора исследований был указан Александр Коган.

Цель исследования была заявлена следующая: изучить предпочтения как можно большего количества пользователей социальной сети Facebook и построить социопсихологические профили на основании информации об их предпочтениях (лайках). Каждому добровольцу, каковых оказалось порядка 270 тысяч, было выплачено по одному доллару США.

Само по себе исследование предпочтений пользователей, пусть и несколько дороговатое (270 тысяч долларов — это довольно серьезная сумма затрат для исследований в области психологии, и трудно представить, что вовлеченный в него профессор психологии из Кембриджа заплатил за все сам), не является чем-то криминальным.

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

Мы вспоминаем сегодня о нем, потому что именно он обнаружил факт взаимосвязанности всех людей, проживавших в 1960-х годах в Северной Америке, который больше известен как «теория шести рукопожатий». Скорее всего, Милгрэм считал, что с развитием технологий люди станут еще ближе друг к другу, но вряд ли даже он мог предположить, что, заполучив данные о сотнях тысяч людей, заказчики исследования смогут впоследствии охватить (если верить последним обвинениям в адрес Cambridge Analytica) 50 миллионов, что в сотни раз больше, чем изначальное число респондентов.

А все дело в том, что, отдав информацию о своих предпочтениях, участники исследования заодно отдали информацию о предпочтениях своих друзей по Facebook, и таковых набралось более 50 миллионов.

Как данные 50 миллионов пользователей оказались у Cambridge Analytica

То, как данные участников исследования Когана стали достоянием коммерческой компании из Кембриджа, — это еще одно темное пятно в этой истории. Cambridge Analytica — дочернее предприятие коммуникационной компании из Кембриджа, SCL (Strategic Communications Laboratories), специализирующейся, как нетрудно понять из названия, на обработке данных.

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

Согласно версии, озвученной Facebook, как только в компании стало известно о факте наличия у SCL/Cambridge Analytica пользовательских данных, представители соцсети немедленно выдали предписание их удалить. Однако реакция Facebook, видимо, оказалась не слишком убедительной, иначе мы бы не стали свидетелями многочисленных призывов #DeleteFacebook.

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

И что же пользователям Facebook с этим делать?

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

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

Так, по нашим данным, 78% пользователей, может быть, и хотели бы «выйти из сумрака», но не могут, потому что для 62% из них это удобный инструмент общения с друзьями и родственниками. Кроме того, многие даже не представляют того объема информации (видео, фото, сообщения), который они уже опубликовали, например, в том же Facebook. Но вы можете узнать и сделать для себя осознанный выбор. И, зная об этом, быть осторожными в Сети!

Why it’s too late to #DeleteFacebook

Facebook was recently hit by a huge scandal. According to media reports, data on the “likes” of 50 million Facebook users was harvested by the firm Cambridge Analytica and used for targeted political advertising. Facebook’s own behavior of added fuel to the fire of public outrage.

As a result, the company’s capitalization shed tens of billions of dollars (it’s down $35 billion as we write), and a number of Twitter activists launched the #DeleteFacebook campaign. In our opinion, first, the action comes a bit late —the horse has well and truly bolted — and second, the incident underscores yet again people’s dependence on modern technology and vulnerability to it.

Facebook users' profiles have been for sale for a while

A dime a dozen

Let’s deal with the chronology first. It really began in 2014 with a study by Wu Youyou and Michal Kosinski of Cambridge and Stanford Universities, respectively, along with a coauthor from Stanford University.

As part of the research, participants were asked to create a personality portrait based on the OCEAN model (Openness, Conscientiousness, Extravertism, Agreeableness, Neuroticism), involving downloading the Facebook app MyPersonality, which analyzed their likes. About 86,000 people took part. The authors’ main conclusion was that the Web knows much more about people than people know about themselves. Sure thing, Sherlock.

The results attracted the interest of another Cambridge University professor by the name of Alexander Kogan. Kogan is reported to have asked to see the initial research data, but was declined. It’s not known why — professional ethics, potential legal trouble with Facebook (although officially no rules would have been broken at the time), or academic rivalry. Whatever the case, soon after the exchange, Kogan decided to conduct his own study.

In the meantime, Facebook tightened its privacy settings, making likes inaccessible to third-party apps by default. But then crowdsourcing came to Kogan’s rescue — in the form of Amazon Mechanical Turk, where the app Thisisyourdigitallife was hosted. Users were informed that the app had been created for the purpose of conducting a psychological study, and Kogan was named as the research leader.

The purpose of the research was stated as follows: to study the likes of as many Facebook users as possible and build sociopsychological profiles based on that information. The participants, about 270,000 in all, were paid a dollar each.

There was nothing criminal about the study itself — except perhaps the price tag ($270,000 is quite an outlay for a psychological study, and one doubts that the Cambridge professor paid for it himself).

However, such data is a goldmine for market scientists — and not only those who work for commercial companies, but also those in political parties. The idea that political figures are marketable like consumer goods to the masses (based on target group preferences) has been around since Stanley Milgram began conducting his renowned sociopsychological experiments.

Milgram is remembered today for, among other things, his revelations about the interconnectedness of North Americans. It’s likely Milgram thought the development of technology would bring us ever closer together. But even he could not have imagined that, having obtained data on hundreds of thousands of people, research commissioners would be able to up that figure to hundreds of times greater (according to the latest accusations against Cambridge Analytica) than the original number of respondents.

That was because in handing over information about their likes, research participants simultaneously also gave away their Facebook friends’ likes, raising the count to over 50 million.

How did Cambridge Analytica wind up with 50 million profiles?

How Kogan’s guinea pigs became the property of a firm in Cambridge is another murky tale. Cambridge Analytica is a subsidiary of a communications company, SCL (Strategic Communications Laboratories), which specializes in data processing.

The details vary depending on the source: Some say Kogan was a cofounder of SCL, others that he was only a research operator hired by the firm. Commercial companies outsource sociological and psychological research to universities — it’s standard practice. However, in such cases, universities (almost) never hand over the personal data of their research participants to the commissioners of the study — only faceless statistics.

According to Facebook’s version of events, as soon as the company became aware, back in 2015, that SCL/Cambridge Analytica was in possession of user data, the social media giant immediately requested its deletion. But Facebook’s response failed to convince doubters; hence the snowballing #DeleteFacebook campaign.

The story is multifaceted, it must be said. For a start, there’s a strong whiff of academic rivalry — the desire of researchers to outdo each other in terms of sample size. Then, there’s the likelihood that the user agreement with the participants was violated — they were probably (and their Facebook friends were certainly) not informed that their data would be given to third parties. Lastly, there are the dubious actions of Facebook itself.

What do Facebook users have to do with all this?

For us users, it’s another wake-up call. How many more incidents will it take before people finally smell the coffee and realize that their social media presence affects not only them, but also those they interact with? And when apps like GetContact, MyPersonality, and Thisisyourdigitallife are making the rounds, think twice before clicking.

But the social media genie is out of the bottle and there’s no putting it back. Calling on people to delete themselves from social media is no less belated than announcing the termination of contracts with an analytics company two full years after everything that might have happened already did.

According to our data, 78% of users would quite like to kick the social media habit, but they feel they can’t. For 62% of them, it’s just too convenient a tool for keeping in touch with friends and family. What’s more, many have no inkling of how much information (videos, photos, messages) they’ve published out there on social media, including, of course, on Facebook.

Reprinted from Kaspersky Lab’s Kaspersky Daily blog.

50 хэшей в час

Инсайдер не обязательно должен обладать высокой квалификацией

Как внешне безобидный инсайдер с Raspberry Pi способен взломать вашу корпоративную сеть

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

Ранее мы выясняли, безопасно ли заряжать смартфон по USB. Сейчас речь пойдет о подключении к USB-порту микрокомпьютеров, с помощью которых осуществляется перехват аутентификационных данных. Как нам удалось установить в ходе исследования, эта атака успешна и против заблокированных систем и может быть использована для похищения реквизитов доступа пользователей с административными правами. Опасность утечки прав администратора хорошо иллюстрирует пример Carbanak — злоумышленникам, чьи действия были раскрыты в 2015 году, удалось похитить, по разным оценкам, до миллиарда долларов. Важной частью «успеха» Carbanak было выявление и перехват реквизитов системных администраторов, для чего была выстроена и реализована сложная целевая атака.

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

Инсайдер не обязательно должен обладать высокой квалификацией

Для наших экспериментов мы выбрали самый обычный Raspberry Pi Zero, который был сконфигурирован таким образом, чтобы «представиться» подключаемой системе как USB-Ethernet-адаптер. Наш выбор был не случаен — Raspberry Pi Zero является лидером по числу упоминаний на форумах, где обсуждается возможность взлома машин с помощью одноплатных компьютеров. Скорее всего, такая популярность связана с габаритами устройства и его вычислительной мощностью при очень демократичной цене. Разработчики смогли уместить все элементы питания, чип и интерфейсы в корпусе размером чуть больше привычной «флэшки».

Raspberry Pi Zero

Сама идея использовать микрокомпьютеры для перехвата и анализа сетевых пакетов или в качестве универсальной платформы для взлома далеко не нова. Большинство миниатюрных вычислительных устройств построено на микропроцессорах архитектуры ARM, и для них есть специальный дистрибутив операционной системы Kali Linux, предназначенной для тестирования информационной безопасности ИТ-систем.

Также на рынке существуют специализированные предложения для выполнения тестов на проникновение, например, USB Armory. Однако при всех своих достоинствах, в числе которых привычный разъем USB Type A (для Raspberry Pi требуется переходник), USB Armory стоит существенно дороже (около $135) и не идет ни в какое сравнение по распространенности с Raspberry Pi. Первые заявления о возможности кражи хэшей «через USB» к компьютеру (под управлением как Windows, так и Mac OS) появились уже в 2016 году, а немного позже мы увидели на рынке специальные версии Raspberry Pi Zero, «заточенные» не только на перехват хэшей паролей, но и файлов cookie в браузере. Мы не будем останавливаться в этом блогпосте на том, что означает перехват хэша пароля и насколько сложно восстановить исходный пароль пользователя (что, вообще говоря, не всегда и необходимо).

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

Эксперимент 1: перехват реквизитов доступа в домен

Методология

Ключевой особенностью атаки является эмуляция устройством сетевого адаптера. Модуль для Raspbian OS, эмулирующий Ethernet-устройство, был найден без труда (на момент публикации данной статьи аналогичного модуля для Kali Linux мы обнаружить не смогли). Чтобы Raspberry Pi Zero распознавалась компьютером, необходимо внести небольшие изменения в конфигурационные файлы cmdline.txt и config.txt.

cmdline.txt

config.txt

Дополнительно устанавливаем интерпретатор python, библиотеки для управления БД sqlite3 и специальное приложение Responder, которое собственно и осуществляет перехват пакетов аутентификации:

apt-get install -y python git python-pip python-dev screen sqlite3
pip install pycrypto
git clone
https://github.com/spiderlabs/responder

Но это еще не все. Нам понадобится собственный DHCP-сервер isc-dhcp-server, в котором нужно настроить диапазонвыдачи IP-адресов и маску подсети, чтобы отделить «внутреннюю кухню» микрокомпьютера от подключаемой системы Windows или Mac, в которую мы хотим «влезть». Остались последние штрихи: настроить интерфейс usb0 и прописать автоматический запуск Responder и DHCP-сервера. После чего устройство готово к использованию.

Результаты

Мы начали проверять работу нашего «заряженного» микрокомпьютера на Windows 10 и сразу убедились, что подключенная Raspberry Pi Zero автоматически распознается как новое «проводное» LAN-соединение, причем более приоритетное, чем все остальные. В «Центре управления сетевыми подключениями» Windows эмулируемая сеть показывается как неопознанная сеть, в «Диспетчере устройств» эмулируемое устройство отображается как Remote NDIS based Internet sharing device:

Видите сетевой адаптер? А на самом деле его нет...

Далее Responder анализирует запросы, проходящие через эмулируемую сеть, и в нужный момент подставляет фейковый сервер HTTPS и HTTP- или NTLM‑аутентификации. Ключевая особенность программы заключается в том, что она поддерживает версии NTLMv1 и NTLMv2.

Атака сработает в случае, когда фоновые приложения сами отсылают аутентификационные данные или же при их вводе в стандартные окна запроса учетных данных браузера или «Проводника» при доступе к удаленной папке/принтеру.

Стандартное окно ввода данных

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

Нас интересовало три сценария реализации атаки:

  1. на корпоративный компьютер в доменной сети;
  2. на корпоративный компьютер в общественной сети;
  3. на домашний компьютер.

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

Поэкспериментировав со временем работы нашей «машинки» в диапазоне от нескольких минут до получаса, мы увидели, что чем дольше устройство подключено к системе, тем больше хэшей удается перехватить. Экстраполируя наши приблизительные данные, мы пришли к выводу, что нам удастся перехватить около 50 хэшей в час. Скорее всего, этот показатель зависит от топологии корпоративной сети (в частности, от количества пользователей в одном сегменте) и их активности в данное время суток. Мы не рискнули долго использовать устройство, поскольку перехват пакетов имеет дополнительные побочные эффекты, о которым мы расскажем чуть ниже.

Вот как выглядит сам файл с перехваченными хэшами:

Hashes in the plaintext file

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

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

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

Certificate warning

Из интересных побочных эффектов стоит отметить, что когда устройство находится в работе — подключено к хосту, соединенному с корпоративной сетью, то оно напрочь блокирует все запросы печати и доступа к удаленным папкам (протокол SMB), — т.е., производит «мини-диверсию». Вот что мы увидели на другом (т.е. к которому не был подключен «заряженный» Raspberry Pi) компьютере под управлением Mac OS в этом же сегменте сети:

Network printing error

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

Bonus

Когда NTLM-системы Windows и Mac OS успешно пали перед натиском микрокомпьютера, у нас возник вопрос — а что насчет Linux? И тогда у нас возникла шальная мысль — а почему бы не попробовать атаковать… саму Raspberry Pi, ведь Raspbian OS построена на ядре Debian Weezy.

Мы воспроизвели эксперимент, выбрав в качестве цели для атаки Raspberry Pi 3, подключенный к корпоративной сети через интерфейс Ethernet. И вот тут нас ждал приятный сюрприз: Raspbian OS при выборе из двух сетей с разными интерфейсами всегда предпочитает Ethernet. По этой причине Responder на Raspberry Pi Zero был активен, но не регистрировал пакетов аутентификации, так как они через него не ретранслировались. Если отключить Ethernet и оставить атакуемой системе единственное сетевое подключение через USB, то Responder перехватывает хэши по схеме, полностью аналогичной вышеописанному сценарию с Windows.

Raspberry Pi Zero hacking into Raspberry Pi 3

Аналогичную картину мы наблюдали и на «десктопной» версии Debian (запущенной на Chromebook) — система не назначает автоматически USB-адаптер приоритетным сетевым интерфейсом. Таким образом, атака путем присоединения микрокомпьютера к системе, подключенной по Ethernet к корпоративной сети, будет неэффективна. Подключение типа Raspberry PI-in-the-middle не выглядит перспективным вариантом, поскольку сложнее реализуется и легче обнаруживается.

Методология

Услышав сообщение о возможности кражи cookie с помощью Raspberry Pi Zero, мы решили его проверить. Мы нашли приложение, называемое poisontap, которое впоследствии энтузиасты объединили с приложением Responder из первого эксперимента. Такая связка была названа HackPi.

Настройки микрокомпьютера в этом эксперименте аналогичны настройкам для предыдущего, однако в HackPi был усовершенствован механизм распознавания устройства десктопными ОС: оно автоматически устанавливает драйвер сетевого устройства на Windows 7/8/10, Mac OS, и Unix-системах.

Сразу после загрузки ОС запускается эмулятор сетевого устройства, появляется новое подключение локальной сети, которое должно быть определено системой как приоритетное — иначе пакеты не будут через него перенаправлены. Существенным отличием от предыдущего эксперимента является то, что вместо перехвата пакетов аутентификации приложением, выполняется XSS-атака и запускается вредоносный Java Script из подгружаемой веб-страницы. Дополнительно, веб-сервер poisontap сохраняет копию cookie с сайтов по заранее определенному списку.

Результаты

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

Poisontap stealing cookies

Если же никаких действий пользователем не производится, то Raspberry Pi Zero запускает браузер со страницей go.microsoft.com в адресной строке, на которой подгружается зараженная страница со встроенного веб-сервера и далее процесс, описанный выше, повторяется. Однако, радоваться злоумышленникам рано — если в браузере по умолчанию сохраненных cookies нет, то доступа к сайтам из «списка интересов» они не получат.

Среди сайтов, прописанных в скрипте: youtube.com, google.com, vk.com, facebook.com, twitter.com, yandex.ru, mail.ru и еще более 100 веб-адресов. Вот как выглядит лог с добытыми cookie:

Cookies

Мы проверили валидность полученных cookie на примере pikabu.ru, вставив данные в поля абсолютно чистого браузера другой машины и успешно получили доступ к аккаунту вместе с его статистикой активности на сайте.

Гораздо более серьезную опасность представляет потеря cookie на одном из российских сайтов, хранящем персональные данные своих клиентов в их личном профиле. Мы создали тестовый аккаунт и смогли заполучить пользовательский токен этого сайта. С его помощью мы получили возможность распоряжаться скомпрометированным аккаунтом на другом компьютере, поскольку для аутентификации передается единственный идентификатор сессии LtpaToken2:

Восстановленная по cookie сессия

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

Восстановленная по cookie сессия

Среди достоинств этого метода — возможность использования практически на всех операционных системах и платформах: Windows 7/8/10, Mac OS X. Однако, именно этот сценарий не работает на заблокированном компьютере – по крайней мере, пока. Хотя мы не рекомендуем расслабляться и предлагаем исходить из того, что обойти ограничения блокировки для такой атаки всего лишь вопрос времени и энтузиазма умельцев, число которых каждый день растет.

Но самое главное — зараженная страница блокируется всеми без исключения продуктами «Лаборатории Касперского», определяющих ее как зараженную Trojan.JS.Poisontap.a. Также, по нашим данным, эта страница будет заблокирована защитным ПО и других ведущих вендоров.

Выводы

Одноплатные микрокомпьютеры представлены в широком ассортименте: от Raspberry Pi Zero до специально заточенных под подобные задачи устройств, внешне не отличимых от флэшки. Отвечая на главный вопрос о том, насколько серьезна данная проблема, можем резюмировать — масштаб бедствия на данный момент скорее преувеличен. Впрочем, не стоит недооценивать злоумышленников — при планировании мероприятий по обеспечению безопасности лучше исходить из того, что те трудности, с которыми мы столкнулись в своем эксперименте, ими уже либо преодолены, либо будут преодолены в ближайшее время.

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

MacOS is vulnerable, too

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

Рекомендации

Чтобы не стать мишенью для злоумышленников следует помнить о нескольких простых правилах.

Для пользователей

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

2. Вернувшись, стоит проверить — не появилось ли новых USB-устройств. Торчит какая-то флэшка? А это точно флэшка? Если вы ее не вставляли, ее нужно вытащить.

3. Если вас просят записать информацию на внешний накопитель, стоит убедиться, что это действительно накопитель. Лучше отправить данные по почте.

4. Возьмите в привычку нажимать кнопку «Выход» по завершении работы на сайтах, требующих аутентификации.

5. Не забывайте регулярно менять пароли (от учетной записи на ПК, и веб-ресурсов). Помните, что далеко не все сайты используют механизмы защиты от подстановки данных сессии из cookie. Чтобы упростить и облегчить себе жизнь, можете использовать специализированное ПО, например, Kaspersky Password Manager.

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

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

Для администраторов

1. Если топология сети позволяет, используйте только протокол аутентификации Kerberos. Если есть необходимость поддержки legacy-систем LLNMR, NTLM, настоятельно рекомендуется разбивать доменную сеть на сегменты таким образом, чтобы исключить возможность «прослушки» всей сети целиком.

2. Запретите использование привилегированных доменных учетных записей (особенно доменных администраторов) для доступа в legacy-системы.

3. Доменные пароли пользователей должны регулярно меняться. Если по каким-то причинам в политике безопасности организации еще не прописана регулярная смена паролей пользователей, сделайте это сейчас же.

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

5. Для предотвращения подключения «несанкционированных» USB-устройств также полезно будет задействовать функцию Device Control, доступную в Kaspersky Endpoint Security for Business.

6. Если вы являетесь владельцем веб-ресурса, рекомендуем активировать режим HSTS (HTTP strict transport security), что позволит защитить пользователей от подмены используемого протокола с HTTPS на HTTP.

7. По возможности отключите режим прослушивания и активируйте настройку Client Isolation (AP Isolation) на Wi-Fi роутерах и коммутаторах, не позволяющие получить рабочей станции чужой трафик.

8. От атаки с подменой DHCP сервера можно защититься активацией настройки DHCP Snooping в вашем роутере/маршрутизаторе.

В заключение рекомендуем проверить ваши учетные данные на предмет утечки из веб-сайтов, где вы зарегистрированы, с помощью сервиса HaveIbeenPwned.

Перепечатка с Securelist.ru.