13)攻击面最小化原则
攻击面(Attack Surface),通常也称受攻击面,是指对一个软件系统可以采取的攻击方法集合。因为攻击者对软件的攻击是从其暴露在外部的接口、功能、服务和|办议等资源来实施的,通过对每种资源计算其被攻击成功的可能性,并将这些可能性综合归纳,即可以衡量软件的攻击面大小。可以看出,一个软件的攻击面越大,其安全风险也就越大。
减少攻击面是安全设计中的一个重要步骤,软件设计人员需要仔细评估软件中所有的功能模块和接口的特性,分析其可能存在的安全风险,并设定相应的限制措施。如果一个功能/数据接口不是必要的,则应该取消或禁止,或者默认不开启的。如果一个功能/数据接口的配置没有特殊的理由,默认则应该按安全的方式进行设置。下表是一个可以参照的关闭或限制一些接口访问方式,增加一些安全的保障措施或技术的方式。