首页 > 其他分享 >安全设计原则

安全设计原则

时间:2024-03-17 11:11:21浏览次数:23  
标签:原则 系统 用户 安全 设计 权限

任务详情

在软件开发和系统架构设计中,安全设计原则是一组指导方针,旨在帮助开发者和设计师构建更安全的系统。这些原则可以减少系统的脆弱性,提高对抗潜在威胁的能力。通过各种资料,尽可能多的搜集安全原则。

  1. 给出所有你能找到的安全原则的名称,内容和来源信息(图书名称,网站链接,...)。
  2. 根据2/8原则,选择你认为最重要的20%,给出应用实例(代码编写,命令行应用等),写出实践过程

实践过程

  • 安全原则名称

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

原则2:Secure default:
在软件领域的含义就是:让默认的配置和策略尽可能的安全。比如,在许多场合,安全和产品体验经常会发生冲突,这时候应当选择安全优先,在安全的前提下,可以允许通过手动关闭安全配置或策略来提升产品体验。

原则3:最小权限原则(Principle of Least Privilege):
用户仅被授予完成其任务所需的最低权限。

原则4:纵深防御:
从不同的维度去实施安全保护措施来缓解被攻击的风险。实施纵深防御策略,可以让攻击变得更加难以实施,漏洞变得更加难以利用。

原则5:Fail securely:
即业务系统能够正确安全地处理各种异常和错误。

原则6:不要信任第三方系统
不少产品需要和第三方的业务系统对接,并使用其提供的数据,但是一般情况下,我们是无法掌控这些第三方系统的安全设计和开发过程的,所以它们也可能会存在安全漏洞,进而被人攻击,因此,我们必须充分考虑到当第三方系统被攻击时,如何保障自己的业务系统的安全性。

原则7:业务隔离:
基本思想是将业务系统尽分成尽可能多的独立单元,但某个单元出现安全缺陷时,可以将损害程度降到最低,通俗地说,就是不要把所有鸡蛋都放在一个篮子里。

原则8:公开设计:
有些人认为,只要产品内部的实现细节不被外人知道,那么产品就是安全的,但其实这是一种保护效果比较差的方法。当然,并不是说这样做毫无意义,也的确增加了攻击的难度,但是不能对其形成过多依赖,甚至把它当成主要或唯一的安全防护手段。

原则9:简化系统设计
“最小化攻击面”和“简化系统设计”原则是相辅相成的,由于复杂的系统设计会导致攻击面变宽,所以如果存在多种系统设计方案,则应尽量选择最简单的那种方案。

原则10:强密码策略(Strong Password Policy):要求用户使用足够长、复杂和随机的密码,并定期更改密码。

原则11:失败保险默认原则
该原则指的是系统的设计、实现和运营应该是透明和公开的,使得外界可以了解系统的工作原理和内部机制。这样做有以下优点:

原则12:分层安全(Layered Security):通过在不同层面上实施多重安全措施来保护系统,例如网络层、应用层和数据层。

原则13:经济性原则(Economy of Mechanism)
安全机制设计尽可能简单短小,从而在排查缺陷、检测漏洞时代码更容易处理

原则15:默认拒绝原则(Fail-Safe Defaults)
只要没有授权的信息就不允许访问
不能出现本该允许的请求被拒绝与本该拒绝的请求被允许

原则16:开放设计原则(Open Design)
不将安全机制的设计作为秘密,不将系统安全性寄托在保守安全机制设计秘密的基础上
应在隔开安全机制设计方案的前提下,借助容易保护的特定元素,如密钥、口令等来增强系统的安全性
开放设计有助于安全机制接受广泛的审查

来源:https://www.cnblogs.com/fishou/p/4197422.html
https://www.cnblogs.com/liugangjiayou/p/12657828.html

  • 应用实例
    最小权限原则(Principle of Least Privilege):用户仅被授予完成其任务所需的最低权限。
    在命令行应用中的实践过程:
    在Linux系统中,使用sudo命令来执行特权操作时,仅授予需要执行该操作的用户最低权限。例如,如果用户只需要执行文件的读取操作,不应授予其写入或删除文件的权限。
    在Windows系统中,使用用户账户控制 (User Account Control, UAC) 来限制用户对系统资源的访问权限。当需要执行需要管理员权限的操作时,系统会提示用户确认,以防止意外或恶意操作。
    通过实施最小权限原则,可以减少用户或进程的权限范围,限制其对敏感数据和功能的访问,从而降低系统被滥用或攻击的风险。这种实践可以在应用程序开发和系统管理中广泛应用。

通过在Python应用程序中实施最小权限原则:

# 创建数据库连接
conn = sqlite3.connect('example.db')

# 创建只读权限的数据库游标
cursor = conn.cursor()
cursor.execute("SELECT * FROM users")
result = cursor.fetchall()
for row in result:
    print(row)

