引言:传统安全扫描正在被 AI Agent 重新定义

在过去几年中,企业安全团队进行资产安全评估时,通常需要经历这样的流程:

资产发现
    ↓
端口扫描
    ↓
服务识别
    ↓
漏洞检测
    ↓
人工分析结果
    ↓
输出安全报告

虽然 Nmap、SQLMap、Burp Suite 等安全工具已经非常成熟,但是整个过程依然高度依赖安全工程师经验。

例如:

  • 扫描发现一个开放端口,需要人工判断服务风险;

  • 获取 Web 指纹之后,需要人工选择下一步检测方式;

  • 扫描结果产生大量信息,需要人工过滤误报;

  • 多个安全工具之间缺少自动化联动。

随着大语言模型(LLM)和 Agent 技术的发展,安全自动化正在进入新的阶段。

未来的安全工具不会只是:

输入目标
 ↓
执行扫描
 ↓
输出结果

而会逐渐演变成:

安全任务
    ↓
AI Agent
    ↓
任务规划
    ↓
调用安全工具
    ↓
分析结果
    ↓
生成安全结论

也就是说:

AI Agent 不替代安全工具,而是成为连接安全工具、数据分析和决策流程的智能调度层。

本文将介绍如何利用 LangChain 这类 Agent 框架,在授权安全测试环境中构建一个自动化安全分析 Agent。

整体架构如下:

                 用户任务
                    |
                    ↓
             Security Agent
                    |
        -----------------------
        |          |          |
        ↓          ↓          ↓
      Nmap       SQLMap     Report
      Tool       Tool       Tool
        |
        ↓
   Result Analyzer
        |
        ↓
   Security Report

一、为什么安全领域非常适合 AI Agent?

传统自动化脚本最大的问题:

它只能执行固定流程。

例如:

Python:

scan()
parse()
report()

流程写死之后:

  • 发现新情况无法调整;

  • 无法根据结果动态决策;

  • 无法理解复杂上下文。

但是 Agent 不一样。

Agent 的核心循环:

Observe
 ↓
Think
 ↓
Plan
 ↓
Act
 ↓
Observe

对应安全场景:

获取任务
 ↓
分析目标环境
 ↓
选择工具
 ↓
执行检测
 ↓
理解结果
 ↓
决定下一步动作

例如:

发现:

80/tcp open http

Agent 可以进一步判断:

这是 Web 服务
需要进行 Web 信息收集
调用对应检测模块

而不是简单执行固定脚本。


二、AI Security Agent 的整体架构设计

一个企业级安全 Agent 通常包含几个核心模块:

1. Agent 大脑层

负责:

  • 理解任务;

  • 制定计划;

  • 调用工具;

  • 总结结果。

技术:

GPT
Claude
DeepSeek
Qwen
本地大模型

2. Tool 工具层

Agent 不直接执行安全操作。

而是通过工具接口调用:

Agent
 |
 | Tool Calling
 |
 +---- Nmap Tool
 |
 +---- SQLMap Tool
 |
 +---- Report Tool

类似:

tool.run()

3. Memory 记忆层

保存:

  • 历史扫描结果;

  • 资产信息;

  • 安全规则;

  • 历史报告。

例如:

Vector Database

Chroma
Milvus
FAISS

4. Workflow 编排层

负责:

  • 任务拆解;

  • 执行顺序;

  • 异常处理;

  • 状态保存。


三、LangChain Agent 的核心思想

LangChain 中 Agent 的本质:

LLM
+
Tools
+
Prompt
+
Executor

简单理解:

LLM:

负责思考。

Tools:

负责执行。

Executor:

负责调度。

例如:

定义工具:

@tool
def nmap_scan(target):
    """
    执行资产探测
    """
    return result

然后:

agent = create_agent(
    tools=[
        nmap_scan
    ]
)

Agent 就拥有调用能力。


四、安全工具为什么适合封装成 Tool?

传统方式:

nmap()
sqlmap()

每个工具独立运行。

但是 Agent 需要统一接口。

例如:

所有工具统一:

输入:

{
 "target":"authorized-host"
}

输出:

{
 "status":"success",
 "result":"..."
}

这样 Agent 不需要关心:

  • 工具名称;

  • 参数细节;

  • 输出格式。

它只需要:

选择工具
获取结果
继续分析

五、设计 Security Agent 的任务流程

一个基础安全分析 Agent:

用户需求

 ↓

资产信息收集

 ↓

服务识别

 ↓

漏洞检测

 ↓

结果分析

 ↓

生成报告

对应 Agent:

Planner Agent

负责拆任务


Scanner Agent

负责资产信息


Analyzer Agent

负责风险判断


Report Agent

负责输出结果

六、Python 编写 Agent 核心任务编排逻辑

下面展示一个简化版本。

