সরাসরি মূল বিষয়ে যান

কন্ট্রোল-ফ্লো এনফোর্সমেন্ট (CET)

আর্কিটেকচার রেফারেন্সFeex

CET নামেও পরিচিত

CET, বা Control-flow Enforcement Technology, কন্ট্রোল ফ্লো সুরক্ষার জন্য হার্ডওয়্যার মেকানিজম যুক্ত করে, প্রধানত শ্যাডো স্ট্যাক এবং ইনডাইরেক্ট ব্রাঞ্চ ট্র্যাকিং। কোনো নির্দিষ্ট প্রসেসে হার্ডওয়্যার সমর্থন এবং সক্রিয় সুরক্ষা ভিন্ন অবস্থা।

আপনার যা জানা প্রয়োজন

CET, বা Control-flow Enforcement Technology, কন্ট্রোল ফ্লো সুরক্ষার জন্য হার্ডওয়্যার মেকানিজম যুক্ত করে, প্রধানত শ্যাডো স্ট্যাক এবং ইনডাইরেক্ট ব্রাঞ্চ ট্র্যাকিং। কোনো নির্দিষ্ট প্রসেসে হার্ডওয়্যার সমর্থন এবং সক্রিয় সুরক্ষা ভিন্ন অবস্থা।

এটি যেভাবে কাজ করে

শ্যাডো স্ট্যাক সুরক্ষিত রিটার্ন-অ্যাড্রেস স্টেট বজায় রাখে, অন্যদিকে ইনডাইরেক্ট ব্রাঞ্চ ট্র্যাকিং ট্র্যাক করা ইনডাইরেক্ট ব্রাঞ্চের গন্তব্যগুলোকে সীমাবদ্ধ করে। এগুলো ভিন্ন কন্ট্রোল-ফ্লো স্থানান্তরকে নির্দেশ করে এবং এদের পৃথক এনিউমারেশন ও সক্ষমকরণ রয়েছে। একটি সুরক্ষিত এক্সিকিউশন পরিবেশ কার্যকর করতে OS, লোডার, অ্যাপ্লিকেশন বাইনারি এবং লাইব্রেরি যৌথভাবে অংশ নেয়।

যেখানে এটি কার্যকর

একটি উপযুক্তভাবে নির্মিত অ্যাপ্লিকেশন OS-পরিচালিত শ্যাডো স্ট্যাকের সাথে চলতে পারে যাতে অমিল থাকা রিটার্ন অ্যাড্রেস নিঃশব্দে এক্সিকিউশন রিডাইরেক্ট করার পরিবর্তে নির্ধারিত এক্সেপশন ট্রিগার করে। লিগ্যাসি মডিউল এবং ইউজার-মোড বনাম সুপারভাইজার-মোড সুরক্ষার জন্য সামঞ্জস্য নীতি ভিন্ন হতে পারে।

সাপোর্ট এবং সক্ষমতা কীভাবে পরীক্ষা করবেন

শ্যাডো-স্ট্যাক সক্ষমতার জন্য CPUID.07H.00H:ECX বিট 7 এবং ইনডাইরেক্ট ব্রাঞ্চ ট্র্যাকিংয়ের জন্য EDX বিট 20 পরীক্ষা করুন, তারপর OS-এর নথিভুক্ত প্রসেস সুরক্ষা স্ট্যাটাস পরিদর্শন করুন। শুধুমাত্র একটি উপলব্ধ CPU বিট চলমান প্রোগ্রামের জন্য প্রয়োগ নিশ্চিত করতে পারে না।

সক্ষমতা, সক্রিয়করণ এবং প্রয়োগ আলাদাভাবে পরীক্ষা করা আবশ্যক। একটি প্রসেসর একটি সুরক্ষাকে সমর্থন করতে পারে যখন OS, অ্যাপ্লিকেশন বা ভার্চুয়াল-মেশিন নীতি এটি সক্রিয় করে না। একটি ডাটাবেস সমর্থন ক্ষেত্র একটি চলমান সিস্টেমের প্রমাণীকরণ নয়।

এই বৈশিষ্ট্যটি যা নিশ্চিত করে না

