Видеоролик о технологиях ИСП РАН
Casr: инструмент формирования отчётов об ошибках
Casr – это инструмент, позволяющий автоматически формировать отчёты об аварийных завершениях, возникающих во время эксплуатации и тестирования ПО на ОС Linux. В отчётах содержатся сведения о степени критичности аварийного завершения, а также дополнительная информация, которая помогает установить его причины. CASR – это проект с открытым исходным кодом (https://github.com/ispras/casr).
Особенности и преимущества
CASR позволяет получать отчёты об ошибках разными способами (coredump, GDB, Asan, Ubsan) и обрабатывать исключения от разных языков программирования (Rust, Go, Java, Python). Предоставляет возможность автоматизации анализа результатов фаззинга с выгрузкой в системы управления уязвимостями.
Casr – это:
- Обнаружение критичных аварийных завершений, которые могут привести к перехвату потока управления.
- Классификация аварийных завершений, которая проводится в зависимости от состояния программы на момент завершения (перезапись адреса возврата из функции, разыменование нулевого указателя и др.). Далее аварийные завершения группируются по степени критичности: эксплуатируемые, потенциально эксплуатируемые, отказ в обслуживании.
- Развёрнутый отчёт об ошибке, который содержит информацию о степени критичности аварийного завершения, а также дополнительные данные (версии ОС и пакета, строка запуска программы, стек вызовов, открытые файлы и сетевые соединения, состояние регистров и др.).
- Дедупликация и кластеризация аварийных завершений на основе стека вызовов. Кластеры потенциально содержат схожие отчёты, которые описывают одну и ту же уязвимость. Возможность докластеризации: сортировка новых аварийных завершений в уже готовые кластеры.
- Интеграция с современными фаззерами Sydr/AFL++/LibFuzzer (go-fuzz, Atheris, Jazzer, Jazzer.js, C#).
- Библиотека libcasr для написания собственных инструментов анализа.
- Выгрузка результатов в систему управления уязвимостей DefectDojo, которая позволяет удобно встроить процесс разбора результатов фаззинга в CI.
Для кого предназначен Casr?
- Компании, которым необходимо получать информацию об ошибках, возникающих у пользователей, в целях разработки ПО с высокой степенью надёжности и безопасности.
- Компании, нуждающиеся в сертификации разрабатываемого ПО.
- Испытательные лаборатории.
Опыт внедрения
CASR используется для анализа аварийных завершений в инструменте Sydr (ИСП РАН). Библиотека libcasr интегрирована в libAFL.
Системные требования
Поддержка ОС семейства Linux x86 (32/64), aarch64, RISCV64.
Схема работы
Разработчик/участник
Перейти к списку всех технологий