Inspekcja zdarzeń dotyczących zabezpieczeń

Aplikacje utworzone za pomocą programu Windows Communication Foundation (WCF) mogą rejestrować zdarzenia zabezpieczeń (powodzenie, niepowodzenie lub oba te aplikacje) za pomocą funkcji inspekcji. Zdarzenia są zapisywane w dzienniku zdarzeń systemu Windows i można je zbadać przy użyciu Podgląd zdarzeń.

Inspekcja umożliwia administratorowi wykrywanie ataku, który już wystąpił lub jest w toku. Ponadto inspekcja może pomóc deweloperowi w debugowaniu problemów związanych z zabezpieczeniami. Jeśli na przykład błąd w konfiguracji autoryzacji lub sprawdzania zasad przypadkowo odmówi dostępu do autoryzowanego użytkownika, deweloper może szybko odnaleźć i wyizolować przyczynę tego błędu, sprawdzając dziennik zdarzeń.

Aby uzyskać więcej informacji na temat zabezpieczeń WCF, zobacz Omówienie zabezpieczeń. Aby uzyskać więcej informacji na temat programowania WCF, zobacz Podstawowe programowanie WCF.

Poziom inspekcji i zachowanie

Istnieją dwa poziomy inspekcji zabezpieczeń:

  • Poziom autoryzacji usługi, w którym obiekt wywołujący jest autoryzowany.

  • Poziom komunikatu, w którym program WCF sprawdza poprawność komunikatu i uwierzytelnia obiekt wywołujący.

Możesz sprawdzić oba poziomy inspekcji pod kątem powodzenia lub niepowodzenia, co jest nazywane zachowaniem inspekcji.

Lokalizacja dziennika inspekcji

Po ustaleniu poziomu inspekcji i zachowania użytkownik (lub administrator) może określić lokalizację dziennika inspekcji. Trzy opcje to: Domyślne, Aplikacja i Zabezpieczenia. Po określeniu wartości Domyślne rzeczywisty dziennik zależy od używanego systemu i tego, czy system obsługuje zapisywanie w dzienniku zabezpieczeń. Aby uzyskać więcej informacji, zobacz sekcję "System operacyjny" w dalszej części tego tematu.

Aby zapisać dane w dzienniku zabezpieczeń, wymagany jest parametr SeAuditPrivilege. Domyślnie tylko konta systemu lokalnego i usługi sieciowej mają te uprawnienia. Aby zarządzać funkcjami read dziennika zabezpieczeń i delete wymaga elementu SeSecurityPrivilege. Domyślnie tylko administratorzy mają te uprawnienia.

Natomiast uwierzytelnieni użytkownicy mogą odczytywać i zapisywać dane w dzienniku aplikacji. System Windows XP domyślnie zapisuje zdarzenia inspekcji w dzienniku aplikacji. Dziennik może również zawierać dane osobowe widoczne dla wszystkich uwierzytelnionych użytkowników.

Pomijanie błędów inspekcji

Inną opcją podczas inspekcji jest to, czy pominąć wszelkie błędy inspekcji. Domyślnie błąd inspekcji nie ma wpływu na aplikację. Jeśli jest to wymagane, można jednak ustawić opcję na false, co powoduje zgłoszenie wyjątku.

Inspekcja programowania

Zachowanie inspekcji można określić programowo lub za pomocą konfiguracji.

Klasy inspekcji

W poniższej tabeli opisano klasy i właściwości używane do programowania zachowania inspekcji.

Klasa opis
ServiceSecurityAuditBehavior Włącza opcje ustawień inspekcji jako zachowanie usługi.
AuditLogLocation Wyliczenie określające, do którego dziennika ma być zapisywany. Możliwe wartości to Default, Application i Security. Po wybraniu pozycji Domyślne system operacyjny określa rzeczywistą lokalizację dziennika. Zobacz sekcję "Wybór dziennika zdarzeń aplikacji lub zabezpieczeń" w dalszej części tego tematu.
MessageAuthenticationAuditLevel Określa typy zdarzeń uwierzytelniania komunikatów są poddawane inspekcji na poziomie komunikatu. Dostępne opcje to None, Failure, Successi SuccessOrFailure.
ServiceAuthorizationAuditLevel Określa typy zdarzeń autoryzacji usługi są poddawane inspekcji na poziomie usługi. Dostępne opcje to None, Failure, Successi SuccessOrFailure.
SuppressAuditFailure Określa, co się stanie z żądaniem klienta w przypadku niepowodzenia inspekcji. Na przykład gdy usługa próbuje zapisać w dzienniku zabezpieczeń, ale nie ma SeAuditPrivilegeelementu . Wartość domyślna wskazuje true , że błędy są ignorowane, a żądanie klienta jest przetwarzane normalnie.

