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

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

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

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

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

Предусмотрены два уровня аудита безопасности.

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

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

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

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

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

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

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

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

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

Программирование аудита

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

Классы аудита

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

Класс Description
ServiceSecurityAuditBehavior Позволяет задавать параметры аудита в виде поведения службы.
AuditLogLocation Перечисление для задания журнала, в который требуется производить запись. Предусмотрены значения Default, Application и Security. Если выбрано значение Default, фактическое расположение журнала определяется операционной системой. См. подраздел "Выбор журнала приложения или журнала безопасности" ниже в этом разделе.
MessageAuthenticationAuditLevel Задает тип событий проверки подлинности сообщений для аудита на уровне сообщения. Предусмотрены варианты None, Failure, Success и SuccessOrFailure.
ServiceAuthorizationAuditLevel Задает тип событий авторизации службы для аудита на уровне службы. Предусмотрены варианты None, Failure, Success и 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 не задан, для систем, поддерживающих запись в журнал безопасности, по умолчанию используется журнал "Security"; в противном случае используется журнал "Application". Только операционные системы Windows Server 2003 и Windows Vista поддерживают запись в журнал безопасности. Дополнительные сведения см. в разделе "Операционная система" далее в этом разделе.

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

Если злоумышленник знает о том, что включен аудит, он может отправить недопустимые сообщения, приводящие к внесению записей аудита в журнал. Если это приводит к заполнению журнала аудита, система аудита дает сбой. Для решения этой проблемы задайте свойству SuppressAuditFailure значение true и используйте свойства средства «Просмотр событий» для управления поведением аудита.

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

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

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

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

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

Прочие факторы

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

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

См. также