安全基線檢查平臺
0x01 介紹
最近在做安全基線檢查相關的,網上有一些代碼比較零散;也有一些比較完整的項目,比如owasp中的安全基線檢查項目,但是收費;還有一些開源且完整的,比如lynis,但是不符合我的要求。
我的要求如下:
能夠對操作系統、中間件和數據庫進行基線檢查
腳本在系統上進行基線檢查后的結果或者收集到的數據能夠傳輸到一個服務端
服務端要做可視化展示
最終的效果是什么呢?最好能夠達到阿里云里的安全基線檢查的樣子,差一點的話也沒關系啦。本篇文章是代碼中在centos7和win2012系統中將要檢查的項目,參考CIS標準而來。客戶端基線搜集與檢查代碼在SecurityBaselineCheck現在完成了Centos和Windows2012基線檢查的編寫,腳本(簡稱agent)只在要檢查的服務器上運行并顯示檢查結果。之后會將檢查的結果以json串的形式上傳到基于django搭建的后端上,后端可視化圖形界面代碼在 AssetManage,AssetManage也生成了docker鏡像,存放在AssetManage docker鏡像.
0x02 相關技術
Agent用到的技術:
Shell腳本
Powershell腳本
后端服務器用到的技術:
python3
django2.2
bootstrap
html
存儲所用:
sqlite3 3.30
0x03 項目效果
Linux Agent:

Windows Agent:

后端展示效果:


0x04 使用步驟
1. 下載AssetManage這個后端展示項目,
源碼地址位于: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 /bin/bash # 5\. cd assetManage\AssetManage\ # 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),
點擊基線檢查,查看掃描記錄

點擊Click Me查看檢查結果

該頁面會顯示進行檢查的每一項的掃描結果與檢查結果,并根據相應計算得出相應的分數。
0x05 總結
這個項目可以只將agent放在要進行檢查的目標服務器上運行,并且以紅色字體顯示出不和基線規范的條目;如果要上傳的話,需要先運行后端服務器,然后修改agent腳本中后面服務器的ip和端口號。這個項目目前可以針對Linux和Windows的部分操作系統進行基線檢查,不適用于全部系統。
基線檢查比較容易,只需要根據規范收集信息進行比較即可,而系統加固涉及的面就比較多了,不同的環境有不同的配置,系統加固一不小心就容易對系統環境造成損壞,所以這個項目不準備添加系統加固的功能
該項目的詳細地址:
agent: https://github.com/chroblert/securitybaselinecheck
后端:https://github.com/chroblert/assetmanage