存档

文章标签 ‘系统设计’

安全:该做什么和不该做什么(转载)

2010年2月5日 hashei 没有评论

安全是当今IT系统越来越重视的内容,特别在系统集成方面,需要我们尽可能构造一个安全可靠的环境。虽然按照传统的经验,一个系统对于不同的业务进行了网络拓扑上的划分,在关键位置部署了防火墙、入侵检测系统、审计系统等安全设备。但是“在你花费时间去加强系统中最坚固的部分的时候,你的对手则正在靠近这个系统中最薄弱的环节”,就要求我们“避免过度设计,优先改进最薄弱的环节”,而这点,往往用钱和设备是堆积不出来的,特别是一些安全设备对于管理人员来说比较陌生,操作上的疏忽反而会造成反作用。

本文版权所有 © 2010 Xin LI <delphij@FreeBSD.org> 保留所有权利

原文链接 《安全:该做什么和不该做什么

非商业转载请注明出处http://blog.delphij.net/, 谢绝商业转载。

安全不能建立在"别人不知道"的基础上

"别人不知道"是一种非常常见的安全假象,举例来说,一种自己设计的山寨加密算法、一个系统中一般人不知道的位置等等,都属于这一类。

将安全建立在"别人不知道"的基础上是非常危险的。首先它会给设计者和用户带来"安全"的幻像,这会直接导致与系统交互的人放松警惕;其次,这样的设计往往留有"后门",甚至是设计者不知道的后门(因为往往他们并不对这类设计进行充分的、专业的审计),容易被攻击者利用;最后,这种做法存在第三方泄密问题,即,使用这种系统的人,需要提防设计系统的人被其他人买通并泄漏一些秘密的情况。

延缓攻击的手段不能用来阻挡攻击

有许多延缓攻击的手段,例如改变服务的端口(比较常见的如将 ssh 改为 tcp/22 以外的端口),或禁止服务程序显示自己的版本等等,或仅仅简单地启用防火墙,这些手段起到的作用只是延缓攻击,而不应作为一种安全屏障。对于多层次式的安全设计来说,采取这些措施有助于提高检测到入侵的机会,但是它们本身并不会提高安全性。

与前一种情况类似,这种做法也只是让管理员放松警惕。例如以 ssh 为例,有人认为将端口改为一个非知名端口可以避免相关的攻击,但事实是,攻击者依然可以利用 ssh 实现或协议设计中存在的一些漏洞来攻破系统。拥有特定资源的攻击者甚至不需要直接对目标系统实施攻击。在较复杂的攻击手段中,包括简单的 port knocking 一类的保护手法,都可以使用类似分组重放这样的方法来逐步攻破。

阅读全文…