#RSAC #RSAC SESSION ID: SESSION ID: PDAC-R10F How to Delete Data for Realz: This Presentation Will Self-Destruct In... Davi Ottenheimer Ian Smith President Research Scientist Flyingpenguin University of Washington @daviottenheimer @sesosek Rashomon Security
#RSAC Rashomon = Solving “Uncertainty of Fact” * * “The Samurai Film,” Alain Silver, 1983 p 47 Rashomon Security
#RSAC Rising Problem of “ unDEAD ” Data The Ghost Kohada Koheiji Rashomon Rashomon Katsushika Hokusai (1760-1849) Security Security
#RSAC Data Lifecycle Store Access Create Modify Destroy Destroy Share Backup Rashomon Security
#RSAC MSM Awareness Rashomon Security
#RSAC Example: Internet of Snitches US Government collecting social media information from foreign travelers Data from pacemaker used to arrest man for arson, insurance fraud Rashomon Security
#RSAC Example: Plaintext Distributed Data to Cloud Flask DB REST API bins/libs bins/libs Container Engine (Docker) Host OS Rashomon Security
#RSAC Example: War of Words Rashomon Rashomon Security Security
#RSAC “Use Bleach” to Purge History Rashomon Security
#RSAC Broken Solutions Unlinking Overwriting Master Key Physical Destruction Rashomon Security
#RSAC Classic PGP (No Forward Secrecy) is Classic Classic PGP (No Forward Secrecy) is Classic D sk_bob (E pk_bob (M)) E pk_bob (M) → Server → M sk = secret key pk = public key Rashomon Rashomon Security Security
#RSAC Classic PGP (No Forward Secrecy) is Classic D sk_bob (E pk_bob (M)) → E pk_bob (M) → Server M Attacker with sk_bob can read all past messages Rashomon Rashomon Security Security
#RSAC In Search of an Improved Trust Level Rashomon Security
Distributed Expiring Auditable Data (DEAD) #RSAC 1. Automatic expiration timers 2. Always, even when replicated or offline 3. Audited Rashomon Security
#RSAC Data, Prepare to be DEAD Rashomon Security
#RSAC DEAD Example Architecture 1. Automatic: Access gone after expiration 2. Always: Stored keys disappear over time, destroying data 3. Audited: Action required for initial data access Rashomon Security
#RSAC Split secret S into n pieces • Knowledge of any m of them makes S easy to compute. • Knowledge of any m - 1 or fewer leaves S completely undetermined. Plot: Vlsergey Rashomon Security
#RSAC Automatic Key Expiration • Store(secret, expiration time) → index • Get(index) → secret, if not yet expired Expire in: Expire in: 72 hours 72 hours <index> Rashomon Security
#RSAC Automatic Key Expiration • Store(secret, expiration time) → index • Get(index) → secret, if not yet expired <index> not found Rashomon Security
#RSAC Always (Forward Secrecy) Backups Server Server D k (D sk_bob (E pk_bob (E k (M), I))) → M E pk_bob (E k (M), I) → I I E pk_bob (k) →S D sk_bob (S) → k S S Rashomon Security Alice, Bob: xkcd.com
#RSAC Always (Forward Secrecy) Attacker with sk_bob cannot Backups read any expired messages Server Server Server D k (D sk_bob (E pk_bob (E k (M), I))) → M E pk_bob (E k (M), I) → I I E pk_bob (k) →S D sk_bob (S) → k D sk_bob (S) → k S S Rashomon Security Alice, Bob: xkcd.com
#RSAC Audited (e.g. Cloud Delete) Flask DB REST API bins/libs bins/libs Container Engine (Docker) Host OS DEAD Service (audits key requests) Rashomon Security
#RSAC Audited (e.g. Cloud Delete) Flask DB REST API bins/libs bins/libs Container Engine (Docker) Host OS DEAD Service (audits key requests) Rashomon Security
#RSAC Resilient to Attack: Privacy DEAD secrets can not be read without the index %#&$!! Rashomon Security
#RSAC Resilient to Attack: Availability Rashomon Security Alice: xkcd.com
#RSAC Resilient to Attack: Availability Rashomon Security Alice: xkcd.com
#RSAC Resilient to Attack: Privacy + Availability Num. storage locations 1 2 3 4 5 n Quorum threshold 1/1 1/2 2/2 1/3 2/3 3/3 1/4 2/4 3/4 4/4 1/5 2/5 3/5 4/5 5/5 m / n Num. compromised to violate privacy 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 m Num. failed to violate availability 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 n - m + 1 S S 1 S 2 S 3 S 4 S 5 Rashomon Security
#RSAC Resilient to Attack: Privacy + Availability Num. storage locations 1 2 3 4 5 n Quorum threshold 1/1 1/2 2/2 1/3 2/3 3/3 1/4 2/4 3/4 4/4 1/5 2/5 3/5 4/5 5/5 m / n Num. compromised to violate privacy 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 m Num. failed to violate availability 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 n - m + 1 S 1 S 2 S 3 S 4 S 5 Rashomon Security
#RSAC Resilient to Attack: Privacy + Availability Num. storage locations 1 2 3 4 5 n Quorum threshold 1/1 1/2 2/2 1/3 2/3 3/3 1/4 2/4 3/4 4/4 1/5 2/5 3/5 4/5 5/5 m / n Num. compromised to violate privacy 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 m Num. failed to violate availability 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 n - m + 1 S %#&$!! %#&$!! S 1 S 2 S 3 S 4 S 5 Rashomon Security
#RSAC Resilient to Attack: Privacy + Availability Num. storage locations 15 n Quorum threshold 8 / 15 m / n Num. compromised to violate privacy 8 m Num. failed to violate availability 8 n - m + 1 %#&$!! %#&$!! Example: 8/15 %#&$!! %#&$!! %#&$!! %#&$!! %#&$!! Rashomon Security
#RSAC Distributed Expiring Auditable Data (DEAD) 1. Automatic expiration timers 2. Always, even when replicated or offline 3. Audited Rashomon Security
#RSAC Apply 1. Identify data flows in your organization a. Source code b. Customer and operations data c. Internal communications d. API tokens, TLS certs, SSH keys, DB credentials e. Internet of snitches f. Partners and service providers 2. Assess unDEAD data risk (severity x probability) 3. Flag processes where DEAD required Rashomon Security
#RSAC Apply: Russian Containers Rashomon Security
#RSAC Get DEAD • Amazon KMS • Fugue Credstash • HashiCorp Vault • Kubernetes secret objects • Docker SwarmKit secrets • OpenStack Barbican Rashomon Rashomon Security Security
#RSAC DEAD Data Demo Join our Focus-On session Learn how to make data DEAD • Automatic • Always • Audited Time: 2:45 - 3:30 PM Session Code: FON3-R11 Rashomon Security
Recommend
More recommend