1,什么是安全审计(security audit)?

     informix能够对用户操作数据库的动作进行记录。以供后续追踪操作的合理或合法性。---对操作记录进行审查叫做“安全审计”。

2,安全审计能够记录哪些操作事件?

     a. 成功或失败操作信息

online系统的连接。你可以记录与online系统建立连接的情况,包括是谁建立了这个连接,在什么时刻 

     c. 系统和数据库管理事件。任何管理事件例如增加dbspaces和chunks,归档,赋权,回收权限,或者当前的事务日志都可以被审计。

     d. 数据库和表的操作。select,insert,update,或者delete语句都可以被审计,但是不允许只对某一个表的操作进行审计。

3, 审计工作流程

audit masks存储在sysmaster数据库的sysaudit表中)

审计日志是一个UNIX文件,其中保存有审计的记录。这个文件有可能会变得很大,主要看audit masks中包括的操作的数量和操作的类型)

对每一个数据库用户可以有单独的user mask(用户掩码)。另外,管理员可以设置一个默认掩码,这样没有设置user mask的用户就可以使用这个默认的掩码。 

4,审计掩码有哪些?

       审计掩码告诉online什么事件需要被审计。

      单独的审计掩码(indiviual masks)。单独审计掩码是为每一个用户创建的掩码,其作用是对每一个用户的活动进行审计的。 

      默认的用户掩码(_default masks)。默认的用户掩码会被用在任何没有单独设置掩码的用户上。  
      必须的用户掩码(_require masks)。必须的用户掩码会忽略单独用户掩码和默认用户掩码中的内容。任何在_require用户掩码中设置的事件都会被审计,而不管用户的单独掩码中是否设置了这些事件。  
      排它用户掩码(_exclusive masks)。排它用户掩码同样会覆盖单独的用户掩码和默认用户掩码。其中包含的事件不会被审计,即使这些事件存在于单独的用户掩码和默认用户掩码中。这些事件不会覆盖_require掩码中的事件。

你也许想要对有经验的用户很少事件进行审计,对没有经验的用户更多的事件进行审计。为了达到这种目的,为有经验的用户创建一个单独审计掩码其中包括较少的事件。为所有的其它用户创建一个默认审计掩码,其中列出更全面的审计事件。 管理员必须创建所有的掩码;_default,_require,_exclude和单独用户掩码。 


5,审计角色如何分配?

数据库系统安全官员(DBSSO)的责任是维护审计掩码。  
审计分析官员(AAO)分析审计记录,发现安全问题。  

为了更高的安全性,DBSSO,AAO,和ONLINE管理员应该由不同的人员来担当。

要设置基于角色的存取控制,ONLINE系统管理员应该设置两个环境变量。$DBSSOOWNER环境变量应该在DBSSO的登录脚本之中。$AAOWNER环境变量应该设置在AAO的登录脚本中。如果设置了这两个变量: 

只有AAO可以打开或者关闭审计功能。  
只有DBSSO可以使用onaudit工具来维护审计掩码。

6,安全审计的设置流程

    6.1.打开安全审计。 详见6.1.1

    6.2.设置审计参数。 详见6.2.1

    6.3.创建审计掩码和审计事件。 详见6.3.1

