
遭受网络攻击的风险从未像现在这么大。尽管如此,无数的开发人员仍然会犯一些关键的错误,这些错误使他们变得脆弱而不是受到保护。
在开发任何软件时,都会有无数的小错误导致您的软件的网络安全的弱点。这可能使您的软件及其用户容易受到各种形式的网络攻击。
了解不同类型的网络攻击是很重要的,因为它可以让你知道你可能会面临什么。同样,重要的是要了解网络攻击正在变得多么普遍,以及它们发生的可能性有多大。
由于软件中的大多数漏洞都是未修复的bug,经验丰富的网络安全专家会告诉您,您的软件是否会成为攻击的受害者不是问题,而是何时成为攻击的受害者。
网络罪犯是高技能的,通常是经验丰富的专家,他们会精心策划很难阻止的攻击。因此,在罪犯有机会之前采取措施防止这些攻击是至关重要的。换句话说,在软件开发过程中。
互联网数据显示,每天有3万个网站遭到黑客攻击。
要防止恶意软件、DDoS或其他网络攻击,首先要采取措施测试软件是否存在新的或已存在的漏洞,并在开发过程中或开发过程结束后采取措施避免暴露自己。
本文将解释开发人员在软件测试过程中所犯的四个最大的网络安全错误,以及可以直接采取哪些步骤来纠正这些错误。
错误#1 -没有渗透测试
对付潜在威胁的最好方法之一是进行渗透测试。这是一个在攻击者得到机会之前测试软件安全性的过程。
为了做到这一点,测试人员使用模拟黑客场景的工具来识别和操作安全漏洞。这类漏洞会导致持卡人信息、ip、个人记录、健康信息、勒索软件或其他恶意攻击在真实世界中丢失。
这是更广泛的网络安全的重要组成部分。通过渗透测试,您的公司或开发团队可以发现安全风险、遵从性缺口,并模拟大规模数据泄漏的潜在现实后果。
这些也可以用来准备信息安全团队来处理网络攻击,并测试他们的响应时间。同样,可以规划安全预算,并在更有弹性的安全措施后保护重要的数据区域。
如果没有这个简单而有效的过程,您的软件将暴露在巨大的风险中,因为您基本上是让它处于开放的状态,不管您的软件中是否存在漏洞。很有可能(除非您是天才的savant开发人员)您会这样做。
错误#2 -没有第三方代码测试
这可能会让人们感到惊讶,但是开发人员很少从头开始构建软件。相反,他们所做的是构建由现有代码、工具和其他已购买的软件或开源软件组成的软件。
一个很好的例子就是拥有第三方引擎的电子游戏,比如虚幻引擎。
此第三方代码通常用于对您正在开发的软件执行重要功能。由于这可能影响最终构建的各个元素,因此确保该元素的安全性至关重要。但通常情况并非如此。
第三方代码/软件可能充满了漏洞,而这些漏洞是最初的开发人员或后续用户没有注意到的,或者只是忽略了。最重要的是,许多开发人员不能准确地说出他们正在使用哪些第三方元素,或者他们是否经过了安全审计。
这给开发人员留下了一个奇怪的难题。从头开始编写代码是不可能的,但是希望安全漏洞被黑客忽略也是不可接受的。那么我们能做些什么呢?
首先,准确地知道正在使用什么代码是至关重要的。其次,更重要的是确保它经过了测试并被发现是可靠的。通过将自己限制在已经被发现是可靠的第三方元素上,您将在很大程度上确保您的软件具有类似级别的可靠安全性。
这看起来像是多余的工作,但是软件的生死取决于它的安全声誉——这对任何开发团队或公司来说都是坏消息。WordPress插件经常因为糟糕的评论而被闲置,并且十分之六的客户在使用它们之前会检查它们的评论——所以最好确保你的代码是安全的,你的声誉是可靠的。
错误#3 -硬编码密码,活跃的后门帐户,安全性差
一个巨大的(而且太常见的)测试错误是在测试期间使用后门帐户,忘记它们的存在,然后忘记删除它们。当然,不太可能有人会找到它。但如果他们这样做了,你可能会在一个网络攻击伤害的世界中结束。
这方面的一个例子是,思科发现他们留下了后门帐户开放,让攻击者根访问脆弱的设备。
同样地,项目Basecamp发现无数的管理帐户和登录被硬连接到ICS固件。然而,当他们通知供应商时,得到的回应不是“哇”的一声,而是匆忙的解释这些事情很重要。实际上,这些都是巨大的安全漏洞,任何人都可以利用。
攻击甚至可以来自内部,因为Capital One的密码防护很差,导致了巨大的数据泄露。尽管相当独特、强大的网络安全、更好的密码规则以及对他们软件的更深入了解可能有所帮助。
对于任何正在测试的软件,您都希望确保在完成测试后,所有后门帐户都已关闭,所有登录凭证都已删除。这是非常容易做到的,但是经常被忽略,给攻击者留下了一个额外的攻击途径。
错误#4 -不安全的数据
数据安全可以说是编程界最大的安全问题。不安全的、未加密的数据处理有许多不同的类型,但对于程序员来说,总是出现经常出错的情况。例如,缺乏加密很容易成为程序员犯的最大错误之一。
敏感数据在传输期间和静止状态下如果不加密就无法处理。少做一点就会让它变得非常脆弱。这可以是任何数据,包括:密码、用户名、网络摄像头访问权限、财务信息等等。其中一些会让用户花钱,而另一些则会严重侵犯用户的隐私。
加密实践在各行业中变得越来越普遍。不仅是在软件中,现在电子商务企业甚至博客都要求使用SSL加密技术来保护web服务器到浏览器的连接。
但对数据进行加密并不是万灵药。您必须测试您的加密工具,以确保它们得到充分实施,并能够承受所有的强力网络攻击。这意味着使用现代的、最先进的加密方法。
同样,如果包含它的代码充满漏洞,黑客可以利用这些漏洞,那么健壮的加密就没有什么意义。不管加密与否,他们仍然可以访问数据。
这类问题的一个例子就是Abobe被黑客窃取了超过1.5亿个客户密码。这些代码是加密的,但只使用对称的、可逆的加密。这意味着,如果黑客有足够的技术发现加密密钥,他就可以以明文查看每个密码。
知道像Adobe这样的开发人员如此粗心大意,对公司的品牌几乎没有任何帮助。在个人层面,采取行动,例如建立安全的软件防火墙,以阻止未经授权的访问您的计算机系统和加密您的网络与VPN服务将是绝对的最低限度的事情,你可以做,以帮助确保您的隐私和安全。
这里的教训是,必须认真对待加密。不仅是一种适用于所有安全措施的一刀切的方法,而且是一种与您的软件本身一样经过严格测试的方法。
结论
没有人希望自己的软件成为大规模网络攻击的核心。没有人想成为下一个Abobe或思科。但随着网络犯罪的增加,以及更复杂的攻击形式的发展,发布未经彻底测试的软件不再是一个选择。
开发人员犯的四个最大错误归结为缺乏对他们的代码如何变得脆弱的清晰理解。通过了解他们的代码将具有来自第三方软件的固有的和采用的弱点,开发人员可以严格地测试他们的软件,并防止这些错误影响他们的软件。
同样,在测试后进行整理也是至关重要的,因为它有助于确保后门账户和硬编码密码已被删除。适当的数据安全也必须是最重要的,因为不安全的数据会导致大量的数据泄露,这不仅会损害您的客户,还会损害您的软件声誉。
上一篇:计算网站转化率的重要提示
