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

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 часов записей вашей активности и сливать эти данные в сеть.

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

Почему #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. Но вы можете узнать и сделать для себя осознанный выбор. И, зная об этом, быть осторожными в Сети!

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.

Вирусы: назад к истокам

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

Вполне вероятно, что в обозримом будущем значение этого слова применительно к компьютерным данным получит свое оригинальное значение. Дело в том, что этим летом исследователям из Microsoft и Университета Вашингтона удалось сделать то, что не удавалось сделать до них никому, — записать 200 Мбайт данных в виде последовательности нуклеотидов, входящих в состав искусственно созданной ДНК.

dna-storage-featured

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

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

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

Как устроена ДНК

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

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

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

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

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

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

Как считывают ДНК

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

Однако ДНК не зря считают самой большой молекулой в нашем организме — в человеческой ДНК из гаплоидной клетки содержится порядка 3 млрд пар оснований. Ее молекулярная масса на несколько порядков больше молекулярной массы самого крупного из известных науке белков.

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

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

Для секвенирования биологи используют «молекулярные машины» — специальные белки (энзимы) полимеразы. Основная функция этих белков — копирование ДНК. Делают они это, последовательно проходя вдоль спирали и собирая из нуклеотидов идентичную молекулу.

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

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

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

Если говорить в компьютерных терминах, то происходит это следующим образом. Допустим, у нас есть комбинация бит 1101100001010111010010111. Предположим, что нашим праймером является комбинация 0000, а маркером — комбинация 11. В результате секвенирования мы получим следующий набор фрагментов, в порядке убывания их вероятности:
 0000101011, 
00001010111,
 0000101011101001011, 
00001010111010010111.

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

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

ДНК и хранение произвольной информации

Научившись за полвека неплохо считывать информацию из ДНК, оставалось научиться синтезировать цепочки нуклеотидов. Тут надо уточнить, что исследователи Microsoft были не первыми, кто записал информацию в виде двойной спирали ДНК. Первыми были ученые из европейского института биоинформатики (EMBL-EBI), несколько лет назад записавшие 739 Кбайт.

В чем же новизна достижений Microsoft? Во-первых, в существенном увеличении объема записи — до 200 Мбайт. Уже довольно близко к тем 750 Мбайт, которые содержатся в ДНК человека. Впрочем, главная инновация состоит в том, что исследователи предложили способ, позволяющий считывать не всю ДНК целиком, а ее отдельный участок — порядка 100 битов-оснований за одну операцию.

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

Пока ученые считают, что основной нишей подобного использования ДНК могут стать модули памяти высокой плотности, предназначенные для длительного хранения информации. В этом есть смысл — плотность записи данных в лучших современных образцах флеш-памяти достигает десятков квадриллионов (~1016) бит на кубический сантиметр, в то время как плотность хранения данных в ДНК на три порядка выше: десятки квинтиллионов (~1019) бит на кубический сантиметр.

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

Вернемся к вирусам

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

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

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

Поэтому как бы не пришлось, прочитав ДНК-чип лет через десять после его записи, вспоминать, не чихала ли лаборантка во время записи важного архивного документа.

 

Перепечатка с https://blog.kaspersky.ru/dna-storage/13562/. Пожалуйста, не забудьте включить оригинальную ссылку при перепечатке.

Всплески энергопотребления при заряде мобильного и обмене данными по USB

Не так давно коллеги уже поднимали вопрос безопасности зарядки мобильного телефона от USB порта и выяснили, что если «на том конце» порта есть компьютер, то обмен данными происходит всегда – даже в случае, если телефон заблокирован. Мне стало интересно – а можно ли измерить величину энергопотребления системы «компьютер + мобильный» в момент обмена данными? И насколько значим будет эффект с точки зрения энергопотребления, если устранить обмен данными при «рукопожатии» с помощью Pure.Charger?

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

Немного теории

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

