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

Downie 4 依然会读取 Mail.app 数据

  •  1
     
  •   mikewang · 260 天前 · 3571 次点击
    这是一个创建于 260 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天看到了 /t/1022882 有关 Downie 的事件,特地下载了一份原始的 dmg 用于研究。

    最新版本中去除了随机删除文件的相关文本,但是仍存在读取用户邮箱 app 的行为,编码在二进制文件内。

    验证方法:从官网下载并解压最新版本 Downie ,在终端中输入以下命令。

    cd /Applications/
    strings ./Downie 4.app/Contents/Frameworks/Licensing.framework/Versions/A/Licensing | grep -i mail
    

    注意 tell application "Mail" 和以下部分。程序通过调用 AppleScript 控制 Mail.app 。

    Downie 至少会读取用户在 Mail.app 上登录的所有邮箱地址,以及邮箱的相关设置。

    这个说轻一点就是像先前开发者解释的那样,是反盗版用的远古代码;严重一点解释就是侵犯用户隐私,擅自获取用户的联系方式。

    比如用户使用 Gmail 邮箱注册软件,但是 Mail.app 上同时登录了 QQ 邮箱,那么用户的 QQ 号就因此泄漏了。


    对于 macOS 用户能做到的,就是尽量少赋予程序“完全磁盘访问权限”,并执行 tccutil reset AppleEvents 吊销所有程序的 AppleScript 执行权限,防止有程序在后台偷偷执行自动化脚本控制其他程序。

    这样所有 AppleScript 执行并控制其他程序时都会弹出以下窗口:

    15 条回复    2024-03-14 16:04:15 +08:00
    czfy
        1
    czfy  
       260 天前
    建议同步发 reddit
    mikewang
        2
    mikewang  
    OP
       260 天前
    @czfy 这个之前就有 reddit 用户发出来了。我验证了一下最新版本依然存在,提醒一下大家。
    tsohgdivil
        3
    tsohgdivil  
       260 天前
    @mikewang #2 这个代码可能是忘了删了,因为就像你的截图,新的苹果系统里面应用 A 已经不能随意通过 AppleScript 调用应用 B 了,会跳弹窗的
    tsohgdivil
        4
    tsohgdivil  
       260 天前
    @mikewang #2 等一下我看仔细看了下截图,你的意思是这段代码还是会被实际触发吗?什么时候会触发啊
    mikewang
        5
    mikewang  
    OP
       260 天前
    @tsohgdivil 这个逻辑在新 macOS 中依然有效。可以在 Info.plist 里搜 NSAppleEventsUsageDescription 。这个权限和你说的一样,在旧版 macOS 里不存在。是 Downie 为了适配新版 macOS 而显式声明的权限:


    这是我调试了一下触发时的情形,实际的触发条件我不能确定。
    Crump
        6
    Crump  
       260 天前
    我一般简单粗暴的 tccutil reset All
    MAGA2022
        7
    MAGA2022  
       260 天前
    这就是个流氓软件,还是不要用了
    GabrielleBellamy
        8
    GabrielleBellamy  
       260 天前   ❤️ 5
    虽然开发者在最新的道歉中提到了这个点,但是完全没有打消我对这个问题的疑虑。尤其是在一波 Reddit 用户脑残的拥护下,对这个点不明不白的声明也被一起接受了,显得格外讽刺。他是这么写的:([An Apology – Charlie Monroe]( https://blog.charliemonroe.net/an-apology/))

    There have also been some inaccurate accusations that Downie reads the list of email address from the Mail app. While the path to the .plist file can be found in Downie’s code, it is part of dead code (meaning that it does not get invoked from anywhere). Years ago (7+), in case the app was licensed as “TNT” which is a signature of the cracking team and the user was submitting a report, Downie would try to get the “real” email this way. This means that this would never get invoked in the genuine version. This was part of my effort to talk to people running cracked versions of my app. Again, well-intentioned, but definitely wrong and it was removed 5+ years ago in a sense that it no longer gets invoked. Unfortunately, some of the code was left behind – it was not deleted.

    In either case, please note that the past macOS releases restrict access to this file and even if Downie did try this, it would fail. But again – while the method that refers this file remained in the code, it never gets invoked.

    还有一些不准确的指控称 Downie 会从邮件应用程序中读取电子邮件地址列表。虽然在 Downie 的代码中可以找到.plist 文件的路径,但这是死代码的一部分(意味着它不会被任何地方调用)。多年前( 7+),如果该应用程序被许可为“TNT”,这是破解团队的签名,并且用户正在提交报告,Downie 将尝试通过这种方式获取“真实”电子邮件。这意味着在正版版本中永远不会被调用。这是我努力与运行我的应用程序破解版本的人交谈的一部分。再次强调,出于善意,但绝对错误,并且已经在 5+年前删除了,因此它不再被调用。遗憾的是,其中一些代码留下来了 - 它没有被删除。

    无论哪种情况,请注意过去 macOS 版本限制对此文件的访问,即使 Downie 尝试了这个方法也会失败。但同同样 - 虽然引用此文件的方法仍然存在于代码中,但它从未被调用过。

    ---

    第一,他说五年多以前已经删除了,但是没删干净,OP 似乎是在最新版里找到了。这不合理。既然知道没删干净,为什么不删了?

    第二,“永远不会被调用”这个解释并不能让人真正放心。似乎 OP 已经让系统弹出窗口了。我们并不知道这些代码是不是真的被调用了,至于调用后这些信息有没有被发送出去,就更不知道了。

    第三,他没有说明这些代码会不会在下一个更新里被删除,没有说后续的行动计划。

    第四,他没有意识到,这个事情的关键不仅仅在于承认事实,还在于他曾经在没有告知用户的情况下收集用户的邮箱地址。这是个非常危险的举动,他没有为这个曾经的举动道歉,他只说我确实做了,我做得还很有理由,只不过我现在不这么做了,你们的指控是“不准确的”。

    第五,正是因为他认识不清楚究竟哪些行为——包括但不限于威胁用户、在未通知用户的情况下采集用户邮箱——是可能有损用户隐私和利益的,才让人无法信任他。他的道歉从未认识到他自己行为的性质和过错之处,他只说我错了,但我的错有理由。知道这些原因可能让人心生怜悯,但不能让人宽恕他所犯下的错误,因为他没有直面它,没有谈及自己如何理解用户隐私保护以及这些行为应该如何被管控,而是在给自己找理由。这一点让人极不放心。
    2P99RQ7o4Lds0GaI
        9
    2P99RQ7o4Lds0GaI  
       259 天前 via iPhone
    这个我喷不了,因为我使用的是盗版的😕
    kjreen
        10
    kjreen  
       259 天前 via iPhone
    我的天,楼主你到现在还敢质疑开发者,不怕喵喵们过来逼你给开发者道歉吗
    VIVIANSNOW
        11
    VIVIANSNOW  
       259 天前
    谁能艾特一下荔枝。我想看看它怎么洗。大家也学习一下呗。
    ysc3839
        12
    ysc3839  
       259 天前 via Android
    用终端程序确认了一下,非商店应用能限制访问桌面、提醒、文档、下载以及其他应用的数据 (~/Library/Containers)。图片 (~/Pictures),以及 ~/Library/Preferences 下的其他应用数据是没有限制的。
    leesa
        13
    leesa  
       259 天前
    @ysc3839 “图片 (~/Pictures),以及 ~/Library/Preferences 下的其他应用数据是没有限制的。”——是指非商店应用可以随意访问 Mac 上的“照片”app 吗?
    ysc3839
        14
    ysc3839  
       259 天前 via Android
    @leesa 设置里有单独的照片权限,但是我不知道怎样才算“照片”,我都是直接把文件放在 Pictures 里面的。
    leesa
        15
    leesa  
       259 天前
    @ysc3839 我说的“照片 app”指的是 [~/Pictures/Photos\ Library.photoslibrary] ,开启 iCloud 照片同步后(或直接往 Mac 的照片 app 添加照片),照片会被存储到这里。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5534 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:53 · PVG 16:53 · LAX 00:53 · JFK 03:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.