Способы защиты памяти ос windows

  • оперативная память

Атаки на память

Что можно украсть в атаках на память и при чем тут hiberfil.sys?

Защита информации в памяти от перехвата и кражи

Недавно в популярном менеджере паролей KeePass устранили дефект — мастер-пароль, защищающий все остальные пароли в зашифрованной базе, можно было извлечь из памяти компьютера, где он был доступен в открытом виде. Таким же образом из памяти можно извлекать фрагменты другой важной информации, например тексты недавней переписки или цифры из корпоративных баз данных. Разработчики KeePass быстро нашли довольно оригинальное решение проблемы, но в большинстве других приложений пароли в памяти хранятся в открытом виде, поэтому она всегда является «слабым местом» в общей системе безопасности.

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

Как можно изучить память компьютера?

Участки оперативной памяти, используемые разными приложениями, в значительной мере изолированы друг от друга средствами ОС и гипервизора. Поэтому просто вдруг прочитать фрагмент памяти, в котором работает постороннее приложение, не получится. Впрочем, на это способны процессы с привилегиями ядра (system в Windows, root в *nix). А способов повышения привилегий до нужного уровня существует немало — чаще всего для этого используются различные уязвимости в ОС или драйверах устройств.

Еще один вариант того, как можно добраться до памяти работающего компьютера, — DMA-атаки. Они основаны на том, что высокоскоростные интерфейсы (USB 4.0, Thunderbolt, Firewire и другие) ради ускорения процессов ввода-вывода имеют прямой доступ к памяти. Специально спроектированное устройство может злоупотреблять этой особенностью для считывания любых фрагментов памяти. Это не гипотетическая угроза, известны реальные случаи подобных атак (FinFireWire).

Но можно обойтись и без сложных устройств и уязвимостей! Доступ к содержимому памяти возможен и в том случае, если просто считать с диска один из файлов, в которые ОС записывает ее содержимое.

Таких файлов в Windows несколько:

  • временный файл подкачки (pagefile.sys);
  • файл сохранения для режима гибернации (hiberfil.sys);
  • аварийные и отладочные дампы памяти (memory.dmp, minidump). Генерацию таких файлов можно запустить вручную.

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

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

Как можно предотвратить атаку на память?

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

  • Внедрите принцип наименьших привилегий. Все пользователи должны работать без прав администратора. Даже сами администраторы должны получить необходимые привилегии только на время выполнения процедур обслуживания.
  • Используйте системы защиты на каждом физическом и виртуальном компьютере. Компании обязательно нужны системы класса EDR. Убедитесь, что политики защиты предотвращают запуск сотрудниками легитимных, но потенциально опасных программ, которые могут использоваться для эскалации привилегий и снятия дампов памяти (утилиты sysinternals, powershell, лишние или устаревшие драйверы и тому подобное).
  • Своевременно обновляйте ОС и все ключевые приложения.
  • Убедитесь, что компьютеры загружаются в режиме UEFI, а не BIOS. Поддерживайте прошивки UEFI на всех компьютерах в актуальном состоянии.
  • Установите безопасные настройки UEFI. Включите Input/Output Memory Management Unit (IOMMU), что позволит исключить DMA-атаки. Поставьте пароль на UEFI и определите верный порядок загрузки ОС — это позволит снизить риски запуска системы с вредоносного носителя и изменения настроек на небезопасные. Функции Secure Boot и Trusted Boot также предотвращают запуск непроверенного кода ОС.

Неоднозначные меры

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

  • Аппаратное хранение ключей на базе TPM0. Trusted Platform Module позволяет обезопасить аутентификацию в ОС, использовать биометрию для входа в учетную запись и усложняет извлечение ключей. TPM значительно усиливает защиту, которую дает полнодисковое шифрование, поскольку его ключи тоже хранятся в модуле TPM. Возможные «подводные камни»: отсутствие на некоторых компьютерах модуля TPM, несовместимые комбинации ОС и оборудования, сложности централизованного управления ключами (из-за разных систем и версий TPM).
  • Полнодисковое шифрование. Эта мера радикально снижает риски утечки данных, особенно с забытых или украденных ноутбуков, поэтому она рекомендуется даже тем, кто не очень боится атак на память. Штатная реализация от Microsoft — Bitlocker, но есть и сторонние решения. В Linux-системах FDE (full disk encryption) также стало частью ОС (например, в Ubuntu — с версии 20), во многих дистрибутивах оно основано на LUKS. Наиболее надежно использовать комбинацию TPM и FDE. Подводные камни: при серьезных сбоях на компьютере с диска невозможно вытащить ничего. Поэтому критически важно наличие отлаженной системы резервного копирования. Иногда заметно снижение производительности дисковых операций, особенно при запуске компьютера.
  • Отключение спящего режима (sleep, standby). Если запретить «сон» и оставить только «гибернацию», ситуация, когда загруженный и частично расшифрованный компьютер доступен злоумышленникам для DMA-атак и прочих упражнений, станет крайне редкой. Недостаток решения тоже очевиден, ведь спящий режим — это самый быстрый и удобный способ «выключить» компьютер после рабочего дня или при смене дислокации в офисе. Если вы решите пойти по этому пути для части пользователей, важно внедрить полнодисковое шифрование, иначе файл гибернации будет беззащитен для атак.
  • Отключение режима гибернации. Если отключить гибернацию, то образ памяти нельзя будет скопировать из файла с выключенного компьютера. Для самых важных компьютеров можно запретить и гибернацию, и сон, их можно будет только полностью выключить. В комбинации с полнодисковым шифрованием, TPM и прочими мерами это оставляет очень мало места для атак на память, но неудобства для пользователей будут значительны, поэтому стоит серьезно задуматься, в каких случаях это оправданно.

