ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

dcg Windows包详解:del /s、rd /s与PowerShell破坏性命令防护清单

dcg Windows包详解:del /s、rd /s与PowerShell破坏性命令防护清单 dcg Windows包详解del /s、rd /s与PowerShell破坏性命令防护清单【免费下载链接】destructive_command_guardThe Destructive Command Guard (dcg) is for blocking dangerous git and shell commands from being executed by agents.项目地址: https://gitcode.com/GitHub_Trending/de/destructive_command_guarddcgDestructive Command Guard的 Windows 包是专为原生 Windows 环境打造的破坏性命令防护清单能拦截 AI 编程代理在 cmd 和 PowerShell 中执行的del /s、rd /s、Remove-Item -Recurse -Force、Format-Volume等高危操作。作为一道高性能安全钩子dcg 在命令执行前毫秒级拦截并在 Windows 上开箱即用地保护文件系统与磁盘。为什么 Windows 需要专属的防护包dcg 的核心思路是AI 代理偶尔会执行灾难性命令如git reset --hard、rm -rf ./src而 dcg 会在这些命令执行之前将其拦截。但这里有一个关键问题其他防护包针对的都是 Unix 风格的命令rm -rf、git reset --hard。而原生 Windows 的破坏性词汇表完全不同——cmd 里是del /sPowerShell 里是Remove-Item -Recurse这些命令在 Unix 包中根本不存在。因此 dcg 提供了4 个 Windows 专属安全包源码位于 src/packs/windows/设计文档见 src/packs/windows/mod.rs包 ID覆盖范围默认状态windows.filesystemcmd 与 PowerShell 文件递归删除✅ Windows 默认开启windows.system磁盘/分区/卷影副本级灾难操作✅ Windows 默认开启windows.misc注册表、账户、服务、WSL可选启用windows.powershell高级 PowerShell 破坏性 cmdlet可选启用这些包在所有平台注册但仅在 Windows 上默认开启cfg(windows)——全新安装的 Windows 用户零配置即受保护而 Unix 系统则不会为 Windows 动词付出任何检测开销。windows.filesystem拦截 del /s 与 rd /s这是 Windows 上价值最高的防护包对应源码 src/packs/windows/filesystem.rs。它拦截两大类命令cmd.exe 侧被拦截的命令风险说明严重级别del /s含erase /s递归删除目录树中所有匹配文件 criticalrd /s含rmdir /s删除目录及其全部内容 criticalformat 盘符:擦除整个卷 criticalPowerShell 侧被拦截的命令风险说明严重级别Remove-Item -Recurse -Force无回收站、无提示地删除整棵目录树 criticalRemove-Item -Recurse无回收站地永久删除目录树 criticalClear-Content就地清空文件内容无法撤销 highClear-RecycleBin永久清空回收站删除彻底不可恢复 medium[System.IO.Directory]::Delete($path, $true).NET API 等价于Remove-Item -Recurse -Force critical一个精妙的设计PowerShell 用户习惯用短别名rm、del、ri、erase代替Remove-Item这个包对全部别名都做了识别防止代理换个写法绕过防护。甚至连.NET的[IO.Directory]加速写法也一网打尽——因为 PowerShell 可以零外部工具直接调用这些 API。不误伤-WhatIf 预览与 /? 帮助被放行dcg 采用白名单优先策略。以下安全命令始终放行带-WhatIf的Remove-Item、Clear-Content等预览模式不实际执行del /?、rd /?等查看帮助的命令windows.system守住磁盘最后的防线对应源码 src/packs/windows/system.rs。这个包专治毁盘级操作其中卷影副本销毁是勒索软件的标志性行为也是常见的人为数据丢失来源——它会摧毁系统还原点和备份工具依赖的快照。被拦截的命令风险说明严重级别vssadmin delete shadows摧毁全部卷影副本系统还原 备份 criticalwmic shadowcopy delete同上旧版接口 criticalFormat-Volume擦除卷的文件系统与数据 criticalClear-Disk移除磁盘上所有分区和数据 criticalRemove-Partition删除分区及其数据 criticaldiskpart含 clean/delete/format重新配置或抹除磁盘与分区 highcipher /w覆写空闲空间使已删文件彻底不可恢复 highbcdedit /delete删除启动配置项 high被拦截时dcg 还会给出安全替代建议比如把vssadmin delete shadows换成只读的vssadmin list shadows在动卷影副本前先执行wbadmin start backup做备份。windows.misc注册表、账户与 WSL 的隐形陷阱对应源码 src/packs/windows/misc.rs。这些命令单个看都不显眼但后果往往超出预期被拦截的命令风险说明安全替代建议reg delete删除注册表键值可能破坏应用甚至系统先reg export导出备份net user /delete、net localgroup /delete删除用户账户或本地组先net user列出现有账户确认sc delete删除 Windows 服务先sc query确认目标schtasks /delete删除计划任务schtasks /querywsl --unregister不可逆摧毁 WSL 发行版及其整个文件系统先wsl --export打包备份robocopy /MIR镜像同步会删除目标端多余文件即 Unix 中rsync --delete的 Windows 等价物改用/E只拷贝不删除其中robocopy /MIR是最容易被忽视的隐形删除——同步操作表面上是复制实则悄悄抹掉目标端所有源端不存在的文件。windows.powershell高级 cmdlet 防护清单对应源码 src/packs/windows/powershell.rs。这个包覆盖文件系统之外的 PowerShell 破坏性 cmdlet默认关闭按需启用在配置中添加enabled [windows.powershell]即可被拦截的命令风险说明严重级别Remove-Item HKLM:\...删除注册表/证书/WSMan 提供程序条目 highRemove-ItemProperty、Clear-Item*删除注册表值或项内容 highRemove-LocalUser、Remove-LocalGroup删除本地账户或组 highDisable-ComputerRestore关闭系统还原并丢弃还原点 highRemove-VM、Remove-VMSnapshot删除虚拟机或检查点 highStop-Computer、Restart-Computer -Force强制关机/重启未保存的工作会丢失 mediumUnregister-ScheduledTask、Remove-PSDrive、Remove-AppxPackage任务/驱动器映射/应用包移除 medium大小写不敏感Windows 防护的关键细节Windows 命令天然不区分大小写——RD /S /Q和rd /s /q是同一个命令。dcg 的 Windows 包在两层都做了适配正则层每条规则都带内联(?i)标志任何大小写都能命中关键词快速过滤层使用 ASCII 大小写不敏感的 Aho-Corasick 自动机del、DEL、dEl都能正确触发同一套检测且无需在热路径上分配内存。这意味着代理无法通过改变命令大小写来绕过防护。Windows 上如何安装 dcg在 PowerShell 中运行官方安装脚本详见 docs/windows.md会自动完成下载、SHA256 校验、PATH 配置与代理钩子接线 ([scriptblock]::Create((irm https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/main/install.ps1))) -EasyMode -Verify安装后windows.filesystem与windows.system两个包即刻生效del /s、rd /s、Remove-Item -Recurse -Force、format、vssadmin delete shadows全部被默认拦截无需任何配置。如何精细管理允许清单如果某条规则确实在你的工作流中是安全的可以用允许清单精准放行。每条规则都有稳定 ID如windows.filesystem:del-recursive格式与示例见 docs/packs/windows.md# 放行单条规则 [[allow]] rule windows.system:vssadmin-delete-shadows reason 运维脚本例行清理旧快照已做备份 # 放行整个包谨慎使用需确认风险 [[allow]] rule windows.misc:* reason 该机器为专用测试机 risk_acknowledged true建议遵循单条放行优先整包放行兜底的原则并始终填写reason——它会在日志和 JSON 输出中记录方便日后审计。总结一份完整的 Windows 破坏性命令防护地图关注点防护包关键拦截点文件递归删除windows.filesystemdel /s、rd /s、Remove-Item -Recurse、.NET 递归删除 API磁盘与卷windows.systemFormat-Volume、Clear-Disk、卷影副本销毁、cipher /w系统配置windows.miscreg delete、wsl --unregister、robocopy /MIR高级 cmdletwindows.powershell注册表 cmdlet、Remove-VM、强制关机dcg 的 Windows 包证明了防护的完整性同一台机器上无论 AI 代理选择 cmd 还是 PowerShell、用完整命令名还是短别名、直接调用还是走 .NET API破坏性意图都会被识别并在执行前拦截。配合-WhatIf预览放行与稳定规则 ID既守住了安全底线也保留了正常运维的灵活性。【免费下载链接】destructive_command_guardThe Destructive Command Guard (dcg) is for blocking dangerous git and shell commands from being executed by agents.项目地址: https://gitcode.com/GitHub_Trending/de/destructive_command_guard创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表