如何让低安全版Windows应用拒绝在Citrix环境运行?能否检测Citrix?
低安全版本Windows应用Citrix环境检测与阻断方案
低安全版本可正常检测Citrix环境
常用检测手段如下,多规则组合使用可降低误判概率:
- 检测系统注册表项:Citrix运行时会在注册表生成固定路径项,比如
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix、HKEY_CURRENT_USER\SOFTWARE\Citrix,检测到对应路径存在即可判定当前处于Citrix环境 - 检测运行进程:Citrix环境默认会运行专属进程,比如
wfcrun32.exe、Receiver.exe、CtxSvc.exe,遍历系统进程列表匹配到对应进程即可完成判定 - 检测环境变量:Citrix会话会添加专属环境变量,比如
CLIENTNAME前缀带ICA-、SESSIONNAME以ICA-开头,读取环境变量匹配规则即可完成检测 - 检测系统服务:Citrix相关服务比如
Citrix HDX Audio Service、Citrix ICA Service处于运行状态,也可作为辅助判定依据
上述检测逻辑对本地部署Citrix、云化Citrix环境均生效,两类环境的系统侧特征没有本质差异,不需要单独适配检测规则
低安全版本Citrix环境下拒绝运行的实现方式
建议组合至少2种以上检测规则,避免单一规则被误触发或者被用户绕过
- 启动前置检测:在低安全版本应用的启动入口最前端添加Citrix环境检测代码,一旦匹配到Citrix环境特征,直接弹窗提示用户当前Citrix环境需使用带安全特性的高版本应用,随后直接终止进程即可
- 硬编码阻断逻辑:不要将检测规则、开关做成可配置项,避免用户通过修改配置文件、注册表绕过阻断逻辑
- 加防篡改校验:如果担心检测逻辑被逆向破解修改,可以对检测逻辑段做哈希校验,校验不通过直接终止进程,进一步提升绕过难度
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

