你的软件系统安全吗

news2024/11/15 8:14:34

如果你的软件系统可以通过网络访问, 可以由多人操作, 可以访问或操作敏感数据, 或者可能暴露隐私, 等等, 请一定要保护你的系统.

那么你的软件系统安全吗?

一. 先问自己如下 4 个问题

1. What are we working on? 我们的系统在干啥?

例如电商系统:

  • 我们在卖啥?
  • 提供什么售前和售后服务?
  • 用户和帐备信息怎么管理的?
  • 数据是如何防护和归档的?
  • 等等

2. What can go wrong? 哪一块可能出安全问题?

还是以电商系统为例:

  • 用户密码有无可能破解或泄漏?
  • 卖家和买家和隐私有无可能泄漏?
  • 帐务系统有无可能篡改?

安全威胁种类请见下图

threat

3. What are we going to do about it? 我们可能怎么来解决这些问题?

  1. 定义业务和系统范围

  2. 创建数据流图(DFD):
    制作一个数据流图,它展示了系统中数据流动的路径,包括输入、处理和输出过程。

3 识别实体和信任边界:
确定系统中的用户、数据、进程和其他实体,以及它们之间的信任关系。
例如 超级管理员, 管理员, 用户, 包括运维工程师, 卖家, 买家

  1. 应用 STRIDE 分类:
    根据 STRIDE 模型的六个分类,逐一检查每个组件和数据流,识别可能的威胁

  2. 评估威胁的可能性和影响:
    对每个已识别的威胁进行风险评估,考虑其可能性和对系统的潜在影响。

  3. 设计缓解措施:
    针对每个威胁设计缓解措施,这可能包括技术控制、流程改进或政策变更。

  4. 优先级排序:
    根据威胁的风险等级和业务影响,对缓解措施进行优先级排序。
    按照 bug 的分级 S1(block issue) , S2(critical), ... 为以下威胁和漏洞报 security bug

  5. 实施控制措施:
    实施选定的缓解措施,并确保它们不会对系统的其他部分产生负面影响。
    例如修复安全漏洞(bug),

  1. 验证和测试:
    验证控制措施是否有效,并进行必要的测试以确保它们按预期工作。
  1. 文档和沟通:
    记录整个威胁建模过程和结果,与团队成员和利益相关者沟通,确保透明度和理解。
  1. 监控和迭代:
    持续监控威胁环境的变化,并定期回顾和更新威胁模型。
    每个 release 前更新威胁模型

4. Did we do a good enough job? 我们有没有做好防护

例如:
传输层: 有无启用 HTTPS, TLS, DTLS 和 SRTP
应用层: 有无做好 3A , 防范威胁, 消除漏洞

二. 将可能的威胁进行分类

我们可能应用常见的 STRIDE 模型

Spoofing 欺骗

防止非法获取或者伪造帐号信息, 访问我们的系统

  • 非认证的用户不可访问系统
  • 非授权的用户不可访问没有权限的模块, 不能进行非授权的操作、

Tampering 篡改

防止篡改或损坏系统中的数据

  • 数据在传输层要安全, 要使用 HTTPS, TLS, DTLS 或者 SRTP 进行加密传输

Repudiation 否认

防止不承认对系统的攻击或者误用
管理员以及用户的关键操作要可追溯

Information Disclosure 信息泄露

  • 配置文件中的帐户密码不可使用明文
  • PII (Personal Insensitive Information ) 安全
    • PII 在服务器的日志或数据库中不可随意存放 - 密码必须经过不可逆的哈希之后再存
    • 个人的邮件, 电话等信息均不可存放在日志文件中, 只可以放在有访问限制的数据管理系统中
    • 不可泄露用户的个人隐私
    • 业务关键数据在应用层要有上述 “3A” 的保护
    • 核心的算法, 模型和数据, 用户不能直接获取, 必须通过我们的应用程序才能有限度地调用

Denial of Service 拒绝服务

防止非法的攻击导致服务不可用, 相应的措施有

  • 通过防火墙、安全访问区、访问控制列表和端口访问的设置防止未授权访问、篡改和拒绝服务(DoS)攻击
  • 对于非法访问的错误请求实施 rate limit and block policy

Elevation of Priviledge 特权提升

  • 未经授权提升权限级别
  • 未经授权访问到敏感的信息

三. 将所有威胁和漏洞登记, 逐一解决

