Как стать автором
Обновить
67
0
Aleksey R. @kITerE

system programming

Отправить сообщение

Игры с презентации Sony PlayStation 5

Время на прочтение2 мин
Количество просмотров18K

Под катом представлена сводная таблица по играм, представленным на презентации Sony PlayStation 5 — The Future Of Gaming. Таблица пытается ответить на вопросы:


  • какие игры стоит ждать на старте продаж новой консоли (в конце 2020 года)
  • какие игры подвезут в первые годы эксплуатации (2021, 2022)
  • какие из игр будут эксклюзивными


Полный плейлист с презентации

Читать дальше →
Всего голосов 8: ↑6 и ↓2+8
Комментарии18

Введение в аппаратную защиту стека (Windows 10)

Время на прочтение6 мин
Количество просмотров6K

Под катом представлен перевод статьи "Understanding Hardware-enforced Stack Protection".


Авторы: Kernel protection team — Jin Lin, Jason Lin, Niraj Majmudar, Greg Colombo


Это первая (обзорная) публикация задуманной серии из двух переводов о внедрении Intel'овской Control-flow Enforcement Technology (CET) в Windows 10.

Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии5

Краткий обзор Memory Tagging Extension (Armv8.5-A)

Время на прочтение4 мин
Количество просмотров3.6K

В этой публикации представлен перевод вступительной части документа (whitepaper) о новом расширении Armv8.5-A: Memory Tagging Extension (MTE) от компании ARM. MTE стремится повысить безопасность кода, написанного на небезопасных языках, не требуя изменения исходного кода, а в некоторых случаях, и не требуя перекомпиляции. Простое развертывание механизмов обнаружения и предотвращения последствий нарушений безопасности памяти могут предотвратить эксплуатацию большого класса уязвимостей.


Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Pinebook Pro: личные впечатления от использования ноутбука

Время на прочтение6 мин
Количество просмотров36K

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


Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии42

Pinebook Pro: уже не Chromebook

Время на прочтение6 мин
Количество просмотров36K

Иногда создается впечатление, что Chromebook'и в основном покупают для того, что бы поставить на них Linux. Навскидку статьи на хабре: одная, вторая, третья, четвертая, ...


