为什么SQL注入是应用安全世界的蟑螂(以及CISO如何一劳永逸地消灭它们

发表于2018年9月26日
作者:马蒂亚斯-马杜,博士
案例研究

为什么SQL注入是应用安全世界的蟑螂(以及CISO如何一劳永逸地消灭它们

发表于2018年9月26日
作者:马蒂亚斯-马杜,博士
查看资源
查看资源

有一个众所周知的理论,即蟑螂基本上可以在任何情况下生存--甚至是核爆炸。虽然这个理论只在一定程度上是正确的,但它们简单的身体组成使它们的体型非常坚韧,在大多数情况下很难被消灭。

我一直在想......如果蟑螂在数字世界里有一个对应的东西,那一定是代码中的SQL注入(SQLi)漏洞。这已经是一个已知的漏洞,超过20年了,但组织却一次又一次地成为它们的受害者。塔吉特公司受到的广泛而昂贵的攻击就是SQL注入的结果,伊利诺伊州的选举黑客事件也是如此,其中20万选民的记录被暴露,这促使联邦调查局建议所有IT管理员迅速加强他们的安全实践。

Imperva的黑客情报计划报告显示,在2005年至2011年期间,在所有报告的数据泄露中,有83%使用了SQLi攻击。今天,注入漏洞仍然是OWASP前10名中的头号威胁。它们相对简单,但它们就是不死。

这个同样的漏洞仍然出现在大量的应用程序安全扫描中,这似乎很荒谬。我们知道它是如何运作的,我们也知道如何阻止它。这怎么可能呢?事实是,我们的软件安全有很大的改进空间。

Veracode的《软件安全状况报告》--基于2017年的40万个应用程序扫描--揭示了一个令人震惊的统计数字:只有30%的应用程序通过了OWASP的十大政策。这在过去五年中是一个一致的主题,几乎每三个新扫描的应用程序中就有一个出现了SQL注入。这证明了一个普遍存在的问题;我们没有从错误中学习,CISO似乎在能够采购到足够的安全人才方面面临着一场艰苦的战斗。通常情况下,应用安全专家与开发人员的比例为1:100,这是不充分的。

为什么软件安全要靠生命支持?

专业安全人才稀缺已经不是什么秘密了,但我们也必须注意一个事实,那就是开发人员没有在问题出现时进行修复,而且显然没有能力在一开始就不引入漏洞。在同一份Veracode报告中,它透露了所有开发漏洞中仅有14.4%有记录的缓解措施。换句话说,大多数漏洞是在没有开发缓解措施的情况下提交的。不到三分之一的漏洞在前90天内被关闭,42%的漏洞在开发期间从未被关闭。

我经常与安全专家、首席信息官和首席执行官交谈,从轶事来看,我意识到许多公司对发现的无法缓解的漏洞数量感到非常沮丧(除了被称为假阳性的祸害),以至于他们完全停止了对这些漏洞的扫描,掰着手指希望得到最好的结果。

为什么AppSec专业人员会让这种情况发生?

不要搞错了。应用安全人员对代码中的问题有着深刻的认识。毕竟,这是他们的核心技能之一,使他们成为如此宝贵的团队资源。然而,他们往往被几个因素所束缚。

例如,一个应用安全经理会发现一个问题,然后问开发人员,"你能修复代码吗?"。这个重要问题的答案因组织而异,但一般来说,开发人员在满足严格的功能交付冲刺方面的工作非常紧张,他们根本没有时间来修复这些问题,也没有像样的工具来帮助他们。AppSec专业人员本身可能能够识别漏洞,但他们往往没有技能和/或权限来当场修复这些漏洞。

我们还必须认识到,对于每一个问题,都有一个需要找到解决方案,实施它,然后测试它的过程。对于在代码中发现的哪怕是最轻微的问题,修复它可能需要的时间,更不用说所需的资源,都是巨大的。有超过700个漏洞可以被引入到软件中,任何一个人根本不可能对它们全部进行防御。正是由于这个原因,大多数公司都坚持只遵循OWASP的前10名。与此同时,开发人员不断地构建功能,反过来,他们也不断地将漏洞引入他们编写的代码中。

解决办法是什么?

一个简单的事实是,我们没有给我们的开发人员提供工具和培训来促进安全编码的成功。没有任何法规迫使组织确保开发人员拥有足够的安全技能,而且一个可悲的现实是,大多数大学和实习生也没有准备好初级开发人员的安全编码。

当有人想开飞机时,有一个非常严格的过程,确保在他们能够飞行之前有培训、实践经验、体检、安全知识和考试。没有人敢想象,在没有这种广泛的准备和技能验证的情况下,他们会被放上天空,然而这就是每天发生在代码编写上的事情。  

我们需要花时间来教育开发人员如何编写安全代码。然而,在当今世界,软件开发是快节奏的,优秀的开发人员和安全专家供不应求,这似乎从来没有成为一个优先事项。现在是我们改变对话的时候了。

世界经济论坛最近的一个头条新闻叫嚣着。"没有安全就没有数字经济",附带的内容认为,安全需要成为任何数字转型战略的核心部分。"安全是保护企业的东西,使他们能够创新,建立新的产品和服务。除了防御作用,安全还为企业提供了战略增长优势"。

提高安全编码技能和成果将为组织增加一个强大的网络保护层,协助他们创造更好、更快的代码。开发人员不需要成为安全专家,但他们必须得到积极和实际的授权,以成为防范网络攻击的第一道防线。开发人员可以成为下一个安全和创新英雄。他们是非常聪明的人,他们是创造性的问题解决者,而且普遍热衷于培养自己的技能。发挥他们的优势,提供他们应得的专门培训,并致力于提高软件安全标准。阅读我们的白皮书以了解更多信息。

当有人想开飞机时,有一个非常严格的过程,确保在他们能够飞行之前有培训、实践经验、体检、安全知识和考试。没有人敢想象,在没有这种广泛的准备和技能验证的情况下,他们会被放上天空,然而这就是每天发生在代码编写上的事情。
查看资源
查看资源

作者

马蒂亚斯-马杜博士

马蒂亚斯是一名研究员和开发人员,拥有超过15年的软件安全实践经验。他曾为Fortify Software和他自己的公司Sensei Security等公司开发解决方案。在他的职业生涯中,马蒂亚斯领导了多个应用安全研究项目,并将其转化为商业产品,他拥有超过10项专利。当他离开办公桌时,Matias曾担任高级应用安全培训courses ,并定期在全球会议上发言,包括RSA会议、黑帽、DefCon、BSIMM、OWASP AppSec和BruCon。

马蒂亚斯拥有根特大学的计算机工程博士学位,在那里他研究了通过程序混淆来隐藏应用程序的内部工作的应用安全。

想要更多吗?

在博客上深入了解我们最新的安全编码见解。

我们广泛的资源库旨在增强人类对安全编码技术提升的方法。

查看博客
想要更多吗?

获取关于开发者驱动的安全的最新研究

我们广泛的资源库充满了有用的资源,从白皮书到网络研讨会,让你开始使用开发者驱动的安全编码。现在就去探索它。

资源中心

为什么SQL注入是应用安全世界的蟑螂(以及CISO如何一劳永逸地消灭它们

发表于2018年9月26日
作者:马蒂亚斯-马杜,博士

有一个众所周知的理论,即蟑螂基本上可以在任何情况下生存--甚至是核爆炸。虽然这个理论只在一定程度上是正确的,但它们简单的身体组成使它们的体型非常坚韧,在大多数情况下很难被消灭。

我一直在想......如果蟑螂在数字世界里有一个对应的东西,那一定是代码中的SQL注入(SQLi)漏洞。这已经是一个已知的漏洞,超过20年了,但组织却一次又一次地成为它们的受害者。塔吉特公司受到的广泛而昂贵的攻击就是SQL注入的结果,伊利诺伊州的选举黑客事件也是如此,其中20万选民的记录被暴露,这促使联邦调查局建议所有IT管理员迅速加强他们的安全实践。

Imperva的黑客情报计划报告显示,在2005年至2011年期间,在所有报告的数据泄露中,有83%使用了SQLi攻击。今天,注入漏洞仍然是OWASP前10名中的头号威胁。它们相对简单,但它们就是不死。

这个同样的漏洞仍然出现在大量的应用程序安全扫描中,这似乎很荒谬。我们知道它是如何运作的,我们也知道如何阻止它。这怎么可能呢?事实是,我们的软件安全有很大的改进空间。

Veracode的《软件安全状况报告》--基于2017年的40万个应用程序扫描--揭示了一个令人震惊的统计数字:只有30%的应用程序通过了OWASP的十大政策。这在过去五年中是一个一致的主题,几乎每三个新扫描的应用程序中就有一个出现了SQL注入。这证明了一个普遍存在的问题;我们没有从错误中学习,CISO似乎在能够采购到足够的安全人才方面面临着一场艰苦的战斗。通常情况下,应用安全专家与开发人员的比例为1:100,这是不充分的。

为什么软件安全要靠生命支持?

专业安全人才稀缺已经不是什么秘密了,但我们也必须注意一个事实,那就是开发人员没有在问题出现时进行修复,而且显然没有能力在一开始就不引入漏洞。在同一份Veracode报告中,它透露了所有开发漏洞中仅有14.4%有记录的缓解措施。换句话说,大多数漏洞是在没有开发缓解措施的情况下提交的。不到三分之一的漏洞在前90天内被关闭,42%的漏洞在开发期间从未被关闭。

我经常与安全专家、首席信息官和首席执行官交谈,从轶事来看,我意识到许多公司对发现的无法缓解的漏洞数量感到非常沮丧(除了被称为假阳性的祸害),以至于他们完全停止了对这些漏洞的扫描,掰着手指希望得到最好的结果。

为什么AppSec专业人员会让这种情况发生?

不要搞错了。应用安全人员对代码中的问题有着深刻的认识。毕竟,这是他们的核心技能之一,使他们成为如此宝贵的团队资源。然而,他们往往被几个因素所束缚。

例如,一个应用安全经理会发现一个问题,然后问开发人员,"你能修复代码吗?"。这个重要问题的答案因组织而异,但一般来说,开发人员在满足严格的功能交付冲刺方面的工作非常紧张,他们根本没有时间来修复这些问题,也没有像样的工具来帮助他们。AppSec专业人员本身可能能够识别漏洞,但他们往往没有技能和/或权限来当场修复这些漏洞。

我们还必须认识到,对于每一个问题,都有一个需要找到解决方案,实施它,然后测试它的过程。对于在代码中发现的哪怕是最轻微的问题,修复它可能需要的时间,更不用说所需的资源,都是巨大的。有超过700个漏洞可以被引入到软件中,任何一个人根本不可能对它们全部进行防御。正是由于这个原因,大多数公司都坚持只遵循OWASP的前10名。与此同时,开发人员不断地构建功能,反过来,他们也不断地将漏洞引入他们编写的代码中。

解决办法是什么?

一个简单的事实是,我们没有给我们的开发人员提供工具和培训来促进安全编码的成功。没有任何法规迫使组织确保开发人员拥有足够的安全技能,而且一个可悲的现实是,大多数大学和实习生也没有准备好初级开发人员的安全编码。

当有人想开飞机时,有一个非常严格的过程,确保在他们能够飞行之前有培训、实践经验、体检、安全知识和考试。没有人敢想象,在没有这种广泛的准备和技能验证的情况下,他们会被放上天空,然而这就是每天发生在代码编写上的事情。  

我们需要花时间来教育开发人员如何编写安全代码。然而,在当今世界,软件开发是快节奏的,优秀的开发人员和安全专家供不应求,这似乎从来没有成为一个优先事项。现在是我们改变对话的时候了。

世界经济论坛最近的一个头条新闻叫嚣着。"没有安全就没有数字经济",附带的内容认为,安全需要成为任何数字转型战略的核心部分。"安全是保护企业的东西,使他们能够创新,建立新的产品和服务。除了防御作用,安全还为企业提供了战略增长优势"。

提高安全编码技能和成果将为组织增加一个强大的网络保护层,协助他们创造更好、更快的代码。开发人员不需要成为安全专家,但他们必须得到积极和实际的授权,以成为防范网络攻击的第一道防线。开发人员可以成为下一个安全和创新英雄。他们是非常聪明的人,他们是创造性的问题解决者,而且普遍热衷于培养自己的技能。发挥他们的优势,提供他们应得的专门培训,并致力于提高软件安全标准。阅读我们的白皮书以了解更多信息。

当有人想开飞机时,有一个非常严格的过程,确保在他们能够飞行之前有培训、实践经验、体检、安全知识和考试。没有人敢想象,在没有这种广泛的准备和技能验证的情况下,他们会被放上天空,然而这就是每天发生在代码编写上的事情。

我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

提交
要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。