开发者学堂课程【ALPD 云架构师系列-云原生 DevOps36计:潜伏的怪兽:研发过程中的安全风险】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/82/detail/1293
潜伏的怪兽:研发过程中的安全风险
内容介绍:
一、研发过程中的安全风险
二、全链路的研发安全体系
三、基于云效的落地示例
四、总结
一、研发过程中的安全风险
除了测试之外可能会忽视的点,潜伏的怪兽就是研发过程中的安全风险。
安全风险从编码、构建、测试、集成、验收、发布、运维这些流程看,安全风险是无处不在。
以下是几个例子:
比如,在代码上代码泄露,第二,构建的时候钓鱼包,npm 的、Java 的、tesment 都有钓鱼包,这些钓鱼包看起来像是一个官方的,也能用,但是里面加了东西,无法知道。
流水线的执行漏洞。发布、运维的工具链有后门,中文版的后门很有名,里面会自动的把用户名密码传到一个服务器上。在运维这侧,有一个很有名的工具叫 saltstack,saltstack 里很常见漏洞是越权,可能只是普通用户,越权之后可以用来操作物理机上的其他东西,因为机器都用它来管理,相当于用了所有机器的权限。再往下就是容器,容器 docke 的越权漏洞也是非常多。在数据库还有人为的一些问题,删库跑路,直接把库删了。
二、全链路的研发安全体系
完整的研发链路,有一整套的安全风险,不是一个单点问题,可以从这张图来看:
从编码开始到运维阶段,会经历代码安全、制品安全、过程安全、发布安全和运行安全一系列安全的守护、保障。很少有公司和团队能够把所有东西建设起来,但是需要知道在这过程中安全是非常严重的问题的意识,因为很多时候安全风险会带来业务和舆情的风险。
三、基于云效的落地示例
云效落地,假设是用云效的工具链所做的 be box 工具链,一般安全的问题可能从看板开始就会去防护,比如看板的地方会去管理它的权限,代码开启安全扫描,依赖漏动检测和敏感信息检测,在流水线加上制品的安全扫描以及安全测试和发布审核,尽量避免发布风险。同时在发布的过程中要通过辉度的部署策略去保障问题能够及时被止损,另外需要考虑基础设施的安全能力,一定要跟安全容器这样的服务去提升,通过阿云的基础安全能力去做简单的防护。
整个安全问题很明显的是全面路端到端的问题,另外一个安全问题,针对小企业来说投入比较大的精力是很难做的,整个公司投进去了可能都不够,想做全链路安全需要专业的团队,而且很难找到这么多具备这些背景的人。建议如果是小企业,根据大厂已经提供的安全能力,去帮把整个管理起来。除了这里举的例子之外,比如很多时候在管理上面,一个是平台安全,另外一个是本身制品安全,另外是管理上的安全,比如同事离职还要对一些密钥相应的东西可能对一些小企业来说是非常致命的打击。
四、总结
首先,质量是团队所有人的事。这不是一个口号,而是实实在在的,它就是跟所有人相关的一个事情。
第二,应该通过分层测试来平衡质量与成本。并不是越多的测试越好,也并不是说越低的成本越好。
第三,通过测试自动化提升测试效率,降低验证的成本。测试自动化本身的质量和效率需要保证。
第四,通过选择性的单元测试来降低预防成本。通过四个相应的选择,选择应该做的测试的单元测试用例。
第五,好的测试应该遵循 FIRAT 原则。
最后,从研发全局关注和控制安全风险。而且应该从一开始就要关注它。