Preview

Труды Института системного программирования РАН

Расширенный поиск

Легковесная проверка согласованности файловой системы после сбоев с помощью дифференциального фаззинга

https://doi.org/10.15514/ISPRAS-2026-38(1)-7

Аннотация

Файловые системы являются важнейшими компонентами операционной системы, влияющими на производительность, надежность и безопасность всей вычислительной системы. Одним из ключевых свойств современных файловых систем является их способность обеспечивать согласованность данных. Если файловой системе не удается восстановить сохраненные данные после сбоя, это может привести к повреждению состояния приложения, потере целостности или даже полной потере данных. В этой статье предлагается упрощенный подход к обнаружению ошибок несогласованности данных, вызванных неожиданными сбоями. Подход основан на моделировании таких сбоев и интеграции этого поведения в систему обнаружения ошибок файловой системы DIFFuzzer, основанную на дифференциальном фаззинге. Экспериментальное тестирование обновленного инструмента на нескольких известных файловых системах продемонстрировало эффективность подхода. В ходе экспериментов было обнаружено несколько ошибок согласованности данных после сбоев, подтвержденных авторами файловой системы.

Об авторах

Вячеслав Максимович КОВАЛЕВСКИЙ
Университет ИТМО
Россия

Аспирант и инженер Института прикладных компьютерных наук университета ИТМО. Сфера научных интересов: динамический и статический анализ программ, фаззинг.



Валерий Владимирович КЕЧИН
Университет ИТМО
Россия

Аспирант и инженер Института прикладных компьютерных наук университета ИТМО. Сфера научных интересов: динамический и статический анализ программ, фаззинг.



Александр Сергеевич ЯНИН
Университет ИТМО
Россия

Студент магистратуры и инженер Института прикладных компьютерных наук университета ИТМО. Сфера научных интересов: динамический и статический анализ программ, фаззинг.



Владимир Михайлович ИЦЫКСОН
Университет ИТМО
Россия

Кандидат технических наук, доцент Института прикладных компьютерных наук университета ИТМО. Сфера научных интересов: статический и динамический анализ программ, верификация программного обеспечения, методы обнаружения дефектов в исходном коде, методы автоматизации тестирования программ.



Список литературы

1. Ext4 data loss. Ubuntu repository. [Online]. Available at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/317781, accessed: 2025-10-31.

2. IEEE/Open Group standard for information technology–portable operating system interface (POSIX™) base specifications, issue 8. IEEE/Open Group Std 1003.1-2024 (Revision of IEEE Std 1003.1-2017), 2024, pp. 1-4107.

3. Böhme M., Cadar C., Roychoudhury A. Fuzzing: Challenges and reflections. IEEE Software, 2020, vol. 38, issue 3, pp. 79-86. [Online]. DOI: 10.1109/MS.2020.3016773.

4. Kovalevsky V.M., Kechin V.V., Itsykson V.M. DIFFuzzer: Detecting File System Errors with Differential Grey-box Fuzzing. Trudy ISP RAN/Proc. ISP RAS, 2025, vol. 37, issue 4-2, pp. 31-46. [Online]. DOI: 10.15514/ISPRAS-2025-37(4)-17.

5. Mohan J., Martinez A., Ponnapalli S., Raju P., Chidambaram V. CrashMonkey and ACE: Systematically testing file-system crash consistency. ACM Trans. Storage, 2019, vol. 15, issue 2. [Online]. DOI: 10.1145/3320275.

6. ISO/IEC 25010:2023, Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – Product quality model. ISO/IEC JTC 1/SC 7, 2023, pp. 1-22. [Online]. Available at: https://www.iso.org/obp/ui/#iso:std:iso-iec:25010:ed-2:v1:en, accessed: 03.02.2026.

7. open(2) – Linux manual page. The Linux Foundation. [Online]. Available at: https://man7.org/linux/man-pages/man2/open.2.html, accessed: 31.10.2025.

8. Bornholt J. et al. Specifying and checking file system crash-consistency models. Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems, 2016, pp. 83-98. [Online]. DOI: 10.1145/2872362.2872406.

9. (2015) Syzkaller: coverage-guided kernel fuzzer. Google. [Online]. Available at: https://github.com/google/syzkaller, accessed: 31.10.2025.

10. Schumilo S., Aschermann C., Gawlik R., Schinzel S., and Holz T. kAFL: Hardware-Assisted feedback fuzzing for OS kernels. 26th USENIX Security Symposium (USENIX Security 17), 2017, pp. 167-182. [Online]. Available at: https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/schumilo, accessed: 03.02.2026.

11. Izraelevitz J. et al. Basic performance measurements of the intel optane DC persistent memory module. arXiv preprint arXiv:1903.05714, 2019. [Online]. DOI: 10.48550/arXiv.1903.05714.

