软件开发|网站建设|小程序开发之软件防御

摘要:软件受攻击面指的是用户以及潜在的攻击者都能够访问到的所有功能和代码的总和,它是一个混合体,不仅包括代码、接口、服务,也包括对所有用户提供服务的协议,尤其是那些未被验证的或远程用户都可以访问到的协议。攻击
软件受攻击面指的是用户以及潜在的攻击者都能够访问到的所有功能和代码的总和,它是一个混合体,不仅包括代码、接口、服务,也包括对所有用户提供服务的协议,尤其是那些未被验证的或远程用户都可以访问到的协议。攻击面即用户或其他程序可以访问应用程序的所有入口点,每个入口点都有被恶意用户利用的可能。不同的访问方式会导致不同的攻击面。一个软件的攻击面越大,安全风险就越大。减少攻击面(Reduce Your Attack Surface)就是去除、禁止一切不需要使用的模块、协议和服务,其目的是减少攻击可以利用的漏洞,一般可以采取以下步骤。首先,分析产品功能的重要性,即某些模块、协议等是否有必要保留;其次,分析从哪里可以访问这些功能,从而了解到需要对什么进行控制;最后,采取合理措施来降低受攻击面。 降低受攻击面对于提高软件安全性至关重要。设计时一般采取以下策略:重要等级为低的功能攻击面大,取消该功能;重要等级为中的功能攻击面大,设置为非默认开启,需要用户配置后才予以开启;重要等级为高的功能攻击面大,关闭或限制一些接口方式,增加一些安全的保证措施或技术。表3-2给出了较高受攻击面和较低受攻击面的对比。