Фундаментальный предел энергопотребления, обусловленный необратимостью вычислений, можно оценить по принципу Ландауэра, предложенному в 1961 году: ∂Q = dS · T = kTln(2), что равно примерно 3×10-21 Джоуля на бит при комнатной температуре. На практике же на обработку, а тем более на передачу данных тратится значительно больше электроэнергии. Так, по данным обзорного исследования Короама и Хилти, опубликованного в 2014 году в журнале Environmental Impact Assessment Review, на отправку одного бита данных по сети Интернет тратится примерно 4×10-7 Джоулей – на 14 порядков больше фундаментального предела.

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

Эксперимент

Мы использовали различные комбинации хостов и мобильных устройств. В качестве хостов мы задействовали:

Ноутбуки ОС
Apple MacBook Pro OS X 10.10.5
Dell Latitude E6320 Windows 7 64-bit Enterprise Edition

К ним мы подключали мобильные телефоны:

Мобильные устройства ОС
Samsung GT-i9300 (Galaxy S3) Android 4.4
LG Nexus 6X Android 6.0.1
Apple iPhone 4s iOS 9.2.1

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

electro_lurye_pic01

Схема экспериментального стенда в эксперименте с MacBook Pro

electro_lurye_pic02

Схема экспериментального стенда в эксперименте с Dell Latitude E6320

Наш несложный эксперимент свелся, по сути, к измерению тока, протекающего по линии питания системы «компьютер + мобильное устройство». Чтобы, с одной стороны, сделать эксперимент универсальным и легко воспроизводимым, а с другой стороны – не портить дорогостоящее оборудование, мультиметр был подключен в разрыв линии переменного тока 220 В, а не в разрыв линии постоянного тока на выходе блока питания. Заодно мы проверили стабильность напряжения и частоты переменного тока и выяснили, что на величины напряжения и частоты обмен данными не влияет, а проявляет себя исключительно в скачках силы потребляемого тока.

Поскольку мультиметр при измерении силы и напряжения переменного тока выдает значения среднеквадратичных величин или RMS (Root Mean Square) в определенные интервалы времени, то интересующая нас величина энергопотребления с хорошей степенью точности равна сумме произведений величин силы тока IRMS на среднее значение URMS и на длительность интервалов времени dt. Стоит подчеркнуть, что везде в расчетах энергопотребления мы использовали среднеквадратичные значения, а не амплитуды (I0=IRMS *√2), поскольку, по определению, среднеквадратичная величина тока эквивалентна значению постоянного тока, рассеивающего столько же тепла на такой же резистивной нагрузке.

Результаты

«Рукопожатие»

Чтобы исключить влияние тока зарядки на показания мультиметра, мобильное устройство и ноутбук были полностью заряжены перед каждым экспериментом. Дополнительно, мы отделили момент подключения мобильного устройства к линии питания и линии данных USB, использовав Pure.Charger. Последовательность действий в этом эксперименте была следующей: сначала подключался Pure.Charger, а к его выходному порту – мобильное устройство. Так мы отделили момент подключения мобильного устройства к проводникам питания и к линиям данных.

На графике ниже представлена динамика потребления тока (в мА) при подключении Nexus 5X к MacBook Pro:

electro_lurye_pic03

На графике видно два всплеска: первый – в момент включения линии данных и подключения телефона в режиме «только заряд», второй – в момент разрешения пользователем обмена данными с телефоном.

Динамика потребления тока при подключении разблокированного Samsung S3 к MacBook Pro несколько иная:

electro_lurye_pic04

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

Ниже – график, который мы получили при соединении iPhone 4S и Dell Latitude E6320:

electro_lurye_pic05

Основному всплеску энергопотребления, соответствующему «рукопожатию» iPhone 4S и Latitude E6320, предшествует небольшой пик, лишь немногим превышающий среднеквадратичное отклонение. Это Pure.Charger, будучи подключенным к USB, «представляется» системе.

В эксперименте с Latitude E6320 и iPhone 4S «рукопожатие» Pure.Charger наиболее заметно, однако, поскольку величина энергопотребления пропорциональная площади под кривой зависимости тока от времени, видно, что на это «рукопожатие» уходит намного меньше энергии, чем на обмен данными между мобильным телефоном и хостом. В целом, по результатам нашего эксперимента энергопотребление, привносимое Pure.Charger в систему, не превышает среднеквадратичной ошибки измерения тока покоя как для Dell Latitude E6320, так и для MacBook.

