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

Бесплатный доступ

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

Еще

Уязвимость, переполнение буфера, символьное выполнение, эксплойт, бинарный код

Короткий адрес: https://sciup.org/14916367

IDR: 14916367   |   DOI: 10.15514/ISPRAS-2016-28(4)-8

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

  • Miller C. et al. Crash analysis with BitBlaze. At BlackHat USA, 2010.
  • American fuzzy lop fuzer. URL: http://lcamtuf.coredump.cx/afl//
  • Peach fuzzer. URL: http://www.peachfuzzer.com/
  • Codenomicon fuzzer. URL: http://www.codenomicon.com/
  • T. Avgerinos, S. K. Cha, Alexandre Rebert, Edard J. Schwartz, Maverick Woo, and D.Brumley. AEG: Automatic exploit generation. Commun. ACM, 2014, №2.
  • Sang Kil Cha, Thanassis Avgerinos, Alexandre Rebert and David Brumley. Unleashing MAYHEM on Binary Code. IEEE Symposium on Security and Privacy, 2012
  • 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.
  • !exploitable. URL: https://msecdbg.codeplex.com/.
  • Padaryan V.A., Kaushan V.V., Fedotov A.N. Trudy ISP RAN/Proc. ISP RAS, vol. 26, issue 3, 2014, pp. 127-144 DOI: 10.15514/ISPRAS-2014-26(3)-7
  • Exploitable plugin for gdb. URL: https://github.com/jfoote/exploitable.
  • Vakhrushev I. A. et al. Trudy ISP RAN/Proc. ISP RAS, vol. 27, issue 4, pp. 23-38 DOI: 10.15514/ISPRAS-2015-27(4)-2
  • Heelan S. Automatic generation of control flow hijacking exploits for software vulnerabilities. Master’s thesis, University of Oxford, 2009.
  • Qemu. URL: http://wiki.qemu.org/Main_Page.
  • Schwartz E. J., Avgerinos T., Brumley D. Q: Exploit Hardening Made Easy//USENIX Security Symposium, pp. 25-41, 2011.
Еще
Статья научная