Udostępnij za pośrednictwem


Audyt zdarzeń bezpieczeństwa

Aplikacje utworzone za pomocą platformy Windows Communication Foundation (WCF) mogą rejestrować zdarzenia zabezpieczeń (powodzenie, niepowodzenie lub oba przypadki) za pomocą funkcji audytowania. Zdarzenia są zapisywane w dzienniku zdarzeń systemu Windows i można je zbadać za pomocą Podglądu 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 Security Overview. 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 audytu

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. Do zarządzania funkcjami dziennika zabezpieczeń read i delete wymagany jest element 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.

Tłumienie błędów audytu

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.

Zajęcia audytorskie

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

Klasa Opis
ServiceSecurityAuditBehavior Umożliwia ustawienie opcji dla zachowania usługi związanych z procesem audytu.
AuditLogLocation Wyliczenie, które określa, do którego dziennika należy prowadzić zapisy. 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, które typy zdarzeń uwierzytelniania komunikatów są poddawane audytowi na poziomie wiadomości. Dostępne opcje to None, Failure, Successi SuccessOrFailure.
ServiceAuthorizationAuditLevel Określa, które typy zdarzeń autoryzacji usługi są kontrolowane 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 SeAuditPrivilege. Wartość domyślna wskazuje true , że błędy są ignorowane, a żądanie klienta jest przetwarzane normalnie.

Przykład konfigurowania aplikacji w celu rejestrowania zdarzeń audytowych można znaleźć w Jak: Audyt zdarzeń zabezpieczeń.

Konfiguracja

Możesz również użyć konfiguracji, aby określić zachowanie inspekcji, dodając usługęSecurityAudit<> w ramach< zachowań>. Należy dodać element pod <behavior>, 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 "dziennik Zabezpieczeń" na platformie, która obsługuje zapisywanie w dzienniku Zabezpieczeń; w przeciwnym razie jest to "dziennik Aplikacji". 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 dotyczące zabezpieczeń

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 to złagodzić, ustaw właściwość SuppressAuditFailure na true i użyj właściwości podglądu 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 Wsparte Niewspierane
Windows Server 2003 z dodatkiem SP1 i Windows Vista Wsparte Kontekst wątku musi zawierać SeAuditPrivilege

Inne czynniki

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

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ę "Audyt 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 także