优维案例| 优维智慧监狱安全方案-架构安全
优维智慧监狱一体化管控平台技术方案不仅先进而且安全,本文重点介绍智慧监狱安全方案中的架构安全。
系统安全架构设计参考对OWASP(开放式Web应用程序安全项目)定义的TOP10(10项最严重的Web 应用程序安全风险列表)应对方案如下:
n A1 注入injection
风险描述:注入缺陷,例如 SQL、NoSQL、OS 和 LDAP 注入,当不受信任的数据作为命令或查询的一部分发送到解释器时就会发生。 攻击者的恶意数据可以诱使解释器在未经适当授权的情况下执行意外命令或访问数据。
解决方案:
设计:使用的自研途数据库,只能通过API的方式提供给平台内部进行使用,外部无法对数据库有类SQl的执行注入权限。
n A2 失效的身份认证
风险描述:与身份验证和会话管理相关的应用程序功能经常被错误地实现,允许攻击者破坏密码、密钥或会话令牌,或者利用其他实现缺陷来暂时或永久地假设其他用户的身份。
解决方案:
设计:身份认证基于IAM进行,本次项目涉及的用户全体包括供应商、红山用户等信息均来源红山IAM。
方法:
集成IAM身份认证
示例:
基于Oauth2.0协议,进行用户认证
n A3 敏感信息泄露
风险描述:许多 Web 应用程序和 API 没有正确保护敏感数据,例如金融、医疗保健和 PII。 攻击者可能会窃取或修改此类保护不力的数据,以实施信用卡欺诈、身份盗用或其他犯罪活动。 敏感数据可能会在没有额外保护的情况下受到损害,例如静态或传输中的加密,并且在与浏览器交换时需要特殊的预防措施。
解决方案:
① 禁止在代码中存储敏感数据:禁止在代码中存储如数据库连接字符串、口令和密钥之类的敏感数据,这样容易导致泄密。用于加密密钥的密钥可以硬编码在代码中。
② 禁止密钥或帐号的口令以明文形式存储在数据库或者文件中:密钥或帐号的口令必须经过加密存储。例外情况,如果Web容器的配置文件中只能以明文方式配置连接数据库的用户名和口令,那么就不用强制遵循该规则,将该配置文件的属性改为只有属主可读写。
③ 禁止在 cookie 中以明文形式存储敏感数据:cookie信息容易被窃取,尽量不要在cookie中存储敏感数据;如果条件限制必须使用cookie存储敏感信息时,必须先对敏感信息加密再存储到cookie。
④ 禁止在隐藏域中存放明文形式的敏感数据。
⑤ 禁止用自己开发的加密算法,必须使用公开、安全的标准加密算法。
⑥ 禁止在日志中记录明文的敏感数据:禁止在日志中记录明文的敏感数据(如口令、会话标识jsessionid等), 防止敏感信息泄漏。
⑦ 禁止带有敏感数据的Web页面缓存:带有敏感数据的Web页面都应该禁止缓存,以防止敏感信息泄漏或通过代理服务器上网的用户数据互窜问题。
n A4 XML外部实体XXE
风险描述:许多旧的或配置不当的 XML 处理器评估 XML 文档中的外部实体引用。 外部实体可用于使用文件 URI 处理程序、内部文件共享、内部端口扫描、远程代码执行和拒绝服务攻击来公开内部文件。
解决方案:
无xml对外传输
n A5 失效的访问控制
风险描述:对经过身份验证的用户可以做什么的限制通常没有得到适当的执行。 攻击者可以利用这些缺陷来访问未经授权的功能和/或数据,例如访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。
解决方案:
设计:例:业务系统设计层共有入参接口3处(用户登录,整车预测,零件预测),接口验证形式为cookie,cookie在完成IAM认证后生效,cookie失效逻辑为redis缓存,有效期30分钟。
n A6 安全配置错误
风险描述:安全配置错误是最常见的问题。 这通常是由于不安全的默认配置、不完整或临时配置、开放云存储、错误配置的 HTTP 标头和包含敏感信息的详细错误消息造成的。 不仅必须安全地配置所有操作系统、框架、库和应用程序,而且必须及时修补/升级它们。
解决方案:
设计:平台对外只提供80和443访问形式,请求的关键信息会在逻辑服务器的URL转发控制中进行过滤,定义过滤的URL路径;
方法:
1、最小原则,移除不必要的功能、组件、文档和示例。
2、限制中间件管理界面、限制默认端口。
3、修改默认账户。
n A7 跨站脚本XSS
风险描述:每当应用程序在新网页中包含不受信任的数据而未经适当验证或转义,或使用可创建 HTML 或 JavaScript。 XSS 允许攻击者在受害者的浏览器中执行脚本,这些脚本可以劫持用户会话、破坏网站或将用户重定向到恶意站点。
解决方案:
设计:对所有的页面级别采用模板引擎,统一进行 XSS 的防御;
方法:
1. XSS绕过
前端限制绕过 --抓包
大小写混合 --phP
拼凑绕过 --<sc<script>ript>
编码
2. XSS防范
对输入进行过滤,对输出进行html实体编码 & (和号)成为 &
" (双引号)成为 "
’(单引号)成为'
< (小于)成为 <
> (大于)成为 >示例:
后端统一拦截, XSS过滤核心代码
n A8 不安全的反序列化
风险描述:不安全的反序列化:不安全的反序列化通常会导致远程代码执行。 即使反序列化缺陷不会导致远程代码执行,它们也可以被用来执行攻击,包括重放攻击、注入攻击和提权攻击。
解决方案:
设计:明确本次项目中涉及存在反序列风险的组件,包括shiro、fastjson。
方法:
使用shiro、fastjson无反序列化风险隐患的版本
示例:
Fastjson反序列化漏洞 影响版本fastjson<=1.2.24 ;目前使用版本fastjson 1.2.79
n A9 使用含有已知漏洞的组件
解决方案:更换组件或者升级组件到漏洞修复的版本
n A10 不足的日志记录和监控
风险描述:日志记录和监控不足,加上与事件响应的集成缺失或无效,使攻击者能够进一步攻击系统、保持持久性、转向更多系统以及篡改、提取或破坏数据。 大多数违规研究表明检测违规的时间超过 200 天,通常由外部方而不是内部流程或监控检测到。
解决方案:
设计:
用户敏感行为将记录日志,同时对日志过滤敏感信息,如针对姓名、手机号等进行脱敏。
方法:
确保所有登录、访问控制失败、输入验证失败能够被记录到日志中去,并保留足够的用户上下文信息,以识别可疑或恶意帐户,并为后期取证预留足够时间。 每个组织都应该制定相应的计划,对整个软件生命周期进行监控、评审、升级 或更改配置。
• 确保日志以一种能被集中日志管理解决方案使用的形式生成
• 确保高额交易有完整性控制的审计信息,以防止篡改或删除,例如审计信息保存在只能进行记录增加的数据库表中。
• 建立有效的监控和告警机制,使可疑活动在可接受的时间内被发现和应对。
• 建立或采取一个应急响应机制和恢复计划。
• 确保日志中不存储用户敏感信息sql信息。
优维智慧监狱相关文章
优维Giraffe框架和低代码EasyMABuilder开发框架