漏洞扫描网络安全运维【免费下载链接】vulsAgent-less vulnerability scanner for Linux, FreeBSD, Container, WordPress, Programming language libraries, Network devices项目地址https://gitcode.com/gh_mirrors/vu/vuls点击查看免费下载VulsVULnerability Scanner是一个用 Go 编写的无代理agent-less漏洞扫描器面向 Linux、FreeBSD、Windows、macOS、容器、WordPress、编程语言库与网络设备通过 SSH 连接目标服务器采集信息后在服务端完成漏洞检测与报告生成。本文基于当前仓库的 README.md 与源码实现系统讲解 Vuls 的设计动机、核心特性、四种扫描模式、Remote/Local/Server 三种部署架构、非 OS 包漏洞检测方案以及从构建、配置到扫描、报告的完整实战流程帮助读者快速掌握这套集中式漏洞管理工具的落地方法。背景Vuls 解决什么问题在生产环境中系统管理员每天都要面对安全漏洞分析与软件更新两大负担。为了避免停机管理员通常不会启用包管理器提供的自动更新而是选择手动更新这带来三个典型问题必须持续盯住 NVDNational Vulnerability Database等漏洞数据库跟踪新披露的漏洞当服务器上安装的软件包数量庞大时人工无法逐一监控所有软件新漏洞出现时要人工分析哪些服务器受影响成本高且容易漏掉个别服务器。Vuls 正是为解决上述问题而生其设计目标包括告知用户与系统相关的漏洞告知用户哪些服务器受影响漏洞检测全自动执行避免人工遗漏可通过 CRON 等方式定期生成报告实现漏洞管理的常态化。核心特性总览支持多平台的漏洞扫描Vuls 支持主流的 Linux/FreeBSD/Windows/macOS 发行版包括Alpine、Amazon Linux、CentOS、AlmaLinux、Rocky Linux、Debian、Oracle Linux、Raspbian、RHEL、openSUSE、openSUSE Leap、SUSE Enterprise Linux、Fedora、Ubuntu以及 FreeBSD、Windows、macOS并覆盖云环境、本地机房on-premise与运行中的 Docker 容器。从源码看发行版的自动识别在 scanner/scanner.go 的detectOS中按顺序探测先判断是否为 pseudo 模式再依次识别 Windows、Debian 系、RedHat 系、SUSE、FreeBSD、Alpine、macOS最后落到unknown类型。RedHat 系的识别逻辑位于 scanner/redhatbase.go通过读取/etc/fedora-release、/etc/oracle-release、/etc/almalinux-release、/etc/rocky-release等文件判定发行版并校验最低支持版本。高质量扫描多源漏洞数据Vuls 的检测质量建立在多类漏洞数据源之上漏洞数据库Vulnerability DatabaseNVD、JVN日文OVAL 数据Red Hat、Debian、Ubuntu、SUSE、Oracle Linux 官方 OVAL 库安全通告Security AdvisoryAlpine-secdb、Red Hat Security Advisories、Debian Security Bug Tracker、Ubuntu CVE Tracker、Microsoft CVRF系统命令结果利用yum、zypper、pkg-audit等命令输出关联 RHSA / ALAS / ELSA / FreeBSD-SA 通告及 ChangelogPoC 与 Exploit 情报Exploit Database、Metasploit-Framework 模块、awesome-cve-poc、PoC-in-GitHub、inthewilddb、nuclei-templatesCERT 通告US-CERT、JPCERTKEV 已知被利用漏洞CISA Known Exploited Vulnerabilities Catalog、VulnCheck KEV网络威胁情报MITRE ATTCK 与 CAPEC仓库的 detector/vuls2 下内置了 mitre-attack、mitre-capec、mitre-cwe、mitre-cve-v5、cisa-kev、vulncheck-kev 等丰富数据源的解析器与测试样例语言库漏洞数据基于 aquasecurity/vuln-listWordPress基于 wpscan.com API。仓库 detector/vuls2/testdata/fixtures 中的 enrich 样例如 nvd-feed-cve-v2、jvn-feed-rss、exploit-exploitdb 等直观展示了这些数据源如何被解析并参与 CVE 信息富化enrichment。动态分析Dynamic AnalysisVuls 通过 SSH 连接目标服务器并执行命令来获取服务器实时状态属于动态分析方式。它会在目标服务器更新了内核等组件但尚未重启时给出警告如RebootRequired字段见 models/scanresults.go 的 Kernel 结构避免更新了却未生效的盲区。非破坏性检测与 CI 友好扫描过程为非破坏性nondestructive testing在 AWS 上扫描前无需预授权因此非常适合与持续集成CI结合每天跑一次测试即可快速发现新漏洞支持自动生成配置文件模板可用 CIDR 自动探测服务器集合并生成配置模板支持 Email 与 Slack 通知支持日语扫描结果可通过配套软件查看终端里的 TUI Viewer 或 Web UIVulsRepo。四种扫描模式Vuls 将扫描模式建模为位标志组合定义见 config/scanmode.gofast、fast-root、deep、offline校验规则在ensure()中实现——deep与offline不能同时指定且 fast/fast-root/deep 只能三选一config/scanmode.go。未显式配置时默认使用fast。模式说明权限与特性Fast Scan无需 root 权限、无依赖对目标服务器几乎零负载支持离线扫描CentOS、AlmaLinux、Rocky Linux、Debian、Oracle Linux、Red Hat、Fedora、UbuntuFast Root Scan需要 root 权限对目标服务器几乎零负载使用yum-ps检测受更新影响但未重启的进程Amazon Linux、CentOS、AlmaLinux、Rocky Linux、Oracle Linux、Fedora、RedHat使用 debian-goodies 的checkrestart检测已更新但未重启的进程Debian、Ubuntu同样支持上述发行版的离线扫描Deep Scan深度扫描需要更多权限与依赖用于获取更完整的软件信息如 changelog 等Offline离线扫描目标服务器无需访问互联网仅上述部分发行版支持扫描模式可在config.toml中通过scanMode配置也可以在 subcmds/scan.go 的scan子命令运行期校验。除扫描模式外还有独立的**扫描模块ScanModule**概念定义见 config/scanmodule.goospkgOS 包、wordpress、lockfile依赖锁定文件、port监听端口。未配置时默认全部启用注意规则指定 port 时必须同时指定 ospkgconfig/scanmodule.go。三种部署架构Remote / Local / ServerVuls 提供三种灵活的部署方式适应不同网络环境Remote Scan Mode远程扫描只需搭建一台与所有目标服务器通过 SSH 连通的管理机在管理机上统一执行扫描Local Scan Mode本地扫描如果不想让中央 Vuls 服务器通过 SSH 连接各服务器可在每台目标服务器本地运行 Vuls 进行扫描Server Mode服务模式先在 Vuls 服务器上启动 HTTP 服务并监听端口然后在目标服务器上直接执行命令采集软件信息把结果通过 HTTP 发给 Vuls Server以 JSON 形式拿回扫描结果。该模式无需 SSH、无需安装扫描器只在目标服务器上执行 Linux 命令即可。Server 模式的服务端实现见 server/server.go/vuls端点接收application/json或text/plain两种 Content-Type 的请求text/plain时借助scanner.ViaHTTP解析包列表随后复用同一个 vuls2 数据库会话完成DetectPkgCves与EnrichVulnInfos再按cvss-over、confidence-over、ignore-unscored-cves、ignore-unfixed等过滤条件处理结果并返回。子命令server默认监听localhost:5515并提供/health健康检查端点见 subcmds/server.go。非 OS 包漏洞扫描除操作系统自带软件包外Vuls 还能扫描编程语言库、自编译软件与网络设备。相关配置字段集中在 config/config.go 的ServerInfo结构中主要包括Lockfile 扫描Lockfile based Scan扫描目标服务器上的依赖锁定文件如package-lock.json、go.mod、requirements.txt、Cargo.lock等通过lockfiles字段显式指定路径或用findLockfindLockDirs自动发现。扫描解析复用 Trivy 的 fanal 解析器见 scanner/base.go 中的 npm/yarn/pnpm/bun/cargo/gomod/pip/poetry/composer 等大量解析器导入结果转换为 PURL 格式输出见 scanner/library.go 的convertLibWithScanner。仓库 scanner/testdata/golden 下存放了大量真实锁文件的解析 golden 结果可作为参考。JAR/WAR 等 Java 归档文件由 scanner/trivy/jar 负责解析出内部依赖库。GitHub 集成GitHub Integration对接 GitHub Security Alerts将仓库清单manifests纳入扫描范围相关模型见 models/github.go。CPE 扫描Common Platform Enumeration based Scan通过cpeNames字段指定 CPE URI检测自编译软件、网络设备等没有包管理器的目标。加载配置时toCpeURI会做 CPE 规范化见 config/tomlloader.go检测阶段由 detector/detector.go 的DetectCpeURIsCves完成。OWASP Dependency Check 集成通过owaspDCXMLPath指定 OWASP Dependency Check 生成的 XML 文件解析出 CPE 后参与检测解析器位于 contrib/owasp-dependency-check/parser/parser.go调用点在 detector/detector.go。WordPress 扫描通过wordpress配置块osUser、docRoot、cmdPath、noSudo见 config/config.go扫描 WordPress 核心、主题与插件检测逻辑在 detector/wordpress.go。容器扫描containersIncluded/containersExcluded/containersOnly/containerType支持 docker、lxd、lxc控制容器级扫描${running}通配可自动包含所有运行中的容器见 scanner/scanner.go。构建与安装仓库提供 GNUmakefile 一键构建make build # 构建完整版 vuls含扫描与报告功能 make build-scanner # 构建仅扫描功能的精简版-tagsscanner用于 Server 模式下目标端采集 make install # 安装到 GOPATH各目标通过-ldflags注入版本、Git Revision 与构建时间见 GNUmakefile。也可用标准方式手动构建go build ./cmd/vuls完整版二进制注册的子命令在 cmd/scanner/main.go 中可见discover、scan、history、configtest、saas配合-v输出版本号。实战流程从配置到报告1. 生成配置文件使用discover子命令通过 CIDR 自动探测服务器并生成config.toml模板。2. 编写 config.tomlVuls 使用 TOML 配置由 config/tomlloader.go 解析[default]段提供全局默认值[servers.xxx]段定义每台目标。ServerInfo中的常用字段字段说明host目标主机名/IP支持 CIDR 展开type pseudo表示本地伪扫描user/port/keyPathSSH 连接参数可省略以使用 SSH 配置scanModefast/fast-root/deep/offlinescanModulesospkg/wordpress/lockfile/portignoreCves/ignorePkgsRegexp忽略特定 CVE 或匹配正则的软件包cpeNames/owaspDCXMLPathCPE 与 OWASP DC 集成containersIncluded等容器扫描控制lockfiles/findLock依赖锁文件扫描enablerepo/disablerepo针对 CentOS/Alma/Rocky/RHEL/Amazon/Fedora 的 yum 仓库开关目前仅允许base、updates见 config/tomlloader.go3. 验证配置vuls configtest -config/path/to/config.tomlconfigtest会检测服务器/容器 OS、检查扫描模式、检查依赖包与 sudo 免密设置见 scanner/scanner.go并输出可扫描的服务器列表。4. 执行扫描vuls scan -config/path/to/config.tomlscan子命令完整参数见 subcmds/scan.go常用参数包括-results-dir/path/to/results结果 JSON 输出目录默认当前目录下results/-timeout300除扫描外的处理超时秒默认 300-timeout-scan7200全部服务器漏洞扫描超时秒默认 7200-cachedb-path/path/to/cache.dbUbuntu/Debian changelog 本地缓存-http-proxyhttp://proxy:port走代理访问互联网数据源-pipe从 stdin 读取目标服务器列表-ips采集 IPS入侵防护系统标识-vvv打印 SSH 调试信息排查 SSH 连接问题时非常有用-debug/-quiet/-log-to-file日志控制。扫描流程scanner/scanner.go依次为并行探测各服务器/容器 OS → 校验扫描模式 → 检测平台AWS/Azure/GCP 等→ 按需检测 IPS → 并行执行各模块扫描包、端口、WordPress、库最后写入带时间戳的结果目录。5. 生成报告vuls report -config/path/to/config.tomlreport子命令subcmds/report.go从结果目录读取 JSON调用 detector/detector.go 的Detect完成漏洞检测与 CVE 信息富化再按需输出。关键参数格式-format-json、-format-csv、-format-list、-format-full-text、-format-one-line-text、-format-one-email以及 SBOM 格式-format-cyclonedx-json、-format-cyclonedx-xml、-format-spdx-json实现见 reporter/sbom过滤-cvss-over7只报告 CVSS ≥ 7、-confidence-over80默认 80、-ignore-unscored-cves、-ignore-unfixed差异对比-diff同时输出新增与消失的 CVE、-diff-plus、-diff-minus配合history子命令可用于跟踪漏洞变化趋势通知渠道-to-slack、-to-email、-to-chatwork、-to-googlechat、-to-telegram、-to-syslog、-to-http、-to-localfile、-to-s3、-to-azure-blobTrivy 数据库-trivy-cachedb-dir、-trivy-db-repository、-trivy-java-db-repository、-trivy-skip-java-db-update用于语言库漏洞检测的数据源管理语言-langen|ja最后可附带 RFC3339 格式的时间参数指定只报告某个扫描批次。未显式指定格式时默认输出 list 格式subcmds/report.go。若不加任何-to-*渠道结果仅输出到 stdout。6. 定期自动化用 CRON 定时执行scanreport -to-slack/-to-email即可实现每日漏洞巡检邮件与 Slack 通知支持日语。报告渠道的配置项Webhook URL、Token、SMTP 服务器等分别定义在 config/slackconf.go、config/smtpconf.go、config/chatworkconf.go 等文件中并在report/server执行前的ValidateOnReport中统一校验config/config.go。使用限制Vuls 不做什么需要明确的是Vuls 不负责更新有漏洞的软件包。它只负责发现、定位与报告漏洞更新动作仍由管理员结合企业变更流程手动完成。源码阅读指引若想深入理解 Vuls 的实现建议按以下路径阅读当前仓库入口与子命令cmd/scanner/main.go、subcmds/scan.go、subcmds/report.go配置体系config/config.go、config/tomlloader.go、config/scanmode.go、config/scanmodule.go扫描引擎scanner/scanner.go、scanner/base.go以及各发行版实现scanner/redhatbase.go、scanner/debian.go、scanner/alpine.go 等检测与富化detector/detector.go、detector/vuls2含各数据源解析器与 testdata/fixtures 测试样例报告输出reporterstdout、slack、email、s3、azureblob、syslog、sbom 等 Writer数据模型models/scanresults.go、models/vulninfos.go、models/library.go构建脚本GNUmakefile。小结Vuls 以一台管理机 SSH的 agent-less 形态把分散在各服务器上的漏洞信息收集、多源漏洞库比对、影响面分析与报告通知集中到一条自动化流水线中discover生成配置 →configtest验证可扫描性 →scan采集与初筛 →report检测富化与多渠道输出配合 CRON 即可形成常态化漏洞管理闭环。其 fast/fast-root/deep/offline 四种模式、Remote/Local/Server 三种架构以及 Lockfile/CPE/OWASP DC/WordPress/容器等多模块扫描能力使其在仅靠标准包管理无法覆盖的现代软件供应链场景语言库、自编译软件、网络设备中同样具备实战价值。赞分享漏洞扫描网络安全运维【免费下载链接】vulsAgent-less vulnerability scanner for Linux, FreeBSD, Container, WordPress, Programming language libraries, Network devices项目地址https://gitcode.com/gh_mirrors/vu/vuls点击查看免费下载相关推荐PCSX2 性能优化完整指南先改设置再谈升级硬件PCSX2 性能优化完整指南先改设置再谈升级硬件 PCSX2 是最活跃的开源 PS2 模拟器新手的性能困扰大多集中在三类整体帧率上不去、进新场景随机卡顿虚拟化桌面应用图形学Vuls漏洞扫描终极指南全量扫描与增量扫描效率深度对比Vuls漏洞扫描终极指南全量扫描与增量扫描效率深度对比 Vuls是一款功能强大的无代理漏洞扫描工具支持Linux、FreeBSD、容器、WordPress、漏洞扫描网络安全运维上一篇Redux Thunk状态迁移自动化工具编写脚本下一篇DLSS Swapper 完全指南快速升级或回退游戏里的 DLSS / FSR / XeSS 版本创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考