Vulnerabilities in MLC NAND Flash Memory Programming: Experimental Analysis, Exploits, and Mitigation Techniques Yu Cai, Saugata Ghose, Yixin Luo, Ken.

Slides:



Advertisements
Similar presentations
Flash storage memory and Design Trade offs for SSD performance
Advertisements

Thank you for your introduction.
LEVERAGING ACCESS LOCALITY FOR THE EFFICIENT USE OF MULTIBIT ERROR-CORRECTING CODES IN L2 CACHE By Hongbin Sun, Nanning Zheng, and Tong Zhang Joseph Schneider.
0 秘 Type of NAND FLASH Discuss the Differences between Flash NAND Technologies: SLC :Single Level Chip MLC: Multi Level Chip TLC: Tri Level Chip Discuss:
Reducing Read Latency of Phase Change Memory via Early Read and Turbo Read Feb 9 th 2015 HPCA-21 San Francisco, USA Prashant Nair - Georgia Tech Chiachen.
From Sequences of Dependent Instructions to Functions An Approach for Improving Performance without ILP or Speculation Ben Rudzyn.
1 Eitan Yaakobi, Laura Grupp Steven Swanson, Paul H. Siegel, and Jack K. Wolf Flash Memory Summit, August 2010 University of California San Diego Efficient.
1 Error Correction Coding for Flash Memories Eitan Yaakobi, Jing Ma, Adrian Caulfield, Laura Grupp Steven Swanson, Paul H. Siegel, Jack K. Wolf Flash Memory.
Coding for Flash Memories
Yinglei Wang, Wing-kei Yu, Sarah Q. Xu, Edwin Kan, and G. Edward Suh Cornell University Tuan Tran.
Yu Cai1 Gulay Yalcin2 Onur Mutlu1 Erich F. Haratsch3
3/20/2013 Threshold Voltage Distribution in MLC NAND Flash: Characterization, Analysis, and Modeling Yu Cai 1, Erich F. Haratsch 2, Onur Mutlu 1, and Ken.
Yu Cai1, Erich F. Haratsch2 , Onur Mutlu1 and Ken Mai1
Thank you for your introduction.
File system support on Multi Level Cell (MLC) flash in open source April 17, 2008 Kyungmin Park Software Laboratories Samsung Electronics.
Program Interference in MLC NAND Flash Memory: Characterization, Modeling, and Mitigation Yu Cai 1 Onur Mutlu 1 Erich F. Haratsch 2 Ken Mai 1 1 Carnegie.
/38 Lifetime Management of Flash-Based SSDs Using Recovery-Aware Dynamic Throttling Sungjin Lee, Taejin Kim, Kyungho Kim, and Jihong Kim Seoul.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. NON.
Yu Cai, Yixin Luo, Erich F. Haratsch*, Ken Mai, Onur Mutlu
1 Review Of “A 125 MHz Burst-Mode Flexible Read While Write 256Mbit 2b/c 1.8V NOR Flash Memory” Adopted From: “ISSCC 2005 / SESSION 2 / NON-VOLATILE MEMORY.
2010 IEEE ICECS - Athens, Greece, December1 Using Flash memories as SIMO channels for extending the lifetime of Solid-State Drives Maria Varsamou.
Extracting Robust Keys from NAND Flash Physical Unclonable Functions Shijie Jia, Luning Xia, Zhan Wang, Jingqiang Lin, Guozhu Zhang and Yafei Ji Institute.
Embedded System Lab. Daeyeon Son Neighbor-Cell Assisted Error Correction for MLC NAND Flash Memories Yu Cai 1, Gulay Yalcin 2, Onur Mutlu 1, Erich F. Haratsch.
Implicit-Storing and Redundant- Encoding-of-Attribute Information in Error-Correction-Codes Yiannakis Sazeides 1, Emre Ozer 2, Danny Kershaw 3, Panagiota.
Neighbor-Cell Assisted Error Correction for MLC NAND Flash Memories Yu Cai 1 Gulay Yalcin 2 Onur Mutlu 1 Erich F. Haratsch 3 Adrian Cristal 2 Osman S.
Carnegie Mellon University, *Seagate Technology
1 November 11, 2015 The Evolution of Memory Architecture November 11, 2015 Dr. Amit Berman Senior Engineer, Samsung.
Data Retention in MLC NAND FLASH Memory: Characterization, Optimization, and Recovery. 서동화
ECE/CS 552: Main Memory and ECC © Prof. Mikko Lipasti Lecture notes based in part on slides created by Mark Hill, David Wood, Guri Sohi, John Shen and.
07/11/2005 Register File Design and Memory Design Presentation E CSE : Introduction to Computer Architecture Slides by Gojko Babić.
Eitan Yaakobi, Laura Grupp Steven Swanson, Paul H. Siegel, and Jack K. Wolf Flash Memory Summit, August 2011 University of California San Diego Error-Correcting.
Carnegie Mellon University, *Seagate Technology
Yixin Luo, Saugata Ghose, Yu Cai, Erich F. Haratsch, Onur Mutlu Carnegie Mellon University, Seagate Technology Online Flash Channel Modeling and Its Applications.
COS 518: Advanced Computer Systems Lecture 8 Michael Freedman
CMSC 611: Advanced Computer Architecture
What you should know about Flash Storage
Lecture 19: SRAM.
Neighbor-Cell Assisted Error Correction for MLC NAND Flash Memories
Random access memory Sequential circuits all depend upon the presence of memory. A flip-flop can store one bit of information. A register can store a single.
DuraCache: A Durable SSD cache Using MLC NAND Flash Ren-Shuo Liu, Chia-Lin Yang, Cheng-Hsuan Li, Geng-You Chen IEEE Design Automation Conference.
Aya Fukami, Saugata Ghose, Yixin Luo, Yu Cai, Onur Mutlu
Understanding Latency Variation in Modern DRAM Chips Experimental Characterization, Analysis, and Optimization Kevin Chang Abhijith Kashyap, Hasan Hassan,
SRAM Memory External Interface
Random access memory Sequential circuits all depend upon the presence of memory. A flip-flop can store one bit of information. A register can store a single.
nZDC: A compiler technique for near-Zero silent Data Corruption
Write-hotness Aware Retention Management: Efficient Hot/Cold Data Partitioning for SSDs Saugata Ghose ▪ joint.
Cache Memory Presentation I
Maintaining Data Integrity in Programmable Logic in Atmospheric Environments through Error Detection Joel Seely Technical Marketing Manager Military &
Neighbor-cell Assisted Error Correction for MLC NAND Flash Memories
Yixin Luo Saugata Ghose Yu Cai Erich F. Haratsch Onur Mutlu
Jeremie S. Kim Minesh Patel Hasan Hassan Onur Mutlu
Exploiting Inter-Warp Heterogeneity to Improve GPGPU Performance
COS 518: Advanced Computer Systems Lecture 8 Michael Freedman
Vulnerabilities in MLC NAND Flash Memory Programming: Experimental Analysis, Exploits, and Mitigation Techniques HPCA Session 3A – Monday, 3:15 pm,
Yixin Luo Saugata Ghose Yu Cai Erich F. Haratsch Onur Mutlu
Memory Architecture and Storage Systems
Performance metrics for caches
Committee: Onur Mutlu (Chair) Phillip B. Gibbons James C. Hoe
Performance metrics for caches
Yixin Luo Saugata Ghose Yu Cai Erich F. Haratsch Onur Mutlu
Performance metrics for caches
Jazan University, Jazan KSA
COS 518: Advanced Computer Systems Lecture 9 Michael Freedman
Prof. Onur Mutlu ETH Zürich Fall November 2018
Performance metrics for caches
A Novel Cache-Utilization Based Dynamic Voltage Frequency Scaling (DVFS) Mechanism for Reliability Enhancements *Yen-Hao Chen, *Yi-Lun Tang, **Yi-Yu Liu,
4-Bit Register Built using D flip-flops:
Yu Cai, Yixin Luo, Erich F. Haratsch, Ken Mai, Onur Mutlu
Architecting Phase Change Memory as a Scalable DRAM Alternative
Dong Hyun Kang, Changwoo Min, Young Ik Eom
Presentation transcript:

