Журналов:     Статей:        

Вопросы радиоэлектроники. 2019; : 67-70

АВТОМАТИЗИРОВАННЫЙ ПОИСК ОШИБОК ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МЕТОДОМ ФАЗЗИНГА

Минаев В. А., Мазин А. В., Байдин Г. С.

https://doi.org/10.21778/2218-5453-2019-3-67-70

Аннотация

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

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

1. Саттон М., Грин А., Амини П. Fuzzing: исследование уязвимостей методом грубой силы. СПб.: Символ-Плюс, 2009. 560 с.

2. Методы поиска ошибок в бинарном коде. Технический отчет 2013–1 / В.В. Каушан, Ю.В. Маркин, В.А. Падарян, А.Ю. Тихонов. М.: ИСП РАН, 2013. 79 с.

3. Stephens N., Grosen J., Salls C., et al. Driller: augmenting fuzzing through selective symbolic execution. Santa Barbara, 2015. 16 p.

4. Haller I., Slowinska A., et al. Dowsing for overflows: a guided fusser to find buffer boundary violations // Proceedings of the 22nd USENIX Security Symposium. August 14–16. 2013. Washington: USENIX, 2013. 63 p.

5. Neugschwandtner M., Milani Comparetti P., et al. The BORG: Nanoprobing binaries for buffer overreads // Proceedings of the 5th ACM Conference on Data and Application Security and Privacy (CODASPY). ACM, 2015. P. 87–97.

6. Ganesh V., Leek T., Rinard M. Taint-based directed white box fuzzing // Proceedings of the International Conference on Software Engineering (ICSE), 2009. P. 474–484.

7. Drewry W., Ormandy T. Flayer: exposing application internals // Proceedings of the USENIX Workshop on Offensive Technologies (WOOT). 2007. № 7. P. 1–9.

8. Wang T., Wei T., et al. TaintScope: a checksum aware directed fuzzing tool for automatic software vulnerability detection. [Электронный ресурс]. URL: http://faculty.cse.tamu.edu/guofei/paper/TaintScope-Oakland10.pdf (дата обращения: 07.11.2018).

9. Campana G. Fuzzgrind: un otil de fuzzing automatique // Actes du 7`eme Symposium sur la S´ecurit´e des Technologies de Information et des Communications (SSTIC), 2009. P. 213–229.

10. Caselden D., Bazhanyuk A., Payer M., et al. Tech. Rep. UCB/EECS-2013–85. University of California, Berkeley (May 2013) [Электронный ресурс]. URL: https://www2.eecs.berkeley.edu/Pubs/TechRpts/2013/EECS-2013-85.pdf (дата обращения: 07.11.2018).

11. Godefroid P., Klarlund N., Sin K. DART: Directed Automated Random Testing // Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). 2005. Vol. 40. P. 213–223.

12. Godefroid P., Levin M.Y., Molnar D. SAGE: whitebox fuzzing for security testing // Communications of the ACM. 2012. Vol. 55. No. 3. P. 40–44.

13. Pak B.S. Hybrid Fuzz testing: discovering software bugs via fuzzing and symbolic execution. Master’s thesis. School of Computer Science, Carnegie Mellon University, 2012. 68 p.

14. Kil C.S., Avgerinos T., et al. Unleashing mayhem on binary code. Carnegie Mellon University, Pittsburgh, PA. [Электронный ресурс]. URL: http://users.ece.cmu.edu/~aavgerin/papers/mayhem-oakland-12.pdf (дата обращения: 07.11.2018).

15. Развитие методологических основ информатики и информационной безопасности систем / А.П. Фисун, А.Г. Касилов, В.Е. Фисенко, В.А. Минаев, В.В. Афанасьев, В.В. Митяев, Р.А. Фисун, К.А. Джевага, С.А. Кожухов. Депонированная рукопись № 1165-В2004. Дата депонирования 07.07.2004. М.: ВИНИТИ, 2004. 253 с.

Issues of radio electronics. 2019; : 67-70

AUTOMATED SEARCH OF SOFTWARE ERRORS BY FAZZING METHOD

Minaev V. A., Mazin A. V., Baidin G. S.

https://doi.org/10.21778/2218-5453-2019-3-67-70

Abstract

