Xenomorph » Статьи » Почему нельзя кричать на свой HDD
17 октября 2017; 14:40

Почему нельзя кричать на свой HDD

Категория: Статьи



На конференции по компьютерной безопасности Ekoparty 2017 в Буэнос-Айресе аргентинский хакер Альфредо Ортега (Alfredo Ortega) показал очень интересную разработку — систему скрытой прослушки помещений без использования микрофона. Звук записывается непосредственно жёстким диском!

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

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

Это известно даже по техническим характеристикам HDD: производители обычно указывают максимально допустимый уровень вибраций, а сам жёсткий диск часто стараются поместить в защищённый от вибраций контейнер из резины или другого изоляционного материала. Из этого легко сделать вывод, что с помощью HDD можно регистрировать звуки. Осталось только придумать, как.

Альфредо Ортега предложил своеобразный вариант атаки по сторонним каналам (side-channel attack), а именно атаки по времени. Эта атака основана на предположении, что различные операции выполняются в устройстве за различное время, в зависимости от поданных входных данных.

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

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

Как измерить колебания жёсткого диска? Очень просто: достаточно всего лишь запустить системный вызов read () — и зарегистрировать время, за которое он выполняется. Современные операционные системы позволяют считывать тайминг системных вызовов с точностью до наносекунды.

Скорость чтения информации с сектора зависит от положения головки и пластины, которое коррелирует с вибрациями корпуса HDD. Вот и всё.

Статистический анализ осуществляется с помощью простенькой утилиты Kscope. Как говорится, всё гениальное просто.


Утилита Kscope (stat () syscall)

Kscope — маленькая утилита для визуализации крохотный различий во времени выполнения системных вызовов. Исходный кодопубликован на GitHub.

В отдельном репозитории hdd-time лежит версия утилиты, настроенная на атаку по времени на жёсткий диск, то есть настроенная на анализ системного вызова read ().

Демонстрация звукозаписи с помощью HDD, работа утилиты Kscope

Quick teaser of my @ekoparty talk "Turning hard disk drives into accidental microphones" (01:14 / 25.09.17)

HDD-киллер

Кстати, схожую технику можно использовать для выведения из строя жёстких дисков. Только здесь мы не снимаем колебания с HDD, а наоборот — генерируем колебания, которые подаются на HDD.

Если воспроизводить с колонки звук на частоте, которая резонирует с частотой HDD, то система вскоре отключает устройство с ошибкой ввода-вывода (ядро Linux полностью отключает HDD через 120 секунд). Сам жёсткий диск может получить необратимые повреждения.


Ядро Linux отключило жёсткий диск после 120 секунд подачи звука на резонирующей частоте через динамик USB-колонки Edifier r19u. Динамик включен примерно на четверть мощности (менее 100 мВт) и располагается в 20 см от HDD, направлен на стол для усиления вибраций. Кадр из видеоролика с демонстрацией работы HDD-киллера

Любопытно, что такие «атаки» на HDD иногда происходят совершенно случайно в обычной жизни. Например, в сентябре 2016 года дата-центр ING Bank был вынужден приостановить работу на 10 часов после пожарных учений.

Десятки жёстких дисков вышли из строя из-за громкого звука инертного газа, выпускаемого из баллонов под большим давлением. Звук был очень громким (более 130 дБ), а ведь даже кричать на жёсткие диски нельзя — это увеличивает задержку доступа к HDD.

Демонстрация человеческого крика на жёсткие диски в дата-центре. Измерение задержки

Shouting in the Datacenter (01:59 / 31.12.08)

Для генерации резонирующего звука Альфредо Ортега написал питоновский скрипт под названием hdd-killer (демонстрация на видео).

_

Теги: hdd, hardware, диск, звук, устройство

© geektimes.ru

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.