常见的安全漏洞类型和修复方法
已发表: 2022-07-11Microsoft 的 Exchange Server 中的一个漏洞导致了影响美国 60,000 多家私营公司的大量网络攻击。 就在一个月前,一家名为庞巴迪的航空航天公司,由于其第三方文件传输应用程序的漏洞,其员工和供应商的数据遭到泄露。
有许多安全漏洞类型可以让您的 IT 系统受到黑客的关注。 从糟糕的编码实践到有缺陷的外部组件,不管是什么原因,许多公司最终都被曝光了。 为了缓解这个问题,企业可以从 QA 和测试服务中受益,以评估他们自己的软件和网络,并评估外部供应商组件的安全风险。
那么,目前哪些安全漏洞类型可能会使您的系统面临网络威胁? 漏洞是如何出现的? 我们如何才能减轻它们?
什么是软件漏洞,它来自哪里?
安全漏洞是一种意外的系统或组件特性,它通过意外暴露、故意攻击或与新组件的冲突来放大入侵或数据丢失的风险。 这样的漏洞可能是设计缺陷、实现错误、配置错误等。
在我们继续之前,让我们澄清漏洞、漏洞利用和威胁之间的区别。
- 系统中存在漏洞,无需外部人员的任何努力
- 漏洞利用是入侵者利用现有系统弱点发动攻击的方式
- 威胁是当一个或多个漏洞利用漏洞渗透系统时的实际事件
安全专家可以在发现漏洞时使用软件补丁、硬件更换和系统重新配置来消除漏洞。 对最终用户进行安全实践培训并使所有组件保持最新状态也将防止和最大限度地减少漏洞。 此外,安全团队需要记住,随着系统的发展,会出现新的弱点。 因此,企业需要系统地扫描他们的软件、硬件和网络以查找新出现的漏洞,并在它们被发现和利用之前对其进行修复。
随着美国政府的国家漏洞数据库 (NVD) 在 2022 年第一季度发布了 8,000 多个新条目,新的安全漏洞不断出现。随着这种快速发展,许多企业多年来无法跟上并留下公开的弱点,暴露了他们的漏洞。系统。 一项针对软件漏洞的研究显示,2020 年发起的攻击中有 75% 的攻击利用了至少两年前的漏洞,而 18% 的攻击依赖于 2013 年报告的漏洞!
安全漏洞如何进入软件和网络?
根据研究,软件供应商开发的应用程序中有 75% 不符合开放 Web 应用程序安全项目 (OWASP) 十大标准。 这些标准是公开的。 那么,为什么这么多人仍然无法开发出安全的应用程序呢? 以下是主要原因:
易受攻击的第三方代码和其他组件。 重用第三方组件是一种常见的做法,因为这会显着加快开发过程。 然而,用户往往会轻视这些部分的安全性,并且经常在没有进行全面评估的情况下部署它们。 这同样适用于从源代码(例如 Stack Overflow)复制粘贴代码,而无需评估其安全性。
不安全的编码实践。 最近的研究表明,大多数开发人员甚至都没有注意到安全性。 在一项探索 1,200 名开发人员态度的实验中,研究人员得出结论,只有 14% 的人在编写代码时将安全视为优先事项。 此外,请注意,许多组织要求他们的开发人员在紧迫的期限内快速生成代码,这根本没有为彻底的安全评估留下空间并导致代码漏洞。
快速变化的网络攻击格局。 攻击者不断发现破坏应用程序安全性的新方法。 因此,以前被认为免疫的部分今天可能会变得脆弱。 如果 IT 团队没有系统地评估应用程序和网络的漏洞,也没有使所有软件保持最新,那么漏洞开始出现只是时间问题。
安全漏洞类型分类
有两个平台,OWASP 和 CWE,可提供可靠且详细的安全漏洞列表。 他们更新他们的列表以包括任何新出现的弱点。 这两种资源都可以用来教育程序员、测试人员和工程师。
OWASP 是一个非盈利性的全球社区,它定期发布 OWASP 十大软件漏洞列表。 Common Weakness Enumeration (CWE) 是由一个专门的社区开发的软件和硬件漏洞的组合,它包括 25 个条目。
以下是我们希望在本文中重点介绍的 18 个最突出的安全漏洞,按域排序。 这些可以体现在任何 IT 系统中,例如云、基于物联网的配置和移动应用程序。
1. 缺乏强大的加密实践
尽管加密不会阻止网络攻击,但必须确保敏感数据即使其存储平台遭到破坏也能保持安全。 攻击者在解码之前不能滥用加密数据,这使被侵犯的业务有时间采取必要的措施,例如通知受影响的各方并准备身份盗用对策。
研究表明,许多公司没有立即计划对 U 盘、笔记本电脑和台式机上的数据进行加密。 说到数据保护法规,GDPR 并没有明确要求加密,而是将其描述为数据安全的“适当的技术和组织措施”。
IBM 在其数据泄露成本报告中指出,加密是可以降低数据泄露平均成本的最有影响力的因素之一。
2.敏感数据暴露
当疏忽员工将数据上传到公共数据库或网站时,数据可能会因人为错误而暴露。 但是这种安全漏洞类型也可以得到内部流程的支持,这些流程实际上允许未经授权的员工获得访问权限并操纵敏感数据。
网络安全公司 Egress 进行了一项调查,发现 83% 的美国组织通过电子邮件、文件共享、协作软件和消息传递应用程序意外暴露了敏感数据。
3.传输层保护不足
这种类型的漏洞处理客户端和服务器应用程序之间的信息交换。 此类信息可能包含敏感数据,包括用户凭据和信用卡详细信息。 当数据传输不安全时,通信可能会被截获,如果使用弱算法,攻击者可以访问数据并破译加密。
4. 错误配置的系统组件和有风险的交互
不正确地配置组件以及它们之间的交互是我们经常遇到的另一个安全问题。 例如,在设置 IT 系统时,管理员忘记覆盖制造商的默认设置并禁用目录列表,从而使系统暴露在外。 另一个例子是忘记限制对外部设备的访问。
说到交互,建议应用程序采用零信任方法,并在验证和证明合法之前将每个输入视为有风险的。 这将有助于避免攻击,例如跨站点脚本,攻击者会在其中向应用程序注入不受信任的数据。
这方面与基于云的解决方案特别相关。 一项研究报告称,服务器配置错误导致两年内发生 200 次云攻击。 另一项研究表明,大约 70% 的云安全漏洞始于有缺陷的架构。 例如,一个配置错误的 AWS 存储桶在 2019 年暴露了美国 75 万份出生证明申请。
5.服务端控制薄弱
这种安全漏洞类型代表服务器端可能出现的所有问题,从身份验证不佳到导致攻击的安全错误配置,例如跨站点请求伪造,其中某些用户的浏览器在用户不知情的情况下向服务器发出未经授权的操作。
例如,数据库服务器中的错误配置可能会导致通过基本网络搜索访问数据。 如果它包含管理员凭据,那么入侵者就可以访问系统的其余部分。
6.远程代码执行
这意味着您的系统存在的软件安全漏洞使入侵者能够通过互联网在您的设备上执行恶意代码。 例如,当员工点击第三方网站上的电子邮件链接时,此设置背后的黑客会向受害者的计算机注入恶意软件并从那里取得控制权。 外人可以访问敏感数据或锁定机器并要求赎金。
7. 已知的基于操作系统的漏洞
每个操作系统都有其软件漏洞列表。 一些名单在网上公布给大家看。 例如,以下是 Windows 10 操作系统的 10 大弱点列表,以及 OS X 的相应列表。安全团队有责任审查并解决这些问题,以最大限度地减少攻击机会。
8. 运行脚本不进行病毒检查
这是某些 Web 浏览器中存在的常见安全漏洞类型。 例如,Safari 允许在没有明确用户许可的情况下运行“可信”脚本。 黑客倾向于通过尝试运行可能与“安全”脚本混淆的恶意代码来利用此弱点。 幸运的是,通常可以禁用此“功能”。
9. 认证薄弱
入侵者可以通过暴力破解用户的凭据来获得访问权限。 当仅密码“123456”就被超过 2300 万人使用时,这尤其容易。 这是对密码的补充,例如“admin”、“password”和“qwerty”,这些密码也很常见,而且很容易破解。
这种类型的软件漏洞被认为是人为的,但企业可以采取措施迫使员工选择更强大的选项并经常更改其凭据。 鉴于弱认证在系统安全中所起的作用,这一点至关重要。 统计数据显示,80% 的安全漏洞是由弱密码造成的,61% 的用户倾向于对多个服务使用一个安全短语。
10. 使用已知漏洞的组件
部署第三方组件,例如库、API、数据集和框架,可以显着减少启动和运行系统所需的工作量。 但它也可能引入漏洞。 保持勤奋并评估这些组件以确保它们不会留下任何后门来访问敏感数据,这一点很重要。
即使下载和使用第三方图像也可能很危险。 2021 年,部署了 30 个 Docker Hub 镜像,下载量为 2000 万,用于传播挖矿恶意软件。
11. 不安全的设计
这是 2021 年出现在 OWASP 上的一种相对较新的安全漏洞类型。该组织呼吁从一开始就消除漏洞的安全设计模式、威胁建模和参考架构。
安全设计是一种不断评估威胁并确保代码稳健性的方法。 它鼓励针对已知攻击方法进行系统测试。 它将安全视为软件开发的重要组成部分,而不是附加组件或附带的功能。
12. API 中的安全漏洞
应用程序编程接口 (API) 允许软件组件相互交互,这是 IT 系统的重要组成部分。 但是,安全措施薄弱的 API 可能会打开多个漏洞,例如身份验证被破坏并允许代码注入和其他恶意行为。
例如,一个鲁莽构建的 API,它依赖于客户端在将信息呈现给用户之前过滤信息,可以公开数据,使其可供抓取。 敏感数据必须在服务器端进行过滤。 这是此安全漏洞类型的另一个示例:如果 API 不限制传入请求的数量,它可能会为拒绝服务 (DoS) 攻击打开机会。
以下是 OWASP 列出的与 API 相关的 10 大安全漏洞,供您参考。 在过去几年中,不安全的 API 为许多攻击打开了大门。 一个臭名昭著的例子来自 LinkedIn,恶意行为者使用该平台的免身份验证 API 下载了 7 亿用户的数据。 使用类似的 API 漏洞,入侵者检索了 130 万 Clubhouse 用户的信息,并将其发布在黑客论坛上。
13. 认证不充分
薄弱的身份验证措施允许黑客利用“忘记密码”选项来重置帐户或发起帐户接管攻击。 当身份验证问题类似于用户的生日或宠物名字时,它可以帮助入侵者,因为由于社交媒体,这是公开可用的信息。 遵循多因素身份验证过程将提高安全性。 遗憾的是,研究表明只有 26% 的美国公司使用这种强大的身份验证方法。
14、监控和日志不足
日志存储有关系统事件、网络活动和用户操作的数据。 通过监控日志,安全团队可以观察最近发生的所有活动并识别可疑事件。 如果不系统地审查日志,则会造成信息空白,软件漏洞和恶意活动仍未被发现。
15. 超级用户权限
用户可以访问的数据越少,他们的帐户受到的损害就越小。 然而,一些企业仍然疏忽地向左右授予超级用户权限,并且未能限制员工访问他们履行日常职责所需的权限。 如果入侵者拥有管理员级别的帐户,他们可以禁用防病毒软件和防火墙、安装有害应用程序、获取文件所有权等。
根据研究,74% 的数据泄露始于滥用特权凭证。
16. 过时的软件
大多数企业意识到及时的软件更新是安全系统的关键。 然而,似乎只有少数人真正遵循这种做法。 Cybernews 报道了最近一项调查软件更新频率的研究。 这项研究历时 18 个月,发现 95% 的被检查网站实际上是在具有已知漏洞的过时软件上运行的。 研究小组还发现,平均软件产品通常比其最新补丁晚四年。
此外,卡巴斯基确定,运行过时软件的公司可能会因违规而产生 47% 的额外成本。
举个例子,万豪连锁酒店有 5 亿条数据记录因未打补丁的软件导致的安全漏洞而受损。
17. 源代码中的漏洞
代码漏洞在软件开发过程中蔓延。 例如,一个程序可能会在没有加密的情况下传输敏感数据,或者使用一个随机字符串,这实际上不是随机的。 此类错误通常在软件测试阶段被发现。
根据最近的安全代码勇士调查,86% 的参与开发人员承认他们在编写代码时并不将应用程序安全视为首要任务,36% 的人将此归因于紧迫的期限。 调查还显示,33% 的受访者甚至不了解是什么让他们的代码易受攻击。
18. SQL注入
此安全漏洞类型与由结构化查询语言 (SQL) 提供支持的网站和应用程序相关。 它允许攻击者更改用户提供的 SQL 语句并欺骗解释器执行意外命令并授予对数据库的访问权限。 这样,入侵者可以通过替换/删除/修改敏感字段来操纵敏感数据。

