SQL 注入:它仍然是一种威胁吗? 你怎么能避免它?

已发表: 2020-03-07

数据泄露如此普遍,以至于它们不再令人惊讶。 恶意行为者旨在收集尽可能多的数据。 它们是在登录凭据、信用卡信息或商业机密之后。 一旦他们掌握了这些数据,他们就会在暗网上出售这些数据。

如果你无法掌握他们到目前为止窃取了多少数据,以及他们在暗网上倾倒了多少数据,那么这是一个令人担忧的数字。 去年,仅 16 个被黑网站,犯罪分子就窃取并出售了 6.2 亿个账户。 是的,入侵 16 个网站会造成如此巨大的损失。 但你知道更糟糕的是什么吗? 每天都有数以千计的新网站被黑!

网络犯罪分子每天都会想出新的黑客攻击方法。 但这并不意味着他们会忘记旧的技术,例如 SQL 注入。 它们仍然是最常见的攻击媒介之一,易于执行并产生丰硕的成果。

目录显示
  • 什么是 SQL 注入,为什么它很危险?
  • SQL 注入是如何工作的?
    • 带内 SQL 注入
    • 盲注 SQL
    • 带外 SQL 注入
  • 这种威胁仍然相关吗?
  • 预防的安全提示
  • 最后的话

什么是 SQL 注入,为什么它很危险?

SQL 编程语言

SQL Injection,也称为 SQLi,是一种注入攻击形式,它使黑客能够执行 SQL 语句。 注入攻击是一大类不同的攻击向量。 但它们都允许恶意行为者执行危险的输入。 它们充当系统命令,然后执行。

SQL 语句最常用于从各种数据库中添加或检索数据。 许多著名的管理系统,如 Microsoft SQL Server、Access 和 Oracle 都使用这些语句。

由于许多广泛使用的数据库管理系统都使用 SQL 语句,因此黑客可以通过 SQL 注入来利用这些系统。 这意味着犯罪分子可以访问和窃取存储在数据库中的敏感数据。 它可以包括以下内容:

  • 知识产权。
  • 信用卡信息。
  • 客户资料。
  • 地址。
  • 公司机密。
SQL 注入会导致敏感数据被盗。 它可能对任何企业、政府或组织造成毁灭性的后果。 此类事件可能会损害公司的运营、声誉,并可能导致数据保护监管机构处以巨额罚款。
 为您推荐: Chrome 与 Firefox:性能、安全性和隐私比较!

SQL 注入是如何工作的?

数据库-模式-数据-表-rdbms-关系-基数-sql-mysql

要执行 SQL 注入攻击,黑客必须在网站或公司内部应用程序中定位易受攻击的用户输入。

例如,受害者在他们的网站上使用 WordPress。 该代码可能存在一个 SQL 漏洞,该漏洞将用户输入直接发送到数据库而无需进行任何清理。 如果黑客找到该漏洞,他们可以向相关数据库发送命令。 然后,数据库输出返回浏览器,使黑客能够执行不同的命令。 这样,他们可以下载整个数据库、设置新命令、修改用户帐户或创建新帐户。

SQL 注入攻击的三种主要形式:

  • 带内 SQL 注入:
    • 基于错误的 SQL 注入。
    • 基于联合的 SQL 注入。
  • SQL盲注:
    • 布尔值。
    • 基于时间。
  • 带外 SQL 注入。

带内 SQL 注入

带内 SQL 注入是最常见的类型之一,因为它简单高效。 在这里,攻击者使用相同的通信通道来执行攻击并收集结果。 它有两个子变体——基于错误和基于联合的 SQL 注入:

  • 基于错误的 SQL 注入允许黑客使数据库产生错误消息。 然后,他们可以使用这些错误消息来收集有关数据库本身的信息。
  • 基于联合的 SQL 注入使罪魁祸首能够利用 UNION SQL 运算符。 它结合数据库提供的不同语句来获得一个 HTTP 响应。 这样的响应通常包含黑客可以利用的数据。

盲注 SQL

SQL 盲注依赖于服务器的行为模式。 它们执行起来要慢得多。 黑客发出数据有效载荷并检查服务器的响应以分析其结构。 他们称之为“盲目”,因为数据不会直接发送给黑客。 因此,他们无法看到有关带内漏洞利用的任何信息。 它有两种变体,即布尔型和基于时间的:

  • 布尔变量允许黑客发送 SQL 查询,提示数据库返回信息。 HTTP 响应中的信息会根据先前的结果而变化。
  • 基于时间的变化使恶意行为者能够直接向数据库发送 SQL 查询,这会迫使数据库在做出反应之前等待。 攻击者注意到数据库响应所需的时间并决定查询是真还是假。 根据结果​​,HTTP 响应是即时的或延迟的。

