EasyConnect组件ECAgent的可疑行为

深信服EasyConnect组件ECAgent后台反复调用windows系统程序CheckNetisoIation.exe

ECAgent

ECAgent.exe是EascyConect的"流氓"组件之一,并不会随着主程序的关闭而关闭。由服务SangForSP保护,如果不停止服务,无法杀死该进程,其在任务管理器的进程名为“Agent for EasyConnect”

ECAgent 频繁调用CheckNetIsolation.exe

最近配置了hips,针对EasyConnect的操作之一是阻止其和组件访问和调用它们安装根目录之外的文件和程序。然后发现在EasyConnect启动后,频繁触发这一规则,每次的日志都是下面这样的组合(时间正序):

应用程序 操作 目标 操作
C:\Program Files (x86)\Sangfor\SSL\Promote\SangforPromoteService.exe 启动新应用程序 C:\Program Files (x86)\Sangfor\SSL\ECAgent\ECAgent.exe 已允许
C:\Program Files (x86)\Sangfor\SSL\Promote\SangforPromoteService.exe 启动新应用程序 C:\Program Files (x86)\Sangfor\SSL\ECAgent\ECAgent.exe 已允许
C:\Program Files (x86)\Sangfor\SSL\ECAgent\ECAgent.exe 启动新应用程序 C:\windows\SysWOW64\CheckNetIsolation.exe 已阻止
C:\Program Files (x86)\Sangfor\SSL\ECAgent\ECAgent.exe 启动新应用程序 C:\windows\SysWOW64\CheckNetIsolation.exe 已阻止

同时查看了ECAgent自身的日志"ECAgent.exe.log"(SangforPromoteService并没有找到相关的日志),发现在触发hips的几毫秒之前,会有如下操作

[ECAgent.exe:9880:7928][INFO] querystr op=DoQueryService&arg1=QUERY%20LOGINSTATUS&type=EC&token=xxxx&callBack=cb10142
[ECAgent.exe:9880:7928][INFO][DeliverWebCmd:165] begin, OP = DoQueryService
[ECAgent.exe:9880:7928][INFO][DeliverWebCmd:225] complete, OP = DoQueryService

并不知道DoQueryService是干什么的,是否就和hips的触发是因果关系。但这个方法的调用频率相当高,达到了1次/s,而hips则是每秒触发多次,不排除该方法内部重试的可能。

该行为的关联性

CheckNetIsolation .exe相关描述:

CheckNetIsolation 是 Windows 操作系统中的一个命令行工具,用于管理 UWP 应用(Universal Windows Platform,通用Windows平台应用)的网络隔离设置。该工具主要用于配置应用程序是否允许访问本地网络资源(如本地回环地址 127.0.0.1),并排查与网络相关的问题。UWP 应用由于其安全架构,默认情况下受到网络隔离保护,无法直接访问本地网络资源。这有助于保护系统免受潜在的安全威胁,但在某些情况下,应用可能需要访问本地网络服务(例如开发人员调试时需要访问本地服务器)。CheckNetIsolation 允许开发人员或管理员为指定应用解除网络隔离限制。

但目前的情况是,禁止ECAgent调用CheckNetIsolation后,并没影响EasyConnect作为vpn的正常使用。

对该行为的疑问

不知道ECAgent调用CheckNetIsolation具体用来做什么,因为即使阻止了这一操作也没影响EasyConnect的正常使用,即使是描述中的控制网络隔离,也不知道具体表现是什么。考虑其每秒触发的频繁,如果该行为是否安全(不收集用户的网络信息,例如QQ会调用ipconfig.exe和arp.exe),能否放行(触发的日质量太大了 :frowning: )

把它放在虚拟机了,之前看有人放在 Docker 里面的

1 个赞

上班得自己带电脑,每天都得用,不太想在自己的电脑上整太麻烦(难蚌 :rofl:)

我都是在虚拟机里跑了。不敢在本机跑。主要是公司还有深信服的设备,不知道会不会装了别家的VPN但也能被连入的网络的深信服设备监听。

深信服这种企业要是在国外,早被罚的裤衩子都不剩了,老流氓一个

这个是用来阻止部分app访问深信服的网络。

主要是安全保护。 疫情的时候,国外黑客曾经攻破过,导致部分地区信息泄露。

另外,这个话题过于敏感,不建议继续深入讨论。

政企事业单位老爱用了,只能是符合闹钟的价值观

应该是有监听的,毕竟每秒都试图调用checknetisolation做相应的操作。同时开启v2rayN时,easyconnect管理的资源就不能访问了

EasyConnect 的连接协议其实相当简单,就是字面意思的 SSL VPN。下面列了一些我知道的现有解决方案,以供交流学习。

1.1. 第三方实现

这是一个浙江大学的 EasyConnect VPN 第三方客户端 Golang 实现,可以借鉴代码逻辑(理论上设置服务器地址后,也可以直接使用):

这是复旦大学的版本:

1.2. 沙盒化

这是利用 Docker 的文件系统隔离方案。缺点是在 Windows 上必须始终开启 WSL 才能使用:

1.3. 其他方法……

我恰好满足下面几个条件:

  1. 我自己所在工作单位的服务器可以访问外网
  2. 我自己有 Root 权限
  3. 我办公所在的位置(家里)有端点无关映射型 NAT(原来称为 NAT1)

所以我选择直接用 ZeroTier,速度比 EasyConnect 更快。不过有时网络不稳定,还是要用上面几个方案之一作为备用。

若不满足 3,可以自建公网服务器用 n3n;若 2 也不满足,可以用 frp

