Представлен PoC атаки на страничный кэш в Windows и Linux

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 9 Jan 2019.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,534
    Likes Received:
    3,265
    Reputations:
    693
    [​IMG]

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

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

    Эксперты использовали системный запрос mincore в Linux и QueryWorkingSetEx в Windows для проверки состояния страниц в RAM. Далее специалисты применили метод вытеснения из кэша и проанализировали пакеты, выгружаемые из оперативной памяти на диск, а также возникающие при этом ошибки. На основании полученных сведений ученые научились определять, с какими данными работает другое приложение.

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

    Команда специалистов передала результаты исследования разработчикам Windows и Linux, а также авторам утилиты phpMyFAQ, которая использовалась для демонстрации расшифровки паролей. По словам ученых, Microsoft включила патч, исправляющий недостаток, в тестовый релиз Windows 10 Insider Preview Build 18305, однако дата появления общедоступной заплатки пока неизвестна. Для исправления ситуации необходимо использовать опцию PROCESS_QUERY_INFORMATION функции QueryWorkingSetEx вместо PROCESS_QUERY_LIMITED_INFORMATION.

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

    Наиболее опасные атаки по сторонним каналам связаны с уязвимостями Spectre и Meltdown, свойственными современным процессорам. В 2018 году исследователи описали несколько вариантов подобных нападений, включая манипуляции с буфером в стеке возвратов. Метод, получивший название SpectreRSB, нечувствителен к обновлению микрокода Intel и программным заплаткам Google, разработанным для снижения вероятности атаки.

     
    Turanchocks_, seostock and BabaDook like this.
  2. Gorbachev

    Gorbachev Member

    Joined:
    23 Mar 2017
    Messages:
    184
    Likes Received:
    91
    Reputations:
    42
    Я видимо что то упустил. А когда команда исследователей успела получить ученую степень в области реверс инженеринга?
    А другие направления могут ученую степень получить? Хочу стать доктором по SQL иньекциям.
     
  3. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,534
    Likes Received:
    3,265
    Reputations:
    693
    Атака по определению состояния памяти процессов при помощи страничного кэша

    Группа исследователей безопасности, из которых несколько участвовали в выявлении первых уязвимостей Meltdown и Spectre, разработали новый вид атаки по сторонним каналам, проводимой на основе анализа содержимого страничного кэша (page cache), в котором содержится информация, полученная в результате обращения операционной системы к дискам, SSD-накопителям и другим блочным устройствам. В отличие от атак Spectre, новая уязвимость не вызвана аппаратными проблемами, а касается только программных реализаций страничного кэша и проявляется в Linux (CVE-2019-5489), Windows и, вероятно, во многих других операционных системах. Для ядра Linux исправление уже доступно в виде патча. В Windows 10 проблема устранена в тестовой сборке (Insider Preview Build) 18305.

    Через манипуляции с системными вызовами mincore (Linux) и QueryWorkingSetEx (Windows), позволяющими определить наличие страницы памяти в системном страничном кэше, локальный непривилегированный атакующий может отслеживать некоторые обращения других процессов к памяти. Атака позволяет отслеживать доступ на уровне 4 килобайтовых блоков с временным разрешением в 2 микросекунды в Linux (6.7 измерений в секунду) и 446 наносекунд в Windows (223 измерений в секунду).

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

    [​IMG]
    Страницы в кэше могут быть отражены в области виртуальной памяти, одновременно используемые несколькими процессами (например, в физической памяти может присутствовать только одна копия разделяемой библиотеки, которая отражена в виртуальную память разных приложений). В процессе вытеснения информации из страничного кэша и заполнении его при загрузке типовых данных с диска, можно анализировать состояние аналогичных страниц в виртуальной памяти других приложений. Системные вызовы mincore и QueryWorkingSetEx существенно упрощают проведение атаки, так как сразу позволяют определить какие страницы памяти из заданного диапазона адресов присутствуют в страничном кэше.

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

    Среди продемонстрированных исследователями практических применений атаки на локальную систему упоминается создание канала передачи данных из изолированных sandbox-окружений, воссоздание выводимых на экран элементов интерфейса (например, диалогов аутентификации), определение задержек при нажатии клавиш и восстановление автоматически генерируемых временных паролей (продемонстрировано на примере приложения phpMyFAQ). Более того, предложен сценарий гипотетической удалённой атаки, позволяющей локально запущенному вредоносному процессу скрыто передать данные вовне через канал связи, организованный при помощи манипуляцией со страничным кэшем (принимающая сторона определяет данные через измерение задержек при отдаче http-сервером Apache частей публично доступных файлов).

     
    seostock likes this.
Loading...