Protección ante ataques a aplicaciones informáticas ofuscando el grafo de llamadas
Palabras clave:
Protección del código, Ofuscación del grafo de llamadasResumen
Nuevos mecanismos de seguridad se han desarrollado para obstaculizar el accionar de atacantes contra aplicaciones informáticas. Los ataques de ingeniería inversa exponen la vulnerabilidad del código fuente. Aunque no es posible garantizar un 100% de seguridad, la ofuscación del código constituye una opción que hace más difícil el acceso y comprensión de este. La ofuscación del grafo de llamadas es la alternativa que presenta este trabajo y ha demostrado ser altamente eficiente al lograr niveles significativos de diversificación y ocultación. Este trabajo presenta los resultados del análisis de diferentes fuentes donde se exponen algunas técnicas empleadas en la ofuscación del código y se describe una nueva propuesta que emplea a la ofuscación del grafo de llamada.
Citas
Ahire, P., & Abraham, J. (2020). Mechanisms for Source Code Obfuscation in C: Novel Techniques and Implementation. International Conference on Emerging Smart Computing and Informatics (ESCI), (págs. 52-59). Pune. doi:https://doi.org/10.1109/ESCI48226.2020.9167661
Al-Hakimi, A. M., Sultan, A. B., Ghani, A. A., Ali, N. M., & Admodisastro, N. I. (2020). Hybrid Obfuscation Technique to Protect Source Code From Prohibited Software Reverse Engineering. IEEE Access, 8, 187326-187342. doi:https://doi.org/20.1109/ACCESS.2020.3028428
Bin Shamlan, A., Alaidaroos, A. S., Bin Merdhah, M. H., Bamatraf, M. A., & AA, Z. (2020). Experimentalevolution of the obfuscation techniques against reverse engineering. Proceedings of ICACI2020. Advances on smart and soft computing, (págs. 382-390). Spring Singapore.
Bin Shamlan, M., Bamatraf, M., & Zain, A. (2019). The Impact of Control Flow Obfuscation Technique on Software Protection Against Human Attacks. 2019 First International Conference of Intelligent Computing and Engineering (ICOICE). Hadhramout. doi:https://doi.org/10-1109/ICOIICE48418.2019.9035187
Céspedes Maestre, M. (2021). Detección de URLs maliciosos por mendio de técnicas de aprendizaje automático. Tesis de maestría, Universidad Nacional de Colombia. Obtenido de https://repositorio.unal.edu.co/handle/unal/79722
Cheng, X., Lin, Y., Gao, D., & Jia, C. (2019). DynOpVm: VM-Based Software Obfuscation with Dynamic Opcode Mapping. Applied Cryptography and Network Security (ACNS 2019, 11464, págs. 155-174. Cham. doi:https://doi.org/10.1007/978-3-030-21568-2_8
Collberg, C., Thomborson, C., & Low, D. (1997). Taxonomy off obfuscation transformations. Reporte técnico #148, Auckland University. Obtenido de https://research.sapace.aunckland.ac.nz/handle/2292/3491
Compton, R., Frank, E., Patros, P., & Koay, A. (2020). Embedding Java Classes with code2vec: Improvements from Variable Obfuscation. Proceedings of the 17th International Conference on Mining Software Repositories (MSR '20). Association for Computing Machinery, (págs. 243-253). New York. doi:https://doi.org/10.1145/3379597.3387445
Ebad, S., Daren, A., & Abawagy, J. (2021). Measuring software obfuscation quality -a systematic literature review. IEEE Access, 9, 99024-99038.
Fell, A., Pham, H. T., & Lam, S. (2019). TAD: Time Side-Channel Attack Defense of Obfuscated Source Code. 24th Asia and South Pacific Design Automation Conference (ASP-DAC), (págs. 1-6). Tokyo. doi:https://doi.org/10.1145/3287624.3287694
Gatica, J., Beron, M., Riesco, D., Pereira, M. J., Henriques, P., & Novais, P. (2023). Protección de activos de software. XXV Workkshop de Investigación en Ciencias de la Computación, (págs. 699-703). Junín. Obtenido de https://sedici.unlp.ed.ar/hadle/10915/164036
Hashemzade, B., & Abdolrazzagh-Nezhad, M. (2019). CSE: A Novel Dynamic Obfuscation Based on Control Flow, Signals and Encryptio . Journal of Computing and Security,, 6, 53-63. doi:https://doi.org/10.22108/jcs.2020.115402.1017
Khan, R. A., Khan, S. U., Khan, H. U., & Ilyas, M. (2022). Systematic literature review on security risks and its practices in secure software development. ieee Access, 10, 5456-5481.
Kumar, A., & Sharma, S. (2019). Design and Implementation of Obfuscating Tool for Software Code Protection. Advances in Interdisciplinary Engineering, (págs. 665–676). Singapore. doi:https://doi.org/10.1007/978-981-13-6577-5_64
Li, Y., Xiong, X., & Zhao, Y. (2021). Code Obfuscation Based on Inline Split of Control Flow Graph. 2021 IEEE International Conference on Artificial Intelligence and Computer Applications (ICAICA), (págs. 632-638). Dalian. doi:https://doi.org/10.1109/ICAICAS2286.2021.9498241
Lv, D., Zhao, L., & Chen, B. (2022). Research Based on LLVM Code Obfuscation Technology. International Conference on Industrial IoT, Big Data and Supply Chain (IIoTBDSC), (págs. 163-167). Beijing. doi:https://doi.org/10.1109/IIoTBDSC57192.2022.00039
Mahoney, W., McDonald, J., Grispos, G., & Mandal, S. (2023). Improvements on Hiding x86-64 Instructions by Interleaving. Proceedings of the 18th International Conference on Cyber Warfare and Security, (págs. 246-255). Maryland. doi:https://doi.org/10.34190/iccws.18.1.987
Morrison, P., Moye, D., Pandita, R., & Laurie, W. (2018). Mapping the Field of Software Life Cycle Security Metrics. Information and Software Technology, 102, 146-159. Obtenido de https://www.researchgate.net/profile/Dr-Rafiq-Khan/publication/341129438_The_State_of_the_Art_on_Secure_Software_Engineering_A_Systematic_Mapping_Study/links/5eb1197292851cb267741f4c/The-State-of-the-Art-on-Secure-Software-Engineering-A-Systematic-Mapping-Study.pdf
Ming Lu, K. (2019). Control flow obfuscation via CPS transformation. Proceedings of the 2019 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM 2019). Association for Computing Machinery, (págs. 54–60). New York. doi:https://doi.org/10.1145/3294032.3294083
Montejano Masa, J. P., Berón, M., Montejano, G. A., & Riesco, D. E. (2023). Métodos, técnicas y herramientas para la protección de sistemas de software. XXV Workkshop de Investigación en Ciencias de la Computación, (págs. 719-723). Junín. Obtenido de https://sedici.unlp.ed.ar/hadle/10915/164036
Moreno, A. (2023). Técnicas de evasión de antivirus y EDR. Tesis de grado, Escuela Técnica Superior de Ingeniería de sistemas de la Universidad Politécnica de Madrid, Madrid. Obtenido de https://oa.upm.es/id/eprint/75850
Quiroz Zambrano, S., & Macías Valencia, D. (2017). Seguridad en informática. consideraciones. Dominio de las Ciencias, 23(5), 676-688. doi:http://dx.doi.org/10.23857/dom-cien.pocaip.2017.3.5.ago.676-688
Roa Buendía, J. (2013). Seguridad informática. Madrid, España: McGraw Hill Education.
Rodríguez Véliz, J., Núñez Musa, Y., & Sepúlveda Lima, R. (2020). Call graph obfuscation and diversification: An approach. IET Information Security, 14(2), 241-252. doi:jttps://doi.org/10.1049/iet-ifs.2019.0216
Rodríguez Véliz, J., Núñez Musa, Y., & Sepúlveda Lima, R. (2023). Study of Code Obfuscation Techniques for the Security of Software Components. Intelligent Systems and Applications in Engineering, 11(10), 913-922. Obtenido de https://ijisae.org/index.php/IJISAE/article/view/3385
Rodríguez Véliz, J. (2025). Modelo para la privacidad de software basada en la diversificación y ofuscación del grafo de llamadas. Tesis de doctorado, Facultad de Ingeniería Informática, Universidad Tecnológica de La Habana.
Stallings, William Brown, Lawrie (2022) Computer security: Principles and practice (5th edition). Pearson Education. Obtenido de https://studylib.net/doc/27914471/computer-security-principles-and-practice-5th-edition---w.
Tambunan, S., & Rokhman, N. (2023). C Source code Obfuscation using Hash Function and Encryption Algorithm. . Indonesian Journal of Computing and Cybernetics Systems (IJCCS), 17, págs. 227-236. doi:https://doi.org/10.22146/ijccs.86118
Wang, L., Li, Y., Zhang, H., Han, Q., & Chen, L. (2021). An Efficient Control-flow based Obfuscator for Micropython Bytecode. 2021 7th International Symposium on System and Software Reliability (ISSSR), (págs. 54-63). Chongqing. doi:https://doi.org/10.1109/ISSSR53171.2021.00028
Wang, Z., Shan, Y., Yang, Z., Wang, R., & Song, S. (2020). Semantic Redirection Obfuscation: A Control flow Obfuscation Based on Android Runtime. 2020 IEEE 19th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom),, (págs. 1756-1763). doi:https://doi.org/10.1109/TrustCom50675.2020.00241
Whitman, Michael. Mattord, Herbert (2022). Principles of Information Security (7th edition). Cengage Learning.
Xu, H., Zhou, Y., Ming, J., & Lyu, M. (2020). Layered obfuscation: a taxonomy of software obfuscation tecniques for layered security. Cibersegurity, 3, 1-18. Obtenido de https://link.springer.com/article/10.1186/542400-020-00049-3
Yang, X., Zhang, L., Ma, C., Liu, Z., & Peng, P. (2019). Android Control Flow Obfuscation Based on Dynamic Entry Points Modification. 22nd International Conference on Control Systems and Computer Science (CSCS), (págs. 296-303). Bucharest. doi:https://doi.org/10.1109/CSCS.2019.00054
Yi, J., Chen, L., Zhang, H., Li, Y., & Zhao, H. (2020). A Security Model and Implementation of Embedded Software Based on Code Obfuscation. En 2020 (Ed.), 2020 IEEE 19th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom), (págs. 1606-1613). Guangzhou. doi:https://doi.org/10.1109/TrustCom50675.2020.00222
Publicado
Cómo citar
Número
Sección
Licencia
Derechos de autor 2025 Miguel Rodríguez Véliz, Anaisa Hernández González, Roberto Sepúlveda Lima, Yulier Núñez Musa

Esta obra está bajo una licencia internacional Creative Commons Atribución-NoComercial 4.0.






