Автоматическая генерация хэш-функций для обфускации программного кода | Прикладная дискретная математика. 2020. № 50. DOI: 10.17223/20710410/50/8

Рассмотрены особенности применения хэш-функций для запутывания программного кода, а также проблемы использования в этих целях существующих хэш-функций. С учётом этих особенностей и проблем предлагается метод автоматической генерации хэш-функций, основанный на подходе генетического программирования. Предложены методы оценки устойчивости хэш-функций к автоматическим атакам поиска первого прообраза, основанным на использовании SMT-решателей, и к случайным коллизиям. Проведена оценка генерируемых функций, а также предложен метод быстрого обнаружения слабых экземпляров, позволяющий значительно повысить устойчивость получаемых хэш-функций к атакам.
  • Title Автоматическая генерация хэш-функций для обфускации программного кода
  • Headline Автоматическая генерация хэш-функций для обфускации программного кода
  • Publesher Tomask State UniversityTomsk State University
  • Issue Прикладная дискретная математика 50
  • Date:
  • DOI 10.17223/20710410/50/8
Ключевые слова
обфускация, хэш-функция, генетическое программирование, лавинный эффект, SMT-решатель
Авторы
Ссылки
Banescu S., Collberg C. S., Ganesh V., et al. Code obfuscation against symbolic execution attacks // Proc. 32nd Ann. Conf. Computer Security Appl. 2016. P. 189-200.
Udupa S., Debray S., and Madou M. Deobfuscation: Reverse Engineering Obfuscated Code. 12th Working Conf. WCRE’05. 2005. 10 p.
Junod P., Rinaldini J., Wehrli J., and Michielin J. Obfuscator-LLVM - software protection for the masses // IEEE/ACM 1st Intern. Workshop Software Protection. 2015. P.3-9.
Sharif M., Lanzi A, Giffin J., and Lee W. Impeding malware analysis using conditional code obfuscation // Proc. NDSS. San Diego, California, USA, 2008.
https://www.hex-rays.com/products/ida/lumina/ - IDA: Lumina server. 2020.
Xu D., Ming J., and Wu D. Cryptographic function detection in obfuscated binaries via bit-precise symbolic loop mapping // IEEE Symp. Security Privacy (SP). Los Alamitos, CA, USA, 2017. P.921-937.
Qiu W., Gong Z., Guo Y., et al. GPU-based high performance password recovery technique for hash functions // J. Inform. Sci. Eng. 2016. V. 32. No. 1. P.97-112.
Estebanez C., Hernandez-Castro J., Ribagorda A., and Isasi P. Finding state-of-the-art noncryptographic hashes with genetic programming // LNCS. 2006. V. 4193. P.818-827.
Tapiador J., Hernandez-Castro J., Peris-Lopez P., and Ribagorda A. Automated design of cryptographic hash schemes by evolving highly-nonlinear functions // J. Inform. Sci. Eng. 2008. V. 24. No. 5. P.1485-1504.
Menezes A, van Oorschot P., and Vanstone S. Handbook of Applied Cryptography. CRC Press, 1996. 661 p.
Collberg C.S. and Thomborson C. Watermarking, tamper-proofing, and obfuscation - tools for software protection // IEEE Trans. Software Eng. 2002. V. 28. No. 8. P. 735-746.
Webster A. F. and Tavares S. E. On the design of S-boxes // LNCS. 1985. V. 218. P. 523-534.
Cilibrasi R. and Vitanyi P. M. B. Clustering by compression // IEEE Trans. Inform. Theory. 2005. V. 51. No. 4. P.1523-1545.
Koza J. R. Genetic programming as a means for programming computers by natural selection // Stat. Comput. 1994. V.4. No.2. P.87-112.
Fortin F. A., De Rainville F. M., Gardner M. A. G., et al. DEAP: Evolutionary algorithms made easy // J. Machine Learning Res. 2012. V. 13. No. 1. P.2171-2175.
Dworkin M. J. SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions. National Institute of Standards and Technology, 2015.
Shoshitaishvili Y., Wang R., Salls C., et al. SOK: (State of) The art of war: Offensive techniques in binary analysis // IEEE Symp. Security Privacy (SP). 2016. P. 138-157.
Chipounov V., Kuznetsov V., and Candea G. S2E: A platform for in-vivo multi-path analysis of software systems // ACM SIGPLAN Notices. 2011. V.46. No.3. P.265-278.
De Moura L. and Bjorner N. Z3: An efficient SMT solver // LNCS. 2008. V. 4963. P. 337-340.
Barrett C. , Conway C. L. , Deters M. , et al. CVC4 // Intern. Conf. Comput. Aided Verification. 2011. P. 171-177.
Dutertre B. Yices 2.2 // Intern. Conf. Comput. Aided Verification. 2014. P. 737-744.
Brummayer R. and Biere A. Boolector: An efficient SMT solver for bit-vectors and arrays // LNCS. 2009. V. 5505. P. 174-177.
Knuth D. E. The Art of Computer Programming. V. 3: Sorting and Searching. 2nd Ed. Addison-Wesley Professional, 1998. 800 p.
Flajolet P., Grabner P. J., Kirschenhofer P., and Prodinger H. On Ramanujan’s Q-function // J. Computat. Appl. Math. 1995. V. 58. No. 1. P.103-116.
http://www.isthe.com/chongo/tech/comp/fnv/ - FNV Hash. 1991.
 Автоматическая генерация хэш-функций для обфускации программного кода | Прикладная дискретная математика. 2020. № 50. DOI: 10.17223/20710410/50/8
Автоматическая генерация хэш-функций для обфускации программного кода | Прикладная дискретная математика. 2020. № 50. DOI: 10.17223/20710410/50/8