Разговор начистоту

Если вы решите, что безопасность стоит того, чтобы отключить спящий режим или гибернацию, тщательно продумайте, каким именно пользователям нужно внедрять такую политику. Вряд ли это будет 100% сотрудников, скорее речь пойдет о тех, кто работает с критически важной информацией. Важно объяснить им, что кража паролей и других данных возможна многими способами, поэтому недостаточно «просто антивируса» или «просто не ходить на всякие там сайты», чтобы предотвратить серьезные инциденты безопасности. Про каждую из защитных мер имеет смысл сказать несколько слов, объясняя их смысл. Полнодисковое шифрование — защита от простейшего копирования данных с забытого или украденного компьютера, защита от «злой горничной», то есть от посторонних с физическим доступом к компьютеру. Отключение сна и гибернации продолжает и усиливает эти защитные меры, поэтому лишние 5 минут на включение и выключение компьютера внесут важный вклад в то, чтобы сотрудник потом не стал «крайним», если его паролем воспользуются для кибератаки.

Советы

Cyber-attacks have changed over the past few years. Rogue hackers can now take over your PC and lock down files unless you are ready to pay them money. These types of attacks are called Ransomware, and they use kernel-level exploits that attempt to run malware with the highest privileges, e.g., WannaCry and Petya ransomware. In order to mitigate these types of attacks, Microsoft has rolled out a feature that allows you to enable Core Isolation and Memory Integrity to prevent such attacks.

What is Core Isolation?

Core isolation is a security feature in Windows that protects important core processes of Windows from malicious software by isolating them in memory, by running those core processes in a virtualized environment. Core Isolation feature include Memory integrity and Kernel-mode Hardware-enforced Stack Protection.

What is Memory Integrity?

Memory integrity, also known as Hypervisor-protected Code Integrity (HVCI) is a security feature in Windows that makes it difficult for malicious programs to use low-level drivers to hijack your computer.

Windows Defender Security Center offer these features. Called Device Security, it offers status reporting and management of security features built into your devices – including toggling features on to provide enhanced protection. However, It doesn’t work on a software level; the hardware needs to support it as well. Your firmware should support Virtualization, which enables the Windows 11/10 PC to run applications in a container, so they don’t get access to other parts of the system.

Your device must meet the requirements for standard hardware security This means your device should support memory integrity and core isolation and also have:

  • TPM 2.0 (also referred to as your security processor)
  • Secure boot enabled
  • DEP
  • UEFI MAT.

Windows Defender Security System for PC

  1. Sign in as an administrator and open Windows Defender Security Center
  2. Look for Device Security option.
  3. Here you should check if Core Isolation under Virtualization is enabled on your PC.
  4. Core isolation provides virtualization-based security features to protect core parts of your device.
  5. Click on Core isolation details, and you will be offered to enable Memory Integrity.

Memory integrity (hypervisor-protected code integrity) is a security feature of Core isolation that prevents attacks from inserting malicious code into high-security processes. Toggle to turn it On.

Core Isolation & Memory Integrity

Once enabled, it will ask you to restart the PC to completely enable Memory Integrity.

If later on, you face application compatibility issues, you may need to turn this off.

Related: Memory Integrity greyed out or won’t Turn On/Off.

Enable or Disable Core Isolation and Memory Integrity using Registry

You can also use the Registry, to enable or disable Core isolation Memory integrity using Registry Editor, follow these steps:

  1. Press Win+R to open the Run dialog.
  2. Type regedit and hit the Enter button.
  3. Click on the Yes option.
  4. Navigate to Scenarios in HKEY_LOCAL_MACHINE.
  5. Right-click on Scenarios > New > Key.
  6. Name it as HypervisorEnforcedCodeIntegrity.
  7. Right-click on it > New > DWORD (32-bit) Value.
  8. Name it as Enabled.
  9. Double-click on it to set the Value data as 1 to enable and 0 to disable.
  10. Click the OK button.
  11. Restart your computer.

To learn more about these steps, keep reading.

Precaution: Before heading to the REGEDIT steps, don’t forget to create a System Restore point.

To get started, press Win+R to open the Run dialog, type regedit, and hit the Enter button. If the UAC prompt appears on your screen, click on the Yes option to open the Registry Editor.

Next, navigate to the following path:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios

Right-click on the Scenarios key > New > Key, and name it as HypervisorEnforcedCodeIntegrity.

Enable to disable Core isolation Memory integrity using Registry Editor

Then, you have to create a REG_DWORD value. For that, right-click on HypervisorEnforcedCodeIntegrity > New > DWORD (32-bit) Value, and name it as Enabled.

Enable to disable Core isolation Memory integrity using Registry Editor

By default, it comes with a Value data of 0, meaning it is disabled. However, if you want to enable this functionality, double-click on it to set the Value data as 1.

Enable to disable Core isolation Memory integrity using Registry Editor

Click the OK button and restart your computer.

Related:

  • Core Isolation turned off by itself
  • Kernel-mode Hardware-enforced Stack Protection is off

That said, there are two more options that might be available depending on the hardware of your PC.

  1. Security Processor only shows up if you have TPM available with your PC hardware. They are discrete chips soldered to a computer’s motherboard by the OEM. To get the most out of TPM, OEM must carefully integrate system hardware and firmware with the TPM to send it commands and react to its responses. The newer TPMs can also provide security and privacy benefits to the system hardware itself. So make sure to check for all of these if you are buying a new PC.
  2. Secure Boot prevents malicious code to load up before your OS. They are hard to crack but with secure boot it’s taken care of.

Windows 11/10 also offers Hypervisor Protected Code Integrity (HVCI)  when you start with clean installs. Those who are on old hardware, will have the ability to opt-in post the upgrade using the UI in Windows Defender Security Center (WDSC). This enhancement will ensure that the kernel process that verifies code integrity runs in a secure runtime environment.

What is Memory Integrity Scan Tool?

Memory Integrity Scan Tool

Memory Integrity Scan Tool is a free tool from Microsoft to check your computer’s compatibility with Memory Integrity or HVCI (Hypervisor-protected code integrity).

You can download the hvciscan.exe for your system architecture (AMD64 or ARM64) from the Microsoft Download Center and from an elevated command window or PowerShell, run hvciscan.exe. This will help you review the resulting output to identify any incompatibilities.

Read: Turn off Windows Security Making sure it’s you message

What is Memory access protection?

Kernel DMA protection or Memory access protection protects your device against attacks that can occur when a malicious device is plugged into a PCI (Peripheral Component Interconnect) port like a Thunderbolt port, by denying direct access to the memory to those devices except under special circumstances, particularly when the PC is locked or the user is signed out.

Read:

  • Incompatible driver turns off Memory Integrity in Windows 11
  • Standard hardware security not supported in Windows 11
  • Virtualization-based Security not enabled in Windows 11.

Апрельское обновление Windows 10 1803 принесло с собой ряд нововведений и усовершенствований, в том числе в плане безопасности. Обновленная версия Windows 10 помимо стандартной защиты от вирусов, обеспечиваемой Windows Defender, теперь может блокировать внешние атаки, направленные на подмену процессов. Данная функция защиты получила название «Изоляция ядра». Используемый ею метод основан на технологии виртуализации, также в составе защиты используется «целостность памяти», предотвращающая внедрение в важные процессы вредоносного кода. 

Как включить Изоляцию Ядра (Целостность памяти) в Windows 10

Чтобы включить дополнительную защиту, откройте Центр безопасности Защитника Windows,

переключитесь в раздел «Безопасность устройства»,

в блоке «Изоляция ядра» нажмите ссылку «Сведения об изоляции ядра»

и установите переключатель «Целостность памяти» в положение «Вкл». Дабы новые настройки вступили в силу, перезагрузите компьютер. 

Примечание: если функция недоступна на компьютере, убедитесь, что в BIOSе у вас включена виртуализация.

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

Для этого открываем редактор реестра командой regedit в окошке «Выполнить», в правой части окна разворачиваем ветку:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/DeviceGuard/Scenarios/HypervisorEnforcedCodeIntegrity, в правой колонке дважды кликаем по параметру Enabled и изменяем его значение с 1 на 0. После этого перезагружаем компьютер и проверяем состояние настройки защиты. Она должна быть отключена.

