The OpenNET Project / Index page

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

17.02.2017 22:11  Новая техника обхода защиты ASLR, реализуемая на JavaScript

Группа исследователей из Амстердамского свободного университета разработала (pdf 1, pdf 2) новую технику обхода механизма защиты ASLR (Address space layout randomization), позволяющую определить раскладку памяти процесса. Особенностью предложенного метода является то, что он может быть реализован на языке JavaScript, что значительно упрощает обход дополнительных уровней защиты при эксплуатации уязвимостей в web-браузерах.

По заявлению исследователей предложенный метод универсален и надёжно работает в Chrome и Firefox как минимум на 22 микроархитектурах, включая процессоры Intel Xeon, Atom, Core, Celeron (CVE-2017-5925), AMD (CVE-2017-5926), Allwinner, Samsung Exynos, NVIDIA Tegra (CVE-2017-5927 для ARM) и др. Если в обычных условиях для успешной эксплуатации новой уязвимости в Firefox требуется наличие ещё одной уязвимости, которая позволит получить сведения о ASLR-смещениях в адресном пространстве процесса, то предложенная техника позволяет выявить эти смещения путём выполнения скрипта на языке JavaScript.

Метод является разновидностью атак по сторонним каналам (side-channel attacks) и основан на косвенном определении адресов к которым ранее были обращения при обходе таблиц страниц памяти процессорным блоком MMU (Memory Management Unit) в ходе трансляции адресов виртуальной памяти в адреса физической памяти. Так как кэш CPU общий и в нём отражается как активность приложения, так и активность блока MMU, то путём оценки различий во времени доступа к данным до и после сброса кэша (разновидность атаки "EVICT+TIME") можно с высокой вероятностью подобрать адрес, по которому было обращение.

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

На GitHub размещена эталонная реализация метода на языке Си. Вариант на JavaScript не опубликован с целью предотвращения появления вредоносной активности до обеспечения защиты в браузерах. Обходным путём защиты в браузерах может стать урезание доступа к высокоточному таймеру. В качестве противодействия некоторым видам атак производители браузеров ранее уже ограничили точность вызова performance.now(), но авторы исследования обошли данное ограничение через использование двух таймеров в разных потоках, совокупной точности которых оказалось достаточно.

