• Kirk Webb's avatar
    Add taint state tracking for OSes and Nodes. · 1de4e516
    Kirk Webb authored
    Emulab can now propagate OS taint traits on to nodes that load these OSes.
    The primary reason for doing this is for loading images which
    require special treatment of the node.  For example, an OS that has
    proprietary software, and which will be used as an appliance (blackbox)
    can be marked (tainted) as such.  Code that manages user accounts on such
    OSes, along with other side channel providers (console, node admin, image
    creation) can key off of these taint states to prevent or alter access.
    
    Taint states are defined as SQL sets in the 'os_info' and 'nodes' tables,
    kept in the 'taint_states' column in both.  Currently these sets are comprised
    of the following entries:
    
    * usermode: OS/node should only allow user level access (not root)
    * blackbox: OS/node should allow no direct interaction via shell, console, etc.
    * dangerous: OS image may contain malicious software.
    
    Taint states are inherited by a node from OSes it loads during the OS load
    process.  Similarly, they are cleared from nodes as these OSes are removed.
    Any taint state applied to a node will currently enforce disk zeroing.
    
    No other tools/subsystems consider the taint states currently, but that will
    change soon.
    
    Setting taint states for an OS has to be done via SQL presently.
    1de4e516
libosload.pm.in 44.4 KB