SDL建设过程中安全人员如何进行能力沉淀(下)
字数 1167 2025-08-12 11:33:47

SDL建设中安全人员能力沉淀:自动化漏洞监控系统搭建指南

一、系统概述

本文介绍如何搭建一个自动化漏洞监控系统,用于在SDL(安全开发生命周期)建设过程中帮助安全人员快速发现SSRF等无回显漏洞。该系统通过结合BurpSuite、ceye.io DNSLOG服务和企微机器人实现实时漏洞告警。

二、核心组件准备

2.1 企业微信机器人配置

  1. 申请步骤

    • 在企业微信群中点击右上角"..."菜单
    • 选择"群机器人"→"添加"
    • 选择"自定义"机器人
    • 获取Webhook地址,格式为:
      https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=2192079e-f4aa-44ec-ad86-1dc198727100
      
  2. 关键参数

    • key:机器人的唯一标识符
    • 支持@特定成员或@所有人功能

2.2 ceye.io DNSLOG服务配置

  1. 获取API Token
    • 登录http://ceye.io/profile
    • 获取API Token
    • 拼接两个关键API地址:
      • DNS记录查询:http://api.ceye.io/v1/records?token=ceye_token&type=dns
      • HTTP记录查询:http://api.ceye.io/v1/records?token=ceye_token&type=http

三、监控脚本详解

项目地址:https://github.com/ba1ma0/WeWork_DNSLOG_Robot

3.1 配置文件修改

# 人工配置部分
robotAPI = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=wechat_robot_token"
ceyeDNS = "http://api.ceye.io/v1/records?token=ceye_token&type=dns" 
ceyeHTTP = "http://api.ceye.io/v1/records?token=ceye_token&type=http"
staffNoList = ['01221455']  # 需要@的成员工号列表,@all表示所有人
sleepTime = 5  # 查询间隔时间(秒)

3.2 核心功能函数

  1. IP信息查询

    def getIPLocation(ip):
        try:
            IpInfoResult = json.loads(requests.get(baiduAPI.replace("testflagIP",str(ip))).text)
            info = IpInfoResult['data'][0]['location']
        except Exception as e:
            info = "IP :"+str(ip)
        return info
    
  2. 时间格式转换

    def UTC2BJtime(UTCtimeStr):
        BJTime = datetime.datetime.strptime(UTCtimeStr,'%Y-%m-%d %H:%M:%S') + timedelta(hours=8)
        BJTimeStr = datetime.datetime.strftime(BJTime,'%Y-%m-%d %H:%M:%S')
        return BJTimeStr
    
  3. 记录比对函数

    def comparePrevious():
        global ceye_dns_previous,ceye_http_previous
        result = {'dnsChange':False,'dns':'','httpChange':False,'http':''}
        try:
            dnsResult = json.loads(requests.get(ceyeDNS).text)
            if dnsResult['data'] and dnsResult['data'][0]['id'] not in ceye_dns_previous:
                ceye_dns_previous = str(dnsResult['data'][0])
                result['dnsChange'] = True
                result['dns'] = dnsResult['data'][0]
        except Exception as e:
            print(e)
        return result
    

3.3 主循环逻辑

while True:
    try:
        result = comparePrevious()
        if result['dnsChange']:
            ipInfo = getIPLocation(result['dns']['remote_addr'])
            WeWorktPostContent = "*DNS请求*\n请求ID: "+result['dns']['id']+ 
                "\n请求时间: "+UTC2BJtime(result['dns']['created_at'])+
                "\n请求IP: "+result['dns']['remote_addr']+
                "\nIP信息: "+ipInfo+
                "\n请求DNS: "+result['dns']['name']+"\n*DNS请求*"
            # 发送到企微机器人...
            
        if result['httpChange']:
            # 类似处理HTTP请求...
    except Exception as e:
        print(e)
    time.sleep(sleepTime)

