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

已发表: 2020-03-07

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

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

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

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

什么是 SQL 注入及其危险性?

SQL编程语言

SQL 注入,也称为 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 注入是最古老的攻击性网络攻击形式之一。 然而它仍然非常相关。 两年前,Open Web Application Security Project 将 SQL 注入列为头号威胁。 云服务提供商 Akamai 创建了一份互联网现状报告,该报告发现,从 2017 年到 2019 年,SQL 注入占所有基于 Web 的攻击的 65%。因此可以说,SQL 注入仍然出现在三分之二的 Web 攻击中最近几年。

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

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

预防安全提示

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

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

最后的话

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

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

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