একটি CET ফিল্ড উভয় সাবফিচার উপস্থিত বা সক্রিয় থাকা প্রমাণ করে না। CET কোনো বাইনারিকে বিশ্বস্ত করে তোলে না, প্রতিটি মেমরি করাপশন বাগ প্রতিরোধ করে না বা আপডেটের বিকল্প হয় না। সুরক্ষাকে সামগ্রিকভাবে নিষ্ক্রিয় করা কোনো অ্যাপ্লিকেশন ক্র্যাশের রুটিন সমাধান নয়।

বাস্তবে সামঞ্জস্য এবং কর্মক্ষমতা

OS, ফার্মওয়্যার এবং প্রভাবিত রানটাইম আপ টু ডেট রাখুন। যদি কোনো সুরক্ষা একটি সামঞ্জস্যের সমস্যা প্রকাশ করে, তবে প্রথমে বিক্রেতার ডায়াগনস্টিকস এবং সমর্থিত আপডেটগুলি ব্যবহার করুন। একটি বিস্তৃত সুরক্ষা টগল সম্পর্কহীন অ্যাপ্লিকেশনগুলিকে প্রভাবিত করতে পারে এবং একটি সুস্পষ্ট স্থাপনা এবং পুনরুদ্ধার নীতি অনুসরণ করা উচিত।

একটি ব্যবহারিক যাচাইকরণ চেকলিস্ট

  1. সংশ্লিষ্ট সুনির্দিষ্ট প্রসেসর বা প্ল্যাটফর্ম মডেল এবং অ্যাপ্লিকেশন, OS ও রানটাইম সংস্করণগুলি রেকর্ড করুন। প্রকৃত ত্রুটি বা প্রয়োজনীয়তার সঠিক শব্দচয়ন সংরক্ষণ করুন।
  2. সেই নির্দিষ্ট মডেলের জন্য প্রস্তুতকারকের রেফারেন্স পরীক্ষা করুন, তারপর প্রোগ্রামটি যে পরিবেশে চলে সেখানে কার্যকর সক্ষমতা এবং সক্রিয় অবস্থা পর্যবেক্ষণ করুন।
  3. নির্বাচিত বাইনারি বা ব্যাকএন্ডের প্রতিটি প্রয়োজনীয়তা তুলনা করুন। একই নামের কোনো বৈশিষ্ট্য, উপনাম বা বিস্তৃত প্রযুক্তির লেবেলই যথেষ্ট নয়।
  4. অ্যাপ্লিকেশনটি কাঙ্ক্ষিত বাস্তবায়ন নির্বাচন করেছে কিনা তা নিশ্চিত করুন। প্রয়োজনীয়তা পূরণ না হলে এর নথিভুক্ত ডায়াগনস্টিকস এবং একটি সমর্থিত ফলব্যাক ব্যবহার করুন।
  5. একবারে একটি সমর্থিত পরিবর্তন করুন এবং একই কাজের চাপ পুনরাবৃত্তি করুন। মূল কনফিগারেশন এবং পুনরুদ্ধারের পথ উপলব্ধ রাখুন।

যদি বৈশিষ্ট্যটি তালিকাভুক্ত থাকে কিন্তু সফটওয়্যার এটি ব্যবহার করতে না পারে

নির্দিষ্ট ব্যর্থ উপাদানটি দিয়ে শুরু করুন। একটি হার্ডওয়্যার ডাটাবেস সংরক্ষিত সক্ষমতা বর্ণনা করে; অপারেটিং সিস্টেম বা হাইপারভাইজর একটি ভিন্ন কার্যকর পরিবেশ প্রকাশ করতে পারে। একটি অবৈধ-নির্দেশনা (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 এবং শ্যাডো স্ট্যাককে পৃথক সুবিধা হিসাবে বর্ণনা করে।

এই নিবন্ধটি কি দরকারী ছিল?

একটি হ্যাঁ বা না-ই যথেষ্ট। আপনি চাইলে একটি কারণ বেছে নিন, বা একটি ছোট মন্তব্য যোগ করুন।

এই নিবন্ধটি কি দরকারী ছিল?