攻防总是相辅相成,恶意软件开发者费尽心机做免杀,杀毒厂商引入各种技术去提升检测能力。杀毒厂商往往需要通过搜集、购买和交换获得大量的病毒样本来验证自身的检测能力。回顾恶意软件开发者研制恶意程序的过程,通常他们会在写完程序后,使用常见的几种杀毒软件检测,如果被检测出来,就尝试使用不同的免杀技术直到杀毒软件无法检测为止。我们是否可以使用机器学习的技术,自动化地针对恶意程序进行各种免杀处理,直到杀毒软件无法检测为止,然后利用生成的恶意程序去优化我们的杀毒软件?强化学习是个不错的答案。本章涉及的代码基于Gym-Malware修改,保存在本书对应GitHub下的code/gym-malware。