Protocol violation bugs in storage device drivers are a critical threat for data integrity, since these bugs can silently corrupt the commands and data flowing between the OS and storage devices. Due to their nature, these bugs are notoriously difficult to find by traditional testing. In this paper, we propose a run-time monitoring approach for storage device drivers, in order to detect I/O protocol violations that would otherwise silently escalate in corruptions of users’ data. The monitoring approach detects violations of I/O protocols by automatically learning a reference model from failure-free execution traces. The approach focuses on selected portions of the storage controller interface, in order to achieve a good tradeoff in terms of low performance overhead and high coverage and accuracy of failure detection. We assess these properties on three real-world storage device drivers from the Linux kernel, through fault injection and stress tests. Moreover, we show that the monitoring approach only requires few minutes of training workload, and that it is robust to differences between the operational and the training workloads.

Run-Time Detection of Protocol Bugs in Storage I/O Device Drivers / Cotroneo, Domenico; De Simone, Luigi; Natella, Roberto. - In: IEEE TRANSACTIONS ON RELIABILITY. - ISSN 0018-9529. - 67:3(2018), pp. 847-869. [10.1109/TR.2018.2841203]

Run-Time Detection of Protocol Bugs in Storage I/O Device Drivers

Cotroneo, Domenico
Methodology
;
De Simone, Luigi
Data Curation
;
Natella, Roberto
Methodology
2018

Abstract

Protocol violation bugs in storage device drivers are a critical threat for data integrity, since these bugs can silently corrupt the commands and data flowing between the OS and storage devices. Due to their nature, these bugs are notoriously difficult to find by traditional testing. In this paper, we propose a run-time monitoring approach for storage device drivers, in order to detect I/O protocol violations that would otherwise silently escalate in corruptions of users’ data. The monitoring approach detects violations of I/O protocols by automatically learning a reference model from failure-free execution traces. The approach focuses on selected portions of the storage controller interface, in order to achieve a good tradeoff in terms of low performance overhead and high coverage and accuracy of failure detection. We assess these properties on three real-world storage device drivers from the Linux kernel, through fault injection and stress tests. Moreover, we show that the monitoring approach only requires few minutes of training workload, and that it is robust to differences between the operational and the training workloads.
2018
Run-Time Detection of Protocol Bugs in Storage I/O Device Drivers / Cotroneo, Domenico; De Simone, Luigi; Natella, Roberto. - In: IEEE TRANSACTIONS ON RELIABILITY. - ISSN 0018-9529. - 67:3(2018), pp. 847-869. [10.1109/TR.2018.2841203]
File in questo prodotto:
File Dimensione Formato  
08390705.pdf

solo utenti autorizzati

Tipologia: Documento in Post-print
Licenza: Accesso privato/ristretto
Dimensione 4.43 MB
Formato Adobe PDF
4.43 MB Adobe PDF   Visualizza/Apri   Richiedi una copia

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11588/718779
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 13
  • ???jsp.display-item.citation.isi??? 13
social impact