The paper considers fuzzing as a promising method of testing and error detection in software using the input of incorrect data to programs. Classification of the automated systems of errors search in the software with indication of their shortcomings is made. The substantiation of errors search advantages under the name Driller is given. The stages of Driller cyclic operation are considered including test data input, actual fuzzing, mixed execution and fuzzing repetition. It is emphasized that the Driller is an open source project. In addition, attention is drawn to the possibility of the specified program to eliminate the «exponential explosion» of considered execution paths number, and it effectiveness at a multiplicity of crossings between the paths of the program under test. It was shown that the Driller allows to effectively solve the problems of information security.

References

1. Satton M., Grin A., Amini P. Fuzzing: issledovanie uyazvimostei metodom gruboi sily. SPb.: Simvol-Plyus, 2009. 560 s.

2. Metody poiska oshibok v binarnom kode. Tekhnicheskii otchet 2013–1 / V.V. Kaushan, Yu.V. Markin, V.A. Padaryan, A.Yu. Tikhonov. M.: ISP RAN, 2013. 79 s.

3. Stephens N., Grosen J., Salls C., et al. Driller: augmenting fuzzing through selective symbolic execution. Santa Barbara, 2015. 16 p.

4. Haller I., Slowinska A., et al. Dowsing for overflows: a guided fusser to find buffer boundary violations // Proceedings of the 22nd USENIX Security Symposium. August 14–16. 2013. Washington: USENIX, 2013. 63 p.

5. Neugschwandtner M., Milani Comparetti P., et al. The BORG: Nanoprobing binaries for buffer overreads // Proceedings of the 5th ACM Conference on Data and Application Security and Privacy (CODASPY). ACM, 2015. P. 87–97.

6. Ganesh V., Leek T., Rinard M. Taint-based directed white box fuzzing // Proceedings of the International Conference on Software Engineering (ICSE), 2009. P. 474–484.

7. Drewry W., Ormandy T. Flayer: exposing application internals // Proceedings of the USENIX Workshop on Offensive Technologies (WOOT). 2007. № 7. P. 1–9.

8. Wang T., Wei T., et al. TaintScope: a checksum aware directed fuzzing tool for automatic software vulnerability detection. [Elektronnyi resurs]. URL: http://faculty.cse.tamu.edu/guofei/paper/TaintScope-Oakland10.pdf (data obrashcheniya: 07.11.2018).

9. Campana G. Fuzzgrind: un otil de fuzzing automatique // Actes du 7`eme Symposium sur la S´ecurit´e des Technologies de Information et des Communications (SSTIC), 2009. P. 213–229.

10. Caselden D., Bazhanyuk A., Payer M., et al. Tech. Rep. UCB/EECS-2013–85. University of California, Berkeley (May 2013) [Elektronnyi resurs]. URL: https://www2.eecs.berkeley.edu/Pubs/TechRpts/2013/EECS-2013-85.pdf (data obrashcheniya: 07.11.2018).

11. Godefroid P., Klarlund N., Sin K. DART: Directed Automated Random Testing // Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). 2005. Vol. 40. P. 213–223.

12. Godefroid P., Levin M.Y., Molnar D. SAGE: whitebox fuzzing for security testing // Communications of the ACM. 2012. Vol. 55. No. 3. P. 40–44.

13. Pak B.S. Hybrid Fuzz testing: discovering software bugs via fuzzing and symbolic execution. Master’s thesis. School of Computer Science, Carnegie Mellon University, 2012. 68 p.

14. Kil C.S., Avgerinos T., et al. Unleashing mayhem on binary code. Carnegie Mellon University, Pittsburgh, PA. [Elektronnyi resurs]. URL: http://users.ece.cmu.edu/~aavgerin/papers/mayhem-oakland-12.pdf (data obrashcheniya: 07.11.2018).

15. Razvitie metodologicheskikh osnov informatiki i informatsionnoi bezopasnosti sistem / A.P. Fisun, A.G. Kasilov, V.E. Fisenko, V.A. Minaev, V.V. Afanas'ev, V.V. Mityaev, R.A. Fisun, K.A. Dzhevaga, S.A. Kozhukhov. Deponirovannaya rukopis' № 1165-V2004. Data deponirovaniya 07.07.2004. M.: VINITI, 2004. 253 s.