诸子笔会2022 | 朱文义:合格甲方安全开发人员之我见
自2022年5月起,“诸子笔会第二季”正式拉开帷幕。经过对首届活动复盘,我们在坚持大原则、大框架、主体规则基础上,优化赛制特别是奖项设置和评奖方式。13位专家作者组成首批“笔友”,自拟每月主题,在诸子云知识星球做主题相关每日打卡,完成每月一篇原创。除了共同赢取10万元高额奖金,我们更要聚焦甲方关注,发掘最佳实践,弘扬分享精神,实现名利双收。本期发文,即诸子笔会月度主题来稿之一。
合格甲方安全开发人员之我见
文 | 朱文义
朱文义
某企业高级应用安全架构师
安全人员通常有三条职业大道,包括安全管理、安全测试和安全开发,条条大道通罗马,新入行的安全人员无论哪个方向坚守几年都能有不错的职业发展。
安全管理主要负责解读和推动满足法规和监管要求落地相关的工作,是甲方机构的必备岗位之一,毕竟满足法规和监管要求是安全的主要驱动力之一。安全测试是对安全要求落地效果的检测和验证,随着近几年网络攻防演练和CTF比赛的密集开展,甲方机构对安全测试人员也越来越重视。
在安全开发方向甲方通常会借助乙方的力量建设和部署安全产品,自有安全开发人员主要负责项目管理等事宜。甲方在通过安全管理明确了内外部安全要求,建立了安全测试的流程和机制,部署了安全产品之后发现安全要求的真正落地还是依赖于业务应用开发人员。如果安全人员不参与到应用的前期建设环节,如立项、需求、架构、设计和开发等环节,是很难从根源上规避安全风险的。从组织机构方面来讲,安全开发人员可以分布在单独的安全团队中,也可以分布在业务应用开发团队中,也可以兼而有之。
随着敏捷开发的日益普及和数据安全要求逐步细化,甲方安全工作逐渐进入深水区,人作为安全工作最重要的因素之一,笔者建议甲方机构应从以下几个方面招纳和培养“合格”的安全开发人才,确保安全要求真正在业务应用中落地,并将落地成本控制和维持在较低的水平。
合格的安全开发人员需要“懂安全”
安全开发人员应将安全视为自己的看家本领,这是其与业务应用开发人员的最显著区别,并在以下这几个方面持续提升。合格的安全开人员应了解常见的安全要求,如应对调用方进行身份认证,对个人数据进行全生命周期保护,对敏感操作记录详细审计日志等;应了解常见的安全技术,如oAuth2.0、RBAC、加解密技术等;应了解常见的安全漏洞及修复方案,如SQL注入发生的根本原因,如何从根源上解决SQL注入问题、垂直越权与水平越权发生的根本原因,何从根源上解决越权类问题、短信炸弹发生的根本原因,以及如何从根源上解决短信炸弹问题等。
合格的安全开发人员需要”懂开发“
在懂安全的基础上需要了解软件开发的工作流程和常用技术栈,从而可以通过软件开发过程和技术栈建设安全能力,并将安全能力融入到业务应用系统的软件开发流程中以提升其安全水位。
一方面,需要掌握如何使用软件开发流程建设安全产品,通过流程中的开发活动确保安全产品的软件质量,通过流程中的安全活动确保安全产品的安全性,避免安全产品自身不安全的风险;另一方面,需要掌握如何将安全能力植入到业务应用系统的开发过程中,学会分析符合业务应用系统的特色安全需求,了解如何将安全架和设计构融入到应用架构和设计中。在此过程中除了要形成对业务应用安全需求和架构设计体系化的认知外,还需要了解安全性应与保护对象的敏感级别相适应,并与其他非功能特性取得平衡,如性能、用户体验等。另外还应掌握如何在开发阶段正确地将安全产品嵌入到应用中和将安全工具嵌入到IDE工具中,避免业务应用开发人员遗忘使用安全控制措施或使用安全控制措施不严谨等风险。
合格的安全开人员需要“懂业务”
安全的最高目标是对业务保驾护航,所以专注某个业务方向对于安全开发人员的职业生涯发展来说是非常有利的。一方面需要了解业务的目标、业务对象的敏感级别并对不同的业务对象分类施策,协助业务找到既能满足监管要求和风险防护要求又能通向业务目标的道路,而不是一味单方面地提出安全要求;另一方面了解业务的背景知识有助于在双方沟通过程中减少上下文同步和对齐的成本,直达业务核心安全问题,快速形成安全评估结论。”懂业务“是安全开发人员从关注安全自身到关注业务发展的进阶标志,也是安全开发人员提升在业务应用开发人员心目中的良好形象的关键所在,毕竟双方对业务方面的风险防护更容易达成一致。
合格的安全开人员需要“懂项目”
项目管理中的各种工具非常有助于安全开发工作目标的实现,所以无论是否实施安全项目我们都可以从利用这些工具以实现安全开发工作目标。严格遵守SMART原则才能确保安全开发工作的目标可落地可实现;正确利用干系人管理的四象限法则可以帮忙安全开发人员最大程度地减少干系人对安全开发工作的负面影响,最大化干系人对项目的积极促进作用;恰当地使用工作分解方法可以确保安全开发工作得以全面实施而不会出现遗漏的情况。
这里面有一个特别有意思的体会与大家分享,笔者认为衡量安全开发工作成功与否的指标也应该参考项目管理的经验,那就是务必要满足重要干系人的需求,即使安全开发工作完全满足了常规意义的成功指标,如果不能满足重要干系人的需求,那么安全开发工作也不能算是获得了成功。在安全开发工作中,无论是业务应用的安全需求从提出到落地,还是安全产品的建设都离不开项目管理方法,离不开时间、成本、质量、范围这几个项目管理要素。
本文主要根据笔者经验从懂安全、懂开发、懂业务和懂项目四个角度明确了安全开发人员的能力要求,安全开发人员在对号入座时可能还只能满足其中一部分要求,但只要明确了方向,在日常工作中不断积累,持续精进,一定可以成长为合格的甲方安全开发人员。
【11月主题:考场,战场与职场】
【10月主题:过与不及】
【9月主题:查漏补缺】
【8月主题:红与蓝】
刘志诚 张永宏 王忠惠 孙琦
肖文棣 孙瑜 杨文斌 陈圣 回顾
【7月主题:误区与陷阱】
刘志诚 张永宏 孙瑜 王忠惠 肖文棣
朱文义 杨文斌 孙琦 陈圣 回顾
【6月主题:远程办公与安全】
王忠惠 于闽东 刘志诚 孙琦 朱文义
张增斌 肖文棣 杨文斌 张永宏 孙瑜 陈圣 回顾
【5月主题:安全之变】
王忠惠 张永宏 朱文义 于闽东 刘志诚 杨文斌
孙琦 孙瑜 半藏咸鱼 肖文棣 王振东 陈圣 回顾
2021首届诸子笔会
齐心抗疫 与你同在