Поэтому компания PINE Microsystems Inc. и сообщество PINE64 решили, что рынку помимо Chromebook-полуфабрикатов не хватает Pinebook Pro, который сразу создан в расчете на использование Linux/*BSD в качестве операционной системы.


Читать дальше →
Всего голосов 28: ↑26 и ↓2+37
Комментарии52

Windows Notification Facility: cамая недокументированная поверхность атаки

Время на прочтение18 мин
Количество просмотров6.5K

Под катом представлен перевод презентации "The Windows Notification Facility: The Most Undocumented Kernel Attack Surface Yet", представленной Alex Ionescu и Gabrielle Viala на конференции BlackHat 2018.


Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии0

Windows Subsystem for Linux (WSL) версии 2: как это будет? (FAQ)

Время на прочтение3 мин
Количество просмотров35K

Под катом расположен перевод опубликованного FAQ'а о деталях будущей WSL второй версии (автор — Craig Loewen).





Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии33

Как PROCESS_DUP_HANDLE превращается в PROCESS_ALL_ACCESS

Время на прочтение4 мин
Количество просмотров4.7K

В MSDN'овской статье Process Security and Access Rights есть интересная ремарка:


… if process A has a handle to process B with PROCESS_DUP_HANDLE access, it can duplicate the pseudo handle for process B. This creates a handle that has maximum access to process B.

Если вольно перевести это на русский, то тут говорится, что имея описатель на процесс с правом доступа PROCESS_DUP_HANDLE мы можем, используя функцию DuplicateHandle(...), получить описатель с максимально разрешенными масками доступа на этот процесс.


Пример с пояснениями
Всего голосов 18: ↑17 и ↓1+16
Комментарии13

Синтетические символы и модули (WinDbg/DbgEng)

Время на прочтение8 мин
Количество просмотров1.4K

В этой публикации речь пойдет о синтетических модулях и символах отладочного движка Windows (debugger engine). То есть о сущностях, которые можно искусственно добавить в отладчик для раскраски адресов памяти.


Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии3

[The Old New Thing] Могу ли я использовать свой стек как угодно?

Время на прочтение3 мин
Количество просмотров4.6K

В Windows стек растет от больших адресов к меньшим. Иногда это определяется архитектурно, а иногда это просто принятое соглашение. Значение указателя стека (регистр процессора), является указателем на значение в верхней части стека. А значения, расположенные глубже по стеку, соответственно, находятся по большим адресам. Но что происходит с данными, которые расположены по адресам, меньшим, чем указатель стека?



Соглашения для некоторых (но не для всех) архитектур определяют красную зону, которая является областью памяти под указателем стека, но которая по-прежнему валидна для использования приложением.

Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии24

Изюминка Zircon: vDSO (virtual Dynamic Shared Object)

Время на прочтение6 мин
Количество просмотров11K

Zircon? Что это?


В августе 2016 года, без каких-либо официальных объявлений со стороны Google, были обнаружены исходники новой операционной системы Fuchsia. Эта ОС основана на микроядре под названием Zircon, которое в свою очередь основано на LK (Little Kernel).


Fuchsia is not Linux

Примечания переводчика

Я не настоящий сварщик являюсь разработчиком и/или экспертом Zircon. Текст под катом является компиляцией частичных переводов: официальной документации Zircon vDSO и статьи Admiring the Zircon Part 1: Understanding Minimal Process Creation от @depletionmode, куда было добавлено немного отсебятины (которая убрана под спойлеры). Поэтому конструктивные предложения по улучшению статьи, как и всегда, приветствуются.


О чем пойдет речь в статье?


vDSO в Zircon является единственным средством доступа к системным вызовам (syscalls).


А разве нельзя из нашего кода напрямую вызвать инструкции процессора SYSENTER/SYSCALL? Нет, эти инструкции процессора не являются частью системного ABI. Пользовательскому коду запрещено напрямую выполнять такие инструкции.


Желающих узнать больше деталей о таком архитектурном шаге приглашаю под кат.


Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии63

SandboxEscaper/PoC-LPE: что внутри?

Время на прочтение3 мин
Количество просмотров8K

На хабре уже есть новость об этой уязвимости, но, к сожалению, без технических деталей. Предлагаю заглянуть внутрь опубликованного архива (автор — SandboxEscaper).

Под катом расположен перевод документа-описания, находящегося в архиве.
Всего голосов 22: ↑22 и ↓0+22
Комментарии15

Раскрытие памяти (Memory Disclosure) ядра в современных ОС

Время на прочтение27 мин
Количество просмотров13K

Под катом расположен перевод вступительной части документа Detecting Kernel Memory Disclosure with x86 Emulation and Taint Tracking (Статья Project Zero) от Mateusz Jurczyk.


В переведенной части документа:


  • специфика языка программирования C (в рамках проблемы раскрытия памяти)
  • специфика работы ядер ОС Windows и Linux (в рамках проблемы раскрытия памяти)
  • значимость раскрытия памяти ядра и влияние на безопасность ОС
  • существующие методы и техники обнаружения и противодействия раскрытия памяти ядра

Хотя в документе пристально рассматриваются механизмы общения привилегированного ядра ОС с пользовательскими приложениями, суть проблемы можно обощить для любой передачи данных между различными доменами безопасности: гипервизор — гостевая машина, привилегированный системный сервис (демон) — GUI приложение, сетевые клиент — сервер и т.д.


КДПВ

Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии15

Механизм Arbitrary Code Guard (ACG) на примере Microsoft Edge

Время на прочтение8 мин
Количество просмотров3.5K
Disclaimer
  • Эта публикация является переводом части документа «Bypassing Mitigations by Attacking JIT Server in Microsoft Edge» от Ivan Fratric (Google Project Zero). Переведена та часть, в которой находится описание механизма ACG и его применение в браузере Microsoft Edge. За рамками этого перевода осталось более подробное описание внутренностей JIT в Chakra (Microsoft Edge JavaScript Engine) и векторов атаки на него (с описанием найденных уязвимостей, исправленных к моменту публикации документа).
  • По роду своей профессиональной деятельности я не являюсь ни техническим писателем, ни (тем более) переводчиком. Но содержимое документа мне показалось очень интересным в плане изучения внутренностей Windows. Соответственно, я открыт к конструктивным замечаниям и предложениям по улучшению перевода.


С выпуском Windows 10 Creators Update Microsoft начала использовать новый механизм безопасности в Microsoft Edge: Arbitrary Code Guard (ACG). Когда ACG применяется к процессу (в частности в процессу Microsoft Edge), в целевом процессе становится невозможным выделить новую исполняемую память или изменить существующую исполняемую память. Соответственно, исполнение произвольного кода для злоумышленника становится более сложной задачей.

Для достижения более высокой производительности современные браузеры используют JIT компиляцию (Just-In-Time) JavaScript-кода, но такой подход не совместим с ACG. Поэтому в Microsoft Edge был реализован следующий подход: JIT был выделен в отдельный процесс, относительно процесса содержимого (Content Process). Процесс содержимого посылает JIT процессу байт-код JavaScript, а JIT процесс компилирует его в машинный код и проецирует этот машинный код обратно в процесс содержимого.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии0

Собственные данные в системном дампе падения Windows

Время на прочтение7 мин
Количество просмотров9.3K

По роду своей деятельности (Windows Kernel) мне регулярно приходится разбирать дампы BSOD'ов. Не единичны случаи, когда у конечного пользователя успешно пишутся только Mini-дампы, в которых сохраняется только значение регистров процессора и стек падения. А другого средства отладки клиентской машины просто нет. Но что делать, если в стеке нет нашего драйвера, а заказчик настаивает, что падения начались после установки продукта и закончились после отключения драйвера этого продукта? В моем случае хорошим решением оказалось ведение небольшого журнала последних событий в циклическом буфере. Осталось только сохранить этот циклический буфер в дампе.


Под катом я расскажу, как из своего драйвера добавить в дамп данные. А затем извлечь их, используя pykd.
pykd

Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии3

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность