软件安全架构设计指南:安全设计原则(篇一)

2024-01-03 11:46:49

原则一:最小攻击面

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

攻击矢量的示例包括

  • 用户输入字段
  • 协议
  • 接口
  • 服务

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

减少攻击面示例:

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

减少攻击面措施

  • 该功能只能被授权的用户使用
  • 后端代码对用户输入的数据进行了校验
  • 该功能不支持任意文字输入,只支持从指定列表中查看

原则二:默认安全

  • 让默认的配置和策略尽可能的安全
  • 只有充分了解业务安全需求的前提下,才能更好的使用该原则

默认安全的例子:

  • 在许多场合,安全和产品体验经常会发生冲突,这时候应当选择安全优先,在安全的前提下,可以允许通过手动关闭安全配置或策略来提升产品体验。
  • 产品应该默认打开密码复杂度策略,即不允许用户使用不符合密码复杂度策略的密码,但产品可能可以允许用户关闭这个策略来提升体验。

原则权限最小化

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

权限分类:

  • 用户权限
  • 资源权限

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

违反权限最小化的例子:

  • 比如:某中间件服务器只需要访问网络、读取数据库和向日志服务器写日志的权限,那就完全没有必要赋予其更多其它的权限(特别是管理级别的特权)
  • 比如:该业务只需要查询的权限,但却使用了root账户进行连接,如果该业务遭受SQL注入攻击,就会造成很大的影响。

源代码审计?点此链接?可免费领取。另外,其中还包含第三方组件安全分析检测,对软件源代码安全漏洞和软件中的开源组件漏洞进行全面评估,全方位提升应用安全性。

免费检测链接:源代码+组件检测

文章来源:https://blog.csdn.net/suriwa/article/details/135291320
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。