代码之家  ›  专栏  ›  技术社区  ›  Matthew Murdoch

哈佛体系结构计算机是否对任意代码注入和执行攻击免疫?

  •  8
  • Matthew Murdoch  · 技术社区  · 17 年前

    哈佛体系结构计算机有独立的代码和数据存储器。这是否使它们对代码注入攻击免疫(因为数据不能作为代码执行)?

    6 回复  |  直到 9 年前
        1
  •  16
  •   Rom    17 年前

    它们比冯·诺依曼建筑更具免疫力,但并非完全如此。每个体系结构都有一个转换点,在这里数据开始作为代码处理。在冯·诺依曼(Von Neumann)中,它发生在CPU内部,而在哈佛,它发生在为模块保留和声明内存之前(有时甚至在此之前,当构建系统准备文件时)。这意味着在哈佛体系结构中,成功的代码注入攻击需要更加复杂和牵强,但不一定是不可能的。

    如果可以将包含恶意代码的文件放在机器存储器(例如文件系统)中,并导致(例如)缓冲区溢出,该溢出将在返回到现有(有效、非恶意)代码时重定向,该代码将该恶意文件加载为代码,并且如果体系结构允许该文件开始执行(例如,通过自初始化例程),这将是成功的代码注入的一个例子。

        2
  •  7
  •   Joshua Schwartz CoronA    5 年前

    这在一定程度上取决于你认为什么是“代码注入攻击”。

    以SQL注入攻击为例。SQL查询本身永远不需要位于内存的可执行部分,因为它由数据库引擎转换为本机代码(或解释,或任何您希望使用的术语)。然而,SQL仍然可以被广泛地视为“代码”。

    如果您仅包括插入处理器直接执行的本机代码的攻击者(例如,通过缓冲区溢出),并且如果阻止该进程将数据复制到“代码区”,则它可以提供针对此类攻击的保护,是的。(我不愿意要求100%的保护,即使我想不出任何攻击向量;它 声音

        3
  •  5
  •   Kekoa    17 年前

    some researchers 谁能完成一项任务 permanent code injection attack 关于哈佛建筑。所以可能不像人们想象的那样安全。

        4
  •  0
  •   sybreon    17 年前

        5
  •  0
  •   Paul Nathan    17 年前

    我的大学最近有一个MS辩护,讨论了这件事。不幸的是,我没能参加。我相信如果你联系瓦茨先生,他会愿意讨论的。

    http://www.cs.uidaho.edu/Defenses/KrisWatts.html

        6
  •  -1
  •   Cthulhon    17 年前