V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
giveafxxk
V2EX  ›  信息安全

Windows 安全中心无法拦截自编 C++对 exFAT 移动硬盘文件的修改

  •  3
     
  •   giveafxxk · 2023-02-04 15:44:18 +08:00 · 2894 次点击
    这是一个创建于 687 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问大家一个关于 Windows 安全中心的问题。

    同事问我 Windows 安全中心的勒索软件防护是不是只防写不防读,
    于是我自己写了个 C++程序测试了一下,源代码如下:

    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    int main() {
    string data;
    ifstream txtfile;
    txtfile.open("I:\\test.txt");
    txtfile >> data;
    cout << "受保护的文本内容为:" << endl;
    cout << data << endl;
    txtfile.close();
    ofstream txtfile2;
    txtfile2.open("I:\\test.txt");
    string input;
    cout << "请输入要写入的内容:" << endl;
    cin >> input;
    txtfile2 << input << endl;
    txtfile2.close();
    cin.get();
    return 0;
    }

    结果正如视频中所见,该程序对 exFAT 的移动 SSD ( I 盘)的 test.txt 进行读操作,Windows 安全中心没有提示,写操作则有提示拦截,但仍然被写入,未拦截成功。这是为什么呢?

    补充:同事在 NTFS 的系统盘上做实验,可以成功拦截写入,但也无法拦截读取。
    第 1 条附言  ·  2023-02-04 16:33:25 +08:00
    系统环境:Windows 10 专业版 22H2 ,已于 2023.02.03 完成所有安全更新。

    C++程序是 VS 编译的 64 位 Release 版。
    第 2 条附言  ·  2023-02-04 16:52:20 +08:00
    蓝点网小编测试发现是有这样的问题

    第 3 条附言  ·  2023-02-04 16:59:31 +08:00
    尝试直接双击 exe 也是一样的,排除是 VS 白名单的问题。

    且 VS 直接运行程序也会出现拦截提示却未拦截成功。
    14 条回复    2023-02-04 18:18:48 +08:00
    wingkwanli888
        1
    wingkwanli888  
       2023-02-04 15:48:27 +08:00
    读取是常規操作吧
    giveafxxk
        2
    giveafxxk  
    OP
       2023-02-04 15:53:50 +08:00
    @wingkwanli888 对 exFAT 移动硬盘文件的修改也没拦截成功呀
    xmoer
        3
    xmoer  
       2023-02-04 16:17:35 +08:00
    C# 测试读写均可以拦截,环境:Windows10 x64 ( 19045 ) NTFS ,真是奇怪。
    giveafxxk
        4
    giveafxxk  
    OP
       2023-02-04 16:31:55 +08:00
    @xmoer C#也是用 fstream 吗?试试只用 ifstream (以输入模式打开)而不是用 fstream (以输入 /输出模式打开)呢?
    giveafxxk
        5
    giveafxxk  
    OP
       2023-02-04 16:34:50 +08:00
    @xmoer 我对 NTFS 盘的文本只用 ifstream 是可以读的,写才会被拦截
    0TSH60F7J2rVkg8t
        6
    0TSH60F7J2rVkg8t  
       2023-02-04 16:39:13 +08:00
    感觉是 bug 吧,向微软报告一下?
    ch2
        7
    ch2  
       2023-02-04 16:49:21 +08:00 via iPhone
    你用 vs 运行的,vs 有白名单
    giveafxxk
        8
    giveafxxk  
    OP
       2023-02-04 16:54:28 +08:00
    @ch2 我单独双击 exe 也一样,会弹出拦截通知,但未成功拦截写入( NTFS 盘则可以)。如果被白名单了,之前用 VS 直接运行,它为什么会弹通知拦截呢?
    xmoer
        9
    xmoer  
       2023-02-04 17:23:57 +08:00
    @giveafxxk 又测试了一次,发现 C# 目前写入拦截、读取无反应。但是,几个月前( Chrome 密码泄露事件的时候)我测试是可以拦截读取且有通知的。奇了怪了,难道是系统更新产生了新的 BUG ?
    giveafxxk
        10
    giveafxxk  
    OP
       2023-02-04 17:35:41 +08:00
    @xmoer B 友说 WD 一直不防读取的。但我这 exFAT 移动硬盘连写入都防不住。
    xmoer
        11
    xmoer  
       2023-02-04 17:39:30 +08:00
    @giveafxxk =_=||| 看来 WD 这个功能是不怎么靠谱了。
    mmdsun
        12
    mmdsun  
       2023-02-04 17:48:19 +08:00
    如果属于安全漏洞,微软会给赏金,可以去 MSRC 提交。而不是电脑自带的反馈中心。

    https://msrc.microsoft.com/
    xmoer
        13
    xmoer  
       2023-02-04 18:10:47 +08:00   ❤️ 1
    @giveafxxk 原则上来说,它应该是可以拦截 “读取 and 写入”,引用微软介绍 “阻止未经授权的或不安全的应用 ‘访问’ 或 ‘更改’ 这些文件夹中的文件”,链接: https://support.microsoft.com/zh-cn/windows/%E5%85%81%E8%AE%B8%E5%BA%94%E7%94%A8%E8%AE%BF%E9%97%AE%E5%8F%97%E6%8E%A7%E6%96%87%E4%BB%B6%E5%A4%B9-b5b6627a-b008-2ca2-7931-7e51e912b034

    现在不能拦截 “读取”,很可能是这个功能改名为 “勒索软件防护” 之后变化的。因为,里面的系统目录(用户文档)保护默认无法删除,之前会影响游戏和 QQ 的启动。个人猜测是微软后来做出了妥协。
    giveafxxk
        14
    giveafxxk  
    OP
       2023-02-04 18:18:48 +08:00
    @xmoer 啊对以前是不叫“勒索软件防护”,叫“受控文件夹访问权限”。

    https://learn.microsoft.com/zh-cn/microsoft-365/security/defender-endpoint/controlled-folders?view=o365-worldwide
    “受控文件夹访问权限在帮助保护文档和信息免受 勒索软件攻击方面特别有用。在勒索软件攻击中,文件可能会加密并被扣为人质……”

    巨硬难道就没有想过有一种勒索软件叫“信不信我把你的果照 /H 片发给你公司”🤣🤣🤣
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2781 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:40 · PVG 22:40 · LAX 06:40 · JFK 09:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.