这是一个相当古老的漏洞,早在 2019 年就占软件应用程序攻击的 65% 以上。
系统特定的安全漏洞类型,以及如何防止这些软件漏洞
在强调了常见的安全漏洞之后,让我们转向应用程序和系统特定的弱点,并找出如何保护您的系统免受它们的侵害。
云端
云中存在大量可能的安全漏洞类型,与 Azure、AWS、GCP 或任何其他云提供商无关。 我们的云专家 Alexey Zhadov 将这些漏洞按层划分,并提供了如何防止它们的提示。
系统层漏洞
无论您的软件在何种云服务上运行,幕后总有一个操作系统。 即使您只能访问资源的控制面板。 每个操作系统都有它的“漏洞”和“后门”。 操作系统开发人员不断寻找这些弱点,试图覆盖这些基础。 这就是为什么让您的软件保持最新并与已知问题的网络安全领域的最新发展保持联系非常重要的原因。
网络层漏洞
每个云资源都在云网络上运行。 随之而来的是从外部连接到资源的可能性。 安全团队需要确保网络配置足够。 切勿打开您不打算部署的端口,使用您知道的 IP 和预期连接到您的解决方案的网络的白名单。 在从已知 IP 以外的任何地方打开与 RDP/SSH 端口的直接连接时要小心。
配置层漏洞
云必须根据用户的要求和目标进行适当的配置,并且此配置必须始终保持最新。 设置配置管理策略和程序,并监控任何可疑活动。
人为因素的脆弱性
不要忘记有权访问云解决方案的最终用户和管理员。 帐户劫持是任何 IT 系统中最常见的弱点之一。 如果入侵者获得了某人的帐户凭据的访问权限,他们可以在帐户权限范围内自由进入和操纵系统,在收到被黑客入侵用户的通知之前,没有人会阻止他们。 以下是云应用程序中最常见的安全漏洞类型列表:
- 错误配置的网络和防火墙
- 云存储配置错误
- 不安全的 API
- 访问管理不善
- 账户劫持
- 恶意内部人员
- 系统漏洞
- 共享租赁漏洞
- 想要加入网络的用户和设备缺乏多重身份验证
Alexey 推荐了一些简单的规则,公司可以实施这些规则来保护他们的云系统:
- 使操作系统保持最新
- 保护您的网络
- 使用堡垒服务器访问您的封闭边界
- 配置网络安全组和访问控制列表
- 限制不必要端口的访问
- 尽可能配置监控和日志记录
- 为所有用户实施多因素访问控制
- 使用防火墙和 DDoS 保护
- 使用云工具检查是否符合安全标准,例如 Azure 安全中心
网络应用
Alexey 还权衡了困扰 Web 应用程序的软件安全问题。 通过利用这些漏洞,攻击者可以对应用程序和整个组织造成严重损害。 以下是由 Web 应用安全漏洞导致的最常见的 Web 应用攻击:
- SQL注入
- 跨站脚本
- 路径遍历
- 远程命令执行
如果网络犯罪分子成功发起这些攻击,他们就可以植入恶意软件、破坏用户帐户、访问受限信息等等。 那么,如何测试软件的漏洞呢? Alexey 建议进行 Web 应用程序安全测试以评估以下参数:
- 输入验证。 应用程序如何处理输入,它能否发现并阻止任何恶意条目?
- 服务器配置。 它是否使用强加密方法?
- 认证管理。 执行了哪些类型的授权? 用户可以选择弱密码吗?
- 授权选项。 应用程序可以保护自己免受特权升级吗?
- 商业逻辑。 用户可以插入无效数据吗? 他们可以跳过身份验证步骤吗? 用户是否有可能破坏应用程序及其数据的完整性?
移动应用
在谈到移动应用安全时,除了应用之外,我们不能忽视设备本身存在的安全漏洞类型。 我们的云和移动专家 Alexey Zhadov 还分享了影响移动应用的常见问题:
- 弱服务器端控制
- 不安全的数据存储
- 传输层保护不足
- 意外的数据泄露
- 授权和身份验证差
- 糟糕的密码学
- 客户端注入
- 不受信任的输入
- 会话处理不当
- 缺乏二进制保护
- 操作系统使用不当
- 不安全的流量和 API 调用
- 代码篡改和越狱设备
- 记录和监控不足
- 安全配置错误
为了保护移动应用程序,Alexey 推荐了一些公司可以在应用程序设计和维护中实施的简单做法:
开源代码评估:大多数移动应用程序都使用可供所有人使用的开源第三方库。 这简化了开发过程,但也为潜在的入侵者打开了后门。 因此,在将第三方代码整合到应用程序之前,必须严格测试第三方代码是否存在软件安全漏洞。
强大的加密实践:在传输过程中加密和解密数据。 借助强大的数据加密技术,应用程序数据(例如源代码、用户信息和登录凭据)将得到保护。 一旦数据被加密,即使黑客可以访问原始内容,他们也无法解释它。
代码签名证书:开发人员可以签署移动应用程序以保护他们免受网络攻击并获得用户信任。 这样的签名可确保在签署应用程序后代码未被解释或更改。 安全团队可以找到几个价格适中的代码签名证书选项。 这种做法既经济又可靠。
数据缓存保护:缓存数据包含从应用程序检索到的信息,以帮助更快地重新打开以提高应用程序的性能。 数据缓存通常在没有额外安全措施的情况下存储在用户设备上。 生成密码并锁定应用程序是一种更安全的做法。 此外,Alexey 建议您经常清除缓存数据并使用安全的网络连接登录。
安全数据存储:每个应用程序都包含入侵者可能滥用的数据。 它包括用户和应用程序开发人员的信息。 因此,必须将这些数据安全地存储在安全的云存储中,而不是依赖本地存储单元。
身份验证和授权技术:必须设置多因素身份验证以防止数据被盗。 它包括用户 ID、密码、PIN、OTP 等。授权应始终在服务器端进行,以验证经过身份验证的用户的角色和权限。
数据擦除和设备锁定:此功能主要用于包含机密数据的应用程序,例如个人、财务、健康信息等。它是一个安全层,在用户侧多次尝试登录失败后擦除远程数据,以及应用程序被自动锁定。 它还禁止用户为其密码选择序列号,而不是大写字母、特殊字符、字母、数字等。
逆向工程对抗:黑客使用逆向工程来篡改应用程序的功能。 通过访问应用程序的源代码,黑客可以绕过身份验证过程,伪造他们的位置并窃取数据。 执行运行时安全性对于抵制逆向工程至关重要。 它通过更改应用程序的代码结构来影响应用程序的行为,从而防止入侵者修改应用程序的内部功能。
物联网解决方案
从安全的角度来看,物联网解决方案的独特之处在于每个设备的功能都受到其使用要求的限制。 没有空间实施任何消耗额外容量、内存或电力的花哨的安全功能,这会使物联网设备容易受到攻击。
我们的物联网专家 Yahor Paloika 强调了连接设备中的以下安全漏洞类型:
- 硬编码凭据。 物联网设备带有硬编码的密码,管理员有时会忘记更改这些密码,从而使黑客有可能使用这些众所周知的凭据轻松侵入系统。
- 未受保护的网络。 一些网络不强制执行强身份验证,允许入侵者添加设备、重新配置设置以更改数据流、拦截数据并注入自己的数据以模仿传感器读数。
- 更新管理薄弱。 许多物联网设备独立工作,不依赖人工干预来执行更新。 在这种情况下,更新管理系统负责确保自动更新通过加密通道到达,源自经过验证的来源,并且没有损坏。 如果这样的系统薄弱,它将允许入侵者破坏更新的软件和固件,从而改变设备的行为。
- 过时的代码模块。 忘记删除不再使用的过时模块,可以让黑客有足够的时间来探索他们的软件安全问题并找到漏洞来渗透系统。 必须删除所有不属于连接设备功能的模块。
- 数据保护。 物联网网络内部流通的所有数据都必须加密,只有授权用户才能访问。
入侵物联网系统可能会产生毁灭性的影响。 例如,在一项实验中,一组研究人员可以侵入 Jeep Cherokee 中的物联网设备软件,并通过 Jeep 的娱乐系统发送恶意命令。 他们篡改了空调,降低了温度,打开了挡风玻璃,然后,令司机感到恐惧的是,他们禁用了刹车。 幸运的是,这只是一个实验。 以下是 Yahor 推荐的一些保护物联网系统的提示:
- 使用现有的安全密集型加密协议(例如传输层安全性 (TLS))来支持 IoT 网络中的通信并弥补内置安全性的不足
- 拥有现代化的集成密钥和证书管理子系统,提供所需的加密和安全级别。 此外,Yahor 建议至少每六个月更新一次密钥和证书
- 建立可靠的密码管理系统以生成强密码并系统地更改密码
- 实施更新管理系统,只允许来自合法来源的安全更新通过,阻止任何强制破坏更改的尝试
人工智能解决方案
有一个方面将人工智能 (AI) 和机器学习 (ML) 解决方案与本文中提到的其他系统显着区别——事实上,此类模型经常被训练来进行预测,而这个训练过程引入了几个安全漏洞的类型。 我们的人工智能专家 Maksym Bochok 强调了最受欢迎的弱点:
- 攻击者可以篡改训练数据集并强制模型学习虚假规则并做出错误预测
- ML 工程师可能会选择他们在网上找到的现有预训练模型,而这些模型可能已经是恶意的。 例如,它们可能包含木马病毒或其他恶意软件。
- 入侵者可以掌握算法本身并调整代码、权重和其他参数来修改模型的行为。
此外,人工智能通常与物联网和云等其他技术相结合,使其容易受到这些系统引入的安全漏洞类型的影响。
为了保护 AI 系统,我们的专家建议如下:
- 使用预训练模型和外部数据集时,验证它们不包含任何恶意软件
- 系统地测试您的算法以获得所需的输出,以确保没有人篡改匹配规则或引入偏差等。
- 监控数据漂移(输入数据的变化)
- 检测异常值,因为入侵者可以插入具有潜在危险的数据以使模型偏斜到所需的输出
- 在训练数据集中搜索任何可能的异常值
- 使用通用 AI 安全评估工具,例如 Counterfit。 这将有助于确保算法可靠且稳健。
- 受益于现有的数据保护工具,并在存储和使用时保护机密数据。 一个例子是可以用作外部防火墙的 Imperva 工具。
最后一点
如果您是一家成功的企业,那么很有可能有人已经/正试图侵入您的系统以索取赎金或造成声誉损害。 随着黑客不断寻找可利用的漏洞,您的 IT 团队正在努力降低风险。 为确保您赢得这场比赛,请咨询经验丰富的安全和测试公司,该公司将帮助您评估系统状态并就如何改进提出建议。
同时,为防止不同类型的安全漏洞暴露您的应用程序,请注意您的系统配置,确保您的所有软件都是最新的,并对您的员工进行安全实践培训。
对现有系统的安全性有疑问? 或者想构建一个考虑到安全性的应用程序? 给 ITRex 团队下线! 我们的安全专家将测试您的硬件和软件是否存在漏洞并提出改进建议。
最初于 2022 年 7 月 6 日在 https://itrexgroup.com 上发布。