На графиках видно, что флуктуации потребляемого тока у Latitude E6320 (среднеквадратичное отклонение достигало 8 мА) существенно выше, чем у MacBook Pro (среднеквадратичное отклонение — 4 мА). Это объясняется, во-первых, применением в Latitude E6320 накопителя на жестком диске (HDD), в отличие от твердотельного накопителя в MacBook (SSD), а, во-вторых, использованием Latitude E6320 как для записи данных, поступающих с мультиметра через последовательный порт, так и в качестве хоста, что вносило дополнительную лепту в искажение общей картины потребления.

Передача данных

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

Фиксированный объем данных

Картина измерений, например, для Nexus 5X, который после подключения мы попросили передать 391 Мбайт на MacBook Pro, выглядела так:

electro_lurye_pic06

На рисунке мы наблюдаем все те же два характерных для Android 6 всплеска потребления тока, а спустя некоторое время – работу системы в режиме повышенного энергопотребления.

Вот так выглядит график потребления тока MacBook Pro при получении 188 Мбайт с Samsung S3.

electro_lurye_pic07

Здесь мы видим один узкий всплеск энергопотребления при «рукопожатии» Samsung S3 (телефон разблокирован), отчетливое начало и конец отправки файлов, а в конце – узкий всплеск энергопотребления в момент отключения телефона, когда система закрывает окна и процессы, которые были активны.
Мы провели несколько аналогичных экспериментов. Как и следовало ожидать, длительность промежутка времени, в течение которого система потребляет больше тока, напрямую зависит от объема передаваемых данных – чем больше размер файла, тем он дольше.

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

Зависит ли энергопотребление от направления передачи данных – от мобильного к хосту и наоборот? Задавшись этим вопросом, мы попробовали изучить динамику потребления тока и в том, и в другом случаях. Для этого мы измеряли ток потребления системы «хост + мобильный» в режиме передачи файлов одного и того же размера, но в разном направлении. В силу невозможности прямой отправки файла по USB-соединению на устройство под управлением iOS, в этом эксперименте мы задействовали только аппараты под управлением Android.

electro_lurye_pic08 electro_lurye_pic09

На графике слева – динамика потребления тока при подключении Samsung S3 к Latitude E6320 в режиме чтения 808 Мбайт данных со смартфона, а на графике справа – в режиме отправки на смартфон такого же объема данных. Несмотря на зашумленность графика, типичного для эксперимента с Latitude E6320, моменты подключения телефона, а также начала и конца отправки файлов видны отчетливо.

Мы провели шесть аналогичных экспериментов и получили следующие результаты:

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

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

Затраты энергии на передачу единицы информации

Для аппроксимации зависимости затраченной энергии от объема данных мы сделали два допущения:

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

С учетом этих допущений наиболее экономичной комбинацией оказался MacBook Pro с подключенным к нему Samsung S3 – эта пара тратит всего (3,3±0,2)x10-8 Джоуля на бит, а самой прожорливой – Apple iPhone 4S в паре с Dell Latitude E6320, потребляющая (9,8±0,6)x10-8 Джоуль на отправку или прием одного бита.

electro_lurye_pic10

Выводы

Диапазон значений величины энергии, необходимой на отправку одного бита информации по USB, составляет от 3,1×10-8 до 1,4×10-7 Джоуля. Если вспомнить, что по данным Короама и Хилти величина энергопотерь при отправке одного бита по интернету была равна 4×10-7 Джоуля, выйдет, что полученная нами оценка скорее всего является корректной с точки зрения порядка величины.

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

Экономия в масштабе

