Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Dalším důležitým aspektem kontrol zabezpečení v systému souborů je přidání auditování (v případě potřeby). Obvykle se to provádí jako součást stejné sady rutin, které provádějí rozhodnutí o zabezpečení, protože účelem auditování je zaznamenávat rozhodnutí o zabezpečení provedená systémem. Například následující kód lze použít k implementaci auditování v systému souborů po dokončení kontrol přístupu:
{
UNICODE_STRING FileAuditObjectName;
RtlInitUnicodeString(&FileAuditObjectName, L"File");
if ( SeAuditingFileOrGlobalEvents (AccessGranted,
&Fcb->SecurityDescriptor,
&AccessState->SubjectSecurityContext)) {
//
// Must pass complete Windows path name, including device name.
//
ConstructAuditFileName(Irp, Fcb, &AuditName);
if (IrpSp->Parameters.Create.SecurityContext->FullCreateOptions
& FILE_DELETE_ON_CLOSE) {
SeOpenObjectForDeleteAuditAlarm(&FileAuditObjectName,
NULL,
&AuditName,
&Fcb->SecurityDescriptor,
AccessState,
FALSE, // Object not created.
// Was it successful?
// Based on SeAccessCheck
SeAccessCheckAccessGranted,
// UserMode or KernelMode
EffectiveMode,
&AccessState->GenerateOnClose
);
} else {
SeOpenObjectAuditAlarm(&FileAuditObjectName,
NULL,
&AuditName,
&Fcb->SecurityDescriptor,
AccessState,
FALSE, // object not created
// Was it successful?
// Based on SeAccessCheck
AccessGranted,
// UserMode or KernelMode
EffectiveMode,
&AccessState->GenerateOnClose
);
}
//
// Free file name here if needed.
//
}