首页 > 其他分享 >信息安全之SDL安全设计概述

信息安全之SDL安全设计概述

时间:2024-04-25 16:22:25浏览次数:19  
标签:信息安全 用户 默认 安全 隐私 概述 SDL 权限 攻击面

文章前言

众多频发的网络安全事件表明当下很多的安全问题都是由于产品自身的代码业务逻辑判断不严谨、输入校验不严格、身份校验缺失、异常处理不合理、访问控制缺失以及不安全的配置等众多的因素引起的,而导致这样的安全问题发生的根本原因是由于在软件开发生命周期中缺乏对业务安全问题的考虑以及缺少对项目流程的安全控制,因此需要一个安全设计的最佳实践来指导软件项目的安全落地,所以SDL安全设计checklist应运而生

核心原则

微软的SDL提出了若干核心的安全设计原则:

  • Basic Privacy:基本隐私
  • Secure Defaults:默认安全
  • Threat Modeling:威胁建模
  • Defense in Depth:纵深防御
  • Least Privilege:权限最小化
  • Attack Surface Reduction:攻击面最小化
基本隐私

用户在使用软件时无可避免的会出现个人信息被收集、使用甚至分发的情况,而负责收集用户个人信息的企业则有责任和义务建立对用户个人信息的进行保护的安全措施利抵御外部/内部攻击,确保用户基本隐私的安全性

隐私安全是建立可信任应用程序的关键因素,在软件设计时考虑用户基本隐私的必要性及意义主要有以下几点:

  • 防止堵塞部署
  • 增加客户的信赖
  • 履行法律规定和义务(隐私合规)

