NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

评论

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

阿里P8出,入职阿里必会199道SpringCloud面试题,你能掌握多少?

钟奕礼

Java java程序员 java面试 java编程

深究并行编程Parallel类中的三大方法 (For、ForEach、Invoke)和几大编程模型(SPM、APM、EAP、TAP)

C++后台开发

多线程 后端开发 linux开发 C++开发 并行编程

应用程序现代化指南

世开 Coding

应用现代化 软件升级

StarRocks 与 DataPipeline 完成兼容性互认证,携手共建数据基础设施生态

StarRocks

数据库

【LeetCode】统计匹配检索规则的物品数量Java题解

Albert

算法 LeetCode 11月月更

EventBridge 生态实践:融合 SLS 构建一体化日志服务

阿里巴巴云原生

阿里云 云原生 EventBridge

Dive into TensorFlow系列(3)- 揭开Tensor的神秘面纱

京东科技开发者

Python 人工智能 深度学习 tensorflow

软件测试 | 测试开发 | 校招面试真题 | 实习生和应届生有什么区别?

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

软件测试 软件测试工程师

声网深度学习时序编码器的资源预测实践丨Dev for Dev 专栏

声网

深度学习 算法 模型

离职、被毕业?职场打工人的最强生存指南!

千锋IT教育

PolarDB-X 开源分布式数据库进阶营免费报名中!

阿里云数据库开源

MySQL 数据库 阿里云 开源 PolarDB-X

PCB设计必须考虑的8种安全距离,搞错1种都出大问题!

华秋PCB

PCB PCB设计

计算机网络:IEEE 802.11无线局域网

timerring

计算机网络 11月月更

「Go实战」在 Go 项目中基于本地内存缓存的实现及应用

Go学堂

golang 缓存 开源 程序员 性能

首次!阿里巴巴团队共同携手编写“大厂面试参考指南”v1.0版本

钟奕礼

Java 面试 java程序员 java 编程 #java Java 面试题

学历不是问题!社招大专老哥阿里 腾讯Java面试,上岸入职京东

钟奕礼

java程序员 java面试 java编程 #java

Spring 5(五)事务操作

浅辄

Spring5 事务 11月月更

Wallys/ WiFi6 MiniPCIe Module 2T2R 2×2.4GHz 2x5GHz MT7915 MT7975 /industrial mini pcie card

wallysSK

MT7915

Python图像处理丨5种图像处理特效

华为云开发者联盟

Python 人工智能 华为云 图像处理

首批招募 50 家!「龙腾社区生态发展计划」正式发布

OpenAnolis小助手

开源 操作系统 云栖大会 龙蜥社区 合作

云服务器的四大作用讲解-行云管家

行云管家

云计算 服务器 云服务 云服务器

AOP 的九点核心概念和作用

千锋IT教育

微服务中的服务发现是什么?

API7.ai 技术团队

微服务 服务发现 API网关 APISIX

成为千行百业数字化转型催化剂的,竟然是它!

元年技术洞察

微服务 低代码 数字化转型

使用 Fiori Elements 框架创建 UI5 Web 应用

Jerry Wang

web开发 Fiori SAP UI5 ui5 11月月更

数据库精选 60 道面试题

钟奕礼

Java Java 面试 java程序员 java编程

MetaForce佛萨奇2.0系统开发DAPP搭建

薇電13242772558

dapp开发

战略合作再升级!合合信息与腾讯云联合推出海外智能风控方案

科技热闻

5种GaussDB ETCD服务异常实例分析处理

华为云开发者联盟

数据库 后端 华为云

灵雀云ACP 斩获“2022金边奖-最佳云原生边缘云平台”

York

容器 云原生 5G 边缘计算 边缘云

精彩议程更新,从云原生到 Serverless 的思考和收获,邀你共同见证丨PingCAP DevCon 2022

PingCAP

TiDB

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