CET-IBT
CET-IBT হলো ইনডাইরেক্ট ব্রাঞ্চ ট্র্যাকিং, যা একটি কন্ট্রোল-ফ্লো সুরক্ষা ব্যবস্থা এবং ট্র্যাক করা ইনডাইরেক্ট কল ও জাম্পের লক্ষ্যগুলো পরীক্ষা করে। এটি CET শ্যাডো স্ট্যাক থেকে আলাদা।
আপনার যা জানা প্রয়োজন
CET-IBT হলো ইনডাইরেক্ট ব্রাঞ্চ ট্র্যাকিং, যা একটি কন্ট্রোল-ফ্লো সুরক্ষা ব্যবস্থা এবং ট্র্যাক করা ইনডাইরেক্ট কল ও জাম্পের লক্ষ্যগুলো পরীক্ষা করে। এটি CET শ্যাডো স্ট্যাক থেকে আলাদা।
এটি যেভাবে কাজ করে
প্রযোজ্য এক্সিকিউশন পরিবেশের জন্য যখন ট্র্যাকিং সক্রিয় থাকে, তখন একটি ইনডাইরেক্ট ট্রান্সফারকে আর্কিটেকচারের নিয়মের অধীনে একটি উপযুক্ত ENDBR ল্যান্ডিং নির্দেশিকায় পৌঁছাতে হবে। এই প্রক্রিয়াটি আর্কিটেকচারাল ট্র্যাকিং স্টেট ব্যবহার করে এবং চুক্তি লঙ্ঘিত হলে একটি কন্ট্রোল-প্রোটেকশন এক্সেপশন তৈরি করে। কম্পাইলার এবং বাইনারি ইনস্ট্রুমেন্টেশন হলো ডিপ্লয়মেন্টের অংশ।
যেখানে এটি কার্যকর
একটি কম্পাইলার একটি লাইব্রেরিতে বৈধ ইনডাইরেক্ট-এন্ট্রি অবস্থান চিহ্নিত করতে পারে। কার্যকর হওয়া কোডে OS এবং রানটাইমকে অবশ্যই সামঞ্জস্যপূর্ণ সক্ষমকরণ এবং নীতি প্রয়োগ করতে হবে। কোনো ডিসঅ্যাসেম্বলিতে ENDBR বাইট দেখতে পাওয়া নিজে থেকে প্রমাণ করে না যে সিস্টেমটি বর্তমানে IBT প্রয়োগ করছে।
সাপোর্ট এবং সক্ষমতা কীভাবে পরীক্ষা করবেন
CPUID.07H.00H:EDX বিট 20 IBT সক্ষমতা এনিউমারেট করে। OS-এর ইউজার/সুপারভাইজার সমর্থন এবং বাইনারি নীতি পৃথকভাবে পরীক্ষা করুন। বাইনারি থেকে ল্যান্ডিং নির্দেশিকা সরিয়ে ফেলার পরিবর্তে অফিসিয়াল কম্পাইলার এবং OS নির্দেশিকা ব্যবহার করে সামঞ্জস্যের ডায়াগনোসিস করুন।
সক্ষমতা, সক্রিয়করণ এবং প্রয়োগ আলাদাভাবে পরীক্ষা করা আবশ্যক। একটি প্রসেসর একটি সুরক্ষাকে সমর্থন করতে পারে যখন OS, অ্যাপ্লিকেশন বা ভার্চুয়াল-মেশিন নীতি এটি সক্রিয় করে না। একটি ডাটাবেস সমর্থন ক্ষেত্র একটি চলমান সিস্টেমের প্রমাণীকরণ নয়।
এই বৈশিষ্ট্যটি যা নিশ্চিত করে না
IBT শ্যাডো স্ট্যাকের মতো সাধারণ ফাংশন রিটার্ন পরীক্ষা করে না। এটি সম্পূর্ণ কন্ট্রোল-ফ্লো ইন্টিগ্রিটি বা অ্যাপ্লিকেশন সুরক্ষার নিশ্চয়তা নয়, এবং শ্যাডো স্ট্যাকের সমর্থন IBT সমর্থন নিশ্চিত করে না।
বাস্তবে সামঞ্জস্য এবং কর্মক্ষমতা
OS, ফার্মওয়্যার এবং প্রভাবিত রানটাইম আপ টু ডেট রাখুন। যদি কোনো সুরক্ষা একটি সামঞ্জস্যের সমস্যা প্রকাশ করে, তবে প্রথমে বিক্রেতার ডায়াগনস্টিকস এবং সমর্থিত আপডেটগুলি ব্যবহার করুন। একটি বিস্তৃত সুরক্ষা টগল সম্পর্কহীন অ্যাপ্লিকেশনগুলিকে প্রভাবিত করতে পারে এবং একটি সুস্পষ্ট স্থাপনা এবং পুনরুদ্ধার নীতি অনুসরণ করা উচিত।
একটি ব্যবহারিক যাচাইকরণ চেকলিস্ট
- সংশ্লিষ্ট সুনির্দিষ্ট প্রসেসর বা প্ল্যাটফর্ম মডেল এবং অ্যাপ্লিকেশন, OS ও রানটাইম সংস্করণগুলি রেকর্ড করুন। প্রকৃত ত্রুটি বা প্রয়োজনীয়তার সঠিক শব্দচয়ন সংরক্ষণ করুন।
- সেই নির্দিষ্ট মডেলের জন্য প্রস্তুতকারকের রেফারেন্স পরীক্ষা করুন, তারপর প্রোগ্রামটি যে পরিবেশে চলে সেখানে কার্যকর সক্ষমতা এবং সক্রিয় অবস্থা পর্যবেক্ষণ করুন।
- নির্বাচিত বাইনারি বা ব্যাকএন্ডের প্রতিটি প্রয়োজনীয়তা তুলনা করুন। একই নামের কোনো বৈশিষ্ট্য, উপনাম বা বিস্তৃত প্রযুক্তির লেবেলই যথেষ্ট নয়।
- অ্যাপ্লিকেশনটি কাঙ্ক্ষিত বাস্তবায়ন নির্বাচন করেছে কিনা তা নিশ্চিত করুন। প্রয়োজনীয়তা পূরণ না হলে এর নথিভুক্ত ডায়াগনস্টিকস এবং একটি সমর্থিত ফলব্যাক ব্যবহার করুন।
- একবারে একটি সমর্থিত পরিবর্তন করুন এবং একই কাজের চাপ পুনরাবৃত্তি করুন। মূল কনফিগারেশন এবং পুনরুদ্ধারের পথ উপলব্ধ রাখুন।
যদি বৈশিষ্ট্যটি তালিকাভুক্ত থাকে কিন্তু সফটওয়্যার এটি ব্যবহার করতে না পারে
নির্দিষ্ট ব্যর্থ উপাদানটি দিয়ে শুরু করুন। একটি হার্ডওয়্যার ডাটাবেস সংরক্ষিত সক্ষমতা বর্ণনা করে; অপারেটিং সিস্টেম বা হাইপারভাইজর একটি ভিন্ন কার্যকর পরিবেশ প্রকাশ করতে পারে। একটি অবৈধ-নির্দেশনা (illegal-instruction) ত্রুটির ক্ষেত্রেও প্রকৃত ত্রুটিপূর্ণ নির্দেশনা এবং বাইনারি বিল্ড তদন্ত করা প্রয়োজন, কারণ ডেটা ক্ষতি বা সম্পর্কহীন কোনো অসমর্থিত নির্দেশনাও একই রকম লক্ষণ তৈরি করতে পারে।
নির্দিষ্ট প্ল্যাটফর্মের জন্য সমর্থিত অ্যাপ্লিকেশন, ড্রাইভার বা রানটাইম সংস্করণ ইনস্টল করুন এবং প্রয়োজনে ভেন্ডরের নথিভুক্ত বেসলাইন বা ফলব্যাক বিল্ড ব্যবহার করুন। একটি সফটওয়্যার আপডেট এমন কোনো নির্দেশনা তৈরি করতে পারে না যা প্রসেসরে নেই। ফার্মওয়্যার এবং নিরাপত্তা-নীতি পরিবর্তনগুলি একটি সাধারণ অপ্টিমাইজেশন রেসিপির পরিবর্তে সিস্টেম প্রস্তুতকারকের পদ্ধতি এবং একটি পুনরুদ্ধার পরিকল্পনা অনুসরণ করা উচিত।
এই ব্যাখ্যার উৎস এবং পরিধি
Intel 64 and IA-32 Architectures Software Developer's Manual · Linux কার্নেল: Control-flow Enforcement Technology শ্যাডো স্ট্যাক
এই রেফারেন্সগুলি আর্কিটেকচারাল আচরণ এবং সফটওয়্যার প্রয়োজনীয়তা স্থাপন করে। এগুলি একটি লিঙ্কযুক্ত হার্ডওয়্যার মডেল পৃষ্ঠার প্রতিটি বৈশিষ্ট্যের মান স্বাধীনভাবে যাচাই করে না। মডেল সাপোর্টের জন্য, সেই পৃষ্ঠার প্রস্তুতকারকের প্রমাণ ব্যবহার করুন এবং কার্যকর সিস্টেম কনফিগারেশন পরীক্ষা করুন। এই নিবন্ধটি কোনো বেঞ্চমার্ক, সার্টিফিকেশন বা স্বাধীন পর্যালোচনার তারিখ সরবরাহ করে না।
উৎস এবং যাচাইকরণ
সম্পাদকীয় মালিকানা: Feex। কোনো স্বাধীন পর্যালোচনার তারিখ রেকর্ড করা নেই। আমরা কীভাবে গবেষণা করি.
- Intel 64 and IA-32 Architectures Software Developer's Manual · ভলিউম 1 এবং 2 নামযুক্ত নির্দেশিকা পরিবার এবং CPUID বর্ণনা করে; ভলিউম 3 স্টেট, পেজিং, VMX এবং সুরক্ষা নিয়ন্ত্রণ বর্ণনা করে। আর্কিটেকচার ডকুমেন্টেশন কোনো নির্দিষ্ট মডেলের জন্য সাপোর্ট নিশ্চিত করে না।
- Linux কার্নেল: Control-flow Enforcement Technology শ্যাডো স্ট্যাক · হার্ডওয়্যার সমর্থন, বাইনারি মার্কার, লোডার সক্ষমকরণ এবং সক্রিয় প্রতি-থ্রেড সুরক্ষাকে পৃথক করে। IBT এবং শ্যাডো স্ট্যাককে পৃথক সুবিধা হিসাবে বর্ণনা করে।
এই নিবন্ধটি কি দরকারী ছিল?
একটি হ্যাঁ বা না-ই যথেষ্ট। আপনি চাইলে একটি কারণ বেছে নিন, বা একটি ছোট মন্তব্য যোগ করুন।
ধন্যবাদ। এটি আমাদের এই পৃষ্ঠাটি উন্নত করতে সহায়তা করে।