CPU-ის დაუცველობა ბოლო დროს გავრცელდა, Zenbleed და Downfall ორი უკანასკნელი იყო. მაგრამ რამდენად უნდა ინერვიულო?
CPU-ს დაუცველობა ბოლო წლების განმავლობაში გამოჩნდა და არ იცოდა ახალ ამბებში და ისინი ხშირად საკმაოდ საშინელი გზავნილით მოდიან, როდესაც საქმე მათ გამჟღავნებას ეხება. Იმ შემთხვევაში ზენბლედი და დაცემათქვენი კომპიუტერის ნებისმიერ აპლიკაციას შეეძლო წვდომა ნებისმიერი სხვა პროგრამის მეხსიერებაზე, რომელიც მუშაობს შესაბამის პირობებში. ინტენსიურად ჟღერს, არა?
თუმცა, ეს არც ისე ცუდია, როგორც ჩანს. აშკარად საკმარისად მნიშვნელოვანია, რომ გარანტირებული იყოს გამჟღავნება და პროგრამული უზრუნველყოფის განახლება შეცდომების გამოსწორების მიზნით, თუნდაც შესრულების ფასად, მაგრამ კონკრეტულად რა იწვევს ამ უსაფრთხოების პრობლემებს? უნდა ინერვიულო?
უნდა ინერვიულოთ CPU-ის დაუცველობაზე, როგორიცაა Zenbleed, Downfall და Inception?
მართალი გითხრათ, არცერთი ეს ექსპლუატაცია არ მოქმედებს ადამიანთა დიდ უმრავლესობაზე. მიუხედავად იმისა, რომ მათ შეუძლიათ მონაცემების გაჟონვა ერთი პროგრამიდან მეორეზე, სამომხმარებლო აპარატზე არსებული მავნე პროგრამის ნებისმიერ ნაწილს უკვე აქვს წვდომის დიდი დონე, რომელსაც შეუძლია ბოროტად გამოყენება. ამის ნაცვლად, სადაც ეს შეტევები განსაკუთრებით შემაშფოთებელია არის ღრუბლოვანი გამოთვლის კონტექსტში.
პრობლემის გასაგებად, თქვენ უნდა გესმოდეთ, რომ მრავალი განსხვავებული ღრუბლოვანი სერვერი უბრალოდ არის კომპიუტერები დიდი ცხენის ძალით, დიდი ქსელის გამტარუნარიანობით და სხვა სპეციალიზირებული აპარატურით თუ საჭირო. ბევრი კომპანია ქირაობს იმას, რასაც VPS, ან ვირტუალური კერძო სერვერი ჰქვია, რომლებიც არის ვირტუალიზებული მანქანები შეზღუდული სიმძლავრის მქონე, სადაც ათობით სხვა ვირტუალური მანქანა შეიძლება გაშვებული იყოს.
სადაც ეს შეიძლება იყოს პრობლემა, არის ის, რომ ერთ ვირტუალურ მანქანაზე ერთ ადამიანს შეუძლია შეასრულოს ერთი მათგანი დაუცველობა, იმის გაგება, თუ რა მონაცემები მიედინება პროცესორში, მათ შორის სხვა მონაცემებიდან ვირტუალური მანქანები. ეს არ უნდა იყოს შესაძლებელი და არის უსაფრთხოების მნიშვნელოვანი დარღვევა. სწორედ ამიტომ, როდესაც Zenbleed-ის გამჟღავნება მოხდა, უკვე იყო პატჩები AMD-ის Epyc პროცესორებისთვის, რომლებიც მიმართულია სერვერის გამოყენებაზე.
CPU-ს ყველაზე სერიოზული დაუცველობა ამჟამად
მოწყვლადობის „რანგის“ ინდუსტრიის სტანდარტი და მათი სიმძიმე არის საერთო დაუცველობის შეფასების სისტემის (CVSS) მეშვეობით. ის უზრუნველყოფს სიმძიმის რაოდენობრივ საზომს, რადგან დაუცველობის სხვადასხვა ასპექტი გავლენას მოახდენს ქულაზე. ის ზომავს შემდეგი ფაქტორების გათვალისწინებით:
- შეტევის ვექტორი: ქსელი/მიმდებარე/ლოკალური/ფიზიკური
- შეტევის სირთულე: Დაბალი მაღალი
- საჭიროა პრივილეგიები: არცერთი/დაბალი/მაღალი
- მომხმარებლის ურთიერთქმედება: არცერთი/აუცილებელი
- ფარგლები: უცვლელი/შეცვლილი
- კონფიდენციალურობა: არცერთი/დაბალი/მაღალი
- მთლიანობა: არცერთი/დაბალი/მაღალი
- ხელმისაწვდომობა: არცერთი/დაბალი/მაღალი
ეს ყველაფერი კლასიფიცირებს შეცდომის სიმძიმეს. მაგალითად, დაუცველობა, რომელიც შეიძლება შესრულდეს დაბალი სირთულის ქსელში, არ არის საჭირო პრივილეგიები, არ არის მომხმარებლის ინტერაქცია, შეცვლილი მასშტაბით, მონაცემთა მაღალი კონფიდენციალურობის გაჟონვა, მონაცემთა მაღალი მთლიანობის დარღვევა და მაღალი გავლენა ხელმისაწვდომობაზე მიიღებენ სრულყოფილ 10-ს CVSS 3.1-ში, უმაღლესი ქულა. შესაძლებელია.
ამ მეტრიკის მიხედვით, ჩვენ შეგვიძლია შევაფასოთ ზიანი, რომელსაც Zenbleed და Downfall შეუძლია. სპოილერი: ისინი ერთნაირია, თუმცა გავლენას ახდენენ სხვადასხვა პროცესორებზე. ამიტომ, სანამ ისინი იღებენ გარკვეულ რაოდენობას დაუცველობის კონტექსტში, მათ შეუძლიათ გავლენა მოახდინონ სხვადასხვა რაოდენობის პროდუქტებზე და ეს არ იმოქმედებს მათზე ქულა. CVSS ქულები არსებითად მხოლოდ ტრიაჟისთვისაა, მაგრამ არ გეტყვით სრულ ისტორიას.
Zenbleed: 6.5 (საშუალო)
- შეტევის ვექტორი: ადგილობრივი
- შეტევის სირთულე: დაბალი
- საჭიროა პრივილეგიები: დაბალი
- მომხმარებლის ურთიერთქმედება: არცერთი
- ფარგლები: შეიცვალა
- კონფიდენციალურობა: მაღალი
- მთლიანობა: არცერთი
- ხელმისაწვდომობა: არცერთი
ახსნა: თავდასხმის ვექტორი საჭიროებს ლოკალურ წვდომას მანქანაზე (როგორც ეს, ის მუშაობს მანქანაზე) და ასევე არ ახდენს გავლენას აპარატზე მონაცემების მთლიანობაზე ან მის ხელმისაწვდომობაზე. თუმცა, ის ცვლის ფარგლებს (რაც იმას ნიშნავს, რომ ის გავლენას ახდენს რესურსებზე მისი პრივილეგიების მიღმა) და თავდასხმის სირთულეზე, ხოლო შესასრულებლად საჭირო პრივილეგიები დაბალია. ის ასევე მთლიანად არღვევს აპარატზე არსებული ინფორმაციის კონფიდენციალურობას.
ვარდნა: 6.5 (საშუალო)
- შეტევის ვექტორი: ადგილობრივი
- შეტევის სირთულე: დაბალი
- საჭიროა პრივილეგიები: დაბალი
- მომხმარებლის ურთიერთქმედება: არცერთი
- ფარგლები: შეიცვალა
- კონფიდენციალურობა: მაღალი
- მთლიანობა: არცერთი
- ხელმისაწვდომობა: არცერთი
ახსნა: თავდასხმის ვექტორი საჭიროებს ლოკალურ წვდომას მანქანაზე (როგორც ეს, ის მუშაობს მანქანაზე) და ასევე არ ახდენს გავლენას აპარატზე მონაცემების მთლიანობაზე ან მის ხელმისაწვდომობაზე. თუმცა, ის ცვლის ფარგლებს (რაც იმას ნიშნავს, რომ ის გავლენას ახდენს რესურსებზე მისი პრივილეგიების მიღმა) და თავდასხმის სირთულეზე, ხოლო შესასრულებლად საჭირო პრივილეგიები დაბალია. ის ასევე მთლიანად არღვევს აპარატზე არსებული ინფორმაციის კონფიდენციალურობას.
საწყისი: 5.6 (საშუალო)
- შეტევის ვექტორი: ადგილობრივი
- შეტევის სირთულე: მაღალი
- საჭიროა პრივილეგიები: დაბალი
- მომხმარებლის ურთიერთქმედება: არცერთი
- ფარგლები: შეიცვალა
- კონფიდენციალურობა: მაღალი
- მთლიანობა: არცერთი
- ხელმისაწვდომობა: არცერთი
ახსნა: თავდასხმის ვექტორი საჭიროებს ლოკალურ წვდომას მანქანაზე (როგორც ეს, ის მუშაობს მანქანაზე) და ასევე არ ახდენს გავლენას აპარატზე მონაცემების მთლიანობაზე ან მის ხელმისაწვდომობაზე. თუმცა, ის იცვლის სფეროს (რაც ნიშნავს, რომ ის გავლენას ახდენს რესურსებზე მისი პრივილეგიების მიღმა), თავდასხმის სირთულე მაღალია და შესასრულებლად საჭირო პრივილეგიები დაბალია. ის ასევე მთლიანად არღვევს აპარატზე არსებული ინფორმაციის კონფიდენციალურობას.
სპექტრი: 5.6 (საშუალო) (შესწორებული)
სპექტრი, მიუხედავად იმისა, რომ უფრო ფართოდ გავრცელებული ფენომენია, რეალურად ქულას იღებს ნაკლები ვიდრე Zenbleed და Downfall. ეს იმის დამსახურებაა, რომ თავდასხმის სირთულეს უწოდეს "მაღალი", რამაც მისი ქულა დაკარგა.
- შეტევის ვექტორი: ადგილობრივი
- შეტევის სირთულე: მაღალი
- საჭიროა პრივილეგიები: დაბალი
- მომხმარებლის ურთიერთქმედება: არცერთი
- ფარგლები: შეიცვალა
- კონფიდენციალურობა: მაღალი
- მთლიანობა: არცერთი
- ხელმისაწვდომობა: არცერთი
ახსნა: თავდასხმის ვექტორი საჭიროებს ლოკალურ წვდომას მანქანაზე (როგორც ეს, ის მუშაობს მანქანაზე) და ასევე არ ახდენს გავლენას აპარატზე მონაცემების მთლიანობაზე ან მის ხელმისაწვდომობაზე. თუმცა, ის იცვლის სფეროს (რაც ნიშნავს, რომ ის გავლენას ახდენს რესურსებზე მისი პრივილეგიების მიღმა), თავდასხმის სირთულე მაღალია და შესასრულებლად საჭირო პრივილეგიები დაბალია. ის ასევე მთლიანად არღვევს აპარატზე არსებული ინფორმაციის კონფიდენციალურობას.
Meltdown: 5.6 (საშუალო) (დამუშავებული)
Spectre-ის მსგავსად, Meltdown-ს აქვს უფრო დაბალი ქულები, ვიდრე Zenbleed-სა და Downfall-ზე, შეტევის უფრო დიდი სირთულის გამო.
- შეტევის ვექტორი: ადგილობრივი
- შეტევის სირთულე: მაღალი
- საჭიროა პრივილეგიები: დაბალი
- მომხმარებლის ურთიერთქმედება: არცერთი
- ფარგლები: შეიცვალა
- კონფიდენციალურობა: მაღალი
- მთლიანობა: არცერთი
- ხელმისაწვდომობა: არცერთი
ახსნა: თავდასხმის ვექტორი საჭიროებს ლოკალურ წვდომას მანქანაზე (როგორც ეს, ის მუშაობს მანქანაზე) და ასევე არ ახდენს გავლენას აპარატზე მონაცემების მთლიანობაზე ან მის ხელმისაწვდომობაზე. თუმცა, ის იცვლის სფეროს (რაც ნიშნავს, რომ ის გავლენას ახდენს რესურსებზე მისი პრივილეგიების მიღმა), თავდასხმის სირთულე მაღალია და შესასრულებლად საჭირო პრივილეგიები დაბალია. ის ასევე მთლიანად არღვევს აპარატზე არსებული ინფორმაციის კონფიდენციალურობას.
ყველაზე დიდი მიზეზი: ფილიალის პროგნოზირება
წყარო: AMD
ფილიალის პროგნოზირება და სპეკულაციური შესრულება ფართოდ ეხება, როდესაც თქვენი კომპიუტერი ასრულებს ოპერაციებს, რომლებიც არ არის საჭირო ამ მომენტში, მაგრამ იქნება მომდევნო ციკლებში. ეს ხშირად კეთდება იმ დროს, როდესაც თქვენს სისტემას აქვს თავისუფალი რესურსები, რადგან ის აჩქარებს მთლიან დამუშავებას, როდესაც სხვაგვარად ინსტრუქციები ან მონაცემები ჯერ კიდევ არ იქნება მზად CPU-სთვის. თუ შესრულებული სამუშაო არ არის საჭირო, ის, როგორც წესი, უგულებელყოფილია და პროცესორს შეუძლია გადახტეს იქ, სადაც მას სჭირდება, რათა შეასრულოს შემდეგი სწორი ინსტრუქცია. როდესაც ის ამას აკეთებს, ამას ეწოდება ფილიალის არასწორი პროგნოზი.
ფილიალების პროგნოზირების უფრო ღრმა გაგებისთვის, წარმოიდგინეთ სცენარი, როდესაც პროგრამა თანმიმდევრულად ამატებს ერთსა და იმავე ორ რიცხვს მის შესრულებაში. გარკვეულ ეტაპზე, პროცესორმა შეიძლება ამოიცნოს ეს ნიმუში და მოამზადოს შემდეგი ნაბიჯები, თუ მეთოდი, სადაც ეს ორი რიცხვი დამატებულია, ხელახლა გამოიძახება. თუ ეს შედეგი რაღაც მომენტში შეიცვლება, მაშინაც კი, თუ პროცესორმა დაგეგმა ერთი და იგივე ორი რიცხვი, რომ გამოიცნოს და ჩაანაცვლოს ფაქტობრივი შესრულების ნაკადი. თუმცა, იმ დროისთვის, რომ ეს რიცხვები არიან იგივე, მაშინ პროცესორს შეუძლია სწრაფად გამოტოვოს ეს ინსტრუქციები.
თუმცა, ბევრი პრობლემაა, როდესაც საქმე ეხება სპეკულაციურ შესრულებას, და დაუცველობა, როგორიცაა Spectre, Zenbleed, Downfall და სხვა არის შედეგი. ეს არის მძლავრი მახასიათებელი, რომელიც გვმართებს თანამედროვე CPU-ს მუშაობის დიდ ნაწილს, მაგრამ ეს არის მთავარი სამიზნე, როდესაც მკვლევარები ეძებენ დაუცველობას CPU-ებში.
შერბილება: შესრულების ინჰიბიტორი
ამ მოწყვლადობის შერბილება უაღრესად მნიშვნელოვანია, მაგრამ პრობლემა ის არის, რომ ეს შერბილებები ხშირად ამცირებენ შესრულებას. AMD-ის უახლესი Zenbleed-ის შემთხვევაში, შერბილებამ შეიძლება დაინახოს შესრულების უზარმაზარი ხარჯები.
ამის მიზეზი ის არის, რომ ერთადერთი რეალური გზაა დაზიანებულ პროცესორში განშტოების პროგნოზირების ქცევის გამორთვა ან შეცვლა. იგივე წარმადობის დარტყმა შეიძლება მოიძებნოს Intel-ის დაცემის შერბილებაში, ადრეული მოხსენებებით, რომლებიც ვარაუდობენ ეფექტურობის ზემოქმედებას 39%-მდე. ეპიკური თამაშები ერთხელ ცნობილი გაზიარებული CPU-ს გამოყენების გრაფიკები მას შემდეგ, რაც Meltdown-ის დაუცველობა გამოვლინდა და რამდენად დიდი გავლენა იქონია ამ შემარბილებლებმა კომპანიის CPU-ს გამოყენებაზე. CPU–ს გამოყენებაში მნიშვნელოვანი ზრდა იყო, როგორც ამას მოელოდა. იქ, სადაც ყველაფერი საშინელი ხდება, არის AMD-ის დაწყების გამოსწორება, აღმოჩნდა, რომ შესრულება შემცირდა 54%-მდე.
იმის გამო, რომ მსგავსი დაუცველობა გავლენას ახდენს პროცესორის ფუნდამენტურ მახასიათებლებზე, ძნელია მათი გამოსწორება, გარდა ძირითადი ფუნქციების გამორთვის ან სერიოზულად დასახიჩრებლად. სპეკულაციური აღსრულება წარმოუდგენლად მნიშვნელოვანია და ეს შერბილებები იგრძნობს ბევრ ადამიანს. თამაშების შესრულება ნაკლებად პროგნოზირებადია, ასე რომ, თუ თქვენი კომპიუტერის ძირითადი გამოყენება თამაშია, თქვენ შეიძლება იყოთ კარგია, რადგან თქვენს კომპიუტერს არ შეუძლია ამდენი პროგნოზის გაკეთება, მაგრამ ეს პრობლემები ბევრად უფრო ფართოვდება სისტემები.
გავლენას ახდენს მომავალი პროცესორები?
საბედნიეროდ, Intel Downfall-ისა და Zenbleed-ის შემთხვევაში, ეს ექსპლოიტები გავლენას ახდენს ძველ პროცესორებზე. ახალი პროცესორები ორივე კომპანიისგან უსაფრთხოა და ამ დროისთვის სანერვიულო არაფერია. მნიშვნელოვანი ხელახალი დიზაინი, როგორც წესი, არის ის, რაც მთავრდება ამ პრობლემების მოგვარებაში. მაგალითად, Spectre-მა გავლენა მოახდინა Intel-ის მერვე და მეცხრე თაობის პროცესორებზე, მაგრამ მეცხრე თაობამ ჩართო პროგრამული უზრუნველყოფის შესწორებების აპარატურული ვერსია, რომელიც განხორციელდა. სრული შესრულების ჰიტით. Intel-ის მე-10 თაობა ჯერ კიდევ უსაფრთხო იყო, მაგრამ ასევე აღარ ქონდა გავლენა ამ შემარბილებელი ზომების შესრულებაზე.
შედეგად, იმის გათვალისწინებით, რომ Downfall და Zenbleed უკვე დაფიქსირდა მათი შესაბამისი პროცესორის უახლეს ვერსიებში, მომხმარებლებს არ აქვთ ბევრი ფიქრი. რა თქმა უნდა, ყოველთვის შეიძლება მეტი დაუცველობის აღმოჩენა, მაგრამ დროის ამ ეტაპზე, თქვენ უსაფრთხოდ ხართ.