上接:架构师政治生活
五,安全架构师的选拔与养成
本章旨在于定义安全架构师的成长方向和建议的路径以及给出判定安全架构师的指标。
5.1 安全架构师的分级
企业内的职级通常名分为5级,企业正式任命的架构师通常从3级开始到5级,也就是说在企业里面安全架构师有三个大的分级。那么分级的依据是什么?抛开企业赋予的特殊的要求,单从架构师的要求分级的依据可以从要解决的问题的复杂度和行业内的成熟度来划分。
复杂度 成熟度 |
高(有最佳解决方案,问题明确的定义) |
中(有评价标准但是无最佳方案,问题多种定义方式) |
低(无明确的评价标准和确定性方案,问题本身定义不明确) |
高(两层以上中间原因) |
分布式授权问题 |
入侵检测 |
信任问题(IoT可信赖的落地) |
中(一层中间原因) |
中心化授权问题 |
人机识别问题 |
|
低(表象直接到根因) |
注册,认证问题 |
各个企业根据自己具体企业面临的技术问题划分等级,设定考核标准。总体上来说,安全架构师的入门要求是可以为企业在低复杂度和高成熟度的问题上提供最佳解决方案,最高的要求是解决未能明确定义的复杂问题。
安全架构师分级 |
解决的问题 |
核心贡献 |
大师级 |
行业内有共同认识到问题现象,但是还未能定义。 |
1, 人才培养; 2, 领域知识的拓展; |
专家级 |
问题有多种定义的方式,不同的定义有不同的解决方案,每一种方案都有侧重点 |
1, 复杂安全架构问题的解决; 2, 领域知识/工具的建设; |
新手级 |
问题可以明确定义,并且有最佳方案 |
最佳实践的引入和应用 |
5.2 安全架构师的技能要求
关于架构师最常见的争论就是是否会编码?进一步还要需要会用哪种语言编码?就公司对承担架构师角色的人的要求来说,需要何种技能要求是公司内部的需求,主要是受制于公司的资源,比如说一共就2个开发,不论名称是什么都要求要开发产品;还有一个就是对架构工作本身的工作量决定的,如果一年也没有几个架构设计的工作要做,这样的架构师做架构算是兼职工作了。同理在企业中安全架构具体执行的要求和需要执行的工作可能多种多样,本节中对安全架构师的技能要求特指为了完成安全架构设计工作所需的必要技能。
5.2.1 精通常用安全协议
安全架构师首先接触到的是注册,认证,授权三类安全相关的协议设计或者评审,这就要求安全架构师必须精通常见的注册,认证以及授权的模型以及相关协议。这里的精通不是说可以背诵相关模型和协议,而是对各个模型和协议的优劣势,适用和不适用的场合以及能力上限的全面掌握和灵活应用,当然在此基础上还可以背诵当然是挺酷的。从安全架构设计输出的稳定性和可靠性而言选择利用架构设计的checklist更让人放心。
本节内容深入学习的推荐阅读和学习内容《Protocols for Authentication and Key Establishment》 Colin Boyd, Anish Mathuria, 《Applied Cryptography protocols algorithms and source code in c》Bruce Schneier。
5.2.2 掌握TLS协议的工作原理
密码学算法非常多,直接学习算法很难让人把算法和应用场景联系起来。有一个方便可行的方法就是掌握TLS算法的工作原理,进步实操的建议就是使用Openssl或者其他TLS库如mbedtls,wolfssl等库学习和研究TLS协议的工作原理。
TLS协议包含了PKI体系,秘钥协商,秘钥交换,数据加密,数据完整性校验,身份认证等多个现代密码学算法,可以说是现代密码学算法的集大成的工程实现,掌握了TLS你就可以应对工作中的99%的安全通讯以及加密相关的需求。
本节内容深入学习推荐阅读和学习内容《Bullet Proof SSL and TLS 》
5.2.3 有意识训练系统思维
上述的技能要求是安全架构师的知识性要求,但是安全架构师工作中面对的最多的问题不是基础知识的忘记,而是如何将系统的表象和用户含糊的需求系统化,然后在使用系统思维的工具和模型拆解到安全的基础知识上,最后利用安全基础知识搭建系统,满足业务要求。
关于系统思维推荐学习《The art of thing in systems 》 Steven Schuster.
图5.2.3.1:形式化的根源分析 |
图5.2.3.1是一种复杂问题分析的表达模型,问题表现不一定直达根因的,需要系统思维的框架来指导实际工作中的问题的解决。
5.2.4 安全架构设计的系统性知识学习
安全架构师系统的知识学习推荐学习CISSP-ISSAP的CBK定义的内容。CBK的内容包括访问控制系统和方法,密码学,物理安全整合,需求分析与安全标准以及指标制定指导,技术相关的业务连续性计划和灾难恢复以及通信和网络安全6大部分组成,涵盖了对安全架构师通用安全技术领域系统性的要求。
5.3 安全架构师的养成
一将功成万骨枯,同样一个安全架构师的成长伴随着多个开发的辛苦的挖坑和填坑,安全架构师在实施上会造成“一人之心,千万人之心也”,由于安全功能通常是一个影响全局并且串行与系统中的功能,稍有不慎就会导致开发的辛苦编码毁于一旦,或者一个设计的调整导致开发重新编写更多的代码。可见安全架构师的养成过程是一个高成本的试错和陪练过程,这就要求企业谨慎设计安全架构师的成长路径。
5.3.1 可控的范围内的尝试
安全架构师的特殊价值决定了其特殊的风险,并且这类风险可能给企业带来巨大的损失,但是企业又需要有培养自己的安全架构师,对于新的安全架构师的培养需要在可控的范围内让其尝试。先从一些局部安全架构工作开始入手,通过观察工作结果的实际效果逐步调整对新人的工作内容和服务范围。
“可控”这个要对于初创公司而言可操作性较低,因为资源的问题,没有专业的安全架构师来培养新人,可控如何实施?对于这种情况,企业可以选择采购外部的安全架构的咨询服务,或者选择直接使用现有行业的成熟架构方案,这里选择成熟方案一定要做一个好的“抄作业者”在不理解的情况下,不要做改动,僵化的复制由于随心所欲的修改。成熟的方案首先推荐的是ISO标准,其次是行业标准,最后才是竞品分析的结果。实际的工作中企业往往会选择首先使用竞品分析的结果,这种选择的风险是非常高的,原因如下:
A,竞品分析是一种接近于黑盒的分析结果,最好的成果也就是一个等效模型;
B,在实际运行的系统是一个活的系统,竞品分析是一个针对系统时间切片上的分析,也就是竞品分析是不容易看到系统成长变化的内容的。在分析那一刻起就落后了。安全架构又是一个面向未来的工作,竞品分析是面向历史的总结。
选择ISO标准的优势在于,ISO标准的筛选过程,保证了标准的完备和适用性,虽然ISO标准的谨慎的筛选过程会导致其不是最先进的,但是对于安全架构而言稳定性和适用性才是第一位,先进性仅作产考吧。
5.3.2 应用场景才是安全架构最公证的裁判
安全架构师的作品的优劣需要应用场景的检验,虽然上述章节已经尽可能通过事情的方法降低实际工作中的不可控性,但是最终表现如何还是需要实际应用场景的考验。
同样在可控的范围内,尽可能多的让安全架构师的作品应用到多种场景中。
5.4 安全架构师的心态养成
安全架构师的成长和很多需要长期训练和反思的职业一样,心态非常重要。关于心态的发展规律和路径可以参考DK心理效应见图5.4.1。
图5.4.1:Dunning-Kruger effect |
安全架构师的入门最佳时间点就是开悟之坡的最低端。要谨防愚昧山峰上的安全架构的意见。
从一无所知到愚昧山峰是持续学习单一视角的知识或者在长期解决线性问题之后形成的自信的假象。当这类单一视角解决另一个视角的问题,或者用性线性思维的工具解决非线性问题的时候会发现之前自己仰仗的知识和工作统统不可用甚至把自己带到了危险的境地。这时候出现从愚昧山峰到绝望之谷的下滑。随着对比学习发现每一种工作,方法甚至是思想都是有自己本身的效用上限和适用场景的,这一刻就进入了开悟之坡。接下来就进入了“操千曲而后晓声,观千剑而后识器”的持续成长和积累之路。也就是进入了安全架构师需要的心理状态。
六,总结
本文不是安全架构师的具体架构设计中的指导手册,而是给从事IoT行业安全架构工作的同仁一个工作参考的方法论框架和自我成长或者企业培养安全架构师的一个参考路径。
架构师的工作已经不容易让外部领域的人理解和看明白了,安全架构师的工作在架构师的基础上更增加了神秘度。在企业中合作是作重要的,安全架构的基础理论的掌握有很多参考的知识框架,假以时日一定会掌握的。如何理解用户和企业的需求,并且用自己的专业知识转化为对用户和企业以及未来有利的安全架构设计建议,并且与同事一道落地是安全架构师没有可以参考的路径,本文的一个重要目标就是为安全架构新人提供这样一个参考路径。
七, 附录
A 参考资料
1,《俞军产品方法论》,俞军,ISBN:9787521712056,2019年中信出版集团出版
- http://www.thwink.org/
- https://thesystemsthinker.com/
- ISO/IEC 30141
来源:freebuf.com 2020-12-22 09:08:58 by: 钱塘山人2020
请登录后发表评论
注册