软件安全架构设计指南:安全设计原则(篇一)
2024-01-03 11:46:49
原则一:最小攻击面
攻击表面(英语:?attack?surface)?,也称攻击面、攻击层面,是指软件环境中可以被未授权用户(攻击者)?输入或提取数据而受到攻击的点位(攻击矢量)。
攻击矢量的示例包括:
- 用户输入字段
- 协议
- 接口
- 服务
系统每增加一个功能特性就有可能会引入新的风险,通过安全开发可以减少攻击面进而达到控制系统整体风险的目的。
减少攻击面示例:
示例:Web应用提供一个搜索功能
减少攻击面措施
- 该功能只能被授权的用户使用
- 后端代码对用户输入的数据进行了校验
- 该功能不支持任意文字输入,只支持从指定列表中查看
原则二:默认安全
- 让默认的配置和策略尽可能的安全
- 只有充分了解业务安全需求的前提下,才能更好的使用该原则
默认安全的例子:
- 在许多场合,安全和产品体验经常会发生冲突,这时候应当选择安全优先,在安全的前提下,可以允许通过手动关闭安全配置或策略来提升产品体验。
- 产品应该默认打开密码复杂度策略,即不允许用户使用不符合密码复杂度策略的密码,但产品可能可以允许用户关闭这个策略来提升体验。
原则三:权限最小化
权限?(privilege)?是指某个特定的用户具有特定的系统资源使用权力,像是文件夹,特定系统指令的使用或存储量的限制。
权限分类:
- 用户权限
- 资源权限
系统只拥有完成任务所必须的最小权限,即不赋予不必要权限。
违反权限最小化的例子:
- 比如:某中间件服务器只需要访问网络、读取数据库和向日志服务器写日志的权限,那就完全没有必要赋予其更多其它的权限(特别是管理级别的特权)
- 比如:该业务只需要查询的权限,但却使用了root账户进行连接,如果该业务遭受SQL注入攻击,就会造成很大的影响。
源代码审计?点此链接?可免费领取。另外,其中还包含第三方组件安全分析检测,对软件源代码安全漏洞和软件中的开源组件漏洞进行全面评估,全方位提升应用安全性。
免费检测链接:源代码+组件检测
文章来源:https://blog.csdn.net/suriwa/article/details/135291320
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!