编译器如何危及应用程序的安全_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > 编译器如何危及应用程序的安全

编译器如何危及应用程序的安全

 2013/10/30 23:12:48    程序员俱乐部  我要评论(0)
  • 摘要:对于编译器如何将人类可读的代码翻译成机器运行的机器码,大多数程序员通常只有大概的概念。在编译过程中,编译器会对代码进行优化,使其能高效的运行。有的时候,编译器在优化上面走的太远了,它甚至移除了本不应该移除的代码,导致应用程序更加脆弱。MIT人工智能和计算机科学实验室的四位研究人员调查了(PDF)不稳定优化(optimization-unstable)代码的问题——编译器移除的包含未定义行为的代码。所谓的未定义行为包括了除以0,空指针间接引用和缓冲溢出等。在某些情况下
  • 标签:程序 编译器 编译 应用 应用程序

  对于编译器如何将人类可读的代码翻译成机器运行的机器码,大多数程序员通常只有大概的概念。在编译过程中,编译器会对代码进行优化,使其能高效的运行。有的时候,编译器在优化上面走的太远了,它甚至移除了本不应该移除的代码,导致应用程序更加脆弱。MIT 人工智能和计算机科学实验室的四位研究人员调查了(PDF)不稳定优化(optimization-unstable)代码的问题——编译器移除的包含未定义行为的代码。所谓的未定义行为包括了除以0,空指针间接引用和缓冲溢出等。

  在某些情况下,编译器完整移除未定义行为代码可能会导致程序出现安全弱点。研究人员开发了一个静态检查器 STACK 去识别不稳定的C/C++代码,他们在测试的系统中发现上百个新 bug:Linux 内核发现 32 个 bug,Mozilla 发现 3 个,Postgres 9 个和 Python 5 个。STACK 扫描了 Debian Wheezy 软件包仓库 8575 个含有C/C++代码的软件包,发现其中 3471 个至少包含一个不稳定的代码。研究人员认为这是一个非常普遍的问题。

发表评论
用户名: 匿名