The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выявлен метод обхода защиты ASLR на процессорах Intel

20.10.2016 08:24

Группа исследователей из Бингемтонского и Калифорнийского университетов опубликовали технику атаки, позволяющую восстановить раскладку памяти при использовании механизма защиты ASLR (Address space layout randomization) на системах с процессорами Intel. Атака успешно продемонстрирована на системе с Linux и процессором Intel Haswell для предсказания рандомизированных адресов как для ядра, так и для пространства пользователя. В результате эксперимента смещение ASLR в ядре Linux удалось восстановить за 60 мс. Исследователи считают, что атака не специфична для Linux и также может быть применена к реализациям ASLR в Windows и macOS.

Метод является разновидностью атак по сторонним каналам (side-channel attacks) и основан на косвенном определении адресов, на которые осуществляется переход в процессе ветвления в коде программы, через инициирование коллизий в буфере предсказания ветвлений (Branch Target Buffer, BTB), используемом в процессоре для предсказания переходов и хранения таблицы истории переходов.

Циклично формируя переходы по различным адресам памяти атакующий отслеживает возникновение коллизии хэша, используемого в качестве индекса при записи в таблицу BTB. Далее, подобная коллизия отслеживается в процессе с ASLR. В результате оценки времени срабатывания перехода, единичные факты существенного увеличения времени отклика воспринимаются как признак коллизии, что позволяет определить местоположение известных команд перехода в адресном пространстве ядра или другого пользовательского процесса, пользуясь тем, что команды перехода по разным виртуальным адресам в результате коллизии хэша могут быть сопоставлены с одной и той же записью в BTB, ссылающейся на один целевой адрес перехода.



  1. Главная ссылка к новости (http://arstechnica.com/securit...)
  2. OpenNews: Новая техника атаки на SSL/TLS, которой подвержены 33% HTTPS-сайтов
  3. OpenNews: Атака через JavaScript по определению содержимого L3-кэша CPU
  4. OpenNews: Метод определения RSA-ключей через анализ изменения разности потенциалов
  5. OpenNews: Представлена техника атаки на микроконтроллеры, встроенные в MicroSD-карты
  6. OpenNews: Продемонстрировано использование уязвимости в DRAM-памяти для повышения привилегий в системе
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45350-aslr
Ключевые слова: aslr, intel
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (48) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 09:34, 20/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    Спалили закладку :)
     
     
  • 2.3, Аноним (-), 09:46, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    И это не шутка, даже если вы хотели пошутить. Уже столько "случайно оставленных для отладки паролей по умолчанию" было, что поверить в случайность трудно.
     
     
  • 3.21, Аноним (-), 14:20, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Шапочку из фольги поправь.
     
     
  • 4.52, Аноним (-), 16:16, 26/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Шапочку из фольги поправь.

    И еще management engine из чипсета ультрафиолетовым лазером выжги.

     
  • 3.24, Аноним (-), 14:33, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Да-да-да. Надо сделать так, чтобы все инструкции выполнялись за одинаковое время - очевидно, за время самой медленной из них. И чтобы все обращения к памяти занимали одинаковое время - время, необходимое для подгрузки страницы с диска. Вот тогда наступит щастье, и ни одна спецслужба не догадается, чем занят мой процесс!
     
     
  • 4.48, Аноним (-), 10:38, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >необходимое для подгрузки страницы с диска

    Поправочка, со встроенного хранилища самого дальнего космического аппарата, данные с которого доступны на земле.

     
  • 3.40, Dmitriy (??), 00:00, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Сравнили однако оставленные пароли с якобы закладкой в процессоре. Совершенно разный уровень сложности.
     

  • 1.2, Аноним (-), 09:45, 20/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Мда... а кто-то хелловоурдлы на гитхаб заливает.
     
     
  • 2.4, Наноним (?), 09:51, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Тогда срочно перестаньте заливать их!
     

  • 1.5, Аноним (-), 09:56, 20/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А можно еще проще объяснить?
    "Циклично формируя обращения к различным адресам памяти"
    Откуда она знает куда обращаться? Адресов то очень много.
     
     
  • 2.7, КО (?), 10:12, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Адресов много, а хешей мало.
    Грубо говоря, находишь занятый хеш и вычисляешь, какой адрес из пространства ядра ему соответствует.
     
  • 2.9, Нанобот (ok), 10:24, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Откуда она знает куда обращаться? Адресов то очень много

    не так уж и много, вот выдержка из оригинала: Due to the specifics of the Linux kernel memory layout, the 64-bit kernel currently randomizes only 9 bits of the virtual addresses.

     

  • 1.6, Аноним (-), 10:07, 20/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ничего, подумаешь закладка. продолжаем покупать железо с закладками, всё хорошо
     
     
  • 2.11, Аноним (-), 11:21, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Дальновидные Intel, добавили закладку в архитектуру за 5 лет до появления ASLR.
     
     
  • 3.22, Аноним (-), 14:22, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Дальновидные Intel, добавили закладку в архитектуру за 5 лет

    Если не за 10.

     
  • 3.49, Аноним (-), 10:40, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Дальновидные Intel, добавили закладку в архитектуру за 5 лет до появления ASLR.

    Это "высшее существо" добавило, ограничив скорость света, из-за чего невозможно любую операцию с информацией выполнить за константное время, общее для всех возможных операций.

     

  • 1.8, Аноним (-), 10:23, 20/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    Лучше бы придумали как нормально и навсегда Intel ME отключить.
     
     
  • 2.10, A.Stahl (ok), 10:27, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +9 +/
    >Лучше бы придумали

    А ещё лучше -- антигравитацию и вечный двигатель.
    Но они, заразы, продолжают выдумывать то, что могут, а не то что кому-то нужно.

     
  • 2.18, YetAnotherOnanym (ok), 13:53, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Эльбрус/Байкал/Лунгсон убережёт Вашу коллекцию прона от посторонних глаз.
     
     
  • 3.23, Аноним (-), 14:23, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Эльбрус/Байкал/Лунгсон убережёт Вашу коллекцию прона от глаз АНБ\ФБР\Ми-6.

    Fix

    Зато наши спецслужбы заинтересуются.


     

  • 1.13, Аноним84701 (?), 11:56, 20/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Атака успешно продемонстрирована на системе с Linux и процессором Intel Haswell для
    > предсказания рандомизированных адресов как для ядра, так и для пространства пользователя.

    Правда, не все так страшно:
    из pdf-ки

    -----
    Specifcally, we demonstrate how a user-level spy process can gain information
    about the position of code blocks in the address space of either
    ...
    To create a BTB-based side-channel, three conditions must be satisfed.
    First, one application has to fill a BTB entry by
    executing a branch instruction. Second, the execution time
    of another application running on the same core must be
    affected by the state of the BTB. This condition is satisf
    ed when both applications use the same BTB entry,
    ...
    We assume that the spy can achieve virtual core co-
    residency with the victim process.
    ------

    Т.е. да, предсказать можно, но для этого нужно  "скомпилять и запустить"  этого "предсказателя". А если уж кто-то сумел _уже_ запустить код на вашей машинке ...
    Разве что может быть интересно (с практической точки зрения) для какого-нибудь privilege escalation.

     
     
  • 2.14, Владимир (??), 12:37, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Так сама концепция ASLR для этого и создана - чтобы всякие запускающиеся вирусы не смогли нужных функций найти. То есть, если предположить, что никто нехороший код на вашей машине не запустит - то ASLR по сути бесполезна, и вредна даже немного. А если все-таки запустит - то она вроде как немного осложнит жизнь нападающему (а судя по тексту - уже не осложнит)
     
     
  • 3.37, Аноним84701 (?), 20:12, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >  А если все-таки запустит - то она вроде как немного осложнит жизнь нападающему (а судя по тексту - уже не осложнит)

    Если совсем коротко, то для "обхода" АSLR требуется сначала запустить "первопроходца", который сможет собрать нужные данные для этого самого обхода.
    При этом никаких "поблажек" у этого самого "собирателя/предсказателя" в смысле обхода АSLR нет.
    Т.е. жизнь нападающему таки (возможно, все зависит от конкретного спосба атаки) будет осложнена, как задумывалась. Но, если "злобный код" все же "пройдет", то сможет собрать достаточно данных, чтобы запустить что-то "в обход" АSLR.
    Поэтому я и считаю, что все не так страшно, как тут рисуют некоторые анонимы ;)


     
  • 2.34, curious (?), 19:27, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Where's the third condition?
     

  • 1.15, Аноним (-), 13:17, 20/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очень нагло применять понятие случайность к устройствам, которые обрабатывают данные. Особенно когда данные должны быть обработаны и возвращены обратно, естественно их путь можно проследить от начала и до конца. Даже генератор случайных чисел в какой то момент начнет выдавать повтор, догадайтесь почему?
     
     
  • 2.16, Michael Shigorin (ok), 13:23, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Даже генератор случайных чисел в какой то момент начнет выдавать повтор

    Случайных -- нет.  Псевдослучайных из множества фиксированного размера -- может.

    PS: </зануда>

     
     
  • 3.20, Аноним (-), 14:07, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> Даже генератор случайных чисел в какой то момент начнет выдавать повтор
    > Случайных -- нет.  Псевдослучайных из множества фиксированного размера -- может.
    > PS: </зануда>

    Зануды спасут Интернет! Во всяком случае, больше надеяться особо всё равно не на кого...

     
  • 3.25, Аноним (-), 16:11, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    О, я не зануда я реалист, многие вещи называют тем чем они не являются. Любой генератор основан на алгоритме, который изначально имеет в себе определенную предсказуемость. У вас же нет генератора основанного на не предсказуемых процессах?
     
     
  • 4.41, Аноним (-), 08:26, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    оцифровка теплового шума?
     
  • 4.45, Аноним (-), 16:04, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Существуют генераторы случайных чисел, основанные на детекторах радиоактивного излучения. Их предсказанние на несколько порядков сложнее. :)
     
     
  • 5.50, Аноним (-), 10:43, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Существуют генераторы случайных чисел, основанные на детекторах радиоактивного излучения.
    > Их предсказанние на несколько порядков сложнее. :)

    Просто пока ещё не хакнули алгоритм.

     
     
  • 6.51, Andrey Mitrofanov (?), 13:22, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> Существуют генераторы случайных чисел, основанные на детекторах радиоактивного излучения.
    >> Их предсказанние на несколько порядков сложнее. :)

    На несколько *десятков* порядков же!

    > Просто пока ещё не хакнули алгоритм.

    Как это не. Берём начальное состояние всех атомов вселенной, загружаем в супер-комп-модельлёр  -- Предсказатель готов. Делов-то!  //Да, мвшина с лора больше не молодёжна.

     
  • 3.26, Аноним (-), 16:21, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Случайность невозможно контролировать, это процесс не имеющий алгоритма и ограничений. А компьютер это устройство где одно машинное слово, имеет границы, этого достаточно чтобы исключить любую случайность

    P.S. Михаил, вы меня разочаровали, ранее я был о вас более высокого мнения

     
     
  • 4.27, Michael Shigorin (ok), 16:47, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Случайность невозможно контролировать, это процесс не имеющий алгоритма и ограничений.

    У меня за последние лет двадцать сложилось убеждение, что случайности как таковой не бывает.  Но это уже другая тема...

    >> из множества фиксированного размера
    > А компьютер это устройство где одно машинное слово, имеет границы,
    > этого достаточно чтобы исключить любую случайность

    К чему и было уточнение.  Только дело не именно в машинном слове (хотя и при целых числах произвольной точности остаётся "потолок" в виде объёма ОЗУ, в принципе и диска, но это уже непрактично вообще).

    > P.S. Михаил, вы меня разочаровали, ранее я был о вас более высокого мнения

    А я и не кисейная барышня, чтоб кого-либо очаровывать.  Кто хочет -- прочтёт уже написанное и, может, извлечёт для себя что-то полезное.  Кто знает лучше -- поправит, тоже спасибо.  Кому что показалось -- вообще без разницы.

     
     
  • 5.30, Аноним (-), 17:25, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Михаил, а когда Linux научится отличать монитор по разъёму (DVI от HDMI)? :)
     
     
  • 6.31, Michael Shigorin (ok), 17:50, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Михаил, а когда Linux научится отличать монитор по разъёму (DVI от HDMI)? :)

    [CODE]MONOCUB-10-12 ~> xrandr | grep -v ^' '
    Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
    HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
    DVI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
    VGA-0 disconnected (normal left inverted right x axis y axis)[/CODE]

    Хорошо бы понять, а в чём вопрос-то -- ядерному KMS тоже можно много чего указать через video=

     
     
  • 7.46, Аноним (-), 18:23, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вопрос в выборе главного экрана. Система не может никак выбрать куда картинку вываливать, на монитор или телевизор, мечется в растерянности.
     
  • 4.28, Яков (?), 16:49, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Случайность невозможно контролировать, это процесс не имеющий алгоритма и ограничений.
    > А компьютер это устройство где одно машинное слово, имеет границы, этого
    > достаточно чтобы исключить любую случайность

    А вы, мил человек, случаем не попутали повтор последовательности и повтор значения? Какое отношение конечность множества, из которого производится выборка, имеет к случайности этой самой выборки? Что, последовательность натуральных чисел (бесконечная) случайна?

    Речь у Михаила о _периодичности_, и, да, любой генератор _псевдослучайных чисел имеет период, который зависит от алгоритма и размера внутреннего состояния (и поэтому - сюрприз! - может быть больше размера значения, выдаваемого генератором!). А есть и вполне себе аппаратные генераторы вполне себе случайных чисел - теплового шума никто пока не отменял.

    > P.S. Михаил, вы меня разочаровали, ранее я был о вас более высокого мнения

    Почаще посещайте лекции, реже будете разочаровываться.

     
     
  • 5.29, Michael Shigorin (ok), 17:14, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Речь у Михаила о _периодичности_

    Да, именно так я "начнет выдавать повтор" в #15 и понял.  Но поскольку для второго варианта (повтор единичного значения) тоже есть существенный фактор в виде размера множества возможных значений, то упомянул и его.

    PS: ...и зря, похоже -- запутал только человека.

     
  • 5.32, Аноним (-), 18:21, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вы уважаемые путаете понятия, если выпадение случайных чисел можно предсказать это уже не случайное выпадение, диапазон выпадений, это другой момент, но диапазон тоже влияет на предсказуемость выпадания числа, так как вы заранее знаете диапазон возможных значений. Вы очевидно не можете принять того факта что когда есть алгоритм работы, случайности быть не может. Компьютер стремится к точности, а точность исключает случайность.

    В данной новости очень хорошо проиллюстрировано, как знание диапазона может влиять на предсказуемость, поведения

     
     
  • 6.33, Michael Shigorin (ok), 19:06, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы очевидно не можете принять того факта что когда есть алгоритм работы,
    > случайности быть не может.

    Если бы Вы когда-либо реализовывали алгоритмы, то помнили бы про входные данные.

    > Компьютер стремится к точности, а точность исключает случайность.

    Нет.

    Если хотите узнать для себя много нового по перекликающейся тематике -- покопайте проблематику параллельных вычислений не в плане HPC, а в плане HA, как вот у Stratus (см., например, патент US6928583).  Вовсе не всё вот так на блюдечке с голубой каёмочкой, "потому что это кантупер".

    > но диапазон тоже влияет на предсказуемость выпадания числа

    Но можете, конечно, продолжать считать нас путающими понятия (например, "влиять" и "определять", "предопределённый" и "предсказуемый")...

    PS: и что компьютер к чему-то "стремится" -- тоже можете полагать.

     
     
  • 7.35, Аноним (-), 19:43, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если бы компьютер не стремился к точности, он бы не делал того что вы от него хотите. Продолжайте думать что случайность можно описать алгоритмом
     
  • 2.42, Ordu (ok), 10:32, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Try it. Прежде чем говорить, попробуй. Для начала, для обретения общей теоретической базы, я бы рекомендовал почитать Д.Кнута -- он посвятил довольно много времени разбору вопроса псевдослучайности и её практических и теоретических отличий от случайности. И не надо рассуждать -- попробуй. Напиши, например, бота для карточной игры, который будет знать все карты, потому что для него псевдослучайные числа не случайны. Только не надо рассуждать о том, как этого бота можно написать -- эти рассуждения может проделать любой школьник, -- ты возьми и напиши, потому что при наличии мозгов, способных к обучению, в процессе написания, можно просветлиться и понять, что случайные числа существуют. Даже если все эти общетеоретические рассуждения о неслучайности случайности -- истина, всё равно случайные числа существуют. Теория и практика -- разные вещи.

    > Даже генератор случайных чисел в какой то момент начнет выдавать повтор, догадайтесь почему?

    Ну-ка расскажи-ка нам об этом повторе. Особенно если речь идёт об ASLR в ядре, которое собирает энтропию из очень разных источников. Тут я могу ещё порекомендовать почитать что-нибудь на тему теории хаоса, и подумать о практической возможности устранимости неопределённости в процессах, описываемых этой теорией. Не надо смотреть на теорию в отрыве от практики. Теория -- это круто, но не подкреплённая практикой она приводит к рассуждениям типа твоих.

     

  • 1.36, анонимм (?), 19:48, 20/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А можно пояснить, это атака специфична только для Haswell, или и для более новых поколений процессоров?
     
     
  • 2.38, Аноним (-), 20:59, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > А можно пояснить, это атака специфична только для Haswell, или и для
    > более новых поколений процессоров?

    На данный момент да

     
     
  • 3.39, Андрей (??), 22:44, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Эх, только вот пробегало, что появились уже серийные экземпляры Kaby Lake "нового" 7-го поколения. (Но пока только для ноутов.) А тут такой облом.
     

  • 1.43, Onanon (?), 12:04, 21/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Интересно, а ведро с grsec/pax-патчами тоже уязвимо?
     
     
  • 2.44, Ващенаглухо (ok), 12:58, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    тоже интересно, но вот paxtest blackhat показывает далеко не 9 бит рандомизируется
    Интересный документ по теме https://www.blackhat.com/docs/asia-16/materials/asia-16-Marco-Gisbert-Exploiti
     
     
  • 3.47, Onanon (?), 20:09, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > тоже интересно, но вот paxtest blackhat показывает далеко не 9 бит рандомизируется
    > Интересный документ по теме https://www.blackhat.com/docs/asia-16/materials/asia-16-Marco-Gisbert-Exploiti

    Интересное чтиво, спасибо.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру