https://habrastorage.org/webt/59/e5/c0/59e5c0c89d05f091470307.jpeg На конференции по компьютерной безопасности Ekoparty 2017 в Буэнос-Айресе аргентинский хакер Альфредо Ортега (Alfredo Ortega) показал очень интересную разработку — систему скрытой прослушки помещений без использования микрофона. Звук https://github.com/ortegaalfredo/kscope/blob/master/doc/HDD-microphones.pdf! HDD улавливает, в основном, низкочастотные звуки высокой интенсивности, шаги и другие вибрации. Человеческую речь распознать пока нельзя, хотя учёные https://www.usenix.org/system/files/conference/usenixsecurity14/sec14-paper-michalevsky.pdf(распознавание речи по низкочастотным вибрациям, которые снимаются, например, с гироскопа или HDD). https://github.com/ortegaalfredo/kscope/. В отдельном репозитории https://github.com/ortegaalfredo/kscope/tree/master/hdd-time лежит версия утилиты, настроенная на атаку по времени на жёсткий диск, то есть настроенная на анализ системного вызова read (). Демонстрация звукозаписи с помощью HDD, работа утилиты Kscope Конечно же, речь нельзя разобрать таким способом, но в качестве датчика вибраций HDD вполне сгодится. Например, вы можете регистрировать, если в помещение с компьютером зашёл человек в твёрдой обуви или босиком (вероятно, если злоумышленник обут в мягкие кроссовки или на полу постелен толстый ковёр, то HDD не сможет зарегистрировать вибрации — это стоит проверить). Компьютер способен зарегистрировать разбитое стекло или другое происшествие с сильной интенсивностью звука. То есть жёсткий диск может выполнять роль своеобразной системы обнаружения несанкционированных проникновений. HDD-киллер Кстати, схожую технику можно использовать для выведения из строя жёстких дисков. Только здесь мы не снимаем колебания с HDD, а наоборот — генерируем колебания, которые подаются на HDD. Если воспроизводить с колонки звук на частоте, которая резонирует с частотой HDD, то система вскоре отключает устройство с ошибкой ввода-вывода (ядро Linux полностью отключает HDD через 120 секунд). Сам жёсткий диск может получить необратимые повреждения. https://habrastorage.org/webt/59/e5/c8/59e5c88420834041445391.jpeg Ядро Linux отключило жёсткий диск после 120 секунд подачи звука на резонирующей частоте через динамик USB-колонки Edifier r19u. Динамик включен примерно на четверть мощности (менее 100 мВт) и располагается в 20 см от HDD, направлен на стол для усиления вибраций. Кадр из с демонстрацией работы HDD-киллера Любопытно, что такие «атаки» на HDD иногда происходят совершенно случайно в обычной жизни. Например, в сентябре 2016 года дата-центр ING Bank был вынужден приостановить работу на 10 часов после пожарных учений. https://motherboard.vice.com/en_us/...st-shut-down-a-banks-data-center-for-10-hours из-за громкого звука инертного газа, выпускаемого из баллонов под большим давлением. Звук был очень громким (более 130 дБ), а ведь даже кричать на жёсткие диски нельзя — это увеличивает задержку доступа к HDD. Демонстрация человеческого крика на жёсткие диски в дата-центре. Измерение задержки Для генерации резонирующего звука Альфредо Ортега написал питоновский скрипт под названием https://github.com/ortegaalfredo/kscope/tree/master/hdd-killer (). https://github.com/ortegaalfredo/kscope/blob/master/hdd-killer/hdd-killer.py совсем небольшой так что можно его целиком опубликовать здесь. Код: """PyAudio hdd-killer: Generate sound and interfere with HDD """ """Alfredo Ortega @ortegaalfredo""" """Usage: hdd-killer /dev/sdX""" """Where /dev/sdX is a spinning hard-disk drive""" """Turn the volume to the max for better results""" """Requires: pyaudio. Install with 'sudo pip install pyaudio' or 'sudo apt-get install python-pyaudio'""" import pyaudio import time import sys import math import random RATE=48000 FREQ=50 # validation. If a disk hasn't been specified, exit. if len(sys.argv) < 2: print "hdd-killer: Attempt to interfere with a hard disk, using sound.\n\n" +\ "The disk will be opened as read-only.\n" + \ "Warning: It might cause damage to HDD.\n" +\ "Usage: %s /dev/sdX" % sys.argv[0] sys.exit(-1) # instantiate PyAudio (1) p = pyaudio.PyAudio() x1=0 NEWFREQ=FREQ # define audio synt callback (2) def callback(in_data, frame_count, time_info, status): global x1,FREQ,NEWFREQ data='' sample=0 for x in xrange(frame_count): oldsample=sample sample=chr(int(math.sin(x1*((2*math.pi)/(RATE/FREQ)))*127)+128) data = data+sample # continous frequency change if (NEWFREQ!=FREQ) and (sample==chr(128)) and (oldsample<sample) : FREQ=NEWFREQ x1=0 x1+=1 return (data, pyaudio.paContinue) # open stream using callback (3) stream = p.open(format=pyaudio.paUInt8, channels=1, rate=RATE, output=True, stream_callback=callback) # start the stream (4) stream.start_stream() # wait for stream to finish (5) while stream.is_active(): timeprom=0 c=file(sys.argv[1]) for i in xrange(20): a=time.clock() c.seek(random.randint(0,1000000000),1) #attempt to bypass file buffer c.read(51200) b=time.clock() timeprom+=b-a c.close() timeprom/=20 print("Frequency: %.2f Hz File Read prom: %f us" % (FREQ,timeprom*1000000)) NEWFREQ+=0.5 # stop stream (6) stream.stop_stream() stream.close() # close PyAudio (7) p.terminate()
Возможность установки анальных зондов в практически любые устройства была известно давно. В 2015 году в паблик выложили данные про эту группировку - Equation Group (http://www.computerra.ru/116269/eg/). Эти ребята такой пиздец с HDD творят, превращают их в идеальное устройство для шпионажа. EQ специализируется на добывании информации из сетей, где доступ в Интернет отсутствует (высокий уровень секретности). Только общее описание их атак и займет около 30 страниц, и это лишь малая часть информации. Так что вопрос слежки за Вами в наше время определяется в основном тем, будет ли стоить Ваша поимка вложенных средств и ресурсов (естественно имеется в виду уровень крупной страны с соотв. возможностями).