Auditing the Hand-Written Inputs of Learned Access Control
Organizations: Department of Electrical Engineering, Sharif University of Technology, Tehran, Iran · Department of Electrical and Computer Engineering, University of Victoria, Victoria, BC, Canada
Abstract
Learned access control is typically deployed behind two hand-built artefacts: a hard-deny set enforced by a small trusted shield, and a region map that decides which requests mined rules answer and which the learner answers. Verifying the shield or measuring the learner validates neither. We audit both on the five public ABAC Lab policies. First, we formalise hard-deny soundness and check it exhaustively over relations of up to 794,250 tuples. Clauses that faithfully transcribe an explicit restriction are unsound at rates of 0.50-0.70 across four elicitors - an author and three blind language-model elicitors - because prose scopes restrictions to a section while the grant relation is a disjunction over all rules: 97% of counterexamples are granted by other rules. Shipped unchecked, these deny sets would withhold 16-78% of everything the policies grant; certified, they withhold nothing. Vacuity, a second silent failure, also occurs. Second, hybrid routing needs a two-class, abstaining rule set that ABAC miners do not emit, and ranking a mixed-effect candidate pool under a cap is one-class in all 24 cells for the two commonest ranking keys. Third, for additive losses the hybrid-versus-learner effect factorises into covered mass times a rule-learner risk contrast that must be reported on both false-non-grant and false-permit loss: on two real policies, most selection rules give opposite verdicts on the two losses, and the one favourable on both holds for one policy, one learner configuration and a band of noise levels. A released artefact regenerates and checks every reported number.
Figures & tables
| component | status | protects | failure consequence |
|---|---|---|---|
| learner | untrusted | — | none on ; bounded by |
| shield | safety TCB | conformance on | unbounded grants |
| hard-deny clauses | safety TCB | soundness of | wrong denials (§ 4 ) |
| attested store | safety TCB | attribute integrity | |
| actuator path | safety TCB | complete mediation | shield bypass |
| statistical gate | guarantee only | marginal FP rate | bound void; unaffected |
| policy | enum. tuples | expl. | other | expl. c/ex |
|---|---|---|---|---|
| E-Document [ 52 ] | 600,000 | 12/14 | 1/2 | 495–6,489 |
| Workforce [ 51 ] | 794,250 | 4/9 | 0/1 | 20–7,665 |
| University [ 2 ] | 6,732 | — | 3/8 | — |
| Project Mgmt [ 2 ] | 3,040 | — | 2/6 | — |
| Healthcare [ 2 ] | 1,008 | — | 7/8 | — |
| total | 16/23 | 13/25 | 20–7,665 |
| provenance | unsound | rate [95% CI] | |
| explicit-restriction (mechanism) | 23 | 16 | 0.696 |
| inferred-exclusivity | 12 | 7 | 0.583 |
| inferred-necessity | 11 | 5 | 0.455 |
| silence | 2 | 1 | 0.500 |
| elicitation-error strata (pooled) | 25 | 13 | 0.520 |
| all strata pooled (uninterpretable) | 48 | 29 | 0.604 |
| mechanism stratum | grants denied | |||||
|---|---|---|---|---|---|---|
| elicitor | model | unsound | rate [95% CI] | vac. | E-Doc. | Workf. |
| R1 | author | 16/23 | 0.696 | 0 | 0.516 | 0.548 |
| L1 | Opus 5.5 | 18/36 | 0.500 | 4 | 0.159 | 0.546 |
| L2 | Sonnet 5.5 | 22/38 | 0.579 | 5 | 0.265 | 0.593 |
| L3 | Haiku 5.5 | 23/35 | 0.657 | 3 | 0.702 | 0.780 |
| L1–L3 pooled | 63/109 | 0.578 | 12 | |||
| default-deny (total) | open-world (abstain) | ||||
| policy | rules | permit-F1 | covered | deny-F1 | |
| E-Document | 35 | 0.934 | 0.000 | 0.048 | 0.000 |
| University | 10 | 0.930 | 0.000 | 0.022 | 0.000 |
| Project Mgmt | 8 | 0.865 | 0.000 | 0.025 | 0.000 |
| Workforce † | 1 | 0.006 | 0.000 | 0.000 | 0.000 |
| † over a 200,000-row sample; see caption. | |||||
| noise process | mean conf. | sd | [email protected] | supp. shift |
|---|---|---|---|---|
| symmetric IID ∗ | 0.8491 | 0.0028 | 0.071 | 0.28 |
| class-dependent † | 0.8494 | 0.0028 | 0.073 | 0.29 |
| attribute-dependent | 0.8561 | 0.0020 | 0.158 | 0.60 |
| block-correlated | 0.8541 | 0.0180 | 0.299 | 0.75 |
| ∗ the model Prop. 2 assumes. † nearly indistinguishable | ||||
| from symmetric here: the reference set is almost entirely deny- | ||||
| selection rule | degen. | rate | minority | inf. mass |
|---|---|---|---|---|
| support | 12/12 | 1.00 | 0.0 | 0.00 |
| confidence (support tb) | 12/12 | 1.00 | 0.0 | 0.16 |
| confidence (low-support tb) | 5/12 | 0.42 | 8.9 | 0.81 |
| lift | 3/12 | 0.25 | 152.5 | 0.31 |
| class-balanced | 0/12 | 0.00 | 90.6 | 0.16 |
| cov.-region F1 | false-non-grant (on grant subpop.) | false-permit (on non-grant subpop.) | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| selection rule | deny | perm. | [95% CI] | [95% CI] | verdict | ||||||
| support (all-deny) | 0.971 | 0.000 | 0.000 | 1.000 | 0.058 | 0.000 | 0.000 | 0.303 | metric-dep. | ||
| conf. (support tb) | 0.990 | 0.179 | 0.931 | 0.870 | 0.148 | 0.839 | 0.000 | 0.188 | metric-dep. | ||
| conf. (low-supp. tb) | 0.971 | 0.133 | 0.927 | 0.917 | 0.105 | 0.930 | 0.003 | 0.333 | metric-dep. | ||
| lift (all-permit) | 0.000 | 0.766 | 0.122 | 0.000 | 0.048 | 0.968 | 1.000 | 0.715 | metric-dep. | ||
| class-balanced | 0.931 | 0.852 | 0.257 | 0.011 | 0.044 | 0.879 | 0.125 | 0.240 | rules | ||
| rule | FNG contrast [95% CI] | FP contrast [95% CI] | |
|---|---|---|---|
| 0.00 | support | ||
| class-bal. | |||
| 0.02 | support | ||
| class-bal. | |||
| 0.05 | support | ||
| class-bal. |
| learner | thr. | F1 | FNG | FP contrast [95% CI] | verdict |
|---|---|---|---|---|---|
| default | .500 | .587 | metric-dep. | ||
| balanced | .500 | .547 | rules | ||
| tuned | .255 | .709 | metric-dep. | ||
| bal.+tuned | .582 | .699 | metric-dep. |
| selection rule | FNG contrast [95% CI] | FP contrast [95% CI] | |
|---|---|---|---|
| support (all-deny) | 0.000 | ||
| conf. (support tb) | 0.976 | ||
| conf. (low-supp. tb) | 0.975 | ||
| lift | 0.958 | ||
| class-balanced | 0.958 |
| E-Document | Workforce | |||||
| arm | FP | FNG | -gr. | FP | FNG | -gr. |
| learner | 0.303 | 0.058 | 0.415 | 0.198 | 0.031 | 0.211 |
| shield, certified | 0.284 | 0.058 | 0.000 | 0.164 | 0.031 | 0.000 |
| shield, unchecked | 0.080 | 0.538 | 0.000 | 0.158 | 0.580 | 0.000 |
| hybrid | 0.288 | 0.033 | 0.395 | 0.187 | 0.046 | 0.198 |
| shield, certified | 0.271 | 0.033 | 0.000 | 0.155 | 0.046 | 0.000 |
| arm | FP | deny | esc | -grant | resid. | |
|---|---|---|---|---|---|---|
| deny-by-default | 0.0000 | 1.0000 | 0.0000 | 1.0000 | 0.0000 | 0.000 |
| rules | 0.2060 | 0.2714 | 0.0017 | 0.2731 | 0.2231 | 0.000 |
| rules+shield | 0.0000 | 0.2198 | 0.0000 | 0.2198 | 0.0000 | 0.000 |
| learner (raw) | 0.0289 | 0.0836 | 0.0000 | 0.0836 | 0.0238 | 0.276 |
| learner+shield | 0.0160 | 0.0947 | 0.0000 | 0.0947 | 0.0000 | 0.276 |
| hybrid | 0.2310 | 0.0507 | 0.0017 | 0.0524 | 0.2405 | 0.268 |
| corruption | honest | advers. | |||
|---|---|---|---|---|---|
| abstraction | 0.2680 | 0.0000 | 0.1862 | 0.0009 | 0.2680 |
| missing attributes | 0.5976 | 0.0000 | 0.4151 | 0.0279 | 0.5976 |
| stale policy | 0.1477 | 0.0000 | 0.1026 | 0.0292 | 0.1477 |
| availability (control) | 0.0000 | 0.4421 | 0.1350 | 0.0000 | 0.0000 |
| artefact | report | see |
|---|---|---|
| hard-deny set | soundness certificate, coverage of each clause, size of the enumerated relation | § 4 |
| elicitation | protocol, number of elicitors, provenance strata reported apart | § 4.4 , § 4.6 |
| mining | against ; support distribution of retained rules | § 5.2 |
| region map | semantics (total or abstaining), class composition, full operator tuple | § 5 |
| routing | on every additive loss, with the learner configuration | § 6 |
| cost | denial and abstention separately; any price stated | § 7.3 |
Appendix figures & tables7 assets
Supplementary material from the paper’s appendix.
Appendix
| ID | strat. | verdict | cov. | c/ex | clause |
|---|---|---|---|---|---|
| HC1 | excl. | unsound | 68 | 9 | action in [’addItem’] AND resource.type in HR AND NOT user.position in nurse |
| HC2 | nec. | unsound | 68 | 9 | action in [’addItem’] AND resource.type in HR AND NOT user.ward = resource.ward |
| HC3 | nec. | unsound | 80 | 4 | action in [’addNote’] AND resource.type in HR AND NOT user.uid = resource.patient |
| HC4 | excl. | unsound | 240 | 6 | action in [’read’] AND resource.type in HRitem AND NOT user.uid = resource.author |
| HC5 | nec. | unsound | 236 | 8 | action in [’read’] AND resource.type in HRitem AND NOT user.specialties > resource.topics |
| HC6 | sil. | unsound | 48 | 4 | action in [’read’] AND resource.type in HRitem AND user.position in nurse |
| policy | rule | section / subsection | R1 | L1 | L2 | L3 |
|---|---|---|---|---|---|---|
| edocument | 1 | eDocs / General | U | U | U | U |
| edocument | 3 | eDocs / Helpdesk | S | S | – | – |
| edocument | 7 | Large Bank / Invoices | U | U | U | U |
| edocument | 8 | Large Bank / Banking Notes | U | U | U | U |
| edocument | 9 | Large Bank / Paychecks | U | U | U | U |
| edocument | 10 | Large Bank / Sales Offers | U | U | U | U |
| elicitor | clauses | c/ex | own rule | other subsect. | other tenant | scoped repair |
|---|---|---|---|---|---|---|
| R1 | 16 | 31,393 | 0.000 | 0.783 | 0.592 | 3/16 |
| L1 | 17 | 17,192 | 0.034 | 0.819 | 0.661 | 1/18 |
| L2 | 22 | 25,939 | 0.023 | 0.878 | 0.552 | 3/22 |
| L3 | 22 | 62,930 | 0.055 | 0.905 | 0.661 | 4/23 |
| E-Document arm | FP | FNG | -grant |
|---|---|---|---|
| learner | 0.303 [0.294, 0.312] | 0.058 [0.050, 0.068] | 0.415 [0.377, 0.452] |
| learner+shield | 0.284 [0.276, 0.292] | 0.058 [0.050, 0.068] | 0.000 [0.000, 0.000] |
| learner+shield(unchecked H) | 0.080 [0.077, 0.083] | 0.538 [0.528, 0.549] | 0.000 [0.000, 0.000] |
| hybrid | 0.288 [0.279, 0.298] | 0.033 [0.028, 0.040] | 0.395 [0.359, 0.431] |
| hybrid+shield | 0.271 [0.262, 0.279] | 0.033 [0.028, 0.040] | 0.000 [0.000, 0.000] |
| hybrid+shield(unchecked H) | 0.077 [0.074, 0.081] | 0.522 [0.513, 0.534] | 0.000 [0.000, 0.000] |
| Workforce arm | FP | FNG | -grant |
|---|---|---|---|
| learner | 0.198 [0.190, 0.206] | 0.031 [0.025, 0.038] | 0.211 [0.187, 0.236] |
| learner+shield | 0.164 [0.156, 0.173] | 0.031 [0.025, 0.038] | 0.000 [0.000, 0.000] |
| learner+shield(unchecked H) | 0.158 [0.150, 0.167] | 0.580 [0.568, 0.593] | 0.000 [0.000, 0.000] |
| hybrid | 0.187 [0.179, 0.194] | 0.046 [0.038, 0.053] | 0.198 [0.175, 0.223] |
| hybrid+shield | 0.155 [0.147, 0.163] | 0.046 [0.038, 0.053] | 0.000 [0.000, 0.000] |
| hybrid+shield(unchecked H) | 0.149 [0.141, 0.157] | 0.590 [0.577, 0.603] | 0.000 [0.000, 0.000] |
| interval | arm | FP | DNG | ENG |
|---|---|---|---|---|
| [email protected] | 0.0000 | 0.0000 | 0.7567 | |
| [email protected] | 0.0001 | 0.0005 | 0.5765 | |
| [email protected] | 0.0013 | 0.0049 | 0.4175 | |
| [email protected] | 0.0041 | 0.0164 | 0.3038 | |
| [email protected] | 0.0094 | 0.0336 | 0.2004 | |
| hybrid+shield | 0.0156 | 0.0766 | 0.0000 |
| test | property checked | cases | result |
|---|---|---|---|
| T1 | no action of the shield grants on (Lemma 1 (i)) (attested=False) | 5578 H-states x 5 actions = 27890 cases | PASS |
| T1 | no action of the shield grants on (Lemma 1 (i)) (attested=True) | 5578 H-states x 5 actions = 27890 cases | PASS |
| T2 | break-glass set disjoint from (attested=False) | n=8000 | PASS |
| T2 | break-glass set disjoint from (attested=True) | n=8000 | PASS |
| T3 | break-glass set contains no request refuses (attested=False) | n=8000, violations=0 | PASS |
| T3 | break-glass set contains no request refuses (attested=True) | n=8000, violations=0 | PASS |
Access Control
Access control specifies and enforces who or what may access data and perform actions, under which conditions.
See all 71 papers