Vulnerabilities in MLC NAND Flash Memory Programming: Experimental Analysis, Exploits, and Mitigation Techniques Yu Cai, Saugata Ghose, Yixin Luo, Ken Mai, Onur Mutlu, Erich F. Haratsch February 6, 2017

Executive Summary MLC (multi-level cell) NAND flash uses two- step programming We find new reliability and security vulnerabilities In between two steps, cells are in a partially- programmed state Program interference, read disturb much worse for partially-programmed cells than for fully- programmed cells We experimentally characterize vulnerabilities using real state-of-the-art MLC NAND flash memory chips We show that malicious programs can exploit vulnerabilities to corrupt data of other programs and reduce flash memory lifetime We propose three solutions that target vulnerabilities One solution completely eliminates vulnerabilities, at the expense of 4.9% program latency increase Two solutions mitigate vulnerabilities, increasing flash lifetime by 16% Fix image of partially-programmed cell

Presentation Outline Executive Summary NAND Flash Background Characterizing New Vulnerabilities in Two-Step Programming Example Sketches of Security Exploits Protection and Mitigation Mechanisms Conclusion

Storing Data in NAND Flash Memory Flash cell uses the threshold voltage of a floating-gate transistor to represent the data stored in the cell Per-bit cost of NAND flash memory has greatly decreased Aggressive process technology scaling Multi-level cell (MLC) technology Flash Cell NAND Flash Chip 11 MSB: Most Significant Bit LSB: Least Significant Bit Animate: interference arrows, increase as scaling, two steps of programming Add MSB/LSB Add partially-programmed, fully-programmed

