Поиск ошибок в программах для обработки графических изображений с использованием метода фаззинга
Авторы: Байдин Г.С., Хизова М.В. | Опубликовано: 10.09.2021 |
Опубликовано в выпуске: #3(136)/2021 | |
DOI: 10.18698/0236-3933-2021-3-4-23 | |
Раздел: Информатика, вычислительная техника и управление | Рубрика: Математическое моделирование, численные методы и комплексы программ | |
Ключевые слова: фаззинг, графические изображения, байесовские сети, фаззер Radamsa, AFL, AnyLogic |
С увеличением числа программ для автоматизированной обработки графических изображений возникает необходимость в эффективных методах тестирования. Одним из таких методов является фаззинг, для которого необходимо определить наиболее эффективные алгоритмы по созданию тестовых данных в целях увеличения числа найденных ошибок и минимизации аппаратных ресурсов. Результатом проведенных исследований является сравнение алгоритмов создания тестовых данных для поиска ошибок в исполняемом коде программ, предназначенных для обработки графических изображений. Использование байесовских сетей для описания фаззинга позволяет определить связи между структурными компонентами при тестировании. По результатам сравнения алгоритмов фаззинга по созданию тестовых данных выявлены наиболее эффективные фаззеры, предназначенные для поиска ошибок в исполняемом коде программ по обработке графических изображений. Апробация работоспособности предложенных алгоритмов выполнена на ряде существующих уязвимостей, классифицированных как CVE (Common Vulnerabilities and Exposures). Обработка результатов экспериментов по созданию тестовых данных проведена с использованием среды имитационного моделирования, что позволяет пошагово анализировать процесс тестирования. Полученные результаты исследований, алгоритмы создания тестовых данных для поиска ошибок могут быть использованы на различных этапах тестирования программного обеспечения
Литература
[1] Саттон М., Грин А., Амини П. Fuzzing: исследование уязвимостей методом грубой силы. СПб., Символ-плюс, 2009.
[2] Application Programming Interface (API). tadviser.ru: веб-сайт. URL: https://www.tadviser.ru/index.php/Статья:Application_Programming_Interface_(API) (дата обращения: 12.06.2019).
[3] CSNC-2017-023: buffer overflow in Mongoose MQTT Broker. seclists.org: веб-сайт. URL: https://seclists.org/fulldisclosure/2017/Sep/52 (дата обращения: 12.06.2019).
[4] Craig Y. Flawed MatrixSSL code highlights need for better IoT update practices. tripwire.com: веб-сайт. URL: https://www.tripwire.com/state-of-security/security-data-protection/cyber-security/flawed-matrixssl-code-highlights-need-for-better-iot-update-practices (дата обращения: 12.06.2019).
[5] From fuzzing Apache httpd server to CVE-2017-7668 and a $1500 bounty. animal0day.blogspot.com: веб-сайт. URL: https://animal0day.blogspot.com/2017/07/from-fuzzing-apache-httpd-server-to-cve.html (дата обращения: 12.06.2019).
[6] [openssh-commits] [openssh] 01/01: upstream commit. lists.mindrot.org: веб-сайт. URL: https://lists.mindrot.org/pipermail/openssh-commits/2014-November/004134.html (дата обращения: 12.06.2019).
[7] Mozilla NSS: wrong calculation results in mp_div() and mp_exptmod(). blog.fuzzing-project.org: веб-сайт. URL: https://blog.fuzzing-project.org/37-Mozilla-NSS-Wrong-calculation-results-in-mp_div-and-mp_exptmod.html (дата обращения: 12.06.2019).
[8] CVE-2018-0101 detail. nvd.nist.gov: веб-сайт. URL: https://nvd.nist.gov/vuln/detail/CVE-2018-0101 (дата обращения: 13.06.2019).
[9] CVE-2017-9845 detail. nvd.nist.gov: веб-сайт. URL: https://nvd.nist.gov/vuln/detail/CVE-2017-9845 (дата обращения: 13.06.2019).
[10] CVE-2017-9843 detail. nvd.nist.gov: веб-сайт. URL: https://nvd.nist.gov/vuln/detail/CVE-2017-9843 (дата обращения: 13.06.2019).
[11] Байбикова Т.Н. Комплексы программ для цифровой обработки изображений. Вестник Московского финансово-юридического университета, 2016, № 2, с. 255--266.
[12] Азарнова Т.В., Баркалов С.А., Полухин П.В. Управление процессом тестирования веб-приложений методом фаззинга на основе динамических байесовских сетей. Вестник Южно-Уральского государственного университета. Серия: Компьютерные технологии, управление, радиоэлектроника, 2017, т. 17, № 2, с. 51--64. DOI: https://doi.org/10.14529/ctcr170205
[13] Масленников Е.Д., Сулимов В.Б. Предсказания на основе байесовских сетей доверия: алгоритм и программная реализация. Вычислительные методы и программирование, 2010, № 11, с. 94--107.
[14] Азарнова Т.В., Аснина Н.Г., Проскурин Д.К. и др. Формирование структуры байесовской сети процесса тестирования надежности информационных систем. Вестник Воронежского государственного университета, 2017, № 6, с. 45--51.
[15] Торопова А.В. Подходы к диагностике согласованности данных в байесовских сетях доверия. Труды СПИИРАН, 2015, № 6, с. 156--178.
[16] Поиск восхождением к вершине (Hill Climbing). drakon.su: веб-сайт. URL: https://drakon.su/algoritmy/hill-climbing (дата обращения: 12.06.2019).
[17] Tsamardinos I., Brown L.E., Aliferis C.F. The max-min hill-climbing Bayesian network structure learning algorithm. Mach. Learn., 2006, vol. 65, no. 1, pp. 31--78. DOI: https://doi.org/10.1007/s10994-006-6889-7
[18] Полухин П.В. Интеграция динамических байесовских сетей в процесс тестирования веб-приложений для выявления уязвимостей межсайтингового скриптинга. Научное обозрение, 2014, № 9, с. 414--422.
[19] Долгов А.И. О применимости формулы Байеса. Вестник Донского государственного технического университета, 2015, № 4, c. 107--115. DOI: https://doi.org/10.12737/16076
[20] Лемешко Б.Ю., Постовалов С.Н. О зависимости предельных распределений статистик Хи-квадрат Пирсона и отношения правдоподобия от способа группирования данных. Заводская лаборатория. Диагностика материалов, 1998, т. 64, № 5, с. 56--63.
[21] American fuzzy loop (2.52b). lcamtuf.coredump.cx: веб-сайт. URL: https://lcamtuf.coredump.cx/afl (дата обращения: 13.06.2019).
[22] A general-purpose fuzzer. gitlab.com: веб-сайт. URL: https://gitlab.com/akihe/radamsa (дата обращения: 13.06.2019).
[23] Shoshitaishvili Y., Wang R., Hauser C., et al. Firmalice --- automatic detection of authentication bypass vulnerabilities in binary firmware. Proc. NDSS, 2015. DOI: https://doi.org/10.14722/ndss.2015.23294
[24] Генетический алгоритм. Просто о сложном. habrahabr.ru: веб-сайт. URL: https://habrahabr.ru/post/128704 (дата обращения: 13.06.2019).
[25] CVE-2017-12983. nvd.nist.gov: веб-сайт. URL: https://nvd.nist.gov/vuln/detail/CVE-2017-12983 (дата обращения: 13.06.2019).
[26] CVE-2016-8684. nvd.nist.gov: веб-сайт. URL: https://nvd.nist.gov/vuln/detail/CVE-2016-8684 (дата обращения: 13.06.2019).
[27] CVE-2016-10095. nvd.nist.gov: веб-сайт. URL: https://nvd.nist.gov/vuln/detail/CVE-2016-10095 (дата обращения: 13.06.2019).
[28] CVE-2012-2849. nvd.nist.gov: веб-сайт. URL: https://nvd.nist.gov/vuln/detail/CVE-2012-2849 (дата обращения: 13.06.2019).
[29] CVE-2011-0205. nvd.nist.gov: веб-сайт. URL: https://nvd.nist.gov/vuln/detail/CVE-2011-0205 (дата обращения: 13.06.2019).