Последен ъпдейт на 28 юни 2018 в 13:29 ч.
„Фундаментален пропуск в дизайна“. Това изречение циркулира в IT света в първите дни на 2018 г. Има и защо. Причината: пропускът в дизайна касае чиповете на най-разпространените процесори в света – Intel – и позволява пробойна в защитата им. А коригирането на пропуска ще доведе до значителен спад в производителността на най-разпространените операционни системи.
Кой и колко е засегнат?
На практика – всеки един потребител на Windows или Linux. macOS също няма да бъде пропуснат – особено 64-битовата версия на операционната система (засегнатият от уязвимостта чип е Intel x86-64). След нанасянето на необходимите промени по ядрата на операционните системи забавянето на производителността може да стигне между 5% и 30% – според зависи от поколението на процесора. Финални числа за ефекта няма.
План Б има – може да купите нов процесор, в който уязвимостта е запушена.
Ъпдейтите на Windows се очакват още следващия вторник (9 януари 2018 г.), а за Linux и Apple все още няма конкретни дати.
Какво представлява уязвимостта?
Към момента официална информация за причината на проблема няма – а дори и коментарите по сорсовете на ядрата на Linux, в които има частични фиксове, са замаскирани така, че да не се дават ясни детайли за пробойната.
Към момента е ясно, че:
- Проблемът засяга чипове на Intel, произведени през последните 10 години
- Той позволява на нормално програми – от приложения за бази данни до JavaScript в уеб браузъри да разпознаваt до известна степен оформлението или съдържанието на защитените области на паметта на ядрото
- Решението на проблема е в разделянето на паметта на ядрото изцяло от потребителските процеси с метод, наречен Kernel Page Table Isolation или
Какво се променя?
Когато определена програма трябва да извърши нещо – като да запише файл или да отвори мрежова връзка – тя трябва да има временен контрол върху процесора и ядрото му, за да свърши задачата си. Преминаването от потребителски режим към режим на работа в ядрото – и оттам обратно в потребителски режим – което да се случи достатъчно ефективно и бързо от гледна точка използвани системни ресурси – изисква присъствието на процесорното ядро във адресните пространства на виртуалната памет на всеки един процес, въпреки че самото ядро остава невидимо за самите потребителски програми.
Когато има нужда от ядрото, програмата вика системен процес, процесорът превключва в режим на работа в ядрото си и започва да действа на това ниво. Когато работата му приключи, процесорът се връща обратно в потребителски режим. И докато е в този потребителски режим съхраняваната в ядрото информация остава невидима за процесите.
Иначе казано – ядрото е навсякъде, но се появява само, когато има реална нужда от него.
Новите патчове минават едно ниво нагоре – с тях ядрото не само ще бъде невидимо, то ще бъде изцяло отделено, изобщо няма да присъства. Недостатъкът на това е, че таз промяна е скъпа от гледна точка време – тъй като софтуерът ще трябва да превключва не само в отделни режими, а и в отделни адреси – което ще доведе до споменатото забавяне.
Как може да бъде използвана язвимостта?
Възможните злоупотреби са няколко:
- Като даде възможност за по-лесен достъп до други уязвимости и информация (например – пароли, данни за логин, каширани файлове и т.н.). Представете си как влизате в уебсайт и той има достъп до най-чувствителната в информация
- Като се създаде софтуер, изпълняващ функции, които иначе биха били блокирани
Всичко написано дотук тепърва ще бъде потвърждавано и отричано. Изглежда, че е факт, че уязвимост има, а запушването ѝ се случва с критична бързина. А ефект ще има дори и върху огромни cloud услуги като Amazon EC2, Microsoft Azure и Google Compute Engine.