研究·Research








错误注入·

错误注入和程序诊断技术研究:

  目前,一般软件的代码量都动辄数以百万行计,而诸如操作系统和大型工程软件,其代码量更是达到了数千万行。由于软件的复杂性,程序员的水平和意识等方面都存在限制,因此,不可避免地会带来大量的软件安全隐患。如何快速高效的进行程序安全性诊断,已经成为各国软件行业研究的重要的课题。
  
  安天参考国际容错和诊断技术的思路和成果,开发了基于Linux系统的错误注入的原形系统Injecter,这个系统通过掩饰注入错误,从而达到高效测试软件缺陷的目的。使得自动进行软件缺陷检测成为可能。


  

  几乎所有的应用程序都包括用户接口、应用函数调用、系统函数调用、其他功能应用调用。例如格式化字符串攻击是发生在用户接口上的,符号连接攻击,文件描述字攻击是发生在标准函数调用上的,竞争条件攻击很多是发生在用用函数信号量调用冲突上的,共享函数库攻击,IFS攻击,环境变量攻击是发生在操作系统应用特性上的。
  
  Injecter针对不同的阶段做了不同模式的错误注入应用,可以选择不同的错误注入方法,从而形成具有针对性的高效率软件缺陷测试能力。
 
  目前Injecter可以进行如下的错误注入行为:

  • 符号连接攻;
  • 文件描述字攻击;
  • 共享函数库攻击;
  • IFS攻击;
  • 格式化字符串攻击;
  • 环境变量攻击;
  • 竞争条件攻击;

  2002年6月,Injecter项目开发组的进度已经领先于此前处于国际领导地位的FIG - Fault Injection in glibc(这是美国berkeley大学和Stanford大学的联合研究计划中(ROC)中的一个项目)。