Я только что запустил тест памяти на своем ноутбуке (от производителя, работаеткак услуга в Windows 10 Pro) и мне пришло в голову, что они утверждают, что на самом деле могут протестировать всю память в системе (что требует чтения и записи памяти).
Однако в современных системах приложения никогда не получают «реальную» память, они получают виртуальный образ памяти (они, по сути, думают, что имеют доступ ко всей системе, но на самом деле это виртуальный образ памяти). Поэтому должно быть невозможно (за исключением ошибок) для одного приложения получить доступ к памяти, используемой другим приложением.
Предположительно, эти программы тестирования памяти на самом деле работают и не лгут мне, так что, если предположить, что они действительно могут читать и записывать всю память в системе для тестирования, как это не проблема безопасности? Не говоря уже о проблеме приложения Windows, тестирующего память, которую оно само использует для работы.
Что я здесь упускаю?
Спасибо!
решение1
[...]должно быть невозможным (за исключением ошибок) для одного приложения получить доступ к памяти, используемой другим приложением.
Истинный,если приложение не имеет требуемых привилегий/разрешений. В большинстве систем ограничения доступа к памяти можно обойти с помощью специальных разрешений, поскольку существуют некоторые законные способы доступа к ограниченной памяти, такие как отладка. В частности, в MS Windows для этого есть, например, функции ReadProcessMemory()
и WriteProcessMemory()
. Однако для их работы требуются специальные привилегии (см., например,Как повысить права доступа к памяти в редакторе памяти?для получения подробной информации).
Таким образом, служба, по-видимому, работает с правами администратора или аналогичными правами.
Итак, если предположить, что он действительно может читать и записывать всю память в системе для тестирования, то как это не является проблемой безопасности?
Если у службы есть соответствующие разрешения на чтение всей памяти, то это не проблема безопасности с точки зрения ОС — служба была авторизована при установке (вами или производителем). На практике это все еще может быть проблемой безопасности, если у службы есть дыры в безопасности (например, уязвимость удаленного выполнения кода), но это зависит от службы (как и с любой службой, работающей с повышенными разрешениями).
Вероятно, эти программы проверки памяти действительно работают и не врут мне,
Это не данность — поставщики ПО иногда искажают правду, как и все остальные. Мне кажется сомнительным, что служба должна иметь возможность тестировать память в работающей системе, независимо от каких-либо проблем с разрешениями — как служба может тестировать используемую память, не мешая другому программному обеспечению? Возможно, они это сделали, или, может быть, служба тестирует только память, которая в данный момент не используется, или только чтение... невозможно узнать без анализа.
Как отмечено в комментариях, распространенные программы тестирования памяти, такие как проверка памяти BIOS илиMemtest86, запускаются сразу после загрузки, не загружая операционную систему, именно для того, чтобы получить полный и исключительный доступ к памяти и процессору.