• QQ空间
  • 回复
  • 收藏

什么是SQL注入攻击?学习如何保护和识别攻击

东方头条 2019-12-09 17:23:00 财经

SQL注入 - 或SQLI是一种网络安全攻击,它针对应用程序安全漏洞并允许攻击者控制应用程序的数据库。攻击者将恶意输入输入到SQL语句中,SQL服务器将其作为编程代码读取。某些SQLI攻击可以释放敏感客户数据列表,而其他SQLI攻击则删除部分(或全部)数据库。有些甚至可以远程运行软件应用程序。SQL注入攻击相对容易和普遍。防止和检测SQLI攻击是安全问题的必要方面。

一、如何防止SQL注入

参数化SQL代码:这创建了一种 保存用户输入的存储区域。如果输入与参数的类型不匹配,则忽略它。此技术可防止用户与数据库之间的直接访问。由于用户无法直接发出命令,因此无法注入恶意SQL代码。

使用对象关系映射: ORM库是用于在编程语言之间进行转换的工具。这可能需要开发人员的帮助,但它会创建一个运行特定SQL查询的虚拟对象系统。与上一步一样,这会删除用户直接查询SQL Server的能力。

限制用户权限: 这是所有IT和服务器管理中的最佳实践。它尤其适用于防止SQLI攻击。只需将用户限制为他们所需的最低权限 - 具有读写执行权限的帐户越少,利用的机会就越少。

第三方软件: Web应用程序防火墙软件可以筛选SQL输入。有许多第三方安全工具可用。如果您没有编程技能(或开发人员团队),请考虑使用软件来筛选SQL输入。

二、SQLI注入攻击如何工作?

要了解SQLI攻击,理解SQL查询会很有帮助。网页上的SQL查询有两层。第一个是用户输入,如用户名和密码字段。第二个是隐藏的编程代码针对数据库创建SQL查询的位置。SQL注入攻击是指攻击者将SQL代码放入专为常规输入设计的框中。这欺骗了一个不受保护的系统,将字符串作为编程代码运行。

三、如何检测SQL注入攻击

大多数专家都认为,最好的解决方案是在入侵发生之前防止入侵。这可以通过升级安全性以及漏洞扫描和渗透测试来完成。考虑使用第三方服务检查您的网站是否存在已知缺陷。

SQLI攻击通常看起来像标准数据库错误。如果没有特殊工具,它们很难实时检测到。SQLI攻击通常涉及反复试验。有时,蠕虫(或机器人)反复探测您的网站是否存在缺陷。有时,人类黑客会将SQL代码输入您的网站。这些攻击并不总是需要登录,使得检测更加困难。

在SQLI攻击正在进行时检测它需要额外的配置或第三方工具。一种方法是检查sqlserver.error_reported事件是否存在特定错误。频繁失败的登录和错误的语法错误可能表示重复入侵尝试。或者,可以在数据库中搜索常见的HTML标记,例如“ iframe ”或“ http-equiv =”refresh。“

识别SQLI攻击的第二种方法涉及流量分析。这需要第三方监控工具。随着时间的推移,监视器将建立标准行为的基线。如果存在可疑更改(如权限更改),则监视器可以触发警报。

审计软件可以在违规后提供帮助。这些工具检查错误日志,查找已完成的损坏。此数据可用于提高安全性并防止下一次攻击。

通常,这些工具监控:

重复登录失败 - 这些可以指示试错,以绕过SQL安全性。

密码更改 - 意外的密码更改可能表示黑客获得了对用户的访问权限。

权限和所有权更改 - 以这种方式修改的文件可以证明黑客进行了更改以授予自己访问权限。

登录,注销,数据库操作 - 虽然本质上不是入侵的迹象,但不寻常或意外的帐户活动可能表示存在违规行为。

SQL注入攻击不需要很多技能就可以造成巨大的破坏。任何拥有计算机的人都可以查找SQL漏洞并在服务器上运行它,使其成为诱人的攻击媒介。幸运的是,他们防守相对简单。

锁定SQL服务器以防止注入攻击是重要的一步。防止攻击比从备份恢复要容易得多。(或者通知客户端安全漏洞列表。)花点时间评估您的SQL代码。

开放式Web应用程序安全项目(OWASP)维护着一个很好的资源列表和备忘单,用于保护您的SQL服务器。