Preview

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

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

CASR: анализ coredump файлов в ОС Linux и составление отчётов об ошибках

https://doi.org/10.15514/ISPRAS-2020-32(4)-6

Аннотация

Несмотря на то, что при разработке программного обеспечения используются различные технологии и подходы, позволяющие диагностировать ошибки на ранних этапах разработки и тестирования, часть ошибок обнаруживается во время эксплуатации. Для пользователя ошибки часто выглядят, как аварийное завершение программы во время работы. Для сбора отчётов об аварийных завершениях программ в операционную систему встраивается специальный компонент анализа. Такой компонент присутствует как в ОС Windows, так и в ОС на базе Linux, в частности в Ubuntu. Важным параметром является степень критичности найденной ошибки, причем данная информация полезна как разработчику дистрибутива, так и пользователю. В частности, пользователи, имея такую диагностику, могут принять организационно-технические меры до выхода исправления ошибки от разработчика программного обеспечения. В статье представлен CASR: инструмент анализа образа памяти в момент завершения процесса (coredump) и составления отчётов об ошибках. Инструмент позволяет проводить оценку критичности обнаруженного аварийного завершения путём анализа образа памяти, а также собирать необходимую информацию для разработчика, которая поможет исправить дефект. В качестве такой информации выступают версия дистрибутива ОС, версия пакета, карта памяти процесса, состояние регистров, значения переменных среды, стек вызовов, номер сигнала, который привёл к аварийному завершению, и т.д. Оценка критичности даёт возможность разработчику программного обеспечения исправить ошибки, которые являются наиболее опасными в первую очередь. CASR позволяет обнаружить файлы и сетевые соединения, которые были открыты в момент аварийного завершения. Эта информация поможет воспроизвести ошибку, а также принять меры пользователям и администраторам в случае атаки на систему. Инструмент предназначен для работы на ОС Linux, поддерживает архитектуры x86/64, armv7 и может поставляться в виде пакета для дистрибутивов на базе Debian. Инструмент был успешно протестирован на нескольких ошибках, сведения о которых были получены из открытых источниках.

Об авторах

Андрей Николаевич ФЕДОТОВ
Институт системного программирования им. В.П. Иванникова РАН
Россия
кандидат технических наук, младший научный сотрудник


Шамиль Фаимович КУРМАНГАЛЕЕВ
Институт системного программирования им. В.П. Иванникова РАН
Россия
кандидат физико-математических наук, старший научный сотрудник


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

1. ГОСТ Р 56939-2016 Защита информации. Разработка безопасного программного обеспечения. Общие требования. / GOST R 56939-2016 Information protection. Secure software development. General requirements (in Russian).

2. Dang Y., Wu Rongxin, Zhang H., Zhang D., Nobel P. Rebucket: A method for clustering duplicate crash reports based on call stack similarity. In Proc. of the 34th International Conference on Software Engineering (ICSE), 2012, pp. 1084-1093.

3. Apport. URL: https://wiki.ubuntu.com/Apport, accessed 25.08.2020.

4. Mozilla crash reporter. URL: https://support.mozilla.org/en-US/kb/mozillacrashreporter, accessed 25.08.2020.

5. Gdb ‘exploitable’ plugin. URL: https://github.com/jfoote/exploitable, accessed 25.08.2020.

6. Glerum K., Glerum K., Kinshumann K., Greenberg S., Aul G., Orgovan V., Nichols G., Grant D., Loihle G. Debugging in the (very) large: ten years of implementation and experience. In Proc. of the ACM SIGOPS 22nd Symposium on Operating Systems Principles, 2009, pp. 103-116.

7. libgoblin. URL: https://github.com/m4b/goblin, accessed 25.08.2020.

8. Capstone. URL: https://github.com/aquynh/capstone, accessed 25.08.2020.

9. Capstone-rust. URL: https://github.com/capstone-rust, accessed 25.08.2020.

10. Libunwind. URL: https://www.nongnu.org/libunwind/, accessed 25.08.2020.

11. libunwind-rs. URL: https://github.com/xcoldhandsx/libunwind-rs, accessed 25.08.2020.


Рецензия

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


ФЕДОТОВ А.Н., КУРМАНГАЛЕЕВ Ш.Ф. CASR: анализ coredump файлов в ОС Linux и составление отчётов об ошибках. Труды Института системного программирования РАН. 2020;32(4):89-96. https://doi.org/10.15514/ISPRAS-2020-32(4)-6

For citation:


FEDOTOV A.N., KURMANGALEEV Sh.F. CASR: core dump analysis and severity reporter tool. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2020;32(4):89-96. (In Russ.) https://doi.org/10.15514/ISPRAS-2020-32(4)-6



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


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