Preview

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

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

Метод оценки эксплуатируемости программных дефектов

https://doi.org/10.15514/ISPRAS-2016-28(4)-8

Аннотация

В статье рассматривается метод оценки эксплуатируемости программных дефектов. Применение данного подхода позволяет осуществить приоритезацию найденных ошибок в программах. Это даёт возможность разработчику программного обеспечения исправлять ошибки, которые представляют наибольшую угрозу безопасности в первую очередь. Метод представляет собой совместное применение предварительной классификации аварийных завершений и автоматическую генерацию эксплойтов. Предварительная классификация используется для фильтрации неэксплуатируемых ошибок. Если аварийное завершение считается потенциально эксплуатируемым, то выбирается соответствующий алгоритм генерации эксплойта. В случае успешной генерации эксплойта происходит проверка работоспособности посредством эксплуатации анализируемой программы в эмуляторе. Для поиска программных дефектов можно использовать различные методы. В качестве таких методов можно выделить фаззинг и активно развивающийся в настоящее время подход к поиску ошибок на основе динамического символьного выполнения. Главным требованием для использования предлагаемого метода является возможность получения входных данных, на которых проявляется найденный дефект. Разработанный подход применяется к бинарным файлам программ и не требует дополнительной отладочной информации. Реализация метода представляет собой совокупность программных средств, которые связаны между собой управляющими скриптами. Метод предварительной классификации и метод автоматической генерации эксплойтов реализованы в виде отдельных программных средств, которые могут работать независимо друг от друга. Метод был апробирован на анализе 274 аварийных завершений, полученных в результате фаззинга. В результате анализа удалось обнаружить 13 эксплуатируемых дефектов, для которых в последствии успешно сгенерированы работоспособные эксплойты.

Об авторе

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


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

1. Miller C. et al. Crash analysis with BitBlaze. At BlackHat USA, 2010.

2. American fuzzy lop fuzer. URL: http://lcamtuf.coredump.cx/afl//.

3. Peach fuzzer. URL: http://www.peachfuzzer.com/

4. Codenomicon fuzzer. URL: http://www.codenomicon.com/

5. T. Avgerinos, S. K. Cha, Alexandre Rebert, Edard J. Schwartz, Maverick Woo, and D.Brumley. AEG: Automatic exploit generation. Commun. ACM, 2014, №2.

6. Sang Kil Cha, Thanassis Avgerinos, Alexandre Rebert and David Brumley. Unleashing MAYHEM on Binary Code. IEEE Symposium on Security and Privacy, 2012

7. Huang S. K. et al. Crax: Software crash analysis for automatic exploit generation by modeling attacks as symbolic continuations.Software Security and Reliability (SERE), 2012 IEEE Sixth International Conference on. IEEE, 2012, pp. 78-87.

8. Инструмент !exploitable. URL: https://msecdbg.codeplex.com/.

9. Падарян В. А., Каушан В. В., Федотов А. Н. Автоматизированный метод построения эксплойтов для уязвимости переполнения буфера на стеке. Труды ИСП РАН, т. 26, вып. 3, стр. 127-144. DOI: 10.15514/ISPRAS-2014-26(3)-7.

10. Плагин exploitable для gdb. URL: https://github.com/jfoote/exploitable.

11. Вахрушев И. А. и др. Метод поиска уязвимости форматной строки //Труды Института системного программирования РАН, т. 27, вып. 4, 2015, стр. 23-38. DOI: 10.15514/ISPRAS-2015-27(4)-2.

12. Heelan S. Automatic generation of control flow hijacking exploits for software vulnerabilities. Master’s thesis, University of Oxford, 2009.

13. Эмулятор Qemu. URL: http://wiki.qemu.org/Main_Page.

14. Schwartz E. J., Avgerinos T., Brumley D. Q: Exploit Hardening Made Easy //USENIX Security Symposium, 2011, pp. 25-41.


Рецензия

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


Федотов А.Н. Метод оценки эксплуатируемости программных дефектов. Труды Института системного программирования РАН. 2016;28(4):137-148. https://doi.org/10.15514/ISPRAS-2016-28(4)-8

For citation:


Fedotov A.N. Method for exploitability estimation of program bugs. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2016;28(4):137-148. (In Russ.) https://doi.org/10.15514/ISPRAS-2016-28(4)-8



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


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