Метод оценки эксплуатируемости программных дефектов
Автор: Федотов А.Н.
Журнал: Труды Института системного программирования РАН @trudy-isp-ran
Статья в выпуске: 4 т.28, 2016 года.
Бесплатный доступ
В статье рассматривается метод оценки эксплуатируемости программных дефектов. Применение данного подхода позволяет осуществить приоритезацию найденных ошибок в программах. Это даёт возможность разработчику программного обеспечения исправлять ошибки, которые представляют наибольшую угрозу безопасности в первую очередь. Метод представляет собой совместное применение предварительной классификации аварийных завершений и автоматическую генерацию эксплойтов. Предварительная классификация используется для фильтрации неэксплуатируемых ошибок. Если аварийное завершение считается потенциально эксплуатируемым, то выбирается соответствующий алгоритм генерации эксплойта. В случае успешной генерации эксплойта происходит проверка работоспособности посредством эксплуатации анализируемой программы в эмуляторе. Для поиска программных дефектов можно использовать различные методы. В качестве таких методов можно выделить фаззинг и активно развивающийся в настоящее время подход к поиску ошибок на основе динамического символьного выполнения. Главным требованием для использования предлагаемого метода является возможность получения входных данных, на которых проявляется найденный дефект. Разработанный подход применяется к бинарным файлам программ и не требует дополнительной отладочной информации. Реализация метода представляет собой совокупность программных средств, которые связаны между собой управляющими скриптами. Метод предварительной классификации и метод автоматической генерации эксплойтов реализованы в виде отдельных программных средств, которые могут работать независимо друг от друга. Метод был апробирован на анализе 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.