Pull to refresh
67
0
Aleksey R. @kITerE

system programming

Send message

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

Reading time 2 min
Views 17K

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


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


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

Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 18

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

Reading time 6 min
Views 5.8K

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


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


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

Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Comments 5

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

Reading time 4 min
Views 3.4K

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


Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 1

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

Reading time 6 min
Views 36K

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


Читать дальше →
Total votes 30: ↑30 and ↓0 +30
Comments 42

Pinebook Pro: уже не Chromebook

Reading time 6 min
Views 35K

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


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


Читать дальше →
Total votes 41: ↑39 and ↓2 +37
Comments 52

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

Reading time 18 min
Views 6.4K

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


Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 0

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

Reading time 3 min
Views 35K

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





Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Comments 33

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

Reading time 4 min
Views 4.6K

В 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(...), получить описатель с максимально разрешенными масками доступа на этот процесс.


Пример с пояснениями
Total votes 18: ↑17 and ↓1 +16
Comments 13

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

Reading time 8 min
Views 1.4K

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


Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Comments 3

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

Reading time 3 min
Views 4.6K

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



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

Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Comments 24

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

Reading time 6 min
Views 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. Пользовательскому коду запрещено напрямую выполнять такие инструкции.


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


Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 63

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

Reading time 3 min
Views 7.9K

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

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

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

Reading time 27 min
Views 13K

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


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


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

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


КДПВ

Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Comments 15

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

Reading time 8 min
Views 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 процесс компилирует его в машинный код и проецирует этот машинный код обратно в процесс содержимого.
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 0

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

Reading time 7 min
Views 9.3K

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


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

Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Comments 3

Information

Rating
Does not participate
Registered
Activity