350 руб
Журнал «Радиотехника» №2 за 2024 г.
Статья в номере:
Метод фаззинг-тестирования программ для синтаксического анализа с применением инструмента PolyTracker
Тип статьи: научная статья
DOI: https://doi.org/10.18127/j00338486-202402-09
УДК: 621.373.826:315.61
Авторы:

Н.Н. Самарин

Аннотация:

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

Цель. Представить метод фаззинг-тестирования программ для синтаксического анализа с применением инструмента PolyTracker.

Результаты. Рассмотрены типы синтаксических анализаторов и выявлены их недостатки. Предложен метод фаззинг-тес-тирования программ для синтаксического анализа с использованием инструмента PolyTracker, который устраняет выделенные недостатки, увеличивая покрытие кода и нивелируя проблему взрыва числа состояний (state explosion). Показано, что применение этого метода позволяет увеличить скорость генерации входных данных за счет тестирования конкретных функций программного обеспечения, а не всего приложения в целом.

Практическая значимость. Дальнейшие исследования в данной области могут быть направлены на расширение алгоритма работы инструмента PolyTracker для преобразования машинного кода бинарных файлов в язык высокого уровня, что позволит уйти от необходимости инструментации исходного кода.

Страницы: 62-66
Для цитирования

Самарин Н.Н. Метод фаззинг-тестирования программ для синтаксического анализа с применением инструмента PolyTracker // Радиотехника. 2024. Т. 88. № 2. С. 62−66. DOI: https://doi.org/10.18127/j00338486-202402-09

Список источников
  1. File Parsing with Python: How to Parse Files? [Электронный ресурс]. URL: https://www.klippa.com/en/blog/information/file-parsing/ (Дата обращения: 10.12.2023).
  2. Погорелов Д.А., Таразанов А.М., Волкова Л.Л. От LR к GLR: обзор синтаксических анализаторов // Новые информационные технологии в автоматизированных системах. 2017. № 20. С. 245-250.
  3. Burke M.G., Fisher G.A. A practical method for LR and LL syntactic error diagnosis and recovery // ACM Transactions on Programming Languages and Systems (TOPLAS). 1987. V. 9. № 2. С. 164-197.
  4. Murching A.M., Prasad Y.V., Srikant Y.N. Incremental recursive descent parsing // Computer Languages. 1990. V. 15. № 4. Р. 193-204.
  5. Tomita M. Efficient parsing for natural language: a fast algorithm for practical systems. Springer Science & Business Media. 2013. V. 8.
  6. De Jonge M. Language-parametric techniques for language-specific editors. Doctoral thesis. Delft University of Technology. Amsterdam. 2014.
  7. PolyTracker [Электронный ресурс]. URL: https://github.com/trailofbits/polytracker/ (Дата обращения: 04.12.2023).
  8. Brodin H., Surovič M., Sultanik E. Blind spots: Identifying exploitable program inputs // 2023 IEEE Security and Privacy Workshops (SPW). IEEE. 2023. Р. 175-186.
  9. Brodin H., Sultanik E., Surovič M. Blind Spots: Automatically detecting ignored program inputs //arXiv preprint arXiv:2301.08700. 2023.
  10. How to avoid the aCropalypse [Электронный ресурс]. URL: https://blog.trailofbits.com/2023/03/30/acropalypse-polytracker-blind-spots/ (Дата обращения: 10.12.2023).
  11. Духан Е.И., Воеводин С.В., Сазонов В.Ю., Звежинский С.С. Обобщенная методика оценки потенциальных характеристик средств обнаружения на основе метода машинного эксперимента // Радиотехника. Т. 86. № 1. 2022. С. 41-48. DOI: https://doi.org/10.18127/j00338486-202201-07.
Дата поступления: 26.12.2023
Одобрена после рецензирования: 10.01.2024
Принята к публикации: 29.01.2024