Методика фаззинга системных вызовов ядра Linux с применением больших языковых моделей

DOI: 10.21293/1818-0442-2024-27-3-85-91

Скачать текст статьи в формате PDF

Скачать JATS xml

Аннотация: Актуальной проблемой организации фаззинг-тестирования ядра Linux является создание спецификаций системных вызовов – специальных декларативных описаний, которые впоследствии используются фаззером для генерации последовательностей системных вызовов. По большей части это является ручной работой, требующей глубо-ких знаний, занимающей много времени и не исключающей фактор ошибки. В настоящее время проводятся исследования, направленные на автоматизацию процесса создания таких спецификаций. В работе рассмотрены под-ходы к генерации спецификаций системных вызовов KSG, SyzDescribe и KernelGPT, которые зарекомендовали себя при обнаружении уникальных сбоев ядра в процессе фаззинг-тестирования. Предложена методика организации фаззинг-тестирования ядра Linux, содержащая в том числе этап автоматической генерации спецификаций системных вызовов на основе больших языковых моделей (Large Language Model – LLM).

Ключевые слова: операционная система, ядро Linux, фаззинг, Syzkaller, спецификации системных вызовов, LLM

Сведения о финансировании: Исследование выполнено при финансовой поддержке Минцифры России (грант ИБ). Проект № 26/23-К.

Библиография статьи:
Теплюк П. А. Методика фаззинга системных вызовов ядра Linux с применением больших языковых моделей / П. А. Теплюк, А. Г. Якунин // Доклады Томского государственного университета систем управления и радиоэлектроники. – 2024. – Т. 27, № 3. – С. 85–91. DOI: 10.21293/1818-0442-2024-27-3-85-91

Авторы и правообладатели:

  • Теплюк П. А. , Алтайский государственный технический университет (Барнаул, Россия)
  • Якунин А. Г. , Алтайский государственный технический университет (Барнаул, Россия)

  • 1. Хорошилов А. Международный проект по разработке ядра Linux // Системный администратор. – 2022. – № 3 (232). – С. 32–37.
  • 2. Информационное сообщение ФСТЭК России от 10 февраля 2021 г. [Электронный ресурс]. – Режим доступа: https://fstec.ru/dokumenty/vse-dokumenty/informatsionnyei-analiticheskie-materialy/informationnoe-soobshchenie-fstekrossii-ot-10-fevralya-2021-g-n-240-24-647, свободный (дата обращения: 28.08.2023).
  • 3. Теплюк П.А. Модели и подходы к анализу поверхности атаки для фаззинг-тестирования ядра Linux / П.А. Теплюк, А.Г. Якунин // Безопасность информационных технологий. – 2024. – Т. 31, № 1. – С. 135–145. DOI: 10.26583/bit.2024.1.08.
  • 4. Теплюк П.А. Выявление недостатков безопасности ядра Linux с применением фаззинга системных вызовов / П.А. Теплюк, А.Г. Якунин // Проблемы информационной безопасности. Компьютерные системы. – 2024. – № 2 (59). – C. 138–151. DOI: 10.48612/jisp/pdp9-d25r-g6eu.
  • 5. Syzkaller – kernel fuzzer [Электронный ресурс]. – Режим доступа: https://github.com/google/syzkaller, свободный (дата обращения: 07.09.2024).
  • 6. Syscall description language [Электронный ресурс]. – Режим доступа: https://github.com/google/syzkaller/blob/master/docs/syscall_descriptions_syntax.md, свободный (дата обращения: 07.09.2024).
  • 7. Спецификации MIDI-интерфейса [Электронный ресурс]. – Режим доступа: https://github.com/google/syzkaller/blob/master/sys/linux/dev_snd_midi.txt, свободный (дата обращения: 07.09.2024).
  • 8. Sun H. KSG: Augmenting Kernel Fuzzing with System Call Specification Generation / H. Sun, Y. Shen, J. Liu, Y. Xu, Y. Jiang // Proc. of the 2022 USENIX Annual Technical Conference (USENIX ATC 22). – 2022. – P. 351–365.
  • 9. Hao Y. SyzDescribe: Principled, Automated, Static Generation of Syscall Descriptions for Kernel Drivers / Y. Hao, G. Li, X. Zou, W. Chen, S. Zhu, Z. Qian, A. Sani // Proc. of 2023 IEEE Symposium on Security and Privacy (SP). – 2023. – P. 3262–3278. DOI: 10.1109/SP46215.2023.10179298.
  • 10. Yang C. KernelGPT: Enhanced Kernel Fuzzing via Large Language Models / C. Yang, Z. Zhao, L. Zhang // arXiv:2401.00563 [cs.CR]. – 2023. – Р. 13. DOI: 10.48550/arXiv.2401.00563.
  • 11. Patsakis C. Assessing LLMs in malicious code deobfuscation of real-world malware campaigns / C. Patsakis, F. Casino, N. Lykousas // Expert Systems with Applications. – 2024. – Vol. 256. – Р. 13. DOI: 10.1016/j.eswa.2024.124912.
  • 12. Ye J. Detecting command injection vulnerabilities in Linux-based embedded firmware with LLM-based taint analysis of library functions / J. Ye, X. Fei, X. de Carne de Carnavalet, L. Zhao // Computers & Security. – 2024. – Vol. 144. DOI: 10.1016/j.cose.2024.103971.
  • 13. Lu G. GRACE: Empowering LLM-based software vulnerability detection with graph structure and in-context learning / G. Lu, X. Ju, X. Chen, W. Pei, Z. Cai // Journal of Systems and Software. – 2024. – Vol. 212. DOI: 10.1016/j.jss.2024.112031.
  • 14. Sufi F. An innovative GPT-based open-source intelligence using historical cyber incident reports / F. Sufi // Natural Language Processing Journal. – 2024. – Vol. 7. – Р. 17. DOI: 10.1016/j.nlp.2024.100074.
  • 15. GPT4 | OpenAI [Электронный ресурс]. – Режим доступа: https://openai.com/index/gpt-4/, свободный (дата обращения: 09.09.2024).
  • 16. Bavendiek S. Attack surface analysis of the Linux kernel based on complexity metrics. // Master’s Thesis in the study course «Applied Informatics / Software Engineering». – 2021. – Р. 88. DOI: 10.13140/RG.2.2.29943.70561.
  • 17. Natch: Определение поверхности атаки программ с помощью отслеживания помеченных данных и интроспекции виртуальных машин / П.М. Довгалюк, М.А. Климушенкова, Н.И. Фурсова, В.М. Степанов, И.А. Васильев, А.А. Иванов, А.В. Иванов, М.Г. Бакулин, Д.И. Егоров // Труды ИСП РАН. – 2022. – Т. 34, № 5. – С. 89–110.
  • 18. Томилов И.О. Разработка методики применения фаззинга для анализа уязвимостей программного обеспечения / И.О. Томилов, И.Н. Карманов, П.А. Звягинцева, Е.В. Грицкевич // Системы управления, связи и безопасности. – 2018. – № 4. – С. 48–63.
Адрес редакции

  634050, г. Томск, пр. Ленина, 40, МК, каб. 310/2

  (3822) 701-582, внутр.: 1456

  journal@tusur.ru