Россия
Россия
Россия
Россия
Статья посвящена задаче обнаружения экземпляров исходного кода, дублирующего заданный. В интересах этого рассматриваются существующие подходы поиска клонов кода, основанные на текстовом, лексическом, синтаксическом, метрическом и семантическом анализе. Основываясь на их критериальном сравнении, предлагается новый метод поиска дубликатов, в основу которого положен алгоритм случайного блуждания. Суть метода заключается в построении графов двух исходных кодов (где узлами являются лексические единицы текста, а ребрами – связи между ними), на которых затем применяется указанный алгоритм; дается описание метода в виде псевдокода. Проводится эксперимент по оценке работоспособности метода с использованием следующих метрик: Жаккара, разниц количества ребер, вершин и средней кластеризации графов, кратчайшего пути между их вершинами, а также сходства между графами. Сценарии экспериментов состоят из вычисления метрик для комбинаций экземпляров двух исходных кодов, их объединения и доли одного из них. Делаются выводы касательно применимости как самого метода, так и каждой из метрик оценки.
информационная безопасность, поиск дубликатов, случайное блуждание, исходный код
1. Цифровые технологии и проблемы информационной безопасности: монография / Т.И. Абдуллин [и др.]. СПб.: СПГЭУ, 2021. 163 с.
2. Защита информации в компьютерных системах: монография / М.В. Буйневич [и др.]. СПб.: СПГЭУ, 2017. 163 с.
3. Израилов К.Е. Моделирование программы с уязвимостями с позиции эволюции ее представлений. Ч. 1. Схема жизненного цикла // Труды учебных заведений связи. 2023. Т. 9. № 1. С. 75-93. DOI:https://doi.org/10.31854/1813-324X-2023-9-1-75-93.
4. Сойников М.А. Взыскание ущерба, причиненного преступлением против интеллектуальной собственности: процессуальные аспекты // Lex Russica (Русский закон). 2019. № 12 (157). С. 80-86.
5. Слета В.Д. Поддержка повторного использования кода на основе онтологического подхода // Современные информационные технологии. 2010. № 11. С. 178-181.
6. Романов Н.Е., Израилов К.Е., Покусов В.В. Система поддержки интеллектуального программирования: машинное обучение feat. Быстрая разработка безопасных программ // Информатизация и связь. 2021. № 5. С. 7-17. DOI:https://doi.org/10.34219/2078-8320-2021-12-5-7-16.
7. Шуваев Ф.Л., Татарка М.В. Анализ математических моделей случайных графов, применяемых в имитационном моделировании информационно-коммуникационных сетей // Науч.-аналит. журн. «Вестник С.-Петерб. ун-та ГПС МЧС России». 2020. № 2. С. 67-77.
8. Suttichaya V., Eakvorachai N., Lurkraisit T. Source Code Plagiarism Detection Based on Abstract Syntax Tree Fingerprintings // The proceedings of 17th International Joint Symposium on Artificial Intelligence and Natural Language Processing (Chiang Mai, Thailand, 5-7 November 2022). 2022. P. 1-6. DOI:https://doi.org/10.1109/iSAI-NLP56921.2022.9960266.
9. Nishi M.A., Ciborowska A., Damevski K. Characterizing Duplicate Code Snippets between Stack Overflow and Tutorials // The proceedings of 16th International Conference on Mining Software Repositories (Montreal, QC, Canada, 25-31 May 2019). 2019. P. 240-244. DOI:https://doi.org/10.1109/MSR.2019.00048.
10. Raheja K., Tekchandani R.K. An efficient code clone detection model on Java byte code using hybrid approach // The proceedings of Confluence 2013: The Next Generation Information Technology Summit (Noida, 26-27 September 2013). 2013. P. 16-21. DOI:https://doi.org/10.1049/cp.2013.2287.
11. Wang H., Zhong J., Zhang D. A Duplicate Code Checking Algorithm for the Programming Experiment // The proccedings of Second International Conference on Mathematics and Computers in Sciences and in Industry (Sliema, Malta, 17 August 2015). 2015. P. 39-42. DOI:https://doi.org/10.1109/MCSI.2015.12.
12. Moshkin V., Kalachev V., Zarubin A. Automation of Program Code Analysis Using Machine Learning Methods // The proocedings of International Russian Automation Conference (Sochi, Russian Federation, 4-10 September 2022). 2022. P. 404-408. DOI:https://doi.org/10.1109/RusAutoCon54946.2022.9896360.
13. Израилов К.Е., Гололобов Н.В., Краскин Г.А. Метод анализа вредоносного программного обеспечения на базе Fuzzy Hash // Информатизация и связь. 2019. № 2. С. 36-44.
14. Хилько В.О., Шаров И.А. Поиск дубликатов в исходных кодах программ // Региональная информатика и информационная безопасность. Вып. 4. 2017. С. 184-185.
15. Лисс А.Р., Андрианов И.А. Анализ и разработка методов поиска дубликатов в программном коде // Известия СПбГЭТУ ЛЭТИ. 2010. № 7. С. 55-61.
16. Вахрушев И.Н. Использование суффиксных деревьев для поиска дублирующихся фрагментов кода // Системы управления и информационные технологии. 2012. № 4 (50). С. 55-58.
17. Бородащенко А.Ю. Анализ текстов на семантическое сходство на основе аппарата теории графов // Известия Орловского государственного технического университета. Сер.: Информационные системы и технологии. 2008. № 1-2. С. 46-52.
18. De J., Zhang X., Lin F., Cheng L. Transduction on Directed Graphs via Absorbing Random Walks // IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 40. № 7. P. 1770-1784. DOI:https://doi.org/10.1109/TPAMI.2017.2730871.
19. Gori M., Maggini M., Sarti L. Exact and approximate graph matching using random walks // IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 27. № 7. P. 1100-1111. DOI:https://doi.org/10.1109/TPAMI.2005.138.
20. Lambiotte R., Delvenne J.-C., Barahona M. Random Walks, Markov Processes and the Multiscale Modular Organization of Complex Networks // IEEE Transactions on Network Science and Engineering. Vol. 1. № 2. P. 76-90. DOI:https://doi.org/10.1109/TNSE.2015.2391998.
21. Котов Э.М. Методы анализа гиперссылок при информационном поиске в глобальной сети // Известия ЮФУ. Технические науки. 2012. № 4 (129). С. 233-237.
22. Гасников А.В., Дмитриев Д.Ю. Об эффективных рандомизированных алгоритмах поиска вектора PageRank // Журнал вычислительной математики и математической физики. 2015. Т. 55. № 3. С. 355. DOI:https://doi.org/10.7868/S0044466915030060.
23. Кузьминова М.В. Периодические динамические графы. Задачи о случайных блужданиях и о кратчайших путях // Известия высших учебных заведений. Северо-Кавказский регион. Сер.: Естественные науки. 2008. № 2 (144). С. 16-21.
24. Немченко Д.С. Выявление общих черт пользователей для рекомендательной системы на примере коэффициента сходства Жаккара // Вестник магистратуры. 2023. № 3-1 (138). С. 14-15.
25. Кайда А.Ю. Анализ сходства текстов на основе коэффициента Жаккара-Танимото // Математические методы и модели техники, технологий и экономики: материалы Всерос. студ. науч.-практ. конф. 2022. С. 115-118.
26. Samanthula B.K., Jiang W. Secure Multiset Intersection Cardinality and its Application to Jaccard Coefficient // IEEE Transactions on Dependable and Secure Computing. Vol. 13. № 5. P. 591-604. DOI:https://doi.org/10.1109/TDSC.2015.2415482.
27. Самохин М.В. Вычисление сходства помеченных графов и их проекций // Научно-техническая информация. Сер. 2: Информационные процессы и системы. 2006. № 3. С. 1-12.
28. Kotenko I., Izrailov K., Buinevich M. The Method and Software Tool for Identification of the Machine Code Architecture in Cyberphysical Devices // Journal of Sensor and Actuator Networks. 2023. Vol. 12. Iss. 1. P. 11. DOI:https://doi.org/10.3390/jsan12010011.
29. Kotenko I., Izrailov K., Buinevich M. Analytical Modeling for Identification of the Machine Code Architecture of Cyberphysical Devices in Smart Homes // Sensors. 2022. Vol. 22. Iss. 3. P. 1017. DOI:https://doi.org/10.3390/s22031017.
30. Kotenko I., Izrailov K., Buinevich M. Static Analysis of Information Systems for IoT Cyber Security: A Survey of Machine Learning Approaches // Sensors. 2022. Vol. 22. Iss. 4. P. 1335. DOI:https://doi.org/10.3390/s22041335.