Web数据库开发和管理中的安全概念 (回顾的角度)外文翻译资料

 2022-04-13 08:04

英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料


Web数据库开发和管理中的安全概念 (回顾的角度)

摘要 - 现在,几乎所有的Web应用程序都是由数据库驱动的。在线移动数据的企业数量每天都在增加,从而允许用户在全球范围内交互和操纵数据。随着越来越多的Web应用程序的开发,越来越多的Web数据库安全威胁出现。虽然网络应用程序开发人员的技能越来越先进,但仍然存在漏洞,因为开发人员在开发应用程序中执行安全性时花费较少,主要原因在于缺乏安全激励措施,时间紧迫以及Web应用程序安全测试培训缺陷。本文介绍了适用于Web应用程序的20种数据库安全威胁。研究可能采取的控制措施以消除此类攻击,以提高网络应用程序开发人员和公众的认识。该工作认为开发人员应该努力在开发应用程序时实施所有必要的安全措施。此外,从事安全测试培训是所有开发人员必须参加的。这项工作的结论是,尽管保持足够的安全性,管理员应该设法保持其在线数据库应用程序的不间断备份。

关键词-Web数据库安全; 安全要求; 安全威胁

  1. 介绍

数据库是相关数据的集合。 该数据存储在计算机系统的物理硬盘中。 数据库管理系统是创建,维护和控制数据库访问的软件。 数据库可以是传统的或基于网络的。 数据库授予任何授权用户快速,轻松地登录和分析数据的权限[1]。 Web开发涉及三个IT专业; Web设计师做演示,软件工程师做逻辑,DB管理员做数据模型。 现在几乎所有的Web应用程序都是由数据库驱动的。 Web开发涉及前端和后端开发。 Web应用程序开发的这两部分构成Web数据库应用程序的四个层或组件,如下所述:

浏览器层:

浏览器层被认为是Web数据库应用程序客户端。 该层执行两个主要功能。 首先,它负责应用程序的布局并显示HTML(超文本标记语言)文档,并使用CSS(层叠样式表)构建此图层的外观。 其次,Java,JavaScript和ActiveX等客户端扩展功能也由浏览器层处理和执行。

应用程序逻辑层:

开发人员大部分时间都花在这一层上。 它处理查询(如SQL语句)数据的集合,通过数据库连接层准备查询并将其发送到数据库,从连接层中检索结果并格式化数据以供显示,以便提及一些。 这也可以称为业务逻辑。 它处理业务规则和功能。 逻辑层的不同安全责任取决于用于数据库应用程序的实现方法。

数据库连接层:

该层将数据库链接到Web服务器。 如今,人工数据库连接的艰巨任务已成为一种老式的方式; 许多Web数据库工具都提供了数据库连接选择,这简化了连接过程。 这将连接应用程序逻辑层和DBMS。

数据库层:

这是数据库本身所在的层。这是最需要提供安全措施的地方,这是本研究的目的。数据库安全性是使用广泛的数据安全控制来保护数据库免受机密性,完整性和可用性的攻击。技术,管理和物理控制是在Web数据库中引导的不同类型的安全性。数据库中的不同安全层包括:数据库管理员,系统管理员,安全官员,开发人员和雇主。不同的安全威胁可以对这些层面提出。采用三层客户机 - 服务器体系结构来满足复杂分布式/ Web数据库应用程序的发展要求。第一层是包含用户界面的客户端,第二层包含提供应用程序逻辑和数据处理功能的应用服务器,第三层称为数据库本身,可以作为一个单独的服务器运行,称为数据库服务器。在三层架构中,每个架构都可能运行不同的平台。

保持完整性和安全性是一项重大挑战。这里主要的研究兴趣是安全挑战。保证和管理数据库的能力是必需的。因此,需要了解各种安全威胁,才能找到最佳的解决方案来阻止攻击。 Web数据库的开发和管理面临着很多安全风险。由于以下原因,这些漏洞依然盛行:

对日志文件和数据库事务的监视不足

无法旋转用户帐户凭据。 

未能审查访问策略和实践。 

开发者习惯向应用程序添加更多功能,这会导致编写更多代码,从而导致无限的错误消息,从而使Web应用程序更容易受到攻击。 

开发人员无法获得安全测试培训。 

缺乏来自组织的安全激励。 

缺乏解决组织软件需求的规定程序。 

在软件开发生命周期中没有正确的握手。 

由于成本和可访问性,使用低端互联网安全。 

政府对数据窃取和使用的政策不足。

  1. 文献评论

相关工作

