Argus

module
v0.0.0-...-bbb0290 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2026 License: MIT

README

👁️ Argus - 新一代自动化威胁狩猎与应急响应平台

Go Platform License Offline Rules AI

面向应急响应、主机取证、威胁狩猎的单机专业版安全工具

English | 日本語


📖 项目简介

Argus 取名自希腊神话中的“百眼巨人” (Argus Panoptes),寓意以永不闭合的眼睛守护系统安全。

它是一款面向 应急响应、主机取证、威胁狩猎、蓝队排查 的现代化跨平台安全工具。当前版本重点强化了“单机专业版”能力:离线可用、规则外置、在线更新、低扰动默认扫描、结构化报告、可信发布

Argus 支持 WindowsLinuxmacOS。Windows 平台尽量减少对 cmd.exepowershell.exe 等外部命令的依赖,优先通过平台 API 获取系统状态;Linux 平台则以 /proc、系统日志、账户配置、启动项和常见持久化位置为核心;macOS 当前可运行通用本地模块,包括主机、进程、网络、文件、Webshell 和恶意软件规则扫描。


🎯 核心特性
1. 离线优先的单机工具
  • 默认扫描不主动联网,适合内网、隔离区、应急现场。
  • --offline 会强制禁用 AI、威胁情报查询和更新类网络请求。
  • 扫描报告默认保存在本地 reports/ 目录。
2. 外置规则库与在线更新
  • 完整 YARA 规则库不再打进主二进制,降低发布物误报面。
  • 默认使用二进制同级目录下的隐藏规则目录 .rule/,不需要每次手动指定。
  • 支持自定义外置规则目录,适合 U 盘、内网共享、离线包分发。
  • 新增 argus rules update/status/verify/list
  • 在线更新直接拉取当前项目使用的上游规则源。
  • rules.lock.json 记录规则版本、来源、SHA256、许可证、更新时间和启用状态。
3. 多档扫描 Profile
Profile 定位 默认行为
quick 快速巡检 主机、进程、网络概览
standard 默认推荐 低扰动应急初扫,不默认启用内存/堆栈
deep 深度排查 可显式启用内存、堆栈、更多平台插件
forensic 取证模式 带案件编号、规则版本、证据摘要和更完整报告
4. Windows Native 检测能力
  • 进程枚举:CreateToolhelp32Snapshot
  • 进程路径与签名:QueryFullProcessImageNamewintrust.dll
  • 内存区域扫描:VirtualQueryExReadProcessMemory
  • 取证痕迹:Prefetch、ShimCache、LNK、RecentDocs
  • 持久化:注册表启动项、服务、计划任务、映像劫持等
5. Linux 应急排查能力
  • /etc/passwd、UID=0、异常账户检查
  • SSH Key、Shell History、Auth 日志分析
  • Cron、systemd、rc.local、inetd 等持久化位置检查
  • /tmp/var/tmp/dev/shm 等高危落地点扫描
6. 结构化报告
  • JSON:机器可读,适合归档、二次分析、平台接入。
  • HTML:人工阅读,展示摘要、覆盖范围、跳过模块、发现项。
  • JSONL:可选输出,适合日志流水线。
  • 报告包含规则版本、扫描 Profile、跳过模块、风险统计、证据摘要、简化时间线。

🧱 推荐发布包结构
argus-release/
  argus.exe                 # Windows 二进制;Linux 下为 argus
  .rule/
    rules.lock.json         # 规则版本、来源、SHA256、许可证、启用状态
    RULES_LICENSE.md        # 当前规则包的许可证摘要
    malware_rules/
    webshell_rules/
  config/
    argus.yaml              # 默认 profile、规则目录、报告策略
    rule_sources.yaml       # 上游规则源配置
  SECURITY.md
  FALSE_POSITIVE.md
  PRIVACY.md
  RULES_LICENSE.md
  SHA256SUMS                # 建议发布时生成

如果没有同级 .rule/,Argus 会自动降级到最小内置规则,报告中会显示规则覆盖不足。


🚀 快速开始
1. 编译
# 当前平台
make build

# 生成校验和
make checksums

也可以直接使用 Go,但发布包建议用 make buildmake build 默认带 -trimpath、去符号和空 buildid,能减少本机源码路径泄漏。

go build -trimpath -ldflags "-s -w -buildid=" -o argus ./cmd/argus

Argus 主线使用 YARA-X Go binding,不再提供轻量 YARA 兼容模式。编译前需要先安装 YARA-X CAPI 和 pkg-config:

# macOS 示例
brew install yara-x pkg-config
CGO_ENABLED=1 go build -tags static_link -trimpath -ldflags "-s -w -buildid=" -o argus ./cmd/argus

规则扫描会直接使用 YARA-X 编译和执行规则,支持 hex、regex、condition、pe/elf 等 YARA 模块;遇到当前环境无法编译的规则文件会跳过并继续加载可用规则。

Linux/Windows 发布包也必须链接对应目标平台的 YARA-X CAPI。官方发布包会把 YARA-X 静态集成进 argus/argus.exe,用户侧不需要额外安装 YARA-X 或 yr

2. 查看版本
argus version

用途:确认二进制版本、commit、构建时间。发布包排障时建议先记录该输出。

3. 默认离线扫描
argus scan --offline

用途:推荐的现场应急初扫方式。默认读取二进制同级 .rule/,报告输出到 reports/standard 默认低扰动,不主动启用内存/堆栈深度扫描。

4. 快速巡检
argus scan --profile quick --offline

用途:快速查看主机、进程、网络概况,适合先判断机器是否值得深挖。

5. 深度扫描
argus scan --profile deep --module memory,stack

用途:显式启用内存和堆栈相关能力。当前 MemoryScanStackHunter 是 Windows 专属模块;在 macOS/Linux 上执行该命令会在终端和报告里标明平台不可用。该类能力可能需要管理员权限,也可能被 EDR/AV 视为敏感取证行为,所以不作为默认扫描。

6. 取证模式
argus scan --profile forensic --case-id CASE-001

用途:需要案件编号、规则版本、跳过模块、证据摘要和完整报告时使用。

7. 指定模块扫描
argus all
argus scan all
argus scan --module all
argus scan --module process,network
argus scan --module webshell
argus scan --module memory,stack --profile deep

常用模块关键字:

关键字 匹配模块 规则/引擎依据 用途
process / proc ProcessScan config/process_rules.yaml 行为规则 进程命令行、父子进程、LoLBin、反弹 Shell、凭据转储、恢复破坏等
network / net NetworkScan / ThreatIntel config/network_rules.yaml 行为规则;ThreatIntel 需显式联网/API 网络连接、异常联网进程、恶意端口、可疑域名、连接数量异常
file FileScan config/file_rules.yaml 行为规则 文件权限、可疑路径、敏感文件、启动项、小文件内容特征
malware MalwareScan .rule/malware_rules 完整 YARA-X 规则 当前平台恶意软件、Hacktool、APT、勒索、后门等文件内容检测
webshell WebshellScan .rule/webshell_rules 完整 YARA-X 规则 + 内置熵值/关键词兜底 Web 目录脚本和 Webshell 规则检测
memory / mem MemoryScan / StackHunter Windows MemoryScan 复用 .rule/malware_rules YARA-X;StackHunter 为栈/内存启发式 深度内存和堆栈检测
account / user 账户插件 平台 API、/etc/passwd、用户/组配置启发式 Windows/Linux 账户安全检查
persist 持久化插件 内置 persistence_rules.yaml 行为规则,可复制到 config/ 覆盖 + 平台 API/文件位置 注册表、服务、启动项、计划任务等

all 表示当前平台可用的全部本地模块一把跑完,等价于 --module all --profile forensic。例如 macOS 版会运行通用模块,但不会运行 Windows 专属的 MemoryScanStackHunter;这些不可用项会写进 skipped_modules[]。外部威胁情报仍受 --no-network 控制;如果要连 VirusTotal/AbuseIPDB 这类外部服务,需要显式加 --no-network=false 并配置 API Key。

ProcessScanNetworkScanFileScan 使用项目内 YAML 行为规则:process_rules.yamlnetwork_rules.yamlfile_rules.yaml。它们分别检测进程命令行/父子进程、网络连接/端口/域名、文件权限/可疑路径/启动项/小文件内容特征。MalwareScanWebshellScan 使用 .rule/ 里的完整 YARA 规则扫描文件内容;Windows MemoryScan 会复用 malware YARA 扫内存。

YAML 行为规则的调研依据:

来源 映射到 Argus 的内容
SigmaHQ/sigma Windows process_creation 类规则思路:PowerShell、Certutil、Bitsadmin、MSHTA、Regsvr32、Rundll32、计划任务、服务创建、Office/WPS 拉起脚本等
MITRE ATT&CK ATT&CK 标签和战术归类:T1059 命令解释器、T1003.001 LSASS 凭据转储、T1490 删除恢复、T1543 服务持久化、T1053 计划任务等
LOLBAS Windows 白利用程序行为:certutilbitsadminmshtaregsvr32rundll32msiexecinstallutilmsbuild
GTFOBins Linux/macOS 常见反弹 Shell、解释器执行、ncsocatbashpythonperl 等命令特征
腾讯云 kdevtmpfsi 挖矿木马应急案例 kinsingkdevtmpfsi/etc/ld.so.preload/etc/libsystem.sobot.service、crontab 持久化、进程端口隐藏
奇安信 95015 应急响应分析报告 SSH 弱口令、/tmp/up.txt、写入 SSH 公钥、计划任务维持挖矿木马、口令复用横向传播
Red Canary Linux Coinminers Kinsing/TeamTNT 类挖矿木马常用 authorized_keyscrontab 做持久化
Linux systemd/cron persistence hunting /etc/cron.*/var/spool/cron、systemd service/timer 等 Linux 持久化巡检点
Webshell SIEM 检测思路 Web 服务进程拉起 cmd、Shell、解释器、扫描器或代理工具的父子进程行为
FRP 执行检测思路 frpc/frps/nps/npc/chisel/gost/ew/iox/ngrok 等代理隧道工具的进程、端口和配置特征

🧩 命令说明
主命令
argus --help
argus all
argus scan [flags]
argus scan all
argus rules [command]
argus modules
argus graph
argus version
命令 用途
argus scan 执行主机扫描
argus all 一键运行全部本地模块
argus scan all 同上,适合保持 scan 子命令风格
argus rules status 查看当前规则库状态
argus rules update 从上游更新规则库
argus rules verify 校验规则文件 SHA256、lock 和解析兼容性
argus rules list 列出规则文件,可显示来源和许可证
argus modules 查看模块、扰动等级、联网要求和管理员/root 要求
argus graph 生成 DOT 攻击图谱快照
argus version 输出版本、commit、构建时间
全局参数
参数 示例 用途
--profile --profile standard 选择扫描策略:quickstandarddeepforensic
--offline / -o --offline 离线模式,禁用 AI、威胁情报和更新类网络请求
--no-network --no-network=false 控制扫描期间是否允许外部网络请求,默认 true
--rules-dir --rules-dir /tmp/rules 指定外置规则目录;默认是二进制同级 .rule/
--output-dir --output-dir ./reports 指定报告输出目录
--case-id --case-id CASE-001 写入报告的案件编号或任务编号
--jsonl --jsonl 额外输出 JSONL 发现明细
--module / -m --module process,network 只运行匹配模块
--ai --ai deepseek 显式启用 AI 辅助研判
--key --key YOUR_API_KEY AI API Key

📦 规则库管理

默认规则目录是 二进制同级 .rule/。正常使用不需要手动指定:

argus rules update
argus rules status
argus rules verify

只有你想用 U 盘、共享目录或测试目录时,才需要 --rules-dir

查看规则状态
argus rules status

查看规则目录、状态、版本、更新时间和文件数。

在线更新规则
argus rules update --source upstream

config/rule_sources.yaml 中配置的上游源下载规则。当前默认规则源包括:

来源 用途 许可证
Neo23x0/signature-base THOR/LOKI 风格 YARA 与 Webshell 规则 Detection Rule License (DRL) 1.1
elastic/protections-artifacts Elastic 安全 YARA 规则 Elastic License v2

更新流程:

  1. 下载到临时目录。
  2. 生成 rules.lock.json
  3. 解析规则并校验 SHA256。
  4. 校验通过后替换旧规则目录。
  5. 失败时保留旧规则。
校验规则库
argus rules verify

用于发现规则缺失、SHA256 不匹配、lock 异常或规则解析失败。

列出规则
argus rules list
argus rules list --source
argus rules list --license --source

用于审计规则文件、来源和许可证,便于交付给客户或安全团队审批。


📊 报告输出

扫描结束后默认输出到 reports/

reports/
  argus_report_YYYYMMDD_HHMMSS.json
  argus_report_YYYYMMDD_HHMMSS.html
  argus_findings_YYYYMMDD_HHMMSS.jsonl   # 使用 --jsonl 时生成
  argus_ai_report.txt                    # 显式启用 AI 且允许联网时生成

JSON 报告字段:

字段 说明
scan_session 主机、用户、系统、时间、耗时、离线状态
rule_bundle 规则目录、lock 路径、版本、更新时间、来源、文件数
profile 本次扫描策略
coverage 已加载插件、跳过插件、规则覆盖、网络策略、高扰动状态
summary critical/high/medium/low/info/pass/error 统计
findings[] 发现项,包含等级、评分、置信度、规则名、证据和建议
evidence[] 从发现项提炼的证据摘要
timeline[] 简化时间线
skipped_modules[] 被跳过模块及原因

🤖 AI 辅助研判

AI 是可选能力,不会在离线或 --no-network 下运行。

argus scan --profile standard --no-network=false --ai deepseek --key YOUR_API_KEY

