~/ learn/ comp-400/ cards/ Local and remote exploits, chroot jails, and what assurance actually buys
1 of 8

Encode the reference monitor's three required properties as a checker: given three flags for a candidate kernel, print whether it qualifies and, if not, exactly which properties it fails.

Encode the reference monitor's three required properties as a checker: given three flags for a candidate kernel, print whether it qualifies and, if not, exactly which properties it fails.

Answer

REQUIRED = ('complete mediation', 'tamperproof', 'verifiable') def audit(name, holds): missing = [p for p in REQUIRED if not holds.get(p, False)] if not missing: return name + ': qualifies as a reference monitor' return name + ': NOT a reference monitor (fails ' + ', '.join(missing) + ')' systems = [ ('kernel A', {'complete mediation': True, 'tamperproof': True, 'verifiable': True}), ('kernel B', {'complete mediation': False, 'tamperproof': True, 'verifiable': True}), ('kernel C', {'complete mediation': True, 'tamperproof': False, 'verifiable': False}), ] for name, holds in systems: print(audit(name, holds))

Stallings & Brown 5e ch12 §12.6, §12.9–12.10

space flip · ← → navigate · esc to exit
NORMAL ~/memra/library/4aad0272-6b48-40de-90b6-27d8d174054b/flashcard utf-8 LF