Опасные 3rd-party драйверы в вашей системе или LOLDrivers
А вы знали, что вполне легитимный драйвер может дать злоумышленнику возможность прописаться в вашей системе надолго, оставаясь внутри даже после ее переустановки? Или превратить ваш компьютер в кирпич? Например, некоторые безобидные на вид доверенные (подписанные) драйверы являются попутно инструментами для перезаписи BIOS. После такой атаки спасет лишь программатор.
В ОC Windows существуют доверенные приложения/скрипты/библиотеки с дополнительной интересной опасной функциональностью вроде исполнения произвольного кода, загрузки файлов, обхода UAC и т.п. Если подобная дополнительная функциональность встречается у компонента ядра, становится еще интереснее.
Начиная с Windows Vista x64, действует политика Driver Signature Enforcement (DSE) – все драйверы уровня ядра должны быть подписаны. Если злоумышленник (с правами пользователя/администратора) после проникновения в систему жаждет получить максимальный уровень доступа (установить kernel rootkit/bootkit/SMM-rootkit/BIOS-rootkit), ему придется как-то обойти требование подписи для драйвера. Возможность вызова из юзермода некоторых функций или инструкций в режиме ядра может дать злоумышленнику инструмент для повышения привилегий, раскрытия информации или вызова отказа в обслуживании. Назовем такую функциональность функциональностью двойного назначения (в некоторых случаях подобное могут называть уязвимостями или бэкдорами, однако дискуссия на тему корректности определения выходит за рамки этой статьи).
Способы обхода DSE
Давайте рассмотрим, какие вообще варианты есть у злоумышленника для обхода DSE (надо же как-то проникнуть в ring0). В таблице ниже собраны способы обхода DSE с их преимуществами и недостатками (для злоумышленника, а безопасники принимают к сведению). Стоит отметить, что данная информация относится к Windows x64, начиная с Vista.
Как видно по таблице, подписанный драйвер с функциональностю двойного назначения является наиболее привлекательным для атакующего способом обхода DSE.
Опасная функциональность или функциональность двойного назначения
Рассмотрим примеры вредоносных возможностей, которые появляются у злоумышленника при наличии драйвера с опасными функциями двойного назначения.
Исполнение произвольного кода в режиме ядра. Требуется чтение/запись физической памяти и MSR. Смысл заключается в замене адреса (находится в одном из MSR), на который будет осуществлен переход при совершении системного вызова, на адрес расположения кода злоумышленника. Тут можно найти больше информации об этом. Попутно будет мешать PatchGuard, но с ним при желании можно разобраться.
Поскольку драйвер и PatchGuard оба выполняются в Ring 0, ничто не мешает драйверу отключить проверки PatchGuard (до тех пор, конечно, пока Microsoft не прислушается к Intel и не выйдет за рамки модели с двумя кольцами защиты). Разработчики ядра в Microsoft прекрасно осведомлены об этом факте и выполняют различные действия для скрытия расположения этого кода, обфускации его действий и используемых внутренних структур. Иными словами, из-за невозможности помешать вам модифицировать код PatchGuard они пытаются изо всех сил его скрыть.
— Blunden B. The Rootkit arsenal: Escape and evasion in the dark corners of the system.
Given that driver code and PatchGuard code both execute in Ring 0, there’s nothing to prevent a KMD from disabling PatchGuard checks (unless, of course, Microsoft takes a cue from Intel and moves beyond a two-ring privilege model). The kernel engineers at Microsoft are acutely aware of this fact and perform all sorts of programming acrobatics to obfuscate where the code resides, what it does, and the internal data-structures that it manipulates. In other words, they can’t keep you from modifying PatchGuard code, so they’re going to try like hell to hide it.
— Blunden B. The Rootkit arsenal: Escape and evasion in the dark corners of the system.
Если проанализировать различные статьи и заметки о CVE, то можно выделить некоторую классификацию потенциально опасных при доступе из ring3 функций в драйверах. В таблице ниже указаны опасные функции и источники информации о них.
| Выявленные опасные функции | Источники информации о способах нарушения безопасности |
|---|---|
| Чтение/запись регистров MSR | CVE-2018-10711, CVE-2018-18535, CVE-2018-19323, CVE-2007-5633, CVE-2007-5761 |
| Чтение/запись портов ввода/вывода | CVE-2018-10712, CVE-2018-18536, CVE-2018-19322 |
| Чтение/запись физической памяти | CVE-2018-16712, CVE-2018-10710, CVE-2017-15302, CVE-2017-15303, CVE-2018-19321 |
| Чтение/запись управляющих регистров | CVE-2018-10709, Eset — Windows exploitation in 2016 |
| Доступ к счетчикам мониторинга производительности/тактов | Leif Uhsadel, Andy Georges, Ingrid Verbauwhed — Exploiting Hardware Performance Counters |
| Чтение/запись регистра флагов | Wojtczuk R., Rutkowska J. Following the White Rabbit: Software attacks against Intel VT-d technolog |
| Инструкции обращения к кэшу | Cache-Based Side-Channel Attacks Detection through Intel Cache Monitoring Technology and Hardware Performance Counters |
И это далеко не весь список возможных опасных функций. Можно также говорить и о чтении/записи виртуальной памяти ядра, чтении/записи MMIO, доступе к PCI устройствами т.д.
Наибольший интерес, а также наибольшую опасность (и наибольшую вероятность обнаружить драйвер с такими функциями) представляют первые три функции: чтение/запись регистров MSR, чтение/запись портов ввода/вывода, чтение/запись физической памяти. С помощью управляющих регистров можно обойти некоторые механизмы защиты, запись в регистр флагов позволяет включить чтение/запись портов ввода/вывода в ring3 (кстати, упоминается в этой статье на Хабре), успех атак по сторонним каналам (с помощью обращения к кэшу, счетчиков мониторинга производительности/тактов), скорее всего, маловероятен.
В процессе создания данного материала на конференции DEFCON 27 в Лас-Вегасе исследователи Jesse Michael и Mickey Shkatov представили работу «Get off the kernel if you cant drive», в которой также рассказывается о данной проблеме, и мы рекомендуем изучить данный материал для полноты картины. Здесь очень просто и наглядно расписаны сценарии использования подобных драйверов и представлены примеры участков кода, отвечающих за наиболее критичную функциональность. И также представлен код по работе и поиску подобных драйверов.
Вообще стоит отметить, что данная тема уже достаточно давно волнует исследователей безопасности. Еще в 2018 году исследователь Александр Матросов в своей статье «What makes OS drivers dangerous for BIOS?» поднимал данный вопрос и демонстрировал, как достаточно просто можно проэксплотировать BIOS.
Драйверы с функциями двойного назначения
Ниже рассмотрены наиболее известные представители драйверов с функциями двойного назначения.
RwDrv.sys – очень популярный драйвер (поставляется с утилитой RWeverything). Читает и пишет физическую память, I/O порты, MSR и управляющие регистры. Был неоднократно использован в разных PoC’ах, а потом и в настоящем ранее упомянутом рутките Lojax. Для него написан интерфейс на C++, а также он используется в chipsec.
Читает и пишет физическую память, порты и MSR. Есть несколько PoC-утилит с его использованием (здесь и здесь).
pcdsrvc_x64 – драйвер от Dell, за дополнительной информацией обращаться в этот пост. Позволяет читать/писать физическую память и в I/O порты.
AsIO64.sys
Он предоставляет возможность чтения/записи физической памяти и I/O портов, а также вместе с ним идет удобная dll’ка для выполнения этих запросов.
Asmmap64.sys – еще один драйвер от ASUS, позволяющий читать/писать физическую память, I/O порты и MSR. Для злоумышленника он был бы особенно приятен, поскольку доступ к драйверу может быть осуществлен от обычного пользователя без прав администратора. Любопытные могут обратиться к первоисточнику.
ntiolib_x64.sys/winio64.sys – драйверы от MSI, подробно о них рассказано в ранее упомянутой статье. С помощью ntiolib_x64.sys можно читать/писать физическую память, I/O порты и MSR, winio64.sys предоставляет все эти функции, кроме MSR.
Обычно описанные опасные функции признают уязвимостями, если драйвер доступен пользователю без прав администратора (неправильный ACL) или когда позволяет исполнять произвольный код напрямую (как в bandainamcoonline.sys). В остальных случаях это просто функциональность, и раз у пользователя есть права администратора, то он может использовать все функции драйверов и это норма.
Если вы думаете, что подобных драйверов не больше десятка, то сильно ошибаетесь. Можете посмотреть данную подборку интересных драйверов. В этом списке есть драйверы от ASUS, AVAST, Razer, LG, American Megatrends и других известных компаний. Так что их много, нужно просто поискать. А значит, они представляют реальную угрозу.
Данную угрозу понимают и сотрудники Microsoft. И будут признательны за информацию о подобных драйверах 😉
Рекомендации
Производителям же лучше не подписывать такие драйверы. Если пользователю требуется обновить BIOS, проверить систему на наличие уязвимостей (привет, chipsec), измерить производительность или провести еще какие-нибудь манипуляции, требующие установки подобных драйверов, то он вполне может перейти в Test Mode, сделать все это, а после выйти. Usability в таком случае упадет, зато возрастет security.
Выводы
Если что-то подписано, то доверять этому все равно нельзя. Во-первых, подписать так-то можно что угодно, а во-вторых, этим подписанным (даже если оно от доверенного производителя) может воспользоваться злоумышленник.
Специалистам по информационной безопасности не стоит исключать из модели угроз ситуации, когда злоумышленнику для выполнения атаки требуется драйвер с опасным функционалом. Драйверов таких достаточно, сделать это довольно просто. Если же атака будет проведена не с таким попсовым драйвером, как от RwEverything, а с каким-нибудь менее широко известным, то обнаружить ее будет еще сложнее. Так что надо быть начеку, мониторить такие вещи и не позволять каждому драйверу загружаться в систему.
Почему происходит долгий вход в систему, висит стартовый экран (windows 10, ssd)?
BOOTLOG_LOADED \SystemRoot\System32\drivers\dxgkrnl.sys
BOOTLOG_LOADED \SystemRoot\System32\drivers\BasicDisplay.sys
BOOTLOG_NOT_LOADED \SystemRoot\System32\drivers\dxgkrnl.sys
[. ]
BOOTLOG_NOT_LOADED \SystemRoot\System32\drivers\dxgkrnl.sys
[. ]
BOOTLOG_NOT_LOADED \SystemRoot\System32\drivers\dxgkrnl.sys
Собственно, на 99% причина вот в этом. Файл dxgkrnl.sys — ядро графической подсистемы DirectX. Оно уже было успешно загружено в процессе, потом что-то несколько раз безуспешно пыталось загрузить его снова и снова. Шаги предлагаю следующие; после каждого из них перезагружайтесь и смотрите, изменилось ли что. (Дисклеймер: я с Win10 почти не работал, но скорее всего сильно ничего не изменилось.)
Спасибо! Сделал все в точности как вы описали, но к сожалению в моем случае это не привело к положительным результатам. Все кроме Microsoft убрал, ошибки в системных файлах не были найдены, ccleaner что-то подчистил, но это не привело к желаемому результату.
Воспользовался предлагаемой вами утилитой, были выделены пару файлов желтым цветом, я их удалил из реестра (при помощи всплывающего меню этой программы), но увы тоже безуспешно.
Не знаю как правильно выкладывать логи из этой программы, я сделал отдельно скриншот и приложу материал экспортируемый в текстовый файл самой программой.
Огромное спасибо вам за отзывчивость.
PS. Что-то мне подсказывает что-здесь всему виной драйвер, который майкрософт подгрузила с обновлением потому что изначально некоторые драйвера для устройств не были установлены.
Материнская плата ASUS (ноутбук Asus N550JK) процессор i7 4700HQ.
maksim2099: Окей, тогда два вопроса.
1. Когда переустанавливали дрова для видеокарты, новые дрова брали с сайта nVidia или через системные обновления?
2. Можете выложить куда-нибудь на pastebin.com отчёт dxdiag, или хотя бы сделать скриншот со вкладки «дисплей» (или как она там в русскоязычной версии называется)? Лучше отчёт.
Надо понять, что пытается вызвать ядро DirectX. Это либо драйвер видокарты, либо какое-то опциональное приложение или сервис, которое для чего-то обращается к графической подсистеме (на самом деле под это определение может подпадать почти что угодно, если результатом становится графическое отображение чего-либо сложнее обычного системного окна). Я видел в интернете упоминания этой проблемы, но ни одного гарантированного решения. Но если в безопасном режиме проблемы нет, значит, она стопроцентно решаема. В безопасном режиме загружается лишь самое необходимое; значит, есть возможность сымитировать те же условия в рабочем режиме и по очереди включать остальные компоненты.
Драйвера устанавливал и с сайта Nvidia и Asus. результат, к сожалению, одинаков (пробовал чистую установку тоже). Пробовал поочередно выключать видеооборудование (Intel Hd Graphic, Nvidia).
Логи DxDiag
Скриншот добавил к описанию вопроса.
PS. Вчера переустановил Windows, и опять первоначально все было хорошо, но вот через пару перезагрузок, все вернулось на круги своя..
Спасибо вам за оказываемую помощь.
maksim2099: В логе тоже проблем не вижу. Видеодрайвер, вижу, сертифицирован WHQL — значит, Микрософт признал его пригодным. Даже уже и не знаю, что ещё вам предложить, хотя и самому интересно. 🙂
Эх, видимо придётся вам мучать поддержку Микрософта, чтобы они сами со своей стороны разбирались. Судя по тому, что проблема возникает именно на Win10, но не на Win8.1 при прочих равных, это, действительно, почти наверняка косяк со стороны МС.
What is asmmap64.sys?
asmmap64.sys is part of ATK Generic Function Service and developed by ASUS according to the asmmap64.sys version information.
asmmap64.sys’s description is «Memory mapping Driver«
asmmap64.sys is digitally signed by ASUSTeK Computer Inc..
asmmap64.sys is usually located in the ‘c:\program files (x86)\asus\atk package\atkgfnex\’ folder.
None of the anti-virus scanners at VirusTotal reports anything malicious about asmmap64.sys.
If you have additional information about the file, please share it with the FreeFixer users by posting a comment at the bottom of this page.
Vendor and version information [?]
The following is the available information on asmmap64.sys:
| Property | Value |
|---|---|
| Product name | ATK Generic Function Service |
| Company name | ASUS |
| File description | Memory mapping Driver |
| Internal name | asmmap.sys |
| Original filename | asmmap.sys |
| Legal copyright | Copyright (C) 2009 |
| Product version | 1, 0, 9, 0 |
| File version | 1, 0, 9, 1 |
Here’s a screenshot of the file properties when displayed by Windows Explorer:
| Product name | ATK Generic Function Service |
| Company name | ASUS |
| File description | Memory mapping Driver |
| Internal name | asmmap.sys |
| Original filename | asmmap.sys |
| Legal copyright | Copyright (C) 2009 |
| Product version | 1, 0, 9, 0 |
| File version | 1, 0, 9, 1 |
Digital signatures [?]
asmmap64.sys has a valid digital signature.
| Property | Value |
|---|---|
| Signer name | ASUSTeK Computer Inc. |
| Certificate issuer name | VeriSign Class 3 Code Signing 2004 CA |
| Certificate serial number | 37ed9092bdd1dccf58d2afa47f961448 |
VirusTotal report
None of the 46 anti-virus programs at VirusTotal detected the asmmap64.sys file.
Folder name variants
asmmap64.sys may also be located in other folders than c:\program files (x86)\asus\atk package\atkgfnex\. The most common variants are listed below:
Hashes [?]
| Property | Value |
|---|---|
| MD5 | 4c016fd76ed5c05e84ca8cab77993961 |
| SHA256 | 025e7be9fcefd6a83f4471bba0c11f1c11bd5047047d26626da24ee9a419cdc4 |
What will you do with asmmap64.sys?
To help other users, please let us know what you will do with asmmap64.sys:
What did other users do?
The poll result listed below shows what users chose to do with asmmap64.sys. 24% have voted for removal. Based on votes from 38 users.
Malware or legitimate?
If you feel that you need more information to determine if your should keep this file or remove it, please read this guide.
And now some shameless self promotion 😉

