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-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor