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.
Aplikace vytvořené pomocí technologie Windows Communication Foundation (WCF) můžou protokolovat události zabezpečení (úspěch, selhání nebo obojí) pomocí funkce auditování. Události se zapisují do protokolu událostí systému Windows a lze je prozkoumat pomocí Prohlížeče událostí.
Auditování poskytuje správci způsob, jak zjistit útok, ke kterému už došlo nebo právě probíhá. Kromě toho může audit pomoci vývojáři řešit problémy související se zabezpečením. Pokud například chyba v konfiguraci autorizace nebo kontrola zásad omylem odmítne přístup k autorizovanému uživateli, může vývojář rychle zjistit a izolovat příčinu této chyby prozkoumáním protokolu událostí.
Další informace o zabezpečení WCF naleznete v tématu Přehled zabezpečení. Další informace o programování WCF naleznete v tématu Základní programování WCF.
Úroveň a chování auditu
Existují dvě úrovně auditů zabezpečení:
Úroveň autorizace služby, ve které je volající autorizovaný.
Úroveň zpráv, ve které WCF kontroluje platnost zprávy a ověřuje volajícího.
Můžete zkontrolovat úspěšnost nebo selhání obou úrovní auditu, což se označuje jako chování auditu.
Umístění protokolu auditu
Jakmile určíte úroveň auditu a chování, můžete vy (nebo správce) zadat umístění pro protokol auditu. Mezi tři možnosti patří: Výchozí, Aplikace a Zabezpečení. Když zadáte výchozí, skutečný protokol závisí na tom, jaký systém používáte, a jestli systém podporuje zápis do protokolu zabezpečení. Další informace najdete v části Operační systém dále v tomto tématu.
K zápisu do protokolu zabezpečení se vyžaduje SeAuditPrivilege. Ve výchozím nastavení mají tato oprávnění pouze účty místních systémů a síťových služeb. Ke správě funkcí protokolu zabezpečení read a delete je potřeba SeSecurityPrivilege. Ve výchozím nastavení mají tato oprávnění jenom správci.
Naproti tomu ověření uživatelé mohou číst a zapisovat do protokolu aplikace. Systém Windows XP ve výchozím nastavení zapisuje události auditu do protokolu aplikace. Protokol může také obsahovat osobní údaje, které jsou viditelné všem ověřeným uživatelům.
Potlačení selhání auditu
Další možností při auditování je, jestli se má potlačit selhání auditu. Ve výchozím nastavení selhání auditu nemá vliv na aplikaci. V případě potřeby však můžete nastavit možnost , falsekterá způsobí vyvolání výjimky.
Auditování programování
Chování auditování můžete zadat prostřednictvím kódu programu nebo prostřednictvím konfigurace.
Třídy auditování
Následující tabulka popisuje třídy a vlastnosti používané k programování auditu.
| Třída | Popis |
|---|---|
| ServiceSecurityAuditBehavior | Povolí nastavení možností auditování jako chování služby. |
| AuditLogLocation | Výčet určující, do kterého protokolu se má zapisovat. Možné hodnoty jsou Výchozí, Aplikace a Zabezpečení. Když vyberete Výchozí, operační systém určuje skutečné umístění protokolu. Viz část "Volba protokolu událostí aplikace nebo zabezpečení" dále v tomto tématu. |
| MessageAuthenticationAuditLevel | Určuje, které typy událostí ověřování zpráv jsou auditovány na úrovni zprávy. Možnosti jsou None, , FailureSuccessa SuccessOrFailure. |
| ServiceAuthorizationAuditLevel | Určuje, které typy událostí autorizace služby jsou auditovány na úrovni služby. Možnosti jsou None, , FailureSuccessa SuccessOrFailure. |
| SuppressAuditFailure | Určuje, co se stane s požadavkem klienta při selhání auditování. Například když se služba pokusí zapisovat do protokolu zabezpečení, ale nemá SeAuditPrivilege. Výchozí hodnota true značí, že selhání se ignorují a požadavek klienta se zpracovává normálně. |
Příklad nastavení aplikace pro protokolování událostí auditu najdete v tématu Postupy: Auditování událostí zabezpečení.
Konfigurace
Konfiguraci můžete také použít k určení chování auditování přidáním <serviceSecurityAudit> pod <chování>. Prvek musíte přidat pod <chování> , jak je znázorněno v následujícím kódu.
<configuration>
<system.serviceModel>
<behaviors>
<behavior>
<!-- auditLogLocation="Application" or "Security" -->
<serviceSecurityAudit
auditLogLocation="Application"
suppressAuditFailure="true"
serviceAuthorizationAuditLevel="Failure"
messageAuthenticationAuditLevel="SuccessOrFailure" />
</behavior>
</behaviors>
</system.serviceModel>
</configuration>
Pokud je auditování povoleno a auditLogLocation není zadán, výchozí název protokolu je "Zabezpečení" pro platformu podporující zápis do protokolu zabezpečení; v opačném případě je to protokol "Aplikace". Zápis do protokolu zabezpečení podporují pouze operační systémy Windows Server 2003 a Windows Vista. Další informace najdete v části Operační systém dále v tomto tématu.
Aspekty zabezpečení
Pokud uživatel se zlými úmysly ví, že je auditování povolené, může útočník odeslat neplatné zprávy, které způsobí zápis položek auditu. Pokud se tímto způsobem vyplní protokol auditu, systém auditování selže. Chcete-li tento problém zmírnit, nastavte SuppressAuditFailure vlastnost na true a použijte vlastnosti Prohlížeče událostí k řízení chování auditování.
Události auditu zapsané do protokolu aplikací v systému Windows XP jsou viditelné pro všechny ověřené uživatele.
Volba mezi protokoly událostí aplikace a zabezpečení
Následující tabulky obsahují informace, které vám pomůžou zvolit, jestli se chcete přihlásit k aplikaci nebo do protokolu událostí zabezpečení.
Operační systém
| Systém | Záznam aplikace | Protokol zabezpečení |
|---|---|---|
| Windows XP SP2 nebo novější | Podporováno | Není podporováno |
| Windows Server 2003 SP1 a Windows Vista | Podporováno | Kontext vlákna musí mít SeAuditPrivilege |
Další faktory
Kromě operačního systému popisuje následující tabulka další nastavení, která řídí povolení protokolování.
| Faktor | Záznam aplikace | Protokol zabezpečení |
|---|---|---|
| Správa zásad auditu | Nelze použít. | Kromě konfigurace se protokol zabezpečení řídí také zásadami místní autority zabezpečení (LSA). Musí být také povolena kategorie Audit přístupu k objektům. |
| Výchozí uživatelské prostředí | Všichni ověření uživatelé můžou zapisovat do protokolu aplikace, takže pro procesy aplikací není potřeba žádný další krok oprávnění. | Aplikační proces (kontext) musí obsahovat SeAuditPrivilege. |