网安云Logo
icon_account
科普
软件安全架构设计指南(篇一):安全设计原则
2024-01-03 09:15:58
52
0
软件架构在开发安全应用程序中起着至关重要的作用。当安全措施和最佳实践无缝集成到软件的架构设计中时,不仅有助于降低安全风险,而且从长远来看还可以节省时间和资源。

原则一:最小攻击面

攻击表面(英语: attack surface) ,也称攻击面、攻击层面,是指软件环境中可以被未授权用户(攻击者) 输入或提取数据而受到攻击的点位(攻击矢量)。

攻击矢量的示例包括:

用户输入字段

协议

接口

服务

系统每增加一个功能特性就有可能会引入新的风险,通过安全开发可以减少攻击面进而达到控制系统整体风险的目的。


减少攻击面示例:

示例:Web应用提供一个搜索功能

减少攻击面措施

该功能只能被授权的用户使用

后端代码对用户输入的数据进行了校验

该功能不支持任意文字输入,只支持从指定列表中查看


原则二:默认安全

让默认的配置和策略尽可能的安全

只有充分了解业务安全需求的前提下,才能更好的使用该原则

默认安全的例子:

在许多场合,安全和产品体验经常会发生冲突,这时候应当选择安全优先,在安全的前提下,可以允许通过手动关闭安全配置或策略来提升产品体验。

产品应该默认打开密码复杂度策略,即不允许用户使用不符合密码复杂度策略的密码,但产品可能可以允许用户关闭这个策略来提升体验。


原则三:权限最小化

权限 (privilege) 是指某个特定的用户具有特定的系统资源使用权力,像是文件夹,特定系统指令的使用或存储量的限制。

权限分类:

用户权限

资源权限

系统只拥有完成任务所必须的最小权限,即不赋予不必要权限。

违反权限最小化的例子:

比如:某中间件服务器只需要访问网络、读取数据库和向日志服务器写日志的权限,那就完全没有必要赋予其更多其它的权限(特别是管理级别的特权)

比如:该业务只需要查询的权限,但却使用了root账户进行连接,如果该业务遭受SQL注入攻击,就会造成很大的影响。


item.title
安全专家服务
item.title
专业售后支持
item.title
1V1大客户服务
item.title
7 * 24小时

关注或联系我们

公众号二维码
添加网安云公众号,关注热门产品资讯。
联系我们联系我们
客服
免费试用
获取资源