Идентификация реквизитов сборки через отслеживание системных вызовов
https://doi.org/10.15514/ISPRAS-2024-36(5)-2
Аннотация
В статье рассматриваются методы идентификации реквизитов сборки, описываются их сильные и слабые стороны. Представлен инструмент, обеспечивающий журналирование процесса сборки с помощью отслеживания системных вызовов. Приводится оценка временных затрат на сборку с использованием разработанного инструмента.
Об авторах
Артемий Максимович ГРАНАТРоссия
Старший лаборант Института системного программирования им. В.П. Иванникова Российской академии наук, студент 1 курса магистратуры Высшей школы экономики. Сфера научных интересов: компиляторы, операционные системы, компьютерные сети.
Павел Дмитриевич ДУНАЕВ
Россия
Старший лаборант Института системного программирования им. В.П. Иванникова Российской академии наук, студент 2 курса магистратуры Саратовского государственного университета. Сфера научных интересов: компиляторы, операционные системы, дискретная математика.
Артем Александрович СИНКЕВИЧ
Россия
Старший лаборант Института системного программирования им. В.П. Иванникова Российской академии наук, студент 1 курса магистратуры Саратовского государственного университета. Сфера научных интересов: компиляторы, дискретная математика, нейронные сети.
Инна Александровна БАТРАЕВА
Россия
Кандидат физико-математических наук, доцент, заведующая кафедрой технологий программирования. Сфера научных интересов: дискретная математика, теория автоматов, теория формальных языков и грамматик, информационные системы в теоретической и прикладной лингвистике.
Дмитрий Юрьевич ПЕТРОВ
Россия
Кандидат технических наук, старший научный сотрудник лаборатории системных проблем управления и автоматизации в машиностроении; доцент кафедры системного анализа и автоматического управления Саратовского национального исследовательского государственного университета имени Н.Г.Чернышевского. Сфера научных интересов: системный анализ, системотехника на основе моделей, функциональное и имитационное моделирование, авионика и автоматизированные системы управления.
Список литературы
1. ГОСТ Р 71206-2024 «Защита информации. Разработка безопасного программного обеспечения. Безопасный компилятор языков C/C++. Общие требования». М., Российский институт стандартизации, 2024, 20 с.
2. Clang Static Analyzer, Available at: https://clang-analyzer.llvm.org/, accessed 28.04.2024.
3. Baloglu B. How to find and fix software vulnerabilities with coverity static analysis //2016 IEEE Cybersecurity Development (SecDev). – IEEE, 2016. – С. 153-153.
4. А.А. Белеванцев, А.О. Избышев, Д.М. Журихин. Организация контролируемой сборки в статическом анализаторе Svace. Системный администратор, выпуск 6-7 (176-177), 2017, стр. 135-139.
5. Build EAR, Available at: https://github.com/rizsotto/Bear, accessed 28.04.2024.
6. Compilation Database Generator, Available at: https://github.com/nickdiego/compiledb, accessed 28.04.2024.
7. Guo P. CDE: A tool for creating portable experimental software packages //Computing in Science & Engineering. – 2012. – Т. 14. – №. 4. – С. 32-35.
8. JSON Compilation Database Format Specification, Available at: https://clang.llvm.org/docs/JSONCompilationDatabase.html, accessed 28.04.2024.
9. Баев Р.В., Скворцов Л.В., Кудряшов Е.А., Бучацкий Р.А., Жуйков Р.А. Предотвращение уязвимостей, возникающих в результате оптимизации кода с неопределенным поведением. Труды ИСП РАН, том 33, вып. 4, 2021 г., стр. 195-210. DOI: 10.15514/ISPRAS–2021–33(4)–14./ Baev R.V., Skvortsov L.V., Kudryashov E.A., Buchatskiy R.A., Zhuykov R.A. Prevention of vulnerabilities arising from optimization of code with Undefined Behavior. Trudy ISP RAN/Proc. ISP RAS, vol. 33, issue 4, 2021. pp. 195-210 (in Russian). DOI: 10.15514/ISPRAS–2021–33(4)–14.
10. GCC, Available at: https://gcc.gnu.org/, accessed 28.04.2024.
11. Vangoor B. K. R., Tarasov V., Zadok E. To FUSE or not to FUSE: Performance of User-Space file systems //15th USENIX Conference on File and Storage Technologies (FAST 17). – 2017. – С. 59-72.
12. Love R. Kernel korner: Intro to inotify //Linux Journal. – 2005. – Т. 2005. – №. 139. – С. 8.
13. Keniston J. et al. Ptrace, utrace, uprobes: Lightweight, dynamic tracing of user apps //Proceedings of the 2007 Linux symposium. – 2007. – Т. 1. – С. 215-224.
14. Padala P. Playing with ptrace, Part I //Linux Journal. – 2002. – Т. 103. – №. 5.
15. Padala P. Playing with ptrace, part II //Linux J. – 2002. – Т. 104. – С. 4.
16. Ptrace Notes, Available at: https://shachaf.net/tmp/ptrace-notes.txt, accessed 28.04.2024.
Рецензия
Для цитирования:
ГРАНАТ А.М., ДУНАЕВ П.Д., СИНКЕВИЧ А.А., БАТРАЕВА И.А., ПЕТРОВ Д.Ю. Идентификация реквизитов сборки через отслеживание системных вызовов. Труды Института системного программирования РАН. 2024;36(5):17-30. https://doi.org/10.15514/ISPRAS-2024-36(5)-2
For citation:
GRANAT A.M., DUNAEV P.D., SINKEVICH A.A., BATRAEVA I.A., PETROV D.Yu. Identifying Build Requisites via System Call Tracing. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2024;36(5):17-30. (In Russ.) https://doi.org/10.15514/ISPRAS-2024-36(5)-2