2010-იან წლებში ორი ყველაზე ცნობილი დაუცველობა ძალიან მჭიდროდ იყო დაკავშირებული ერთმანეთთან. იმის ნაცვლად, რომ იყოს უსაფრთხოების ხარვეზები პროგრამულ უზრუნველყოფაში, Spectre და Meltdown არის დაუცველობა CPU-ების ფუნდამენტურ დიზაინში, რაც ართულებს პრობლემის მოგვარებას. თავად პრობლემები განსაკუთრებით მწვავეა, რაც მეხსიერების გამჟღავნების საშუალებას იძლევა სხვა აპლიკაციებიდან და ოპერაციული სისტემიდან.
მიმოხილვა
პროცესორები იყენებენ წარმოუდგენლად მოწინავე დიზაინებს უმაღლესი შესრულების მისაღწევად, ტექნიკის ჩათვლით, სპეკულაციური შესრულებისა და ფილიალების პროგნოზირების ჩათვლით. სპეკულაციური შესრულება არის ის ადგილი, სადაც CPU იწყებს პროცესის გაშვებას მანამ, სანამ არ გაიგებს, სჭირდება თუ არა ეს, რათა დაზოგოს დრო, როცა დაადგენს, რომ ეს სჭირდება. ფილიალის პროგნოზი არის სპეკულაციური შესრულების ქვეჯგუფი, რომელიც ცდილობს წინასწარ განსაზღვროს პროცესის შედეგი და შემდეგ იწყებს შემდეგი ნაბიჯის გამოთვლას, რომელიც ეფუძნება ამ წინასწარმეტყველურ მნიშვნელობას, რაც საშუალებას აძლევს CPU-ს შეასრულოს ინსტრუქციების სერია. შეკვეთა.
Spectre დაუცველობა მოდის ამ ორი მახასიათებლის განხორციელებიდან. ის საშუალებას აძლევს აპლიკაციას დაარღვიოს მეხსიერების იზოლაციის ტექნიკა, რომელიც ჩაშენებულია უმეტეს თანამედროვე პროგრამულ უზრუნველყოფაში, რომელიც საშუალებას აძლევს მეხსიერების გამჟღავნებას, მათ შორის საიდუმლოებებს, როგორიცაა პაროლები და დაშიფვრის გასაღებები. Spectre-ის ერთ-ერთი პრობლემა ის არის, რომ მონაცემებზე წვდომა შესაძლებელია აპლიკაციებიდან, რომლებსაც არ აქვთ უსაფრთხოების ხარვეზები, რადგან საჭიროა მხოლოდ მავნე პროგრამა.
Meltdown-ის დაუცველობა ეფუძნება მეხსიერების ზოგიერთ ტექნიკას, ისევე როგორც ზემოთ აღნიშნულ სპეკულაციურ აღსრულების სისტემას. ის იყენებს „რასის მდგომარეობას“ პროცესის შესრულებასა და პრივილეგიების შემოწმებას შორის და საშუალებას აძლევს მავნე პროგრამას წვდომა ჰქონდეს სხვა აპლიკაციებისა და ოპერაციული სისტემის მეხსიერებაში.
რჩევა: „რასის პირობა“ არის საკითხი, როდესაც ერთი დავალება უნდა დაეყრდნოს მეორეს, მაგრამ სწორი შესრულების ბრძანება არ არის აღსრულებული. ამან შეიძლება გამოიწვიოს „მეორე“ პროცესის პირველი გაშვება და არაინინიციალიზებული მეხსიერების გამოყენება, რომელიც უნდა შეიცავდეს „პირველი“ პროცესის შედეგს, ამ მეხსიერების წინა შიგთავსის გაჟონვას. ამ კონკრეტულ შემთხვევაში, პროცესი არ უნდა აწარმოოს მანამ, სანამ ნებართვების შემოწმება არ დადასტურდება, რომ ეს დაშვებულია, მაგრამ ნებართვის შემოწმება შეიძლება მეორედ მოხდეს შესრულების ოპტიმიზაციის გამო.
ეფექტები
2017 წლის შუა რიცხვებში მრავალმა გუნდმა დამოუკიდებლად აღმოაჩინეს და შეატყობინეს როგორც Meltdown, ასევე Spectre-ს პირადად CPU მწარმოებლებს, რომლებმაც შეიმუშავეს პატჩები. პატჩების გამო, რომლებიც მიზნად ისახავს შესრულების ოპტიმიზაციას, მათ საბოლოოდ შეამცირეს CPU-ების მუშაობა მდე 30% ყველაზე ცუდ სცენარებში, 2-14% შესრულების კლება უფრო წარმომადგენლობითია ხალხის გამოცდილება.
დაუცველობამ შეეხო ბევრ x86 პროცესორს, IBM POWER CPU-ს და ზოგიერთ ARM-ზე დაფუძნებულ CPU-ს. Meltdown გავლენას ახდენს აპარატურაზე, რომელიც ჩვეულებრივ გვხვდება პერსონალურ კომპიუტერებში, ისევე როგორც ღრუბლოვან სერვერებში. Spectre გავლენას ახდენს პერსონალურ კომპიუტერებზე, ღრუბლოვან სერვერებზე და მობილურ მოწყობილობებზე. ყველა Intel CPU 1995 წლიდან 2018 წლის შუა რიცხვებამდე დაუცველი იყო პრობლემების მიმართ (2013 წლამდე Itanium და Atom ხაზების გამორიცხვით). AMD CPU-ები არ დაზარალდნენ Meltdown-ით, მაგრამ დაუცველები იყვნენ Spectre-ს მიმართ.
პროგრამული უზრუნველყოფის შემარბილებელი პატჩები შემუშავდა და გამოვიდა ოპერაციული სისტემის პროვაიდერების მეშვეობით, რომლებიც წყვეტენ პრობლემების უმრავლესობას. 2018 წლის შუა პერიოდიდან Intel-მა განაახლა თავისი CPU დიზაინი, რათა შეიცავდეს ტექნიკის შერბილებას პრობლემებისთვის.
ორივე საკითხის ექსპლუატაცია შესაძლებელია მავნე ვებგვერდების მეშვეობით შემუშავებული JavaScript-ით, ამიტომ ძალიან მნიშვნელოვანია დარწმუნდით, რომ უსაფრთხოების პატჩები დაინსტალირებულია ყველა სისტემაზე, თუნდაც მუშაობის დაკარგვა იყოს მძიმე. სამწუხაროდ, პრობლემების მოგვარება შეუძლებელია ერთი პაჩით, რადგან ისინი უკიდურესად რთული საკითხებია ღრმა აპარატურაში ინტეგრაცია, უსაფრთხოების პატჩები გაგრძელდება დროთა განმავლობაში ახალი ვარიანტების მსგავსად აღმოაჩინა.