终端安全软件开发中关于性能方面的一个坑

admin 2025年4月1日21:00:41评论7 views字数 992阅读3分18秒阅读模式
广告: 考虑到这篇质量很高但是那会粉丝少,阅读量低得惊人(100阅读),所以引个流:
【漏洞分析】从驱动直接读写物理内存漏洞 到内存加载驱动分析
几年前(3年前,才发现已经三年了),开发EDR的过程中用户反馈了一个有意思的问题,即开机黑屏.那会调了半天都找不到,后来设置了开机性能监视器,才发现了一点端倪:
在windows启动中,涉及到用户配置项的部分,是由一个ProfSvc的服务管理的:
终端安全软件开发中关于性能方面的一个坑
这个会负责用户登录的profile的加载,以及切换用户。在logon的时候,会通过ThreadPool加一个workitem(这真不是小黑那个所谓的免杀的线程池排队) 然后执行一系列登录的加载操作,如创建用户token,用户鉴权,全局环境变量等等:
终端安全软件开发中关于性能方面的一个坑
这些都是由一个
线程池item管理的.最终会队列执行 LogonThreadProcInternal
问题就出现在这里面的CUserProfile方法:
终端安全软件开发中关于性能方面的一个坑
CUserProfile本来没什么问题,但是在windows某个特定版本后(我那会key08写的是1803,具体我也不知道)增加了一个CreateTempDirectoryForUser方法。这个方法是由用户属性判断了什么东西后会调用的:
终端安全软件开发中关于性能方面的一个坑
终端安全软件开发中关于性能方面的一个坑
CreateTempDirectoryForUser这个东西是干什么的?

这个东西是用于标记是否可以删除 hard是不能删除 soft是可以删除 然后他开机时候 给temp这个文件夹设置了soft代表当磁盘空间不足时候可以删除这些文件

但是设置的实现方法是递归遍历目录打标记.
这本来实现也跟事情毫不相干,而且工作挺不错的, 但是还有一个例外,就是安全软件

大部分的安全软件总是会在minifilter中的precreate或者postcreate地方匹配自己的规则

比如openedr:

终端安全软件开发中关于性能方面的一个坑
而这会导致一个问题,临时文件过多,会导致系统logon慢很多,而本来就因为临时文件过多导致的卡的问题,结果再结合安全软件在匹配规则导致了更卡.

这就是为什么小*/卡*/火*/3*等安全软件 有在某些机器上开机黑屏卡慢的问题.
之前对象用的是火*,反应开机黑屏,就给他换***,结果也黑屏.到最后分析出来发现,就是这个原因.清理垃圾后就正常了.
解决方案: 做安全软件开发的都是聪明人.这块很多家现在已经解决了.如果没解决的可以评论区说一下.

原文始发于微信公众号(冲鸭安全):终端安全软件开发中关于性能方面的一个坑

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月1日21:00:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   终端安全软件开发中关于性能方面的一个坑http://cn-sec.com/archives/3904994.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息