作者CMJ0121 (不要偷 Q)
看板NetSecurity
标题[闲聊] 如何在微。服务中储存敏感资讯
时间Mon Nov 9 00:04:53 2020
一开始在 Python 板上看到有人提问
之後 FB/Backend 版[1] 有人提出一串可能性
原始的问题很简单 但是在开发中很容易遇到 也就是在後端 Server 部分
如何储存资料库的登入资讯 或者第三方服务的认证资讯
就实务上来说:敏感资讯可以是 帐号、密码、API Secret Key 等等
在一开始开发过程中最常使用的应该就是 hard-code 写死或者 command-line 输入
但是准备上到正式环境 这种作法很显然的是不被允许的 (如果贵单位有要求的话)
接下来的方式转为透过外部设定档 (e.g. staging.conf / production.conv)
各自切换适合的执行环境参数 这也是有多种环境时会使用的一种技巧
不巧的是 当使用微。服务 (已 docker 为例) 就变成你 docker image 含有敏感资讯了
能够下载 docker image 的人同时拥有敏感资讯
再者 也是常见的方式则是透过环境变数 让执行程式可以获取登入资讯
但这样的问题就会变成 确保环境内的每个环节都要是可信任的
最後 也会有人试着在上述几种方式中 额外再针对敏感资讯进行第二次加密
透过额外的加密来增加安全性
----
我个人是觉得 透过资料库限制来源 IP + 帐号、密码保护就够了
怎样传递帐号、密码 到 docker 环境的方式不要太蠢就好 (像是 hard-code 写死...)
如果攻击者能够拿到 reverse-shell 那其实资料库密码也不是太重要
如果仅能够 dump 帐号、密码的话 用限制来源 IP 也可以满足安全上的需求
[0]:
https://www.facebook.com/groups/pythontw/permalink/10160690779908438/
[1]:
https://www.facebook.com/photo/?fbid=10158521358918955&set=gm.2197133700420494
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 106.1.229.246 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/NetSecurity/M.1604851496.A.E43.html
1F:→ yoche2000: 推 11/09 01:20