Материал из РУВИКИ — свободной энциклопедии

Защита памяти (англ. Memory protection) — это способ управления правами доступа к отдельным регионам памяти. Используется большинством многозадачных операционных систем. Основной целью защиты памяти является запрет доступа процессу к той памяти, которая не выделена для этого процесса. Такие запреты повышают надёжность работы как программ, так и операционных систем, так как ошибка в одной программе не может повлиять непосредственно на память других приложений. Следует различать общий принцип защиты памяти и технологии ASLR или NX-бит.

Альтернативное определение: защита памяти — избирательная способность предохранять выполняемую задачу от записи или чтения памяти предназначенной другой программе[источник не указан 1015 дней].

Чаще всего реализуется в рамках виртуальной адресации памяти.

Сегментирование памяти[править | править код]

Сегментирование памяти означает разбиение компьютерной памяти на фрагменты переменной длины, называемые сегментами (см Сегментная адресация памяти).

В архитектуре x86 есть несколько режимов сегментации, которые могут использоваться для защиты памяти.[1] В процессорах архитектуры x86, существуют глобальная дескрипторная таблица и локальная дескрипторная таблица, описывающие сегменты памяти. Указатели на сегменты в подобных процессорах хранятся в специализированных сегментных регистрах. Изначально их было 4: CS (code segment), SS (stack segment), DS (data segment) и ES (extra segment); затем добавили ещё два: FS и GS.[1]

Страничная память[править | править код]

При страничной организации памяти, все адресное пространство делится на фрагменты фиксированного размера, называемые страницами. Их размер кратен степени 2, и обычно равен 4096, но возможно использование одновременно нескольких размеров страниц (4 кб, 2-4МБ в x86, от 4 до 256 кб в IA64[источник не указан 1015 дней]). При помощи механизма виртуальной памяти, каждая страница виртуальной памяти может быть поставлена в соответствие любой странице физической памяти, либо помечена как защищённая. При помощи виртуальной памяти возможно использование линейного адресного пространства виртуальной памяти, которое на самом деле образовано фрагментированными участками адресного пространства физической памяти.

Многие архитектуры, использующие страничную организацию памяти, в том числе и наиболее популярная x86, реализуют защиту памяти на уровне страниц.

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

При таком отображении, приложение не имеет возможности обратиться к странице, отсутствующей в её таблице страниц. Если при обращении по произвольному адресу не было найдено подходящее отображение, происходит исключительная ситуация page fault (PF).

Следует заметить, что page fault — это не фатальное событие. Эти прерывания могут использоваться не только для защиты памяти, но и другими способами. Так, ОС, перехватив PF, может загрузить страницу в память, например, если она была ранее выгружена на жёсткий диск в процессе подкачки страниц, после чего приложение может продолжать работу. Такая схема позволяет прозрачным способом увеличить количество доступной приложениям памяти.

Механизм ключей защиты[править | править код]

Применялся в System/360, Itanium и PA-RISC.

Адресация основанная на Capability[править | править код]

Capability-based addressing редко применяется в коммерческих компьютерах. В системах с такой защитой памяти вместо указателей используются защищённые объекты (называемые capabilities), которые могут быть созданы лишь привилегированными инструкциями, исполняемыми либо ядром ОС либо специальными процессами. Использование такой защиты позволяет ограничивать доступ процессов к чужой памяти без использования раздельных адресных пространств и переключений контекста (сброса TLB, изменения глобальных дескрипторов). Использовались в исследовательских проектах KeyKOS, EROS; виртуальных машинах Smalltalk и Java.

Среди ОС, реализующих защиту памяти

  • Microsoft Windows начиная с Windows NT 3.1 и Windows 95.
  • Большая часть Unix-like систем, включая
    • Solaris
    • Linux
    • BSD
    • Mac OS X
    • GNU Hurd

Некоторые старые ОС жёсткого реального времени не используют защиту памяти, даже на процессорах, где это возможно. Примером такой ОС является VxWorks версий до 5 включительно.

  • Storage violation, for violation of memory protection
  • Separation of protection and security
  • Защищённый режим — механизмы защиты в x86
  1. 1 2 Intel 64 and IA-32 Architectures Software Developer’s Manuals: Volume 3A: System Programming Guide, Part 1; PDF Архивная копия от 19 апреля 2009 на Wayback Machine
  • Intel Developer Manuals — in-depth information on memory protection for Intel based architectures.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows 11 alt tab плохо работает
  • Ft232r usb uart drivers for windows 7
  • Тихо играют наушники на компьютере windows 11
  • Windows 7 активатор номер
  • Чем открыть файл mp4 на компьютере windows 10