◇评估威胁
考虑每个威胁,并评估该威胁被利用和攻击发生的可能性,一般地,可以使用1到10来表示攻击发生的可能性,如1表示高可能性,10表示低可能性。同时对攻击发生后可禽邕产生的后果进行评估,如使用1到10表示带来的损失大小,其中l表示最小的损失,10表示最大的损失。那么可以计算风险:攻击后发生的损失/攻击发生的可能性,得到的数值越大,则说明风险越大。使用这种方法,可以对所有的风险进行排序,并依照风险高低顺序考虑解决处理的办法。
◇消减威胁
根据风险大小,选择适当的方法或技术来缓解每种威胁。对于威胁缓解措施,都必须结合软件系统的实际情况提出。可供参考的一些技术措施包括:
假冒:选择使用认证技术来解决,如可以采用Cookie认证、Kerberos认证等技术,或采用数字签名等技术。
篡改:选择使用数据完整性技术来解决,如采用哈希函数、消息认证码、数字签名等密码算法,或采用防篡改协议来传输。
抵赖:选择使用非抵赖性服务技术来解决,如强认证、安全审计、数字签名、时间戳等技术措施。
信息泄漏:选择采用数据保护的技术来解决,如采用对称加密、非对称加密等密码算法,或采用访问控制手段限制访问,或采用隐私保护协议保护隐私数据的存取等技术。
拒绝服务:采用提高系统可用性技术来解决,如对服务对象采用过滤、认证、授权、配额等技术对合法用户访问量进行控制,采用流量控制技术来保护系统的稳定运行,采用负载均衡技术提高系统整体服务力等。
特权提升:采用严格授权和限制访问技术来解决,如采用访问控制列表、授权管理等技术对用户进行严格授权,同时要求软件系统以最低权限运行、各模块设计以最小权限执行等。