কেপিটিআই আমার উবুন্টুতে সক্ষম আছে তা কীভাবে পরীক্ষা করবেন?


64

বর্তমান মেল্টডাউন ইন্টেল প্রসেসরের দুর্বলতাটি পৃষ্ঠা সারণী বিচ্ছিন্নকরণ সক্ষম করে বর্তমানে প্রতিকার করা হয়। এটি কীভাবে বন্ধ করবেন তা নিয়ে একটি প্রশ্ন রয়েছে: ইন্টেল সিপিইউ সুরক্ষা গর্ত প্যাচের কারণে হারিয়ে যাওয়া পারফরম্যান্স ফিরে পেতে পেজ টেবিল বিচ্ছিন্নতা কীভাবে অক্ষম করবেন?

আমার প্রশ্নটি বিপরীত: পিটিআই প্রক্রিয়াটি সিস্টেমে কার্যকর এবং এইভাবে সিস্টেমটি সুরক্ষিত আছে কিনা চলমান সিস্টেমে চেক করার কোনও উপায় আছে? আমি বিশেষভাবে খুঁজছি cat /proc/somethingবা cat /sys/something, কার্নেল সংস্করণ বা কনফিগ প্যারামিটার বা মত না পরীক্ষণ।

উত্তর:


4

সমস্ত উপলব্ধ প্রশমনগুলি দেখতে আপনি নীচের কমান্ডটি চালনা করতে পারেন (কেবল পিটিআইয়ের জন্য নয় অন্য দুর্বলতার জন্যও):