四、系统部署与使用

  1. 后台运行脚本

    nohup python3 DNSLOG.py &
    
  2. 结合BurpSuite使用

    • 在BurpSuite的Project Options中配置ceye.io的DNSLOG地址
    • 进行常规渗透测试时,系统会自动监控DNS/HTTP请求
  3. 漏洞发现流程

    • 当发现SSRF等无回显漏洞时,系统会通过企微机器人实时通知
    • 通知内容包括:请求ID、时间、来源IP、地理位置和具体请求内容

五、扩展与优化

  1. 多平台集成

    • 可扩展支持Slack、钉钉等其他IM平台
    • 可集成多个DNSLOG服务提高可靠性
  2. 增强功能

    • 添加漏洞自动分类功能
    • 实现与漏洞管理系统的自动对接
    • 增加频率限制和去重机制
  3. 相关项目

    • SDL自动化漏洞发现:https://github.com/ba1ma0/SDLC_Vuln_Auto_Find
    • 涂鸦智能安全响应中心:https://src.tuya.com

六、注意事项

  1. 安全性考虑

    • 妥善保管企微机器人的key和ceye.io的token
    • 建议对敏感信息进行加密存储
  2. 性能优化

    • 根据实际负载调整查询频率
    • 添加异常处理和重试机制
  3. 合规性

    • 确保符合企业内部安全政策
    • 获得必要的授权后再进行监控

通过这套系统,安全团队可以在SDL过程中更高效地发现无回显漏洞,提高整体安全测试的覆盖率和效率。

SDL建设中安全人员能力沉淀:自动化漏洞监控系统搭建指南 一、系统概述 本文介绍如何搭建一个自动化漏洞监控系统,用于在SDL(安全开发生命周期)建设过程中帮助安全人员快速发现SSRF等无回显漏洞。该系统通过结合BurpSuite、ceye.io DNSLOG服务和企微机器人实现实时漏洞告警。 二、核心组件准备 2.1 企业微信机器人配置 申请步骤 : 在企业微信群中点击右上角"..."菜单 选择"群机器人"→"添加" 选择"自定义"机器人 获取Webhook地址,格式为: 关键参数 : key :机器人的唯一标识符 支持@特定成员或@所有人功能 2.2 ceye.io DNSLOG服务配置 获取API Token : 登录http://ceye.io/profile 获取API Token 拼接两个关键API地址: DNS记录查询: http://api.ceye.io/v1/records?token=ceye_token&type=dns HTTP记录查询: http://api.ceye.io/v1/records?token=ceye_token&type=http 三、监控脚本详解 项目地址:https://github.com/ba1ma0/WeWork_ DNSLOG_ Robot 3.1 配置文件修改 3.2 核心功能函数 IP信息查询 : 时间格式转换 : 记录比对函数 : 3.3 主循环逻辑 四、系统部署与使用 后台运行脚本 : 结合BurpSuite使用 : 在BurpSuite的Project Options中配置ceye.io的DNSLOG地址 进行常规渗透测试时,系统会自动监控DNS/HTTP请求 漏洞发现流程 : 当发现SSRF等无回显漏洞时,系统会通过企微机器人实时通知 通知内容包括:请求ID、时间、来源IP、地理位置和具体请求内容 五、扩展与优化 多平台集成 : 可扩展支持Slack、钉钉等其他IM平台 可集成多个DNSLOG服务提高可靠性 增强功能 : 添加漏洞自动分类功能 实现与漏洞管理系统的自动对接 增加频率限制和去重机制 相关项目 : SDL自动化漏洞发现:https://github.com/ba1ma0/SDLC_ Vuln_ Auto_ Find 涂鸦智能安全响应中心:https://src.tuya.com 六、注意事项 安全性考虑 : 妥善保管企微机器人的key和ceye.io的token 建议对敏感信息进行加密存储 性能优化 : 根据实际负载调整查询频率 添加异常处理和重试机制 合规性 : 确保符合企业内部安全政策 获得必要的授权后再进行监控 通过这套系统,安全团队可以在SDL过程中更高效地发现无回显漏洞,提高整体安全测试的覆盖率和效率。