本文档为 English 版本的中文翻译。
PRX-SD 提供 sd 命令行工具,用于威胁检测和系统防护。
| 选项 | 说明 | 默认值 |
|---|---|---|
--log-level <LEVEL> |
日志详细程度:trace、debug、info、warn、error |
warn |
--data-dir <PATH> |
签名、隔离区、配置的数据目录 | ~/.prx-sd/ |
扫描文件或目录中的威胁。
sd scan /path/to/file
sd scan /home --recursive
sd scan /tmp --auto-quarantine --remediate
sd scan /path --json
sd scan /path --report report.html| 选项 | 说明 | 默认值 |
|---|---|---|
-r, --recursive <BOOL> |
递归扫描子目录 | 对目录默认为 true |
--json |
以 JSON 格式输出结果 | |
-t, --threads <NUM> |
扫描线程数 | CPU 核心数 |
--auto-quarantine |
自动隔离恶意文件 | |
--remediate |
自动修复:终止进程、隔离文件、清除持久化机制 | |
-e, --exclude <PATTERN> |
排除的 glob 模式(可重复使用) | |
--report <PATH> |
导出结果为独立的 HTML 报告 |
扫描运行中进程的内存以检测威胁(仅限 Linux,需要 root 权限)。
sudo sd scan-memory
sudo sd scan-memory --pid 1234
sudo sd scan-memory --json| 选项 | 说明 |
|---|---|
--pid <PID> |
扫描特定进程(省略则扫描全部进程) |
--json |
以 JSON 格式输出 |
扫描 USB/可移动设备。
sd scan-usb
sd scan-usb /dev/sdb1 --auto-quarantine| 选项 | 说明 |
|---|---|
--auto-quarantine |
自动隔离检测到的威胁 |
检查 rootkit 指标(仅限 Linux)。
sudo sd check-rootkit
sudo sd check-rootkit --json检查项:隐藏进程、内核模块完整性、LD_PRELOAD 钩子、/proc 异常。
实时文件系统监控。
sd monitor /home /tmp
sd monitor /home --block
sd monitor /home --daemon| 选项 | 说明 |
|---|---|
--block |
在文件被访问前拦截恶意文件(Linux 下需要 root 权限和 fanotify) |
--daemon |
以后台守护进程运行 |
以后台守护进程运行,提供实时监控和自动更新。
sd daemon
sd daemon /home /tmp --update-hours 2| 选项 | 说明 | 默认值 |
|---|---|---|
--update-hours <NUM> |
签名更新检查间隔(小时) | 4 |
默认监控路径:/home、/tmp。
管理加密隔离区(AES-256-GCM)。
sd quarantine list
sd quarantine restore <ID>
sd quarantine restore <ID> --to /safe/path
sd quarantine delete <ID>
sd quarantine delete-all --yes
sd quarantine stats| 子命令 | 说明 |
|---|---|
list |
列出所有被隔离的文件 |
restore <ID> |
恢复隔离文件(使用 --to <PATH> 指定替代位置) |
delete <ID> |
永久删除隔离文件 |
delete-all |
删除所有隔离文件(使用 --yes 跳过确认) |
stats |
显示隔离区统计信息 |
检查并应用签名数据库更新。
sd update
sd update --check-only
sd update --force
sd update --server-url https://custom-server.example.com| 选项 | 说明 |
|---|---|
--check-only |
仅检查是否有可用更新 |
--force |
即使已是最新版本也强制重新下载 |
--server-url <URL> |
覆盖更新服务器 URL |
从黑名单文件导入哈希签名。
sd import /path/to/blocklist.txt文件格式:每行一条记录,格式为 hex_hash malware_name。以 # 开头的行为注释。
# Example blocklist
275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f EICAR.Test
ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa Ransom.WannaCry
导入 ClamAV 签名数据库文件。
sd import-clamav main.cvd daily.cvd
sd import-clamav custom.hdb custom.hsb支持格式:.cvd、.cld、.hdb、.hsb。
显示引擎版本、签名数据库状态和系统信息。
sd info显示内容:版本号、YARA 规则数量、哈希签名数量、隔离区统计、平台信息。
管理引擎配置。
sd config show
sd config set scan.max_file_size 104857600
sd config set scan.follow_symlinks true
sd config reset| 子命令 | 说明 |
|---|---|
show |
显示当前配置 |
set <KEY> <VALUE> |
设置配置项(使用点分隔的路径) |
reset |
重置为默认配置 |
值支持 JSON 类型:布尔值(true/false)、数字、null、数组、对象。
管理威胁修复策略。
sd policy show
sd policy set on_malicious "kill,quarantine,clean"
sd policy set on_suspicious "report,quarantine"
sd policy set kill_processes true
sd policy reset| 操作 | 说明 |
|---|---|
show |
显示当前策略 |
set <KEY> <VALUE> |
设置策略字段 |
reset |
重置为默认策略 |
策略键:
| 键 | 说明 | 可选值 |
|---|---|---|
on_malicious |
针对恶意威胁的处置动作 | 逗号分隔:report、quarantine、block、kill、clean、delete、isolate、blocklist |
on_suspicious |
针对可疑威胁的处置动作 | 同上 |
kill_processes |
终止关联进程 | true / false |
clean_persistence |
清除持久化机制 | true / false |
network_isolation |
隔离网络连接 | true / false |
audit_logging |
将所有操作记录到审计日志 | true / false |
管理定时扫描任务。使用平台原生调度器:systemd timers(Linux)、cron(Linux/macOS)、launchd(macOS)、Task Scheduler(Windows)。
sd schedule add /home --frequency daily
sd schedule add /tmp --frequency hourly
sd schedule status
sd schedule remove| 子命令 | 说明 |
|---|---|
add <PATH> |
注册周期性定时扫描 |
remove |
移除定时扫描任务 |
status |
显示当前调度状态 |
频率选项: hourly、4h、12h、daily、weekly(默认:weekly)。
管理 Webhook 告警端点。
sd webhook list
sd webhook add my-slack https://hooks.slack.com/services/... --format slack
sd webhook add my-discord https://discord.com/api/webhooks/... --format discord
sd webhook add custom https://example.com/alert --format generic
sd webhook remove my-slack
sd webhook test| 子命令 | 说明 |
|---|---|
list |
列出已配置的 Webhook |
add <NAME> <URL> |
添加 Webhook(--format:slack、discord、generic) |
remove <NAME> |
按名称移除 Webhook |
test |
向所有 Webhook 发送测试告警 |
管理邮件告警配置。
sd email-alert configure
sd email-alert test
sd email-alert send "Trojan.Generic" "high" "/tmp/malware.exe"| 子命令 | 说明 |
|---|---|
configure |
创建或查看 SMTP 邮件配置 |
test |
发送测试告警邮件 |
send <NAME> <LEVEL> <PATH> |
发送自定义告警邮件 |
管理广告拦截和恶意域名过滤。
sd adblock enable
sd adblock disable
sd adblock sync
sd adblock stats
sd adblock check https://suspicious-site.example.com
sd adblock log --count 100
sd adblock add custom-list https://example.com/blocklist.txt --category malware
sd adblock remove custom-list| 子命令 | 说明 |
|---|---|
enable |
下载黑名单并安装 DNS 拦截(/etc/hosts) |
disable |
移除 DNS 拦截条目 |
sync |
强制重新下载所有过滤列表 |
stats |
显示过滤统计信息 |
check <URL> |
检查某个 URL/域名是否被拦截 |
log |
显示最近被拦截的条目(-c, --count <NUM>,默认:50) |
add <NAME> <URL> |
添加自定义过滤列表(--category:ads、tracking、malware、social) |
remove <NAME> |
移除过滤列表 |
启动本地 DNS 代理,支持广告拦截、IOC 和自定义黑名单过滤。
sudo sd dns-proxy
sudo sd dns-proxy --listen 127.0.0.1:5353 --upstream 1.1.1.1:53| 选项 | 说明 | 默认值 |
|---|---|---|
--listen <ADDR> |
监听地址 | 127.0.0.1:53 |
--upstream <ADDR> |
上游 DNS 服务器 | 8.8.8.8:53 |
--log-path <PATH> |
JSONL 查询日志路径 | /tmp/prx-sd-dns.log |
从 JSON 扫描结果生成独立的 HTML 报告。
sd scan /path --json | sd report report.html
sd report report.html --input results.json| 选项 | 说明 | 默认值 |
|---|---|---|
--input <FILE> |
输入 JSON 文件(- 表示标准输入) |
-(标准输入) |
显示守护进程状态,包括 PID、运行时间、签名版本和已拦截威胁数。
sd status安装文件管理器右键扫描集成。
sd install-integration支持的文件管理器:
- Linux: Nautilus (GNOME Files)、Dolphin (KDE)、Nemo (Cinnamon)
- macOS: Finder Quick Action
检查并从 GitHub Releases 应用二进制更新。
sd self-update
sd self-update --check-only| 选项 | 说明 |
|---|---|
--check-only |
仅检查是否有可用更新 |
# Install
curl -fsSL https://raw.githubusercontent.com/openprx/prx-sd/main/install.sh | bash
# Import additional signatures
sd import my-custom-hashes.txt
sd import-clamav main.cvd daily.cvd
# Verify setup
sd info# Start daemon (monitors /home and /tmp, updates every 4h)
sd daemon
# Or manual scan
sd scan /home --recursive --auto-quarantine
# Check status
sd status# Scan with full remediation
sudo sd scan /tmp --auto-quarantine --remediate
# Check memory for in-memory threats
sudo sd scan-memory
# Check for rootkits
sudo sd check-rootkit
# Review quarantine
sd quarantine list
sd quarantine restore <ID> --to /safe/location# Schedule weekly scan
sd schedule add /home --frequency weekly
# Set up alerts
sd webhook add slack https://hooks.slack.com/services/T.../B.../xxx --format slack
sd email-alert configure
# JSON output for scripts
sd scan /path --json | jq '.threats[] | .name'