[5]中的工作检查了九个漏洞,其中包括SQL注入; OS命令注入,未经检查的路径参数/目录遍历,会话管理不当,跨站点脚本,跨站点请求伪造(CSRF),http头部注入,邮件头注入,缺少身份验证和授权。作者还强调了每个漏洞可能造成的威胁,哪些类型的网站可能最脆弱,以及可能的基本解决方案和缓解措施。信息技术促进机构(IPA)提供的这一措施证明,自2005年开始接收该报告以来,已向该机构报告了超过6,500个网站漏洞。最常见的漏洞是SQL注入漏洞。本研究建议,为妥善维护网站的安全性,需要对网站的每个组成部分采取适当的安全措施。对于操作系统或软件,应该有足够的安全模式和配置。最重要的是,如本书所述,最好的解决方案是在开发Web应用程序/数据库时尽量不要造成安全漏洞[6]。 [7]中的工作审查了不同的数据库安全攻击和控制方法。审查了以下攻击:滥用权限滥用,SQL注入器,恶意软件(恶意主机),弱审计试验(无法检测),备份暴露(通常不受保护的媒体),弱认证(暴力破解,证书被盗),数据库漏洞和配置错误,非托管敏感数据,拒绝服务,有限安全。还讨论了针对上述攻击的对策措施。虽然没有提到一些应用于Web数据库的安全措施。另外安全数据库管理系统比仅保密数据库更为重要,特别是现在在其后端数据库的Web应用程序快速增长的情况下。作者提供了数据库管理系统中数据库保护,漏洞和威胁方面近期趋势的概述

NoSQL数据库也容易受到攻击。本文讨论了攻击NoSQL数据库的技术。在分析了这些漏洞的来源之后,作者提出了对NoSQL数据库攻击的可能缓解措施。作者讨论了缓解NoSQL数据库攻击的方法,例如PHP数组注入攻击,MongoDIS或注入,任意JavaScript注入[8]。 NoSQL(不仅是SQL)是现代数据存储领域的热门词汇。这些是依赖于不同存储机制的非关系数据库,如文档存储,键值存储,图形等。 Facebook,亚马逊,Twitter作为现代大规模应用的新需求需要NoSQL数据库[9]。在[10]中的工作中,OK ma等人的观察被扩展了。作者描述了CSRL漏洞,并且还讨论了[11]中为减轻NoSQL攻击风险所需采取的措施。该工作从众所周知的JSON表示格式回顾了注入攻击。这是没有经验的MongoDIS,它是由E-Bay,foursquare,LinkedIn等多家大型供应商使用的面向文档的数据库众所周知的数据库.MonthDB [11],Redis [37]和Cassandra等NoSQL数据库的引入使SQL注入攻击无关紧要,因为数据库使用不同的查询语言[12]。

[13]中的工作描述了不同的数据库安全问题以及减轻这些问题的最佳方式。 基于自主访问控制,强制访问控制和基于角色的访问控制来实现多级安全,对不同类型的安全进行了审查。 此外,电子商务和网络访问控制政策在这项研究中也没有落后。 [14]中的工作提出了使用授予标准和角色的SQL安全措施。 审计跟踪及其实施进行了讨论。 讨论了一些安全措施,例如授权,加密,挑战反应,数字签名。

[15]中的工作讨论了Web应用程序攻击的常见类型,它们的常见原因和预防措施。讨论的攻击包括:假冒,篡改,拒绝,信息泄露,拒绝服务(DOS)和特权提升。 [16]中的工作主要集中在如何最好地保护Web数据库和服务;以及提供开发安全语义网的指示。这项研究提供了关于网络数据库,网络数据库的服务,安全和隐私的一些背景信息,以及关于开发安全语义网络的一些问题 - 这是关于确保网页可以被机器读取和理解的。在[17]中,不同的安全威胁包括密码猜测/暴力破解,密码和在网络上嗅探的数据,利用错误配置,交付特洛伊木马,利用已知/未知漏洞,窃取磁盘和备份,安装rookit / backdoor,更新的病毒和恶意软件安全,网络钓鱼和目标攻击,内部攻击,物理安全,纸质文档和社会工程的不当破坏。此外,还提供了可能的解决方案)。

3. Web数据库中的安全威胁和对策措施

A. 概念角度

基于Internet的数据库非常容易受到各种攻击。 Web数据库的安全性由Web主机和开发人员双方共同推出。 这两方应提供适当的安全措施以防止网络攻击。 本研究考察了Web服务器和Web应用程序后端设计(数据库)中的不同安全问题以及强制解决方案的最佳方法。 通过互联网进行的数据传输是开放的,技术娴熟的人可以拦截通信。 如果没有采取适当的措施,最终互联网应用程序将非常容易受到攻击,这将给恶意用户留下利用Web数据库的空间。

以下是Web数据库和管理中的一般安全问题。

一 .机密性:客户端和服务器之间的数据传输不应由除发送者和预期接收者之外的任何人访问,他们应该被认证。

二. 完整性:传输过程中不能更改数据。

