Saltar a contenido

Baseline y control

Un caso corre dos veces desde un estado limpio. El baseline corre el attack y el control sin sandbox. La fase con sandbox los corre bajo el sandbox.

Si el attack no funciona en este host sin sandbox, bloquearlo no prueba nada, y el caso es vacuous. Si el control falla sin sandbox, la culpa es del contract y el caso es invalid-baseline, salvo que el contract declare por qué el control necesita el sandbox (control_requires_sandbox, para un control que habla con el proxy del sandbox).

Un sandbox que detiene el attack rompiendo el control recibe control-broke, así que uno que bloquea todo no pasa. El control corre después del attack en la misma fase, así que no debe depender de nada que un attack exitoso pueda cambiar.

Cuando la garantía necesita una contraparte que solo existe dentro de un sandbox, como un broker de credenciales, el baseline corre contra uno de referencia escrito sin ninguna de las defensas que se están probando. Un attack que no logra pasar el de referencia también es vacuous (Witnesses).

El lab revisa sus propios baselines contra sandboxes de referencia: uno allow-all, bajo el cual cada attack tiene que escapar, y uno deny-all, bajo el cual cada control tiene que romperse.