Auditování událostí zabezpečení

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č 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 auditování pomoct vývojáři ladit 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í read protokolu zabezpečení a delete vyžaduje 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í chování auditování.

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í povolené a auditLogLocation nezadáte ho, výchozí název protokolu je "Zabezpečení" pro platformu podporující zápis do protokolu zabezpečení. V opačném případě se jedná o 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. Pokud chcete tento problém zmírnit, nastavte SuppressAuditFailure vlastnost na true vlastnosti Prohlížeč událostí a použijte ji 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émový Protokol aplikace Protokol zabezpečení
Windows XP SP2 nebo novější Podporováno Nepodporová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 Protokol aplikace Protokol zabezpečení
Správa zásad auditu Nevztahuje se. Kromě konfigurace se protokol zabezpečení řídí také zásadami místní autority zabezpečení (LSA). Musí být také povolená kategorie Auditovat přístup 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.

Viz také