AI 分析只发送筛选后的中高危结构化结果。真实客户环境使用前应确认数据出境和隐私合规要求。


🔐 权限说明

先看当前平台模块和权限要求:

argus modules

常见权限要求:

平台 模块 权限建议 原因
Windows WindowsAccountScan 管理员 枚举本地账户、管理员组、隐藏账户信息更完整
Windows WindowsPersistence 管理员 HKLM、服务、计划任务、系统启动项读取更完整
Windows Forensics 管理员 Prefetch、ShimCache、RecentDocs、部分注册表取证位置需要更高权限
Windows MemoryScan 管理员 读取其他进程内存需要管理员权限更完整
Windows StackHunter 管理员 线程/堆栈类深度检查需要管理员权限更完整
Linux LinuxAccountScan root /etc/shadow、UID/口令状态检查需要 root
Linux LinuxBackdoorScan root SUID、系统目录、部分持久化路径读取更完整
Linux LinuxLogScan root /var/log/auth.log、journal 等日志读取更完整
macOS 通用模块 普通用户可运行 当前不包含 Windows 内存/堆栈和 Linux 系统深度插件

没有管理员/root 权限时 Argus 也会尽量运行,但报告覆盖会下降,终端会提示哪些模块在高权限下结果更完整。


🕸️ 攻击图谱
argus graph

生成 attack_graph.dot。可用 Graphviz 渲染:

dot -Tpng attack_graph.dot -o attack_graph.png

🔧 配置文件
config/argus.yaml
argus:
  default_profile: standard
  rules_dir: .rule
  output_dir: reports
  network:
    default_no_network: true
  reports:
    json: true
    html: true
    jsonl: false
config/rule_sources.yaml
rule_sources:
  - name: neo23x0-thor-hacktools
    source: Neo23x0/signature-base
    url: https://raw.githubusercontent.com/Neo23x0/signature-base/master/yara/thor-hacktools.yar
    destination: malware_rules/thor-hacktools.yar
    license: Detection Rule License (DRL) 1.1
    group: malware
    enabled: true
行为规则配置
配置文件 调用模块 规则类型
config/process_rules.yaml ProcessScan 进程命令行、父子进程、LoLBin、凭据转储、勒索前置、防御关闭、挖矿、代理隧道、内网探测、Linux/macOS 持久化命令
config/network_rules.yaml NetworkScan 异常联网进程、恶意/高危端口、矿池/隧道/临时托管域名、单进程大量外连、对外监听端口
config/file_rules.yaml FileScan 可疑文件名、可疑路径、敏感文件、小文件内容特征、Web 根目录异常脚本、LD_PRELOAD Rootkit、systemd/cron/SSH 持久化
内置 persistence_rules.yaml,可复制到 config/ 覆盖 Windows Persistence 注册表、服务、启动项、计划任务、WMI 持久化

🆕 2026-05-08 更新说明

本次主要更新:

  • 命令简化:新增 argus allargus scan all--module allargus modules
  • 规则体系:默认使用同级 .rule/,支持 rules status/update/verify/list,主线接入完整 YARA-X。
  • 行为规则:补强 process_rules.yamlnetwork_rules.yamlfile_rules.yaml,覆盖 LoLBin、挖矿、代理隧道、持久化、Webshell 行为等。
  • 报告输出:JSON/HTML 增加扫描会话、规则来源、跳过模块、中文网络策略和 DOT 攻击图谱。
  • 发布工程:构建默认使用 -trimpath、空 build id 和版本注入,新增 GitHub Actions 发布构建工作流。

✅ 当前验证状态

已验证:

go test ./...
make build
argus rules update --source upstream
argus rules verify
argus scan --profile quick --offline --jsonl

🛣️ 路线图
🚧 进行中
  • Linux LKM Rootkit 检测
  • 更完整的规则元数据与 MITRE ATT&CK 映射
  • 更强的取证时间线和事件关联
  • Windows 代码签名和发布包自动校验
📅 计划中
  • macOS 通用模块基础支持
  • macOS 深度取证模块
  • 容器/云环境检测
  • 本地 IOC 库
  • Sigma 规则支持
  • 报告模板进一步美化

📄 许可证

Argus 主程序采用 MIT License

规则库沿用上游许可证。当前默认规则源涉及 Elastic License v2 和 Detection Rule License (DRL) 1.1,使用和再分发前请确认符合你的业务场景。


⚠️ 免责声明

本工具仅供授权安全测试、应急响应和防御研究使用。请勿用于未授权目标。使用者需自行承担因滥用本工具产生的一切法律责任。

Directories

Path Synopsis
cmd
argus command
internal
ai

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL