5.3 Représentation formelle du modèle de contrôle d’accès
5.3.3 PolicySet
Happens(Mismatch(RuleEve), 0). Happens(Mismatch(RuleWalter), 0). Happens(Mismatch(RuleNestor), 0). Happens(Match(RuleJessy), 0). Happens(Mismatch(RuleMatilda), 0). t1 -RuleTargetHolds(RuleEve). -RuleTargetHolds(RuleWalter). -RuleTargetHolds(RuleNestor). +RuleTargetHolds(RuleJessy). -RuleTargetHolds(RuleMatilda). t2 Happens(RejectRule(RuleEve), 2). Happens(RejectRule(RuleWalter), 2). Happens(RejectRule(RuleNestor), 2). Happens(ApproveRule(RuleJessy), 2). Happens(RejectRule(RuleMatilda), 2). t3 +RuleNotApplicable(RuleEve). +RuleNotApplicable(RuleWalter). +RuleNotApplicable(RuleNestor). +RulePermitted(RuleJessy). +RuleNotApplicable(RuleMatilda). t4 Happens(ApprovePolicy(JessyApplication), 4). t5 +PolicyPermitted(JessyApplication).
Solution 4 (Résultats d’évaluation de politique (Sujet) par Dec-Reasoner)
5.3.3 PolicySet
À partir de cette section, nous appellerons les règles et politiques définies par les sujetsrègle/politique
“de partage”.
UnpolicySetest un ensemble qui permet de regrouper plusieurs politiques. EnXACML, le policySet
est considéré comme la racine de toute autorisation d’accès. Dans notre contexte RSE, nous avons
exploité le concept de policySet pour mettre en parallèle les politiques de partage de ressources
et les politiques des entreprises. Ainsi, une entreprise garde le contrôle à travers ses politiques sur
5.3. Représentation formelle du modèle de contrôle d’accès
les politiques de partage de ressources, et ce au moyen de la combinaison de ces deux niveaux de
politiques.
En effet, les stratégies de combinaisons prennent en compte uniquement les effets (Permit/Deny)
de politiques, ce qui signifie que les politiques de partage et les politiques d’entreprises sont
indé-pendantes. Cette indépendance permet aux entreprises d’avoir la possibilité de définir des politiques
avec un niveau d’abstraction plus élevé et générique. Cependant, afin de pouvoir combiner des
stra-tégies de contrôle d’accès, les deux parties (entreprise, sujet) doivent se mettre au même niveau sur
la structure XACML. Par exemple, en respectant la structure XACML, on ne peut pas combiner des
règles avec des politiques.
Donc, si l’entreprise décide d’avoir un niveau d’abstraction plus élevé de sa stratégie de contrôle
d’accès, elle doit s’aligner avec les stratégies de contrôle d’accès définies par les sujets au niveau des
politiques. En effet, à l’image d’une politique de partage, une politique d’entreprise peut être
com-posée de plusieurs règles. En revanche, afin de respecter l’abstraction recherchée dans les politiques
d’entreprise, cette dernière ne peut pas être basée sur la combinaison d’instances de règles comme
celles définies par les sujets. Une politique d’entreprise doit être définie sur la base de paramètres
plus génériques qui ne se focalisent pas sur chaque instance de partage de ressources. Cela permet
aux entreprises d’avoir une approche flexible de contrôle d’accès.
sort pS, p
fluent PolicySetPermitted(pS), PolicySetDenied(pS), PolicySetNotApplicable(pS) event ApprovePolicySet(pS) event DisApprovePolicySet(pS) event RejectPolicySet(pS) predicate PolicySetHasPolicy(pS,p)
∀pS, time: Initiates (ApprovePolicySet(pS), PolicySetPermitted(pS), time).
∀pS, time: Initiates (DisApprovePolicySet(pS), PolicySetDenied(pS), time).
∀pS, time: Initiates (pejectPolicySet(pS), PolicySetNotApplicable(pS), time).
#Combination strategy : Deny-takes-precedence
∀ pS, p, time: Happens(DisApprovePolicySet(pS),time)→ ∃r: PolicySetHasPolicy(pS,p)∧
HoldsAt(PolicyDenied(p),time). ...(1)
∀ pS, p, time : Happens(ApprovePolicySet(pS),time)∧PolicySetHasPolicy(pS,p)→ Hold-sAt(pulePermitted(p),time). ...(2)
∀ p: ¬HoldsAt (policySetPermitted(pS),0).
∀ p: ¬HoldsAt (policySetDenied(pS),0).
Modèle 9 (Modèle de PolicySet)
Lemodèle 9illustre le patron de modélisation d’un policySet. Comme c’est décrit dans les
pré-dicats(2)et (3), ce modèle se base sur des stratégies de combinaison de politiques, à savoir des
politiques de partage ainsi que des politiques d’entreprise.
5.3.3.1 Politique d’entreprise
Pour définir les politiques d’entreprises, nous nous sommes basés sur une approche d’évaluation
du risque, dont de plus amples détails seront présentés dans le chapitrecf. Évaluation du risque.
Chapitre 5. Contrôle d’accès
Dans cette partie, nous nous contentons uniquement de présenter les patrons de vérification des
politiques d’entreprise basées sur le risque. L’idée principale du mode opératoire du contrôle d’accès
de l’entreprise via le mécanisme de l’évaluation du risque est basé sur la comparaison d’unevaleur
de risquequi résulte d’un ensemble de paramètres avec unseuilde tolérance de risque.
Les paramètres sur lesquels est basée la métrique d’évaluation du risque sont la confiance du
sujet de la requête, la vulnérabilité du contexte et l’impact d’un éventuel accès non autorisé sur la
ressource en question. La métrique de calcul de la valeur du risque ainsi que le choix de paramètres
seront détaillés dans le chapitrecf. Évaluation du risque. Quant au seuil du risque, c’est le paramètre
essentiel défini par l’entreprise pour vérifier si la menace reflétée par une requête donnée, approuvée
par une politique de partage existante, peut être tolérée ou pas.
Lemodèle 10illustre la conception d’une politique d’entreprise, où ces nouveaux paramètres liés
au risque sont intégrés.
sort s, p, userTrLevel, orgTHR predicate UserTrlevel(userTrLevel) predicate ResourceImpact(impact) predicate Vulnerability(vul)
predicate OrganizationRiskThold(orgTHR)
fluent PolicyPermitted(p) , PolicyDenied(p) , ContextHolds(s)
event ApprovePolicy(p) , DisApprovePolicy(p) , RiskHolds(s) , RiskDoesNotHold(s)
∀p, time: Initiates (ApprovePolicy(p), PolicyPermitted(p), time)....(1)
∀p, time: Initiates (DisApprovePolicy(p), PolicyDenied(p), time)....(1’)
∀ s, time: Initiates (RiskHolds(s), ContextHolds(s), time)....(2)
∀ s, time: Terminates (RiskDoesNotHold(s), ContextHolds(s), time). ...(2’)
∀ s, time, userTrLevel, impact, vul, orgTHR : Happens (RiskHolds(s),time) ∧ User-Trlevel(userTrLevel) ∧ ResourceImpact(impact) ∧ Vulnerability(vul) ∧ OrganizationRisk-Thold(orgTHR)→orgTHR≥((1-userTrLevel)+vul+impact)/3....(3)
∀ s, time, userTrLevel, impact, vul, orgTHR : Happens (RiskDoesNotHold(s),time)∧ User-Trlevel(userTrLevel)∧OrganizationRiskThold(orgTHR)∧ResourceImpact(impact)∧ Vulnerabi-lity(vul)→orgTHR<((1-userTrLevel)+vul+impact)/3....(4)
∀ s, p, time: Happens (ApprovePolicy(p),time)→HoldsAt(ContextHolds(s),time). ...(5)
∀ s, p, time: Happens (DisApprovePolicy(p),time)→ ¬HoldsAt(ContextHolds(s),time)....(5’)
∀ s: ¬HoldsAt (PolicyPermitted(s),0).
∀ s: ¬HoldsAt (PolicyDenied(s),0).
∀ s: ¬HoldsAt (ContextHolds(s),0).
Modèle 10 (Politique d’entreprise)