12. Yang J. et al. An empirical guide to the behavior and use of scalable persistent memory. 18th USENIX Conference on File and Storage Technologies (FAST 20), 2020, pp. 169-182. [Online]. Available at: https://www.usenix.org/conference/fast20/presentation/yang, accessed: 03.02.2026.

13. LeBlanc H. et al. Chipmunk: Investigating crash-consistency in persistent-memory file systems. Proceedings of the Eighteenth European Conference on Computer Systems, 2023, pp. 718-733. [Online]. DOI: 10.1145/3552326.3567498.

14. Kalbfleisch S., Werling L., Bellosa F. Vinter: Automatic Non-Volatile Memory Crash Consistency Testing for Full Systems. 2022 USENIX Annual Technical Conference (USENIX ATC 22), 2022, pp. 933-950. [Online]. Available at: https://www.usenix.org/conference/atc22/presentation/werling, accessed: 03.02.2026.

15. Jiao B., Goel A., Wang A.I.A. Silhouette: Leveraging Consistency Mechanisms to Detect Bugs in Persistent Memory-Based File Systems. 23rd USENIX Conference on File and Storage Technologies (FAST 25), 2025, pp. 407-423. [Online]. Available at: https://www.usenix.org/conference/fast25/presentation/jiao, accessed: 03.02.2026.

16. Ridge T. et al. SibylFS: formal specification and oracle-based testing for POSIX and real-world file systems. Proceedings of the 25th Symposium on Operating Systems Principles, 2015, pp. 38-53. [Online]. DOI: 10.1145/2815400.2815411.

17. Chen D. et al. Testing file system implementations on layered models. Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, 2020, pp. 1483-1495. [Online]. DOI: 10.1145/3377811.3380350.

18. Kim S. et al. Finding semantic bugs in file systems with an extensible fuzzing framework. Proceedings of the 27th ACM Symposium on Operating Systems Principles, 2019, pp. 147-161. [Online]. DOI: 10.1145/3341301.3359662.

19. Liu J. et al. SnapCC: Effective file system consistency testing using systematic state exploration. ACM Transactions on Software Engineering and Methodology, 2025, vol. 34, issue 8. [Online]. DOI: 10.1145/3718738.

20. Symlink entry is not persisted after rename if system crashes, accessed: 2025-10-31. [Online]. Available at: https://lore.kernel.org/linux-btrfs/ac949c74-90c2-4b9a-b7fd-1ffc5c3175c7@gmail.com/, accessed: 03.02.2026.

21. Directory is not persisted after writing to the file within directory if system crashes [Online]. Available at: https://lore.kernel.org/linux-btrfs/03c5d7ec-5b3d-49d1-95bc-8970a7f82d87@gmail.com/, accessed: 31.10.2025.

22. File system corruption after renaming directory and creating a new file with same name if system crashes. [Online]. Available at: https://lore.kernel.org/linux-btrfs/7bbc9419-5c56-450a-b5a0-efeae7457113@gmail.com/, accessed: 15.12.2025.

23. Directory is not persisted after creating 100s of files inside, writing to another file and renaming it if system crashes. [Online]. Available at: https://lore.kernel.org/linux-btrfs/84c4e713-85d6-42b9-8dcf-0722ed26cb05@gmail.com/, accessed: 15.12.2025.

24. Increased reports since 6.15.3 of corruption within the log tree. [Online]. Available at: https://lore.kernel.org/linux-btrfs/fce139db-4458-4788-bb97-c29acf6cb1df@cachyos.org/, accessed: 31.10.2025.

25. iomap: Fix broken data integrity guarantees for O_SYNC writes. [Online]. Available at: https://lore.kernel.org/all/20250730102840.20470-2-jack@suse.cz/, accessed: 31.10.2025.

26. Fedora KDE no longer booting, likely filesystem (BTRFS) corruption. The Fedora Project. [Online]. Available at: https://discussion.fedoraproject.org/t/fedora-kde-no-longer-booting-likely-filesystem-btrfs-corruption/157232, accessed: 31.10.2025.


Рецензия

Для цитирования:


КОВАЛЕВСКИЙ В.М., КЕЧИН В.В., ЯНИН А.С., ИЦЫКСОН В.М. Легковесная проверка согласованности файловой системы после сбоев с помощью дифференциального фаззинга. Труды Института системного программирования РАН. 2026;38(1):79-92. https://doi.org/10.15514/ISPRAS-2026-38(1)-7

For citation:


KOVALEVSKY V.M., KECHIN V.V., YANIN A.S., ITSYKSON V.M. Lightweight File System Crash-consistency Checking with Differential Fuzzing. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2026;38(1):79-92. https://doi.org/10.15514/ISPRAS-2026-38(1)-7



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)