软件开发让事情工作起来,并创造新的功能来解决问题。然而根据网安公司的一项研究显示,32%的Web开发人员每天至少花5个小时来解决安全问题。通常情况下,低效沟通及不充分的工具会导致开发人员将与安全相关的请求视为没有明确原因或干扰,同时还会存在很多误解。
误解 1:安全不是开发问题
现实:应用程序安全是现代web开发的重要组成部分,尤其是当你转向DevSecOps时。
对多数团队来说,关注点通常在构建软件上而将安全性抛在脑后。web应用程序如此复杂,并且可以以多种方式受到攻击,因此提高安全性应该成为每个人的事情,从开发到结束。在开发中发现漏洞时,可以及时进行修复并在上线前将问题解决。
误解 2:我们的Web框架负责安全性
现实:一个高质量的框架可以防止许多安全缺陷,但仅靠它本身是远远不够的。
选择一个具有可靠安全记录的框架是必须的,因为它可以帮助完全避免某些类型的技术漏洞,但只能避免某些类型的技术漏洞,并且仅在按预期使用框架时。框架也只能防止典型用例中的一小部分漏洞,因此它们只是安全编码的起点。
误解 3:在 IDE 中运行安全检查,所以很安全
现实:在IDE中运行的静态代码检查仅涵盖整个应用程序安全性的一部分。
Web 开发工具集现在通常包括某种代码安全检查器,有时甚至作为免费插件。这样做的好处是可以从第一行代码中强制执行一定程度的安全意识,但缺点在于只能识别有限的问题。通过增加专业的静态代码检测工具,可以有效发现更多的已知/未知漏洞及运行时缺陷,在开发中提高软件安全性。
误解 4:浏览器有针对攻击的内置保护
现实:浏览器安全性是应用程序安全性的补充。
大约十年前,在跨站点脚本(XSS)盛行时期,浏览器供应商尝试在浏览器本身中构建XSS过滤器。虽然这些安全措施从来都不是完全有效的,而且已经从大多数现代浏览器中删除了,但这造成一个误解,即防止对web应用程序的攻击是浏览器的工作。实际上,浏览器安全是网络安全的一个完全独立(而且至关重要)的领域,不应该将浏览器作为应用程序的额外防线。
误解 5:我们所有的网站都使用 HTTPS,因此是安全的
现实:HTTPS只保护你免受窥探和篡改,而不是恶意流量。
看到挂锁图标和“本网站是安全的”的信息会产生一种“安全感”,如果到处都是HTTPS,所有的流量都是加密的,那就意味着一切都是安全的?然而并不是,这无法对对威胁参与者已经拥有有效连接的应用程序级攻击提供保护。如果攻击者可以在一个脆弱的仅面向http的应用程序中访问或创建一个有效的用户帐户,那么他们就可以自由地尝试SQL注入、特权升级和其他攻击,所有这些都是在一个安全加密的连接中进行的。
误解6:应用程序只在内部网络上运行,所以安全不是问题
现实:高级攻击者可以使用被破坏的面向web的系统来间接攻击脆弱的应用程序,甚至在内部网络中。
实际上,存在像服务器端请求伪造(SSRF)这样的漏洞,如果出现在生产应用程序中,高级攻击者甚至可以通过另一个服务器攻击内部系统。此外,在云优先的世界中,许多组织不再拥有物理上隔离的内部网络,除非是私有云。
误解 7:只允许虚拟专用网络访问,所以应用程序是安全的
现实:虚拟专用网络是保护互联网隐私的强大工具,但不是保护网络资产的全面解决方案。
远程工作的转变已经使虚拟专用网络从专业工具转变为企业 IT 的主要工具,充当物理办公室网络的远程工作对应物。尽管它们确实提供了额外的隔离和访问控制,就像内部网络一样,但不应将 VPN 视为 Web 应用程序的安全保证。如果攻击者确实设法访问了 虚拟专用网络(例如,使用被盗的凭据、泄露的员工帐户或一些社会工程),任何易受攻击的内部应用程序都将很容易受到攻击。
误解 8:Web 应用程序防火墙将阻止任何攻击
现实:WAFs并不是被设计成唯一的应用程序防御线,特别是当它们可以被攻击者绕过时。
Web应用程序防火墙(WAFs)是网络防火墙的Web模拟,过滤HTTP流量(希望)检测和阻止攻击尝试。WAFs通常还充当负载平衡器,它提供了额外级别的安全性,对于临时阻止0 day攻击,直到实现修复是非常宝贵的。然而,它们不能(也不打算)检测所有可能的攻击,只要存在潜在的漏洞,攻击者就可能找到绕过WAF规则的方法来利用它。
误解 9:有备份,如果发生网络攻击可以恢复
现实:备份对于数据保存和业务连续性很重要,但不能减少数据泄露的附带损害。
备份策略一直是整个安全策略的关键组成部分,没有什么可以替代良好的备份和可靠的恢复计划。但是,即使是最好的备份也不能防止网络安全事件的发生。备份只能防止数据丢失,并不能帮助解决网络攻击的其他潜在后果,从停机时间到声誉损失。首先确保应用程序安全与始终为恢复做好准备一样重要。
误解 10:没有人可能想攻击我们
现实:大多数网络攻击都是自动的、不分青红皂白的,所以每个组织都可能成为攻击目标。
不可否认的是,这种误解体现了人类普遍的信念,即坏事只会发生在别人身上。对于那些没有充分认识到其攻击面范围之广的企业来说,从认为自己不是有吸引力的目标的小公司到组织,希望应用程序安全并不真正与他们有关,因为他们不会被攻击。
事实是,真正的网络犯罪分子是有组织的犯罪组织,它们每天 24 小时在全球网络上进行自动攻击探测。事实上,恶意机器人占所有 Internet 流量的 39% ,一旦机器人发现一个已知的缺陷(想想Log4Shell),存在这个缺陷的企业就危险了。
现代的web应用程序安全是复杂的、多层的、不断变化的,就像web应用程序本身一样。漏洞会不断重新出现,并在不断增加的积压中堆积更多的问题。从这个角度来看,在开发过程中由于上面列出的任何原因而忽略应用程序安全性不仅是危险的,而且产生的工作可能比节省的工作量还要多。将有效的安全测试和补救直接构建到软件开发生命周期(SDLC)中更有意义。
来源: