数据库作为信息系统的核心,不仅承载着海量的关键数据,还负责向各类用户提供高效、可靠的信息服务,数据库的安全性显得尤为关键,已成为信息安全体系的重中之重。
什么是数据库安全?
数据库安全是数据安全的一个子集,由可以保护数据库免受恶意攻击的安全控制、工具和策略组成。数据库安全是一项复杂的任务,它包括对数据本身、管理数据的数据库管理系统以及使用数据的应用程序等等的保护。最终目标是保护企业或组织的信息的机密性、完整性、可用性(CIA)和可审查性等。
数据库面临哪些风险?
基于互联网的攻击、软件配置错误、漏洞、粗心或误用模式都可能导致数据库安全风险,以下是企业和组织常见的安全风险:
数据库面对哪些监管要求?
当这些风险发生时,给企业带来的处除了经济损失、品牌声誉受损等等之外,还会面临监管处罚。国家监管部门为数据安全和数据库安全制定相关的法律、法规和标准,并负责统筹协调网络数据安全和相关监管工作。
与之紧密相关的法律框架可简单概况为“三法两条例”:包括《网络安全法》、《数据安全法》、《个人信息保护法》和《关键信息基础设施安全保护条例》、《网络数据安全管理条例》,除此之外,还包括密码相关的法律法规和标准。
国家相关部门通过制定统一的管理和测评规范,为企业的安全合规提供指引和保障,主要可以概况为“三保一评”,分别是等保、关保、分保和密评。YashanDB按照国家各项标准的要求实现数据库安全功能,对客户的等保、关保和密评提供有效的支持。
数据库安全架构包括哪些?
用户数据存储在数据库中,处于数据安全被保护的核心,根据纵深防御的思想,应该以数据库为中心,应设置分层保护、多重验证、多重检测等技术措施,以增加攻击的复杂性和成本,从而降低被攻击成功的概率。
YashanDB的安全机制总体上可以分三个层次,包括:访问管理、威胁检测和数据保护。
访问管理采用良好的身份认证、访问控制和反入侵等措施;
威胁检测由统一安全审计和漏洞扫描构成;
数据保护通过加密、密钥管理、安全销毁和备份恢复实现。
(一)访问管理
身份认证
身份认证是对登录数据库的用户的身份鉴别。身份认证的机制包括:口令认证、操作系统认证、双因素认证。
1、口令认证:
1)存储在数据库表中的密码字段:这是在创建或修改用户时所设置的密码,这类密码与用户信息一同记录。
2)存储在数据库服务器上的密码文件:为系统用户SYS所设置的密码,这类密码脱离于数据库表,可满足数据库处于非open状态时的登录认证。
为了保障密码安全,启用密码强度控制,在密码设置时要求满足一定的复杂度要求。
为了保障用户口令的安全,YashanDB采用如下的安全策略:
1)启用密码强度控制,在用户设置口令时要求满足一定的复杂度。同时在服务端存储凭证时,采用加盐等安全策略,可有效避免各种恶意攻击。
2)在口令认证的过程中,采用有效的密码策略,对用户的登录行为和属性进行判断并作出相应的动作,包括:
a.为防止恶意攻击者反复登录尝试猜出密码,当用户因为密码错误连续登录失败达到阈值时,将被锁定一定时间。
b.用户长时间使用同一密码会影响数据库安全,因此系统对于密码的生命长度进行限制。
c.系统在用户登录过程中发现密码已使用超过限制天数时,将进行额外宽限期处理,并打印告警日志提示。宽限期过后,该密码完全过期,客户端提示用户输入新密码,用户可以立即更新密码。
d.为防止用户长时间使用相同密码,用户在设置新密码时还需要满足密码复用限制,不允许复用一定时间内使用过的密码以及最近变更次数内使用过的密码。
2、操作系统认证:
操作系统认证指的是,当用户属于操作系统的YASDBA用户组,从本地登录(UDS)时可免密登入,它的优点是避免在使用过程中多次连续输入口令,方便管理员的操作。更为重要的是,可以避免在一些执行脚本中暴露管理员的口令。
3、双因素认证
YashanDB根据国家标准GB/T 15843《实体鉴别》第2部分和第3部分的要求,通过智能密码钥匙对管理员进行双因素认证。
安全管理员使用数据库自带的工具进行初始化,并创建个人证书,然后安装个人证书到数据库服务端的配置目录下。
当数据库管理员登录时,除了输入口令外,还需要通过智能密码钥匙对鉴别信息进行签名。对于服务器既要验证口令,还需要通过个人证书进行签名的验签,只有两者同时验证通过了,登录才能成功。
访问控制
访问控制是一种确保数据处理系统的资源只能由经授权实体以授权方式进行访问的手段。常见的访问控制的模型,包括自主访问控制DAC、基于角色的访问控制RBAC、基于属性的访问控制ABAC等等。YashanDB实现了基于角色的访问控制(RBAC)和基于标签的访问控制(LBAC)。
1.RBAC
YashanDB定了如下的特权和角色:
三权分立是对数据库管理人员的职责划分,目的是使不同的管理职位各司其职,行使不同角色,互相限制和监督,保障系统整体安全。三种管理员权限应该互相独立,包括:
1)安全管理员,只具备管理角色(Role)或用户(User)以及为其他账号授予权限的权限
2)审计管理员用户,拥有AUDITADMIN能力,即审计策略和审计日志管理权限
3)数据库管理员,只具备DDL等权限等
2.LBAC
LBAC是强制访问控制的一种实现,在GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》和《数据库管理系统安全技术要求》中对强制访问控制有着明确要求。
主要的强制访问控制模型是BLP模型,该模型实现了信息的单向流通,即信息只能从低安全等级向高安全等级流通。
YashanDB实现了LBAC强制访问控制,强制访问控制是根据用户的安全标签以及数据的敏感性标签来控制数据访问。标签安全在自主访问控制之外增加了一层保护。
在表中添加一个标签(label)列,当在新建、插入和修改数据表时,同时在该列中写入对应的标签(label)值,代表当前行数据的敏感值。同时对于每个用户设置一个标签(label)值,代表用户的敏感属性。当用户访问数据库时,通过比较用户的 Label 和数据的 Label值,达到约束主体(用户)对客体(表中的数据)访问的目的,实现了基于LBAC策略对数据库中的表提供行级安全控制功能。
LBAC由策略、组件、标签构成。策略是一种预定义标记组件,由等级(level)、范围(compartment)和组(group)构成,从3个不同的维度对数据进行描述,其中等级在策略中是必须存在的,范围和组可以缺省。
YashanDB安全管理员可以创建安全策略、定义策略中的 Label、设置用户关联策络的读写label信息。一个安全策略可以应用到多张表上,一张表也可以应用多个安全策略。
反入侵
数据库反入侵是保护数据库免遭未经授权的访问、恶意活动等等。其中黑白名单是抵御恶意软件和有针对性的攻击的一种必要的手段。
YashanDB支持黑名单和白名单,白名单以外的用户都不能访问数据库。黑名单以内的用户都不能访问数据库,如果二者冲突则以黑名单优先。通常的配置形式如下图所示:
此外,YashanDB采用连接监听机制检测诸如连接风暴类的网络攻击。YashanDB通过记录监听日志的方式实现此功能。监听日志中记录了包括时间戳、用户、连接状态、IP、端口等连接信息(成功或失败的连接均被记录),通过查看这些信息可以帮助用户快速分析连接来源,并对恶意攻击立即做出反应,保护系统的安全。