当前位置:首页 > 技术人生 > 编程技术 > 正文内容

系统安全需要考虑哪些方面的东东?

2020-12-26编程技术360

网络安全

传输加密

为防止网络传输过程中敏感信息泄露,我们要对传输的内容进行加密,比如web访问,尽可能使用HTTPS的形式。

网络隔离

对于防止不明入侵,最直接的手段就是网络隔离。主要体现在如下几个方面:

  • 不公开服务的机器,不分配外网 IP

  • 办公网络和生产网络相互不可以直接通信

  • 使用网关

  • 使用容器


认证安全

接口签名

 对外部请求要保持谨慎态度,包括请求的来源,请求的数据,都要进行谨慎的处理。只有通过接口签名验证的请求,才信任为合法的请求。

登录鉴权

不允许外部用户直接登录/访问内网,常见的手段:

  • 登录页面/登录接口应当防刷,防暴破。

  • 应当具备随机登录因子,比如 token、短信验证码,降低密码泄露的后果影响。

  • 多次登录尝试失败之后,应当锁定账户或 IP,不再允许登录。

  • 采用增强的密码管理策略,如拒绝弱密码、密码最小长度要求、字符集要求、定期更改密码要求等等。

登录态管理

对于登录态的管理,需要注意几个方面:

  • 尽可能的使用无状态登录

  • 登录态应当独立存储

  • 存储登录态的中间件要配置密码,并对客户端进行IP限制

运维安全

非必要日常的操作尽可能不登录服务器进行,若要登录也尽可能的利用权限低的用户去操作。应用的部署也尽可能的部署在容器内,或者使用低权限用户去部署。

对于各中间件及服务器的账户,要严密管控,严格权限区分。

对于高危命令应该限制操作的范围或者禁止使用,或者进行别名配置。

数据安全

数据的安全是重中之重,以上所有的措施其根本也都是为了保证数据的安全。同时,对于数据本身,我们还有一些可以做的事情。

容器隔离

容器化部署时,我们往往会挂载外部目录到容器中。此时我们应当确保:

  • 尽可能使用稳定、可靠的云存储,避免单机故障

  • 同一个挂载目录不应当跨容器共享,而应当由单个容器独占

租户隔离

随着 SaaS 化系统越来越多,我们也采用了更多的多租户设计。在系统交互、数据读写方面,务必强要求区分租户。不得因为租户信息被泄露,导致跨租户的其他数据被泄露,必须严控影响面。

离线票据

跨系统交互时,我们可能会涉及到一些敏感票据,比如 app_key/app_secret、pub_key/private_key 等。其中往往 app_key、pub_key 是公开的,允许通过请求传递,而 app_secret、private_key 是需要严格保密的,不得直接通过请求传递。对于这些需要严格保密的敏感票据,应当通过线下、脱离于当前系统的方式进行传递,如打印并邮寄,如单独的、人工的邮件等等。

日志脱敏

日志的敏感性是很容易被忽略的。可能我们花了很大的力气做了系统安全加固,缺忘记了日志里往往也存在大量的敏感信息,导致信息通过日志被泄露了。那么在开发时,我们需要时刻注意日志内容,不应当有敏感信息。在日志传输和存储时,也应当对日志内容进行脱敏。

数据备份

和日志一样,数据的备份文件也是容易被忽视的地方,我们应当花足够大的精力来保证备份文件不被窃取。

必要的审计

操作审计

记录用户的操作对象和操作历史。

权限审计

对权限的分配和变更,做严格的控制和记录,避免授予的权限不必要的扩大。同时对于已经失效的用户,应当即使回收权限。

数据审计

对关键数据的读、写,都应当有权限和审批流程进行控制。实际的示例比如 HRC 和 TOF 中,对员工信息的读取,是需要进行权限申请和审批的。

敏感词审计

应当接入或建立敏感词库,对于 UGC 内容,务必确保拦截和过滤敏感词,以避免不合规的内容展示到系统中,导致政策和舆论风险。


本站内容仅供学习研究,转载请以链接形式注明,如有侵犯请联系处理。

本文链接:https://strivers.cn/post/20.html

分享给朋友:

发表评论

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。