# 关闭数据库连接
conn.close()

创建了一个SQLite数据库连接,并使用只读权限的游标执行了一个查询操作。通过将用户的权限限制为只读,确保在该应用程序中,用户无法执行任何修改数据库的操作。这样一来,即使应用程序的其他部分出现了漏洞或被攻击,用户也无法对数据库进行恶意操作。
遵循了最小权限原则,确保用户仅被授予完成其任务所需的最低权限。这样可以减少潜在的安全风险,增加了应用程序的安全性。当然,在实际开发中,还需要结合其他安全措施来全面保护应用程序的安全。

标签:原则,系统,用户,安全,设计,权限
From: https://www.cnblogs.com/weidaixdrx/p/18078340

相关文章

  • 软件项目管理资料完整版(规格说明书,详细设计,测试计划,验收报告)
       前言:在软件开发过程中,文档资料是非常关键的一部分,它们帮助团队成员理解项目需求、设计、实施、测试、验收等各个环节,确保项目的顺利进行。以下是针对您提到的各个阶段的文档资料概述:所有资料获取:点击获取开发阶段需求规格说明书:详细描述了软件系统的功能需求、非......
  • 20231325贾罗祁 2023-2024-2《Python程序设计》实验一报告
    20231325贾罗祁2023-2024-2《Python程序设计》实验一报告课程:《Python程序设计》班级:2313姓名:贾罗祁学号:20231325实验教师:王志强实验日期:2024年3月13日必修/选修:公选课1.实验内容熟悉Python的操作学会调试程序编译循环的剪刀石头布游戏创建gitee账户并推送上传......
  • Java设计模式之模板模式。
    模板模式(TemplatePattern)是Java中常用的设计模式之一,是一种行为设计模式,它定义了一个算法的骨架,将具体步骤延迟到子类中实现。模板模式使得子类可以在不改变算法结构的情况下重新定义算法中的某些步骤,下面通过Java代码看看模板模式的用法。//模板类abstractclassAbstr......
  • Java设计模式之单例模式。
    在Java中,单例模式是一种常见的设计模式,用于确保一个类只有一个实例,并提供全局访问点下面介绍七种常见的单例模式实现方式以及它们的优缺点。1.懒汉式(线程不安全)publicclassSingleton{privatestaticSingletoninstance;privateSingleton(){}publi......
  • Java设计模式之工厂模式。
    工厂模式(FactoryPattern)是Java中最常用的设计模式之一,是一种创建型设计模式,用于创建对象而不暴露创建逻辑。工厂模式包括工厂方法模式和抽象工厂模式,下面结合代码看看它的使用用法吧。//产品接口interfaceProduct{voidproduce();}//具体产品类classCon......
  • 微信小程序uniapp+vue+nodejs宝宝成长记录系统的设计与实现
    本文先通过对相关系统的调研,提出开发基于微信小程序的宝宝成长记录系统的意义,然后使用当前主流的技术进行开发,满足基于微信小程序的宝宝成长记录系统的技术要求,分析系统需要实现的功能并进行设计。梳理业务流程,并根据功能设计数据库,最后通过编码实现,介绍实现的关键算法逻辑。在......
  • django中医共享管理系统设计(源码+mysql+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着科技的发展,互联网技术已经深入到各个领域,医疗行业也不例外。中医作为中国传统的医学,其独特的诊疗方式和理论体系在全世界都有一定的影响力。然而,中医的......
  • java设计模式
    单例设计模式java实现(一)单例设计模式​单例设计模式(SingletonPattern)确保某个类中只有一个实例,而且这个类是不能被实例化的,也就是不能用new关键字来创建对象,该类提供了公共静态的方法,用于返回该类对象,不需要自行实例化。而单例模式有分为饿汉式,以及懒汉式。特点一......
  • 嵌入式毕业设计-基于单片机的智能红外遥控器的设计与实现
    项目介绍技术:C语言、单片机等摘要:本设计内容是实现一个智能遥控器,利用STC89C54单片机作为主控芯片,同时与无线发射和接收模块配合,然后通过硬件设计和软件编程最终实现系统功能。本设计首先对红外遥控技术的基本原理和设计方法进行了详细介绍,然后确定系统方案,紧接着分别对......
  • 软考网络工程师 第五章 第六节 WLAN安全
    WLAN安全机制(1)SSID访问控制:隐藏SSID,让不知道的人搜索不到。(2)物理地址过滤:在无线路由器设置MAC地址黑白名单。(3)WEP认证和加密:PSK预共享密钥认证,RC4加密。(4)WPA(802.11草案)认证:802.1x加密:RC4(增强)+TKIP(临时密钥完整协议,动态改变密钥)支持完整性认证和防重放攻击(5)WPA(802.11i)针......