基于Public特权来保护Informix的安全

by amxku
[url]http://www.amxku.net[/url]

在Informix中,有三个数据库特权级别:DBA、Resource 和 Connect
Connect 特权允许用户访问数据库以及添加、修改和删除数据。
Resource 特权授予用户所有 Connect 特权,还授予创建新的表、索引和过程的特权。
DBA 特权包括 Connect 和 Resurce 特权,还授予用户把 Resource、Connect 或DBA 特权授予其他用户的权力。具有DBA 特权的用户还可以删除数据库中的所有对象或完全删除数据库。

Informix在数据库、表和列级都应用了 安全措施。 但是所有安全措施都基于用来连接数库的用户名。Informix 使用关键字 public 表示应用于所有用户的特权。public关键字是一个非常强大的工具,可以开放对数据的访问。
取消Public的Connect特权
默认地,public被授予了connect特权。这意味着任何人,只要持有有效的操作系统用户ID和口令,都可以连接到数据库服务器。
启用审计
应该对关键事件进行审计,例如登陆尝试失败。
取消Public对文件访问例程的权限
默认地,public可以执行文件访问函数,例如lotofile、filetoclob和ifx_file_to_file。这将允许攻击者读、写服务器上的文件。为帮助解决这一 安全漏洞,创建一个名为FileAccess的角色,按照严格的业务需求,只把那些需要访问文件的用户分配为该角色的成员。然后为该角色分配对文件访问例程的执行权限,并取消public的执行权限。
取消Public对模块例程的执行权限
默认地,public可以执行模块函数,例如ifx_replace_module、ifx_load_internal和reload_module。这将允许攻击者强制Informix服务器加载任意的库并像Informix用户一样执行代码。为帮助解决这一 安全漏洞,创建一个名为ModuleAccess的角色,按照严格的业务需求,只把那些需要加载模块的用户分配为该角色的成员。然后为该角色分配对这些例程的执行权限,并取消public的执行权限。
限制语言Usage权限
应该限制被授予了C和Java例程语言usage权限的用户的数量。拥有这些语言的usage权限的任何人都可以像Informix用户一样运行代码。
检查命令
# 显示informix数据库版本、状态,启动时间和所占内存
onstat -
# 查看日志情况(逻辑日志和物力日志,包括页地址)
onstat - l
# 查看配置文件信息($informixdir/etc/$onconfig)
onstat - c
# 查看informix配置参数
cat $INFORMIXDIR / etc / onconfig
# 查看数据库特权命令
Select * from sysusers
# 查看表级别特权
select * from systabauth
# 使用详细列表格式显示数据库事务日志信息记录(系统管理日志)
ls - la     $INFORMIXDIR / online . log # System message log file path
# 查看逻辑日志的备份(报警项)
cat $INFORMIXDIR / etc / log_full . sh # Alarm program path
# 显示用户信息
onstat - u
# 显示数据库空间使用信息
onstat - d
参考:
[url]http://publibfp.boulder.ibm.com/epubs/pdf/ct1tbna.pdf[/url]
[url]http://www.sebug.net/bbs/thread-455-1-1.html[/url]
[url]http://publibfi.boulder.ibm.com/epubs/pdf/ct1sqna.pdf[/url]
[url]http://www.amxku.net/informix-sql-in/[/url]

你可能感兴趣的:(安全,休闲,基于Public,特权来,保护Informix)