写点什么

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

作者: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:001780

评论

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

KVC原理与数据筛选

京东科技开发者

后端 数据处理 KV存储引擎 KV查询

EasyRcovery2023绿色免费版U盘数据恢复软件

茶色酒

EasyRcovery2023

CDH5部署三部曲之三:问题总结

程序员欣宸

大数据 hadoop CDH 11月月更

华夏天信携手华为云开天aPaaS,打造安全、高效、节能的主煤流运输系统

华为云开发者联盟

云计算 后端 华为云

异常捕获中finally和return的用法

自由呼吸

Java 11月月更

React源码解读之任务调度

flyzz177

React

React源码解读之React Fiber

flyzz177

React

云原生微服务治理技术朝无代理架构的演进之路

华为云开发者联盟

云计算 云原生 后端 华为云 微服务治理

【React技术】JSX在企业级项目的运用and一个元素渲染demo

恒山其若陋兮

前端 11月月更

JXcore 打包在企业级项目里的合理运用和模块系统以及网络的配置详解【node.js】

恒山其若陋兮

前端 11月月更

盘点入职时,那些常见但不合规的操作

石云升

职场 入职 11月月更

我们为什么喜欢看疯狂科学家开飞艇?

脑极体

React源码分析1-jsx转换及React.createElement

goClient1992

React

React源码解读之更新的创建

flyzz177

React

1亿条数据批量插入 MySQL,哪种方式最快?

小小怪下士

Java MySQL 程序员

Gradle入门了解

派大星

Gradle

CrossOver2023免费版虚拟机软件安装包下载

茶色酒

CrossOver2023

React源码分析2-深入理解fiber

goClient1992

React

规则引擎Drools在贷后催收业务中的应用

vivo互联网技术

drools 规则引擎

Python操作XML文件

度假的小鱼

11月月更 Python操作xml xml与html区别

「Go工具箱」gorilla/sessions包的使用及原理分析

Go学堂

golang 深度思考 个人成长 Web 11月月更

1000 种兴趣和 1000 个兴趣小组 | 学点战略

赵新龙

TGO鲲鹏会 CTO 战略

PGL图学习之基于GNN模型新冠疫苗任务[系列九]

汀丶人工智能

图神经网络 GNN 11月月更

React源码分析3-render阶段(穿插scheduler和reconciler)

goClient1992

React

2023年 DevOps 七大趋势

SEAL安全

Python基础库-json库

度假的小鱼

11月月更 Python操作json json语法规则

DDD与EDA-核心逻辑提炼方法论

胖子笑西风

Java 架构 DDD 事件驱动 EDA

要想后期修改少,代码重构要趁早

华为云开发者联盟

云计算 后端 华为云

跨境电商ERP也爆单,分布式新型数据库迎战

OceanBase 数据库

数据库 oceanbase

信息论与编码:随参信道特性

timerring

11月月更 信息论 移动通信

如何在几百万qps的网关服务中实现灵活调度策略

百度Geek说

网关 调度 动态配置 12 月 PK 榜

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