以古鉴今 从古代城堡看
深层防御的概念伴随我们已经好多年了——没有上千年,也有上百年了。中世纪的城堡就从建筑角度体现了这一理念。城堡周边都是平地,这样一旦有来犯者,你就可以从城堡的岗哨看得清清楚楚。
城堡四周的地形不平整,目的是增加敌人进攻的难度。城堡被沟壑,尖锐的障碍物或护城河包围。城墙高且陡峭,敌人不能直接攀上墙壁。城墙上的卫兵可以站在有利位置击退来犯者,他们可以直接使用火攻,或者从高处直接投掷石块等物。
护城河也是防止敌人挖地道的好办法。如果没有护城河的话,攻击者就可能挖地道绕过城墙,或者削弱城墙的防护力。防御者也有可能挖通向外面的地道,如果两条地道交汇,试想,没有人愿意陷入这样一场黑暗的地下战斗。
如果外墙防御失效,其他的内部城墙还能起到补充作用,防守城堡的其他部分。有些中世纪城堡有多层防御工事,所以攻击者得突破四,五,六甚至更多层封锁才能得手。而在城堡内部,也有很多防御措施,所以即便攻击者突破外围防御,仍然很难夺取最有价值的东西——皇室家族及其财富。
防御不能只是静态的。攻击会遭遇城堡上破坏性武器的反击。梯子也会遭遇弓箭,长矛和石块的打击。有时候,卫兵们还会用滚烫的油来浇淋攻击者。
或许,我们可以从中世纪的城堡中学到一些东西,比如:
1.不要依赖单纯的安全技术。城堡不能仅仅依靠一些陷阱来抵御梯子,或是用护城河防止别人挖地道。城堡设计者要设想各种可能遭遇的攻击形式,然后用防御策略解决问题。也就是说要使用WAF,反病毒,IDS,IPS和防火墙等来解决不同类型的攻击。
2.使用分层防御。城堡使用了多层级的防御,以此增加攻击者的进攻难度。所以我们可考虑使用安全的编码技巧加固应用。使用WAF进一步保护Web应用。加固应用运行的Web服务器。加密后端数据库。在系统上做漏洞测试,对找到的问题进行修复。使用强效登陆验证。用反病毒软件扫描服务器。做好安全控件计划,备份其他安全控件,这样就可以及们可能消除单点故障。请一个攻击者做攻防演练。
3. 做好隔离措施。分层防御,单独设障等都可以有效挫败攻击者——他们不能常胜不败。不仅要在IT级别隔离环境,还要从安全级别做好隔离。确保每个防护对象彼此隔离,就好像把它们跟外界隔离开一样。把敏感系统从网络的其他部分隔离开来。内部防火墙和过滤器有助于控制攻击者,使其无法在你的内网横行。在隔离对象之间设立监控,可助你定位和停止反常行为。
4.改善安全性能。防御者筑起壁垒抵抗攻击者。当攻击者使用梯子时,防御者会向下投掷尖矛。每次当攻击增强时,防御也随之演变。改善安全程序的第一步就是使用可修复旧漏洞的有效补丁管理系统。当WAF这样的技术出现时,要评估它是否能增强你的防御性能,然后继续改善安全程序,以最大程度利用新技术。
5.别偷懒。可别坐以待毙。要观察到底发生了什么。监控网络环境的安全状况,对突发事件和攻击造成的影响做出响应。检查系统看是否有薄弱环节。测试环境中的漏洞,保留一个可避免你暴露的主动漏洞管理程序。