DB_BASELINE 使用说明和检测脚本编写规范
概述
本文档为DB_BASELINE的使用说明和检测脚本编写规范,
DB_BASELINE主要用于数据库的配置项的基线检查。
该文档主要描述了DB_BASELINE的使用方法以及检测脚本的编写规范,
编写规范检测脚本适用于后期导入SYSLOG,SOC等
支持的数据库
安装说明
下载源码
安装依赖
pip install -r requirements.txt
DB_BASE 使用说明
帮助信息 python db_baseline.py -h
运行检查 python db_baseline.py [options]
[*] 建议直接在运行数据库的机器上进行基线检查,如果不在运行数据库的机器上进行检查
文件安全这一项无法进行
部分数据库配置检查也无法进行
DB_BASELINE 基线检查规范
根据查阅的资料和文档,虽然各个数据库有各自的配置,但是总的来说数据库的基线检查主要涵盖以下四类
账号权限
检查运行数据库的账号,
数据库里面各个权限账号
检查方向:是否有过多的不必要的权限
用专有的低权限账号去启动数据库,而不是用root
数据库账号不要空密码连接
删除或者修改默认账号
只有DBA拥有所有权限,其余各个数据库有专门的对应的数据库的账号
数据库的账号要限制IP连接
...
网络连接
端口
连接类型
检查方向:主要用于检查数据库的端口,对外的开放的程度,连接的安全性等等
端口改掉默认端口
如果提供对外访问 那么网络传输使用SSL或者其他加密的协议
...
文件安全
配置文件
日志文件
审计文件
备份文件
检查方向:主要检查文件权限是否配置准确
配置文件,日志文件等应只有数据库账号可以访问
限制数据库账号访问其他目录或者对其他目录有写的权限
...
数据库配置的属性
配置文件
可以执行的函数
检查方向:潜在隐患的配置属性
危险函数禁止执行
执行系统命令
读取文件
写入文件
导入导出
...
安全配置是否开启
日志文件是否开启
审计文件是否开启
错误日志是否开启
密码复杂度
过期账号处理
...
DB_BASELINE 编写规范
所有的检测脚本均在script目录里面。
db_baseline_basic是检测类的基类,引用基类,编写对应的数据库的检查基线即可
DB_BASELINE 基础构造
连接函数 connect
用于检查是否满足运行条件 check
基线检查主函数 runtest
账号权限基线检查 run_power_test
网络连接基线检查 run_network_test
文件安全基线检查 run_file_test
数据库配置基线检查 run_config_test
DB_BASELINE 返回值
'Result':{
'DBInfo' : {'Host': 'xxx', 'Port': 'xxx'}, #数据库信息
'VerifyTime': '2018-03-23' ,#检查时间
'Score': 97,#检查得分
'Desc': '几乎没有严重的问题',#处理建议
'Defect':
[
{
'Desc':'默认端口没有修改',#描述
'Level':'低',# 危害等级
'Suggest':'修改默认端口',# 修复建议
}
]
}
TODO
mongo 基线检查
oracle 基线检查
redis 基线检查
sqlserver 基线检查
更新记录
2017-04-27
重新修改检测的类别,以及对应修改了代码,比以前类别更加清晰
增加了mysql的检查项的类别
2017-04-24
0.1 发布,基础架构和雏形
mysql 基线检查