Адрес для входа в РФ: exler.wiki
Уязвимости в современных процессорах
Сильно нашумевшая и довольно неприятная история. В популярном и доступном виде о том, что это такое и что с этим делать - написано в статье издания "Медуза".
Цитата.
Использовать во вредоносных целях уязвимость Spectre сложнее, но тоже возможно. Чтобы устранить ее, придется обновлять отдельные программы. Главным образом — браузеры: благодаря Spectre можно получать доступ к пользовательским паролям; это уже обнаружили и поправили в Firefox.
Вообще-то встроенные системы хранения паролей браузеров - и сами по себе очень ненадежны и скорее сделаны исключительно в плане "защиты от дурака".
Значительно лучше, конечно, использовать отдельные проверенные универсальные менеджеры паролей, которые для различных браузеров предоставляют свои плагины.
Я уже много лет для этого использую Roboform. Он платный (недорогой), но зато надежный и очень продвинутый. К тому же поддерживает биоидентификацию, что можно запросто реализовать на любом компьютере с Windows, также сканер отпечатка пригодится для входа в систему.
Другое дело, что под новым Firefox 57 Roboform работает все хуже и хуже (во многих случаях перестал сохранять или вводить пароли - впрочем, это также вызвано введением новых средств идентификации во всяких банковских и прочих системах), но я пока не нашел, чем его можно заменить. Бесплатный Lastpass тестировал много раз - не подходит, так как он вообще не умеет вводить логины-пароли в специфических отдельных окнах, а у меня это используется постоянно. Avast Пароли - система страшно примитивная (при этом платная), да еще и FireFox с ней начинает дико глючить.
Так что пока альтернативы Roboform не вижу. Может, кто-то из читателей подскажет что-то более современное, крутое и надежное? Разумеется, можно платное, но только с триальным периодом. А то я за Avast Пароли уже заплатил - выкинул программу после получаса использования. Хорошо хоть деньги вернули.
А для новых багов есть где-нибудь проверки?
На ВСЕХ х64 интелах со времен Pentium4 и заканчивая самыми последними Кофилейками есть эти баги. Думаю что и во вчерашне-анонсированых интелем новых камушках с графикой от АМД очень врядли что-то поменялось. И заплатки в ОС и браузерах не более чем временные костыли.
Алекс, тут разговор идёт про basic http authentication? Если не ошибаюсь, то скриншот в предыдущем посте про пароли показывал именно такой запрос логина. Хотел написать, что LastPass умеет работать с такими, если установить дополнительную десктопную аппу (просто браузерный плагин не имел доступа). Но решил погуглить про это - оказывается, в FF57+ это, естественно, отломалось. Вот обсуждение - forums.lastpass.com/viewtopic.php
Возможно, пофиксят это дело. Если интересно и это была единственная проблема LastPass - следи за развитием событий. Я же на Хроме сижу, потому мне это не актуально, там всё работает 😄
Алексей, а дай, пожалуйста, ссылку на один из таких сайтов. Где хитрое окно ввода. Это чисто для себя, понять где Ластпасс косячит. Вроде уже несколько лет его использую и везде адекватно себя ведет. Иногда череззабороногозадерищенско, но всегда можно было использовать.
вообще да технологии, но к этой паре уязвимостей MEI/TXEI отношения не имеют
Blackbox7: Ну и Алексанлрийская библиотека, но это так, по мелочи.
хоть кто-то точно знает что с ней случилось.
www.password-depot.com/
Да, $50 в год за семейную подписку - это не то чтобы дёшево. Но есть за что.
Подписка необязательна, но с подпиской на самом деле дешевле выходит. И много безгеморнее.
Триал имеется.
В подобных музейных экспонатах еще не было технологий спекулятивного исполнения и предсказания переходов.
Медуза тоже пересказывает в основном то, о чем пишут все масс медиа. Между тем, из найденных уязвимостей только одну можно использовать на системе с амд www.amd.com . Да и ее крайне сложно использовать, нужен линукс с ядром, собранным с поддержкой eBPF (для работы которого насколько помню нужны права суперюзера). И закрыть ее для амд будет куда проще. Вот интел конечно подставились очень здорово, я на этой волне вспомнил как интел в 94 году сели в лужу с процессором пентиум, когда неверно решалось деление чисел с плавающей точкой. И как раз после него выходит ядро P6, в котором был реализован механизм неупорядоченного спекулятивного исполнения, и последующие с текущей проблемой. Не покидает ощущение, что все это было известно давно и просто преднамеренно не закрывали. Зачем делать лишние проверки в конвейере, если проще их не делать и гнаться за производительностью, надеясь что в этот конвейер никто не влезет.
Это, кажется, не так. Просто прототип, написанный Google Project Zero работает только с включенным eBPF, так как они его выбрали как функцию-жертву.
Но принципиально его наличие для реализации Bounds check bypass не требуется. Сценарии, описанные в spectreattack.com (в том числе javascript demo) работают, если я правильно понимаю, и на AMD. Ведь cache он в процессе спекулятивного исполнения вполне себе может загружать.
Распространенное ошибочное утверждение.
Насколько я понял ситуацию, имеем:
Spectre, часть 1: общая идея - за счёт опережающего (спекулятивного) выполнения заставить процессор прочитать некую память, которую он читать не должен (выход за пределы массива). При этом формально ничего не сломалось (эти операции будут признаны выполненными ошибочно и отброшены), но за того что после этой операции некие данные оказались в кеше их можно определить по ускоренному чтению. Рекомендуемый путь исполнения - предварительно натренировать предсказатель условных переходов идти по нужной ветке. И это не баг а фича именно механизмов спекулятивного исполнения и блока предсказания переходов, и ему "подвержены" все современные процессоры. Включая AMD и ARM.
И два пути эксплуатации:
а) в рамках своего процесса, например чтобы выйти за пределы ограничений JS-песочницы. Использование eBPF в Linux - именно вариант такой эксплуатации, но не обязательное требование.
б) контроль некоего тестируемого стороннего приложения - но межпроцессная эксплуатация пока выглядит больше теорией, чтобы использовать её и определить разницу в скорости чтения на сотню тактов должно сложиться слишком много условий.
Spectre, часть 2. Intel-специфичная. Во-первых, межпроцессная (см. выше часть 1б). Во-вторых, использует "особенности" предсказателя переходов для косвенных переходов, чтобы направить спекулятивное исполнение в произвольное место. В AMD этот блок работает иначе, и этот подход не срабатывает.
Т.е. основной угрозой является именно 1а, выход за рамки песочниц, позволяющий читать память своего процесса.
Meltdown принципиально похож на Spectre 1а, но из-за упрощенной проверки уровней доступа к памяти у процессоров Intel позволяет читать привилегированную память своего процесса. Для ускорения системных вызовов в 64-разрядных системах память ядра включалась в адресное пространство обычных процессов, считалось что уровни приоритетов не позволяют обычному коду туда обращаться. Но оказалось, что всё-таки можно, но только на Intel. Решение - полностью изолировать привилегированные данные от приложений, за счёт ещё большего удорожания системных вызовов. Чисто вычислительные задачи этого может и не заметят, а вот для серверных приложений и всего что активно обращается к системным функциям (включая работу с файлами и сетью) это заметно.
увы, данный тип уязвимости вполне подвергает риску и робоформ (ибо он достаточно популярен) и любую иную программу, то есть выход - не пользоваться ничем, ну и, как минимум, запретить везде где можно ( и где нельзя тоже) скрипты с сайтов.
Эвристика вообще должна взять подобные скрипты, но процессора это сожрет очень много.
Вот статья с Хабра, где уже более четко переложено с понятного только техническим специалистам на более простой язык рассказано о сути уязвимости и как может быть использовано.
habrahabr.ru
UPD
Эта статья, на Гиктаймс, на мой взгляд, получше рассказывает техническую суть в довольно понятной форме
geektimes.ru
И позволит лучше понимать, откуда ждать подвоха.
geektimes.ru
Отличный текст !
meltdownattack.com
Про Meltdown: meltdownattack.com
Про Spectre: spectreattack.com
Я все же вторую осилил. Действительно проблема состоит в том, что описанное поведение является "нормальным" поведением процессора, багу нельзя просто так починить. Идея в том, что хорошо известны уязвимости типа buffer overflow, когда какая-то программа (например, браузер) делает array[x] и не проверяет значение x. Тогда атакующий может передать любые значения x и читать память этой программы. Но идея спектра в том, что даже если атакуемый проверяет границы массивов, то процессор в рамках спекулятивного исполнения "забегает вперед" и выполняет что-то типа array2[array1[x]]. Дизайн современных процессоров такой, что результаты этого забегания могут оставить "следы" (например, загрузить кусок памяти array2[array1[x]] в кэш).
И единственный способ защиты: закрывать все, в остальном безопасные и легитимные, функции, которыми можно организовывать такую утечку. Например, в Хроме уже нельзя было измерять время точно через Performance.now как раз для защиты от таких атак. Но авторы статьи написали свой точный таймер на новых web worker. То есть теперь это нужно будет как-то закрыть.
downloadcenter.intel.com/ru/download/27150
В моем двухлетнем core i7 показывает, что все чисто.
downloadcenter.intel.com/ru/download/27150
В моем двухлетнем core i7 показывает, что все чисто.
Странное что-то это. Мой i5-2300, которому уже больше 3 лет и который по всем данным уязвим, тоже "чист" якобы.
к сожалению тут сейчас очень много путаницы.
Как я понимаю, конкретно этот инструмент (19 декабря) проверяет другой класс уязвимостей. Про него по-русски есть статья на хабре:
habrahabr.ru
С Meltdown и Spectre ситуация, если я правильно опять же понимаю, такая:
- Meltdown чинится апдейтами операционной системы (потенциально замедляет некоторые операции)
- Spectre в принципе не чинится никак, но производителями ОС и браузеров будут приняты меры, чтобы эксплуатировать его стало труднее.
downloadcenter.intel.com/ru/download/27150
В моем двухлетнем core i7 показывает, что все чисто.
На моём полуторалетнем i5-4460 @ 3.2Ghz тоже показывает, что уязвимости нет.
Здесь можно проверить свой интел процессор на уязвимость.
downloadcenter.intel.com/ru/download/27150
В моем двухлетнем core i7 показывает, что все чисто.
Это проверка на старый баг интела с AMT. И к новоявленным проблемам никакого отношения не имеет.
Из недостатка - нет автоматического ввода. Из преимуществ - работает в любом браузере (например, если нужно что-то сделать в Opera для проверки) и в приложении (например, для монтирования диска в Vera Crypt).
Я решил, что мне так удобнее. Пароли редко приходится вводить в основном рабочем процессе: google, trello, assembla, bitbucket я сказал просто "запомнить меня" на основном компьютере. Регулярно вылогинивают банковские сервисы, сайт брокера, прочие чувствительные приложения. Но туда я не каждые пять минут хожу, и 5 кнопок не очень трудно нажать.
keepass.info
Зашибись. То есть Spectre (обоих видов) нельзя попатчить на уровне операционки, то есть отныне _любая_ программа может нести невидимый ни для кого внешнего код (для всяких антивирусов, например), который является эксплойтом.
Признаюсь честно, я не осилил оригинальные статьи. Но все же ситуация по подробным техническим разборам выглядит не так. Видеть код любой программы уязвимость не мешает. Если антивирус "знает" данный вредоносный код, он его без проблем найдет.
Но любая программа в определенных пределах может теперь получить доступ к той области памяти, которую она видеть не должна. Например, вебсайт может прочитать авторизационные куки чужого сайта. Чтобы это предотвратить браузеры временно ограничили функции джаваскрипта, которые делают возможным такой класс атак. Например, таймер теперь будет возвращать время с большей погрешностью, чем раньше. Затруднить атаку может, например, вынесение в отдельный процесс каждого сайта (что включит скоро Хром по умолчанию вроде бы).
Зашибись. То есть Spectre (обоих видов) нельзя попатчить на уровне операционки, то есть отныне _любая_ программа может нести невидимый ни для кого внешнего код (для всяких антивирусов, например), который является эксплойтом.
Не совсем так, но в целом близко к истине. Нельзя пропатчить в одном локальном месте, но можно перекомпилировать критичные программы, чтобы они не были подвержены атаке. И антивирус, конечно, может увидеть эксплоит как любые другие по сигнатуре при полном сканировании исполняемого кода. Да, это можно прятать. Ещё хуже, что до появления процессоров не подверженных такой атаке придётся ждать от двух до четырёх лет... 😒
В принципе, что-то такое рано или поздно должно было случиться, сложность процессоров соейчас стала совершенно немыслимой.