Аудит событий безопасности

Приложения, созданные с помощью Windows Communication Foundation (WCF), могут записывать события безопасности (успешное выполнение, сбой или оба) с помощью функции аудита. События записываются в журнал событий системы Windows и могут быть проверены с помощью средства просмотра событий.

Аудит позволяет администраторам обнаруживать уже законченную или происходящую атаку. Кроме того, аудит может помочь разработчику при отладке неполадок, связанных с безопасностью. Например, если в результате ошибки в конфигурации авторизации или политики проверки авторизованному пользователю было отказано в доступе, разработчик может быстро найти и понять причину такой ошибки, изучив журнал событий.

Дополнительные сведения о безопасности WCF см. в разделе «Обзор безопасности». Дополнительные сведения о программировании WCF см. в разделе "Базовый программирование WCF".

Уровень аудита и поведение

Существуют два уровня аудита безопасности:

  • Уровень авторизации услуги, на котором клиент имеет право доступа.

  • Уровень сообщения, на котором WCF проверяет валидность сообщения и аутентификацию вызывающего абонента.

Вы можете проверить оба уровня аудита на успешность или неудачу, что называется аудиторским поведением.

Расположение журнала аудита

После определения уровня аудита и поведения вы (или администратор) можете указать расположение для журнала аудита. Три варианта включают: По умолчанию, Приложение и Безопасность. При указании по умолчанию фактический журнал зависит от используемой системы и того, поддерживает ли система запись в журнал безопасности. Дополнительные сведения см. в разделе "Операционная система" далее в этом разделе.

Для записи в журнал безопасности требуется SeAuditPrivilege. По умолчанию у учетных записей локальной системы и сетевой службы есть эти привилегии. Для управления функциями журнала безопасности read и delete необходимо SeSecurityPrivilege. По умолчанию только администраторы имеют эту привилегию.

В отличие от этого, прошедшие проверку подлинности пользователи могут читать и записывать данные в журнал приложений. Windows XP записывает события аудита в журнал приложений по умолчанию. Журнал также может содержать персональные данные, видимые для всех прошедших проверку подлинности пользователей.

Подавление сбоев аудита

Другим вариантом во время аудита является решение о том, нужно ли подавить сбой аудита. По умолчанию сбой аудита не влияет на приложение. Однако при необходимости можно задать для параметра falseзначение , которое приводит к возникновению исключения.

Аудит программирования

Поведение аудита можно указать программным способом или с помощью конфигурации.

Курсы аудита

В следующей таблице описываются классы и свойства, используемые для поведения аудита программы.

Класс Описание
ServiceSecurityAuditBehavior Позволяет настроить параметры поведения аудита как услуги.
AuditLogLocation Перечисление, чтобы указать, в какой журнал необходимо записать. Возможные значения: Default, Application и Security. При выборе по умолчанию операционная система определяет фактическое расположение журнала. См. раздел "Выбор журнала событий приложения или безопасности" далее в этом разделе.
MessageAuthenticationAuditLevel Указывает, какие типы событий проверки подлинности сообщений проверяются на уровне сообщения. Варианты: None, FailureSuccessи SuccessOrFailure.
ServiceAuthorizationAuditLevel Указывает, какие типы событий авторизации службы проверяются на уровне обслуживания. Варианты: None, FailureSuccessи SuccessOrFailure.
SuppressAuditFailure Указывает, что происходит с запросом клиента при сбое аудита. Например, когда служба пытается записать в журнал безопасности, но не имеет SeAuditPrivilege. Значение true по умолчанию указывает, что ошибки игнорируются, и запрос клиента обрабатывается обычно.

Пример настройки приложения для регистрации событий аудита см. в статье "Практическое руководство. Аудит событий безопасности".

Конфигурация

Вы также можете использовать конфигурацию для указания поведения аудита, добавив <serviceSecurityAudit> в <поведении>. Необходимо добавить элемент в <поведение> , как показано в следующем коде.

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

Если аудит включен и auditLogLocation не указан, имя журнала по умолчанию — "Безопасность" для платформы, поддерживающей запись в журнал безопасности; в противном случае это журнал Application. Только операционные системы Windows Server 2003 и Windows Vista поддерживают запись в журнал безопасности. Дополнительные сведения см. в разделе "Операционная система" далее в этом разделе.

Соображения безопасности

Если злоумышленник знает, что аудит включен, злоумышленник может отправлять недопустимые сообщения, которые вызывают запись аудита. Если журнал аудита заполняется таким образом, система аудита терпит неудачу. Чтобы устранить эту проблему, задайте свойству SuppressAuditFailuretrue и используйте свойства Средства просмотра событий для управления процессом аудита.

События аудита, записанные в журнал приложений в Windows XP, видны любому пользователю, прошедшему проверку подлинности.

Выбор между журналами событий приложений и безопасности

В следующих таблицах содержатся сведения о том, следует ли войти в журнал событий Application или Security.

Операционная система

Система Журнал приложений Журнал безопасности
Windows XP с пакетом обновления 2 (SP2) или более поздней версии Поддерживается Не поддерживается
Windows Server 2003 с пакетом обновления 1 (SP1) и Windows Vista Поддерживается Контекст потока должен иметь SeAuditPrivilege

Другие факторы

Помимо операционной системы, в следующей таблице описаны другие параметры, которые управляют включением ведения журнала.

Фактор Журнал приложений Журнал безопасности
Управление политиками аудита Неприменимо. Наряду с конфигурацией журнал безопасности также управляется политикой локального центра безопасности (LSA). Кроме того, необходимо включить категорию "Доступ к объекту аудита".
Взаимодействие с пользователем по умолчанию Все пользователи, прошедшие проверку подлинности, могут записывать в журнал приложений, поэтому для процессов приложений не требуется дополнительный шаг разрешения. Должен быть SeAuditPrivilegeпроцесс приложения (контекст).

См. также