Programming Data to a Multi-Level Cell Cell programmed by pulsing a large voltage on the transistor gate Cell-to-cell program interference Threshold voltage of a neighboring cell inadvertently increases Worsens as flash memory scales Mitigation: two-step programming 00 00 10 Program ?? 00 01 10 01 Animate: interference arrows, increase as scaling, two steps of programming Add MSB/LSB Add partially-programmed, fully-programmed Step 1 Step 2 ?? ?0 00

Reading Data from a Multi-Level Cell Threshold voltages represented as a probability distribution Due to process variation Each two-bit value corresponds to a state (a range of threshold voltages) Read reference voltages (Va, Vb, Vc) Identify the state a cell belongs to Applied to the transistor gate to see if a cell turns on Va Vb Vc Probability Density ER 11 P1 01 P2 00 P3 10 MSB LSB Threshold Voltage (Vth)

NAND Flash Memory Errors and Lifetime During a read, raw bit errors occur when the cell threshold voltage incorrectly shifts to a different state Controller employs sophisticated ECC to correct errors If errors exceed ECC limit, flash memory has exhausted its lifetime Raw Bit Error Rate (RBER) ECC Correction Capability Lifetime Program/Erase (P/E) Cycles OUR GOAL Understand how two-step programming affects flash memory errors and lifetime (and what potential vulnerabilities it causes)

Presentation Outline Executive Summary NAND Flash Background Characterizing New Vulnerabilities in Two-Step Programming How Can Two-Step Programming Introduce Errors? Program Interference Read Disturb Example Sketches of Security Exploits Protection and Mitigation Mechanisms Conclusion

How Can Two-Step Programming Introduce Errors? Controller Flash Memory MSB . . . ECC Engine MSB data LSB data LSB Read With Errors MSB 0 LSB 0 . . . MSB 1 LSB 1 MSB n LSB n MSB Read Without Errors Internal Buffers . . . LSB Cell starts in the erased state Step 1 – LSB: Partially program the cell to a temporary state Errors are introduced into the partially-programmed LSB data Step 2 – MSB: Program the cell to its final state LSB data is read with errors into internal LSB buffer, not corrected by ECC MSB data comes from controller to internal MSB buffer Update image with new labels, animate, add X’s to LSB Collapse distributions to a single graph Errors in internal LSB buffer data cause the cell to be programmed to an incorrect state

Cell-to-Cell Program Interference Flash cells are grouped into multiple wordlines (rows) Two-step programming interleaves LSB, MSB steps of neighboring wordlines Steps interleaved using shadow program sequencing LSB . . . Wordline 2 Wordline Wordline 1 LSB MSB . . . Wordline 1 MSB . . . Wordline 0 A: LSB of Wordline 1 programmed: no interference Vref B: After programming MSB of Wordline 0 Steps for neighboring wordlines cause interference on partially-programmed cells How bad is this interference? Probability Density ER TP C: After programming LSB of Wordline 2 Vth D: Error when programming MSB of Wordline 1

Characterizing Errors in Real NAND Flash Chips We perform experiments on real state- of-the-art 1x-nm (i.e., 15-19nm) MLC NAND flash memory chips More info: Cai et al., FPGA-Based Solid- State Drive Prototyping Platform, FCCM 2011 NAND Flash Daughterboard FPGA Flash Controller

