Моделирование программы с уязвимостями с позиции эволюции ее представлений. Часть 1. Схема жизненного цикла

Обложка

Цитировать

Полный текст

Аннотация

Изложены результаты исследования процесса создания программ и возникающих при этом уязвимостей. В первой части цикла статей предлагается графическая схема жизненного цикла представлений (а именно следующих: Идея, Концептуальная модель, Архитектура, Двухмерная структурная схема, Функциональная диаграмма, Блок-схема, Структурограмма, Псевдокод, Классический, Метакод генерации, Сценарный код, Ассемблерный код, Дерево абстрактного синтаксиса, Машинный код, Байт-код), через которые проходит любая типовая программа. Указываются основные свойства таких представлений – назначение, форма и содержание, способы получения и восстановления представлений, а также возможные уязвимости и способы их обнаружения. Вводится вложенная классификация уязвимостей, состоящая из их деления по структурному уровню в программе, изменению содержания функционала и воздействию на обрабатываемую информацию.

Об авторах

К. Е. Израилов

Санкт-Петербургский Федеральный исследовательский центр Российской академии наук

Email: konstantin.izrailov@mail.ru
ORCID iD: 0000-0002-9412-5693

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

  1. Благодаренко А.В., Разработка метода, алгоритмов и программ для автоматического поиска уязвимостей программного обеспечения в условиях отсутствия исходного кода. Дис. ... канд. техн. наук. Таганрог: Южный федеральный университет, 2011. 140 с.
  2. Марков А.С., Фадин А.А. Систематика уязвимостей и дефектов безопасности программных ресурсов // Защита информации. Инсайд. 2013. № 3(51). С. 56‒61.
  3. Баев Р.В., Скворцов Л.В., Кудряшов Е.А., Бучацкий Р.А., Жуйков Р.А. Предотвращение уязвимостей, возникающих в результате оптимизации кода с неопределенным поведением // Труды Института системного программирования РАН. 2021. Т. 33. № 4. С. 195‒210.
  4. Буйневич М.В., Израилов К.Е. Антропоморфический подход к описанию взаимодействия уязвимостей в программном коде. Часть 1. Типы взаимодействий // Защита информации. Инсайд. 2019. № 5(89). С. 78‒85.
  5. Буйневич М.В., Израилов К.Е. Антропоморфический подход к описанию взаимодействия уязвимостей в программном коде. Часть 2. Метрика уязвимостей // Защита информации. Инсайд. 2019. № 6(90). С. 61‒65.
  6. Максимова Е.А. Методы выявления и идентификации источников деструктивных воздействий инфраструктурного генеза // Электронный сетевой политематический журнал "Научные труды КубГТУ". 2022. № 2. С. 86‒99.
  7. Максимова Е.А. Аксиоматика инфраструктурного деструктивизма субъекта критической информационной инфраструктуры // Информатизация и связь. 2022. № 1. С. 68‒74. doi: 10.34219/2078-8320-2022-13-1-68-74
  8. Максимова Е.А., Буйневич М.В. Метод оценки инфраструктурной устойчивости субъектов критической информационной инфраструктуры // Вестник УрФО. Безопасность в информационной сфере. 2022. № 1(43). С. 50‒63. doi: 10.14529/secur220107
  9. Максимова Е.А. Инфраструктурный деструктивизм субъектов критической информационной инфраструктуры. Москва ‒ Волгоград: Волгоградский государственный университет, 2021. 181 с.
  10. Вихрев В.В. О механизме реализации коэволюционной модели жизненного цикла разработки компьютерных программ для обучения // Системы и средства информатики. 2014. Т. 24. № 4. С. 168‒185. doi: 10.14357/08696527140411
  11. Галимянов А.Ф., Аль-Саффар Н.М.Ф. Жизненный цикл программного продукта с большим количеством пользователей: на примере обучающих программ // VI Международные Махмутовские чтения. Проблемное обучение в современном мире (Казань, Елабуга, 12–14 апреля 2016): сборник статей. Елабуга: Казанский (Приволжский) федеральный университет, Елабужский филиал: 2016. С. 129‒133.
  12. Слепов В.А. Проектирование и разработка программного продукта "личный блокнот для записи мыслей" // Научное обозрение. Технические науки. 2020. № 4. С. 58‒63.
  13. Гишлакаев С.У., Минаев О.М. Базовые основы и процессы программной инженерии // XXVII Всероссийская научно-практическая конференция. Цифровизация образования: теоретические и прикладные исследования современной науки (Ростов-на-Дону, Россия, 25.01.2021). Ростов-на-Дону: Южный университет (ИУБиП), ООО "Издательство ВВМ", 2021. Ч. 1. С. 18‒22.
  14. Iannone E., Guadagni R., Ferrucci F., De Lucia A., Palomba F. The Secret Life of Software Vulnerabilities: A Large-Scale Empirical Study // IEEE Transactions on Software Engineering. 2023, Vol. 49. Iss. 1. PP. 44‒63. doi: 10.1109/TSE.2022.3140868
  15. Buinevich M., Izrailov K., Vladyko A. The life cycle of vulnerabilities in the representations of software for telecommunication devices // The Proceedings of 18th International Conference on Advanced Communication Technology (ICACT, Pyeongchang, South Korea, 31 January‒3 February 2016). IEEE, 2016. PP. 430‒435. doi: 10.1109/ICACT.2016.7423420
  16. Buinevich M., Izrailov K., Vladyko A. Metric of vulnerability at the base of the life cycle of software representations // The Proceedings of 20th International Conference on Advanced Communication Technology (ICACT, Pyeongchang, South Korea, 11‒14 February 2018). IEEE, 2018. PP. 1‒8. doi: 10.1109/ICACT.2018.8323940
  17. Израилов К.Е. Метод алгоритмизации машинного кода для поиска уязвимостей в телекоммуникационных устройствах. Автореф. дис. ... канд. техн. наук. СПб.: СПбГУТ, 2017. 22 с.
  18. Израилов К.Е. Метод алгоритмизации машинного кода для поиска уязвимостей в телекоммуникационных устройствах. Дис. ... канд. техн. Наук. СПб.: СПбГУТ, 2017. 261 с.
  19. Буйневич М.В., Израилов К.Е. Аналитическое моделирование работы программного кода с уязвимостями // Вопросы кибербезопасности. 2020. № 3(37). С. 2‒12. doi: 10.21681/2311-3456-2020-03-02-12
  20. Монастырная В.С., Фролов В.В. Визуальный язык дракон и его применение // Актуальные проблемы авиации и космонавтики. 2016. Т. 2. № 12. С. 78‒79.
  21. Паронджанов В.Д. Алгоритмические языки и программирование: ДРАКОН: учебное пособие для среднего профессионального образования. Москва: Издательство Юрайт, 2023. 436 с.
  22. Лапшова А.А. Разработка графического описания программного обеспечения с помощью языка UML // Теория и практика современной науки. 2018. № 6(36). С. 894‒896.
  23. Долидзе А.Н. Обзор специфических функций языка FBD на примере программируемых реле Logo! // Инженерный вестник Дона. 2022. № 11(95). С. 1‒10.
  24. Pardo M.X.C., Ferreiro G.R. SFC++: A Tool for Developing Distributed Real-Time Control Software // Microprocessors and Microsystems. 1999. Vol. 23. Iss. 2. PP. 75‒84. doi: 10.1016/S0141-9331(99)00015-0
  25. Ахмерова А.Н. Языки программирования контроллеров. особенности применения языков FBD, LD // Научный аспект. 2019. Т. 3. № 3. С. 340‒345.
  26. Туренко Д.Л., Кирьянов К.Г. Исследование подходов к идентификации и восстановлению алгоритмов программ // Вестник Нижегородского университета им. Н.И. Лобачевского. Серия: Радиофизика. 2004. № 1. С. 37‒46.
  27. Nassi I., Shneiderman B. Flowchart techniques for structured programming // SIGPLAN Notices. Vol. 8. Iss. 8. PP. 12–26. doi: 10.1145/953349.953350
  28. Басов А.С. Классификация языков программирования и их особенности // Вестник науки. 2020. Т. 2. № 8(29). С. 95‒101.
  29. Буйневич М.В., Израилов К.Е., Покусов В.В., Тайлаков В.А., Федулина И.Н. Интеллектуальный метод алгоритмизации машинного кода в интересах поиска в нем уязвимостей // Защита информации. Инсайд. 2020. № 5(95). С. 57‒63.
  30. Кизянов А.О., Глаголев В.А. Концепция универсального языка программирования // Постулат. 2022. № 1(75).
  31. Морозов Д.П., Слепнев А.В. Разработка анализатора кода C, C++ на языке Python с использованием Lex, Yacc // 74-я региональная научно-техническая конференция студентов, аспирантов и молодых ученых. Студенческая весна ‒ 2020 (Санкт-Петербург, Россия, 26–27 мая 2020). СПб.: СПбГУТ, 2020. С. 28‒32.
  32. Буйневич М.В., Израилов К.Е. Основы кибербезопасности: способы анализа программ: учебное пособие. СПб.: Санкт-Петербургский университет ГПС МЧС России, 2022. 92 с.
  33. Lee W.I., Lee G. From natural language to Shell Script: A case-based reasoning system for automatic UNIX programming // Expert Systems with Applications. 1995. Vol. 9. Iss. 1. PP. 71‒79. doi: 10.1016/0957-4174(94)00050-6
  34. Пирогов В. Ассемблер для Windows. Санкт-Петербург: БХВ-Петербург, 2012. 896 с.
  35. Капустин Д.А., Швыров В.В., Шулика Т.И. Статический анализ корпуса исходных кодов Python-приложений // Программная инженерия. 2022. Т. 13. № 8. С. 394‒403. doi: 10.17587/prin.13.394-403
  36. Suganuma T., Ogasawara T., Kawachiya K., Takeuchi M., Ishizaki K., Koseki A., et al. Evolution of a Java just-in-time compiler for IA-32 platforms // IBM Journal of Research and Development. 2004. Vol. 48. Iss. 5.6. PP. 767‒795. doi: 10.1147/rd.485.0767
  37. Кричанов М.Ю., Чепцов В.Ю. Защищенная UEFI-прошивка для виртуальных машин // Системный администратор. 2021. № 11(228). С. 75‒81.
  38. Макаров А.В., Скоробогатов С.Ю., Чеповский А.М. Common Intermediate Language и системное программирование в Microsoft.NET: учебное пособие. Москва, Саратов: Интернет-Университет Информационных Технологий (ИНТУИТ), Ай Пи Ар Медиа, 2020. 397 с.
  39. Красов А.В., Шариков П.И. Методика защиты байт-кода Java-программы от декомпиляции и хищения исходного кода злоумышленником // Вестник Санкт-Петербургского государственного университета технологии и дизайна. Серия 1: Естественные и технические науки. 2017. № 1. С. 47‒0.
  40. Buinevich M.V., Izrailov К.Е. Method and Utility for Recovering Code Algorithms of Telecommunication Devices for Vulnerability Search // Proceedings of the 16th International Conference on Advanced Communications Technology (ICACT, Pyeongchang, South Korea, 16‒19 February 2014). IEEE, 2014. PP. 172‒176. doi: 10.1109/ICACT.2014.6778943


Creative Commons License
Эта статья доступна по лицензии Creative Commons Attribution 4.0 International License.

Данный сайт использует cookie-файлы

Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта.

О куки-файлах