$ cat /sys/devices/system/cpu/vulnerabilities/*
Mitigation: PTE Inversion
Mitigation: Clear CPU buffers; SMT vulnerable
Mitigation: PTI
Mitigation: Speculative Store Bypass disabled via prctl and seccomp
Mitigation: usercopy/swapgs barriers and __user pointer sanitization
Mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling

দুর্দান্ত উত্তর - সংক্ষিপ্ত এবং বিন্দুতে to ধন্যবাদ.
মার্টিন ভিসনি

63
  • রানিজের প্রস্তাবিত কার্নেল কনফিগারেশনে CONFIG_PAGE_TABLE_ISOLATION গ্রিপিং ডেস্কটপ উবুন্টুতে সহায়তা করে না, তবে মেঘের উদাহরণগুলিতে সহায়তা করতে পারে:

    grep CONFIG_PAGE_TABLE_ISOLATION=y /boot/config-`uname -r` && \
    echo "patched :)" || echo "unpatched :("
    

  • আপনার সাথে পরীক্ষা করতে পারবেন /proc/cpuinfoযেমন JonasCz প্রস্তাব :

    grep -q "cpu_insecure\|cpu_meltdown\|kaiser" /proc/cpuinfo && echo "patched :)" \
    || echo "unpatched :("
    

  • বা dmesg( জেসন ক্রেইটনকে ধন্যবাদ ) থেকে:

    dmesg | grep -q "Kernel/User page tables isolation: enabled" \
    && echo "patched :)" || echo "unpatched :("
    

  • মেল্টডাউন সনাক্তকরণের জন্য আপনি রাফেল কারওয়ালহো থেকে পরীক্ষা প্রোগ্রামটি সংকলন করতে পারেন :

    sudo apt-get install git build-essential
    cd /tmp
    git clone https://github.com/raphaelsc/Am-I-affected-by-Meltdown.git
    cd Am-I-affected-by-Meltdown
    make
    sudo sh -c "echo 0  > /proc/sys/kernel/kptr_restrict"
    ./meltdown-checker
    

প্যাচড সিস্টেমে এটি আউটপুট দিয়ে শেষ হওয়া উচিত

...
so far so good (i.e. meltdown safe) ...

System not affected (take it with a grain of salt though as false negative
may be reported for specific environments; Please consider running it once again).

  • Https://github.com/speed47/spectre-meltdown-checker থেকে সরঞ্জামের সাথে চেক করুন :

    cd /tmp
    wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
    sudo sh /tmp/spectre-meltdown-checker.sh
    

প্যাচড সিস্টেমে এটি নিম্নলিখিতটি দেখানো উচিত:

Spectre and Meltdown mitigation detection tool v0.27

Checking for vulnerabilities against live running kernel Linux 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39 UTC 2018 x86_64
...
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI):  YES 
* PTI enabled and active:  YES 
> STATUS:  NOT VULNERABLE  (PTI mitigates the vulnerability)

জেনিয়ালে 4.4.0-108-জেনেরিক ইনস্টল করবেন না! এটি বুট / রিবুট / শাটডাউন / স্থগিত কার্যকারিতা ভঙ্গ করে !

4.4.0-109-জেনেরিক ইনস্টল করুন ( বিশদের জন্য ইউএসএন -3522-3 দেখুন)!


রবি বসাক যেমন ইতিমধ্যে লিখেছেন , উবুন্টুতে স্পেকটার এবং মেল্টডাউন দুর্বলতার স্থিতি সম্পর্কে একটি পৃষ্ঠা রয়েছে ।

এছাড়াও আছে:


3
উবুন্টুর জন্য আপডেটগুলি জানুয়ারী 9 এর জন্য নির্ধারিত হয়েছে They এগুলি আগে অবতরণ করতে পারে তবে আমি এটিতে বিশ্বাস করব না। insights.ubuntu.com/2018/01/04/…
রানিজ

4
"Dmesg | গ্রেপ বিচ্ছিন্নতা" প্রকারের উত্তরগুলি এর চেয়ে ভাল, আইএমও। কিছু বিতরণ (কমপক্ষে ডেবিয়ান প্রসারিত, সম্ভবত অন্যরা) পিটিআই-কে তাদের পুরানো কার্নেলটিতে পোর্ট করে, তবে সিপিইউ_ইনসিকিউর পতাকাটি / proc / cpuinfo- তে নয়। এই সিস্টেমগুলিতে, ডেমসগ লগটি অনুসন্ধান করা চেক করার একমাত্র উপায়, এএএএফসিটি।
জেসন ক্রেইটন 18

3
আমি মনে করি dmesg | grep isolation && echo "patched :)" || echo "unpatched :("তালিকাভুক্ত কমান্ডটি অপ্রয়োজনীয়ভাবে বিপজ্জনক : এটি কোন লাইনটি আসলে মিলছে কিনা তা দেখায় না, এবং "বিচ্ছিন্নতা" এর এলোমেলোভাবে যদি অন্য কোনও উদাহরণ মিলে যায় তবে সুখে "প্যাচড :)" মুদ্রণ করবে ...
জাপ এল্ডারিং

2
আমি দ্বিতীয় পরামর্শটির বিরুদ্ধে সুপারিশ করব (সিপিইউ_ইনসিকিউরের /proc/cpuinfoজন্য গ্রেপিং)। আপনি যদি এটি কোনও স্ক্রিপ্টে রেখে দেন এবং ভবিষ্যতে আপনার একটি সিপিইউ থাকে যেখানে সমস্যাটি এর মাইক্রোআরকিটেকচারে স্থির করা হয়েছে, /proc/cpuinfoআর তা বলবে না cpu_insecureএবং আপনার স্ক্রিপ্ট বিশ্বাস করবে যে কার্নেলটি প্যাচ করা সত্ত্বেও কার্নেলটি অপ্রতিযুক্ত । আমিও তৃতীয় পরামর্শ বিরুদ্ধে সুপারিশ করবে হিসাবে এটা খুব সম্ভবত যে শব্দ হতে পারেন মধ্যে এটি কার্নেলের পেজ তালিকা বিচ্ছিন্নতা উল্লেখ ছাড়া কিছু সময়ে আউটপুট। isolationdmesg
blubberdiblub

4
আরও তদন্ত করার পরে, এই তিনটি পরামর্শই ভেঙে গেছে। গ্রিপিং isolationউভয় মেলে Kernel/User page tables isolation: enabledএবং Kernel/User page tables isolation: disabled on command line
চিহ্নিত করুন

18

নিম্নলিখিত কমান্ড চালান:

dmesg | grep 'page tables isolation'

যদি এটি সক্ষম হিসাবে প্রদর্শিত হয়, তবে পিটিআই সক্ষম হয়। যদি কোনও কিছুই প্রদর্শিত না হয় বা আপনি টার্মিনালে 'অক্ষম' দেখতে পান তবে পিটিআই অক্ষম থাকে। উবুন্টু এখনও প্যাচটি প্রকাশ করেনি, সুতরাং এটি কোনও বার্তা প্রদর্শন করবে না।


... বা পরে কার্নেল বার্তাগুলি কার্নেল লগ বাফার থেকে বুটআপ বার্তাগুলি ঠেলে দিয়েছে। যদি আপনার কার্নেল অদ্ভুত নেটওয়ার্ক প্যাকেটের মতো স্বল্প-তীব্রতার জন্য বিজ্ঞপ্তিগুলি প্রিন্ট করে তবে বুট-টাইম বার্তাগুলির dmesgআউটপুট অংশ না হওয়া সাধারণ । /var/log/kern.log*এটি বুট বার্তাগুলি পাওয়ার জন্য যথেষ্ট পরিমাণে ফিরে যায় কিনা তা দেখুন । উবুন্টু বুট-টাইম dmesgআউটপুট এতে রেকর্ড করত /var/log/dmesg, তবে আর এটি করে বলে মনে হয় না।
পিটার কর্ডেস

14.04 এ, আমি পেয়েছি dmesg: invalid option -- 'w'-Hএছাড়াও অবৈধ। পতাকাগুলি সরিয়ে ফেলা আমার পক্ষে ভাল কাজ করেছে, যেমন এই উত্তরে
ওয়াজান্দ্রিয়া

/var/log/kern.log 14.04

12

আপনি এটি পরীক্ষা করতে পারেন cat /proc/cpuinfo, যদি এটি cpu_insecure"বাগগুলি" এর অধীনে রিপোর্ট করে তবে পিটিআই সক্ষম হয়।

যদি এটি ফাঁকা থাকে (বা কেবল তালিকাবদ্ধ না করে cpu_insecure) তবে সম্ভবত আপনি কোনও কার্নেল চালাচ্ছেন যা এখনও প্যাচ করা হয়নি (উবুন্টু নেই), বা আপনার একটি এএমডি প্রসেসর রয়েছে (যার জন্য এটি খুব সহজেই সক্ষম করা হবে না, কারণ তারা 'অরক্ষিত নন)।

বর্তমানে সমস্ত সিপিইউ সর্বশেষতম 4.15 কার্নেলের ক্ষেত্রে দুর্বল হিসাবে ধরা হয়


4.15 জনসাধারণের জন্য এখনও প্রকাশিত হয়নি
আধিলে আরএফ

এটি হ'ল আপনি যদি কার্নেল.অর্গ থেকে সর্বশেষ প্রকাশের প্রার্থী ডাউনলোড করেন এবং এটি নিজেই সংকলন করেন। @
মোহাম্মদাহাদিল

1
একটি মুক্তির প্রার্থী মুক্তি নয়।
রুসলান

আপনার
লিখিত

2
কার্নেল 4.14.11 cpu_insecureকোনও x86 সিপিইউ জন্য সেট করবে ; 4.14.12 এবং নতুন শুধুমাত্র (ইন্টেল CPU- র জন্য এটি সেট হবে বেশী খুব বেশি পুরানো বা খুব আদিম প্রবন হতে যাতে অন্তর্ভুক্ত রয়েছে উভয় এটি সেট হবে এমনকি যদি KPTI নিষ্ক্রিয় করা
মার্ক

8

আমি আপনার সিস্টেমে মেল্টডাউন / স্পেকটার দুর্বলতাগুলি পরীক্ষা করার জন্য এই দুর্দান্ত শ স্ক্রিপ্টটি পেয়েছি:

https://github.com/speed47/spectre-meltdown-checker

এই দুর্বলতাগুলি এখন আপনার ওএস দ্বারা হ্রাস করা হয়েছে কিনা তা জানানোর জন্য স্ক্রিপ্টটি আপনার সিস্টেমে জানা মেল্টডাউন এবং স্পেকটার প্যাচগুলিতে আপনার সিস্টেমটি পরীক্ষা করে check


2

আপনি /proc/config.gz পরীক্ষা করতে পারেন CONFIG_PAGE_TABLE_ISOLATION=yযার জন্য কার্নেলটি কেপিটিআই দিয়ে সংকলিত হয়েছিল।

এটি আমার প্যাচড আর্চ লিনাক্স সিস্টেমে চলছে 4.14.11-1:

$ zgrep CONFIG_PAGE_TABLE_ISOLATION /proc/config.gz 
CONFIG_PAGE_TABLE_ISOLATION=y

3
দুর্ভাগ্যক্রমে, বর্তমানে চলমান কার্নেলের কনফিগারেশন /proc/উবুন্টু কার্নেলগুলিতে ডিফল্টরূপে সক্ষম করা যায় না। /boot/config-$( uname -r )পরিবর্তে (অনেক কম মার্জিত) কাজটি গ্রেপিং হয়।
blubberdiblub

5
এটি কেবল আপনাকে জানায় যে কার্নেলটি কেপিটিআই দিয়ে সংকলিত হয়েছে, কেপিটিআই সক্রিয় রয়েছে কিনা তা নয় (এটি বুট সময়ে এবং সম্ভবত রানটাইমের সময় বন্ধ করা যেতে পারে)।
চিহ্নিত করুন

আপনি যদি কার্নেল কমান্ড লাইন প্যারামিটারগুলির মাধ্যমে কেপিটিআইকে স্পষ্টভাবে অক্ষম করে রেখেছেন তবে এটি সক্রিয় আছে কি না তা পরীক্ষা করার দরকার নেই।
রানিজ

1

আমার এডাব্লুএস উবুন্টু 14.04.5 এলটিএস ইসি 2 উদাহরণে আমি দৌড়ে এসেছি

grep CONFIG_PAGE_TABLE_ISOLATION /boot/config-$(uname -r)

এটি বলা উচিত:

CONFIG_PAGE_TABLE_ISOLATION=y

আপডেটের জন্য আমি করেছি:

sudo apt-get update && sudo apt-get install linux-image-generic

আমিও মনে করি এটি ঠিক আছে:

sudo apt-get update
sudo apt-get dist-upgrade

কার্নেল সংস্করণটি পরীক্ষা করতে:

uname -r

করা প্রয়োজন 3.13.0-139-জেনেরিক অথবা ঊর্ধ্বতন সংস্করণ।


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