三. 可用性:数据必须提供给授权用户。

四. 非制作:发送者可以确定接收者是真正意图的接收者。

五. 不可否认:发件人不能否认他/她发送。 这就是说审计特征将被执行。

六. 传输必须完全没有恶意数据/信息。 各种网络数据库威胁在这里审查。

七. 应该在Web服务器上的HTACESS文件中规定适当的非公开访问文件夹的配置

B. SQL注入攻击

Web数据库设计是使用SQL语句构建的,并且这通常由用户通过在用户界面文本输入中输入的输入来访问。 SQL注入是从用户输入中输入恶意SQL语句以获得对数据库的未授权访问。 SQL注入攻击是用伪造的请求操纵数据库。 易受SQL注入攻击的Web数据库应用程序可能允许恶意攻击:

- 查看存储在数据库中的敏感数据

- 修改数据库中存储的数据

- 删除数据库中的数据存储

- 绕过登录身份验证

SQL注入攻击是最流行的Web数据库漏洞。 研究表明,许多知名网站都受到SQL注入的攻击。 英特尔于2010年11月在2009年12月受到攻击,英国皇家海军于2010年1月遭到袭击,美军遭到攻击[18],第一次SQL注入攻击在1998年圣诞节Phrack杂志上出现[19],据信 成为SQL注入的第一个出版物,到目前为止,已经有几个SQL注入的例子。 SQL注入的瓶颈可归因于Web数据库应用程序的异构性。 数据库业务逻辑是使用SQL语句构建的,并将结果解析并包装在HTML标记中以呈现给客户端。 为了使应用程序用户友好,UI(用户界面)必须接受输入,如果不采取适当的措施,这会使应用程序容易受到SQL注入攻击。

C. 如何防止SQL注入

以下是突出显示的防止SQL注入的方法,即:输入验证和数据库转义/引用指示输入中可以和不可以有什么。 使用正则表达式或html实体从输入中去除HTML标记。

1.有限的数据库权限

将您的SQL数据库设置为只读。

如果数据库设置为只读,则不能使用恶意语句修改数据库。 恶意声明,如#39;; DROP TABLE用户; #永远不会执行。 

2.配置错误报告

通过正确配置服务器的错误报告,您可以限制攻击者从每次尝试中收到的信息量,因为每发送一条错误消息给用户,攻击者就越接近访问他们想要的数据。将错误消息内部化,攻击者将永远不会得到任何所需的反馈,以继续黑客攻击。

3.使用参数化查询

参数化查询是一种查询,其中占位符用于参数,参数值在执行时提供。使用参数化查询的最重要原因是为了避免SQL注入攻击。防止SQL注入攻击的最佳方法是将查询的逻辑与用户输入分开执行。这种方法的不足之处在于,它可以稍微影响性能,并且网站上的每个查询都必须使用此方法进行结构化,以便在一个查询被无意中绕过时完全有效,这可能足以让应用程序易受SQL注入攻击。 

4.使用存储过程。存储过程是在DBMS中实现的编程语言过程。它们被程序存储在数据库服务器中。存储过程可以防止SQL注入攻击。存储过程加速数据库服务器并将记录返回到网页,但对于大型应用程序,解析过程会降低应用程序的速度。

5.准备语句。准备语句将数据从SQL命令中分离出来。使用预准备语句的Web数据库应用程序具有性能优势,因为代码已编译,解析并在以后使用。下一次,该语句被调用,数据库服务器只需要运行它。 

6.标签格式化和剥离

通过使用Strip-tags,Strip-Slashes和real-escape-string,正确实施客户端脚本和服务器脚本,SQL注入攻击可以降至最低水平。 

7.使用更新的数据库管理软件

由于来自用户的连续SQL注入攻击,许多数据库供应商已经开发出更先进,更少的API环绕数据库引擎,如MYSQLI和PDO。

D.滥用特权

当用户(或应用程序)被授予超出其工作职能要求的数据库特权时,这些特权可能会被滥用于恶意目的。 例如,一个大学管理员的特权只需要改变学生的生物数据就可以利用过度的数据库更新权限来改变成绩。 大多数数据库设计人员和Web开发人员由于缺乏对正在构建的应用程序的影响的知识或懒惰向适当的用户授予适当的特权而授予所有特权(过度特权)。 大多数Web应用程序开发人员和数据库设计人员在将Web应用程序部署到其客户端时面临时间限制; 因此他们不会花时间向适当的用户授予适当的特权。 这种过度的特权给予员工或前雇主空间来攻击数据库。

E.防止滥用特权

滥用可以通过仔细授予基于特定对象的有限特权来避免滥用特权。 授予所有权限应完全避免。 特权还应限于特定的SQL数据语句 - SELECT,INSERT,

全文共6310字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[14026],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。