代码重点展示:

  • Agent 初始化;

  • 工具注册;

  • 任务规划;

  • 执行流程;

  • 结果整理。

示例用于授权安全测试环境。

from langchain.agents import AgentExecutor
from langchain.tools import Tool
from langchain_openai import ChatOpenAI

import json


# ==========================
# 初始化大模型
# ==========================

llm = ChatOpenAI(
    model="security-agent-model",
    temperature=0
)


# ==========================
# 定义安全工具接口
# ==========================


def nmap_tool(target):

    """
    资产信息收集工具
    """

    result = {
        "tool": "nmap",
        "target": target,
        "status": "completed",
        "services": [
            "http",
            "ssh"
        ]
    }

    return json.dumps(result)



def sqlmap_tool(url):

    """
    Web安全检测工具接口
    """

    result = {
        "tool": "sqlmap",
        "target": url,
        "status": "completed",
        "analysis": "finished"
    }

    return json.dumps(result)



# ==========================
# 注册 Agent Tools
# ==========================


tools = [

    Tool(
        name="AssetScanner",
        func=nmap_tool,
        description=
        "用于授权环境资产信息收集"
    ),


    Tool(
        name="WebSecurityScanner",
        func=sqlmap_tool,
        description=
        "用于授权环境Web安全分析"
    )

]



# ==========================
# Agent System Prompt
# ==========================


system_prompt = """

你是一名企业安全分析Agent。

你的任务:

1.
理解安全测试需求。

2.
选择合适工具。

3.
分析工具返回结果。

4.
输出结构化安全报告。


要求:

- 所有操作必须基于授权环境。
- 不执行未授权目标检测。
- 输出风险分析。


"""


# ==========================
# 创建Agent执行器
# ==========================


agent_executor = AgentExecutor.from_agent_and_tools(
    agent=llm,
    tools=tools,
    verbose=True
)



# ==========================
# 任务入口
# ==========================


def security_task(target):


    task = f"""

请分析目标:

{target}


执行:

1.
资产信息收集

2.
服务分析

3.
安全风险总结


"""


    result = agent_executor.invoke(
        {
            "input":task
        }
    )


    return result



if __name__ == "__main__":

    report = security_task(
        "authorized-test-environment"
    )

    print(report)

七、Agent 如何理解扫描结果?

安全工具返回的数据通常比较原始。

例如:

Port 80 open

Service:
Apache

Version:
unknown

传统方式:

安全人员人工判断。

Agent:

加入安全知识库。

流程:

扫描结果

 ↓

Embedding

 ↓

Vector Database

 ↓

检索漏洞知识

 ↓

LLM分析

 ↓

风险判断

这其实就是:

RAG + Agent

组合。


八、加入 RAG 后的安全分析架构

完整企业方案:

                 Security Agent

                      |
                      ↓

             Tool Calling Layer

        ---------------------------

        Nmap     SQLMap    Scanner


                      |

                      ↓


              Result Collector


                      |

                      ↓


              Security Knowledge


                      |

                      ↓


              Vector Database


                      |

                      ↓


             Risk Analysis Agent


                      |

                      ↓


              Report Generator

九、为什么不能让 Agent 无限调用安全工具?

这是生产环境非常重要的问题。

如果没有限制:

可能出现:

Agent

↓

重复调用工具

↓

成本增加

↓

任务失控

所以需要:

1. 最大执行次数

例如:

MAX_ITERATION=10

2. 权限控制

例如:

允许:

资产分析

禁止:

危险操作

3. 审计日志

记录:

Agent ID

调用工具

时间

参数

结果

企业环境必须做到:

可追踪

可回滚

可审计

十、未来 AI Agent 在安全领域的发展方向

目前安全 Agent 主要集中:

1. 自动化资产分析

替代:

人工整理资产。


2. 智能告警分析

替代:

SOC 人员初筛。


3. 自动化安全报告

替代:

大量重复文档工作。


4. 安全运营 Copilot

成为:

安全工程师助手。

未来真正成熟的安全 Agent:

不会简单执行扫描。

而会:

理解业务

分析风险

关联知识

制定方案

辅助决策

十一、总结

AI Agent 并不会取代安全工程师。

但是它会改变安全工程师的工作方式。

过去:

人
 ↓
工具
 ↓
结果

未来:

人

 ↓

AI Security Agent

 ↓

多个安全工具

 ↓

智能分析

 ↓

决策建议

对于安全开发者来说,未来值得掌握的不只是:

Python
Linux
渗透工具

还包括:

Agent架构

LLM调用

RAG

Workflow

自动化编排

安全AI工程

真正优秀的安全自动化系统,不是让 AI 替你执行所有事情。

而是:

让 AI 成为连接安全工具、知识库和工程流程之间的智能控制层。

这个自动化渗透 Agent 的完整源码和环境配置文件已经打包,欢迎看主页简介进交流群免费获取完整工具包。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