ADD / XOR / ROL:应用活动(及个人数据)的银行账单
在2015-2016年的长假期间,我有充足的时间思考各种随机事物并冒出奇怪的想法。这些想法大多有趣而非实用——它们的主要用途是让那些鲁莽到与我共饮的人感到无聊。
这篇博客文章描述了其中一个想法。随着最近对隐私和智能手机应用越权行为的重新关注,这似乎是一个——至少暂时——比平常不那么无聊的话题。
机器学习、软件行为以及“恶意”与“非恶意”的边界
我看到大量的人力脑力(和巨大的计算能力)被投入到自动判断给定软件是好是坏的问题上。
这通常按以下方式进行:
- 收集大量关于软件行为的信息(通常通过在某种模拟环境中运行软件)
- 从这些信息中提取特征
- 应用或多或少复杂的机器学习模型来决定“好”或“坏”
这背后的基本思想是存在“坏”行为和“好”行为,如果我们能以某种方式构建一个足够强大的机器学习模型,我们就可以自动判断给定软件是好是坏。
在实践中,这很少能在没有显著误报问题、显著漏报问题或各种复杂边缘情况(系统失败)的情况下工作。
2015年,我不得不处理措辞不当的《瓦森纳协定》的后果:试图定义软件“坏行为”的出口管制立法。在此期间,我清楚地认识到,仅凭行为决定好坏的观念是有缺陷的。
软件的行为并不决定它是否是恶意的。恶意软件和非恶意软件之间的真正分界线是软件是否做了用户期望它做的事情。
用户运行软件是因为他们对软件的功能有期望。他们授予软件权限是因为他们期望软件为他们做某事(“我想打电话,所以显然应用应该使用麦克风”)。这种权限是有条件、有上下文地给予的——用户不希望在他们不打算打电话时授予应用打开麦克风的权限。
恶意/非恶意软件的问题是用户期望与软件行为之间一致性的问题。
这意味着,在实践中,应用机器学习区分恶意和非恶意软件的努力注定失败,因为它们未能测量好坏边界所依赖的那个维度。
直观上,这可以用下面的两张图来说明。它们从两个不同的视角显示了3D空间中的同一组红点和绿点——一次是z轴被投影掉,一次是在z轴仍然可见的3D图中:
那么,自然出现的问题是:
如何测量缺失的维度(用户意图)?
用户意图是一个难以测量的东西。软件行业有强迫用户同意某些荒谬广泛的条款服务或最终用户许可协议的做法,这些协议很少有用户阅读,更少有人理解,而且通常几乎等同于给你雇来打扫公寓的人对你所有文件的授权书,并允许他们在你不注意时在你的公寓里开派对。
通常认为——因为用户点击“同意”了一个极其广泛的协议——用户同意了软件可能做的一切。
但对软件行为的同意是依赖于上下文并受特定具体行动制约的。我的通讯应用请求访问我的相机、麦克风和文件是可以的——我可能需要发送图片,我可能需要打电话,我可能需要发送附件。但我的通讯应用使用我的麦克风查看是否接收到特定的超声波跟踪器声音是不行的,我的通讯应用随机搜索文件等也是不行的。
用户无法告诉软件供应商他们的意图以及他们提供同意的上下文。
既然用户意图难以预先测量——那么我们简单地询问用户应用/软件所做的某事是否符合他们的期望如何?
信息和注意力是一种货币——但记账很差
现代广告经济运行在注意力和私人数据上。大型广告平台通过销售用户注意力组合以及根据用户上下文数据进行微目标广告的能力来赚钱。用户通过提供注意力和私人数据来“支付”商品和服务。
人们常常担心大平台会“出售他们的数据”。这至少对于更聪明/更有利可图的平台来说是不必要的恐惧:这些平台通过拥有他人没有的数据来赚钱,这些数据允许更好的微目标定位。他们不是通过“出售数据”赚钱,而是通过“货币化他们拥有的数据”赚钱。
思考用户与平台之间关系的方式更像是一个陈词滥调的“音乐家-经纪人”关系:音乐家生产某些东西,但不知道如何货币化。他的经纪人知道如何货币化,并与音乐家达成协议:你给我独家使用你的产品,我会为你货币化——并从收益中分成。
大平台积累的利润是从用户那里获得的注意力与私人数据组合的价值与获取这种注意力和数据的成本之间的差额。
对于以“正常”货币支付的款项,用户通常有很好的记账:他们知道钱包里有什么,并且(在他们使用电子支付手段的范围内)他们得到非常详细的交易对账单。一个普通家庭从他们的银行对账单中相对精确地重建他们在给定月份为哪些商品支付了多少钱并不困难。
这种透明度创造了信任:我们不太犹豫将信用卡号提供给在线服务提供商,因为我们知道如果他们在没有理由的情况下收取我们的信用卡费用并超过我们同意的金额,我们可以干预。
另一方面,私人信息没有被记账。用户无法看到他们提供了多少私人数据,以及他们是否真的对此感到满意。
应用/软件活动的银行账单
如何既能使用户能够核算他们的私人数据,同时又能帮助平台提供商更好地识别恶意软件?
通过向用户提供相当于应用/软件活动的银行账单。我想象的方式大致如下:
我的手机(或计算机)操作系统的一个独立组件详细跟踪应用活动:在什么时间访问了什么外围设备,访问了什么文件等。
用户可以通过一个使这些细节可理解和可访问的UI来检查他们设备上的活动:
应用XYZ在上周以下时间访问了您的麦克风,显示以下屏幕:
时间戳1,截图1
时间戳2,截图2
这符合您对该应用应该做什么的期望吗?是/否
应用ABC在上周以下时间访问了以下文件,显示以下屏幕:
时间戳3,截图3
文件名
文件名
文件名
这符合您对该应用应该做什么的期望吗?是/否
至少在现代移动平台上,上述大部分数据已经可用——现代权限系统可以保持相对详细的“何时访问了什么”日志。添加保存截图的功能很容易。
是的,必须投入大量工作来设计一个周到的UI,但这似乎是值得的:即使大多数用户会随机点击是/否,真正关心的几千用户将向平台提供商提供关于应用是否越权的宝贵信息。同时,更偏执的用户(如我)会对安装有用应用感到不那么恐惧:如果我看到应用做了超出我希望它做的事情,我可以删除它。
目前,用户对应用实际在做什么的透明度极其有限。虽然情况正在缓慢改善(大多数平台允许我检查哪个应用最后使用了我的GPS),但对于舒适度来说仍然太不透明,越权/滥用可能普遍存在。
如果有任何大平台提供商能够凝聚意愿,改变这一点似乎并不难。
这似乎是一个双赢的局面,所以我可以希望。我也可以承诺,我会购买第一个以可信方式提供此功能的手机 :-)。
附言:上述模型还有许多额外的副作用——例如使黑客更难攻击受信任的应用开发者然后从信任该开发者的用户那里悄无声息地外泄数据——但我现在不会用这些细节来烦你。
发布时间:2018年3月31日上午9:51
作者:halvar.flake