写点什么

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

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

评论

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

写个JS深拷贝,面试备用

helloworld1024fd

JavaScript

开奖啦!看看 9 月月更获奖名单有没有你?

InfoQ写作社区官方

热门活动

基于纯前端类Excel表格控件实现在线损益表应用

葡萄城技术团队

前端 Excel 报表

电子表格也能做购物车?简单三步就能实现

葡萄城技术团队

前端 在线excel 应用系统 控件

synchronized 和 ReentrantLock 的区别

zarmnosaj

10月月更

行业大咖秀,第二期开播!

云计算

真机调试设备不够?荣耀云调试帮你忙

荣耀开发者服务平台

开发者 手机 云服务 荣耀 honor

Qt示例 | 模拟时钟示例 Analog Clock Example

YOLO.

qt 10月月更 C++

中软鸿联:集聚智能化能量势场,点燃小家电创新星火

中软国际AIoT开发者社区

智慧家电

STM32L051测试 (五、串口测试 — 与Enocean模块通讯问题)

矜辰所致

stm32 串口通信 STM32L051 10月月更

直播预告|Apache APISIX x KubeSphere 在线 Meetup 来袭

API7.ai 技术团队

APISIX KubeSphere

云原生时代的DevOps平台设计之道

北京好雨科技有限公司

数据结构学习,串篇(顺序串及算法)

IC00

学习 数据结构 算法 学习笔记 10月月更

MASA Framework的异常处理

MASA技术团队

.net MASA Framewrok MASA

大学毕业后转行软件测试我后悔了

测吧(北京)科技有限公司

测试

重磅 ! Redis+Nginx+JVM+设计模式+Spring全家桶+Dubbo

程序知音

Java 数据库 spring JVM 后端技术

都说复盘能力很重要,如何复盘更有效?Superset你值得拥有

王中阳Go

Code Review BI 分析工具 项目复盘 Superset 10月月更

全息投影正在威胁LED显示屏在舞台的地位

Dylan

LED显示屏 led显示屏厂家

堡垒机推荐厂商当属哪家?为什么?咨询电话多少?

行云管家

网络安全 信息安全 数据安全 堡垒机

从零开始实现一个Promise

helloworld1024fd

JavaScript

2022互联网母婴行业用户洞察

易观分析

互联网 母婴

喜迎华诞,openEuler 22.09 正式发布,与1265名开发者共建面向数字基础设施的开源操作系统

openEuler

开源 开源操作系统 open Euler

一条 SQL 语句是如何执行的

说故事的五公子

MySQL 数据库 sql

公网对讲SDK| 快速搭建公网对讲应用

anyRTC开发者

音视频 监听 快对讲 AI降噪 录音

手撕常见JS面试题

helloworld1024fd

JavaScript

springboot + redis多数据源 + jedis集群模式

try catch

redis springboot spring Boot Starter redis cluster redis多数据源

ctk流程

留白的艺术

Qt | 本地存储配置信息 QSettings

YOLO.

qt 10月月更 C++

【Go微服务】开发gRPC总共分三步

王中阳Go

微服务 gRPC RPC #go 10月月更

C# ref用法,实现引用传递(地址传递)

IC00

C# 学习 程序员 上位机 10月月更

NFT 数据基础设施 NFTScan 的产品介绍【科普】

NFT Research

区块链 NFT 数据基础设施

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