Для полноценной защиты производителям браузеров рекомендовано переработать метод хранения JavaScript-объектов в памяти, исключив их последовательное размещение в виртуальной памяти при генерации кода JIT-компилятором. В качестве временной меры рекомендовано внести незначительные случайные смещения в работу каждого экземпляра высокоточного таймера и прекратить совместное использование значений таймера в разных потоках JavaScript. Разработчикам ОС для повышения стойкости ASLR к атаке рекомендовано увеличить уровень энтропии ASLR с 24-28 бит до 35 бит.



  1. Главная ссылка к новости (https://arstechnica.com/securi...)
  2. OpenNews: Проект grsecurity опубликовал реализацию механизма защиты RAP для ядра Linux
  3. OpenNews: Выявлен метод обхода защиты ASLR на процессорах Intel
  4. OpenNews: Атака через JavaScript по определению содержимого L3-кэша CPU
  5. OpenNews: Разработан метод атаки на уязвимость в DRAM-памяти с использованием JavaScript
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: aslr, security, javascript
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.1, LinuxID, 22:36, 17/02/2017 [ответить] [смотреть все]    [к модератору]
  • –2 +/
    И чем это грозит?
     
     
  • 2.2, Аноним, 22:40, 17/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]
  • +2 +/
    https://ru.wikipedia.org/wiki/ASLR
     
  • 2.3, Аноним, 23:13, 17/02/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]
  • +/
    Грозит большими проблемами с безопасностью из-за качества кода Если рандомизаци... весь текст скрыт [показать] [показать ветку]
     
  • 2.10, Crazy Alex, 00:09, 18/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Если нет дыр - ничем
     
     
  • 3.19, Аноним, 07:41, 18/02/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    >нет дыр
    >делает вид, что программист

    Ясно.

     
     
  • 4.42, Crazy Alex, 15:09, 19/02/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Вот как раз программисту понятно, что если в системе создавать дыры вроде браузе... весь текст скрыт [показать]
     
  • 2.44, Аноним, 07:01, 20/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Дает возможность использовать другие дыры
     
  • 1.4, An, 23:32, 17/02/2017 [ответить] [смотреть все]    [к модератору]  
  • +/
    Ну дела
     
  • 1.5, Аноним, 23:35, 17/02/2017 [ответить] [смотреть все]     [к модератору]  
  • –13 +/
    я же говорил яваскрипт не нужен вспомнити npm left pad А еще вспомнити 0 1 0 ... весь текст скрыт [показать]
     
     
  • 2.16, анон, 03:28, 18/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +8 +/
    > А еще вспомнити 0.1 + 0.2 = .300000000000004

    Так и запишем, что анон не в курсе про IEEE 754

     
     
  • 3.28, saasd, 15:04, 18/02/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    > Nan =! Nan

    Еще про этот пункт забыли упомянуть в тот-же стандарт.

     
  • 2.23, Аноним, 13:12, 18/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    Тебе ещё не надоело в каждую тему про JS отписываться? Слишком толсто
     
  • 2.24, Аноним, 14:19, 18/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +4 +/
    Ну ещё про грамматику нужно вспонить.
     
     
  • 3.47, Аноним, 10:20, 20/02/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Вспонить от слова пони?
     
  • 2.35, Аноним, 20:16, 18/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    > вспомнит[b]и[/b]

    Ты должен мне новые глаза.

     
  • 1.7, Аноним, 00:00, 18/02/2017 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    JS добрался и до кэша процессора? Мир перевернулся.
     
  • 1.9, Не удивительно, 00:04, 18/02/2017 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    > увеличить уровень энтропии ASLR с 24-28 бит до 35 бит

    Чем это поможет? Только время увеличить и задержки.

     
  • 1.11, Crazy Alex, 00:10, 18/02/2017 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    Вот интерсно - на кой JS вообще доступ к высокоточному таймру?
     
     
  • 2.12, Аноним, 00:19, 18/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • –2 +/
    > Вот интерсно - на кой JS вообще доступ к высокоточному таймру?

    time.ru?

     
  • 2.27, qqq, 14:59, 18/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    для игорей. Ну и node.js хочет сто пудов
     
     
  • 3.29, Crazy Alex, 16:58, 18/02/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    хм, судя по стековерфлоу в js во всяком случае, в браузерах таймер миллисекунд... весь текст скрыт [показать]
     
  • 3.36, НяшМяш, 23:30, 18/02/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Для игорей просто просится requestAnimationFrame
     
  • 1.18, linuxquestions.ru, 06:46, 18/02/2017 [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    Получается, что любой браузер (и не только) потенциально уязвим и проблема лежит в самом принципе работы процессора и ОЗУ.
    Выходит даже пресловутый Servo не сможет помочь в сложившейся ситуации.
     
     
  • 2.21, Аноним, 11:13, 18/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +3 +/
    У пресловутого серво, внезапно, тот же жаваскрипт движок что в лисе.
     
  • 2.25, Анонимный Алкоголик, 14:22, 18/02/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    Нет Получается в данном случае только то, что дырявый браузер остаётся дырой не... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.33, linuxquestions.ru, 19:15, 18/02/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Мне кажется это логичным Если в коде самого браузера есть дыры, то тут ничего н... весь текст скрыт [показать]
     
     
  • 4.40, Crazy Alex, 14:57, 19/02/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Еадо минимизировать выполнение стороннего кода без запроса Гонять данные, а про... весь текст скрыт [показать]
     
  • 1.20, Черный Властелин, 10:26, 18/02/2017 [ответить] [смотреть все]    [к модератору]  
  • +/
    Продолжая мысль rust ненужен, js - среда исполнения эксплойтов
     
     
  • 2.38, Аноним, 00:05, 19/02/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Новость не читай, сразу комментируй ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.39, Аноним, 11:41, 19/02/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Вот только Сишный код надо как-то предварительно доставить на компьютер пользова... весь текст скрыт [показать]
     
     
  • 4.48, Аноним, 23:17, 20/02/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А толку Без актуальной уязвимости, находясь в песочнице браузера, данные из пам... весь текст скрыт [показать]
     
  • 2.41, Crazy Alex, 15:02, 19/02/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Ну это, в общем, и так не первый год понятно - достаточно только посмотреть на т... весь текст скрыт [показать] [показать ветку]
     
  • 1.22, Аноним, 12:50, 18/02/2017 [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Когда-то Крис Касперски смог хакнуть интеловский процессор кодом на жабоскрипте ... весь текст скрыт [показать]
     
     
  • 2.30, Crazy Alex, 17:00, 18/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    там, вроде, тёмная история - то ли смог, то ли сбрехал...
     
  • 1.34, Не удивительно, 19:59, 18/02/2017 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    SELinux,
    ASLR,

    Скрытые АНБ разработки радует глаз.

     
  • 1.37, НяшМяш, 23:32, 18/02/2017 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    "Взлом через кэш процессора на JavaScript через браузер! Скоро форт Нокс ломанут пластмассовым совочком и игрушечным экскаватором из песочницы в Москве." (с) хабра.
     
  • 1.43, Аноним, 18:53, 19/02/2017 [ответить] [смотреть все]     [к модератору]  
  • +/
    Коммент к видео It is sad that every so many so-called researchers need to po... весь текст скрыт [показать]
     
     
  • 2.51, антоний, 23:41, 21/02/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    топ кек, никому и не нужны full administrative права доступа Всего то украдут в... весь текст скрыт [показать] [показать ветку]
     
  • 1.46, vitektm, 09:41, 20/02/2017 [ответить] [смотреть все]    [к модератору]  
  • +/
    Все более актуальным становится отключение js по дефолту.
    (с включением на доверенных сайтах)
     
     
  • 2.49, Аноним, 23:19, 20/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    А толку? Я смотрю, никто в текст новости не вчитывается...
     
  • 1.50, Аноним, 10:18, 21/02/2017 [ответить] [смотреть все]    [к модератору]  
  • +/
    Ребята суть не в JS, и даже не в C, суть в голимости ASLR
     
     
  • 2.52, Led, 00:35, 22/02/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    > Ребята суть не в JS, и даже не в C, суть в
    > голимости ASLR

    Не, ребята в памперсы суть.

     

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


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