2. 关于如何卸载 EasyConnect

EasyConnect 的卸载程序没有任何作用。请参照下面的视频:

另外上面视频未提到的是,EasyConnect 会把自己的所有路径加入 Windows Defender 白名单,永不杀毒。若在使用 Windows Defender,请自行检查白名单列表是否被污染。

1 个赞

还记得2024年7月19日因为网络安全公司CrowdStrike引起全球微软系统蓝屏的事情不。这玩意和深信服一样的。
安装根证书解密流量,定时截图电脑屏幕,监控电脑内进程,监视文件读写,禁止可移动设备接入,往来邮件附件扫描,文档自动加密…

在正常国家的法律逻辑上:公司给员工发的电脑,算公司给员工的生产力工具,所以这些监控都是合法的。当然公司需要允许,员工带自己的电脑进公司,但不连公司的网做非工作用途的事情…比如台积电在光刻机上装个监控软件来防止员工自己拿来私下刻个芯片玩,这完全合法合理的嘛。

简而言之就是,公司发的电脑只能拿来干活,摸鱼请用自己的设备,如果不想带自己的设备,那就想各种办法逃避监管吧,但没躲过也没办法。

对于 EasyConnect
我最不能理解的就是,大学啥的,学生想要访问内网,强制装这东西是图啥呢?
别的学校我不知道,反正我上学那会儿,学校的服务端的配置低的可怜,只要还能跑绝对不升级(这逗比服务器底层跑的是win2000你能懂?),硬盘空间根本不够用(只有40GB)。日志基本隔一段就要删一次来腾空间。真遇到事情啥都查不到。

2 个赞

这些我都试了,我们公司的网络下没用。
无论是三方客户端还是docker、WSL跑

EasyConnect的服务端可以设置额外的验证,
只是很多网管默认没开,但开了这些就没法用了。

可以了解下老美业主喜欢用的 CrowdStrike(就是前一段引发全球微软蓝屏的那个玩意)欧洲业主喜欢用的赛门铁克的企业威胁防护体系。
只能说各大企业,在控制给员工的生产工具(公司发的电脑当然是公司配发的生产工具)上,流氓的各有千秋

公司的电脑我倒无所谓了。只是现在的it行业,有岗位的基本都是外包,然后大部分外包都不发电脑,上岗得自带电脑,遇到甲方用这些流氓软件,就只能自认倒霉

这种就巨恶心,之前还有公司发的电脑价格,要从员工工资里分期扣除的。

我是遇到过外企甲方对我们这些供应商做要求的,
最后实在受不了,大家买了移动路由上网,不用他们的网了。
只留了一台公用机连进去下文件,然后邮件发出来。
纯属没事找事多一步

我们学校也easyconnect,太恶心了,丢虚拟机了

国外也有这种公司。美国之前有个Pulse Secure。我由于读博期间常要连接校内的计算集群干活,所以知道这个。如果我是在我就读的高校的校园内插网线上网来干活的话,就不需要Pulse Secure,但相应地,我必须把电脑的MAC地址告诉学校的IT部门。如果我插网线之前学校的IT部门不知道我所用的电脑的MAC地址的话,就算插了网线也浏览不了任何网页。如果我是在我就读的高校的校园网内连WiFi来干活的话,就必须在电脑上装Pulse Secure。如果我在租的房子里面上网来干活的话,就必须在电脑上装Pulse Secure。我读博期间有时候还会用到美国的一些超算资源(原先叫XSEDE,后来改名为ACCESS,其实是整合了好几个高校的实力较强的超算中心),显然用这些超算资源的时候也必须在电脑上装Pulse Secure。Pulse Secure的功能应该只是一个纯粹的SSL Virtual Private Network,有点恶心的是,在我的电脑上运行Pulse Secure时总会弹出“You will be unable to use this service in Network Connect mode until Symantec AntiVirus is installed and enabled on your workstation.”的信息,我每次都得单击“重试”按钮后才能运行。我没装过Symantec这个杀毒软件,但我怀疑Symantec跟Pulse Secure都是美国的government contractor。

不过Pulse Secure还算吃相较好看的。2023年二月份,学校要求校内插网线的电脑全部安装Global Protect,并且暗示将来Pulse Secure要被Global Protect取代。校内的计算集群在安装Global Protect的时候不知道咋搞的,计算集群的login node出了问题,害得工作人员折腾了一上午。一个多月后,明显感觉到校园网内不能访问的网站数目变多了,比如以前在校园网内能访问的一些科学上网工具的网站、一些加密货币的网站现在都无法在校园网内顺利访问了,都得要先上网搜索相应域名的IP地址、再修改电脑的hosts后、最后刷新DNS的缓存才能访问。与此同时,我在美国的其他高校的同学也告诉我,他们校内也在把Pulse Secure换成Global Protect。我偶然查看过Global Protect的一些log文件,我倾向于认为Global Protect不是一个单纯的SSL Virtual Private Network,而是一个监控软件。Global Protect应该是背景比Pulse Secure还复杂的government contractor。

目前EasyConnect还只是跟Pulse Secure一个水平,尚未“进化”到Global Protect的水平。所以说,美国在这方面还是“遥遥领先”的。

2 个赞

外企电脑里要装的监控比国企严格多了。
大部分国企深信服这一套都没开证书校验,
所以只要进程名不在监视名单里就可以不被监控到。

Pulse Secure(现在叫 Ivanti Secure)和 Global Protect 都可以配置某些合规性检查,比如某些文件是否存在、是否被修改,是否有域,是否有要求的杀软等,

我比较烦 Global Protect 的是关不掉开机启动