লিনাক্স কার্নেলটি "রেটপলিন" সক্ষম আছে কিনা তা কীভাবে পরীক্ষা করবেন?


17

"স্পেক্টর" সুরক্ষা দুর্বলতার কথা, ঝুঁকি হ্রাস করার সমাধান হিসাবে "রেটপোলিন" চালু করা হয়েছিল। তবে, আমি একটি পোস্ট পড়েছি যাতে উল্লেখ করা হয়েছে:

যদি আপনি ছাড়া কার্নেলটি তৈরি করেন তবে আপনি CONFIG_RETPOLINEরেটপোলিন দিয়ে মডিউলগুলি তৈরি করতে পারবেন না এবং তারপরে লোড হওয়ার আশা করতে পারেন - কারণ থাঙ্ক চিহ্নগুলি রফতানি হয় না।

আপনি যদি রেটপোলিনের সাহায্যে কার্নেলটি তৈরি করেন তবে আপনি সাফল্যের সাথে মডিউলগুলি লোড করতে পারেন যা রেটপলিন দিয়ে নির্মিত হয়নি। ( উত্স )

কার্নেল "রেটপলিন" সক্ষম আছে কিনা তা পরীক্ষা করার জন্য কি কোনও সহজ এবং সাধারণ / জেনেরিক / ইউনিফাইড উপায় আছে? আমি এটি করতে চাই যাতে আমার ইনস্টলারটি ইনস্টল হওয়ার জন্য কার্নেল মডিউলটির যথাযথ বিল্ডটি ব্যবহার করতে পারে।

উত্তর:


21

আপনি যদি মেইনলাইন কার্নেল বা সর্বাধিক প্রধান বিতরণ কার্নেলগুলি ব্যবহার করেন তবে সম্পূর্ণ রেটোলিন সমর্থন ( যেমন কার্নেলটি কনফিগার CONFIG_RETPOLINEকরা হয়েছিল এবং একটি রেটপোলিন-সক্ষম সংকলক দিয়ে নির্মিত হয়েছিল) যাচাই করার সেরা উপায়টি হ'ল "সম্পূর্ণ জেনেরিক রেটপোলিন ”ইন /sys/devices/system/cpu/vulnerabilities/spectre_v2। আমার সিস্টেমে:

$ cat /sys/devices/system/cpu/vulnerabilities/spectre_v2
Mitigation: Full generic retpoline, IBPB, IBRS_FW

আপনি যদি আরও বিস্তৃত পরীক্ষা করতে চান, spectre_v2সিস্ট্রি ফাইল ব্যতীত কার্নেলগুলিতে রেটপলাইনগুলি সনাক্ত করতে , কীভাবে spectre-meltdown-checkerজিনিসগুলি যায় সেগুলি পরীক্ষা করে দেখুন ।


2
অন্যান্য মেল্টডাউন / স্পেক্টর-সম্পর্কিত দুর্বলতাগুলি পরীক্ষা করার জন্য, চালান $ grep . /sys/devices/system/cpu/vulnerabilities/*, যা গ্রেগ ক্রোয়া-হার্টম্যানের ব্লগে প্রস্তাবিত
অ্যালেক্স ভং

1
ধন্যবাদ @ অ্যালেক্স; আমি নির্দিষ্ট প্রশ্নের উত্তর দিচ্ছিলাম, তবে এটি দরকারী - যদিও আমি head /sys/devices/system/cpu/vulnerabilities/*নিজেকে পছন্দ করি ;-)। এটি বর্তমানে মেল্টডাউন / স্পেক্টর দুর্বলতাগুলি কভার করে তবে ভবিষ্যতের অনুরূপ প্রকৃতির যে কোনও দুর্বলতা coverাকতে হবে (নামস্থানটি উদ্দেশ্যমূলকভাবে জেনারিক) is
স্টিফেন কিট

@ স্টেফেনকিট হ্যাঁ, headএকটি সুন্দর ফর্ম্যাটেড আউটপুট দেয়।
অ্যালেক্স ভং

4

এই নির্দিষ্ট ক্ষেত্রে স্টিফেন কিটের উত্তরটি আরও বিস্তৃত, কারণ রেটপোলিন সমর্থনটির জন্যও নতুন সংকলক সংস্করণ প্রয়োজন।

তবে সাধারণ ক্ষেত্রে, বেশিরভাগ ডিস্ট্রিবিউশনে নিম্নলিখিত অবস্থার একটিতে কার্নেল কনফিগারেশন ফাইল পাওয়া যায়:

  • /boot/config-4.xx.xx-...
  • /proc/config.gz

তাহলে আপনি সহজভাবে পারেন zgrep CONFIG_RETPOLINE /boot/config* /proc/config.gz


4
আমি গ্রিপিংয়ের বিরুদ্ধে সুপারিশ করছি /boot/config*, কারণ এটি CONFIG_RETPOLINEকোনও কার্নেল চিত্র খুঁজে পেতে পারে যা ইনস্টল করা আছে তবে বর্তমানে চলছে না, এটি সুরক্ষার ভ্রান্ত ধারণা দেয়। পরীক্ষা করা /proc/config.gzবা /sys/...নিরাপদ তবে অনেকগুলি লিনাক্স ডিস্ট্রিবিউশনগুলি কার্নেলটি ছাড়াই সংকলন করে /proc/config.gz
pts

আপনি কি যুক্তিটিকে কিছুটা স্মার্ট করে তুলতে পারবেন এবং বর্তমানে চলমান কার্নেলটি পেতে আনাম (বা সমতুল্য সিস্কেল) ব্যবহার করতে পারেন এবং তারপরে সেই নির্দিষ্ট / বুট / কনফিগার ফাইলটি পরীক্ষা করতে পারেন?
অ্যাডাম লুচজেনব্রোয়ার্স

@ পিটিএস /boot/config-$(uname -r), তাহলে?
মুড়ু

2
ব্যবহারটি /boot/config-$(uname -r)মূর্খ-প্রমাণ নয়: এটি এখনও গ্যারান্টি দেয় না যে কনফিগারটি চলমান কার্নেলের সাথে মেলে। uname -rযতক্ষণ না কার্নেল এবিআই পরিবর্তন না করে ততক্ষণ ডিস্ট্রো কার্নেলগুলি একাধিক সংস্করণে একই রাখে।
স্টিফেন কিট

আপনার উত্তরের জন্য আপনাকে ধন্যবাদ। আপনার উত্তর এবং বার্তা সহায়ক।
ওয়েইশান ইয়াং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.