Measuring Errors Induced by Program Interference Error rate increases with each programming step A: Before interference (LSBs in Wordline n just programmed) B: After programming pseudo-random data to MSBs in Wordline n-1 C: After programming pseudo-random data to MSBs in Wordline n-1 and LSBs in Wordline n+1 Interference depends on the data value being programmed Higher voltage  more programming pulses  more interference W: After programming worst-case data pattern to Wordlines n-1 and n+1 4.9x Raw Bit Error Rate (Normalized to A) Program interference with worst-case data pattern increases the error rate of partially-programmed cells by 4.9x

Read Disturb Bitline Flash block: cells from multiple wordlines connected together on bitlines (columns) Reading a cell from a bitline Apply read reference voltage (Vref) to cell Apply a pass-through voltage (Vpass) to turn on all unread cells Pass-through voltage has a weak programming effect Vpass . . . Wordline 2 Vref . . . Wordline 1 Vpass . . . Wordline 0 LARGER GAP  GREATER EFFECT ER Unprogrammed Partially-programmed and unprogrammed cells more susceptible to read disturb errors Vpass Partially Programmed ER TP Fully Programmed ER P1 P2 P3 Vth

Measuring Errors Induced by Read Disturb Errors in Data Not Programmed When Read Disturb Occurs Read Disturb Count 10-1 10-2 10-3 10-4 Order of Magnitude Increase LSB Data Raw Bit Error Rate A C B Todo: make graphs bigger Induce read disturbs on: A: Fully-programmed cells B: Partially-programmed cells C: Unprogrammed cells After read disturb, program remaining data and check error rate LSB data in partially-programmed and unprogrammed cells most susceptible to read disturb

Presentation Outline Executive Summary NAND Flash Background Characterizing New Vulnerabilities in Two-Step Programming Example Sketches of Security Exploits Program Interference Based Exploit Read Disturb Based Exploit Protection and Mitigation Mechanisms Conclusion

Sketch of Program Interference Based Exploit Malicious program targets a piece of data that belongs to a victim program Goal: Maximize program interference induced on victim program’s data Write worst-case data pattern to neighboring wordlines (WL) Wordlines 0/1: all 1s to keep at lowest possible threshold voltage Wordline 2: victim program writes data Wordlines 1 and 3: all 0s to program to highest possible threshold voltage In the paper More details on why this works Procedure to work around data scrambling MSB WL 3 3b Malicious File B (all 0s) LSB MSB WL 2 2 Data Under Attack LSB MSB 3a Malicious File B (all 0s) WL 1 Malicious File A (all 1s) LSB 1 MSB Malicious File A (all 1s) WL 0 LSB

Presentation Outline Executive Summary NAND Flash Background Characterizing New Vulnerabilities in Two-Step Programming Example Sketches of Security Exploits Program Interference Based Exploit Read Disturb Based Exploit: in the paper Protection and Mitigation Mechanisms Conclusion

Presentation Outline Executive Summary NAND Flash Background Characterizing New Vulnerabilities in Two-Step Programming Example Sketches of Security Exploits Protection and Mitigation Mechanisms Buffering LSB Data in the Controller Multiple Pass-Through Voltages Adaptive LSB Read Reference Voltage Conclusion

1. Buffering LSB Data in the Controller Key Observation: During MSB programming, LSB data is read from flash cells with uncorrected interference and read disturb errors Key Idea: Keep a copy of the LSB data in the controller Controller Flash Memory Read Without Errors MSB . . . ECC Engine MSB data LSB Read With Errors MSB 0 LSB 0 . . . MSB 1 LSB 1 MSB n LSB n LSB data Internal Buffers . . . Completely eliminates vulnerabilities to program interference and read disturb Typical case: 4.9% increase in programming latency

2. Multiple Pass-Through Voltages Key Observation: Large gap between threshold voltage and pass-through voltage (Vpass) increases errors due to read disturb Key Idea: Minimize gap by using three pass-through voltages Reduces raw bit error rate by 72% Increases flash lifetime by 16% erase Vpass Vpass ER Unprogrammed LARGE GAP partial Vpass Partially Programmed ER TP Fully Programmed ER P1 P2 P3 Vth Mitigates vulnerabilities to read disturb No increase in programming latency