If you have questions, feedback on FreeFixer or the freefixer.com website, need help analyzing FreeFixer’s scan result or just want to say hello, please contact me. You can find my email address at the contact page.
Comments
Please share with the other users what you think about this file. What does this file do? Is it legitimate or something that your computer is better without? Do you know how it was installed on your system? Did you install it yourself or did it come bundled with some other software? Is it running smoothly or do you get some error message? Any information that will help to document this file is welcome. Thank you for your contributions.
I’m reading all new comments so don’t hesitate to post a question about the file. If I don’t have the answer perhaps another user can help you.
Stop Code IOMap64.sys
I have issue with my new desktop just bought it around 10 days only, everything was working fine suddenly it start giving me randomly stop error in the login screen stage.
Stop code: PAGE FAULT IN NONPAGED
What failed: IOMap64.sys
The dump files i got from C:\Windows\Minidump
Intel I7 6700k SKylake
ASUS MB Maximus VIII Hero
ASUS GPU Strix 1070 O8GB
RAM 16GB Corsair 3200Mhz
Report abuse
Replies (4)
We do need the actual log files (called a DMP files) as they contain the only record of the sequence of events leading up to the crash, what drivers were loaded, and what was responsible.
Please follow our instructions for finding and uploading the files we need to help you fix your computer. They can be found here
http://answers.microsoft.com/en-us/windows/wiki/windows_10-update/bsod-finding-and-fixing-them/1939df35-283f-4830-a4dd-e95ee5d8669d
If you have any questions about the procedure please ask
Report abuse
Was this reply helpful?
Sorry this didn’t help.
Great! Thanks for your feedback.
How satisfied are you with this reply?
Thanks for your feedback, it helps us improve the site.
How satisfied are you with this reply?
Thanks for your feedback.
thanks for your replay, I checked the link you pasted regarding sharing the full DMP, as per the guide it advice me to send only 3 latest minidump along with the MSinfo32 and only to send the big DMP file in case its not available but i have them.
I’m uploading both for your reference please using onedrive:-
Report abuse
Was this reply helpful?
Sorry this didn’t help.
Great! Thanks for your feedback.
How satisfied are you with this reply?
Thanks for your feedback, it helps us improve the site.
How satisfied are you with this reply?
Thanks for your feedback.
Two issues. Your 2010 IOMAP64.sys driver and McAfee.. I would remove McAfee and update the IO driver.
Report abuse
Was this reply helpful?
Sorry this didn’t help.
Great! Thanks for your feedback.
How satisfied are you with this reply?
Thanks for your feedback, it helps us improve the site.
How satisfied are you with this reply?
Thanks for your feedback.
Hi thanks for the replay,
it most likely happen only when i installed the AI Suit 3 and i remove it but still i get the same stop code.
how can i point which exact software this is used by? i have updated i think most of my drivers.
for MAcafee do i really need to remove it as i just paid for it and its protecting my PC. please advice.
also i find the file IOMAP64.sys in three places so far
C:\Program Files (x86)\ASUS\VGA COM\1.00.21
C:\Program Files (x86)\ASUS\GPU TweakII
EDIT:-
Please advice me if this is not proper way help me with best way to update this sys file.
Finally i shutdown my PC then turn it on like after 3min, i got strange fluctuation or flashing screen ( not sure if this is related to VGA COM file that i deleted? or just by chance or due to havey restart? never face this before its new PC and old screen and screen is working fine.
Как исправить ошибку VIAMRX64.SYS типа синий экран [РЕШЕНО]
VIAMRX64.SYS проблемы типа синий экран (BSOD) часто возникают из-за отсутствия или повреждения драйверов устройства для Backup Executive System Recovery: Workshop Edition Recovery Disk или из-за неисправности соответствующего оборудования. Основной способ решить эти проблемы вручную — заменить файл SYS новой копией. В качестве последней меры мы рекомендуем выполнить сканирование обновлений драйверов, чтобы обновить устаревшие или неверные драйверы устройства, которые могут вызывать сообщение об ошибке VIAMRX64.SYS.
Системные файлы с расширением файла SYS, также известны в качестве формата Windows System File. Мы подготовили для вас несколько версий файлов VIAMRX64.SYS, которые походят для %%os%% и нескольких выпусков Windows. Данные файлы можно посмотреть и скачать ниже. В настоящее время в нашем каталоге для загрузки могут отсутствовать некоторые файлы (такие как VIAMRX64.SYS), но их можно запросить, нажав на кнопку Request (Запрос) ниже. В редких случаях, если вы не можете найти версию необходимого вам файла ниже, мы рекомендуем вам обратиться за дополнительной помощью к Symantec.
Правильное расположение файла VIAMRX64.SYS является решающим фактором в успешном устранении ошибок подобного рода. Однако, не будет лишним выполнить быструю проверку. Затем вы можете повторно открыть Backup Executive System Recovery: Workshop Edition Recovery Disk, чтобы проверить выводится ли сообщение об ошибке.
| VIAMRX64.SYS Описание файла | |
|---|---|
| Формат файла: | SYS |
| Категория: | Backup,Backup and Recovery,recovery |
| App: | Backup Executive System Recovery: Workshop Edition Recovery Disk |
| ID: | 7.01 |
| Компания: | Symantec |
| File: | VIAMRX64.SYS Запрос |
| Размер (в байтах): | 151552 |
| SHA-1: | 9e43505adb7dd641e9ffbe824444a89082f88cd4 |
| MD5: | f50c83800f10b29f122b15ef602b90bb |
| CRC32: | f7f77e47 |
Идентификатор статьи: 707977
VIAMRX64.SYS
| File | ID | Байт | Загрузить | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + VIAMRX64.SYS | f50c83800f10b29f122b15ef602b90bb | 148.00 KB | Запрос | ||||||||||||||||||
| |||||||||||||||||||||
| + VIAMRX64.SYS | f50c83800f10b29f122b15ef602b90bb | 148.00 KB | Запрос | ||||||||||||||||||
| |||||||||||||||||||||
| + VIAMRX64.SYS | f50c83800f10b29f122b15ef602b90bb | 148.00 KB | Запрос | ||||||||||||||||||
| |||||||||||||||||||||
| + VIAMRX64.SYS | f50c83800f10b29f122b15ef602b90bb | 148.00 KB | Запрос | ||||||||||||||||||
| |||||||||||||||||||||
| + VIAMRX64.SYS | f50c83800f10b29f122b15ef602b90bb | 148.00 KB | Запрос | ||||||||||||||||||
| |||||||||||||||||||||
| + VIAMRX64.SYS | f50c83800f10b29f122b15ef602b90bb | 148.00 KB | Запрос | ||||||||||||||||||
| |||||||||||||||||||||
| + VIAMRX64.SYS | f50c83800f10b29f122b15ef602b90bb | 148.00 KB | Запрос | ||||||||||||||||||
| |||||||||||||||||||||
| + VIAMRX64.SYS | f50c83800f10b29f122b15ef602b90bb | 148.00 KB | Запрос | ||||||||||||||||||
| |||||||||||||||||||||
Спасибо, ваш файл запроса был получен.
Распространенные сообщения об ошибках в VIAMRX64.SYS
Ошибки BSOD, сокращенно от «Blue Screen of Death», обычно вызванные VIAMRX64.SYS, включают:
Установка аппаратного или программного обеспечения, связанная с турбоналогом, может вызвать ошибки BSOD VIAMRX64.SYS. Ошибки VIAMRX64.SYS, связанные с Backup Executive System Recovery: Workshop Edition Recovery Disks, часто возникают во время установки программного обеспечения, связанного с VIAMRX64.SYS, во время завершения работы или запуска Windows или во время загрузки драйвера устройства, связанного с Symantec. Отслеживание того, когда и где возникает ошибка STOP, является важной информацией при устранении проблемы. Notating при возникновении ошибок VIAMRX64.SYS STOP имеет первостепенное значение для поиска причины проблем, связанных с Backup Executive System Recovery: Workshop Edition Recovery Disks, и сообщая о них за помощью.
Источники проблем VIAMRX64.SYS
Ошибки синего экрана смерти, связанные с VIAMRX64.SYS, вызваны связанными с этим проблемами программного обеспечения, оборудования, микропрограммы или драйвера устройства. Связанное с Symantec оборудование или сам Backup Executive System Recovery: Workshop Edition Recovery Disk может привести к этим проблемам.
В основном, осложнения VIAMRX64.SYS связаны с:



