Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Možnost Kontroly zabezpečení v nástroji Driver Verifier monitoruje běžné chyby ovladače, které můžou vést k ohrožením zabezpečení. Tato možnost je dostupná od systému Windows Vista.
Konkrétně možnost Kontroly zabezpečení hledá následující nesprávné chování ovladače:
Volání rutin jádra ZwXxx s parametry ve formě adres uživatelského režimu. Když ovladač volá jakékoli rutiny ZwXxx, Driver Verifier zkontroluje, že žádný z parametrů není adresou uživatelského režimu. Při volání jakékoli rutiny ZwXxx se aktuální KPROCESSOR_MODE stane KernelMode a všechny parametry předané této rutině jsou považovány za adresy v režimu jádra. Ovladač proto musí prozkoumat všechny vyrovnávací paměti uživatelského režimu přijaté z aplikací a umístit je do paměti režimu jádra (například v bloku fondu nebo datové struktuře přidělené v zásobníku jádra) před voláním jádrové rutiny ZwXxx. Ovladač musí jako parametr rutiny ZwXxx použít zachycenou vyrovnávací paměť místo vyrovnávací paměti uživatelského režimu.
Volání rutin jádra ZwXxx s poškozenými UNICODE_STRINGs jako parametry. Když ovladač volá jakoukoli rutinu ZwXxx, nástroj Driver Verifier zkontroluje všechny parametry, které jsou hodnoty typu UNICODE_STRING. Mezi běžné chyby zjištěné nástrojem Driver Verifier v takových řetězcích patří:
- Pole paměti ukazuje na paměť uživatelského režimu.
- Parametry Length nebo MaximumLength jsou nesprávné. Například MaximumLength<Length. Nebo jedna nebo obě tyto hodnoty jsou liché číslo. Obě tyto hodnoty musí být vždy sudé, protože představují počet bajtů použitých pro reprezentaci řetězce Unicode.
Volání rutin ZwXxx jádra s nesprávnou strukturou OBJECT_ATTRIBUTES jako parametrem Když ovladač volá jakoukoli rutinu ZwXxx, verifikátor ovladače zkontroluje všechny parametry, které jsou strukturami typu OBJECT_ATTRIBUTE. Členové každého parametru struktury OBJECT_ATTRIBUTE podléhají stejným kontrolám adres v uživatelském režimu a UNICODE_STRING hodnotám, které jsou popsány výše.
Nekonzistentní parametry Irp->RequestorMode a parametry vstupně-výstupního požadavku. Pokaždé, když je Irp-> RequestorMode nastaven na KernelMode, Driver Verifier zkontroluje, že žádný z parametrů vstupně-výstupních požadavků, Irp->AssociatedIrp.SystemBuffer nebo Irp->UserBuffer, není adresou v uživatelském režimu.
Počínaje systémem Windows 7, když povolíte libovolnou možnost nástroje Driver Verifier, tento nástroj kontroluje následující chování ovladače:
Počítadlo referencí objektu se změní z 0 na 1. Když správce objektů jádra Systému Windows vytvoří objekt, například objekt File nebo Thread, je referenční čítač nového objektu nastaven na hodnotu 1. Volání systémových funkcí, jako je ObReferenceObjectByPointer nebo ObReferenceObjectByHandle , zvýší referenční čítač. Každé volání ObDereferenceObject pro stejný objekt dekrementuje referenční čítač.
Jakmile referenční čítač dosáhne hodnoty 0, objekt se stane způsobilým uvolnit. Správce objektů ho může okamžitě uvolnit nebo ho později uvolnit. Ovladač Verifier kontroluje následné volání ObReferenceObjectByPointer a ObReferenceObject pro stejný objekt. Tato volání změní referenční čítač z 0 na 1, což znamená, že ovladač zvýšil referenční čítač již uvolněného objektu. To je vždy nesprávné, protože může poškodit jiné přidělení paměti.
Aktivace této možnosti
Možnost Kontroly zabezpečení pro jeden nebo více ovladačů můžete aktivovat pomocí Správce ověření ovladačů nebo příkazového řádku Verifier.exe. Podrobnosti najdete v tématu Výběr možností ověření ovladače.
Použití příkazového řádku
Na příkazovém řádku je možnost Kontroly zabezpečení reprezentována bitem 8 (0x100). Chcete-li aktivovat kontroly zabezpečení, použijte hodnotu příznaku 0x100 nebo přidejte 0x100 k hodnotě příznaku. Například:
verifier /flags 0x100 /driver MyDriver.sysPo restartování počítače bude tato možnost aktivní.
Počínaje systémem Windows Vista můžete také aktivovat a deaktivovat kontroly zabezpečení bez restartování počítače přidáním parametru /volatile do příkazu. Například:
verifier /volatile /flags 0x100 /adddriver MyDriver.sysToto nastavení je efektivní okamžitě, ale při vypnutí nebo restartování počítače dojde ke ztrátě. Podrobnosti najdete v tématu Použití volatile nastavení.
Možnost Kontroly zabezpečení je také součástí standardního nastavení. Například:
verifier /standard /driver MyDriver.sysPoužití Správce ověřovatele ovladačů
- Spusťte Správce ověřovatele ovladačů. Do okna příkazového řádku zadejte ověřitel .
- Vyberte Vytvořit vlastní nastavení (pro vývojáře kódu) a potom klikněte na Tlačítko Další.
- Vyberte jednotlivá nastavení z úplného seznamu.
- Vyberte Kontroly zabezpečení.
Funkce Kontroly zabezpečení je také součástí standardního nastavení. Chcete-li tuto funkci použít ve Správci ověřovatele ovladačů, klepněte na tlačítko Vytvořit standardní nastavení.