最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

应用程序安全的锅,谁来背?

  • 2019-07-28
  • 本文字数:1676 字

    阅读完需:约 5 分钟

应用程序安全的锅,谁来背?

对于软件开发来说,应用程序的安全性是最为重要的。随着企业 DevOps 的实践及相关工具的出现,企业软件的开发周期越来越短,对数据安全性的要求性也越来越高,在这种情况下,如何才能维持很好的应用程序安全性呢?应用程序的安全性又该由谁来负责呢?


为了搞清楚上述问题,WhiteSource 对 600 多名软件开发人员进行了调查,调查内容包括企业内应用程序安全职责的划分,测试安全性的时机以及在面对安全性挑战时采取的措施等等。

应用程序安全,谁来背锅?

在我们以前的认知里,如果应用程序发生安全问题,那自然是要负责安全的专业人员背锅,因为开发人员负责设计和构建产品,而安全专家则是专为安全而生,负责审核、标记、补救安全问题。但是随着技术的不断发展,之前划分明确的安全界限正在变得越来越模糊,在 WhiteSource 最新的调查中,71%的受访者表示几乎参与软件开发的所有人员都应该为安全负责,例如 DevOps 团队、安全团队、开发团队,甚至是开发者自己。



为什么开发人员也要为应用程序安全负责呢?因为如果是在软件开发的早期就修复安全漏洞,那么就可以显著降低所需的成本和工作量,不仅提高了灵活性,还能一次性生成安全性更高的应用程序。


当这么多人都参与到应用程序的安全工作中,该如何分配工作呢?比较好的一种方式是,开发人员负责监控和处理日常的安全工作,而安全人员从更高的维度把控安全问题,例如建立更好的安全流程。



(蓝色代表 DevOps、橘色代表 Developers、黄色代表 Team leaders in software development teams、紫色代表 Security teams)


不同规模的企业应该制定不同的安全规则,如果是比较小的企业或组织可以更灵活地定义安全流程。不过,所有类型的企业都应该慢慢把安全的责任慢慢向开发团队转移。

如何才能避免应用程序发生安全问题?

如何才能避免应用程序发生安全问题?首先,要在应用程序设计之初就把安全性考虑在内。在 WhiteSource 的调查中,只有 55%的企业或团队会在软件开发时把安全性放在首要位置,14%的受访者只有在发生问题时才会考虑安全性,更有 3%的受访者因为担心会拖慢开发进度,完全不考虑安全性。



之前,软件开发大多采用瀑布开发模式,只有在软件发布之前才会进行安全审核,但是现在采用 DevOps,我们可以在更早期的时候就测试安全漏洞,避免在软件发布时才会出现问题。


到底在什么时候开发人员进行安全测试是最合适的呢?在 WhiteSource 的调查中,36%的受访者是在软件构建之前开始进行安全测试,30%的受访者是在软件构建时进行安全测试,还有 34%的受访者是在后期建设时进行安全建设。


在软件构建之前就实施安全测试工作,这就代表着企业已经在有意识的转移安全工作,他们希望在问题修复时能够更容易、更快地找到问题所在。


另外,在调查中,WhiteSource 还发现对开源组件依赖性比较大的公司与在应用程序构建之前实施安全测试工作的公司之间具有强关联性。


如何检测、修复应用程序的安全问题?

为了更好更快地检测和修复应用程序的安全问题,企业往往会在此方面投入很多。在 WhiteSource 的调查中,只有 20%的受访者表示公司完全不提供任何安全培训,剩余的受访者公司都会或多或少地为他们提供安全培训。


除此之外,开发人员还需要掌握一系列应用程序安全测试(AST)技术。调查中,68%受访者表示已掌握、使用以下至少一种技术:SAST、DAST、SCA、IAST 和 RASP。如果集成了自动化应用程序安全测试工具,那么当发生安全警报时,相关人员就可以立即收到报警,第一时间处理相关问题。



由于开源软件的流行,很多企业 IT 架构中都会使用开源软件,这是开源组件的安全性就成为了我们关注的问题。根据调查,34%的开发人员会通过自动化软件组合分析工具来实时检测具有已知漏洞的开源组件。不过,这些 SCA 工具大多是开源工具,针对不同应用程序的安全性和提供给 DevOps 参与者的功能都很有限,目前这些工具已基本融入了开发人员现有的工作流。



当应用程序中检测到了易受攻击的开源组件该怎么办呢?调查中,排在前三位的解决方法分别是向安全团队、DevOps 或是上级报告该情况(25%)、查找该开源软件易受攻击的部分(23%)、根据项目组长提出的办法进行补救(20%)。


2019-07-28 15:553030
用户头像

发布了 497 篇内容, 共 308.8 次阅读, 收获喜欢 1907 次。

关注

评论

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

rockchip的yocto编译环境搭建

良知犹存

Linux yocto rockchip

关于Aborted connection告警日志的分析

Simon

MySQL MySQL错误日志

“深化产教融合·共育数字人才”全国产教融合信息化高峰论坛·江苏站成功举办

InfoQ_967a83c6d0d7

前端科普系列(3):CommonJS 不是前端却革命了前端

vivo互联网技术

Java 大前端 脚本

一家估值20亿美元的公司,竟然没有办公室?

Atlassian

远程办公 Atlassian Jira

代理模式详解

大头星

想问面试官什么问题么?

escray

学习 面试

前端科普系列(2):Node.js 换个角度看世界

vivo互联网技术

node.js 大前端

LeetCode680-验证回文字符串 Ⅱ-Easy

书旅

LeetCode

我与游戏相伴【自我访谈2】

叶阳夏烟

系列 游戏 访谈录 剧情游戏 仙剑奇侠传

架构师训练营第十一周作业

Melo

ARTS打卡Week 11

teoking

Newbe.Claptrap 框架入门,第三步 —— 定义 Claptrap,管理商品库存

newbe36524

Docker 云计算 微服务 .net core ASP.NET Core

并发神器CSP的前世今生

soolaugust

并发编程 并发 Go 语言

LeetCode1160---拼写单词---Easy

书旅

LeetCode

Python代码调试指南

王坤祥

Python Python基础

要刷LeetCode了,才发现自己连时间复杂度都不懂

大头星

算法 LeetCode

详解责任链模式

大头星

1.Flink任务之间通信开销-6

小知识点

scala 大数据 flink

从Vessel到二代裸金属容器,云原生的新一波技术浪潮涌向何处?

华为云开发者联盟

Docker 容器 云原生 k8s Vessel

6. 二十不惑,ObjectMapper使用也不再迷惑

YourBatman

json Jackson ObjectMapper

utf8字符集下的比较规则

Simon

MySQL 字符集

想不出来问题的你

escray

学习 面试

Docker 安装及配置镜像加速

哈喽沃德先生

Docker 容器 微服务

解读 Reference

浮白

ThreadLocal Reference ReferenceQueue Finalizer WeakHashMap

JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件

图雀社区

单元测试 自动化测试 Jest

前端科普系列(4):Babel —— 把 ES6 送上天的通天塔

vivo互联网技术

Java 大前端 ES6

大数据技术思想入门(三):分布式文件存储的流程

cristal

Java 大数据 hadoop 分布式

你期待的薪酬是多少?

escray

学习 面试

看智微智能互动录播系统如何建设“三个课堂”

InfoQ_967a83c6d0d7

【程序员自救指南】中关村保洁大叔的一句话竟然帮我转正了

华为云开发者联盟

服务器 数字化 华为云 企业上云 云服务器

应用程序安全的锅,谁来背?_软件工程_田晓旭_InfoQ精选文章