例如:

  • 在 DB 中的用户名密码是明文存储 - (严重程度: S1 Critial)
    Solution: 以 sha256 /sha512 哈希值对密码进行存储

安全测试工具

  • 静态应用程序安全测试工具 SAST
  • OWASP Dependency bot
  • dependency-check
  • talisman
  • owasp-zap

术语

  1. Authentication 认证要求 - 用户是不是通过认证的合法用户?
  2. Authorization 授权要求 - 用户是不是经过授权的合法用户, 所访问的模块是在其权限范围之内的?
  3. Audit 可审查和追溯要求 - 用户的访问和操作是不是可以审查和追溯的?
  4. 资产: 需要构建防御机制加以保护的关键实体
  5. 漏洞: 系统中可用来危害其安全性的地方
  6. 威胁: 利用潜在漏洞危害系统安全的潜在负面行为或事件
  7. 攻击: 在系统上执行的未经授权的破坏安全性的恶意行为
  8. 风险: 风险是威胁业务成功的诸多因素的组合。
    比如,可以想象一个汽车窃贼(威胁代理)在停车场检查汽车(系统)是否有未上锁的门(漏洞),当他们找到一辆车时,他们打开车门(漏洞利用),并拿走里面的东西(影响)。
  9. SAST: static application security testing (SAST)
  10. DAST: dynamic application security testing (DAST)

参考资料

  • OWASP 备忘录 https://cheatsheetseries.owasp.org/index.html

    • https://cheatsheetseries.owasp.org/cheatsheets/Threat_Modeling_Cheat_Sheet.html
  • Thread modelling 工具

    • https://github.com/OWASP/threat-dragon

    • https://www.youtube.com/watch?v=hUOAoc6QGJo&list=PLUKo5k_oSrfOTl27gUmk2o-NBKvkTGw0T&index=10

  • 安全术语参考

    • https://www.sans.org/security-resources/glossary-of-terms/
  • 安全编程实践快速参考

    • https://owasp.org/www-project-secure-coding-practices-quick-reference-guide/assets/docs/OWASP_SCP_Quick_Reference_Guide_v21.pdf

    • 2.1 Input validation

    • 2.2 Output encoding

    • 2.3 Authentication and password management

    • 2.4 Session management

    • 2.5 Access control

    • 2.6 Cryptographic practices

    • 2.7 Error handling and logging

    • 2.8 Data protection

    • 2.9 Communication security

    • 2.10 System configuration

    • 2.11 Database security

    • 2.12 File management

    • 2.13 Memory management

    • 2.14 General coding practices

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2074824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【变化检测】基于Tinycd建筑物(LEVIR-CD)变化检测实战及ONNX推理

主要内容如下: 1、LEVIR-CD数据集介绍及下载 2、运行环境安装 3、Tinycd模型训练与预测 4、Onnx运行及可视化 运行环境:Python3.8,torch1.12.0cu113 likyoo变化检测源码:https://github.com/likyoo/open-cd 使用情况&#xff1a…

在vue2中,使用计算属性,具体代码如下:

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

爆改YOLOv8 | 利用CPA-Enhancer提高低照度物体检测(适用于雨,雪,雾天)

1,本文介绍 CPA-Enhancer通过链式思考提示机制实现了对未知退化条件下图像的自适应增强,显著提升了物体检测性能。其插件式设计便于集成到现有检测框架中,并在物体检测及其他视觉任务中设立了新的性能标准,展现了广泛的应用潜力。…

打包资料优化目录

这篇文章主要写一下这一次更新的几个地方,有对原来的代码及模型进行优化的部分,也有新增加的代码和模型,我就把几个比较典型的给列了出来。但是还有好多的更新没有在下面展示出来,因为一个个展示出来太复杂了。如果你对更新的内容…

mybatis框架搭建、mybatis打印日志设置、参数传递使用、myatis插件MyBatisX

一、框架 就是对技术的封装,将基础的技术进行封装,让程序员可以快速的使用,提高效率。 Java后端框架: mybatis:对jdbc进行封装 spring:对整个Java后端架构进行管理的 springweb:对web层&a…

用Python解决优化问题_整数规划模板

整数规划的基本概念 整数规划是一种数学优化方法,它是线性规划的一个扩展。在整数规划中,决策变量被限制为整数,而不是连续的值。这种类型的规划在许多实际应用中非常重要,例如资源分配、生产计划、物流配送等。整数规划可以分为…