Presentation Outline Executive Summary NAND Flash Background Characterizing New Vulnerabilities in Two-Step Programming Example Sketches of Security Exploits Protection and Mitigation Mechanisms Buffering LSB Data in the Controller Multiple Pass-Through Voltages Adaptive LSB Read Reference Voltage: in the paper Conclusion

Presentation Outline Executive Summary NAND Flash Background Characterizing New Vulnerabilities in Two-Step Programming Example Sketches of Security Exploits Protection and Mitigation Mechanisms Conclusion

Executive Summary We find new reliability and security vulnerabilities in MLC NAND flash memory In between two steps, cells are in a partially- programmed state Program interference, read disturb much worse for partially-programmed cells than for fully- programmed cells We experimentally characterize vulnerabilities using real state-of-the-art MLC NAND flash memory chips We show that malicious programs can exploit vulnerabilities to corrupt data of other programs and reduce flash memory lifetime We propose three solutions that target vulnerabilities One solution completely eliminates vulnerabilities, at the expense of 4.9% program latency increase Two solutions mitigate vulnerabilities, increasing flash lifetime by 16% Fix image of partially-programmed cell

Vulnerabilities in MLC NAND Flash Memory Programming: Experimental Analysis, Exploits, and Mitigation Techniques Yu Cai, Saugata Ghose, Yixin Luo, Ken Mai, Onur Mutlu, Erich F. Haratsch February 6, 2017

Backup Slides

NAND Flash Memory Scaling SSDs use NAND flash memory chips, which contain billions of flash cells Per-bit cost of NAND flash memory has greatly decreased thanks to scaling Aggressive process technology scaling Flash cell size decreases Cells placed closer to each other Multi-level cell (MLC) technology Each flash cell represents data using a threshold voltage MLC stores two bits of data in a single cell 128GB NAND Flash 256GB NAND Flash Animate: smaller cells, closer together, SLC  TLC Color MSB/LSBs 01 11 11 00 11 10 00 10 MSB: Most Significant Bit LSB: Least Significant Bit

Two-Step Programming Per-bit cost of NAND flash memory has greatly decreased Aggressive process technology scaling Multi-level cell (MLC) technology Flash cell programmed by pulsing a large voltage to the cell transistor Cell-to-cell program interference Threshold voltage of a neighboring cell inadvertently increases Worsens as flash memory scales Mitigation: two-step programming NAND Flash Chip 01 11 11 00 11 10 00 10 MSB: Most Significant Bit LSB: Least Significant Bit 11 11 10 Animate: interference arrows, increase as scaling, two steps of programming Add MSB/LSB Add partially-programmed, fully-programmed Program ?? 00 10 10 Step 1 Step 2 ?? ?0 00

Representing Data in MLC NAND Flash Memory Flash cell uses floating-gate transistor threshold voltage to represent the data stored in the cell Threshold voltages represented as a probability distribution Each two-bit value corresponds to a state (a range of threshold voltages) Read reference voltages (Va, Vb, Vc) identify the state a cell belongs to Va Vb Vc Probability Density ER 11 P1 01 P2 00 P3 10 MSB LSB Threshold Voltage (Vth)

Threshold Voltage Distributions During Programming ER XX Unprogrammed Starting Vth Probability Density MSB LSB ER X1 TP X0 1. Program LSB Probability Density Temporary Vth Probability Density ER 11 P1 01 P2 00 P3 10 2. Program MSB Final Vth

Characterizing NAND Flash Memory Reliability Raw bit errors occur when the cell threshold voltage incorrectly shifts to a different state Error Rate Raw Bit ECC Correction Capability Lifetime Program/Erase (P/E) Cycles We experimentally characterize RBER, lifetime of state-of-the-art 1x-nm (i.e., 15-19nm) MLC NAND flash memory chips

Malicious Program Behavior Raw Bit Error Rate ECC Error Correction Capability Malicious Usage Reduced Lifetime Normal Lifetime Normal Usage P/E Cycles

How Can Two-Step Programming Introduce Errors? Controller MSB data Flash Memory MSB . . . ECC Engine LSB Read With Errors MSB 0 LSB 0 . . . MSB 1 LSB 1 MSB n LSB n Read Without Errors . . . Step 1: Program only the LSB data Errors are introduced into the partially-programmed LSB data Step 2: Program the MSB data LSB data is read with errors directly into internal LSB buffer, not corrected by ECC MSB data comes from controller to internal MSB buffer ER ?? Update image with new labels, animate, add X’s to LSB Collapse distributions to a single graph Erased Vth MSB LSB ER ?1 TP ?0 Partially Programmed Vth Probability Density Errors in LSB data cause cell to be programmed to an incorrect state ER 11 P1 01 P2 00 P3 10 Final Vth

