随着技术的发展,信息物理融合系统(cyber-physical system,简称CPS)在生活中扮演着越来越重要的角色,例如电力系统、铁路系统.如果CPS遭到攻击,将对现实世界的正常运转造成巨大影响,甚至威胁生命安全.垂悬指针是指向的区域被释放后未被置为空的指针,它是一种会导致攻击的软件缺陷.由垂悬指针导致的use-after-free和double-free漏洞能够执行任意恶意代码.迄今为止,只有少量工作针对垂悬指针进行检测、防御.其中多数都会导致过高的额外运行时开销.提出DangDone用于检测和防御垂悬指针.首先,通过静态分析检测潜在垂悬指针;然后,基于检测到的垂悬指针信息和一系列预定义的指针变换规则,依据指针传播信息变换指针,使得指针及其别名都指向同一个新引入的指针.基于该方法,实现了DangDone的原型工具.基于11个开源项目和SPEC CPU benchmark的实验结果表明:DangDone的静态分析部分只有33%的误报率,指针变换部分只引入了1%左右的额外开销.同时,DangDone成功防护了11个开源项目中的use-after-free和double-free漏洞.实验结果体现了DangDone的高效率及有效性.
社会技术系统通常由人类、硬件和软件主体组成,通过它们之间的协同工作满足相关涉众的需求。由于社会技术系统的开放性、动态性和持续变化性,这类系统中的主体需要动态地调整自己的行为,以适应动态变化的环境。一些研究工作已经提出了支持动态重配置和可变承诺的面向社会技术系统的自适应方法。然而,目前还缺少基于这种方法的实现框架。针对这一问题,提出一个基于主体的自适应实现框架,为社会技术系统提供基于可变承诺的自适应能力。该框架是基于JADE(Java Agent Development Framework)平台来实现的,并且提供了面向特定系统的监控器接口和执行器接口来实现个性化配置。最后,通过一个案例分析验证了该实现框架的有效性。