你的软件系统安全吗

张开发
2026/4/7 10:30:30 15 分钟阅读

分享文章

你的软件系统安全吗
你的软件系统安全吗如果你的软件系统可以通过网络访问, 可以由多人操作, 可以访问或操作敏感数据, 或者可能暴露隐私, 等等, 请一定要保护你的系统.那么你的软件系统安全吗?一. 先问自己如下 4 个问题1. What are we working on? 我们的系统在干啥?例如电商系统:我们在卖啥?提供什么售前和售后服务?用户和帐备信息怎么管理的?数据是如何防护和归档的?等等2. What can go wrong? 哪一块可能出安全问题?还是以电商系统为例:用户密码有无可能破解或泄漏?卖家和买家和隐私有无可能泄漏?帐务系统有无可能篡改?安全威胁种类请见下图threat3. What are we going to do about it? 我们可能怎么来解决这些问题?定义业务和系统范围创建数据流图(DFD)制作一个数据流图它展示了系统中数据流动的路径包括输入、处理和输出过程。3 识别实体和信任边界确定系统中的用户、数据、进程和其他实体以及它们之间的信任关系。例如 超级管理员, 管理员, 用户, 包括运维工程师, 卖家, 买家应用 STRIDE 分类根据 STRIDE 模型的六个分类逐一检查每个组件和数据流识别可能的威胁评估威胁的可能性和影响对每个已识别的威胁进行风险评估考虑其可能性和对系统的潜在影响。设计缓解措施针对每个威胁设计缓解措施这可能包括技术控制、流程改进或政策变更。优先级排序根据威胁的风险等级和业务影响对缓解措施进行优先级排序。按照 bug 的分级 S1(block issue) , S2(critical), … 为以下威胁和漏洞报 security bug实施控制措施实施选定的缓解措施并确保它们不会对系统的其他部分产生负面影响。例如修复安全漏洞(bug),验证和测试验证控制措施是否有效并进行必要的测试以确保它们按预期工作。文档和沟通记录整个威胁建模过程和结果与团队成员和利益相关者沟通确保透明度和理解。监控和迭代持续监控威胁环境的变化并定期回顾和更新威胁模型。每个 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 policyElevation of Priviledge 特权提升未经授权提升权限级别未经授权访问到敏感的信息三. 将所有威胁和漏洞登记, 逐一解决例如:在 DB 中的用户名密码是明文存储 - (严重程度: S1 Critial)Solution: 以 sha256 /sha512 哈希值对密码进行存储安全测试工具静态应用程序安全测试工具 SASTOWASP Dependency botdependency-checktalismanowasp-zap术语Authentication 认证要求 - 用户是不是通过认证的合法用户Authorization 授权要求 - 用户是不是经过授权的合法用户, 所访问的模块是在其权限范围之内的Audit 可审查和追溯要求 - 用户的访问和操作是不是可以审查和追溯的资产: 需要构建防御机制加以保护的关键实体漏洞: 系统中可用来危害其安全性的地方威胁: 利用潜在漏洞危害系统安全的潜在负面行为或事件攻击: 在系统上执行的未经授权的破坏安全性的恶意行为风险: 风险是威胁业务成功的诸多因素的组合。比如可以想象一个汽车窃贼(威胁代理)在停车场检查汽车(系统)是否有未上锁的门(漏洞)当他们找到一辆车时他们打开车门(漏洞利用)并拿走里面的东西(影响)。SAST: static application security testing (SAST)DAST: dynamic application security testing (DAST)参考资料OWASP 备忘录 https://cheatsheetseries.owasp.org/index.htmlhttps://cheatsheetseries.owasp.org/cheatsheets/Threat/_Modeling/_Cheat/_Sheet.htmlThread modelling 工具https://github.com/OWASP/threat-dragonhttps://www.youtube.com/watch?vhUOAoc6QGJolistPLUKo5k/_oSrfOTl27gUmk2o-NBKvkTGw0Tindex10安全术语参考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.pdf2.1 Input validation2.2 Output encoding2.3 Authentication and password management2.4 Session management2.5 Access control2.6 Cryptographic practices2.7 Error handling and logging2.8 Data protection2.9 Communication security2.10 System configuration2.11 Database security2.12 File management2.13 Memory management2.14 General coding practices《网络安全从零到精通全套学习大礼包》96节从入门到精通的全套视频教程免费领取如果你也想通过学网络安全技术去帮助就业和转行我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。网络安全学习路线图想要学习 网络安全作为新手一定要先按照路线图学习方向不对努力白费。对于从来没有接触过网络安全的同学我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线大家跟着这个路线图学习准没错。配套实战项目/源码所有视频教程所涉及的实战项目和项目源码学习电子书籍学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取g.cn/direct/92a6ab8e26034045b97ae8ac36b2a650.png)以上资料如何领取文章来自网上侵权请联系博主

更多文章