• 数据库安全策略与实施措施


    数据库安全策略与实施措施

    一. 数据库可能存在的安全问题

    1.1来自外部的威胁

    面临的安全威胁

        偷听与数据失窃

        数据篡改

        伪造用户身份

        密码相关的威胁:数据字典攻击。

      数据库可能存在的非法地网络访问的安全隐患

    例如非工作时间访问核心业务表、非工作场所访问数据库、第三方软件开发商远程访问

    等等行为,都可能存在着重大安全隐患。

    1.2来自内部的系统缺陷

    目前普遍存在于Oracle数据库中的用户管理问题:

    (1)权限过大:对ORACLE数据库编程和浏览的一般用户常常具有DBA (数据库管理员权限),

    能对数据库系统做任何修改或删除。

    (2)安全性差:很多ORACLE用户缺省存储位置都在系统表空间,这样不仅影响系统的正常

    工作,而且不同用户的数据信息互相影响、透明,保密性差。随着数据的不断加入,有

    可能使整个数据库系统崩溃。

    (3)密码有规律:在ORACLE调试初期形成的用户名和密码一致的不良习惯保留到现在;系

    统用户SYS和SYSTEM的密码也众所皆知。

    二.数据库系统的安全需求

    网络计算环境的安全需求

      分布式环境的安全需求

        要求安全的网络连接

        有一个统一的定义“用户是谁,用户被允许做什么”,如果没有这个统一的定义,管理员需要频繁地授权,成本太高。

      异构环境的安全需求

        需要支持多种符合工业标准的授权机制。

    三.数据库安全具体措施

    3.1数据库安装与配置的安全措施

       启用数据字典的保护

      操作系统存取数据库的安全纲领

        限制操作系统用户的数量

        限制操作系统账户的权限

        限制对数据库主目录和默认文件的修改能力。

        限制符号连接

    3.2设置安全的账户。

    密码是系统防护的一道大门,密码的安全策略的顺利实施占有十分重要的地位。 

     创建密码的要求

          密码的字符长度在12至30之间。

          使用字母与特殊字符的混合体。

          可以包括下划线,美元符,井号。

          不要使用一个单词作为密码。

    设置密码的示例SQL 如下:

    connect system /

    create user sec_admin identified by  tablespace system;

    3.3管理用户权限

    用户权限的合理设置,可以实现明确地职责分工,实现相互制约的内部控制机制。减少数据被盗窃与篡改的风险。 ODV(oracle database vault)提供了一个完整与严密的解决办法。

    3.4保卫网络

    用增强的安全方案解决安全问题,OAS提供了以下的安全特征,加密和授权。

    在网络传输层支持加密以保护数据的私密性,算法有3DES,AES。

    支持数据完整性算法 SHA-1 散列算法。以防护数据篡改,丢数据包和重请求的攻击。

    listener.ora

    ADMIN_RESTRICTIONS_LISTENER=ON

    LISTENER=

    (DESCRIPTION=

    (ADDRESS_LIST=(ADDRESS=

    (PROTOCOL=tcps)

    (HOST = shobeen.us.example.com)

    (PORT = 8281)))

     sqlnet.ora

    tcp.validnode_checking = YES

    tcp.excluded_nodes = {list of IP addresses}

    3.5保护数据

    3.5.1.透明的加密(TDE)

    3.5.2. 控制数据存取(VPD)

    3.5.3. 加强行级安全(OLS)

    3.5.4. 控制管理员的存取(ODV)

    3.5.6.数据隐藏

       介绍

         是什么

          当低权限或者是应用程序发起的查询时,可以返回隐藏的数据。隐藏数据字段包括以下的方法。

          全部隐藏:例如密码列

          部分隐藏:例如身份证号码,电话号码,信用卡号码等

          正则表达式:

          随机的方式:

      

        谁能创建

          必须有执行PL/SQL包的权限。

        什么时候使用

           当你必须区别你的应用程序或者是用户必须读取的敏感数据时,例如身份证号码,信用卡号码等。

    3.6 审计数据库中的操作

    3.6.1.启动数据审计

    和审计相关的两个主要参数

    Audit_sys_operations:

    默认为false,当设置为true时,所有sys用户(包括以sysdba, sysoper身份登录的用户)

    的操作都会被记录

    Audit_trail:

    None:是默认值,不做审计;

    DB,Extended:这样审计结果里面除了连接信息还包含了当时执行的具体语句;

    当开启审计功能后,可在三个级别对数据库进行审计:Statement(语句)、Privilege(权限)

    、object(对象)例:

    AUDIT DELETE ANY TABLE; --审计删除表的操作

    AUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL; --只审计删除失败的情况

    AUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL; --只审计删除成功的情况

    AUDIT DELETE,UPDATE,INSERT ON user.table by SYSTEM; --审计SYSTEM用户对表user.table的

    delete,update,insert操作

    通过AUDIT BY ON BEHALF OF语句,可以审计代理用户执行的代理操作。

    3.6.2.采用数据库的细粒度审计

       可以根据具体的业务需求,对特定的数据表上的特定列,执行指定条件的审计。

    FGA 在 Oracle 数据库中支持隐私和职能策略。因为审计发生在数据库内部而不是应用程序中,所以无论

    用户使用的访问方法是什么(通过诸如 SQL*Plus 等工具或者应用程序),都对操作进行审计,允许进行非常简单的设置。

    四.附录

    4.1原则

    最小权限的原则。 成本风险平衡原则。以预防为主。

    4.2参考资料

    e40393,e10575

              GB/T 20988—2007

  • 相关阅读:
    JVM G1垃圾回收器学习笔记
    【Vue.js】Vue3全局配置Axios并解决跨域请求问题
    工业设计公司有哪些设计思维?关键有什么?
    C++入门笔记分享
    ZZNUOJ_用C语言编写程序实现1211:日期排序(附完整源码)
    docker in docker使用方式
    基于Antd Table自定义通用columns列筛选配置
    百趣土壤非靶标代谢组学文献分享,来自Microbiome的灵感
    NX二次开发-将工程图上的每个视图导出PNG图片
    复现一篇简单的基于滑模控制的扩张状态观测器LESO
  • 原文地址:https://blog.csdn.net/gggwfn1982/article/details/133242682