0*01 介绍
最近在做安全基线检查相关的, 网上有一些代码比较零散; 也有一些比较完整的项目, 比如 owasp 中的安全基线检查项目, 但是收费; 还有一些开源且完整的, 比如 lynis, 但是不符合我的要求.
我的要求如下:
能够对操作系统, 中间件和数据库进行基线检查
脚本在系统上进行基线检查后的结果或者收集到的数据能够传输到一个服务端
服务端要做可视化展示
最终的效果是什么呢? 最好能够达到阿里云里的安全基线检查的样子, 差一点的话也没关系啦. 本篇文章是代码中在 centos7 和 win2012 系统中将要检查的项目, 参考 CIS 标准而来. 客户端基线搜集与检查代码在 https://github.com/chroblert/SecurityBaselineCheck 现在完成了 CentOS 和 Windows2012 基线检查的编写, 脚本 (简称 agent) 只在要检查的服务器上运行并显示检查结果. 之后会将检查的结果以 JSON 串的形式上传到基于 django 搭建的后端上, 后端可视化图形界面代码在 AssetManage https://github.com/chroblert/assetmanage ,AssetManage 也生成了 docker 镜像, 存放在 AssetManage docker 镜像 .
0*02 相关技术
Agent 用到的技术:
Shell 脚本
Powershell 脚本
后端服务器用到的技术:
- python3
- django2.2
- Bootstrap
- html
存储所用:
sqlite3 3.30
0*03 项目效果
Linux Agent:
Windows Agent:
后端展示效果:
0*04 使用步骤
1. 下载 AssetManage 这个后端展示项目,
源码地址位于: https://github.com/chroblert/AssetManage
docker 镜像位于: docker in aliyun
- # 一, 使用源码安装后端
- # 提前安装最新版 SQLite3.30,python3.6
- # Git clone 项目
- # author: JC0o0l
- # wechat: 信安札记
- Git clone https://github.com/chroblert/assetmanage.git
- cd AssetManage
- # 使用 python3 安装依赖包
- python3 -m pip install -r requirements
- python3 manage.py makemigrations
- python3 manage.py migrate
- python3 manage.py runserver 0.0.0.0:8888
- # 假定该服务器的 IP 未 112.112.112.112
- # 二, 使用 docker 进行部署
- # 1\. 某服务器(假定 IP 为 112.112.112.112), 安装 docker
- # 2\. docker pull registry.cn-hangzhou.aliyuncs.com/jc0o0l/assetmanage:2.0
- # 3\. docker images 查看记住刚刚 pull 下来的 image id
- # 4\. docker run -it -p 8888:8888 <ImageID> /bin/bash
- # 5\. cd assetManage\Asset Manage\
- # 6\. python3 manage.py runserver 0.0.0.0:8888
- # 7\. 退出而不停止容器 按 CTRL+P+Q
2. 更改 agent 中后端服务器的 ip 和端口为上一步中服务器的 IP112.112.112.112 和端口 8888
对于 Windows:
对于 Linux:
3. 将 Agent 拖到要进行基线检查的服务器上, 以管理员权限运行 agent
4. 访问后端服务器可视化展示界面:[ http://112.112.112.112:8888/ ]( http://112.112.112.112:8888/ ),
点击基线检查, 查看扫描记录
点击 Click Me 查看检查结果
该页面会显示进行检查的每一项的扫描结果与检查结果, 并根据相应计算得出相应的分数.
0*05 总结
这个项目可以只将 agent 放在要进行检查的目标服务器上运行, 并且以红色字体显示出不和基线规范的条目; 如果要上传的话, 需要先运行后端服务器, 然后修改 agent 脚本中后面服务器的 ip 和端口号. 这个项目目前可以针对 Linux 和 Windows 的部分操作系统进行基线检查, 不适用于全部系统.
基线检查比较容易, 只需要根据规范收集信息进行比较即可, 而系统加固涉及的面就比较多了, 不同的环境有不同的配置, 系统加固一不小心就容易对系统环境造成损坏, 所以这个项目不准备添加系统加固的功能
该项目的详细地址:
agent: https://github.com/chroblert/securitybaselinecheck
后端: https://github.com/chroblert/assetmanage
来源: http://www.tuicool.com/articles/YNz2ey2