Abstract
In this paper search method for format string vulnerabilities is presented. The method is based on dynamic analysis and symbolic execution. It is applied to program binaries, without requiring debug information. We present a tool implementing this method. We have used this tool to detect known vulnerabilities in Linux programs.
Highlights
The method is based on dynamic analysis and symbolic execution
If user controls data in a format string parameter, we consider that it is an unsafe usage of format string
After building the path predicate we need to generate a special format string that provides a control flow hijack and a payload execution. By asserting such constraints on the format string parameter we are able to determine whether unsafe function usage is vulnerable or not
Summary
Обеспечение безопасности компьютерных программ становится все более злободневным вопросом. 23-38 уязвимостям в безопасности ПО, таким как выполнение произвольного кода, повышение привилегий, а также утечка чувствительных данных. Размещение в стеке перед адресом возврата специального значения «канарейки», призванного выявлять ошибки переполнение буфера на стеке, не защищает от уязвимости форматной строки, так как перезаписывается не диапазон адресов памяти, а только адрес возврата. Результат решения – набор входных данных, при обработке которого поток управления программы пойдёт по заданному пути. Существующие системы символьного выполнения, находящиеся в открытом доступе, например, S2E [9], предоставляют только инфраструктуру перебора состояний, инструменты поиска уязвимостей в этом случае приходится реализовывать самостоятельно. Основываясь на результатах предыдущих работ, был разработан метод поиска и эксплуатации важного типа уязвимостей, а именно – уязвимости форматной строки. Во втором разделе описан механизм эксплуатации уязвимости форматной строки. В последнем, пятом разделе обсуждаются полученные результаты и рассматриваются перспективные направления исследований
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
More From: Proceedings of the Institute for System Programming of the RAS
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.