带外 SQL 注入

只有在数据库服务器上启用了特定功能时,带外 SQL 注入才允许黑客攻击数据库。 它是最不流行的 SQL 注入方法。 许多黑客将其用作基于错误和盲 SQL 注入的替代品。

当黑客无法使用相同的媒介来执行攻击和收集信息时,这种特殊的攻击是一种选择。 或者,当服务器不稳定且执行其他两种注入类型缓慢时,他们可以使用此注入。 该技术创建 DNS 和 HTTP 请求以转发被盗数据。

 您可能会喜欢:小型企业的网络安全风险评估和管理技巧。

这种威胁仍然相关吗?

网络安全保护隐私加密安全密码防火墙访问

SQL 注入是最古老的攻击性网络攻击形式之一。 然而,它仍然非常相关。 两年前,开放 Web 应用程序安全项目将 SQL 注入列为第一大威胁。 云服务提供商 Akamai 创建了一份互联网状况报告,该报告发现 SQL 注入占 2017 年至 2019 年所有基于 Web 的攻击的 65%。因此可以说 SQL 注入仍然出现在三分之二的 Web 攻击中最近几年。

在 2017 年第一季度,这些向量造成了 44% 的应用层攻击。 更糟糕的是,没有其他形式的应用程序攻击向量增长得像 SQL 注入一样快。 2018 年 11 月,又出现了一次大幅飙升。 它表明有超过 3500 万次 SQL 注入攻击尝试。 专家认为,这一高峰的主要原因是假期。 这是所有网站所有者都应该注意的事情 - 特别是如果他们从事零售行业。 但即使在假期结束后,SQL 注入仍然是您需要注意的威胁。

美国是应用层攻击的首要目标。 它在短短 17 个月内就面临了大约 30 亿次攻击。 其他受欢迎的受害者包括英国、德国、巴西、印度、日本、加拿大、澳大利亚、意大利和荷兰。 因此,可以安全地假设它仍然是一个巨大的威胁,所有公司都应该采取广泛的预防措施。

预防的安全提示

开发人员的最佳行动方案是引入预防措施以防止攻击发生。 这些是最有效的预防措施:

  • 输入验证:输入验证验证是否允许任何特定的用户输入。 这意味着必须共同接受格式、长度和类型。 这有助于对抗黑客在输入字符串中植入的命令。
  • 参数化查询:参数化查询是一种预编译不同 SQL 语句的方法。 然后它存储参数,以便可以执行语句。 它使数据库能够识别代码并将其与常规输入数据区分开来。
  • 存储过程:他们需要开发人员将一个或多个 SQL 语句聚集成一个逻辑单元。 顾名思义,它是一种可以存储并保存以备后用的代码形式。
  • 转义:开发人员应使用字符转义功能来确保 DBMS 不会将用户输入与 SQL 语句混淆。
  • Web 应用防火墙:它是防止 SQL 注入攻击的最安全的方法之一。 防火墙监控流入和流出服务器的流量。 它识别哪些请求可能有害,哪些不是。 这个解决方案对于许多其他漏洞利用已经足够了,所以它总是不错的。
  • 避免管理权限:开发人员不应该通过具有 root 访问权限的帐户将他们的应用程序连接到数据库。 否则,黑客可能会访问整个系统并造成无法弥补的损失。 此外,开发人员应确保每个数据库都有自己的一组有限的凭据。
 您可能还喜欢:十大畅销网络安全软件(防病毒和安全)。

最后的话

黑客攻击掩码网络犯罪病毒数据安全

任何关心 SQL 注入的人也不应该忘记其他可能的攻击。 通常的网络安全实践适用:使用强大的密码,学会识别威胁,在连接到网站或数据库时打开 VPN,等等。 什么是 VPN,它有什么作用? 它会在您上网时加密您的在线流量。 因此,如果您向数据库发送 SQL 请求,则只有数据库可以解密它。 如果有人截获有问题的数据包,他们将无法理解它们。 您或您的公司对各种威胁的准备越充分越好。

只有引入全面的预防措施才能确保 SQL 注入或攻击永远不会成功。 准备好投入大量时间、精力和金钱,以确保您拥有适当的工具来对抗各种攻击。