গুগল সম্প্রতি বেশ কয়েকটি প্রোটোটাইপ এক্সপ্লয়েট প্রকাশ করেছে , যা থেকে দেখা যায় যে আগে থেকে যোগ করা নিরাপত্তা ব্যবস্থাগুলো এড়িয়ে ব্রাউজারে জাভাস্ক্রিপ্ট কোড এক্সিকিউট করার মাধ্যমে স্পেকটার শ্রেণীর দুর্বলতা কাজে লাগানো সম্ভব।
বর্তমান ট্যাবে ওয়েব কন্টেন্ট প্রসেসকারী কোনো প্রসেসের মেমরিতে অ্যাক্সেস পেতে এক্সপ্লয়েট ব্যবহার করা যেতে পারে । এক্সপ্লয়েটটির কার্যকারিতা পরীক্ষা করার জন্য, ফাঁস হওয়া পেজটির ওয়েবসাইট চালু করা হয়েছিল এবং অপারেশনটির লজিক বর্ণনাকারী কোডটি গিটহাবে প্রকাশ করা হয়েছিল।
প্রস্তাবিত প্রোটোটাইপটি লিনাক্স এবং ক্রোম ৮৮ চালিত পরিবেশে ইন্টেল কোর আই৭-৬৫০০ইউ প্রসেসরযুক্ত সিস্টেমগুলোকে আক্রমণ করার জন্য ডিজাইন করা হয়েছে, যদিও অন্যান্য পরিবেশে এক্সপ্লয়েটটি ব্যবহার করার জন্য এতে পরিবর্তন আনার সম্ভাবনাকে নাকচ করা যায় না।
এই কার্যপ্রণালীটি শুধু ইন্টেল প্রসেসরের জন্যই নির্দিষ্ট নয় : যথাযথ অভিযোজনের পর নিশ্চিত হওয়া গেছে যে, এই এক্সপ্লয়েটটি ARM আর্কিটেকচারের উপর ভিত্তি করে তৈরি অ্যাপল M1-সহ অন্যান্য নির্মাতাদের সিপিইউ যুক্ত সিস্টেমেও কাজ করে। সামান্য কিছু পরিবর্তনের পর, এই এক্সপ্লয়েটটি ক্রোমিয়াম ইঞ্জিনের উপর ভিত্তি করে তৈরি অন্যান্য অপারেটিং সিস্টেম এবং ব্রাউজারেও কাজ করে।
স্ট্যান্ডার্ড ক্রোম 88 এবং ইন্টেল স্কাইলাক প্রসেসরের উপর ভিত্তি করে একটি পরিবেশে, আমরা প্রতি সেকেন্ডে 1 কিলোবাইট গতিতে বর্তমান ক্রোম ট্যাবে (রেন্ডারিং প্রক্রিয়া) ওয়েব সামগ্রী সরবরাহ করার জন্য দায়ী প্রক্রিয়া থেকে একটি ডেটা ফাঁস অর্জন করেছি। এছাড়াও, বিকল্প প্রোটোটাইপগুলি বিকাশ করা হয়েছিল, উদাহরণস্বরূপ, এমন একটি শোষণ যা কমিয়ে আনা স্থিতিশীলতার বিনিময়ে, পারফরম্যান্স ব্যবহার করার সময় লিকের হারকে 8 কেবি / সেকেন্ডে বাড়িয়ে দেয় (এখন) 5 টি মাইক্রোসেকেন্ডের (0.005 মিলিসেকেন্ডের যথার্থতা সহ) টাইমার ব্যবহার করে )। একটি বৈকল্পিকও বিকশিত হয়েছিল যা এক মিলি সেকেন্ডের টাইমার যথার্থতার সাথে পরিচালিত হয়েছিল, যা অন্য সক্রিয়তার স্মৃতিতে সেকেন্ডে প্রায় 60 বাইট হারে অ্যাক্সেসের ব্যবস্থা করতে ব্যবহৃত হতে পারে।
প্রকাশিত ডেমো কোডটিতে তিনটি অংশ রয়েছে:
- প্রথম অংশ চলমান সময়টি অনুমান করার জন্য টাইমারটি ক্যালিব্রেট করুন সিপিইউ নির্দেশাবলীর অনুমানমূলক সম্পাদনের ফলে প্রসেসর ক্যাশে থাকা ডেটা পুনরুদ্ধার করার জন্য প্রয়োজনীয় অপারেশনগুলি।
- দ্বিতীয় অংশ জাভাস্ক্রিপ্ট অ্যারে বরাদ্দকালে ব্যবহৃত মেমরি লেআউট সংজ্ঞা দেয়।
- তৃতীয় অংশ মেমরির সামগ্রী নির্ধারণের জন্য স্পেক্টর দুর্বলতার সরাসরি ব্যবহার করে নির্দিষ্ট ক্রিয়াকলাপের অনুমানমূলক সম্পাদনের জন্য শর্ত তৈরির ফলস্বরূপ বর্তমান প্রক্রিয়াটি, যার ফলস্বরূপ একটি ব্যর্থ পূর্বাভাস নির্ধারণের পরে প্রসেসর দ্বারা বাতিল করা হয়, তবে মৃত্যুদন্ডের চিহ্নগুলি ভাগ করা ক্যাশে স্থির হয় এবং ব্যবহার করে পুনরুদ্ধার করা যায় তৃতীয় পক্ষের চ্যানেলগুলি ব্যবহার করে ক্যাশে থাকা সামগ্রীগুলি নির্ধারণ করার পদ্ধতিগুলি যা ক্যাশেড এবং নন-ক্যাশেড ডেটাতে অ্যাক্সেসের সময় পরিবর্তনের বিশ্লেষণ করে।
প্রস্তাবিত এক্সপ্লয়টেশন কৌশলটি performance.now() API-এর মাধ্যমে উপলব্ধ উচ্চ-নির্ভুল টাইমারগুলোকে বাদ দেওয়ার সুযোগ দেয় এবং SharedArrayBuffer টাইপের সমর্থন ছাড়াই কাজ করে, যা শেয়ার্ড মেমরিতে অ্যারে তৈরি করতে সাহায্য করে।
শোষণে স্পেক্টর ডিভাইস অন্তর্ভুক্ত রয়েছে, যা নিয়ন্ত্রিত অনুমানমূলক কোড প্রয়োগের কারণ এবং একটি পার্শ্ব চ্যানেল ফাঁস বিশ্লেষক, যা এটি নির্ধারণ করে যে অনুমানমূলক মৃত্যুর সময় কোন ডেটা ক্যাশে করা হয়েছিল।
গ্যাজেটটি একটি জাভাস্ক্রিপ্ট অ্যারে ব্যবহার করে প্রয়োগ করা হয়েছে, যেখানে বাফার সীমানার বাইরের একটি এলাকা অ্যাক্সেস করার চেষ্টা করা হয় , যা কম্পাইলার দ্বারা যুক্ত একটি বাফার সাইজ চেকের উপস্থিতির কারণে ব্রাঞ্চ প্রেডিকশন ব্লকের স্টেটকে প্রভাবিত করে (প্রসেসর অনুমানমূলকভাবে একটি আর্লি অ্যাক্সেস সম্পাদন করে, কিন্তু চেক করার পর স্টেটটি রিভার্ট করে)।
অপর্যাপ্ত টাইমার যথাযথতার শর্তে ক্যাশে সামগ্রী বিশ্লেষণ করার জন্য, একটি পদ্ধতি প্রস্তাব করা হয়েছিল যে ট্রি-পিএলআরইউ ক্যাশে ডেটা উচ্ছেদের কৌশল প্রসেসরে ব্যবহৃত হয় এবং চক্রের সংখ্যা বাড়িয়ে, মান ফেরত দেওয়ার সময় পার্থক্যের সময়কে উল্লেখযোগ্যভাবে বাড়িয়ে তোলে ক্যাশে থেকে এবং ক্যাশেতে কোনও মানের অভাবে
স্পেক্টার-শ্রেণির দুর্বলতা ব্যবহার করে আক্রমণের সম্ভাব্যতা প্রদর্শন করতে এবং ওয়েব ডেভেলপারদের এ ধরনের আক্রমণের ঝুঁকি কমানোর কৌশল ব্যবহারে উৎসাহিত করতে গুগল এই এক্সপ্লয়েটের একটি প্রোটোটাইপ প্রকাশ করেছে।
একই সাথে গুগল বিশ্বাস করে যে প্রস্তাবিত প্রোটোটাইপের উল্লেখযোগ্য সংশোধন না করে সর্বজনীন শোষণ তৈরি করা অসম্ভব যা কেবল বিক্ষোভের জন্যই নয়, ব্যাপক ব্যবহারের জন্যও প্রস্তুত।
উৎস: https://security.googleblog.com