Osmedeus安全编排引擎:从声明式工作流到AI集成的自动化实践

news2026/5/10 7:11:40
1. 从零到一理解Osmedeus的现代安全编排哲学如果你和我一样在安全领域摸爬滚打了几年肯定经历过这样的场景为了完成一次完整的外部攻击面侦察你需要在终端里打开十几个标签页手动运行Nmap、Subfinder、httpx、Nuclei等一系列工具然后还得把各个工具的输出结果手动整理、去重、合并最后才能得到一个像样的资产清单。这个过程不仅繁琐、容易出错而且难以复现和审计。更别提当目标规模扩大或者需要定期执行时那种手忙脚乱的无力感了。Osmedeus的出现正是为了解决这种“工具孤岛”和“手动缝合”的痛点。它不是一个单一的工具而是一个声明式的安全编排引擎。你可以把它理解为一个专为安全工程师设计的“乐高积木系统”和“自动化流水线”的结合体。它的核心思想非常清晰将复杂、多步骤的安全测试工作流抽象成可读、可复用、可审计的YAML配置文件。你不再需要记忆一长串的命令行参数或者编写复杂的Bash/Python脚本去串联工具。你只需要用YAML定义好“要做什么”What比如“先进行子域名枚举然后对发现的域名进行端口扫描接着对开放的Web服务进行截图和目录扫描”Osmedeus引擎就会负责“如何去做”How包括任务的调度、依赖管理、错误处理、结果收集和状态跟踪。这种“声明式”的范式让安全运营从手工作坊模式升级到了标准化、工程化的流水线模式。我第一次接触Osmedeus时最吸引我的是它的“现代性”。它没有停留在简单的命令行工具封装上而是构建了一套完整的工程体系。它内置了基于Redis的分布式任务队列这意味着你可以轻松地将扫描任务分发到多台机器上并行执行极大地提升了大规模资产测绘的效率。它提供了丰富的功能库包含了80多个开箱即用的工具函数从基础的HTTP请求、文件操作到与Nmap、Tmux等工具的深度集成再到SARIF格式的SAST报告解析甚至能智能识别CDN和WAF。更令人兴奋的是它还前瞻性地集成了Agentic AI智能体AI能力你可以让Claude、GPT等大语言模型作为工作流中的一个“智能步骤”去分析代码、撰写报告或做出决策这为自动化安全运营打开了全新的想象空间。简单来说Osmedeus适合以下几类人安全工程师尤其是负责外部攻击面管理、漏洞赏金、渗透测试和红队评估的同行它能将你从重复劳动中解放出来DevSecOps工程师它可以帮助你将安全扫描无缝集成到CI/CD流水线中以及任何希望将安全流程标准化、自动化、可观测的团队。无论你是想快速搭建一个个人漏洞赏金侦察平台还是为企业构建一套自动化的资产发现与脆弱性评估系统Osmedeus都提供了一个强大而灵活的基石。2. 核心架构与设计理念深度拆解要玩转Osmedeus不能只停留在会敲几个命令的层面必须理解其底层的设计哲学和架构。这能帮助你在遇到复杂需求或问题时知道该从哪里入手以及如何最高效地利用它的能力。2.1 声明式工作流YAML即代码的安全实践Osmedeus工作流的基石是YAML文件。一个典型的工作流文件通常以.osm.yaml结尾定义了扫描的完整生命周期。让我们看一个高度简化的recon侦察工作流示例来理解其结构name: fast-recon description: A quick reconnaissance workflow for a single domain. params: target: # 运行时通过 -t 参数传入 steps: - name: subdomain-enumeration type: foreach # 对列表中的每一项执行子步骤 input: {{.target}} steps: - name: run-amass type: bash command: amass enum -passive -d {{.input}} -o amass.txt output: amass.txt - name: run-subfinder type: bash command: subfinder -d {{.input}} -o subfinder.txt output: subfinder.txt post: # 在所有子步骤完成后执行 - name: merge-and-dedup type: function eval: | files : list_files(*.txt) merged : read_files(files...) uniq : unique(merged) write_file(all-subdomains.txt, uniq) output: all-subdomains.txt - name: http-probing type: parallel # 并行执行以下步骤 steps: - name: run-httpx type: bash input: all-subdomains.txt command: httpx -l {{.input}} -silent -o httpx-alive.txt output: httpx-alive.txt - name: run-naabu type: bash input: all-subdomains.txt command: naabu -list {{.input}} -o naabu-ports.txt output: naabu-ports.txt - name: screenshot-and-tech-detect type: bash input: httpx-alive.txt command: eyewitness -f {{.input}} --web --no-prompt depends_on: [http-probing] # 显式声明依赖确保上一步已完成从这个例子中我们可以看到几个关键设计模块化与组合每个step都是一个独立的单元通过type指定其行为bash命令、函数计算、并行执行等。步骤之间可以通过depends_on或自然的顺序来定义依赖关系。数据流驱动上一步的output可以作为下一步的input通过{{.input}}这样的模板变量进行传递。这构成了清晰的数据流水线。灵活的步骤类型除了bashOsmedeus支持function执行内置Go函数、parallel并行、foreach循环、httpHTTP请求、llm大语言模型调用等多种类型几乎可以覆盖所有自动化场景。声明式依赖depends_on让引擎明确知道任务执行的先后顺序避免了竞态条件。实操心得在编写复杂工作流时我强烈建议先画一个简单的流程图明确每个阶段的任务、输入和输出。然后将其转化为steps列表。善用parallel可以大幅缩短扫描时间但要注意资源消耗如网络连接数。对于关键步骤务必使用depends_on来保证执行顺序而不是依赖默认的文件顺序。2.2 分布式执行引擎从单机到集群的平滑扩展当目标资产成千上万时单机扫描会变得异常缓慢。Osmedeus的分布式架构正是为此而生。其核心是一个Master-Worker 模型通过 Redis 作为消息队列和状态中间件。架构流程如下Master主节点你运行osmedeus run命令的机器。它负责解析工作流将工作流分解成一个个可执行的“步骤任务”并将这些任务推送到 Redis 队列中。Redis 队列作为任务总线存储所有待处理的任务。Osmedeus支持不同的队列类型如scandefault用于优先级调度。Worker工作节点一个或多个可以执行任务的节点。每个Worker是一个独立的Osmedeus实例它会持续地从Redis队列中拉取任务并执行。Worker可以运行在Docker容器中也可以通过SSH连接到远程主机。如何设置分布式扫描假设你有三台服务器master(192.168.1.100),worker1(192.168.1.101),worker2(192.168.1.102)。在Master上配置osm-config.yaml通常位于~/.osmedeus/config.yaml指定Redis地址。storage: redis_url: redis://192.168.1.100:6379启动Master的API服务可选用于Web UI和队列管理osmedeus serve在每个Worker上安装Osmedeus并修改其配置指向同一个Redis。storage: redis_url: redis://192.168.1.100:6379 mode: worker # 明确指定为Worker模式启动Worker进程osmedeus worker start提交任务在Master上像往常一样运行扫描命令例如osmedeus run -f general -T huge_targets_list.txt -c 10。-c 10表示并发度为10。Master会将任务拆解后放入队列两个Worker就会自动抢任务并执行。踩坑记录分布式环境中最常见的问题是网络和依赖。确保所有Worker都能访问Redis端口默认6379。另外如果工作流中的步骤依赖于特定工具如nmap, amass你必须确保所有Worker节点上都安装了这些工具并且版本兼容。一个最佳实践是使用Docker RunnerOsmedeus可以指定某个步骤在Docker容器内执行这样就保证了环境的一致性。在YAML中你可以这样配置runner: docker和image: your-custom-image。2.3 事件驱动与智能体Agentic AI面向未来的自动化这是Osmedeus区别于传统自动化脚本的“灵魂”特性。事件驱动调度你可以让Osmedeus监听特定事件然后自动触发工作流。例如Cron定时任务每天凌晨2点自动对资产进行漏洞扫描。文件监听监控一个目录每当有新的子域名列表文件new_domains.txt放入时自动触发深度侦察工作流。Webhook触发与你的Git仓库、JIRA或Slack集成。当有新的代码提交或创建了高危漏洞工单时自动启动相关的SAST或扫描任务。配置示例在osm-config.yaml中scheduler: triggers: - name: daily-nightly-scan type: cron spec: 0 2 * * * # 每天UTC时间2点 workflow: full-scan params: target: {{.Env.ROOT_DOMAIN}} - name: on-new-domain-file type: fs watch_path: /data/incoming/ pattern: *.txt workflow: deep-reconAgentic AI 集成这是真正让我感到惊艳的部分。Osmedeus内置了与大型语言模型LLM交互的能力你可以将LLM作为一个“智能步骤”嵌入到工作流中。比如在完成漏洞扫描后自动调用Claude或GPT来分析Nuclei的扫描结果生成一份易于理解的、分优先级的漏洞报告摘要。工作流步骤示例- name: analyze-vuln-with-ai type: llm provider: openai # 或 anthropic, gemini model: gpt-4-turbo prompt: | 你是一个资深安全专家。请分析以下JSON格式的漏洞扫描结果总结出最关键的前5个漏洞并按风险等级高危、中危、低危分类。 对于每个漏洞请说明其原理、潜在影响和简单的修复建议。 扫描结果{{ .prev_step_output }} api_key: {{.Env.OPENAI_API_KEY}} output: ai_analysis_report.md你甚至可以进行更复杂的“智能体Agent”循环让LLM根据中间结果决定下一步该执行哪个工作流模块实现动态的、基于上下文的安全测试路径。经验之谈事件驱动非常适合构建“安全运营中心SOC”类的自动化响应流程。而AI集成目前最适合用于结果后处理和报告生成它能将机器可读的原始数据转化为人类可快速决策的信息。但在关键的安全判断上如是否真的存在漏洞切勿完全依赖AI它应该作为辅助和增效工具。另外注意API调用成本和速率限制对于大批量结果可以考虑先本地汇总再一次性发送分析。3. 实战部署与核心工作流编写指南理论说得再多不如动手实践。这一部分我将带你从安装部署到编写一个中等复杂度的、可用于漏洞赏金Bug Bounty的自动化侦察工作流。3.1 环境准备与安装的“正确姿势”官方提供了一键安装脚本但对于生产环境或个人长期使用我推荐更可控的方式。对于Linux/macOS系统手动安装推荐直接从GitHub Releases页面下载对应平台的最新二进制文件。这样你可以明确知道安装了什么也方便版本管理和回滚。# 获取最新版本号 LATEST_VERSION$(curl -s https://api.github.com/repos/j3ssie/osmedeus/releases/latest | grep -oP tag_name: \K(.*)(?)) # 下载以Linux amd64为例 wget https://github.com/j3ssie/osmedeus/releases/download/${LATEST_VERSION}/osmedeus-${LATEST_VERSION}-linux-amd64.tar.gz # 解压 tar -xzf osmedeus-${LATEST_VERSION}-linux-amd64.tar.gz # 移动到系统路径 sudo mv osmedeus-${LATEST_VERSION}-linux-amd64/osmedeus /usr/local/bin/ # 验证 osmedeus version初始化工作区和配置Osmedeus需要一个目录来存放工作流、配置和扫描结果。# 初始化配置和目录结构 osmedeus health # 这会在 ~/.osmedeus 下创建必要的目录和默认配置文件。安装预设工作流和工具Osmedeus的核心能力依赖于社区维护的丰富工作流。# 安装基础工作流包推荐 osmedeus install workflow --preset # 这个命令会从官方仓库克隆一系列预定义的工作流如recon, vuln-scan, general等到 ~/.osmedeus/workflows/ 目录。使用Docker快速体验或隔离环境对于不想污染主机环境或者想在CI/CD中快速集成的场景Docker是最佳选择。# 拉取最新镜像 docker pull j3ssie/osmedeus:latest # 运行一个简单扫描并将结果映射到主机当前目录下的 workspace 文件夹 docker run --rm -v $(pwd)/workspace:/root/workspaces-osmedeus \ j3ssie/osmedeus:latest run -f general -t example.com重要提示Docker方式虽然方便但要注意工具版本的固化。镜像内置的工具版本可能不是最新的。对于漏洞扫描工具的新旧直接影响漏洞检出率。如果追求最新工具链建议使用手动安装并定期更新子工具如nuclei-templates。3.2 编写一个漏洞赏金自动化侦察工作流假设我们的目标是对一个主域名进行自动化资产发现、服务探测、漏洞扫描并最终生成一份整合报告。我们将这个工作流命名为bb-recon.yamlbb代表Bug Bounty。工作流设计思路阶段一信息收集- 被动子域名枚举端口扫描。阶段二Web资产发现与指纹识别- 识别存活的Web服务获取标题、状态码、技术栈WAF、CMS、框架。阶段三深度内容发现- 目录/路径爆破截图存档。阶段四漏洞扫描- 使用Nuclei进行主动漏洞检测。阶段五报告生成- 汇总所有结果生成HTML报告。以下是详细的YAML实现name: bugbounty-recon description: Comprehensive reconnaissance and vulnerability scanning workflow for bug bounty. params: target: threads: 10 # 可以定义更多参数如 nuclei_severity: medium,high,critical hooks: pre_scan_steps: - name: create-workspace type: function eval: | ws : workspace_path({{.target}}) log_info(Workspace created at: ws) post_scan_steps: - name: generate-final-report type: bash command: | cd {{.workspace}} \ echo # Recon Report for {{.target}} REPORT.md \ echo ## Subdomains (wc -l all-subdomains-final.txt) REPORT.md \ cat all-subdomains-final.txt REPORT.md \ echo -e \n## Alive Web Services REPORT.md \ cat httpx-final.txt REPORT.md # 这里可以集成更复杂的报告生成工具如 convert REPORT.md REPORT.html steps: # --- 阶段一信息收集 --- - name: passive-subdomain-enum type: parallel description: Use multiple passive sources to find subdomains. steps: - name: amass-passive type: bash command: amass enum -passive -d {{.target}} -o {{.workspace}}/amass.txt - name: subfinder type: bash command: subfinder -d {{.target}} -silent -o {{.workspace}}/subfinder.txt - name: assetfinder type: bash command: assetfinder --subs-only {{.target}} {{.workspace}}/assetfinder.txt post: - name: merge-and-clean type: function eval: | files : [ {{.workspace}}/amass.txt, {{.workspace}}/subfinder.txt, {{.workspace}}/assetfinder.txt ] all : [] for f in files { if file_exists(f) { lines : read_lines(f) all append(all, lines...) } } clean : unique(all) write_file({{.workspace}}/all-subdomains-raw.txt, clean) output: all-subdomains-raw.txt - name: port-scanning type: bash input: all-subdomains-raw.txt command: naabu -list {{.input}} -p - -exclude-ports 21,25,587,110,143 -o {{.workspace}}/naabu-ports.txt -c {{.threads}} output: naabu-ports.txt # --- 阶段二Web资产发现 --- - name: web-probing type: parallel steps: - name: httpx-alive-check type: bash input: all-subdomains-raw.txt command: httpx -l {{.input}} -title -status-code -tech-detect -cdn -web-server -o {{.workspace}}/httpx-alive.json -json -silent output: httpx-alive.json - name: extract-urls-from-httpx type: function input: httpx-alive.json eval: | // 这是一个简化的Go函数示例实际Osmedeus内置函数更丰富 // 这里假设我们从httpx的JSON输出中提取URL urls : extract_urls({{.input}}) write_file({{.workspace}}/alive-urls.txt, urls) output: alive-urls.txt # --- 阶段三深度内容发现 --- - name: content-discovery type: bash input: alive-urls.txt command: gospider -S {{.input}} -o {{.workspace}}/gospider -c {{.threads}} -t 30 # gospider会爬取链接发现更多隐藏的路径和参数 depends_on: [web-probing] - name: screenshot type: bash input: alive-urls.txt command: gowitness file -f {{.input}} -P {{.workspace}}/screenshots depends_on: [web-probing] # --- 阶段四漏洞扫描 --- - name: nuclei-scan type: bash input: alive-urls.txt command: nuclei -l {{.input}} -severity medium,high,critical -stats -si 100 -o {{.workspace}}/nuclei-results.txt -c {{.threads}} output: nuclei-results.txt depends_on: [web-probing] # 注意nuclei命令非常强大可以根据需要调整模板和参数 # 例如只运行特定分类的模板-t cves,exposures,misconfiguration # --- 阶段五数据整理与去重 --- - name: finalize-assets type: function eval: | // 合并所有发现的子域名并去重 subdomains : read_lines({{.workspace}}/all-subdomains-raw.txt) // 可以从httpx结果中提取主机名 // ... 合并逻辑 ... final_subs : unique(merged_subs) write_file({{.workspace}}/all-subdomains-final.txt, final_subs) log_info(Final unique subdomains: len(final_subs)) output: all-subdomains-final.txt如何使用这个工作流将上述YAML内容保存为~/.osmedeus/workflows/custom/bb-recon.yaml。运行扫描osmedeus run -f custom/bb-recon -t target.com --threads 20-f custom/bb-recon指定工作流路径相对于workflows目录。-t指定目标。--threads覆盖了YAML中定义的默认threads参数。编写技巧与避坑指南参数化一切像threads这样的配置项一定要做成参数。这让你可以在运行时灵活调整而不用修改YAML文件。善用output和input这是步骤间传递数据的生命线。确保每个步骤都有清晰的输出定义并为依赖它的步骤正确设置输入。错误处理默认情况下一个步骤失败会导致整个工作流停止。对于非关键步骤如某个子域名枚举源失效你可以考虑使用ignore_error: true来忽略错误让流程继续。资源控制像nuclei、gospider这类工具非常消耗资源。务必使用-c、-t等参数控制并发数和线程数避免把目标打挂或耗尽本地资源。结果目录Osmedeus会为每个扫描目标{{.target}}创建一个独立的工作空间workspace所有输出文件都在里面结构清晰便于后续分析和归档。3.3 云基础设施集成弹性扫描集群对于需要临时性大量计算资源的场景比如一次性扫描上千个域名手动准备Worker节点太麻烦。Osmedeus的云集成功能可以让你在主流云服务商AWS, GCP, DigitalOcean, Linode上快速创建扫描集群用完后自动销毁按需付费非常经济。基本操作流程配置云凭据在~/.osmedeus/cloud-providers/目录下为你使用的云服务商创建配置文件如do.yaml填入API Token等信息。创建实例# 在DigitalOcean上创建3个2核4G的实例 osmedeus cloud create --provider do --size s-2vcpu-4gb --instances 3这个命令会启动3台云服务器并自动在这些服务器上安装Docker和Osmedeus Worker。查看基础设施状态osmedeus cloud list # 输出会显示实例的IP、状态、类型等信息。在云集群上运行扫描# 将扫描任务分发到刚创建的3个实例上运行 osmedeus cloud run -f general -t target.com --instances 3任务完成后销毁实例osmedeus cloud destroy --all # 或者指定实例ID销毁成本与安全提醒云扫描虽然方便但务必注意两点。第一是成本控制确保设置了预算告警并在扫描完成后及时销毁实例避免产生不必要的费用。第二是法律与授权在云上运行安全扫描工具其网络出口IP是云商的IP段这可能会触发目标的安全防护机制也可能涉及云服务商的可接受使用政策AUP。务必确保你拥有对目标进行测试的明确授权。4. 高级技巧、问题排查与生态集成掌握了基础用法和编写工作流后我们来看看一些能提升效率和可靠性的高级功能以及如何解决实践中常见的问题。4.1 利用内置函数库提升效率Osmedeus的80多个内置函数是其强大生产力的来源。它们可以直接在YAML的function类型步骤中通过eval执行避免了频繁调用外部Shell脚本。常用函数类别与示例文件操作read_file,write_file,list_files,file_exists,unzip。- name: process-data type: function eval: | // 读取上一步的结果文件 data : read_file({{.workspace}}/previous_step.json) // 进行一些处理例如过滤出状态码为200的行 filtered : filter_lines(data, 200) // 写入新文件 write_file({{.workspace}}/filtered.txt, filtered)HTTP请求http_get,http_post,download_file。用于从API获取数据或下载资源。- name: fetch-from-api type: function eval: | resp : http_get(https://api.github.com/repos/projectdiscovery/nuclei-templates/releases/latest) latest_tag : json_get(resp.Body, tag_name) log_info(Latest Nuclei templates version: latest_tag)字符串与切片处理split,join,contains,replace,unique。用于数据清洗和整理。系统与命令run_command,sleep。用于执行简单的系统命令。Nmap集成nmap_scan。这是一个非常强大的封装可以直接在函数中调用Nmap并解析其XML输出。- name: quick-nmap type: function eval: | // 对单个目标进行快速端口扫描 result : nmap_scan(target.com, -sS -T4 -p 80,443,8080,8443) open_ports : result.OpenPorts // 获取开放端口列表 for port in open_ports { log_info(Open port: port.Port / port.Protocol - port.Service) }4.2 数据库查询与结果分析Osmedeus会自动将每次扫描的运行记录、发现的资产、漏洞等信息存储在一个SQLite数据库中默认位于~/.osmedeus/database/osmedeus.db。这为历史数据查询和关联分析提供了极大便利。强大的CLI查询工具# 1. 查询针对 example.com 的所有资产并按来源分类 osmedeus assets -w example.com --by-source # 2. 查询所有扫描中发现的特定技术栈如 WordPress osmedeus assets --tech wordpress # 3. 查询所有高危和严重的漏洞 osmedeus query vulns --severity high,critical # 4. 查询最近24小时内失败的运行任务 osmedeus query runs --status failed --since 24h # 5. 直接执行SQL查询高级 osmedeus db query SELECT DISTINCT target FROM runs WHERE statusfinished ORDER BY created_at DESC LIMIT 10;Web UI 可视化运行osmedeus serve启动API服务器后访问http://localhost:8000默认端口可以打开内置的Web仪表盘。在这里你可以图形化地查看工作流执行图、资产地图、漏洞统计和详细的扫描结果比命令行更直观。4.3 常见问题与排查实录即使设计得再完善在实际操作中也会遇到各种问题。下面是我总结的一些典型问题及其解决方法。问题1工作流执行失败报错command not found: amass原因Osmedeus工作流中调用的外部工具如amass, subfinder, nuclei没有安装在系统路径中。解决确保工具已安装在终端直接运行amass看是否可用。Osmedeus不捆绑这些工具需要你自行安装。推荐使用go install或各工具的发布页面下载。使用绝对路径在工作流YAML中使用工具的绝对路径。例如command: /usr/local/bin/amass enum ...。使用Docker Runner将步骤的runner设置为docker并指定一个包含了所有所需工具的Docker镜像。这是保证环境一致性的最佳实践。问题2扫描速度很慢或者大量超时原因并发数设置过高导致本地网络或资源瓶颈目标网络状况差或存在速率限制。解决调整并发参数降低工作流或具体工具命令中的-c并发、-t线程参数值。可以从50降到10试试。使用延迟在httpx、nuclei等工具中增加-delay或-rate-limit参数在请求间加入间隔。分布式执行对于大规模目标务必使用分布式Worker将负载分摊到多台机器上。检查网络确保到目标的网络连接稳定。对于跨国扫描考虑在目标所在区域的云服务器上部署Worker。问题3结果文件混乱难以找到最终输出原因工作流中多个步骤产生同名或类似名称的文件覆盖或混淆。解决规范命名在YAML中为每个步骤的output指定一个清晰、带前缀或步骤名的文件路径。例如output: {{.workspace}}/01-subdomain-amass.txt。利用WorkspaceOsmedeus为每个目标创建的workspace目录是隔离的。所有结果都应放在{{.workspace}}变量指向的目录下。使用osmedeus assets -w target命令可以清晰地查看该workspace下的资产。设计数据流明确每个步骤的输入和输出让数据像流水线一样传递而不是所有步骤都去读写同一个全局文件。问题4如何调试一个复杂的工作流使用--dry-run模式osmedeus run -f your-workflow -t target.com --dry-run。这个命令会解析工作流展示所有将要执行的步骤及其参数但不会真正运行。用于检查流程逻辑是否正确。使用--verbose或--debug标志运行时会打印出更详细的日志包括每个步骤执行的命令、输出和错误信息。分阶段测试不要一次性运行完整的工作流。可以先注释掉后面的步骤只运行前一两步确保没问题后再逐步放开。查看运行日志每个扫描任务都有一个唯一的运行IDRun UUID。使用osmedeus query steps --run run-uuid可以查看该次运行中所有步骤的详细状态和日志。4.4 与现有生态集成Osmedeus不是一个封闭系统它可以很好地融入你现有的安全工具链。与CI/CD集成在GitLab CI或GitHub Actions的配置文件中添加一个步骤在代码合并或发布前使用Docker运行Osmedeus对 staging 环境进行安全扫描。# GitHub Actions 示例片段 - name: Security Scan with Osmedeus run: | docker run --rm -v $(pwd)/reports:/root/workspaces-osmedeus \ j3ssie/osmedeus:latest run -f web-scan \ -t ${{ secrets.STAGING_URL }} \ -p {threads: 5}与通知系统集成利用Osmedeus的http步骤类型或webhook触发器在扫描完成或发现高危漏洞时向Slack、钉钉、企业微信或自定义的API发送通知。- name: notify-slack type: http method: POST url: https://hooks.slack.com/services/your/webhook body: | { text: 扫描完成: {{.target}}\n发现漏洞: {{.vuln_count}} 个 } headers: Content-Type: application/json depends_on: [nuclei-scan]导入导出数据Osmedeus的资产和漏洞数据可以方便地通过CLI或API以JSON格式导出从而导入到你的SIEM、GRC平台或自建的安全资产管理系统中。经过上面的深度剖析和实践演示相信你已经对Osmedeus这个现代安全编排引擎有了全面的认识。从我个人的使用体验来看它的最大价值在于将安全工程师从重复、琐碎的操作中解放出来让我们能更专注于策略制定、漏洞分析和深度攻击模拟。它提供的不仅仅是一套工具更是一种高效、可扩展的安全自动化方法论。刚开始编写YAML工作流可能会觉得有些繁琐但一旦搭建好属于你自己的自动化流水线那种“一键启动坐等报告”的顺畅感会让你觉得所有的前期投入都是值得的。安全是一个对抗性极强的领域效率就是生命线。而Osmedeus正是提升我们效率的一件利器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2599948.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…