一聚教程网:一个值得你收藏的教程网站

热门教程

审计ORACLE程序文件是否被修改

时间:2022-06-29 09:29:45 编辑:袖梨 来源:一聚教程网

最近在迎接安全审计,其中有一条需求是:

文件完整性检测对应数据库为安装的程序文件、配置文件(排除数据文件、日志文件)

也就是需要定期对数据库软件的重要文件做内容校验,避免重要文件被篡改。

整体思路是:

1. 由于oracle的文件太多,我们假设重要的可执行文件目录为$ORACLE_HOME/bin和$ORACLE_HOME/lib。
2. 扫描后记录这些文件的md5sum值。
3. 定期扫描这些文件,对比md5sum值,检查文件是否发生变化。
4. 每次打patch,由于可执行文件会发生变化,需要记录打完patch之后,相关文件新的md5sum值。

我们可以如下实现:

find $ORACLE_HOME/bin -type f -print0 | xargs -0 md5sum >> /tmp/my.md5_before1
find $ORACLE_HOME/bin -type f -print0 | xargs -0 md5sum >> /tmp/my.md5_before1
 
--回滚某个补丁,模拟文件被修改
[oracle11g@testdb2 tmp]$ opatch rollback -id 17411249
 
find $ORACLE_HOME/bin -type f -print0 | xargs -0 md5sum >> /tmp/my.md5_after1
find $ORACLE_HOME/bin -type f -print0 | xargs -0 md5sum >> /tmp/my.md5_after1
 
--使用diff检查md5值被修改的文件:

[oracle11g@testdb2 tmp]$ diff my.md5_before1 my.md5_after1
1d0
< d41d8cd98f00b204e9800998ecf8427e  -
284c283
< 6d068201a219168ccbccb30f06b90202  /u01/ora11g/app/oracle/product/11.2.0/db_1/bin/oracle
---
> ab0aa04b8847755f287458c2e2aa1505  /u01/ora11g/app/oracle/product/11.2.0/db_1/bin/oracle
289c288
< ab0aa04b8847755f287458c2e2aa1505  /u01/ora11g/app/oracle/product/11.2.0/db_1/bin/oracleO
---
> 6d068201a219168ccbccb30f06b90202  /u01/ora11g/app/oracle/product/11.2.0/db_1/bin/oracleO
446c445
< c0befa825eea9033a04772b73353890c  /u01/ora11g/app/oracle/product/11.2.0/db_1/lib/libserver11.a
---
> c05354dd80564134c3ed71a591fe3dd3  /u01/ora11g/app/oracle/product/11.2.0/db_1/lib/libserver11.a
676c675
< c5d4b4c11499d8969fbe5e51105cd384  /u01/ora11g/app/oracle/product/11.2.0/db_1/lib/libcommon11.a
---
> 36bbc228f4fe8cddbe95a8f103875f5b  /u01/ora11g/app/oracle/product/11.2.0/db_1/lib/libcommon11.a
[oracle11g@testdb2 tmp]$

如果要审计ORACLE_HOME下的所有文件,也是类似的:


find $ORACLE_HOME -type f -print0 | xargs -0 md5sum > /tmp/my.md5_before
 
find $ORACLE_HOME -type f -print0 | xargs -0 md5sum > /tmp/my.md5_after

但是其实我认为审计全部ORACLE_HOME下的文件没有必要,我们审计比较重要的$ORACLE_HOME/bin和ORACLE_HOME/lib的两个目录就可以了。

热门栏目