Kwa nini hupaswi kupiga kelele kwenye HDD yako

Kwa nini hupaswi kupiga kelele kwenye HDD yako

Katika mkutano wa usalama wa kompyuta wa Ekoparty 2017 huko Buenos Aires, mdukuzi wa Argentina Alfredo Ortega alionyesha maendeleo ya kuvutia sana - mfumo wa kugonga waya kwa siri ya majengo bila kutumia maikrofoni. Sauti rekodi moja kwa moja kwenye gari ngumu!

HDD hasa huchukua sauti za juu-frequency ya chini, nyayo na vibrations nyingine. Hotuba ya binadamu bado haiwezi kutambuliwa, ingawa wanasayansi wanafanya utafiti katika mwelekeo huu (utambuzi wa hotuba kwa vibrations ya chini-frequency, ambayo ni kumbukumbu, kwa mfano, kutoka gyroscope au HDD).

Sauti ni mtetemo wa hewa au kati nyingine. Mtu huwatambua kwa njia ya eardrum, ambayo hupeleka vibrations kwenye sikio la ndani. Maikrofoni imeundwa takriban kama sikio - hapa, pia, vibrations hurekodiwa na membrane nyembamba, ambayo inasisimua msukumo wa umeme. Gari ngumu, bila shaka, pia inakabiliwa na vibrations microscopic kutokana na kushuka kwa thamani katika hewa inayozunguka. Hii inajulikana hata kutokana na sifa za kiufundi za HDDs: wazalishaji kawaida huonyesha kiwango cha juu cha vibration kinachoruhusiwa, na gari ngumu yenyewe mara nyingi hujaribu kuiweka kwenye chombo kisicho na vibration kilichofanywa kwa mpira au nyenzo nyingine za kuhami. Kutoka hili ni rahisi kuhitimisha kwamba sauti zinaweza kurekodi kwa kutumia HDD. Kilichobaki ni kujua jinsi gani.

Alfredo Ortega alipendekeza toleo la kipekee la shambulio la njia ya kando, yaani shambulio la wakati. Shambulio hili linatokana na dhana kwamba utendakazi tofauti hufanywa kwenye kifaa kwa nyakati tofauti, kulingana na data ya ingizo iliyotolewa. Katika kesi hii, "data ya pembejeo" ni vibrations ya kichwa cha kusoma na sahani ya HDD, ambayo inahusiana na vibrations ya mazingira, yaani, kwa sauti. Hivyo, kwa kupima muda wa kukokotoa na kufanya uchambuzi wa takwimu wa data, mitetemo ya kichwa/sahani na hivyo mitetemo ya kati inaweza kupimwa. Kadiri muda unavyochelewa kusoma data, ndivyo mitetemo ya HDD inavyokuwa na nguvu na, kwa hivyo, sauti kubwa zaidi.

Jinsi ya kupima vibration ya gari ngumu? Rahisi sana: endesha simu ya mfumo read () - na kurekodi muda inachukua kukamilisha. Mifumo ya kisasa ya uendeshaji inakuwezesha kusoma muda wa simu za mfumo kwa usahihi wa nanosecond.

Kasi ya kusoma habari kutoka kwa sekta inategemea nafasi ya kichwa na sahani, ambayo inahusiana na vibrations ya kesi ya HDD. Ni hayo tu.

Uchambuzi wa takwimu unafanywa kwa kutumia matumizi rahisi ya Kscope. Kama wanasema, kila kitu cha busara ni rahisi.

Kwa nini hupaswi kupiga kelele kwenye HDD yako
Huduma ya Kscope (stat() syscall)

Kscope ni matumizi madogo ya kuibua tofauti ndogo katika nyakati za utekelezaji wa simu za mfumo. Chanzoiliyochapishwa kwenye GitHub.

Katika hazina tofauti Muda wa HDD kuna toleo la matumizi lililosanidiwa kwa shambulio la wakati kwenye diski kuu, ambayo ni, imeundwa kuchambua simu ya mfumo. read ().

Maonyesho ya kurekodi sauti kwa kutumia HDD, uendeshaji wa matumizi ya Kscope


Kwa kweli, hotuba haiwezi kueleweka kwa njia hii, lakini HDD inafaa kabisa kama sensor ya vibration. Kwa mfano, unaweza kujiandikisha ikiwa mtu aliyevaa viatu ngumu au bila viatu aliingia kwenye chumba na kompyuta (labda, ikiwa mshambuliaji amevaa sneakers laini au kuna carpet nene kwenye sakafu, HDD haitaweza kusajili vibrations - hii inafaa kukaguliwa). Kompyuta ina uwezo wa kusajili glasi iliyovunjika au matukio mengine kwa nguvu ya sauti. Hiyo ni, gari ngumu inaweza kutumika kama aina ya mfumo wa kugundua intrusion bila ruhusa.

HDD killer

Kwa njia, mbinu kama hiyo inaweza kutumika kuzima anatoa ngumu. Hapa tu hatuondoi oscillations kutoka kwa HDD, lakini kinyume chake, tunazalisha oscillations ambayo hutolewa kwa HDD. Ikiwa unacheza sauti kutoka kwa spika kwa masafa ambayo yanahusiana na frequency ya HDD, mfumo huzima kifaa hivi karibuni na hitilafu ya I/O (kiini cha Linux huzima kabisa HDD baada ya sekunde 120). Hifadhi ngumu yenyewe inaweza kupata uharibifu usioweza kurekebishwa.

Kwa nini hupaswi kupiga kelele kwenye HDD yako
Kiini cha Linux kilizima kiendeshi kikuu baada ya sekunde 120 za kutoa sauti kwa masafa ya sauti kupitia kipaza sauti cha Edifier r19u USB. Spika imewashwa karibu robo ya nguvu (chini ya 100 mW) na iko 20 cm kutoka HDD, inayolenga meza ili kuimarisha vibrations. Frame kutoka video pamoja na onyesho la muuaji wa HDD

Inashangaza kwamba "mashambulizi" hayo kwenye HDD wakati mwingine hutokea kabisa kwa ajali katika maisha ya kila siku. Kwa mfano, mnamo Septemba 2016, kituo cha data cha ING Bank kililazimika kusimamisha shughuli kwa saa 10 baada ya kuchimba moto. Dazeni za anatoa ngumu zimeshindwa kutokana na sauti kubwa ya gesi ya ajizi inayotolewa kutoka kwa mitungi chini ya shinikizo la juu. Sauti ilikuwa kubwa sana (zaidi ya 130 dB), lakini huwezi hata kupiga kelele kwenye anatoa ngumu - hii huongeza kuchelewa kwa kufikia HDD.

Maonyesho ya watu wanaopiga kelele kwenye diski kuu kwenye kituo cha data. Kipimo cha latency


Ili kutoa sauti inayosikika, Alfredo Ortega aliandika hati ya Python inayoitwa HD-muuaji (maonyesho ya video).

Hati ya muuaji wa HDD Ni ndogo sana, kwa hivyo unaweza kuichapisha kwa ukamilifu hapa.

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

Chanzo: mapenzi.com

Kuongeza maoni