Przykład konfigurowania aplikacji w celu rejestrowania zdarzeń inspekcji można znaleźć w temacie Instrukcje: inspekcja zdarzeń zabezpieczeń.

Konfigurowanie

Możesz również użyć konfiguracji, aby określić zachowanie inspekcji, dodając usługęSecurityAudit><w ramach <zachowań.> Należy dodać element w ramach <zachowania> , jak pokazano w poniższym kodzie.

<configuration>  
  <system.serviceModel>  
    <behaviors>  
      <behavior>  
        <!-- auditLogLocation="Application" or "Security" -->  
        <serviceSecurityAudit  
                  auditLogLocation="Application"  
                  suppressAuditFailure="true"  
                  serviceAuthorizationAuditLevel="Failure"  
                  messageAuthenticationAuditLevel="SuccessOrFailure" />
      </behavior>  
    </behaviors>  
  </system.serviceModel>  
</configuration>  

Jeśli inspekcja jest włączona i auditLogLocation nie jest określona, domyślna nazwa dziennika to "Zabezpieczenia" dla platformy obsługującej zapisywanie w dzienniku zabezpieczeń. W przeciwnym razie jest to dziennik "Aplikacja". Tylko systemy operacyjne Windows Server 2003 i Windows Vista obsługują zapisywanie w dzienniku zabezpieczeń. Aby uzyskać więcej informacji, zobacz sekcję "System operacyjny" w dalszej części tego tematu.

Zagadnienia związane z zabezpieczeniami

Jeśli złośliwy użytkownik wie, że inspekcja jest włączona, osoba atakująca może wysyłać nieprawidłowe komunikaty, które powodują zapisanie wpisów inspekcji. Jeśli dziennik inspekcji zostanie wypełniony w ten sposób, system inspekcji zakończy się niepowodzeniem. Aby temu zapobiec, ustaw SuppressAuditFailure właściwość na true i użyj właściwości Podgląd zdarzeń, aby kontrolować zachowanie inspekcji.

Zdarzenia inspekcji zapisywane w dzienniku aplikacji w systemie Windows XP są widoczne dla dowolnego uwierzytelnionego użytkownika.

Wybieranie między dziennikami zdarzeń aplikacji i zabezpieczeń

Poniższe tabele zawierają informacje ułatwiające wybranie, czy zalogować się do aplikacji, czy dziennika zdarzeń zabezpieczeń.

System operacyjny

System Dziennik aplikacji Dziennik zabezpieczeń
Windows XP z dodatkiem SP2 lub nowszym Obsługiwane Nieobsługiwane
Windows Server 2003 z dodatkiem SP1 i Windows Vista Obsługiwane Kontekst wątku musi zawierać SeAuditPrivilege

Inne czynniki

Oprócz systemu operacyjnego w poniższej tabeli opisano inne ustawienia kontrolujące włączanie rejestrowania.

Współczynnik Dziennik aplikacji Dziennik zabezpieczeń
Zarządzanie zasadami inspekcji Nie dotyczy. Wraz z konfiguracją dziennik zabezpieczeń jest również kontrolowany przez zasady lokalnego urzędu zabezpieczeń (LSA). Należy również włączyć kategorię "Inspekcja dostępu do obiektów".
Domyślne środowisko użytkownika Wszyscy uwierzytelnieni użytkownicy mogą zapisywać w dzienniku aplikacji, więc nie jest wymagany dodatkowy krok uprawnień dla procesów aplikacji. Proces aplikacji (kontekst) musi mieć wartość SeAuditPrivilege.

Zobacz też