写点什么

应用安全经理候选人:开发人员还是安全工作人员?

作者:Daniil Chernov

  • 2021-10-30
  • 本文字数:2675 字

    阅读完需:约 9 分钟

应用安全经理候选人:开发人员还是安全工作人员?

大部分针对企业的软件攻击之所以能够得逞,都是利用了软件漏洞和后门。所幸的是,企业不再把软件漏洞扫描视为一种非主流的行为。相反,软件漏洞扫描已经成为企业信息安全基础设施的一个核心元素。对于小规模的开发,可以进行手动扫描。对于大规模的代码,则需要自动化扫描。那么该谁来管理这些事情?该由谁来决定多久检查一次?比如,版本发布、漏洞检查、拒绝发布版本、漏洞代码修复,甚至是回答其他与安全相关的问题?这个时候,该应用安全经理上场了。


但该如何找到这样的人选?或者该怎样在组织内部培养这样的人?这篇文章将基于企业软件开发实践来讲讲对应用安全经理的需求。

什么是应用安全经理?

企业迟早都会认识到,他们需要雇佣这样的一个角色,特别是如果他们内部缺少这样的专家。可以让开发人员承担这样的角色吗?尽管他们在软件开发方面很有经验,但却很难将软件漏洞与信息安全和业务风险挂钩。负责安全的人员呢?对于他们来说,深入理解开发细节是一个巨大的挑战。不管怎样,要检查软件漏洞,需要理解使用不同编程语言编写的代码,所以需要具备开发经验。


我们来看一下应用安全经理在开发流程中需要解决哪些问题。


你可能会想,应用安全经理就是检查一下代码是否符合安全规范,但是,安全问题可能会在系统的各个阶段(从设计阶段到生产发布阶段)出现。构建安全的软件开发什么周期有很多种模型(如软件安全开发切入点、SDLC 等)和不同的方法(如瀑布模型、敏捷等)。但不管怎样,它们都有一个共同的关键点:在软件开发的各个阶段都要把安全问题牢记在心。


显然,在一个规模相对较大的项目中,一个人很难承担所有的重任。很少有人能够单枪匹马处理所有的问题,包括应用程序安全系统的构建、评审应用架构、严重分析工作和评估代码安全质量。除了这些,还要确保应用程序经过了所有必需的安全测试,系统的部署和配置都是安全正确的。


另外,这些事情一般是由不同的团队和部门共同完成的。为了完成这些工作,应用安全经理应该成为整个流程的推动者。应用安全经理可以基于已有的经验或者将特定的任务委托给部分专家来确保开发流程的安全合规性。但经验告诉我们,应用安全经理不能只是简单地把任务委托给其他相关人员,然后等着事情完成。

应用安全经理应该知道以及做些什么?

首先,应用安全经理需要知道什么是可控的项目。在采用敏捷开发方法时,这个尤为重要,因为敏捷开发与瀑布开发不同,你不可能有两个月时间用在项目预发布评审上。应用安全经理需要确保团队正确理解在设计阶段所设定的需求,确保架构可以满足这些需求,确保它们是可行的,并且不会在未来造成技术债务。应用安全经理是查看、解释和评估自动化报告和第三方审计结果的主要角色。应用安全经理还要负责过滤掉不相干、错误的结果,评估风险,并参与处理异常情况和制定事故处理指标。


这是一个真实的例子:一家公司在一次代码扫描中扫到了一个不安全的哈希函数(MD5)。这家公司的策略是禁止使用 MD5,供应商在三个月内将其替换成一个更加安全的函数,但代价太大了。对于这种情况,哈希函数冲突完全不会影响到系统安全,因为这个函数并没有被用于保护数据完整性。他们这么做不仅影响了交付速度,而且代价高昂,却并没有带来安全方面的好处。


其次,应用安全经理需要了解各个领域的知识,包括开发流程和信息安全准则。技术能力也很重要,因为如果看不懂代码或者不知道该怎样发现漏洞,那就很难评估由专家和自动化工具所提供的报告。通常情况下,开发人员(他们也参与构建安全系统)难以接受使用代码分析器或在渗透测试中发现的漏洞,他们会说这些工具或测试人员搞错了。那么究竟谁对谁错?事实上,要想公正客观地处理好这个问题,需要有一定的技术能力。如果软件开发外包给了其他供应商,那么有谁能够确保他们的“技术”是没问题的?


另一个真实的例子:一家公司引入了一个新的开发工具,并在一个生产环境的参考项目中对其进行了测试。最后,这些项目连通了,但在绿色的仪表盘上出现了安全事故警报。显然,被利用的漏洞应该早在漏洞分析阶段被应该被扫描出来,但实际上并没有,因为没有人知道该如何用这个高级的漏洞扫描工具(具备优秀的扫描能力)来扫描 SPA 应用程序(使用了新的 JavaScript 框架)。扫描工具没有看到这个动态出现的表单认证漏洞,并执行必要的检查。但不管怎样,没有人注意到这些,因为一切看起来都正常。开发人员没有深入了解扫描工具的特性,无法发现漏洞,而安全工作人员也不了解 Web 开发框架之间的不同。

去哪里找这样的专家?

