数据库安全是企业互联网安全的最基本条件,数据库安全一旦难以保障,那么企业敏感信息就面临着泄漏的危机。不仅可能危害企业的正常运作,更严重的情况可能会丢失客户对企业的信任。其实不少数据库漏洞都是由于管理员的一些不良习惯导致的。
下面是最常见的五个与数据库相关的安全漏洞:
·不良的口令政策
·SQL注入
·交叉站点脚本
·数据泄漏
·不适当的错误处理
令人难以置信的是,企业仍经常使用默认的或者软弱的口令来保护像数据库一样重要的在线资产。但是,这是一个很容易解决的问题。补救措施是强制执行强大的口令政策。也就是说,口令要定期变换,口令长度最少为10位数并且包含字母和符号。采用这种政策,你将关闭攻击者同向你的数据的方便之门。
SQL注入也依靠软弱的数据库实施,特别是在如何向数据库发送SQL请求方面的实施。如果这个数据库接受了用户提供的不干净的或者没有经过验证的数据产生的SQL请求,这就会为SQL注入攻击敞开大门。例如,通过修改从基于网络的格式受到的信息,攻击者能够提供恶意的SQL请求并且把指令直接发送到数据库。
要防止这种类型的攻击,在让这些数据接近你的脚本、数据访问程序和SQL查询之前,保证所有用户提供的数据是合法的是非常重要的。验证和清洁从用户那里收到的数据的另一个理由是防止交叉站点脚本攻击。这种攻击能够用来攻破连接到一个Web服务器的数据库。黑客通过一个网络蠕虫把JavaScript等客户方面的脚本注入到一个网络应用程序的输出中。这些脚本用于收集cookie数据。这些数据经常被错误地用来存储用户账户登录信息等资料。
一个经常被忽略的问题是什么时候建立一个数据库应用程序是泄漏数据。这是敏感的数据要发送的地方或者是非故意踢敏感数据的地方。这个错误将导致不能保证访问数据库备份磁带的安全和控制这种访问。通常,更敏感的数据产生于有关数据的合法查询的答案,就像从医疗处方判断疾病一样。常用的解决方案是监视查询方式以检测这种行动。
与数据泄漏密切相关的是在数据库出现错误时不适当地处理这些错误。许多应用程序显示了详细的信息。这些错误信息能够泄漏有关数据库结构的信息。这些信息能够用来实施攻击。要尽一切手段把这个错误登记在你自己的记录中,保证你的应用程序不向用户或者攻击者返回任何有关这个错误的详细信息。
要完全保证你的数据库的安全,你要把这个任务分为以下四个方面以确保进行全面的检查:
·服务器安全
·应用程序安全
·数据库连接
·数据库和表格访问控制
数据库服务器需要与其它任何服务器一样加强以保证任何恶意黑客都不能通过操作系统的安全漏洞攻击数据库。更适宜的方法是数据库应该位于其自己的应用层防火墙之后。
要帮助保证数据库连接的安全的过程和定义访问控制,你应该创建一个数据流动图表,跟踪数据如何流过应用程序的过程。接下来,找到数据进入或者退出另一个应用程序的地方,并且检查为这些进入点和退出点分配的信赖等级。还要定义需要访问这个系统的外部用户或者处理要求的最低权限。把安全作为关键的推动因素来设置和建立你的数据库将保证你的数据库处于安全状态。
【编辑推荐】