R7RS标准之重要特性及用法实例(三十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列…

【数据库】深入浅出MySQL SQL优化:原因、定位、分析与索引失效

这是一张AI生成关于MySQL SQL优化的插图。图中展示了一个计算机屏幕,上面可以看到MySQL数据库模式。屏幕周围有代表优化的视觉隐喻,如齿轮、闪电和流线型形状。屏幕上的模式用色彩丰富的注释标出了改进区域,如索引和查询调整。整体风格现代且…

【源码+文档+调试讲解】数据结构课程网络学习平台

摘要 本文介绍了数据结构课程网络学习平台的开发全过程。通过分析企业对于数据结构课程网络学习平台的需求,创建了一个计算机管理数据结构课程网络学习平台的方案。文章介绍了数据结构课程网络学习平台的系统分析部分,包括可行性分析等,系统设…

Python处理JSON

Python处理JSON ####概念 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON、XML等。反序列化就是从存储区域(JSON,XML)读取反序列化对象…

优化学习管理:Moodle和ONLYOFFICE文档编辑器的完美结合

目录 前言 一、什么是 Moodle 1、简单快速插入表单字段 3、免费表单模板库 4、开启无缝协作 三、在Moodle中集成ONLYOFFICE文档 四、在Moodle安装使用ONLYOFFICE 1、下载安装 2、配置服务器 3、在Moodle中使用ONLYOFFICE 文档活动 五、未来展望 写在最后 前言 在当今教育科技飞…

前端如何在30秒内实现吸管拾色器?

⭐前言 大家好,我是yma16,本文分享 前端react——实现浏览器页面的吸管拾色器功能。 背景: 在chrome web端快速实现一个页面的取色器功能, 分为两个场景 固定区域小范围取色当前页面取色 node系列往期文章 node_windows环境变量…

Vue3-win7搭建vue3环境

Vue3-win7搭建vue3环境 官方要求的信息是是node.js 18.03以上。而我的环境:win7 x64, vscode 1.34。 参考网址: 0、基本的安装 https://blog.csdn.net/m0_49139268/article/details/126159171 a、这里有各种安装包的下载路径(镜…

手撕C++类和对象(中)

1.类的默认成员函数 默认成员函数就是⽤⼾没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数。⼀个类,我 们不写的情况下编译器会默认⽣成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个,最 后两个取地址重载不…

[数据集][目标检测]管道漏水泄漏破损检测数据集VOC+YOLO格式2614张4类

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2614 标注数量(xml文件个数):2614 标注数量(txt文件个数):2614 标注…

10天速通Tkinter库——实践项目《植物杂交实验室》

一不小心就拖更了五天,私密马赛。但你们知道这五天我都是怎么过的吗,我起早贪黑(起不来一点),每天勤勤恳恳撸代码,做设计(谁家好人用ppt做设计哇),只为完成《植物杂交实验…

Vue 和 Element Plus 弹框组件详解:从基本实现到异步数据加载与自定义内容(实战)

目录 前言1. 基本知识2. 模版3. 实战 前言 主要是通过一个按钮触发一个按钮框,多种方式的逻辑,多种场景 原先通过实战总结,基本的知识推荐阅读: 详细分析Element Plus中的ElMessageBox弹窗用法(附Demo及模版&#x…

【STM32单片机_(HAL库)】3-4-1【中断EXTI】【智能排队控制系统】LCD1602显示字符串

1.硬件 STM32单片机最小系统LCD1602显示模块 2.软件 驱动文件添加GPIO常用函数main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "lcd1602.h"int main(void) {HAL_Init(); /* …

摄像头实时检查程序,插入设备,自动显示画面,支持多个摄像头,支持拍照,照片放大缩小

支持的特性 插入摄像头设备后&#xff0c;无需手动选择&#xff0c;自动显示摄像头画面&#xff0c;需要预先授权支持多个摄像头切换显示多个摄像头时支持 默认显示特定名称的摄像头支持拍照支持照片放大&#xff0c;缩小 显示效果 完整代码 <!DOCTYPE html> <html…

使用 AMD GPUs 进行基于 Transformers 的时间序列预测

Using AMD GPUs for Enhanced Time Series Forecasting with Transformers — ROCm Blogs 时间序列预测&#xff08;TSF&#xff09;是信号处理、数据科学和机器学习&#xff08;ML&#xff09;等领域的关键概念。TSF 通过分析系统的过去时间模式来预测其未来行为&#xff0c;利…