2.3.3 欺骗和隐藏
本文讲的是网络空间欺骗:构筑欺骗防御的科学基石一2.3.3 欺骗和隐藏,欺骗总是会涉及两个基本步骤,即隐藏真的信息和显示假的信息。乍一看,这与被普遍认可的Kerckhoff的原则相冲突;“通过隐藏是没有安全可言的”。Kerckhoff原则的一个更准确的英语翻译是由Petitcolas提出的:
如果系统没有不必要的秘密,纵使敌人盗用也不会造成麻烦。
这种误解导致一些安全人员相信任何“隐藏”都是无效的,而其实并非是这样的。对攻击者隐藏一个系统或设置一个秘密密码确实可以增加攻击者的工作,直到欺骗被检测到和欺骗失效。只要安全不完全依赖于隐藏,误导和欺骗的引入就是有优势的。因此,在一个全面的防御中包含这样的机制对设计者是非常有价值的,但必须知晓的是这种机制不应该被视为主要的防御机制。
在任何系统的设计中,对系统行为的观察以及对服务请求的响应有3个层次[29]:
真实的。在系统中,进程总会“诚实”地对任何输入做出响应。换句话说,系统的响应总是“可信的”,它能准确地表示机器的内部状态。例如,当用户请求一个特定的网络端口时,一个真实的系统或者响应一个真实的端口号或者拒绝请求并给出拒绝的具体原因。
简单欺骗。在这样的系统中,进程通过伪造的响应试图欺骗正在与之交互的用户。然而,如果用户知道了欺骗的行为,例如通过分析系统先前所使用的欺骗行为,那么欺骗行为则变成无用的,这只会提醒用户该系统正在试图欺骗他。例如,该系统可以指定一个特定的、用于欺骗的端口。当攻击者在没有合适权限的情况下请求一个端口时,这个欺骗性的端口就会被返回。
智能欺骗。在这种情况下,系统的“欺骗行为”是无法与正常的行为区分开的,即使用户先前与系统发生过交互。例如,一个智能的欺骗系统会像正常允许的请求一样监听请求并响应未经授权的端口。然而,系统会采取额外的行动来监控端口,警示系统管理员,和/或在监听过程中如果进程下载恶意内容,则会限制损坏。
原文标题:网络空间欺骗:构筑欺骗防御的科学基石一2.3.3 欺骗和隐藏