研究过市场的人都应该知道,市场很缺这样的应用安全专家。情况通常是这样的:客户提出候选人需求,然后把它们交给 HR。如果要求很严格,普通的搜索就很难找到简历,因为有经验的专家不会随便公开他们的简历。如果他们要换工作,他们会从已有的联系人那里寻找机会。那么,应该怎样才能找到这些专家?


你可以试着从其他公司聘请,但因为一些原因,这样通常难以被接受。市场上出现了越来越多的应用安全经理外聘竞争,你可以从服务提供商那里获得专家,从而成功地解决这个问题。


不过,你还有另外一种选择。你可以试着培养自己的应用安全经理:

  1. 对安全问题感兴趣的开发人员;

  2. 安全极客,他们对软件开发和安全问题很熟悉,并且愿意在这方面深耕。


以上两种候选人都需要在他们薄弱的领域掌握更多的知识。有开发背景的候选人对之前工作的团队的文化和流程有更好的了解,但需要花很长时间掌握与安全领域相关的知识。经验表明,我们可以在开发人员、测试人员、分析师和架构师这些角色当中找到对安全问题感兴趣并且已经具备一定层度应用安全知识的人。所以,他们是理想的应用安全经理候选人。


另一方面,安全工作人员需要改变他们传统的工作方式,逐渐融入开发团队的文化。当然,如果安全专家有丰富的编码经验,并且熟悉开发流程,他们应该能够快速且顺利地融入团队。

总结

开发安全是一个业务流程,需要所有团队成员密切合作。一个合格的应用安全经理是整个流程的关键推动者,同时也是激励者、领导者、执行者和监督者——本质上是一个多面手。尽管找到或者培养这样的专家不容易,但确保找到或培养出理想的候选人,其带来的业务好处是非常深远的。


作者简介:


Daniil Chernov,DerScanner CTO、MSIS、CISSP、CISA,拥有 15 年以上网络安全经验。2005 年至 2007 年,他在 Informzaschita 担任信息安全分析师,直到 2015 年,他在 Jet Infosystems 系统集成商担任不同职位。2015 年,他担任 DerScanner 项目的 CTO,该项目为二进制 SAST 解决方案。他定期举办 appsec 网络研讨会,并为行业媒体撰写有关安全开发的文章。


原文链接Application Security Manager: Developer or Security Officer?

2021-10-30 08:001777

评论

发布
暂无评论
发现更多内容

领域驱动设计101 - 模块

luojiahu

领域驱动设计 DDD

我是如何用 ThreadLocal 虐面试官的?

陈皮的JavaLib

Java 面试 多线程 ThreadLocal

python 连接钉钉传输工作数据监控

百里丶落云

Linux之less命令

入门小站

Linux

谈一谈Java的网络编程

CodeWithBuff

Java 网络io

「2021中国峰会同行记」第二回 | 探索店匠从0到1出海的技术密码

亚马逊云科技 (Amazon Web Services)

过一过Java“锁”事

CodeWithBuff

Java 并发 同步

毕业论文被不小心删除了,有什么方法可以恢复?

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

趣谈Java类加载器

程序猿阿星

Java ClassLoader 类加载器

三个维度,透视5G价值的持续点亮之旅

脑极体

ZooKeeper实战

CodeWithBuff

Java zookeeper

[译] R8 优化: Lambda Groups

Antway

6月日更

Dapr:我不是Service Mesh!我只是长得很像

中原银行

云原生 Service Mesh istio Multi-Architecture dapr

lockSupport怎么玩

卢卡多多

锁机制 6月日更

Rust从0到1-函数式编程-迭代器

rust 函数式编程 Iterator 迭代器

ONLYOFFICE-基本组成及工作原理

一个需求

onlyoffice

百度关于EMP的探索:落地生产可用的微前端架构

百度Geek说

迪士尼将亚马逊云科技作为首选的公有云基础设施供应商,支持 Disney+ 全球扩展

亚马逊云科技 (Amazon Web Services)

人工智能应用架构的思考

金科优源汇

详解Redis主从复制原理

蘑菇睡不着

Java redis

如果非要在多线程中使用 ArrayList 会发生什么?(第二篇)

看山

Java 并发编程

研发管理工具 ONES 完成3亿人民币 B1 B2 轮融资,继续领跑研发管理赛道

万事ONES

项目管理 融资 研发管理工具 ONES

密码学系列之:twofish对称密钥分组算法

程序那些事

加密解密 密码学 程序那些事

德勤基于Amazon WAF 云原生安全服务为客户交付价值

亚马逊云科技 (Amazon Web Services)

【源码篇】Flutter Bloc背后的思想,一篇纠结的文章

小呆呆666

flutter ios android 大前端

建信金科大咖访谈:地方特色产业互联网建设思考与实践

金科优源汇

成为你想要看到的改变,首先就是让正确的事情持续的发生。

叶小鍵

数据结构——顺序栈

若尘

数据结构 6月日更

【源码篇】Flutter Provider的另一面(万字图文+插件)

小呆呆666

flutter ios android 大前端

推荐一个MySQL宝藏网站

Simon

MySQL 网站

react native实践总结与思考

碗盆

android 跨平台 React Native

应用安全经理候选人:开发人员还是安全工作人员?_文化 & 方法_InfoQ精选文章