公司众多项目对安全要求逐步增高,现场对主机操作系统安全配置、中间、数据库等各类组件提出了各类基线安全需求
从IaaS到PaaS再到SaaS层,涉及组件及应用广泛,缺乏统一的管控,问题暴露后缺乏有效的解决机制。随着云原生技术的应用,除了需满足传统安全组件操作系统的安全扫描还需要对docker及K8S等进行安管控
对于各类组件的安全配置扫描检测及修复,需要各个项目现场及安全专业人员配合,周期长,成效不显著,且扫描后无可视化结果进行审计和分析
基于DevSecOps实践的思想,我们可以考虑利用开源的安全工具实现安全扫描自动化
为此我们以合规配置自动化扫描的痛点为例,基于chef inspec扫描框架,定制自动化扫描工具security_scan将 IaC(基础设置即代码)思想在实际项目中落地
自动触发扫描
生成扫描结果
可视化报告结果分析
curl https://omnitruck.chef.io/install.sh | sudo bash -s -- -P inspec
wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz tar -xvJf Python-3.8.6.tgz mv Python-3.8.6 /usr/local/python3 cd /usr/local/python3 ./configure --prefix=/usr/local/python3 make && make install ln -s /usr/local/python3/bin/python3 /us/bin/python3 ln -s /usr/local/python3/bin/pip3 /us/bin/pip3 pip3 install prompt_toolkit
git clone https://github.com/JalinZhang/Security_Scan.git
Scanner: -i IP target host ip address #指定IP -p PORT target address ssh port #端口 -u USER target host ssh user #用户 -d PASSWORD target user ssh password #密码 -f FILE target hosts list file name #执行批量扫描配置文件
指定IP扫描(ip/端口/用户名/密码)
批量扫描
编辑target.txt文件,输入批量扫描主机信息(工具暂未实现passwd加密,为避免配置信息泄露,请勿报错配置文件,并在扫描后删除)
cd /tmp/scan_result/ (venv)[/tmp/scan_result]# ll drwxr-xr-x html drwxr-xr-x json
检测生成的报告可以使用开源web server进行解析生成可视化报表
MITRE Heimdall Viewer 有两个版本——完整的 Heimdall Enterprise Server 和 Heimdall-Lite 版本。两者共享相同的前端,但都是为了满足不同的需求和用例而生产的。
适用于单节点少量报告查看和检测,只支持手动导入
https://heimdall-lite.mitre.org/
适用于多台主机报告查看和检测,可通过扫描工具导入,也可手动导入报告
鉴于 Heimdall server至少需要一个数据库服务,我们使用 Docker 和 Docker Compose 来提供简单的部署:
设置 Docker 容器
[/root/heimdall2-master]# ./setup-docker-secrets.sh #如果你想进一步配置你的 Heimdall 实例,编辑运行上一行后生成的 .env 文件 [/root/heimdall2-master]# docker -compose up -d
有关 .env 文件的更多信息,请访问环境变量配置。默认端口映射为"3000:3000",若需要修改端口映射,在docker-compose.yml中修改