6.1.1打开审计功能 

       有两种方法可以打开安全审计:使用onaudit工具,或者通过配置参数。在7.10UD1之前,这些参数是在$ONCONFIG文件中设置,在7.10UD1之后,这些参数在$INFORMIXDIR/aaodir/adtcfg文件中设置。 

       安全审计在你第一次初始化或者关闭和重新启动online的时候生效。你必须明确地打开审计功能: 

       作为informix用户,运行以下的命令: onaudit -1 1 

       审计功能会立即对任何的新的连接生效。这个命令同时会修改ADTMODE配置参数,这样在下一次online启动的时候会自动生效。 

       也可以通过修改ADTMODE参数为1来打开安全审计。在修改了这个配置参数之后,你必须重新启动online,让改动生效。在ONLINE7.10.UD1版本之前,这个参数在$ONCONFIG文件中配置,在这个版本之后,这个参数在$INFORMIXDIR/aaodir/adtcfg文件中设置,并增加了更多的功能: 

       ADTMODE=1 写到informix审计记录中。不自动审计DBSSO和DBSA活动。 

       ADTMODE=2 写到操作系统的审计记录中。这个选项只在操作系统支持审计的时候才会生效。不自动审计DBSSO和DBSA的活动。 

       ADTMODE=3 写到INFORMIX审计记录中。自动审计所有的DBSSO活动。 

       ADTMODE=4 写到操作系统审计记录中。自动审计所有的DBSSO活动。 

       ADTMODE=5 写到INFORMIX审计记录中。自动审计DBSA活动。 

       ADTMODE=6 写到操作系统审计记录中。自动审计DBSA活动。 

       ADTMODE=7 写到INFORMIX审计记录中。自动审计所有DBSSO和DBSA活动 



6.2.1设置审计文件参数 

1.指定审计文件的目录: 

onaudit -p /work/audit 

或者 ADTPATH /work/audit 

2.指定审计文件的大小: onaudit onaudit -s 50000 

或者 

ADTSIZE 50000 


6.3.1创建审计掩码和审计事件


在创建审计掩码之前需要设置其它的两个审计参数,它们是: 


审计文件所在的目录。审计文件中存储所有用户的审计记录。首先创建一个目录。确保这个目录的权限为只能被INFORMIX帐号存取。 


在online处于启动状态的时候,你可以通过执行如下的命令来修改审计目录: onaudit -p 路径 


其中路径名为将要放置审计文件的路径名。onaudit命令同时会修改ADTPATH配置参数的值。 


你可以手工修改ADTPATH参数的值。然尔通过这种方式,你必须关闭和重新启动ONLINE,让改动生效。 


默认文件大小。 ONLINE在ADTSIZE配置参数中限制了审计文件的大小。当审计文件的大小到达ADTSIZE的时候,一个新的审计文件会在ADTPATH路径下创建。 


你可以通过onaudit工具来修改审计文件的大小,同时会修改ADTSIZE配置参数,这个大小的单位是字节: 


onaudit -s 50000 


你可以手工修改ADTSIZE参数的值。然尔通过这种方式,你必须关闭和重新启动ONLINE,让改动生效。 


通过限制审计文件的大小,你可以周期性地将旧的审计文件归档或者删除。你也可以在当前的审计文件没有满的时候自动启动一个新的审计文件,方法是执行如下命令:onaudit -n 



设置错误参数 


最后,你可以指定由于某种原因导致不能写审计文件的情况下,系统执行什么操作: 


停止(0)模式-在一个用户会话试图写一个审计文件,但是写文件失败,它会等待,然后每秒重试一次。在审计文件可以写之前,这个会话不能做任何操作。 


继续(1)模式-这种模式意味着会话会继续下去,即使不能够写审计日志,online的信息日志中会接到一条错误信息,说日志文件不能存取和更新。 


HALT(0)是默认的错误模式。 


你可以通过两种办法来修改错误模式。 



使用onaudit工具: 



onaudit -e error-mode 


这个命名执行的同时会修改ADTERR配置参数。 


修改在$ONCONFIG文件中的ADTERR参数的值,为了让这个改变生效,你必须重新启动online。 


显示审计配置 


你可以运行onaudit -c 命令来显示审计的配置:如 


onaudit -c 


Current audit system configuration: 


ADTMODE =1 


ADTERR = 0 


ADTPATH = /work/tmpaudit 


ADTSIZE = 5000 


Audit file =1 


如果online DBSERVERNAME为online1shm,当前的审计文件名为: online1shm.1 


使用onaudit设置掩码 


onaudit工具同时用来维护审计掩码。可以用它来增加,删除,修改或者输出一个掩码。 _default,_require和_exclude掩码