Идентификация алгоритмов преобразования данных в исполняемых модулях программного обеспечения
Ключевые слова:
идентификация алгоритмов, исполняемый модуль, программное обеспечение, линейный блок, слайсинг, информационный графАннотация
Стремительное развитие информационных технологий в последние десятилетия стало причиной значительного увеличения объема исходных текстов программного обеспечения, а также его сложности. Данный факт обусловливает высокую сложность анализа программного обеспечения с целью понимания логики его функционирования, необходимость выполнения которого является важным моментом при проведении судебной компьютерно - технической экспертизы. В статье раскрывается один из подходов к автоматизации процесса идентификации стандартизированных алгоритмов преобразования данных в исполняемых модулях в условиях отсутствия исходных текстов за счет учета их внутренних информационных связей с целью упрощения понимания программ.
Литература
2. Долгова К.Н., Чернов А.В. О некоторых задачах обратной инженерии // Труды Института системного программирования РАН. 2008. Т. 15. С. 119–134.
3. Zhao R. et al. Detection and analysis of cryptographic data inside software // Information Security. NY: Springer-Verlag Berlin Heidelberg. 2011. vol. 1. no. 1. pp. 182–196.
4. IDA F.L.I.R.T. Technology: In-Depth. URL: https://www.hex-rays.com/products/ida/tech/flirt/in_depth.shtml (дата обращения: 28.05.2015)
5. Gröbert F. Automatic Identification of Cryptographic Primitives in Software // Ruhr-University Bochum. 2010. 115 p.
6. Быков А.В. Поиск реализаций криптографических алгоритмов в дизассемблированном программном обеспечении // Инновации в информационно-аналитических системах: сб. научн. трудов. Вып. 2. 2011. С. 56–64.
7. Thierry A. Recognition of binary patterns by Morphological analysis // Reverse Engineering Conference. 2012.
8. Мацкевич А. Г., Козачок В. И. Математическая модель системы стохастического структурного распознавания файловых вирусов // Безопасность информационных технологий. 2007. № 3. С. 44–49.
9. Булычев П.Е. Алгоритмы вычисления отношений подобия в задачах верификации и реструктуризации программ // М.: МГУ им. M.В. Ломоносова. 2010. 169c.
10. Ахин М.Х., Ицыксон В.М. Слайсинг над деревьями: метод обнаружения разорванных и переплетенных клонов в исходном коде программного обеспечения // Моделирование и анализ информационных систем. 2012. Т. 19. № 6. С. 69–78.
11. Подымов В.В. Быстрые алгоритмы проверки эквивалентности программ в моделях с полугрупповой семантикой // М.: МГУ им. M.В. Ломоносова. 2014. 164c.
12. Calvet J. Cryptographic function identification in obfuscated binary programs // Reverse Engineering Conference. 2012. URL: https://recon.cx/2012/schedule/attachments/46_Joan_CryptographicFunctionIdentification.pdf (дата обращения: 28/05/2015).
13. Lutz. N. Towards Revealing Attackers’ Intent by Automatically Decrypting Network Traffic // Fritz Kutter Fonds. 2008. URL: http://www.kutter-fonds.ethz.ch/App_Themes/default/datalinks/NoeLutz-08.pdf (дата обращения: 28.05.2015).
14. Wang Z., Jiang X., Cui W., Wang X. ReFormat: Automatic Reverse Engineering of Encrypted Messages // Proceedings of the 14th European conference on Research in computer security (ESORICS'09). 2009. pp. 200–215.
15. Ершов А.П. Введение в теоретическое программирование (беседы о методе) // М.: Издательство «Наука». 1977. 288 с.
16. Sridharan M., Fink S. J., Bodík R. Thin Slicing // ACM SIGPLAN Notices. 2007. vol. 42. no. 6. pp. 112–122.
17. FIPS PUB 180 – 4. Security Hash Standard (SHS) // NIST. Computer Security Resource Center. 2012. URL: http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf (дата обращения: 28.05.2015).