对于特殊软件或者全球性的产品,设计人员需要明确软件的行为及针对人群,尤其是要考虑当地国家的法律法规,例如:美国儿童网路隐私保护法COPPA(Children's Online Privacy Protection Act)等,企业在开发产品、服务时有必要制定明确的隐私准则,对获取、记录、使用用户隐私的相关产品需要有明确的要求和指导建议,同时个人信息的收集应只收集程序必须用到的隐私数据,同时需要明确告知用户并征得用户同意,对于用户隐私数据例如:密码、口令等均需要加密存储,最低要求是SHA256+SALT,对于更高要求的则使用PBKDF2算法加密存储

默认安全

默认安全配置在客户熟悉安全配置选项之前不仅有利于更好的帮助客户掌握安全配置经验,同时也可以确保应用程序初始状态下处于较安全状态,客户可以根据实际使用情况决定应用程序安全与隐私的等级水平是否降低,例如:

  • Win 10操作系统默认启用安全防护软件Windows Defender,用户可选择关闭
  • Win 7之后的操作系统中,DEP(数据执行保护)默认开启,用户可设置选项改变DEP的状态
威胁建模

威胁建模是一种分析应用程序威胁的过程和方法,这里的威胁是指恶意用户可能会试图利用各种手段来破坏系统,而我们常说的漏洞则是一个特定的可以被利用的威胁,例如:缓冲区溢出、SQL注入等

威胁建模作为SDL设计阶段的一部分安全活动,它允许安全设计人员在识别潜在安全问题的同时实施相应缓解措施,在设计阶段把潜在的威胁发现有助于威胁的全面和更有效的解决,同时也有助于降低开发和后期维护的成本,威胁建模的一般流程如下:

  • 通过和系统架构师及设计人员沟通了解设计详情
  • 使用威胁建模方法分析当前设计潜在的安全问题
  • 通过分析提出安全建议及对针对潜在威胁的缓解措施
  • 对安全设计进行验证并对整个设计方案进行回顾并再次确认
纵深防御

纵深防御也是设计安全方案时的重要指导思想,纵深防御包含两层含义,首先要在各个不同层面、不同方面实施安全方案以避免出现疏漏,不同安全方案之间需要相互配合构成一个整体,其次要在正确的地方做正确的事情,即在解决根本问题的地方实施针对性的安全方案,纵深防御并不是同一个安全方案要做两遍或多遍,而是要从不同的层面、不同的角度对系统做出整体的解决方案,例如:

  • 针对XSS的防护除了要对用户输入的特殊符号进行过滤,还要区分是否是富文本进而进行相应编码操作,在输入时过滤的同时在输出时也进行过滤操作
  • 针对XSS的防护即使做了十足的过滤、编码等安全防护,Web站点也可以对Cookie启用HTTP-Only属性,确保即使发生XSS攻击也可以阻止通过脚本访问Cookie的操作
权限最小化

如果一个应用程序或网站被攻击、破坏,权限最小化机制能够有效的将潜在损害最小化,常见的权限最小化实践如下:

  • 普通管理员/系统管理员等角色管理
  • 进程/服务以所需最小用户权限运行
  • 文件只读权限/文件访问权限等访问控制

在进行软件设计时安全设计人员可以评估应用程序的行为及功能所需的最低限度权限及访问级别,从而合理分配相应的权限,如果程序特定情况必须要较高级别的权限也可以考虑特权赋予及释放的机制,即便程序遭到攻击也可以将损失降到最低,例如:

  • 最新版本Office程序打开不可信来源的文档时默认是不可编辑的,同时也是默认不可执行代码的,即使存在缓冲区溢出漏洞也不会执行shellcode等恶意代码
  • Windows系统中网络进程、本地服务、用户进程权限都较低且互相独立,分别为NETWORK SERVICE、LOCAL SERVICE、USER权限,只有核心的重要进程使用SYSTEM权限
攻击面最小化

攻击面是指任何能被用户或者其它程序所访问到的应用程序部分,这些暴露给用户的地方往往也是最可能被恶意攻击者攻击的地方,而攻击面最小化即是指尽量减少暴露恶意用户可能发现并试图利用的攻击面数量

软件产品的受攻击面是一个混合体,不仅包括代码、接口、服务,也包括对所有用户提供服务的协议,尤其是那些未被验证或者远程的用户都可以访问到的协议,安全人员在攻击面最小化时首先要对攻击面进行分析,攻击面分析就是枚举所有访问入库、接口、协议以及可执行代码的过程,从高层次来说攻击面分析着重于:

  • 降低默认执行的代码量
  • 降低代码执行所需权限
  • 限制可访问到代码的人员范围
  • 限定可访问到代码的人员身份

常见的攻击面分析技巧如下表:

Higher Attack Surface

Lower Attack Surface

On by default

Off by default

Open socket

Close socket

UDP

TCP

Anonymous access

Authenticated user access

Constantly on

On as neede

Internet accessible

Local subnet access

攻击面最小化在微软的应用实践示例如下:

Windows

RPC需要认证、防火墙默认打开

IIS 6.0、IIS 7.0

使用Network service权限运行,默认关闭

Sql Server 2005/2008

xp__cmdshell 存储过程默认关闭,默认不开放远程链接

VS 2005/2008

Web Server和SQL Server默认仅本地访问

安全实践

下面是美的金融科技SDL安全设计发布的"金融科技SDL安全设计Checklist v1.0",内容涵盖了输入验证、输出编码、身份认证、异常处理、会话管理、访问控制、接口调用、权限控制、敏感信息、运行环境、WEB安全防护:

 

 

 

 

 

 

 

 

 

标签:信息安全,用户,默认,安全,隐私,概述,SDL,权限,攻击面
From: https://www.cnblogs.com/HondaHsu/p/18157958

相关文章

  • 3.Exporter概述
    一、Exporter概述    所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter。而Exporter的一个实例称为target,如下所示,Prometheus通过轮询的方式定期从这些target中获取样本数据: 注:安装好Exporter后会暴露一个http://ip:端口/metrics的HTTP服务,通......
  • 用户空间锁-1-用户空间锁概述
    前言:无论是内核锁还是用户空间锁,其基本原理都是一样的。这样,所有在内核锁上的优化其实都可以平移到用户空间。一、上层锁概述手机平台(特指安卓)平台上用户空间程序和锁相关的软件结构如下:1.Java锁安卓平台的Java层主要有二种锁的类型:JAVA内嵌锁和JUC锁。所谓Java内嵌锁就是......
  • 1.C语言概述
    计算机语言发展史: 机器语言 汇编语言 高级语言(结构化+面向对象)C语言进化史: ALGOL60——CPL——BCPL——CB语言与C的关系: B是C语言的前一个版本 肯汤姆森用B语言写出了UNIX操作系统 丹尼斯里奇发明C,重写了UNIX操作系统C语言特点: 优:代码量小,速度......
  • kafka - [01] 概述
    Kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。 一、什么是KafkaKafka是一个分布式的数据流式传输平台。1、ApacheKafka是一个开源消息系统,由scala写成。是由Apache软件基金会开发的一个开源消息系统项目。2、Kakfa最初是由LinkedIn公司......
  • SDL在win上安装
    官网:https://www.libsdl.org/1.下载安装包下载安装包SDL2-devel-2.30.2-VC.zip,然后解压到指定目录此时就安装完了。简简单单。2.编码使用demo编写CMakeLists.txtcmake_minimum_required(VERSION3.28)project(sdltest01)set(CMAKE_CXX_STANDARD20)set(CMAKE_PREFIX_......
  • Azure REST API (0) 概述
    《WindowsAzurePlatform系列文章目录》 1.概述1.我们在使用Azure云服务的时候,可以通过AzurePortal: https://portal.azure.com,输入邮箱地址和密码,然后通过交互式(鼠标点击)的方式创建或者删除微软云的资源2.我们也可以通过API或者SDK的方式进行调用,集......
  • Fail to create wsdl definition
    D:\Software\WebService\apache-cxf-3.3.1\bin>wsdl2java-encodingutf-8http://XXX.XXX.XXX.XXX:10051/NIS_SZLonghuaFY/EwellInterfaceService?wsdlWSDLToJavaError:org.apache.cxf.wsdl11.WSDLRuntimeException:Failtocreatewsdldefinitionhttp://XXX.X......
  • Shell阶段01 shell脚本概述, 脚本规范, shell执行方式, shell变量
    Shell什么是ShellShell就是一个命令解释器。Shell分为交互式shell和非交互式shell。交互式Shell就是命令行上面一条一条命令的执行非交互式Shell就是以脚本的方式运行。通过变量$-来查看是否是交互式或者非交互式Shell交互式和非交互式的区别[root@shell01~]#echo......
  • Linux概述
    1.初始Linux1.linux操作系统支持多用户、多任务、多线程以及多CPU2.Liunx的起源和发展Debian:Debian项目是一个独立、分散的组织,由来自全世界各地自愿者组成,利用互联网进行协作开发。Ubuntu:是一个以桌面为主的Liunx发行版本,基于Debian发展而来,其目的是让Linux系统和非专业人员......
  • 基于信息安全的软测工具链解决方案
       伴随着汽车与外界的交互手段不断丰富,车联网相关设备、系统间的数据交互更加频繁,万物互联下的网络攻击也逐渐渗透延伸到车联网的领域。汽车行业面临着重大的信息安全挑战。此外,UNECEWP.29R155和ISO/SAE21434标准也对汽车的信息安全提出了规范化的要求,旨在产品全生命周......