Fil-konferenza Ekoparty 2017 dwar is-sigurtà tal-kompjuter f'Buenos Aires, il-hacker Arġentin Alfredo Ortega wera żvilupp interessanti ħafna - sistema għall-ispiċċar tal-wiretapping tal-bini mingħajr l-użu ta 'mikrofonu. Ħoss
L-HDD prinċipalment jiġbor ħsejjes ta 'frekwenza baxxa ta' intensità għolja, passi u vibrazzjonijiet oħra. Id-diskors tal-bniedem għadu ma jistax jiġi rikonoxxut, għalkemm xjentisti
Il-ħoss huwa l-vibrazzjoni tal-arja jew mezz ieħor. Persuna tipperċepixxihom permezz tal-eardrum, li jittrasmetti vibrazzjonijiet lill-widna ta 'ġewwa. Il-mikrofonu huwa ddisinjat bejn wieħed u ieħor bħal widna - hawnhekk ukoll, il-vibrazzjonijiet huma rreġistrati minn membrana rqiqa, li tqanqal impuls elettriku. Il-hard drive, ovvjament, huwa wkoll soġġett għal vibrazzjonijiet mikroskopiċi minħabba varjazzjonijiet fl-arja tal-madwar. Dan huwa magħruf anke mill-karatteristiċi tekniċi tal-HDDs: il-manifatturi ġeneralment jindikaw il-livell massimu ta 'vibrazzjoni permissibbli, u l-hard drive innifsu ħafna drabi jipprova jpoġġih f'kontenitur li ma jgħaddix vibrazzjoni magħmul minn gomma jew materjal iżolanti ieħor. Minn dan huwa faċli li tikkonkludi li l-ħsejjes jistgħu jiġu rreġistrati bl-użu tal-HDD. Jibqa' biss biex insemmu kif.
Alfredo Ortega ppropona verżjoni unika ta' attakk tal-kanal tal-ġenb, jiġifieri attakk tal-ħin. Dan l-attakk huwa bbażat fuq is-suppożizzjoni li jsiru operazzjonijiet differenti fuq l-apparat f'ħinijiet differenti, skont id-dejta tal-input mogħtija. F'dan il-każ, id-"dejta tal-input" hija l-vibrazzjonijiet tar-ras tal-qari u l-platter tal-HDD, li jikkorrelataw mal-vibrazzjonijiet tal-ambjent, jiġifieri mal-ħoss. Għalhekk, billi jitkejjel il-ħin tal-komputazzjoni u titwettaq analiżi statistika tad-dejta, jistgħu jitkejlu l-vibrazzjonijiet tar-ras/platter u għalhekk il-vibrazzjonijiet tal-medju. Iktar ma jkun itwal id-dewmien fil-qari tad-dejta, iktar ikun qawwi l-vibrazzjonijiet tal-HDD u, għalhekk, iktar ikun qawwi l-ħoss.
Kif tkejjel il-vibrazzjoni tal-hard drive? Sempliċi ħafna: mexxi biss is-sejħa tas-sistema read ()
— u rreġistra l-ħin li tieħu biex titlesta. Is-sistemi operattivi moderni jippermettulek taqra l-ħin tas-sejħiet tas-sistema bi preċiżjoni nanosekondi.
Il-veloċità tal-qari tal-informazzjoni minn settur tiddependi fuq il-pożizzjoni tar-ras u l-platter, li tikkorrelata mal-vibrazzjonijiet tal-każ tal-HDD. Dak kollox.
L-analiżi statistika titwettaq bl-użu ta 'utilità sempliċi msejħa Kscope. Kif jgħidu, kollox inġenjuż huwa sempliċi.
Utilità Kscope (stat() syscall)
Kscope hija utilità żgħira għall-viżwalizzazzjoni ta 'differenzi żgħar fil-ħinijiet ta' eżekuzzjoni tas-sejħa tas-sistema. Sors
F'repożitorju separat read ()
.
Dimostrazzjoni ta 'reġistrazzjoni tal-ħoss bl-użu ta' HDD, tħaddim tal-utilità Kscope
Naturalment, id-diskors ma jistax jinftiehem b'dan il-mod, iżda l-HDD huwa pjuttost adattat bħala sensor tal-vibrazzjoni. Per eżempju, tista 'tirreġistra jekk persuna liebes żraben iebsin jew barefoot daħlet f'kamra b'kompjuter (probabbilment, jekk l-attakkant ikun liebes sneakers artab jew ikun hemm tapit oħxon mal-art, l-HDD ma jkunx jista' jirreġistra vibrazzjonijiet - dan ta’ min iċċekkja). Il-kompjuter huwa kapaċi jirreġistra ħġieġ miksur jew inċidenti oħra b'intensità qawwija tal-ħoss. Jiġifieri, il-hard drive jista 'jservi bħala tip ta' sistema ta 'skoperta ta' intrużjoni mhux awtorizzata.
qattiel HDD
Mill-mod, teknika simili tista 'tintuża biex tiddiżattiva hard drives. Hawnhekk biss ma nneħħux oxxillazzjonijiet mill-HDD, iżda għall-kuntrarju, niġġeneraw oxxillazzjonijiet li jiġu mitmugħa lill-HDD. Jekk idoqq ħoss minn kelliem bi frekwenza li tirresona mal-frekwenza tal-HDD, is-sistema dalwaqt titfi l-apparat bi żball I/O (il-kernel tal-Linux jitfi kompletament l-HDD wara 120 sekonda). Il-hard drive innifsu jista 'jbati ħsara irriversibbli.
Il-qalba tal-Linux mitfija l-hard drive wara 120 sekonda ta 'twassil ta' ħoss bi frekwenza reżonanti permezz tal-kelliem tal-ispiker Edifier r19u USB. Il-kelliem huwa mixgħul f'madwar kwart tal-qawwa (inqas minn 100 mW) u jinsab 20 ċm mill-HDD, immirat lejn il-mejda biex ittejjeb il-vibrazzjonijiet. Qafas minn
Huwa kurjuż li "attakki" bħal dawn fuq HDDs kultant iseħħu kompletament b'inċident fil-ħajja ta 'kuljum. Pereżempju, f'Settembru 2016, iċ-ċentru tad-dejta tal-ING Bank kien sfurzat jissospendi l-operazzjonijiet għal 10 sigħat wara eżerċizzju tan-nar.
Dimostrazzjoni ta 'għajjat uman fuq hard drives f'ċentru tad-dejta. Kejl ta' latenza
Biex jiġġenera l-ħoss reżonanti, Alfredo Ortega kiteb script Python imsejjaħ
"""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()
Sors: www.habr.com