Data Scrambler Workaround Some flash controllers employ XOR- based data scrambling Workaround to write worst-case data pattern Recreate scrambler logic in software Scramble data in software with the same seed Hardware scrambler descrambles data using the same seed Descrambled data written to flash memory Logical Block Address Malicious Program 4 DESCRAMBLED DATA Flash Memory Scrambler Unscrambled Worst-Case Data SSD Controller SEED Linear Feedback Shift Register 2 ECC Engine KEY Software Scrambler 1 DESCRAMBLED DATA + 3 Hardware Scrambler SCRAMBLED DATA Input Output

Sketch of Read Disturb Based Exploit Malicious program wants to induce errors into unprogrammed and partially-programmed wordlines in an open block Rapidly issues large number of reads to the open block Write data to the open block Issues ~10K reads per second directly to the SSD using syscalls Induces errors in partially-programmed data Induces errors in data not yet programmed Programming can only increase threshold voltage Exploit increases threshold voltage before programming, preventing cell from storing some data values In the paper: working around SSD caches To do: diagram?

1. Buffering LSB Data in the Controller Flash Memory Read Without Errors MSB . . . ECC Engine MSB data LSB Read With Errors MSB 0 LSB 0 . . . MSB 1 LSB 1 MSB n LSB n LSB data . . . When LSB data is initially programmed, keep a copy in the controller DRAM During MSB programming, send both LSB and MSB data from controller to internal LSB/MSB buffers in flash memory Procedure to retrieve, correct data from flash memory if DRAM loses data (e.g., after power loss) Completely eliminates vulnerabilities to interference, read disturb Typical case: 4.9% increase in programming latency

Algorithm for Buffering LSB Data A: Send LSB data to internal LSB buffer B: Keep copy of LSB in DRAM buffer Program LSB page Step 1 D: Retrieve LSB data from DRAM buffer Step 2 C: Is LSB in DRAM buffer? YES E: Send LSB data to internal LSB buffer F: Send MSB data to internal MSB buffer Program MSB page G: Retrieve LSB data from flash chip H: Correct LSB data using ECC engine NO

Latency Impact of Buffering Vary the speed of the interface between the controller and the flash memory Assumes 8KB page size Baseline Latency LSB Page in DRAM LSB Page Not in DRAM

Error Rate with Multiple Pass-Through Voltages Single Pass-Through Voltage Limit LSB: unprogrammed, partially programmed MSB: fully programmed MSB: unprogrammed, partially programmed Multiple Pass-Through Voltages LSB: fully programmed Limit

3. Adaptive LSB Read Reference Voltage Adapt the read reference voltage used to read partially-programmed LSB data Compensates for threshold voltage shifts caused by program interference, read disturb Maintain one read reference voltage per die Relearn voltage once a day by checking error rate of test LSB data Reduces error count, but does not completely eliminate errors Baseline: Fixed Vref Adaptive Vref -30% -21%

3. Adaptive LSB Read Reference Voltage Adapt the read reference voltage for partially-programmed LSB data to compensate for voltage shifts Program reference data value to LSBs of test wordlines Relearn voltage once a day by checking error rate of test data Reduces error count by 21-30%, but does not completely eliminate errors Vref Before interference, read disturb Probability Density ER TP After interference, read disturb Vth Mitigates, but doesn’t fully eliminate, vulnerabilities No increase in programming latency

Conclusion Two-step programming used in MLC NAND flash memory Introduces new reliability and security vulnerabilities Partially-programmed cells susceptible to program interference and read disturb We experimentally characterize vulnerabilities using real NAND flash chips Malicious programs can exploit vulnerabilities to corrupt data belonging to other programs, and reduce flash memory lifetime Fix image of partially-programmed cell Solution Protects Against Latency Overhead Error Rate Reduction 1. Buffering LSB in the Controller program interference read disturb 4.9% 100% 2. Adaptive LSB Read Reference Voltage 0.0% 21-33% 3. Multiple Pass-Through Voltages 72% 16% lifetime increase