Поделиться через


Предотвращение угроз мини-driver BDA

Угрозы, которые можно ввести в мини-driver BDA , можно предотвратить следующими способами:

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

Если мини-драйверы BDA интерпретируют полезные данные, они должны тщательно проверять содержимое при анализе такого содержимого из полезных данных.

Угрозы, исходящие от специальных ioCTL
Мини-драйверы BDA не должны предоставлять интерфейсы приложениям, которые позволяют этим приложениям напрямую управлять шинами, памятью или любым другим оборудованием. Поэтому обработка для всех специализированных ioCTL должна быть удалена из мини-драйверов BDA. К таким IOCTL относятся, например, созданные поставщиком отладочные ICTL. Для обработки таких ioCTL мини-драйверы BDA реализуют подпрограмму IRP_MJ_DEVICE_CONTROL диспетчеризации.

Угрозы, исходящие от прямых подпрограмм диспетчеризации WDM
Мини-драйверы BDA не должны предоставлять подпрограммы диспетчеризации WDM, которые обходят модель класса потоковой передачи ядра (KS). Мини-драйверы BDA должны использовать модуль AVStream драйвера KS для предоставления процедур диспетчеризации и автоматизации, так как они также обеспечивают проверки безопасности. Для предоставления прямых подпрограмм диспетчеризации WDM мини-драйверы BDA реализуют любой из основных кодов функций IRP.