В заключение хотелось бы оценить возможную величину энергопотерь, вызванных «рукопожатиями», на фоне энергии, которая уходит на заряд телефона. При напряжении 5В и токе 2А зарядка длится порядка 20-40 минут, следовательно, мобильное устройство «скушает» за типичный сеанс заряда от 12 до 24 кДж. За «рукопожатие» теряется приблизительно от единиц до десятков джоулей, т.е. на фоне аппетитов самого телефона эти потери составляют десятые – сотые доли процента. Отдельному пользователю это практически не заметно, но вот если бы все жители, например, Москвы, заблокировали «рукопожатия» в течение всего лишь одного дня, сэкономленной электроэнергии (порядка 50 киловатт-часов) хватило бы среднестатистическому жителю столицы на целый месяц обычной жизни – а это уже пусть и не так много на фоне многомиллионного города, но все же заметно.

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

Пишите!

В статье использованы материалы исследования, отправленного на публикацию в журнал IEEE Transactions on Mobile Computing. Препринт статьи доступен по ссылке.

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

Дилемма заключенного в индустрии информационной безопасности

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

Сначала я объясню, в чем состоит дилемма заключенного (для тех, кто по той или иной причине еще не знает, что это такое). Представим, что под следствием находятся двое подозреваемых. Следователи предлагают первому подозреваемому (Алисе) свидетельствовать против второго (Боба). Если Алиса согласится, то ей будет вынесен менее суровый приговор (один год тюрьмы), а Боб гарантированно получит максимальный срок (три года тюрьмы). Разумеется, Боб получает симметричное предложение. Но если оба подозреваемых будут свидетельствовать друг против друга, то следствие получит достаточно данных, чтобы посадить каждого на два года. Если же оба подозреваемых откажутся сотрудничать со следствием, то получат минимальный срок (один год), поскольку у прокурора не будет оснований требовать более длительного заключения(*). Таблица вариантов выглядит следующим образом: ​

Срок заключения (для Алисы и Боба), в годах

Алиса

Дает показания

Молчит

Боб

Дает показания

Алиса – 2 года, Боб – 2 года

Алиса – 3 года, Боб – 1 год

Молчит

Алиса – 1 год, Боб – 3 года

Алиса – 1 год, Боб – 1 год

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

Важность этой простой теории подтверждается многочисленными примерами подобной дилеммы из реальной жизни. Во времена холодной войны страны НАТО и участники Варшавского договора столкнулись с аналогичной дилеммой: разоружаться или продолжать гонку вооружений. С точки зрения каждой из сторон разоружение в ситуации, когда противник продолжает вооружаться, означало уязвимость в военном смысле и грозило уничтожением. Напротив, сохранение вооружений при условии разоружения оппонента означало получение военного превосходства. Если обе стороны наращивали объемы вооружений, то нападение для любой из сторон оказывалось невозможным, однако расходы на создание и поддержание ядерного арсенала становились огромными. Если бы обе стороны выбрали разоружение, то это позволило бы избежать и войны, и непомерных расходов. Таким образом, наилучшим решением было разоружение обеих сторон, которое позволило бы экономике стран из обоих блоков процветать. Однако рациональные соображения побудили обе стороны продолжать гонку вооружений.

Вернемся к индустрии информационной безопасности. Продавая наши продукты и решения, мы встаем перед дилеммой: создавать ли атмосферу страха, неуверенности, сомнения или же не создавать ее. Мы фактически ведем «гонку вооружений» с другими поставщиками решений безопасности. Кто сможет напугать большее количество клиентов, тот, в зависимости от прокачанности навыка коммерциализации этого внимания, больше и заработает. Однако нагнетание атмосферы страха и неопределенности требует усилий и, как следствие, влечет расходы, но главное – эффект довольно постепенно сходит на нет. Обычные люди уже привыкли к новостям о взломах и уязвимостях информационных систем, а также других громких киберпреступлениях, и не реагируют на них так же остро, как раньше. Журналисты и блогеры устали не меньше читателей. Брайан Кребс (Brian Krebs), на которого ссылается эта статья, признается: «Эти истории приелись даже мне. В какой-то момент вы неизбежно задаетесь вопросом – так ли важно рассказывать об очередном нарушении безопасности?»

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

_________________________________________________________________________________

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