Перед тем как рассматривать примеры, нужно ознакомиться со сведениями о моделях безопасности Base, Regex и Flow.
Пример 1
// Описание профиля аудита безопасности trace
// base – объект модели безопасности Base
// session – объект модели безопасности Flow
audit profile trace =
/* Если уровень аудита равен 0, аудитом покрываются
* правила объекта base, когда эти правила возвращают
* результат "запрещено". */
{ 0 :
{ base :
{ kss : ["denied"]
}
}
/* Если уровень аудита равен 1, аудитом покрываются методы
* объекта session в следующих случаях:
* 1. Правила объекта session возвращают результат "разрешено"
* или "запрещено", и конечный автомат находится в состоянии,
* отличном от closed.
* 2. Выражение query объекта session вызывается, и конечный
* автомат находится в состоянии, отличном от closed. */
, 1 :
{ session :
{ kss : ["granted", "denied"]
, omit : ["closed"]
}
}
/* Если уровень аудита равен 2, аудитом покрываются методы
* объекта session в следующих случаях:
* 1. Правила объекта session возвращают результат "разрешено"
* или "запрещено".
* 2. Выражение query объекта session вызывается. */
, 2 :
{ session :
{ kss : ["granted", "denied"]
}
}
}
Пример 2
// Описание профиля аудита безопасности test
// base – объект модели безопасности Base
// re – объект модели безопасности Regex
audit profile test =
/* Если уровень аудита равен 0, правила объекта base
* и выражения объекта re не покрываются аудитом. */
{ 0 :
{ base :
{ kss : []
}
, re :
{ kss : []
, emit : []
}
}
/* Если уровень аудита равен 1, правила объекта
* base не покрываются аудитом, выражения объекта
* re покрываются аудитом.*/
, 1 :
{ base :
{ kss : []
}
, re :
{ kss : []
, emit : ["match", "select"]
}
}
/* Если уровень аудита равен 2, правила объекта base
* и выражения объекта re покрываются аудитом. Правила
* объекта base покрываются аудитом независимо от
* результата, который они возвращают.*/
, 2 :
{ base :
{ kss : ["granted", "denied"]
}
, re :
{ kss : []
, emit : ["match", "select"]
}
}
}
В начало